Imported Upstream version 2.6.0p2
[debian/amanda] / common-src / util.c
index 06c4de22911c8dcc14ff0af35d31950620894224..c1ba9d5abeca516167211cc072575ba591378b79 100644 (file)
@@ -40,8 +40,8 @@
 #endif
 
 static int make_socket(sa_family_t family);
-static int connect_port(struct sockaddr_storage *addrp, in_port_t port, char *proto,
-                       struct sockaddr_storage *svaddr, int nonblock);
+static int connect_port(sockaddr_union *addrp, in_port_t port, char *proto,
+                       sockaddr_union *svaddr, int nonblock);
 
 /*
  * Keep calling read() until we've read buflen's worth of data, or EOF,
@@ -161,11 +161,11 @@ make_socket(
 /* return -1     on failure */
 int
 connect_portrange(
-    struct sockaddr_storage *addrp,
+    sockaddr_union *addrp,
     in_port_t          first_port,
     in_port_t          last_port,
     char *             proto,
-    struct sockaddr_storage *svaddr,
+    sockaddr_union *svaddr,
     int                        nonblock)
 {
     int                        s;
@@ -216,16 +216,16 @@ connect_portrange(
 /* return >0: this is the connected socket */
 int
 connect_port(
-    struct sockaddr_storage *addrp,
+    sockaddr_union *addrp,
     in_port_t                  port,
     char *             proto,
-    struct sockaddr_storage *svaddr,
+    sockaddr_union *svaddr,
     int                        nonblock)
 {
     int                        save_errno;
     struct servent *   servPort;
-    socklen_t          len;
-    socklen_t          socklen;
+    socklen_t_equiv    len;
+    socklen_t_equiv    socklen;
     int                        s;
 
     servPort = getservbyport((int)htons(port), proto);
@@ -236,9 +236,9 @@ connect_port(
        return -1;
     }
 
-    if ((s = make_socket(addrp->ss_family)) == -1) return -2;
+    if ((s = make_socket(SU_GET_FAMILY(addrp))) == -1) return -2;
 
-    SS_SET_PORT(addrp, port);
+    SU_SET_PORT(addrp, port);
     socklen = SS_LEN(addrp);
     if (bind(s, (struct sockaddr *)addrp, socklen) != 0) {
        save_errno = errno;
@@ -315,14 +315,14 @@ connect_port(
 int
 bind_portrange(
     int                        s,
-    struct sockaddr_storage *addrp,
+    sockaddr_union *addrp,
     in_port_t          first_port,
     in_port_t          last_port,
     char *             proto)
 {
     in_port_t port;
     in_port_t cnt;
-    socklen_t socklen;
+    socklen_t_equiv socklen;
     struct servent *servPort;
     const in_port_t num_ports = (in_port_t)(last_port - first_port + 1);
     int save_errno = EAGAIN;
@@ -343,7 +343,7 @@ bind_portrange(
     for (cnt = 0; cnt < num_ports; cnt++) {
        servPort = getservbyport((int)htons(port), proto);
        if ((servPort == NULL) || strstr(servPort->s_name, "amanda")) {
-           SS_SET_PORT(addrp, port);
+           SU_SET_PORT(addrp, port);
            socklen = SS_LEN(addrp);
            if (bind(s, (struct sockaddr *)addrp, socklen) >= 0) {
                if (servPort == NULL) {