Networker: Cleanup
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 23 Jan 2012 20:30:36 +0000 (21:30 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 23 Jan 2012 20:30:36 +0000 (21:30 +0100)
  - terminate lowercase strings
  - don't browse the networkers directory, if we're not doing a full scan

citadel/modules/network/serv_network.c

index 599b90d1d8d820070b514c442973b03e71dcc0a1..ba87cca5e4ce42d43f563e7bed570154a704f741 100644 (file)
@@ -112,7 +112,7 @@ int GetNetworkedRoomNumbers(const char *DirName, HashList *DirList)
        struct dirent *d;
        struct dirent *filedir_entry;
        long RoomNR;
-       long Count;
+       long Count = 0;
                
        filedir = opendir (DirName);
        if (filedir == NULL) {
@@ -306,7 +306,7 @@ void network_queue_interesting_rooms(struct ctdlroom *qrbuf, void *data) {
                ptr->namelen = ROOMNAMELEN - 1;
 
        memcpy (ptr->name, qrbuf->QRname, ptr->namelen);
-       ptr->name[ptr->namelen] = 0;
+       ptr->name[ptr->namelen] = '\0';
        ptr->QRNum = qrbuf->QRnumber;
 
        for (i = 0; i < ptr->namelen; i++)
@@ -314,6 +314,7 @@ void network_queue_interesting_rooms(struct ctdlroom *qrbuf, void *data) {
                ptr->lcname[i] = tolower(ptr->name[i]);
        }
 
+       ptr->lcname[ptr->namelen] = '\0';
        ptr->key = hashlittle(ptr->lcname, ptr->namelen, 9872345);
        ptr->next = RP->rplist;
        RP->rplist = ptr;
@@ -334,15 +335,16 @@ void network_queue_room(struct ctdlroom *qrbuf, void *data) {
                ptr->namelen = ROOMNAMELEN - 1;
 
        memcpy (ptr->name, qrbuf->QRname, ptr->namelen);
-       ptr->name[ptr->namelen] = 0;
+       ptr->name[ptr->namelen] = '\0';
        ptr->QRNum = qrbuf->QRnumber;
 
        for (i = 0; i < ptr->namelen; i++)
        {
                ptr->lcname[i] = tolower(ptr->name[i]);
        }
-
+       ptr->lcname[ptr->namelen] = '\0';
        ptr->key = hashlittle(ptr->lcname, ptr->namelen, 9872345);
+
        begin_critical_section(S_RPLIST);
        ptr->next = rplist;
        rplist = ptr;
@@ -524,7 +526,8 @@ void network_do_queue(void) {
        end_critical_section(S_RPLIST);
 
        RL.RoomsInterestedIn = NewHash(1, lFlathash);
-       if (!GetNetworkedRoomNumbers(ctdl_netcfg_dir, RL.RoomsInterestedIn))
+       if (full_processing &&
+           (GetNetworkedRoomNumbers(ctdl_netcfg_dir, RL.RoomsInterestedIn)==0))
        {
                doing_queue = 0;
                DeleteHash(&RL.RoomsInterestedIn);