X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomlist.c;h=b9f967ce6cd6fd988e9897130c2d931c9b1fdd81;hb=HEAD;hp=2b282ff727631fcfc5b4a4e6d4a567adb0c71965;hpb=156d3eaa1b5d85cb70a79046bd874ab832df6ff1;p=citadel.git diff --git a/webcit/roomlist.c b/webcit/roomlist.c index 2b282ff72..ccd54e074 100644 --- a/webcit/roomlist.c +++ b/webcit/roomlist.c @@ -3,7 +3,7 @@ */ #include "webcit.h" -#include "webserver.h" + typedef enum __eRoomParamType { eNotSet, @@ -427,6 +427,7 @@ HashList *GetThisRoomPossibleMAlias(StrBuf *Target, WCTemplputParams *TP) HashList *Domains; StrBuf *Line; StrBuf *Token; + StrBuf *RoomName; HashList *PossibleAliases = NULL; const char *pComma; @@ -439,14 +440,21 @@ HashList *GetThisRoomPossibleMAlias(StrBuf *Target, WCTemplputParams *TP) Domains = GetValidDomainNames(Target, TP); if (Domains == NULL) return NULL; + if (GetCount(Domains) == 0) { + DeleteHash(&Domains); + return NULL; + } PossibleAliases = NewHash(1, NULL); Line = NewStrBuf(); + RoomName = NewStrBufDup(WCC->CurRoom.name); + StrBufAsciify(RoomName, '_'); + StrBufReplaceChars(RoomName, ' ', '_'); AppendPossibleAliasWithDomain(PossibleAliases, &n, Domains, HKEY("room_"), - SKEY(WCC->CurRoom.name)); + SKEY(RoomName)); serv_puts("GNET "FILE_MAILALIAS); @@ -500,9 +508,9 @@ HashList *GetThisRoomPossibleMAlias(StrBuf *Target, WCTemplputParams *TP) } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); - + DeleteHash(&Domains); FreeStrBuf(&Line); - + FreeStrBuf(&RoomName); return PossibleAliases; } @@ -943,8 +951,8 @@ InitModule_ROOMLIST 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); - RegisterIterator("ITERATE:THISROOM:MALIAS", 1, NULL, GetThisRoomMAlias, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); - RegisterIterator("ITERATE:THISROOM:POSSIBLE:MALIAS", 1, NULL, GetThisRoomPossibleMAlias, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); + RegisterIterator("ITERATE:THISROOM:MALIAS", 1, NULL, GetThisRoomMAlias, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); + RegisterIterator("ITERATE:THISROOM:POSSIBLE:MALIAS", 1, NULL, GetThisRoomPossibleMAlias, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("LFLR", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterIterator("LKRA", 0, NULL, GetRoomListHashLKRA, NULL, NULL, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);