Skip to content
Snippets Groups Projects
Commit 953fb85b authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Create the "Servers" configuration sub-menu, currently read-only

I'm surprised more people haven't wondered aloud: why are all the Synchronet
server settings in this huge sbbs.ini file? Well... this kind of answers that
question: it's a hell of a lot of settings! And this isn't even everything
(several advanced/rarely-used/borderline-deprecated settings aren't included)!

As part of this change, I've replaced the old date/time display with the
current config file path/name that's being edited (more or less). This will
help when a sysop has multiple sbbs.*.ini files and makes it clear if you have
multiple sbbs installs (like me), which one you're editing at any given time.

I have not implemented any of the server setting edits (other than a couple
simple toggles) or help text yet and this does not detect changes or save them
to the sbbs.ini file, but I wanted to get this committed at this stage anyway.
If you're running sbbsctrl.exe (or maybe even gtkmonitor), then maybe this is
completely redundant and unnecessary, but I figured it was good to have these
settings in one edit find/edit platform-agnostic location anyway. Hoepfully
this will (when its done) make SBBS for *nix just that much easier for a newbie
sysop/sysadmin.
parent ffe092b6
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #3973 failed
......@@ -9,6 +9,7 @@ OBJS = $(MTOBJODIR)/scfg$(OFILE)\
$(MTOBJODIR)/scfgmsg$(OFILE)\
$(MTOBJODIR)/scfgnet$(OFILE)\
$(MTOBJODIR)/scfgnode$(OFILE)\
$(MTOBJODIR)/scfgsrvr$(OFILE)\
$(MTOBJODIR)/scfgsub$(OFILE)\
$(MTOBJODIR)/scfgsys$(OFILE)\
$(MTOBJODIR)/scfgxfr1$(OFILE)\
......@@ -18,6 +19,7 @@ OBJS = $(MTOBJODIR)/scfg$(OFILE)\
$(MTOBJODIR)/scfglib1$(OFILE)\
$(MTOBJODIR)/scfglib2$(OFILE)\
$(MTOBJODIR)/getctrl$(OFILE)\
$(MTOBJODIR)/sbbs_ini$(OFILE)\
$(MTOBJODIR)/load_cfg$(OFILE)\
$(MTOBJODIR)/readtext$(OFILE)\
$(MTOBJODIR)/text_defaults$(OFILE)\
......
......@@ -362,12 +362,19 @@ void cfg_wizard(void)
free_msgs_cfg(&cfg);
}
void display_filename(const char* fname)
{
if(strlen(fname) + 30 > uifc.scrn_width)
fname = getfname(fname);
uifc.printf(29, 1, uifc.bclr|(uifc.cclr<<4), "%*s", uifc.scrn_width - 30, fname);
}
int main(int argc, char **argv)
{
char **mopt,*p;
char errormsg[MAX_PATH*2];
int i,j,main_dflt=0,chat_dflt=0;
char str[MAX_PATH+1];
char cfg_fname[MAX_PATH+1];
BOOL door_mode=FALSE;
int ciolib_mode=CIOLIB_MODE_AUTO;
char compiler[32];
......@@ -647,20 +654,21 @@ int main(int argc, char **argv)
if((mopt[i]=(char *)malloc(64))==NULL)
allocfail(64);
uifc.timedisplay = NULL;
SAFEPRINTF2(title,"Synchronet for %s v%s",PLATFORM_DESC,VERSION);
if(uifc.scrn(title)) {
printf(" USCRN (len=%d) failed!\n",uifc.scrn_len+1);
bail(1);
}
SAFEPRINTF(str,"%smain.ini",cfg.ctrl_dir);
if(!fexist(str)) {
SAFEPRINTF(errormsg, "Main configuration file (%s) missing!",str);
SAFEPRINTF(cfg_fname, "%smain.ini", cfg.ctrl_dir);
if(!fexist(cfg_fname)) {
SAFEPRINTF(errormsg, "Main configuration file (%s) missing!", cfg_fname);
uifc.msg(errormsg);
}
FILE* fp = iniOpenFile(str, /* for_modify */TRUE);
FILE* fp = iniOpenFile(cfg_fname, /* for_modify */TRUE);
if(fp == NULL) {
SAFEPRINTF2(errormsg, "Error %d opening configuration file: %s", errno, str);
SAFEPRINTF2(errormsg, "Error %d opening configuration file: %s", errno, cfg_fname);
uifc.msg(errormsg);
} else {
cfg.new_install = iniReadBool(fp, ROOT_SECTION, "new_install", TRUE);
......@@ -672,10 +680,10 @@ int main(int argc, char **argv)
if(run_wizard)
bail(0);
}
i=0;
strcpy(mopt[i++],"Nodes");
strcpy(mopt[i++],"System");
strcpy(mopt[i++],"Servers");
strcpy(mopt[i++],"Networks");
strcpy(mopt[i++],"File Areas");
strcpy(mopt[i++],"File Options");
......@@ -689,6 +697,7 @@ int main(int argc, char **argv)
i = cryptInit();
(void)i;
while(1) {
display_filename(cfg_fname);
uifc.helpbuf=
"`Main Configuration Menu:`\n"
"\n"
......@@ -697,6 +706,7 @@ int main(int argc, char **argv)
"\n"
" `Nodes ` Add, delete, or configure nodes\n"
" `System ` System-wide configuration options\n"
" `Servers ` TCP/IP Servers and Services\n"
" `Networks ` Networking configuration\n"
" `File Areas ` File area configuration\n"
" `File Options ` File area options\n"
......@@ -736,9 +746,12 @@ int main(int argc, char **argv)
free_main_cfg(&cfg);
break;
case 2:
net_cfg();
server_cfg();
break;
case 3:
net_cfg();
break;
case 4:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg,"ERROR: %s",error);
uifc.msg(errormsg);
......@@ -753,7 +766,7 @@ int main(int argc, char **argv)
free_file_cfg(&cfg);
free_main_cfg(&cfg);
break;
case 4:
case 5:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg,"ERROR: %s",error);
uifc.msg(errormsg);
......@@ -768,7 +781,7 @@ int main(int argc, char **argv)
free_file_cfg(&cfg);
free_main_cfg(&cfg);
break;
case 5:
case 6:
if(!load_chat_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg,"ERROR: %s",error);
uifc.msg(errormsg);
......@@ -814,7 +827,7 @@ int main(int argc, char **argv)
}
free_chat_cfg(&cfg);
break;
case 6:
case 7:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg, "ERROR: %s",error);
uifc.msg(errormsg);
......@@ -829,7 +842,7 @@ int main(int argc, char **argv)
free_msgs_cfg(&cfg);
free_main_cfg(&cfg);
break;
case 7:
case 8:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg, "ERROR: %s",error);
uifc.msg(errormsg);
......@@ -844,7 +857,7 @@ int main(int argc, char **argv)
free_msgs_cfg(&cfg);
free_main_cfg(&cfg);
break;
case 8:
case 9:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg, "ERROR: %s",error);
uifc.msg(errormsg);
......@@ -853,7 +866,7 @@ int main(int argc, char **argv)
shell_cfg();
free_main_cfg(&cfg);
break;
case 9:
case 10:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg, "ERROR: %s",error);
uifc.msg(errormsg);
......@@ -868,7 +881,7 @@ int main(int argc, char **argv)
free_xtrn_cfg(&cfg);
free_main_cfg(&cfg);
break;
case 10:
case 11:
if(!load_main_cfg(&cfg, error, sizeof(error))) {
SAFEPRINTF(errormsg, "ERROR: %s",error);
uifc.msg(errormsg);
......
......@@ -115,6 +115,7 @@ extern char* area_sort_desc[AREA_SORT_TYPES+1];
/* Function Prototypes */
/***********************/
void display_filename(const char*);
void bail(int code);
void errormsg(int line, const char* function, const char *source, const char* action, const char *object, ulong access);
void clearptrs(int subnum);
......@@ -146,6 +147,7 @@ void init_mdms(void);
void guru_cfg(void);
void actsets_cfg(void);
void chan_cfg(void);
void server_cfg(void);
void mdm_cfg(int mdmnum);
void wizard_msg(int page, int total, const char* text);
int edit_sys_name(int page, int total);
......
......@@ -36,6 +36,7 @@ void node_menu()
static int node_menu_dflt, node_bar;
while(1) {
display_filename("");
for(i=0;i<cfg.sys_nodes;i++)
sprintf(opt[i],"Node %d",i+1);
opt[i][0]=0;
......@@ -155,6 +156,9 @@ void node_menu()
cfg.node_num = i + 1; /* so fix it */
save_node_cfg(&cfg, backup_level); /* and write it back */
}
char cfg_fname[MAX_PATH + 1];
SAFEPRINTF(cfg_fname, "%snode.ini", cfg.node_dir);
display_filename(cfg_fname);
node_cfg();
free_node_cfg(&cfg);
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment