s4:lib/socket Add function to set a port on the socket address
authorAndrew Bartlett <abartlet@samba.org>
Wed, 10 Mar 2010 04:55:26 +0000 (15:55 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 11 Mar 2010 00:27:47 +0000 (11:27 +1100)
source4/lib/socket/socket.c
source4/lib/socket/socket.h

index 30db03fd97cb0d4d6ad5484111283f3bc66b0081..4b5cecab343fba805060277bcc9a5e12492cea88 100644 (file)
@@ -25,6 +25,7 @@
 #include "system/network.h"
 #include "param/param.h"
 #include "../lib/tsocket/tsocket.h"
+#include "lib/util/util_net.h"
 
 /*
   auto-close sockets on free
@@ -371,6 +372,17 @@ _PUBLIC_ struct tsocket_address *socket_address_to_tsocket_address(TALLOC_CTX *m
        return r;
 }
 
+_PUBLIC_ void socket_address_set_port(struct socket_address *a,
+                                     uint16_t port)
+{
+       if (a->sockaddr) {
+               set_sockaddr_port(a->sockaddr, port);
+       } else {
+               a->port = port;
+       }
+
+}
+
 _PUBLIC_ struct socket_address *tsocket_address_to_socket_address(TALLOC_CTX *mem_ctx,
                                                                  const struct tsocket_address *a)
 {
index 8f8922bcea42fd12e294341427d057978b944a3b..4a744797b3ab53b48e65b51f99cea2c7008fe3c3 100644 (file)
@@ -174,6 +174,8 @@ struct socket_address *socket_address_from_strings(TALLOC_CTX *mem_ctx,
 struct socket_address *socket_address_from_sockaddr(TALLOC_CTX *mem_ctx, 
                                                    struct sockaddr *sockaddr, 
                                                    size_t addrlen);
+_PUBLIC_ void socket_address_set_port(struct socket_address *a,
+                                     uint16_t port);
 struct socket_address *socket_address_copy(TALLOC_CTX *mem_ctx,
                                           const struct socket_address *oaddr);
 const struct socket_ops *socket_getops_byname(const char *name, enum socket_type type);