]> code.citadel.org Git - citadel.git/blobdiff - webcit/roomlist.c
* defines for pop aggregation columns
[citadel.git] / webcit / roomlist.c
index 493375d73223e42378f07c734d786861757dec5c..10e0f1b66a1aca0b7064ccff5bbc5b406618243f 100644 (file)
@@ -290,19 +290,29 @@ HashList *GetNetConfigHash(StrBuf *Target, WCTemplputParams *TP)
                StrBuf_ServGetln(Line);
                StrBufExtract_NextToken(Token, Line, &Pos, '|');
                PutTo = GetTokenDefine(SKEY(Token), -1);
-               if ((PutTo > 0) && (PutTo < maxRoomNetCfg))
+               if ((PutTo > 0) && 
+                   (PutTo < maxRoomNetCfg) &&
+                   (Pos != StrBufNOTNULL))
                {
                        int n;
+                       HashList *SubH;
 
                        if (WCC->CurRoom.IgnetCfgs[PutTo] == NULL)
                                WCC->CurRoom.IgnetCfgs[PutTo] = NewHash(1, NULL);
-                       Content = NewStrBuf();
-                       StrBufExtract_NextToken(Content, Line, &Pos, '|');
+                       SubH = NewHash(1, NULL);
                        n = GetCount(WCC->CurRoom.IgnetCfgs[PutTo]) + 1;
                        Put(WCC->CurRoom.IgnetCfgs[PutTo], 
                            IKEY(n),
-                           Content, 
-                           HFreeStrBuf);
+                           SubH, 
+                           HDeleteHash);
+                       while (Pos != StrBufNOTNULL) {
+                               Content = NewStrBuf();
+                               StrBufExtract_NextToken(Content, Line, &Pos, '|');
+                               Put(SubH, 
+                                   IKEY(n),
+                                   Content, 
+                                   HFreeStrBuf);
+                       }
                }
        }
        else if (State == 550)
@@ -835,10 +845,25 @@ SessionDetachModule_ROOMLIST
        DeleteHash(&sess->FloorsByName);
 }
 
+
+#define POP3_HOST 0
+#define POP3_USERNAME 1
+#define POP3_PASSWORD 2
+#define POP3_KEEP 3
+#define POP3_INTERVAL 4
+
 void 
 InitModule_ROOMLIST
 (void)
 {
+
+       REGISTERTokenParamDefine(POP3_HOST);
+       REGISTERTokenParamDefine(POP3_USERNAME);
+       REGISTERTokenParamDefine(POP3_PASSWORD);
+       REGISTERTokenParamDefine(POP3_KEEP);
+       REGISTERTokenParamDefine(POP3_INTERVAL);
+
+
        WebcitAddUrlHandler(HKEY("json_roomflr"), "", 0, jsonRoomFlr, 0);
 
 
@@ -848,7 +873,7 @@ InitModule_ROOMLIST
        RegisterConditional(HKEY("COND:FLOOR:ISSUBROOM"), 0, ConditionalFloorIsSUBROOM, CTX_FLOORS);
        RegisterConditional(HKEY("COND:ROOM:REST:ISSUBFLOOR"), 0, ConditionalFloorIsRESTSubFloor, CTX_FLOORS);
 
-       RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
+       RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUFARR, CTX_NONE, IT_NOFLAG);
 
        RegisterIterator("LFLR", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);