From 1faea6e59980cdcc3656283f20bfc90e1d62cf50 Mon Sep 17 00:00:00 2001 From: Adam Megacz Date: Fri, 23 Mar 2007 12:14:41 -0700 Subject: [PATCH] make bozo honor -rxbind correctly Bozo needs to call rxInitHost() rather than rxInit() when -rxbind is present. This patch causes it to read NetInfo/NetRestrict earlier in the startup process so it can make that decision. FIXES 57286 Reviewed-on: http://gerrit.openafs.org/4729 Tested-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear (cherry picked from commit 6260c4ae51e7a2807596ddf1bd49620f98eed94c) Change-Id: If873686f7a7742f82fd5fadf43c6f44379448c29 Reviewed-on: http://gerrit.openafs.org/5771 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/bozo/bosserver.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/bozo/bosserver.c b/src/bozo/bosserver.c index b439e3a38..632e6ada3 100644 --- a/src/bozo/bosserver.c +++ b/src/bozo/bosserver.c @@ -1107,8 +1107,28 @@ main(int argc, char **argv, char **envp) /* Write current state of directory permissions to log file */ DirAccessOK(); + if (rxBind) { + afs_int32 ccode; + if (AFSDIR_SERVER_NETRESTRICT_FILEPATH || + AFSDIR_SERVER_NETINFO_FILEPATH) { + char reason[1024]; + ccode = parseNetFiles(SHostAddrs, NULL, NULL, + ADDRSPERSITE, reason, + AFSDIR_SERVER_NETINFO_FILEPATH, + AFSDIR_SERVER_NETRESTRICT_FILEPATH); + } else { + ccode = rx_getAllAddr(SHostAddrs, ADDRSPERSITE); + } + if (ccode == 1) + host = SHostAddrs[0]; + } + for (i = 0; i < 10; i++) { - code = rx_Init(htons(AFSCONF_NANNYPORT)); + if (rxBind) { + code = rx_InitHost(host, htons(AFSCONF_NANNYPORT)); + } else { + code = rx_Init(htons(AFSCONF_NANNYPORT)); + } if (code) { bozo_Log("can't initialize rx: code=%d\n", code); sleep(3); @@ -1189,23 +1209,6 @@ main(int argc, char **argv, char **envp) rx_SetMaxMTU(rxMaxMTU); } - if (rxBind) { - afs_int32 ccode; - if (AFSDIR_SERVER_NETRESTRICT_FILEPATH || - AFSDIR_SERVER_NETINFO_FILEPATH) { - char reason[1024]; - ccode = parseNetFiles(SHostAddrs, NULL, NULL, - ADDRSPERSITE, reason, - AFSDIR_SERVER_NETINFO_FILEPATH, - AFSDIR_SERVER_NETRESTRICT_FILEPATH); - } else - { - ccode = rx_getAllAddr(SHostAddrs, ADDRSPERSITE); - } - if (ccode == 1) - host = SHostAddrs[0]; - } - tservice = rx_NewServiceHost(host, 0, /* service id */ 1, "bozo", securityClasses, numClasses, BOZO_ExecuteRequest); -- 2.39.5