]> 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 984f97a2865e68aebe74f64df5b8e4e04d1eb03a..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;
@@ -307,6 +321,13 @@ void FreeRoomNetworkStruct(OneRoomNetCfg **pOneRNCFG)
        *pOneRNCFG=NULL;
 }
 
+const OneRoomNetCfg* CtdlGetNetCfgForRoom(long QRNumber)
+{
+       void *pv;
+       GetHash(RoomConfigs, LKEY(QRNumber), &pv);
+       return (OneRoomNetCfg*)pv;
+}
+
 
 void LoadAllNetConfigs(void)
 {
@@ -900,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));