]> code.citadel.org Git - citadel.git/blobdiff - citadel/citadel.c
removed all references to sprintf from several files (not all files yet)
[citadel.git] / citadel / citadel.c
index 4ce0f8ec13d660f2c27b5c2af1f92dadbb4b793f..7f5b7dd43ec84b4e3e34e760a99d7f4aa8c3fc53 100644 (file)
@@ -802,6 +802,13 @@ void who_is_online(int longlist)
        time_t timenow = 0;
        time_t idletime, idlehours, idlemins, idlesecs;
        int last_session = (-1);
+    int skipidle = 0;
+    
+    if (longlist == 2)
+      {
+        longlist = 0;
+        skipidle = 1;
+      }
 
        serv_puts("TIME");
        serv_gets(tbuf);
@@ -822,6 +829,7 @@ void who_is_online(int longlist)
        serv_gets(buf);
        if (buf[0] == '1') {
                while (serv_gets(buf), strcmp(buf, "000")) {
+               int isidle = 0;
                        extract(username, buf, 1);
                        extract(roomname, buf, 2);
                        extract(fromhost, buf, 3);
@@ -838,6 +846,8 @@ void who_is_online(int longlist)
                                        strcat(roomname, " ");
                                }
                                strcpy(&roomname[14], "[idle]");
+                       if (skipidle)
+                  isidle = 1;
                        }
 
                        if (longlist) {
@@ -867,24 +877,26 @@ void who_is_online(int longlist)
                                pprintf("\n");
 
                        } else {
-                               if (extract_int(buf, 0) == last_session) {
-                                       pprintf("        ");
-                               } else {
-                                       color(BRIGHT_MAGENTA);
-                                       pprintf("%-3s ", flags);
-                                       color(DIM_WHITE);
-                                       pprintf("%-3d ", extract_int(buf, 0));
-                               }
-                               last_session = extract_int(buf, 0);
-                               color(BRIGHT_CYAN);
-                               pprintf("%-25s ", username);
-                               color(BRIGHT_MAGENTA);
-                               roomname[20] = 0;
-                               pprintf("%-20s ", roomname);
-                               color(BRIGHT_CYAN);
-                               fromhost[24] = '\0';
-                               pprintf("%-24s\n", fromhost);
-                               color(DIM_WHITE);
+                   if (isidle == 0) {
+                               if (extract_int(buf, 0) == last_session) {
+                                       pprintf("        ");
+                               } else {
+                                       color(BRIGHT_MAGENTA);
+                                       pprintf("%-3s ", flags);
+                                       color(DIM_WHITE);
+                                       pprintf("%-3d ", extract_int(buf, 0));
+                               }
+                               last_session = extract_int(buf, 0);
+                               color(BRIGHT_CYAN);
+                               pprintf("%-25s ", username);
+                               color(BRIGHT_MAGENTA);
+                               roomname[20] = 0;
+                               pprintf("%-20s ", roomname);
+                               color(BRIGHT_CYAN);
+                               fromhost[24] = '\0';
+                               pprintf("%-24s\n", fromhost);
+                               color(DIM_WHITE);
+                       }
                        }
                }
        }
@@ -940,7 +952,9 @@ int main(int argc, char **argv)
        signal(SIGTERM, dropcarr);      /* Cleanup gracefully if terminated */
        signal(SIGCONT, catch_sigcont);         /* Catch SIGCONT so we can reset terminal */
 
+#ifdef HAVE_OPENSSL
        arg_encrypt = RC_DEFAULT;
+#endif
 #ifdef HAVE_CURSES_H
        arg_screen = RC_DEFAULT;
 #endif
@@ -955,12 +969,19 @@ int main(int argc, char **argv)
                        argc = shift(argc, argv, a, 2);
                }
                if (!strcmp(argv[a], "-x")) {
+#ifdef HAVE_OPENSSL
                        arg_encrypt = RC_NO;
+#endif
                        argc = shift(argc, argv, a, 1);
                }
                if (!strcmp(argv[a], "-X")) {
+#ifdef HAVE_OPENSSL
                        arg_encrypt = RC_YES;
-                       argc = shift(argc, argv, a, 1);
+                        argc = shift(argc, argv, a, 1);
+#else
+                       fprintf(stderr, "Not compiled with encryption support");
+                       return 1;
+#endif
                }
                if (!strcmp(argv[a], "-s")) {
 #ifdef HAVE_CURSES_H
@@ -1070,7 +1091,7 @@ GSTA:     /* See if we have a username and password on disk */
                        serv_gets(aaa);
                        if (nonce[0])
                        {
-                               sprintf(aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring));
+                               snprintf(aaa, sizeof aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring, sizeof hexstring));
                        }
                        else    /* Else no APOP */
                        {
@@ -1128,11 +1149,11 @@ GSTA:   /* See if we have a username and password on disk */
 
        if (nonce[0])
        {
-               sprintf(aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring));
+               snprintf(aaa, sizeof aaa, "PAS2 %s", make_apop_string(password, nonce, hexstring, sizeof hexstring));
        }
        else    /* Else no APOP */
        {
-                       snprintf(aaa, sizeof(aaa)-1, "PASS %s", password);
+               snprintf(aaa, sizeof aaa, "PASS %s", password);
        }
        
        serv_puts(aaa);
@@ -1525,6 +1546,10 @@ PWOK:
                                do_ignet_configuration();
                                break;
 
+                       case 92:
+                               do_filterlist_configuration();
+                               break;
+
                        case 6:
                                if (rc_alt_semantics)
                                        updatelsa();
@@ -1558,6 +1583,10 @@ PWOK:
                                who_is_online(1);
                                break;
 
+            case 91:
+                who_is_online(2);
+                break;
+                
                        case 80:
                                do_system_configuration();
                                break;