]> code.citadel.org Git - citadel.git/blobdiff - citadel/netconfig.c
When loading the netmap always create a hash. else we will always fail to add new...
[citadel.git] / citadel / netconfig.c
index e6e0ea8a2efba772e90317c95e957de93f98a3bc..3aac29463e616fc753e7b6d9b0df2dcce54980fc 100644 (file)
@@ -131,6 +131,20 @@ void DeleteGenericCfgLine(const CfgLineType *ThisOne, RoomNetCfgLine **data)
        free(*data);
        *data = NULL;
 }
+RoomNetCfgLine *DuplicateOneGenericCfgLine(const RoomNetCfgLine *data)
+{
+       RoomNetCfgLine *NewData;
+
+       NewData = (RoomNetCfgLine*)malloc(sizeof(RoomNetCfgLine));
+       int i;
+       NewData->Value = (StrBuf **)malloc(sizeof(StrBuf*) * data->nValues);
+
+       for (i = 0; i < data->nValues; i++)
+       {
+               NewData->Value[i] = NewStrBufDup(data->Value[i]);
+       }
+       return NewData;
+}
 int ReadRoomNetConfigFile(OneRoomNetCfg **pOneRNCFG, char *filename)
 {
        int fd;
@@ -907,14 +921,14 @@ HashList* CtdlReadNetworkMap(void)
        HashList   *Hash;
        CtdlNetMap     *TheNetMap;
 
+       Hash = NewHash(1, NULL);
        Cfg =  CtdlGetSysConfig(IGNETMAP);
        if ((Cfg == NULL) || IsEmptyStr(Cfg)) {
                if (Cfg != NULL)
                        free(Cfg);
-               return NULL;
+               return Hash;
        }
 
-       Hash = NewHash(1, NULL);
        Buf = NewStrBufPlain(Cfg, -1);
        free(Cfg);
        LineBuf = NewStrBufPlain(NULL, StrLength(Buf));