Fix size calculation. thanks clang.
[citadel.git] / citadel / netconfig.c
index 8afd22a4bf440539f4cc9e78f92d8c4c3ab03f5d..3161b11003bbff3ad471401f3536b179fc459f22 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "include/ctdl_module.h"
 #include "serv_extensions.h"
+#include "config.h"
 
 void vFreeRoomNetworkStruct(void *vOneRoomNetCfg);
 void FreeRoomNetworkStructContent(OneRoomNetCfg *OneRNCfg);
@@ -176,6 +177,9 @@ int ReadRoomNetConfigFile(OneRoomNetCfg **pOneRNCfg, char *filename)
                *pOneRNCfg = NULL;
                return 0;
        }
+       fchown(fd, CTDLUID, (-1));
+       fchmod(fd, 0600);
+
        if (*pOneRNCfg != NULL)
        {
                OneRNCfg = *pOneRNCfg;
@@ -439,7 +443,7 @@ void LoadAllNetConfigs(void)
               (filedir_entry != NULL))
        {
 #ifdef _DIRENT_HAVE_D_NAMLEN
-               d_namelen = filedir_entry->d_namelen;
+               d_namelen = filedir_entry->d_namlen;
 #else
                d_namelen = strlen(filedir_entry->d_name);
 #endif
@@ -922,7 +926,7 @@ void cmd_netp(char *cmdbuf)
                lens[0] = strlen(CCC->cs_addr);
                
                strs[1] = "SRV_UNKNOWN";
-               lens[1] = sizeof("SRV_UNKNOWN" - 1);
+               lens[1] = sizeof("SRV_UNKNOWN") - 1;
 
                CtdlAideFPMessage(
                        err_buf,
@@ -949,7 +953,7 @@ void cmd_netp(char *cmdbuf)
                lens[0] = strlen(CCC->cs_addr);
                
                strs[1] = "SRV_PW";
-               lens[1] = sizeof("SRV_PW" - 1);
+               lens[1] = sizeof("SRV_PW") - 1;
 
                CtdlAideFPMessage(
                        err_buf,
@@ -1172,13 +1176,16 @@ int CtdlIsValidNode(const StrBuf **nexthop,
 void destroy_network_cfgs(void)
 {
        HashList *pCfgTypeHash = CfgTypeHash;
-       HashList *pRoomConfigs = RoomConfigs;
+       HashList *pRoomConfigs;
 
-       CfgTypeHash = NULL;
+       begin_critical_section(S_NETCONFIGS);
+       pRoomConfigs = RoomConfigs;
        RoomConfigs = NULL;
-       
-       DeleteHash(&pCfgTypeHash);
+       end_critical_section(S_NETCONFIGS);
        DeleteHash(&pRoomConfigs);
+
+       CfgTypeHash = NULL;
+       DeleteHash(&pCfgTypeHash);
 }
 
 /*