]> code.citadel.org Git - citadel.git/blobdiff - citadel/setup.c
* The size constant "256" which shows up everywhere as a buffer size has now
[citadel.git] / citadel / setup.c
index 7942ba4d6aba83268940192269b6fe47f93f5fa7..fb6cb0333d57fd57432e8f0b51e5f7247939086c 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * Citadel/UX setup program
  * $Id$
  *
- * *** YOU MUST EDIT sysconfig.h >BEFORE< COMPILING SETUP ***
+ * Citadel/UX setup utility
+ *
  */
 
 #include <stdlib.h>
@@ -460,8 +460,8 @@ void check_services_entry(void)
 void check_inittab_entry(void)
 {
        FILE *infp;
-       char buf[256];
-       char looking_for[256];
+       char buf[SIZ];
+       char looking_for[SIZ];
        char question[128];
        char *ptr;
        int have_entry = 0;
@@ -477,7 +477,7 @@ void check_inittab_entry(void)
        if (infp == NULL) {
                return;
        } else {
-               while (fgets(buf, 256, infp) != NULL) {
+               while (fgets(buf, sizeof buf, infp) != NULL) {
                        buf[strlen(buf) - 1] = 0;
                        ptr = strtok(buf, ":");
                        ptr = strtok(NULL, ":");
@@ -538,10 +538,11 @@ void check_inittab_entry(void)
 void set_str_val(int msgpos, char str[])
 {
        char buf[4096];
-       char setupmsg[4096];
        char tempfile[64];
+       char setupmsg[SIZ];
 
-       sprintf(tempfile, tmpnam(NULL));
+       strcpy(tempfile, tmpnam(NULL));
+       strcpy(setupmsg, "");
 
        switch (setup_type) {
        case UI_TEXT:
@@ -603,6 +604,7 @@ void set_long_val(int msgpos, long int *ip)
 void edit_value(int curr)
 {
        int a;
+       long l;
 
        switch (curr) {
 
@@ -611,7 +613,9 @@ void edit_value(int curr)
                break;
 
        case 2:
-               set_int_val(curr, &config.c_bbsuid);
+               l = config.c_bbsuid;
+               set_long_val(curr, &l);
+               config.c_bbsuid = l;
                break;
 
        case 3:
@@ -842,6 +846,13 @@ int main(int argc, char *argv[])
                config.c_ep.expire_value = 150;
        }
 
+       /*
+        * Default port numbers for various services
+        */
+       if (config.c_smtp_port == 0) config.c_smtp_port = 25;
+       if (config.c_pop3_port == 0) config.c_pop3_port = 110;
+       if (config.c_imap_port == 0) config.c_imap_port = 143;
+
 
        /* Go through a series of dialogs prompting for config info */
        for (curr = 1; curr <= MAXSETUP; ++curr) {
@@ -893,14 +904,14 @@ NEW_INST:
 
        write_config_to_disk();
 
-       system("mkdir info 2>/dev/null");       /* Create these */
-       system("mkdir bio 2>/dev/null");
-       system("mkdir userpics 2>/dev/null");
-       system("mkdir messages 2>/dev/null");
-       system("mkdir help 2>/dev/null");
-       system("mkdir images 2>/dev/null");
-       sprintf(aaa, "mkdir %s 2>/dev/null", config.c_bucket_dir);
-       system(aaa);
+       mkdir("info", 0700);
+       mkdir("bio", 0700);
+       mkdir("userpics", 0700);
+       mkdir("messages", 0700);
+       mkdir("help", 0700);
+       mkdir("images", 0700);
+       mkdir("netconfigs", 0700);
+       mkdir(config.c_bucket_dir, 0700);
 
        /* Delete a bunch of old files from Citadel v4; don't need anymore */
        system("rm -fr ./chatpipes ./expressmsgs sessions 2>/dev/null");
@@ -918,8 +929,8 @@ NEW_INST:
        progress("Setting file permissions", 1, 5);
        chown("citadel.config", config.c_bbsuid, gid);
        progress("Setting file permissions", 2, 5);
-       sprintf(aaa, "find . | grep -v chkpwd | xargs chown %d:%d 2>/dev/null",
-               config.c_bbsuid, gid);
+       sprintf(aaa, "find . | grep -v chkpwd | xargs chown %ld:%ld 2>/dev/null",
+               (long)config.c_bbsuid, (long)gid);
        system(aaa);
        progress("Setting file permissions", 3, 5);
        chmod("citadel.config", S_IRUSR | S_IWUSR);