diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c index f1db385c6b80c9876f6d18e33c74fae814803cf0..37a302be9ee0a5f26536687d080a867c06510fae 100644 --- a/src/sbbs3/sbbscon.c +++ b/src/sbbs3/sbbscon.c @@ -128,6 +128,8 @@ static const char* usage = "usage: %s [[option] [...]]\n" "\n" "Global options:\n" "\n" + "\thn[host] set hostname for this instance\n" + " if host not specified, uses gethostname\n" #ifdef __unix__ "\tun<user> set username for BBS to run as\n" "\tug<group> set group for BBS to run as\n" @@ -701,8 +703,7 @@ int main(int argc, char** argv) continue; p+=10; /* skip "nameserver" */ while(*p && *p<=' ') p++; /* skip more white-space */ - sprintf(mail_startup.dns_server,"%.*s" - ,sizeof(mail_startup.dns_server)-1,p); + SAFECOPY(mail_startup.dns_server,p); break; } fclose(fp); @@ -852,6 +853,29 @@ int main(int argc, char** argv) return(0); } break; + case 'H': /* Host */ + switch(toupper(*(arg++))) { + case 'N': /* Name */ + if(*arg) { + SAFECOPY(bbs_startup.host_name,arg); + SAFECOPY(ftp_startup.host_name,arg); + SAFECOPY(mail_startup.host_name,arg); + SAFECOPY(services_startup.host_name,arg); + } else { + gethostname(bbs_startup.host_name + ,sizeof(bbs_startup.host_name)-1); + gethostname(ftp_startup.host_name + ,sizeof(ftp_startup.host_name)-1); + gethostname(mail_startup.host_name + ,sizeof(mail_startup.host_name)-1); + gethostname(services_startup.host_name + ,sizeof(services_startup.host_name)-1); + } + default: + printf(usage,argv[0]); + return(0); + } + break; case 'S': /* SMTP/SendMail */ switch(toupper(*(arg++))) { case '-':