Reverts commit c6aec42f213ec284e34648f3d69bcf927dccddb1 because putting the opening...
[citadel.git] / webcit / who.c
index 3cc798d656be70655d230c24a9b26480ff507d20..dee492caf8e641da9c5d82d3117318caa5b5edd8 100644 (file)
@@ -17,8 +17,9 @@ typedef struct UserStateStruct {
        int SessionCount;
 } UserStateStruct;
 
-void DestroyUserStruct(void *vUser) {
-       UserStateStruct *User = (UserStateStruct *) vUser;
+void DestroyUserStruct(void *vUser)
+{
+       UserStateStruct *User = (UserStateStruct*) vUser;
        FreeStrBuf(&User->UserName);
        FreeStrBuf(&User->Room);
        FreeStrBuf(&User->Host);
@@ -28,17 +29,20 @@ void DestroyUserStruct(void *vUser) {
        free(User);
 }
 
-int CompareUserStruct(const void *VUser1, const void *VUser2) {
-       const UserStateStruct *User1 = (UserStateStruct *) GetSearchPayload(VUser1);
-       const UserStateStruct *User2 = (UserStateStruct *) GetSearchPayload(VUser2);
-
+int CompareUserStruct(const void *VUser1, const void *VUser2)
+{
+       const UserStateStruct *User1 = (UserStateStruct*) GetSearchPayload(VUser1);
+       const UserStateStruct *User2 = (UserStateStruct*) GetSearchPayload(VUser2);
+       
        if (User1->Idle != User2->Idle)
                return User1->Idle > User2->Idle;
-       return strcasecmp(ChrPtr(User1->UserName), ChrPtr(User2->UserName));
+       return strcasecmp(ChrPtr(User1->UserName), 
+                         ChrPtr(User2->UserName));
 }
 
 
-int GetWholistSection(HashList * List, time_t now, StrBuf * Buf, const char *FilterName, long FNLen) {
+int GetWholistSection(HashList *List, time_t now, StrBuf *Buf, const char *FilterName, long FNLen)
+{
        UserStateStruct *User, *OldUser;
        void *VOldUser;
        size_t BufLen;
@@ -47,16 +51,19 @@ int GetWholistSection(HashList * List, time_t now, StrBuf * Buf, const char *Fil
        serv_puts("RWHO");
        StrBuf_ServGetln(Buf);
        if (GetServerStatus(Buf, NULL) == 1) {
-               while (BufLen = StrBuf_ServGetln(Buf), ((BufLen >= 0) && ((BufLen != 3) || strcmp(ChrPtr(Buf), "000")))) {
+               while (BufLen = StrBuf_ServGetln(Buf), 
+                      ((BufLen >= 0) && 
+                       ((BufLen != 3) || strcmp(ChrPtr(Buf), "000"))))
+               {
                        if (BufLen <= 0)
-                               continue;
+                           continue;
                        Pos = NULL;
-                       User = (UserStateStruct *) malloc(sizeof(UserStateStruct));
+                       User = (UserStateStruct*) malloc(sizeof(UserStateStruct));
                        User->Session = StrBufExtractNext_int(Buf, &Pos, '|');
 
                        User->UserName = NewStrBufPlain(NULL, BufLen);
                        StrBufExtract_NextToken(User->UserName, Buf, &Pos, '|');
-
+                       
                        User->Room = NewStrBufPlain(NULL, BufLen);
                        StrBufExtract_NextToken(User->Room, Buf, &Pos, '|');
 
@@ -74,32 +81,40 @@ int GetWholistSection(HashList * List, time_t now, StrBuf * Buf, const char *Fil
 
                        User->RealHost = NewStrBufPlain(NULL, BufLen);
                        StrBufExtract_NextToken(User->RealHost, Buf, &Pos, '|');
-
+                       
                        User->Idle = (now - User->LastActive) > 900L;
                        User->IdleSince = (now - User->LastActive) / 60;
                        User->SessionCount = 1;
 
                        if (FilterName == NULL) {
-                               if (GetHash(List, SKEY(User->UserName), &VOldUser)) {
+                               if (GetHash(List, 
+                                           SKEY(User->UserName), 
+                                           &VOldUser)) {
                                        OldUser = VOldUser;
                                        OldUser->SessionCount++;
                                        if (!User->Idle) {
-                                               if (User->Session == WC->ctdl_pid)
+                                               if (User->Session == WC->ctdl_pid) 
                                                        OldUser->Session = User->Session;
-
+                                               
                                                OldUser->Idle = User->Idle;
                                                OldUser->LastActive = User->LastActive;
                                        }
                                        DestroyUserStruct(User);
                                }
                                else
-                                       Put(List, SKEY(User->UserName), User, DestroyUserStruct);
+                                       Put(List, 
+                                           SKEY(User->UserName), 
+                                           User, DestroyUserStruct);
                        }
                        else {
-                               if (strcmp(FilterName, ChrPtr(User->UserName)) == 0) {
-                                       Put(List, SKEY(User->UserName), User, DestroyUserStruct);
+                               if (strcmp(FilterName, ChrPtr(User->UserName)) == 0)
+                               {
+                                       Put(List, 
+                                           SKEY(User->UserName), 
+                                           User, DestroyUserStruct);
                                }
-                               else {
+                               else 
+                               {
                                        DestroyUserStruct(User);
                                }
                        }
@@ -116,7 +131,8 @@ int GetWholistSection(HashList * List, time_t now, StrBuf * Buf, const char *Fil
 /*
  * end session
  */
-void terminate_session(void) {
+void terminate_session(void)
+{
        char buf[SIZ];
 
        serv_printf("TERM %s", bstr("which_session"));
@@ -130,27 +146,30 @@ void _terminate_session(void) {
        terminate_session();
 }
 
-HashList *GetWholistHash(StrBuf * Target, WCTemplputParams * TP) {
+HashList *GetWholistHash(StrBuf *Target, WCTemplputParams *TP)
+
+{
        const char *ch = NULL;
        int HashUniq = 1;
        long len;
        StrBuf *FilterNameStr = NULL;
        StrBuf *Buf;
        HashList *List;
-       time_t now;
+        time_t now;
 
        Buf = NewStrBuf();
 
        serv_puts("TIME");
        StrBuf_ServGetln(Buf);
-       if (GetServerStatus(Buf, NULL) == 2) {
+       if (GetServerStatus(Buf, NULL)  == 2) {
                const char *pos = ChrPtr(Buf) + 4;
                now = StrBufExtractNext_long(Buf, &pos, '|');
        }
        else {
                now = time(NULL);
        }
-       if (HaveTemplateTokenString(NULL, TP, 2, &ch, &len)) {
+       if (HaveTemplateTokenString(NULL, TP, 2, &ch, &len))
+       {
                FilterNameStr = NewStrBuf();
                GetTemplateTokenString(FilterNameStr, TP, 2, &ch, &len);
                HashUniq = 0;
@@ -164,105 +183,124 @@ HashList *GetWholistHash(StrBuf * Target, WCTemplputParams * TP) {
 }
 
 
-void DeleteWholistHash(HashList ** KillMe) {
+void DeleteWholistHash(HashList **KillMe)
+{
        DeleteHash(KillMe);
 }
 
-void tmplput_who_username(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_username(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendTemplate(Target, TP, User->UserName, 0);
 }
 
-void tmplput_who_UserAgent(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_UserAgent(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendTemplate(Target, TP, User->UserAgent, 0);
 }
 
-void tmplput_who_room(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_room(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendTemplate(Target, TP, User->Room, 0);
 }
 
-void tmplput_who_host(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_host(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendTemplate(Target, TP, User->Host, 0);
 }
 
-void tmplput_who_realroom(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_realroom(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendTemplate(Target, TP, User->RealRoom, 0);
 }
-int conditional_who_realroom(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+int conditional_who_realroom(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        return StrLength(User->RealRoom) > 0;
 }
 
-void tmplput_who_realhost(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_realhost(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendTemplate(Target, TP, User->RealHost, 0);
 }
-int conditional_who_realhost(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+int conditional_who_realhost(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        return StrLength(User->RealHost) > 0;
 }
 
-void tmplput_who_lastactive(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_lastactive(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendPrintf(Target, "%d", User->LastActive);
 }
 
-void tmplput_who_idlesince(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_idlesince(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendPrintf(Target, "%d", User->IdleSince);
 }
 
-void tmplput_who_session(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_session(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendPrintf(Target, "%d", User->Session);
 }
 
-int conditional_who_idle(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+int conditional_who_idle(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        return User->Idle;
 }
 
-int conditional_who_nsessions(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+int conditional_who_nsessions(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        return User->SessionCount;
 }
 
-void tmplput_who_nsessions(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+void tmplput_who_nsessions(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        StrBufAppendPrintf(Target, "%d", User->SessionCount);
 }
 
-int conditional_who_isme(StrBuf * Target, WCTemplputParams * TP) {
-       UserStateStruct *User = (UserStateStruct *) CTX(CTX_WHO);
+int conditional_who_isme(StrBuf *Target, WCTemplputParams *TP)
+{
+       UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO);
        return (User->Session == WC->ctdl_pid);
 }
 
-void InitModule_WHO(void) {
+void 
+InitModule_WHO
+(void)
+{
        RegisterCTX(CTX_WHO);
 
        WebcitAddUrlHandler(HKEY("terminate_session"), "", 0, _terminate_session, 0);
 
        RegisterIterator("WHOLIST", 1, NULL, GetWholistHash, NULL, DeleteWholistHash, CTX_WHO, CTX_NONE, IT_NOFLAG);
 
-       RegisterNamespace("WHO:NAME", 0, 1, tmplput_who_username, NULL, CTX_WHO);
-       RegisterNamespace("WHO:USERAGENT", 0, 1, tmplput_who_UserAgent, NULL, CTX_WHO);
-       RegisterNamespace("WHO:ROOM", 0, 1, tmplput_who_room, NULL, CTX_WHO);
-       RegisterNamespace("WHO:HOST", 0, 1, tmplput_who_host, NULL, CTX_WHO);
-       RegisterNamespace("WHO:REALROOM", 0, 1, tmplput_who_realroom, NULL, CTX_WHO);
-       RegisterNamespace("WHO:REALHOST", 0, 1, tmplput_who_realhost, NULL, CTX_WHO);
-       RegisterNamespace("WHO:LASTACTIVE", 0, 1, tmplput_who_lastactive, NULL, CTX_WHO);
-       RegisterNamespace("WHO:IDLESINCE", 0, 1, tmplput_who_idlesince, NULL, CTX_WHO);
-       RegisterNamespace("WHO:SESSION", 0, 1, tmplput_who_session, NULL, CTX_WHO);
-       RegisterNamespace("WHO:NSESSIONS", 0, 1, tmplput_who_nsessions, NULL, CTX_WHO);
-       RegisterNamespace("WHO:NSESSIONS", 0, 1, tmplput_who_nsessions, NULL, CTX_WHO);
-
-       RegisterConditional("WHO:IDLE", 1, conditional_who_idle, CTX_WHO);
+       RegisterNamespace("WHO:NAME",        0, 1, tmplput_who_username, NULL, CTX_WHO);
+       RegisterNamespace("WHO:USERAGENT",   0, 1, tmplput_who_UserAgent, NULL, CTX_WHO);
+       RegisterNamespace("WHO:ROOM",        0, 1, tmplput_who_room, NULL, CTX_WHO);
+       RegisterNamespace("WHO:HOST",        0, 1, tmplput_who_host, NULL, CTX_WHO);
+       RegisterNamespace("WHO:REALROOM",    0, 1, tmplput_who_realroom, NULL, CTX_WHO);
+       RegisterNamespace("WHO:REALHOST",    0, 1, tmplput_who_realhost, NULL, CTX_WHO);
+       RegisterNamespace("WHO:LASTACTIVE",  0, 1, tmplput_who_lastactive, NULL, CTX_WHO);
+       RegisterNamespace("WHO:IDLESINCE",   0, 1, tmplput_who_idlesince, NULL, CTX_WHO);
+       RegisterNamespace("WHO:SESSION",     0, 1, tmplput_who_session, NULL, CTX_WHO);
+       RegisterNamespace("WHO:NSESSIONS",   0, 1, tmplput_who_nsessions, NULL, CTX_WHO);
+       RegisterNamespace("WHO:NSESSIONS",   0, 1, tmplput_who_nsessions, NULL, CTX_WHO);
+
+       RegisterConditional("WHO:IDLE",      1, conditional_who_idle, CTX_WHO);
        RegisterConditional("WHO:NSESSIONS", 1, conditional_who_nsessions, CTX_WHO);
-       RegisterConditional("WHO:ISME", 1, conditional_who_isme, CTX_WHO);
-       RegisterConditional("WHO:REALROOM", 1, conditional_who_realroom, CTX_WHO);
-       RegisterConditional("WHO:REALHOST", 1, conditional_who_realhost, CTX_WHO);
+       RegisterConditional("WHO:ISME",      1, conditional_who_isme, CTX_WHO);
+       RegisterConditional("WHO:REALROOM",  1, conditional_who_realroom, CTX_WHO);
+       RegisterConditional("WHO:REALHOST",  1, conditional_who_realhost, CTX_WHO);
 }