]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
fbsd-saddr-20060509
authorJim Rees <rees@umich.edu>
Tue, 9 May 2006 19:41:47 +0000 (19:41 +0000)
committerJim Rees <rees@umich.edu>
Tue, 9 May 2006 19:41:47 +0000 (19:41 +0000)
Small fixes to get sockaddr_storage changes working on FreeBSD

src/afs/afs_util.c
src/rx/FBSD/rx_knet.c
src/rx/rx.c

index 6ee6a9e36cb78cbb98a58d61a4752c4249f34a8e..54e8ce366496bef65388545e33759d40ba6040fd 100644 (file)
@@ -51,10 +51,6 @@ RCSID
 #include <sys/fp_io.h>
 #endif
 
-#if    defined(AFS_XBSD_ENV)
-#include <crypto/md5.h>
-#endif
-
 afs_int32 afs_new_inum = 0;
 
 #ifndef afs_cv2string
@@ -409,14 +405,7 @@ afs_data_pointer_to_int32(const void *p)
     return ip.i32[i32_sub];
 }
 
-#if    defined(AFS_XBSD_ENV)
-
-#define afs_md5 MD5Context
-#define AFS_MD5_Init(m) MD5Init((m))
-#define AFS_MD5_Update(m, p, l) MD5Update((m), (void *)(p), (l))
-#define AFS_MD5_Final(r, m) MD5Final((r), (m))
-
-#else
+#ifdef AFS_LINUX20_ENV
 
 struct afs_md5 {
     unsigned int sz[2];
@@ -657,7 +646,6 @@ AFS_MD5_Final (void *res, struct afs_md5 *m)
        }
     }
 }
-#endif
 
 afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode)
 { 
@@ -677,3 +665,12 @@ afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode)
     }
     return ino;
 }
+
+#else
+
+afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode)
+{
+    return (volume << 16) + vnode;
+}
+
+#endif
index e70dcb4108b06b877956a3f88ede52f60304b0d1..c24176f9b40187daf901ec32255de51f7cf7acc3 100644 (file)
@@ -19,7 +19,7 @@ RCSID
 
 #ifdef RXK_LISTENER_ENV
 int
-osi_NetReceive(osi_socket asocket, struct sockaddr_in *addr,
+osi_NetReceive(osi_socket asocket, struct sockaddr_storage *saddr, int *slen,
               struct iovec *dvec, int nvecs, int *alength)
 {
     struct uio u;
@@ -68,8 +68,10 @@ osi_NetReceive(osi_socket asocket, struct sockaddr_in *addr,
     *alength -= u.uio_resid;
     if (sa) {
        if (sa->sa_family == AF_INET) {
-           if (addr)
-               *addr = *(struct sockaddr_in *)sa;
+           if (saddr) {
+               memcpy(saddr, sa, sa->sa_len);
+               *slen = sa->sa_len;
+           }
        } else
            printf("Unknown socket family %d in NetReceive\n", sa->sa_family);
        FREE(sa, M_SONAME);
@@ -100,8 +102,8 @@ osi_StopListener(void)
 }
 
 int
-osi_NetSend(osi_socket asocket, struct sockaddr_in *addr, struct iovec *dvec,
-           int nvecs, afs_int32 alength, int istack)
+osi_NetSend(osi_socket asocket, struct sockaddr_storage *saddr, int salen,
+           struct iovec *dvec, int nvecs, afs_int32 alength, int istack)
 {
     register afs_int32 code;
     int i;
@@ -128,7 +130,8 @@ osi_NetSend(osi_socket asocket, struct sockaddr_in *addr, struct iovec *dvec,
     u.uio_procp = NULL;
 #endif
 
-    addr->sin_len = sizeof(struct sockaddr_in);
+    saddr->ss_len = saddr->ss_family == AF_INET6 ?
+               sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in);
 
     if (haveGlock)
        AFS_GUNLOCK();
@@ -137,11 +140,11 @@ osi_NetSend(osi_socket asocket, struct sockaddr_in *addr, struct iovec *dvec,
 #endif
 #ifdef AFS_FBSD50_ENV
     code =
-       sosend(asocket, (struct sockaddr *)addr, &u, NULL, NULL, 0,
+       sosend(asocket, (struct sockaddr *)saddr, &u, NULL, NULL, 0,
               curthread);
 #else
     code =
-       sosend(asocket, (struct sockaddr *)addr, &u, NULL, NULL, 0, curproc);
+       sosend(asocket, (struct sockaddr *)saddr, &u, NULL, NULL, 0, curproc);
 #endif
 #if KNET_DEBUG
     if (code) {
index a20b6f1d703d7d06410a4f0a6c15fafa7f58789a..f091b283a3465cede2c04ee46dba6498befd0ff9 100644 (file)
@@ -455,7 +455,7 @@ int rx_InitAddrs(struct sockaddr_storage *saddrs, int *types, int *salens,
     /* Allocate and initialize a socket for client and perhaps server
      * connections. */
 
-    rx_socket = -1;
+    rx_socket = OSI_NULLSOCKET;
     rx_port = 0;
 
     for (i = 0; i < nelem; i++) {
@@ -7101,7 +7101,7 @@ rxi_AddRpcStat(struct rx_queue *stats, afs_uint32 rxInterface,
            case AF_INET6:
                rpc_stat->stats[i].remote_peer = 0xffffffff;
                break;
-#endif AF_INET6
+#endif /* AF_INET6 */
            }
            rpc_stat->stats[i].remote_port = rx_ss2pn(saddr);
            rpc_stat->stats[i].remote_is_server = isServer;