diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c index 6c64f2c509e029275ab89a87d66cde2edbfe7c44..ce6e49a755ea1a358dde97010c7782f3534e389e 100644 --- a/src/syncterm/bbslist.c +++ b/src/syncterm/bbslist.c @@ -839,6 +839,14 @@ read_item(str_list_t listfile, struct bbslist *entry, char *bbsname, int id, int strListFree(§ion); } +bool +is_reserved_bbs_name(const char *name) +{ + if (stricmp(name, "syncterm-system-cache") == 0) + return true; + return false; +} + /* * Checks if bbsname already is listed in list * setting *pos to the position if not NULL. @@ -894,7 +902,7 @@ read_list(char *listpath, struct bbslist **list, struct bbslist *defaults, int * read_item(inilines, defaults, NULL, -1, type); bbses = iniGetSectionList(inilines, NULL); while ((bbsname = strListRemove(&bbses, 0)) != NULL) { - if (!list_name_check(list, bbsname, NULL, false)) { + if ((!list_name_check(list, bbsname, NULL, false)) && (!is_reserved_bbs_name(bbsname))) { if ((list[*i] = (struct bbslist *)malloc(sizeof(struct bbslist))) == NULL) { free(bbsname); break; @@ -1102,6 +1110,12 @@ edit_name(char *itemname, struct bbslist **list, str_list_t inifile, bool edit_t uifc.msg("Entry Name Already Exists!"); check_exit(false); } + else if(is_reserved_bbs_name(tmp)) { + uifc.helpbuf = "`Reserved Name`\n\n" + "The name you entered is reserved for internal use\n"; + uifc.msg("Reserved Name!"); + check_exit(false); + } else { if (tmp[0] == 0) { uifc.helpbuf = "`Can Not Use an Empty Name`\n\n" @@ -3266,6 +3280,13 @@ show_bbslist(char *current, int connected) check_exit(false); break; } + if(is_reserved_bbs_name(tmp)) { + uifc.helpbuf = "`Reserved Name`\n\n" + "The name you entered is reserved for internal use\n"; + uifc.msg("Reserved Name!"); + check_exit(false); + break; + } listcount++; list[listcount] = list[listcount - 1]; list[listcount