]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Make ubik use unsigned addresses
authorAndrew Deason <adeason@sinenomine.net>
Fri, 27 Nov 2009 22:56:19 +0000 (17:56 -0500)
committerDerrick Brashear <shadow@dementia.org>
Wed, 23 Jun 2010 21:50:55 +0000 (14:50 -0700)
The ubik code currently treats IPv4 addresses as both signed and
unsigned 32-bit ints. Make some instances use unsigned ints to make ubik
more consistent and squash a couple of warnings.

Note that this slightly alters the signatures of the public ubik
functions ubeacon_InitServerListByInfo, ubeacon_InitServerList,
ubik_ServerInitByInfo, ubik_ServerInit, ubik_ParseClientList, and
ubik_ParseServerList, to use unsigned addresses.

Change-Id: I27b6170d4de0080bf66d51a6b5332e65685ddef8
Reviewed-on: http://gerrit.openafs.org/875
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
24 files changed:
README.WARNINGS
src/bucoord/ubik_db_if.c
src/budb/globals.h
src/budb/server.c
src/kauth/admin_tools.c
src/kauth/authclient.c
src/kauth/ka_util.c
src/kauth/kaserver.c
src/kauth/kaserver.h
src/kauth/kautils.p.h
src/kauth/klog.c
src/kauth/kpasswd.c
src/kauth/manyklog.c
src/ptserver/ptserver.c
src/ptserver/ubik.c
src/ubik/Makefile.in
src/ubik/beacon.c
src/ubik/ubik.c
src/ubik/ubik.p.h
src/ubik/ubikclient.c
src/ubik/ubikcmd.c
src/ubik/utst_client.c
src/ubik/utst_server.c
src/vlserver/vlserver.c

index 2faf0ab6285a52cb821920a7a97af12e9619a276..acf50f22b741d25ab4f8d13696797dded805c538 100644 (file)
@@ -58,9 +58,6 @@ libadmin/samples/rxstat_query_peer.c : all : util_RPCStatsStateGet types
 libadmin/samples/rxstat_query_process.c : all : util_RPCStatsStateGet types
 libadmin/test/client.c : all         : util_RPCStatsStateGet types
 rx/rx.c                     : all (pthread) : rxkad_global_stats_init not proto'd
-ubik/beacon.c        : all           : Ubik uses signed/unsigned 
-                                      interchangably for IP addresses, a 
-                                      fix will require API changes.
 ubik/ubikclient.c    : strict-protos : ubik_Call
 uss/uss_kauth.c      : all          : ubik_Call
 viced/fsprobe.c      : all          : ubik_Call
index c0de8ef351052f5aac517454445f5b1e2f95025b..3eea17806973f9a8977f129a9acdce0cfcf86699 100644 (file)
@@ -1146,7 +1146,7 @@ ubik_Call_SingleServer(int (*aproc) (), struct ubik_client *aclient,
 int
 udbLocalInit(void)
 {
-    afs_int32 serverList[MAXSERVERS];
+    afs_uint32 serverList[MAXSERVERS];
     char hostname[256];
     char *args[3];
     int i;
index 262509840c8f2976fbfc0dfa031719485091fe90..2f85eebfb80a5e5c662d8203a18f2d5206dd6142 100644 (file)
@@ -33,8 +33,8 @@ struct buServerConfS {
     FILE *log;                 /* log file for status/errors */
 
     /* ubik and comm. related */
-    afs_int32 myHost;
-    afs_int32 serverList[MAXSERVERS];  /* list of ubik servers */
+    afs_uint32 myHost;
+    afs_uint32 serverList[MAXSERVERS]; /* list of ubik servers */
     char *cellConfigdir;       /* afs cell config. directory */
     struct ubik_dbase *database;       /* handle for the database */
 
index a165403033599986dbf28251d53b7d907014d7fc..b30986ab497cd42687f09f303a38a5489c43de51 100644 (file)
@@ -57,7 +57,7 @@ int truncateDatabase(void);
 int parseServerList(struct cmd_item *);
 
 char lcell[MAXKTCREALMLEN];
-afs_int32 myHost = 0;
+afs_uint32 myHost = 0;
 int helpOption;
 
 /* server's global configuration information. This is exported to other
@@ -95,8 +95,8 @@ BU_rxstat_userok(struct rx_call *call)
 }
 
 int
-convert_cell_to_ubik(struct afsconf_cell *cellinfo, afs_int32 *myHost, 
-                    afs_int32 *serverList)
+convert_cell_to_ubik(struct afsconf_cell *cellinfo, afs_uint32 *myHost,
+                    afs_uint32 *serverList)
 {
     int i;
     char hostname[64];
@@ -109,7 +109,7 @@ convert_cell_to_ubik(struct afsconf_cell *cellinfo, afs_int32 *myHost,
        printf("prserver: couldn't get address of this host.\n");
        BUDB_EXIT(1);
     }
-    memcpy(myHost, th->h_addr, sizeof(afs_int32));
+    memcpy(myHost, th->h_addr, sizeof(afs_uint32));
 
     for (i = 0; i < cellinfo->numServers; i++)
        /* omit my host from serverList */
index f0ebfb5dad7427cb99bc08e50e246de37c0ecf2a..31718d492ba3bc1456069d4c89c3446255619746 100644 (file)
@@ -1277,7 +1277,7 @@ int init = 0, noauth;
 char name[MAXKTCNAMELEN];
 char instance[MAXKTCNAMELEN];
 char newCell[MAXKTCREALMLEN];
-afs_int32 serverList[MAXSERVERS];
+afs_uint32 serverList[MAXSERVERS];
 
 int
 NoAuth(struct cmd_syndesc *as, void *arock)
index 3d262433a705cbe4c047d3b62013bdba213ff9a7..5a6155f7f32b682b5e5df5eab2d3e9dddf08b805 100644 (file)
@@ -62,7 +62,7 @@ static int debug = 0;
    "explicit".  The cell can then be used to debug experimental servers. */
 
 void
-ka_ExplicitCell(char *cell, afs_int32 serverList[])
+ka_ExplicitCell(char *cell, afs_uint32 serverList[])
 {
     int i;
 
index 5e529dce81954f95bd91ec0a1d7a2d6ac379a31f..14b58599a949dd257294222da832d8d9e1ecfb63 100644 (file)
@@ -63,7 +63,7 @@ struct ubik_dbase *KA_dbase;
 int MinHours = 0;
 int npwSums = KA_NPWSUMS;
 afs_int32 verbose_track = 1;
-afs_int32 myHost = 0;
+afs_uint32 myHost = 0;
 
 main(argc, argv)
      int argc;
index 9c67015908517710028406323033d00755a1d84b..18006eff4506e45687abc4f102542efab2c96f1c 100644 (file)
@@ -53,7 +53,7 @@
 
 struct kadstats dynamic_statistics;
 struct ubik_dbase *KA_dbase;
-afs_int32 myHost = 0;
+afs_uint32 myHost = 0;
 afs_int32 verbose_track = 1;
 afs_int32 krb4_cross = 0;
 afs_int32 rxBind = 0;
@@ -103,8 +103,8 @@ initialize_dstats(void)
 }
 
 static int
-convert_cell_to_ubik(struct afsconf_cell *cellinfo, afs_int32 *myHost,
-                    afs_int32 *serverList)
+convert_cell_to_ubik(struct afsconf_cell *cellinfo, afs_uint32 *myHost,
+                    afs_uint32 *serverList)
 {
     int i;
     char hostname[64];
@@ -117,7 +117,7 @@ convert_cell_to_ubik(struct afsconf_cell *cellinfo, afs_int32 *myHost,
        ViceLog(0, ("kaserver: couldn't get address of this host.\n"));
        exit(1);
     }
-    memcpy(myHost, th->h_addr, sizeof(afs_int32));
+    memcpy(myHost, th->h_addr, sizeof(afs_uint32));
 
     for (i = 0; i < cellinfo->numServers; i++)
        if (cellinfo->hostAddr[i].sin_addr.s_addr != *myHost) {
@@ -150,7 +150,7 @@ main(int argc, char *argv[])
 {
     afs_int32 code;
     char *whoami = argv[0];
-    afs_int32 serverList[MAXSERVERS];
+    afs_uint32 serverList[MAXSERVERS];
     struct afsconf_cell cellinfo;
     char *cell;
     const char *cellservdb, *dbpath, *lclpath;
index ce77443231f7dc60bd505a029269068dd7fcce07..00ec90a33fecd4ba20fb5cf629f06b9dcd90b1ba 100644 (file)
@@ -148,7 +148,7 @@ struct kaOldKeys {
 
 extern struct kaheader cheader;
 extern struct kadstats dynamic_statistics;
-extern afs_int32 myHost;
+extern afs_uint32 myHost;
 
 extern int kaux_opendb(char *path);
 
index 3504aa727e2c3d7a761006cfec3054ecb200721a..2738a8b655ecfa5adb7287b344e76847bdf0a96b 100644 (file)
@@ -62,7 +62,7 @@ extern afs_int32 ka_GetAdminToken(char *name, char *instance, char *cell,
 extern afs_int32 ka_VerifyUserToken(char *name, char *instance, char *cell,
                                    struct ktc_encryptionKey *key);
 
-extern void ka_ExplicitCell(char *cell, afs_int32 serverList[]
+extern void ka_ExplicitCell(char *cell, afs_uint32 serverList[]
     );
 
 extern afs_int32 ka_GetServers(char *cell, struct afsconf_cell *cellinfo);
index f227decb1106666049c5911fb836539ca34aa09e..ff5eb34761e50405b708413595326450ffd5b6da 100644 (file)
@@ -155,7 +155,7 @@ CommandProc(struct cmd_syndesc *as, void *arock)
     char instance[MAXKTCNAMELEN];
     char cell[MAXKTCREALMLEN];
     char realm[MAXKTCREALMLEN];
-    afs_int32 serverList[MAXSERVERS];
+    afs_uint32 serverList[MAXSERVERS];
     char *lcell;               /* local cellname */
     char lrealm[MAXKTCREALMLEN];       /* uppercase copy of local cellname */
     int code;
index e5437439642a8ee4f71bfc7746ce8be2eae1e7a9..f937ccf72915de44cc727e706b49529127cb9d24 100644 (file)
@@ -202,7 +202,7 @@ CommandProc(struct cmd_syndesc *as, void *arock)
     char instance[MAXKTCNAMELEN] = "";
     char cell[MAXKTCREALMLEN] = "";
     char realm[MAXKTCREALMLEN] = "";
-    afs_int32 serverList[MAXSERVERS];
+    afs_uint32 serverList[MAXSERVERS];
     char *lcell;               /* local cellname */
     int code;
     int i;
index 5f217e1901a31ccdbd005921b99fcb554e186140..0e19395d1e732d47d9946e87a7470e2f9d3000f6 100644 (file)
@@ -156,7 +156,7 @@ CommandProc(struct cmd_syndesc *as, void *arock)
     char instance[MAXKTCNAMELEN];
     char cell[MAXKTCREALMLEN];
     char realm[MAXKTCREALMLEN];
-    afs_int32 serverList[MAXSERVERS];
+    afs_uint32 serverList[MAXSERVERS];
     char *lcell;               /* local cellname */
     char lrealm[MAXKTCREALMLEN];       /* uppercase copy of local cellname */
     int code;
index b9963fd87d9f9472242f79025cdea480e6059c65..d6860ffc61f5ffd34447c06653cf1ef0408450bd 100644 (file)
@@ -205,7 +205,7 @@ int
 main(int argc, char **argv)
 {
     register afs_int32 code;
-    afs_int32 myHost;
+    afs_uint32 myHost;
     register struct hostent *th;
     char hostname[64];
     struct rx_service *tservice;
@@ -444,7 +444,7 @@ main(int argc, char **argv)
        fprintf(stderr, "ptserver: couldn't get address of this host.\n");
        PT_EXIT(1);
     }
-    memcpy(&myHost, th->h_addr, sizeof(afs_int32));
+    memcpy(&myHost, th->h_addr, sizeof(afs_uint32));
 
     /* get list of servers */
     code =
index 2124e6c17919ab11e510422b852bf00c6c1715f3..befe081304db83c8089d30c553d0c3dd00b545cd 100644 (file)
@@ -26,7 +26,7 @@ extern int dbase_fd;
 struct ubik_dbase *dbase;
 
 int
-ubik_ServerInit(afs_int32 myHost, short myPort, afs_int32 serverList[],
+ubik_ServerInit(afs_uint32 myHost, short myPort, afs_uint32 serverList[],
                 const char *pathName, struct ubik_dbase **dbase)
 {
     return (0);
index 7b9136e9241473618c0b9bf0cbfa75c43f0a6b6a..92ae7897c45b064de9bcb30e21dffa33ef567d47 100644 (file)
@@ -120,12 +120,7 @@ libubik.a: ${LIBOBJS} AFS_component_version_number.o
 disk.o: disk.c ${INCLS}
 uinit.o: uinit.c ${INCLS}
 remote.o: remote.c ${INCLS}
-
-# beacon.c uses signed and unsigned interchangably for IP addresses. Fixing
-# will require changing the Ubik API
 beacon.o: beacon.c ${INCLS}
-       $(CC) $(CFLAGS) @CFLAGS_NOERROR@ -c $<
-
 lock.o: lock.c ${INCLS}
 recovery.o: recovery.c ${INCLS}
 ubik.o: ubik.c ${INCLS}
index ee68a9e5f9bd370e2d1eac7effaf5af33747a70a..da06441ffcc529a88ee0707daff53442f2856c08 100644 (file)
@@ -54,10 +54,10 @@ int (*ubik_CRXSecurityProc) (void *rock, struct rx_securityClass **,
 void *ubik_CRXSecurityRock;
 afs_int32 ubikSecIndex;
 struct rx_securityClass *ubikSecClass;
-static int ubeacon_InitServerListCommon(afs_int32 ame,
+static int ubeacon_InitServerListCommon(afs_uint32 ame,
                                        struct afsconf_cell *info,
                                        char clones[],
-                                       afs_int32 aservers[]);
+                                       afs_uint32 aservers[]);
 static int verifyInterfaceAddress(afs_uint32 *ame, struct afsconf_cell *info,
                                  afs_uint32 aservers[]);
 static int updateUbikNetworkAddress(afs_uint32 ubik_host[UBIK_MAX_INTERFACE_ADDR]);
@@ -145,7 +145,7 @@ ubeacon_AmSyncSite(void)
  * \see ubeacon_InitServerListCommon()
  */
 int
-ubeacon_InitServerListByInfo(afs_int32 ame, struct afsconf_cell *info, 
+ubeacon_InitServerListByInfo(afs_uint32 ame, struct afsconf_cell *info,
                             char clones[])
 {
     afs_int32 code;
@@ -161,7 +161,7 @@ ubeacon_InitServerListByInfo(afs_int32 ame, struct afsconf_cell *info,
  * \see ubeacon_InitServerListCommon()
  */
 int
-ubeacon_InitServerList(afs_int32 ame, register afs_int32 aservers[])
+ubeacon_InitServerList(afs_uint32 ame, register afs_uint32 aservers[])
 {
     afs_int32 code;
 
@@ -197,8 +197,8 @@ ubeacon_InitServerList(afs_int32 ame, register afs_int32 aservers[])
  * \see ubeacon_InitServerList(), ubeacon_InitServerListByInfo()
  */
 int
-ubeacon_InitServerListCommon(afs_int32 ame, struct afsconf_cell *info, 
-                            char clones[], register afs_int32 aservers[])
+ubeacon_InitServerListCommon(afs_uint32 ame, struct afsconf_cell *info,
+                            char clones[], register afs_uint32 aservers[])
 {
     register struct ubik_server *ts;
     afs_int32 me = -1;
index 78e1402fe89c4198e939538bae27d0b8a336a739..b35429049de9319fb0e3f14ade04cbe75153925a 100644 (file)
@@ -384,9 +384,9 @@ ContactQuorum_DISK_SetVersion(register struct ubik_trans *atrans, int aflags,
  * \see ubik_ServerInit(), ubik_ServerInitByInfo()
  */
 int
-ubik_ServerInitCommon(afs_int32 myHost, short myPort,
+ubik_ServerInitCommon(afs_uint32 myHost, short myPort,
                      struct afsconf_cell *info, char clones[],
-                     afs_int32 serverList[], const char *pathName,
+                     afs_uint32 serverList[], const char *pathName,
                      struct ubik_dbase **dbase)
 {
     register struct ubik_dbase *tdb;
@@ -569,7 +569,7 @@ ubik_ServerInitCommon(afs_int32 myHost, short myPort,
  * \see ubik_ServerInitCommon()
  */
 int
-ubik_ServerInitByInfo(afs_int32 myHost, short myPort,
+ubik_ServerInitByInfo(afs_uint32 myHost, short myPort,
                      struct afsconf_cell *info, char clones[],
                      const char *pathName, struct ubik_dbase **dbase)
 {
@@ -585,7 +585,7 @@ ubik_ServerInitByInfo(afs_int32 myHost, short myPort,
  * \see ubik_ServerInitCommon()
  */
 int
-ubik_ServerInit(afs_int32 myHost, short myPort, afs_int32 serverList[],
+ubik_ServerInit(afs_uint32 myHost, short myPort, afs_uint32 serverList[],
                const char *pathName, struct ubik_dbase **dbase)
 {
     afs_int32 code;
index a061b53cb6dd0a128bb7fdb51ed7430de5c58e6b..bbf832ec44b9c903a83aa81f6d06e0c03ed391f4 100644 (file)
@@ -443,10 +443,10 @@ extern afs_uint32 ubikGetPrimaryInterfaceAddr(afs_uint32 addr);
 struct afsconf_cell;
 extern void ubeacon_Debug(struct ubik_debug *aparm);
 extern int ubeacon_AmSyncSite(void);
-extern int ubeacon_InitServerListByInfo(afs_int32 ame, 
-                                       struct afsconf_cell *info, 
+extern int ubeacon_InitServerListByInfo(afs_uint32 ame,
+                                       struct afsconf_cell *info,
                                        char clones[]);
-extern int ubeacon_InitServerList(afs_int32 ame, afs_int32 aservers[]);
+extern int ubeacon_InitServerList(afs_uint32 ame, afs_uint32 aservers[]);
 extern void *ubeacon_Interact(void *);
 /*\}*/
 
@@ -499,12 +499,12 @@ extern afs_int32 ubik_nBuffers;
 
 /*! \name ubik.c */
 struct afsconf_cell;
-extern int ubik_ServerInitByInfo(afs_int32 myHost, short myPort,
+extern int ubik_ServerInitByInfo(afs_uint32 myHost, short myPort,
                                 struct afsconf_cell *info, char clones[],
                                 const char *pathName,
                                 struct ubik_dbase **dbase);
-extern int ubik_ServerInit(afs_int32 myHost, short myPort, 
-                          afs_int32 serverList[],
+extern int ubik_ServerInit(afs_uint32 myHost, short myPort,
+                          afs_uint32 serverList[],
                           const char *pathName, struct ubik_dbase **dbase);
 extern int ubik_BeginTrans(register struct ubik_dbase *dbase,
                           afs_int32 transMode, struct ubik_trans **transPtr);
@@ -541,7 +541,7 @@ extern int ubik_CheckCache(struct ubik_trans *atrans,
 
 /*! \name ubikclient.c */
 
-extern int ubik_ParseClientList(int argc, char **argv, afs_int32 * aothers);
+extern int ubik_ParseClientList(int argc, char **argv, afs_uint32 * aothers);
 extern unsigned int afs_random(void);
 extern int ubik_ClientInit(register struct rx_connection **serverconns,
                           struct ubik_client **aclient);
@@ -562,8 +562,8 @@ extern afs_int32 ubik_Call_New(int (*aproc) (), register struct ubik_client
 /*\}*/
 
 /* \name ubikcmd.c */
-extern int ubik_ParseServerList(int argc, char **argv, afs_int32 *ahost, 
-                               afs_int32 *aothers);
+extern int ubik_ParseServerList(int argc, char **argv, afs_uint32 *ahost,
+                               afs_uint32 *aothers);
 /*\}*/
 
 /* \name uinit.c */
index d1af899bbeef6732c7d007fae4e65383a339ffe8..59633c29d3c47a262cde9d6c7bd9cd7be17b8d8a 100644 (file)
@@ -47,12 +47,13 @@ short ubik_initializationState;     /*!< initial state is zero */
  * \brief Parse list for clients.
  */
 int
-ubik_ParseClientList(int argc, char **argv, afs_int32 * aothers)
+ubik_ParseClientList(int argc, char **argv, afs_uint32 * aothers)
 {
     register afs_int32 i;
     register char *tp;
     register struct hostent *th;
-    afs_int32 temp, counter;
+    afs_uint32 temp;
+    afs_int32 counter;
     int inServer;
 
     inServer = 0;              /* haven't seen -servers yet */
index a51ac4bc8eeb0a23d2f10315d0738398f90ca004..a354d99bd7fba0153fe5d9122fb79089a248e918 100644 (file)
  * applications.
  */
 int
-ubik_ParseServerList(int argc, char **argv, afs_int32 *ahost, 
-                    afs_int32 *aothers)
+ubik_ParseServerList(int argc, char **argv, afs_uint32 *ahost,
+                    afs_uint32 *aothers)
 {
     register afs_int32 i;
     register char *tp;
     register struct hostent *th;
     char hostname[64];
-    afs_int32 myHost, temp, counter;
+    afs_uint32 myHost, temp;
+    afs_int32 counter;
     int inServer, sawServer;
 
     gethostname(hostname, sizeof(hostname));
     th = gethostbyname(hostname);
     if (!th)
        return UBADHOST;
-    memcpy(&myHost, th->h_addr, sizeof(afs_int32));
+    memcpy(&myHost, th->h_addr, sizeof(afs_uint32));
     *ahost = myHost;
 
     inServer = 0;              /* haven't seen -servers yet */
@@ -68,7 +69,7 @@ ubik_ParseServerList(int argc, char **argv, afs_int32 *ahost,
                th = gethostbyname(tp);
                if (!th)
                    return UBADHOST;
-               memcpy(&temp, th->h_addr, sizeof(afs_int32));
+               memcpy(&temp, th->h_addr, sizeof(afs_uint32));
                if (temp != myHost) {
                    if (counter++ >= MAXSERVERS)
                        return UNHOSTS;
index c8c1f0bb78f91fe762262f41e6b87f9c69c78da3..44f85fa6c26553023679fc035b28f7250b743aaa 100644 (file)
@@ -39,7 +39,7 @@ main(int argc, char **argv)
 {
     register afs_int32 code;
     struct ubik_client *cstruct = 0;
-    afs_int32 serverList[MAXSERVERS];
+    afs_uint32 serverList[MAXSERVERS];
     struct rx_connection *serverconns[MAXSERVERS];
     struct rx_securityClass *sc;
     register afs_int32 i;
index ca995ae5ccbb6fecf4baac1f8bd957e071252cc3..2ca01501f0212539bc83ac7816f40ed80674b78a 100644 (file)
@@ -278,8 +278,8 @@ int
 main(int argc, char **argv)
 {
     register afs_int32 code, i;
-    afs_int32 serverList[MAXSERVERS];
-    afs_int32 myHost;
+    afs_uint32 serverList[MAXSERVERS];
+    afs_uint32 myHost;
     struct rx_service *tservice;
     struct rx_securityClass *sc[2];
     char dbfileName[128];
index e96fcbb07c6c372fdefae85c5d926722edde5f07..448d0f510f9f5d9f140d796d2774669897906b19 100644 (file)
@@ -132,7 +132,7 @@ int
 main(int argc, char **argv)
 {
     register afs_int32 code;
-    afs_int32 myHost;
+    afs_uint32 myHost;
     struct rx_service *tservice;
     struct rx_securityClass **securityClasses;
     afs_int32 numClasses;
@@ -300,7 +300,7 @@ main(int argc, char **argv)
               hostname);
        exit(1);
     }
-    memcpy(&myHost, th->h_addr, sizeof(afs_int32));
+    memcpy(&myHost, th->h_addr, sizeof(afs_uint32));
 
 #if !defined(AFS_HPUX_ENV) && !defined(AFS_NT40_ENV)
     signal(SIGXCPU, CheckSignal_Signal);