From e87e48ef3d17a2010e08d22ea6d72693c8d1e441 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Mon, 23 Jan 2012 21:30:36 +0100 Subject: [PATCH] Networker: Cleanup - terminate lowercase strings - don't browse the networkers directory, if we're not doing a full scan --- citadel/modules/network/serv_network.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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); -- 2.30.2