]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_rwho.c
* Renamed "dynloader" to "serv_extensions" globally. We don't want people
[citadel.git] / citadel / serv_rwho.c
index a58380f7faf842f9caeb3907ffe3fbffd9ca959f..7645bf7fb20f46118f74d20058e2dc831dd7be6d 100644 (file)
 #include <pwd.h>
 #include <errno.h>
 #include <sys/types.h>
-#include <sys/time.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
 #include <sys/wait.h>
 #include <string.h>
 #include <limits.h>
 #include "citadel.h"
 #include "server.h"
-#include <time.h>
 #include "sysdep_decls.h"
 #include "citserver.h"
 #include "support.h"
 #include "config.h"
 #include "control.h"
-#include "dynloader.h"
+#include "serv_extensions.h"
 #include "room_ops.h"
 #include "user_ops.h"
 #include "policy.h"
@@ -49,7 +59,7 @@ void cmd_rwho(char *argbuf) {
        int aide;
        char un[40];
        char real_room[ROOMNAMELEN], room[ROOMNAMELEN];
-       char host[40], flags[5];
+       char host[64], flags[5];
        
        aide = CC->usersupp.axlevel >= 6;
        cprintf("%d%c \n", LISTING_FOLLOWS, CtdlCheckExpress() );
@@ -96,11 +106,13 @@ void cmd_rwho(char *argbuf) {
                        strcpy(room, real_room);
                }
                
-                if ((aide) && (spoofed))
-                   strcat(flags, "+");
+                if ((aide) && (spoofed)) {
+                       strcat(flags, "+");
+               }
                
-               if ((cptr->cs_flags & CS_STEALTH) && (aide))
-                  strcat(flags, "-");
+               if ((cptr->cs_flags & CS_STEALTH) && (aide)) {
+                       strcat(flags, "-");
+               }
                
                if (((cptr->cs_flags&CS_STEALTH)==0) || (aide))
                {
@@ -108,32 +120,32 @@ void cmd_rwho(char *argbuf) {
                                cptr->cs_pid, un, room,
                                host, cptr->cs_clientname,
                                (long)(cptr->lastidle),
-                               cptr->lastcmdname, flags);
-               }
-
-               if ((user_spoofed) && (aide)) {
-                       cprintf("%s|", cptr->curr_user);
-               }
-               else {
-                       cprintf("|");
-               }
-
-               if ((room_spoofed) && (aide)) {
-                       cprintf("%s|", real_room);
-               }
-               else {
-                       cprintf("|");
-               }
-
-               if ((host_spoofed) && (aide)) {
-                       cprintf("%s|", cptr->cs_host);
-               }
-               else {
-                       cprintf("|");
+                               cptr->lastcmdname, flags
+                       );
+
+                       if ((user_spoofed) && (aide)) {
+                               cprintf("%s|", cptr->curr_user);
+                       }
+                       else {
+                               cprintf("|");
+                       }
+       
+                       if ((room_spoofed) && (aide)) {
+                               cprintf("%s|", real_room);
+                       }
+                       else {
+                               cprintf("|");
+                       }
+       
+                       if ((host_spoofed) && (aide)) {
+                               cprintf("%s|", cptr->cs_host);
+                       }
+                       else {
+                               cprintf("|");
+                       }
+       
+                       cprintf("%d\n", cptr->logged_in);
                }
-
-               cprintf("\n");
-
        }
 
        /* Now it's magic time.  Before we finish, call any EVT_RWHO hooks
@@ -161,7 +173,7 @@ void cmd_rchg(char *argbuf)
        else {
                strcpy(CC->fake_roomname, "");
                }
-       cprintf("%d OK\n", OK);
+       cprintf("%d OK\n", CIT_OK);
 }
 
 /*
@@ -179,7 +191,7 @@ void cmd_hchg(char *argbuf)
        else {
                strcpy(CC->fake_hostname, "");
                }
-       cprintf("%d OK\n", OK);
+       cprintf("%d OK\n", CIT_OK);
 }
 
 
@@ -207,7 +219,7 @@ void cmd_uchg(char *argbuf)
                CC->fake_username[0] = '\0';
                CC->cs_flags |= CS_STEALTH;
        }
-       cprintf("%d\n",OK);
+       cprintf("%d\n",CIT_OK);
 }
 
 
@@ -221,21 +233,19 @@ void cmd_stel(char *cmdbuf)
        int requested_mode;
 
        requested_mode = extract_int(cmdbuf,0);
-       if (requested_mode !=0) requested_mode = 1;
-
-       if (CtdlAccessCheck(ac_aide)) return;
 
-       if (CC->cs_flags & CS_STEALTH) {
-               if (requested_mode == 0)
-                       CC->cs_flags = CC->cs_flags-CS_STEALTH;
-               }
-       else {
-               if (requested_mode == 1)
-                       CC->cs_flags = CC->cs_flags|CS_STEALTH;
-               }
+       if (CtdlAccessCheck(ac_logged_in)) return;
 
-       cprintf("%d Ok\n",OK);
+       if (requested_mode == 1) {
+               CC->cs_flags = CC->cs_flags | CS_STEALTH;
        }
+       if (requested_mode == 0) {
+               CC->cs_flags = CC->cs_flags & ~CS_STEALTH;
+       }
+
+       cprintf("%d %d\n", CIT_OK,
+               ((CC->cs_flags & CS_STEALTH) ? 1 : 0) );
+}
 
 
 
@@ -243,7 +253,7 @@ void cmd_stel(char *cmdbuf)
 
 
 
-char *Dynamic_Module_Init(void)
+char *serv_rwho_init(void)
 {
         CtdlRegisterProtoHook(cmd_rwho, "RWHO", "Display who is online");
         CtdlRegisterProtoHook(cmd_hchg, "HCHG", "Masquerade hostname");