--- lbbs/src/init.c 2025/06/21 01:34:12 1.27 +++ lbbs/src/init.c 2025/12/19 06:16:27 1.36 @@ -1,34 +1,30 @@ -/*************************************************************************** - init.c - description - ------------------- - Copyright : (C) 2004-2025 by Leaflet - Email : leaflet@leafok.com - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 3 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * init + * - initializer of server daemon + * + * Copyright (C) 2004-2025 Leaflet + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif -#include "init.h" -#include "database.h" #include "bbs.h" #include "common.h" -#include "log.h" +#include "database.h" +#include "init.h" #include "io.h" -#include -#include +#include "log.h" #include +#include +#include #include #include -#include #include +#include -#define CONF_DELIM_WITH_SPACE " \t\r\n" +static const char CONF_DELIM_WITH_SPACE[] = " \t\r\n"; int init_daemon(void) { @@ -71,6 +67,7 @@ int load_conf(const char *conf_file) char *saveptr = NULL; char *p, *q, *r; char *y, *m, *d; + int v; FILE *fin; // Load configuration @@ -96,7 +93,7 @@ int load_conf(const char *conf_file) q = strtok_r(NULL, CONF_DELIM_WITH_SPACE, &saveptr); if (q == NULL) // Empty value { - log_error("Skip empty value of config item: %s\n", p); + log_error("Skip empty value of config item: %s", p); continue; } @@ -104,7 +101,7 @@ int load_conf(const char *conf_file) r = strtok_r(NULL, CONF_DELIM_WITH_SPACE, &saveptr); if (r != NULL && r[0] != '#') { - log_error("Skip config line with extra value %s = %s %s\n", p, q, r); + log_error("Skip config line with extra value %s = %s %s", p, q, r); continue; } @@ -141,7 +138,7 @@ int load_conf(const char *conf_file) BBS_max_client = atoi(q); if (BBS_max_client <= 0 || BBS_max_client > MAX_CLIENT_LIMIT) { - log_error("Ignore config bbs_max_client with incorrect value %d\n", BBS_max_client); + log_error("Ignore config bbs_max_client with incorrect value %d", BBS_max_client); BBS_max_client = MAX_CLIENT_LIMIT; } } @@ -150,19 +147,10 @@ int load_conf(const char *conf_file) BBS_max_client_per_ip = atoi(q); if (BBS_max_client_per_ip <= 0 || BBS_max_client_per_ip > MAX_CLIENT_PER_IP_LIMIT) { - log_error("Ignore config bbs_max_client with incorrect value %d\n", BBS_max_client_per_ip); + log_error("Ignore config bbs_max_client with incorrect value %d", BBS_max_client_per_ip); BBS_max_client_per_ip = MAX_CLIENT_PER_IP_LIMIT; } } - else if (strcasecmp(p, "bbs_max_user") == 0) - { - BBS_max_user = atoi(q); - if (BBS_max_user <= 0 || BBS_max_user > BBS_MAX_USER_LIMIT) - { - log_error("Ignore config bbs_max_client with incorrect value %d\n", BBS_max_user); - BBS_max_user = BBS_MAX_USER_LIMIT; - } - } else if (strcasecmp(p, "bbs_start_dt") == 0) { y = strtok_r(q, "-", &saveptr); @@ -171,10 +159,20 @@ int load_conf(const char *conf_file) if (y == NULL || m == NULL || d == NULL) { - log_error("Ignore config bbs_start_dt with incorrect value\n"); + log_error("Ignore config bbs_start_dt with incorrect value"); + continue; + } + snprintf(BBS_start_dt, sizeof(BBS_start_dt), "%4så¹´%2s月%2sæ—¥", y, m, d); + } + else if (strcasecmp(p, "bbs_sys_id") == 0) + { + v = atoi(q); + if (v <= 0) + { + log_error("Ignore config bbs_sys_id with incorrect value %d", v); continue; } - snprintf(BBS_start_dt, sizeof(BBS_start_dt), "%4sÄê%2sÔÂ%2sÈÕ", y, m, d); + BBS_sys_id = v; } else if (strcasecmp(p, "db_host") == 0) { @@ -203,7 +201,7 @@ int load_conf(const char *conf_file) } else { - log_error("Unknown config %s = %s\n", p, q); + log_error("Unknown config %s = %s", p, q); } }