From: Wilfried Goesgens Date: Mon, 23 Jan 2012 20:30:36 +0000 (+0100) Subject: Networker: Cleanup X-Git-Tag: v8.11~217^2~6 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=e87e48ef3d17a2010e08d22ea6d72693c8d1e441 Networker: Cleanup - terminate lowercase strings - don't browse the networkers directory, if we're not doing a full scan --- diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index 599b90d1d..ba87cca5e 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -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);