]> code.citadel.org Git - citadel.git/blobdiff - citadel/routines2.c
fix all the <time.h> vs. <sys/time.h> issues, hopefully
[citadel.git] / citadel / routines2.c
index b8238f746676bc7c2665352a8ef16bedecf5b2b1..0211449415c69fe7105cf24943222a57a219c678 100644 (file)
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
-#include <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 <signal.h>
 #include <pwd.h>
 #include <setjmp.h>
@@ -78,14 +89,15 @@ int room_prompt(int qrflags)
 void entregis(void)
 {                              /* register with name and address */
 
-       char buf[256];
-       char tmpname[256];
-       char tmpaddr[256];
-       char tmpcity[256];
-       char tmpstate[256];
-       char tmpzip[256];
-       char tmpphone[256];
-       char tmpemail[256];
+       char buf[SIZ];
+       char tmpname[SIZ];
+       char tmpaddr[SIZ];
+       char tmpcity[SIZ];
+       char tmpstate[SIZ];
+       char tmpzip[SIZ];
+       char tmpphone[SIZ];
+       char tmpemail[SIZ];
+       char tmpcountry[SIZ];
        int a;
 
        strcpy(tmpname, "");
@@ -95,6 +107,7 @@ void entregis(void)
        strcpy(tmpzip, "");
        strcpy(tmpphone, "");
        strcpy(tmpemail, "");
+       strcpy(tmpcountry, "");
 
        serv_puts("GREG _SELF_");
        serv_gets(buf);
@@ -115,14 +128,17 @@ void entregis(void)
                                strcpy(tmpphone, buf);
                        if (a == 9)
                                strcpy(tmpemail, buf);
+                       if (a == 10)
+                               strcpy(tmpcountry, buf);
                        ++a;
                }
        }
        strprompt("REAL name", tmpname, 29);
        strprompt("Address", tmpaddr, 24);
        strprompt("City/town", tmpcity, 14);
-       strprompt("State", tmpstate, 2);
-       strprompt("ZIP Code", tmpzip, 10);
+       strprompt("State/province", tmpstate, 2);
+       strprompt("ZIP/Postal Code", tmpzip, 10);
+       strprompt("Country", tmpcountry, 31);
        strprompt("Telephone number", tmpphone, 14);
        strprompt("Email address", tmpemail, 31);
 
@@ -140,13 +156,14 @@ void entregis(void)
        serv_puts(tmpzip);
        serv_puts(tmpphone);
        serv_puts(tmpemail);
+       serv_puts(tmpcountry);
        serv_puts("000");
        printf("\n");
 }
 
 void updatels(void)
 {                              /* make all messages old in current room */
-       char buf[256];
+       char buf[SIZ];
        serv_puts("SLRP HIGHEST");
        serv_gets(buf);
        if (buf[0] != '2')
@@ -158,7 +175,7 @@ void updatels(void)
  */
 void updatelsa(void)
 {
-       char buf[256];
+       char buf[SIZ];
        sprintf(buf, "SLRP %ld", highest_msg_read);
        serv_puts(buf);
        serv_gets(buf);
@@ -172,7 +189,7 @@ void updatelsa(void)
  */
 void do_upload(int fd)
 {
-       char buf[256];
+       char buf[SIZ];
        char tbuf[4096];
        long transmitted_bytes, total_bytes;
        int bytes_to_send;
@@ -214,10 +231,10 @@ void do_upload(int fd)
  */
 void cli_upload(void)
 {
-       char flnm[256];
+       char flnm[SIZ];
        char desc[151];
-       char buf[256];
-       char tbuf[256];
+       char buf[SIZ];
+       char tbuf[SIZ];
        int a;
        int fd;
 
@@ -262,8 +279,8 @@ void cli_upload(void)
  */
 void cli_image_upload(char *keyname)
 {
-       char flnm[256];
-       char buf[256];
+       char flnm[SIZ];
+       char buf[SIZ];
        int fd;
 
        sprintf(buf, "UIMG 0|%s", keyname);
@@ -295,9 +312,9 @@ void cli_image_upload(char *keyname)
  */
 void upload(int c)
 {                              /* c = upload mode */
-       char flnm[256];
+       char flnm[SIZ];
        char desc[151];
-       char buf[256];
+       char buf[SIZ];
        char tbuf[4096];
        int xfer_pid;
        int a, b;
@@ -378,7 +395,7 @@ void upload(int c)
        sprintf(buf, "cd %s; ls", tempdir);
        lsfp = popen(buf, "r");
        if (lsfp != NULL) {
-               while (fgets(flnm, 256, lsfp) != NULL) {
+               while (fgets(flnm, sizeof flnm, lsfp) != NULL) {
                        flnm[strlen(flnm) - 1] = 0;
                        sprintf(buf, "%s/%s", tempdir, flnm);
                        fd = open(buf, O_RDONLY);
@@ -421,8 +438,8 @@ void upload(int c)
 void val_user(char *user, int do_validate)
 {
        int a;
-       char cmd[256];
-       char buf[256];
+       char cmd[SIZ];
+       char buf[SIZ];
        int ax = 0;
 
        sprintf(cmd, "GREG %s", user);
@@ -453,6 +470,8 @@ void val_user(char *user, int do_validate)
                                ax = atoi(buf);
                        if (a == 10)
                                printf("%s\n", buf);
+                       if (a == 11)
+                               printf("%s\n", buf);
                } while (strcmp(buf, "000"));
                printf("Current access level: %d (%s)\n", ax, axdefs[ax]);
        } else {
@@ -474,8 +493,8 @@ void val_user(char *user, int do_validate)
 
 void validate(void)
 {                              /* validate new users */
-       char cmd[256];
-       char buf[256];
+       char cmd[SIZ];
+       char buf[SIZ];
        int finished = 0;
 
        do {
@@ -516,7 +535,7 @@ void subshell(void)
 void deletefile(void)
 {
        char filename[32];
-       char cmd[256];
+       char cmd[SIZ];
 
        newprompt("Filename: ", filename, 31);
        if (strlen(filename) == 0)
@@ -532,7 +551,7 @@ void deletefile(void)
  */
 void netsendfile(void)
 {
-       char filename[32], destsys[20], cmd[256];
+       char filename[32], destsys[20], cmd[SIZ];
 
        newprompt("Filename: ", filename, 31);
        if (strlen(filename) == 0)
@@ -552,7 +571,7 @@ void movefile(void)
 {
        char filename[64];
        char newroom[ROOMNAMELEN];
-       char cmd[256];
+       char cmd[SIZ];
 
        newprompt("Filename: ", filename, 63);
        if (strlen(filename) == 0)
@@ -571,7 +590,7 @@ void movefile(void)
  */
 void list_bio(void)
 {
-       char buf[256];
+       char buf[SIZ];
        int pos = 1;
 
        serv_puts("LBIO");
@@ -597,8 +616,8 @@ void list_bio(void)
  */
 void read_bio(void)
 {
-       char who[256];
-       char buf[256];
+       char who[SIZ];
+       char buf[SIZ];
 
        do {
                newprompt("Read bio for who ('?' for list) : ", who, 25);
@@ -624,8 +643,8 @@ void read_bio(void)
  */
 void do_system_configuration(void)
 {
-       char buf[256];
-       char sc[26][256];
+       char buf[SIZ];
+       char sc[28][SIZ];
        int expire_mode = 0;
        int expire_value = 0;
        int a;
@@ -640,7 +659,7 @@ void do_system_configuration(void)
        if (buf[0] == '1') {
                a = 0;
                while (serv_gets(buf), strcmp(buf, "000")) {
-                       if (a < 26)
+                       if (a < 28)
                                strcpy(&sc[a][0], buf);
                        ++a;
                }
@@ -665,7 +684,7 @@ void do_system_configuration(void)
        strprompt("Geographic location of this system", &sc[12][0], 31);
        strprompt("Name of system administrator", &sc[13][0], 25);
        strprompt("Paginator prompt", &sc[10][0], 79);
-       strprompt("Default moderation filter for new users", &sc[25][0], 4);
+       /* strprompt("Default moderation filter for new users", &sc[25][0], 4); */
 
        /* Security parameters */
 
@@ -686,6 +705,9 @@ void do_system_configuration(void)
        sprintf(&sc[11][0], "%d", (boolprompt(
              "Restrict Internet mail to only those with that privilege",
                                                     atoi(&sc[11][0]))));
+       sprintf(&sc[26][0], "%d", (boolprompt(
+             "Allow Aides to Zap (forget) rooms",
+                                                    atoi(&sc[26][0]))));
 
        if (strlen(&sc[18][0]) > 0) logpages = 1;
        else logpages = 0;
@@ -706,8 +728,9 @@ void do_system_configuration(void)
        strprompt("Minimum number of worker threads", &sc[21][0], 3);
        strprompt("Maximum number of worker threads", &sc[22][0], 3);
        strprompt("Server-to-server networking password", &sc[15][0], 19);
-       strprompt("POP3 server port (-1 to disable)", &sc[23][0], 5);
        strprompt("SMTP server port (-1 to disable)", &sc[24][0], 5);
+       strprompt("POP3 server port (-1 to disable)", &sc[23][0], 5);
+       strprompt("IMAP server port (-1 to disable)", &sc[27][0], 5);
 
 
        /* Expiry settings */
@@ -745,7 +768,7 @@ void do_system_configuration(void)
                serv_puts("CONF set");
                serv_gets(buf);
                if (buf[0] == '4') {
-                       for (a = 0; a < 26; ++a)
+                       for (a = 0; a < 28; ++a)
                                serv_puts(&sc[a][0]);
                        serv_puts("000");
                }
@@ -782,7 +805,7 @@ void get_inet_rec_type(char *buf) {
  * Internet mail configuration
  */
 void do_internet_configuration(void) {
-       char buf[256];
+       char buf[SIZ];
        int num_recs = 0;
        char **recs = NULL;
        char ch;
@@ -798,7 +821,7 @@ void do_internet_configuration(void) {
                ++num_recs;
                if (num_recs == 1) recs = malloc(sizeof(char *));
                else recs = realloc(recs, (sizeof(char *)) * num_recs);
-               recs[num_recs-1] = malloc(256);
+               recs[num_recs-1] = malloc(SIZ);
                strcpy(recs[num_recs-1], buf);
        }