Always verify that the client is fully reachable before talking
[openafs.git] / src / viced / viced.c
index 1192020..69299df 100644 (file)
@@ -256,7 +256,7 @@ static int get_key(arock, akvno, akey)
     code = afsconf_GetKey(confDir, akvno, tkey.key);
     if (code)
        return code;
-    bcopy(tkey.key, akey, sizeof(tkey.key));
+    memcpy(akey, tkey.key, sizeof(tkey.key));
     return 0;
 
 } /*get_key*/
@@ -349,6 +349,11 @@ main(argc, argv)
     }
 #endif
     confDir = afsconf_Open(AFSDIR_SERVER_ETC_DIRPATH);
+    if (!confDir) {
+       fprintf(stderr, "Unable to open config directory %s\n",
+               AFSDIR_SERVER_ETC_DIRPATH);
+       exit(-1);
+    }
 
     NewParms(1);
 
@@ -483,6 +488,7 @@ main(argc, argv)
     rx_SetDestroyConnProc(tservice, (char (*)()) h_FreeConnection);
     rx_SetMinProcs(tservice, 3);
     rx_SetMaxProcs(tservice, lwps);
+    rx_SetCheckReach(tservice, 1);
 
     tservice = rx_NewService(0,  RX_STATS_SERVICE_ID, "rpcstats", sc, 4, RXSTATS_ExecuteRequest);
     if (!tservice) {
@@ -604,7 +610,7 @@ main(argc, argv)
     }
     else {
        char hoststr[16];
-       bcopy(he->h_addr, &FS_HostAddr_NBO, 4);
+       memcpy(&FS_HostAddr_NBO, he->h_addr, 4);
        afs_inet_ntoa_r(FS_HostAddr_NBO, hoststr);
        FS_HostAddr_HBO = ntohl(FS_HostAddr_NBO);
        ViceLog(0,("FileServer %s has address %s (0x%x or 0x%x in host byte order)\n",
@@ -742,9 +748,9 @@ static void ClearXStatValues()
     /*
      * Zero all xstat-related structures.
      */
-    bzero((char *)(&afs_perfstats), sizeof(struct afs_PerfStats));
+    memset((char *)(&afs_perfstats), 0, sizeof(struct afs_PerfStats));
 #if FS_STATS_DETAILED
-    bzero((char *)(&afs_FullPerfStats), sizeof(struct fs_stats_FullPerfStats));
+    memset((char *)(&afs_FullPerfStats), 0, sizeof(struct fs_stats_FullPerfStats));
 
     /*
      * That's not enough.  We have to set reasonable minima for
@@ -1591,7 +1597,7 @@ InitVL() {
                                 AFSDIR_SERVER_NETINFO_FILEPATH,
                                 AFSDIR_SERVER_NETRESTRICT_FILEPATH);
       if (code < 0) {
-       ViceLog(0,("Can' register any valid addresses:%s\n",reason));
+       ViceLog(0,("Can't register any valid addresses: %s\n",reason));
        exit(1);
       }
       FS_HostAddr_cnt = (afs_uint32) code;