* Modularized the RWHO (Read WHO is online) command, basically as a pilot
authorArt Cancro <ajc@citadel.org>
Fri, 25 Feb 2000 06:14:06 +0000 (06:14 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 25 Feb 2000 06:14:06 +0000 (06:14 +0000)
  for modularizing all "non-API" functionality.

citadel/ChangeLog
citadel/Makefile.in
citadel/citserver.c
citadel/citserver.h
citadel/room_ops.c
citadel/serv_chat.h

index b66ee38d1f071b5b277ed1651569f29585ffe500..10957e74db96e1c80e16b65c5299d05f56f32d9d 100644 (file)
@@ -1,4 +1,8 @@
 $Log$
+Revision 1.469  2000/02/25 06:14:05  ajc
+* Modularized the RWHO (Read WHO is online) command, basically as a pilot
+  for modularizing all "non-API" functionality.
+
 Revision 1.468  2000/02/24 03:44:00  ajc
 * Implemented holdoff time (15 minutes) for SMTP send retry.
 * Implemented "try for 3 days and then give up" on SMTP send.
@@ -1658,3 +1662,4 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
        * Initial CVS import 
+
index 02e401d15d1ce2d7896f4ade1f643796d166b1ff..7daefb1d81139b51f1bb752813172ddb63252001 100644 (file)
@@ -29,6 +29,7 @@ SERV_MODULES=modules/serv_chat$(SO) modules/serv_vcard$(SO) \
        modules/serv_upgrade$(SO) \
        modules/serv_smtp$(SO) modules/serv_pop3$(SO) \
        modules/serv_inetcfg$(SO) \
+       modules/serv_rwho$(SO) \
        modules/serv_expire$(SO) $(SERV_ICQ)
 UTIL_TARGETS=aidepost netmailer netproc netsetup msgform readlog rcit \
        stats citmail netpoll mailinglist userlist sendcommand \
@@ -75,7 +76,7 @@ SOURCES=aidepost.c citadel.c citmail.c citserver.c client_chat.c commands.c \
        whobbs.c sendcommand.c mime_parser.c base64.c qpdecode.c getutline.c \
        auth.c chkpwd.c client_icq.c html.c vcard.c serv_upgrade.c \
        serv_smtp.c serv_pop3.c internet_addressing.c parsedate.c genstamp.c \
-       domain.c clientsocket.c serv_inetcfg.c
+       domain.c clientsocket.c serv_inetcfg.c serv_rwho.c
 
 DEP_FILES=$(SOURCES:.c=.d)
 
@@ -149,6 +150,12 @@ modules/serv_inetcfg.so: serv_inetcfg.mo
 modules/serv_inetcfg.mo: serv_inetcfg.mo
        ln -f serv_inetcfg.mo modules
 
+modules/serv_rwho.so: serv_rwho.mo
+       $(LINK_SHARED) -o modules/serv_rwho.so serv_rwho.mo
+
+modules/serv_rwho.mo: serv_rwho.mo
+       ln -f serv_rwho.mo modules
+
 modules/serv_expire.so: serv_expire.mo
        $(LINK_SHARED) -o modules/serv_expire.so serv_expire.mo
 
index 5e508ec5672d67739758feb4802fd814b6da02b6..bcba39ebc37d86a5bb5687625c19f08015f56cdd 100644 (file)
@@ -371,7 +371,7 @@ void cmd_uchg(char *argbuf)
  * returns an asterisk if there are any express messages waiting,
  * space otherwise.
  */
-char check_express(void) {
+char CtdlCheckExpress(void) {
        if (CC->FirstExpressMessage == NULL) {
                return(' ');
                }
@@ -659,90 +659,6 @@ void GenerateRoomDisplay(char *real_room,
 }
 
 
-/*
- * who's online
- */
-void cmd_rwho(void) {
-       struct CitContext *cptr;
-       int spoofed = 0;
-       int aide;
-       char un[40];
-       char real_room[ROOMNAMELEN], room[ROOMNAMELEN];
-       char host[40], flags[5];
-       
-       aide = CC->usersupp.axlevel >= 6;
-       cprintf("%d%c \n", LISTING_FOLLOWS, check_express() );
-       
-       for (cptr = ContextList; cptr != NULL; cptr = cptr->next) 
-       {
-               flags[0] = '\0';
-               spoofed = 0;
-               
-               if (cptr->cs_flags & CS_POSTING)
-                  strcat(flags, "*");
-               else
-                  strcat(flags, ".");
-                  
-               if (cptr->fake_username[0])
-               {
-                  strcpy(un, cptr->fake_username);
-                  spoofed = 1;
-               }
-               else
-                  strcpy(un, cptr->curr_user);
-                  
-               if (cptr->fake_hostname[0])
-               {
-                  strcpy(host, cptr->fake_hostname);
-                  spoofed = 1;
-               }
-               else
-                  strcpy(host, cptr->cs_host);
-
-               GenerateRoomDisplay(real_room, cptr, CC);
-
-               if (cptr->fake_roomname[0]) {
-                       strcpy(room, cptr->fake_roomname);
-                       spoofed = 1;
-               }
-               else {
-                       strcpy(room, real_room);
-               }
-               
-                if ((aide) && (spoofed))
-                   strcat(flags, "+");
-               
-               if ((cptr->cs_flags & CS_STEALTH) && (aide))
-                  strcat(flags, "-");
-               
-               if (((cptr->cs_flags&CS_STEALTH)==0) || (aide))
-               {
-                       cprintf("%d|%s|%s|%s|%s|%ld|%s|%s\n",
-                               cptr->cs_pid, un, room,
-                               host, cptr->cs_clientname,
-                               (long)(cptr->lastidle),
-                               cptr->lastcmdname, flags);
-               }
-               if ((spoofed) && (aide))
-               {
-                       cprintf("%d|%s|%s|%s|%s|%ld|%s|%s\n",
-                               cptr->cs_pid, cptr->curr_user,
-                               real_room,
-                               cptr->cs_host, cptr->cs_clientname,
-                               (long)(cptr->lastidle),
-                               cptr->lastcmdname, flags);
-               
-               }
-       }
-
-       /* Now it's magic time.  Before we finish, call any EVT_RWHO hooks
-        * so that external paging modules such as serv_icq can add more
-        * content to the Wholist.
-        */
-       PerformSessionHooks(EVT_RWHO);
-       cprintf("000\n");
-       }
-
 
 /*
  * Terminate another running session
@@ -973,7 +889,7 @@ void do_command_loop(void) {
        }
                   
        if (!strncasecmp(cmdbuf,"NOOP",4)) {
-               cprintf("%d%cok\n",OK,check_express());
+               cprintf("%d%cok\n",OK,CtdlCheckExpress());
                }
 
        else if (!strncasecmp(cmdbuf,"QUIT",4)) {
@@ -1170,10 +1086,6 @@ void do_command_loop(void) {
                cmd_netf(&cmdbuf[5]);
                }
 
-       else if (!strncasecmp(cmdbuf,"RWHO",4)) {
-               cmd_rwho();
-               }
-
        else if (!strncasecmp(cmdbuf,"OPEN",4)) {
                cmd_open(&cmdbuf[5]);
                }
index e4f772d65c945a9e6580df05c153599e71aabc78..9724a6428c7a03b2e5d94e0cce3a543f149d333b 100644 (file)
@@ -14,7 +14,6 @@ void cmd_iden (char *argbuf);
 void cmd_stel (char *cmdbuf);
 void cmd_mesg (char *mname);
 void cmd_emsg (char *mname);
-void cmd_rwho (void);
 void cmd_term (char *cmdbuf);
 void cmd_more (void);
 void cmd_echo (char *etext);
@@ -34,6 +33,5 @@ void citproto_begin_session(void);
 void GenerateRoomDisplay(char *real_room,
                         struct CitContext *viewed,
                         struct CitContext *viewer);
-
-
 extern int do_defrag;
+char CtdlCheckExpress(void);
index 61315accccfb821dcfc31da5afd06d87904c997c..2fadd7f18a5436a4939469c3d48efd21a3b32383 100644 (file)
@@ -680,7 +680,7 @@ void usergoto(char *where, int display_result)
 
        if (display_result)
                cprintf("%d%c%s|%d|%d|%d|%d|%ld|%ld|%d|%d|%d|%d\n",
-                       OK, check_express(),
+                       OK, CtdlCheckExpress(),
                        truncated_roomname,
                        new_messages, total_messages,
                        info, CC->quickroom.QRflags,
@@ -896,7 +896,7 @@ void cmd_getr(void)
        }
        getroom(&CC->quickroom, CC->quickroom.QRname);
        cprintf("%d%c%s|%s|%s|%d|%d|%d\n",
-               OK, check_express(),
+               OK, CtdlCheckExpress(),
                CC->quickroom.QRname,
                ((CC->quickroom.QRflags & QR_PASSWORDED) ? CC->quickroom.QRpasswd : ""),
                ((CC->quickroom.QRflags & QR_DIRECTORY) ? CC->quickroom.QRdirname : ""),
index d7fd9847f4fb864b0d74b0b530fa59d94dcbeba8..855b9ac3861e2ba79dda7967dc6c2ed67319b3fd 100644 (file)
@@ -5,7 +5,6 @@ t_context *find_context (char **unstr);
 void do_chat_listing (int allflag);
 void cmd_chat (char *argbuf);
 void cmd_pexp (char *argbuf); /* arg unused */
-char check_express (void);
 void cmd_sexp (char *argbuf);
 void delete_express_messages(void);
 void cmd_gexp(char *);