From 526cac48bba22514bb1a8c1846ea78c373a3ffc6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Thu, 29 Jul 2010 17:53:09 +0000 Subject: [PATCH] * move default initializing into its own subfunciton --- citadel/utils/setup.c | 182 ++++++++++++++++++++++-------------------- 1 file changed, 95 insertions(+), 87 deletions(-) diff --git a/citadel/utils/setup.c b/citadel/utils/setup.c index fa5c08f92..de1c264cb 100644 --- a/citadel/utils/setup.c +++ b/citadel/utils/setup.c @@ -5,6 +5,8 @@ * */ +#define SHOW_ME_VAPPEND_PRINTF + #include "ctdl_module.h" @@ -1083,7 +1085,97 @@ void fixnss(void) { +void set_default_values(void) +{ + struct passwd *pw; + struct utsname my_utsname; + struct hostent *he; + + /* Determine our host name, in case we need to use it as a default */ + uname(&my_utsname); + + /* set some sample/default values in place of blanks... */ + if (IsEmptyStr(config.c_nodename)) + safestrncpy(config.c_nodename, my_utsname.nodename, + sizeof config.c_nodename); + strtok(config.c_nodename, "."); + if (IsEmptyStr(config.c_fqdn) ) { + if ((he = gethostbyname(my_utsname.nodename)) != NULL) { + safestrncpy(config.c_fqdn, he->h_name, sizeof config.c_fqdn); + } else { + safestrncpy(config.c_fqdn, my_utsname.nodename, sizeof config.c_fqdn); + } + } + if (IsEmptyStr(config.c_humannode)) { + strcpy(config.c_humannode, "My System"); + } + if (IsEmptyStr(config.c_phonenum)) { + strcpy(config.c_phonenum, "US 800 555 1212"); + } + if (config.c_initax == 0) { + config.c_initax = 4; + } + if (IsEmptyStr(config.c_moreprompt)) strcpy(config.c_moreprompt, ""); + if (IsEmptyStr(config.c_twitroom)) strcpy(config.c_twitroom, "Trashcan"); + if (IsEmptyStr(config.c_baseroom)) strcpy(config.c_baseroom, BASEROOM); + if (IsEmptyStr(config.c_aideroom)) strcpy(config.c_aideroom, "Aide"); + if (config.c_port_number == 0) { + config.c_port_number = 504; + } + if (config.c_sleeping == 0) { + config.c_sleeping = 900; + } + if (config.c_ctdluid == 0) { + pw = getpwnam("citadel"); + if (pw != NULL) { + config.c_ctdluid = pw->pw_uid; + } + } + if (config.c_ctdluid == 0) { + pw = getpwnam("bbs"); + if (pw != NULL) { + config.c_ctdluid = pw->pw_uid; + } + } + if (config.c_ctdluid == 0) { + pw = getpwnam("guest"); + if (pw != NULL) { + config.c_ctdluid = pw->pw_uid; + } + } + if (config.c_createax == 0) { + config.c_createax = 3; + } + /* + * Negative values for maxsessions are not allowed. + */ + if (config.c_maxsessions < 0) { + config.c_maxsessions = 0; + } + /* We need a system default message expiry policy, because this is + * the top level and there's no 'higher' policy to fall back on. + * By default, do not expire messages at all. + */ + if (config.c_ep.expire_mode == 0) { + config.c_ep.expire_mode = EXPIRE_MANUAL; + config.c_ep.expire_value = 0; + } + /* + * 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; + if (config.c_msa_port == 0) config.c_msa_port = 587; + if (config.c_smtps_port == 0) config.c_smtps_port = 465; + if (config.c_pop3s_port == 0) config.c_pop3s_port = 995; + if (config.c_imaps_port == 0) config.c_imaps_port = 993; + if (config.c_pftcpdict_port == 0) config.c_pftcpdict_port = -1; + if (config.c_managesieve_port == 0) config.c_managesieve_port = 2020; + if (config.c_xmpp_c2s_port == 0) config.c_xmpp_c2s_port = 5222; + if (config.c_xmpp_s2s_port == 0) config.c_xmpp_s2s_port = 5269; +} @@ -1096,16 +1188,14 @@ int main(int argc, char *argv[]) FILE *fp; int old_setup_level = 0; int info_only = 0; - struct utsname my_utsname; - struct passwd *pw; - struct hostent *he; - gid_t gid; int relh=0; int home=0; char relhome[PATH_MAX]=""; char ctdldir[PATH_MAX]=CTDLDIR; char DefValue[PATH_MAX]; int rv; + struct passwd *pw; + gid_t gid; /* set an invalid setup type */ setup_type = (-1); @@ -1173,8 +1263,6 @@ int main(int argc, char *argv[]) cleanup(errno); } - /* Determine our host name, in case we need to use it as a default */ - uname(&my_utsname); /* Try to stop Citadel if we can */ if (!access("/etc/init.d/citadel", X_OK)) { @@ -1234,87 +1322,7 @@ int main(int argc, char *argv[]) rv = fread((char *) &config, sizeof(struct config), 1, fp); fclose(fp); - /* set some sample/default values in place of blanks... */ - if (IsEmptyStr(config.c_nodename)) - safestrncpy(config.c_nodename, my_utsname.nodename, - sizeof config.c_nodename); - strtok(config.c_nodename, "."); - if (IsEmptyStr(config.c_fqdn) ) { - if ((he = gethostbyname(my_utsname.nodename)) != NULL) { - safestrncpy(config.c_fqdn, he->h_name, sizeof config.c_fqdn); - } else { - safestrncpy(config.c_fqdn, my_utsname.nodename, sizeof config.c_fqdn); - } - } - if (IsEmptyStr(config.c_humannode)) { - strcpy(config.c_humannode, "My System"); - } - if (IsEmptyStr(config.c_phonenum)) { - strcpy(config.c_phonenum, "US 800 555 1212"); - } - if (config.c_initax == 0) { - config.c_initax = 4; - } - if (IsEmptyStr(config.c_moreprompt)) strcpy(config.c_moreprompt, ""); - if (IsEmptyStr(config.c_twitroom)) strcpy(config.c_twitroom, "Trashcan"); - if (IsEmptyStr(config.c_baseroom)) strcpy(config.c_baseroom, BASEROOM); - if (IsEmptyStr(config.c_aideroom)) strcpy(config.c_aideroom, "Aide"); - if (config.c_port_number == 0) { - config.c_port_number = 504; - } - if (config.c_sleeping == 0) { - config.c_sleeping = 900; - } - if (config.c_ctdluid == 0) { - pw = getpwnam("citadel"); - if (pw != NULL) { - config.c_ctdluid = pw->pw_uid; - } - } - if (config.c_ctdluid == 0) { - pw = getpwnam("bbs"); - if (pw != NULL) { - config.c_ctdluid = pw->pw_uid; - } - } - if (config.c_ctdluid == 0) { - pw = getpwnam("guest"); - if (pw != NULL) { - config.c_ctdluid = pw->pw_uid; - } - } - if (config.c_createax == 0) { - config.c_createax = 3; - } - /* - * Negative values for maxsessions are not allowed. - */ - if (config.c_maxsessions < 0) { - config.c_maxsessions = 0; - } - /* We need a system default message expiry policy, because this is - * the top level and there's no 'higher' policy to fall back on. - * By default, do not expire messages at all. - */ - if (config.c_ep.expire_mode == 0) { - config.c_ep.expire_mode = EXPIRE_MANUAL; - config.c_ep.expire_value = 0; - } - - /* - * 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; - if (config.c_msa_port == 0) config.c_msa_port = 587; - if (config.c_smtps_port == 0) config.c_smtps_port = 465; - if (config.c_pop3s_port == 0) config.c_pop3s_port = 995; - if (config.c_imaps_port == 0) config.c_imaps_port = 993; - if (config.c_pftcpdict_port == 0) config.c_pftcpdict_port = -1; - if (config.c_managesieve_port == 0) config.c_managesieve_port = 2020; - if (config.c_xmpp_c2s_port == 0) config.c_xmpp_c2s_port = 5222; - if (config.c_xmpp_s2s_port == 0) config.c_xmpp_s2s_port = 5269; + set_default_values(); /* Go through a series of dialogs prompting for config info */ for (curr = 1; curr <= MAXSETUP; ++curr) { -- 2.30.2