ROOMLIST: start with n = 0 instead of random.
[citadel.git] / webcit / roomlist.c
index 3bd202b30e35e2b8fef0c6584521d39eeb2c6129..129d60bc079b0141a5394046e877c7d014100047 100644 (file)
@@ -5,6 +5,7 @@
 #include "webcit.h"
 #include "webserver.h"
 
+
 HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP)
 {
        StrBuf *Line;
@@ -12,7 +13,7 @@ HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP)
        long State;
        HashList *Whok = NULL;
        int Done = 0;
-       int n;
+       int n = 0;
 
        serv_puts("WHOK");
        Line = NewStrBuf();
@@ -393,6 +394,8 @@ HashList *GetNetConfigHash(StrBuf *Target, WCTemplputParams *TP)
        else if (State == 550)
                AppendImportantMessage(_("Higher access is required to access this function."), -1);
 
+       FreeStrBuf(&Line);
+       FreeStrBuf(&Token);
 
        return WCC->CurRoom.IgnetCfgs[WantThisOne];
 }
@@ -593,7 +596,7 @@ int CompareRooms(const folder *room1, const folder *room2)
 int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
 {
        wcsession  *WCC = WC;
-       folder     *Folder = (folder *)CTX;
+       folder     *Folder = (folder *)CTX(CTX_ROOMS);
        HashPos    *it;
        StrBuf     * Dir;
        void       *vDir;
@@ -678,6 +681,9 @@ void
 InitModule_ROOMLIST
 (void)
 {
+       /* we duplicate this, just to be shure its already done. */
+       RegisterCTX(CTX_ROOMS);
+       RegisterCTX(CTX_FLOORS);
 
        RegisterIterator("ITERATE:THISROOM:WHO_KNOWS", 0, NULL, GetWhoKnowsHash, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
        RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUFARR, CTX_NONE, IT_NOFLAG);
@@ -690,7 +696,7 @@ InitModule_ROOMLIST
 
 
 
-       RegisterConditional(HKEY("COND:ROOM:REST:ISSUBROOM"), 0, ConditionalRoomIsRESTSubRoom, CTX_ROOMS);
+       RegisterConditional("COND:ROOM:REST:ISSUBROOM", 0, ConditionalRoomIsRESTSubRoom, CTX_ROOMS);
 
        RegisterSortFunc(HKEY("byfloorroom"),
                         NULL, 0,