afscp: tellmeaboutyourself stub wants host byte order
authorDerrick Brashear <shadow@dementia.org>
Thu, 12 May 2011 14:59:53 +0000 (10:59 -0400)
committerDerrick Brashear <shadow@dementia.org>
Thu, 12 May 2011 16:40:38 +0000 (09:40 -0700)
we get network byte order addresses from rx_getAllAddr; swap back
to host order.

Change-Id: Id0c5e70399422593c574958f905984c9edf8e6d4
Reviewed-on: http://gerrit.openafs.org/4644
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/libafscp/afscp_callback.c

index b5fde52..d6c1217 100644 (file)
@@ -52,6 +52,7 @@ static int
 init_afs_cb(void)
 {
     int cm_noIPAddr;           /* number of client network interfaces */
+    int i;
 #ifdef AFS_NT40_ENV
     /*
      * This Windows section was pulled in from changes to src/venus/afsio.c but is
@@ -64,7 +65,6 @@ init_afs_cb(void)
     int cm_SubnetMask[CM_MAXINTERFACE_ADDR];   /* client's subnet mask in host order */
     int cm_NetMtu[CM_MAXINTERFACE_ADDR];       /* client's MTU sizes */
     int cm_NetFlags[CM_MAXINTERFACE_ADDR];     /* network flags */
-    int i;
 
     UuidCreate((UUID *) & afs_cb_interface.uuid);
     cm_noIPAddr = CM_MAXINTERFACE_ADDR;
@@ -91,8 +91,12 @@ init_afs_cb(void)
                      AFS_MAX_INTERFACE_ADDR);
     if (cm_noIPAddr < 0)
        afs_cb_interface.numberOfInterfaces = 0;
-    else
+    else {
        afs_cb_interface.numberOfInterfaces = cm_noIPAddr;
+       /* we expect these in host byte order */
+       for (i = 0; i < cm_noIPAddr; i++)
+           afs_cb_interface.addr_in[i] = ntohl(afs_cb_interface.addr_in[i]);
+    }
 #endif
     afs_cb_inited = 1;
     return 0;