and in server init code. Fixed error log files containing
too many newlines ('\n') in some situations.
+Wed Sep 18 15:13:48 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
+
+ * Various cleanup in error message output in config parsing code
+ and in server init code. Fixed error log files containing
+ too many newlines ('\n') in some situations. Affected files are
+ silcd/serverconfig.c, silcd/silcd.c, and silcd/server.c.
+
Wed Sep 18 10:51:23 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
* Use the reverse lookupped hostname in client internals
Wed Sep 18 10:51:23 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
* Use the reverse lookupped hostname in client internals
{
*sock = silc_net_create_server(port, server_ip);
if (*sock < 0) {
{
*sock = silc_net_create_server(port, server_ip);
if (*sock < 0) {
- SILC_LOG_ERROR(("Could not create server listener: %s on %hu",
+ SILC_SERVER_LOG_ERROR(("Could not create server listener: %s on %hu",
server_ip, port));
return FALSE;
}
server_ip, port));
return FALSE;
}
server->starttime = time(NULL);
/* Take config object for us */
server->starttime = time(NULL);
/* Take config object for us */
- silc_server_config_ref(&server->config_ref, server->config,
+ silc_server_config_ref(&server->config_ref, server->config,
server->config);
/* Steal public and private key from the config object */
server->config);
/* Steal public and private key from the config object */
server->global_list->channels = silc_idcache_alloc(0, SILC_ID_CHANNEL, NULL);
/* Init watcher list */
server->global_list->channels = silc_idcache_alloc(0, SILC_ID_CHANNEL, NULL);
/* Init watcher list */
silc_hash_table_alloc(1, silc_hash_client_id_hash, NULL,
silc_hash_data_compare, (void *)CLIENTID_HASH_LEN,
NULL, NULL, TRUE);
silc_hash_table_alloc(1, silc_hash_client_id_hash, NULL,
silc_hash_data_compare, (void *)CLIENTID_HASH_LEN,
NULL, NULL, TRUE);
}
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
}
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
- "Cannot find Params \"%s\".\n", name));
+ "Cannot find Params \"%s\".", name));
return NULL;
}
/* parse an authdata according to its auth method */
static bool my_parse_authdata(SilcAuthMethod auth_meth, char *p,
return NULL;
}
/* parse an authdata according to its auth method */
static bool my_parse_authdata(SilcAuthMethod auth_meth, char *p,
- SilcUInt32 line, void **auth_data,
- SilcUInt32 *auth_data_len)
+ void **auth_data, SilcUInt32 *auth_data_len)
{
if (auth_meth == SILC_AUTH_PASSWORD) {
/* p is a plain text password */
{
if (auth_meth == SILC_AUTH_PASSWORD) {
/* p is a plain text password */
if (!silc_pkcs_load_public_key(p, &public_key, SILC_PKCS_FILE_PEM))
if (!silc_pkcs_load_public_key(p, &public_key, SILC_PKCS_FILE_BIN)) {
if (!silc_pkcs_load_public_key(p, &public_key, SILC_PKCS_FILE_PEM))
if (!silc_pkcs_load_public_key(p, &public_key, SILC_PKCS_FILE_BIN)) {
- SILC_SERVER_LOG_ERROR(("\nError while parsing config file at line "
- "%lu: Could not load public key file!\n",
- line));
+ SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
+ "Could not load public key file!"));
TRUE);
silc_hash_table_add(*auth_data, public_key, public_key);
}
TRUE);
silc_hash_table_add(*auth_data, public_key, public_key);
}
- } else {
- SILC_SERVER_LOG_ERROR(("\nError while parsing config file at line %lu: "
- "Unknown authentication method.\n", line));
- return FALSE;
- }
SILC_SERVER_CONFIG_ALLOCTMP(SilcServerConfigServerInfoInterface);
if ((port <= 0) || (port > 65535)) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
SILC_SERVER_CONFIG_ALLOCTMP(SilcServerConfigServerInfoInterface);
if ((port <= 0) || (port > 65535)) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
- "Invalid port number!\n"));
+ "Invalid port number!"));
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
SILC_PKCS_FILE_PEM))
if (!silc_pkcs_load_public_key(file_tmp, &server_info->public_key,
SILC_PKCS_FILE_BIN)) {
SILC_PKCS_FILE_PEM))
if (!silc_pkcs_load_public_key(file_tmp, &server_info->public_key,
SILC_PKCS_FILE_BIN)) {
- SILC_SERVER_LOG_ERROR(("Error: Could not load public key file.\n"));
- SILC_SERVER_LOG_ERROR((" line %lu, file \"%s\"\n", line, file_tmp));
- return SILC_CONFIG_ESILENT;
+ SILC_SERVER_LOG_ERROR(("Error: Could not load public key file."));
+ return SILC_CONFIG_EPRINTLINE;
}
}
else if (!strcmp(name, "privatekey")) {
}
}
else if (!strcmp(name, "privatekey")) {
SILC_PKCS_FILE_BIN))
if (!silc_pkcs_load_private_key(file_tmp, &server_info->private_key,
SILC_PKCS_FILE_PEM)) {
SILC_PKCS_FILE_BIN))
if (!silc_pkcs_load_private_key(file_tmp, &server_info->private_key,
SILC_PKCS_FILE_PEM)) {
- SILC_SERVER_LOG_ERROR(("Error: Could not load private key file.\n"));
- SILC_SERVER_LOG_ERROR((" line %lu, file \"%s\"\n", line, file_tmp));
- return SILC_CONFIG_ESILENT;
+ SILC_SERVER_LOG_ERROR(("Error: Could not load private key file."));
+ return SILC_CONFIG_EPRINTLINE;
if (flushdelay < 2) { /* this value was taken from silclog.h (min delay) */
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
"Invalid flushdelay value, use quicklogs if you "
if (flushdelay < 2) { /* this value was taken from silclog.h (min delay) */
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
"Invalid flushdelay value, use quicklogs if you "
- "want real-time logging.\n"));
+ "want real-time logging."));
return SILC_CONFIG_EPRINTLINE;
}
config->logging_flushdelay = (long) flushdelay;
return SILC_CONFIG_EPRINTLINE;
}
config->logging_flushdelay = (long) flushdelay;
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
- if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
- if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void **)&tmp->publickeys, NULL)) {
(void **)&tmp->publickeys, NULL)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
- if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
- if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void **)&tmp->publickeys, NULL)) {
(void **)&tmp->publickeys, NULL)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
- if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
- if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void **)&tmp->publickeys, NULL)) {
(void **)&tmp->publickeys, NULL)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
int port = *(int *)val;
if ((port <= 0) || (port > 65535)) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
int port = *(int *)val;
if ((port <= 0) || (port > 65535)) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
- "Invalid port number!\n"));
+ "Invalid port number!"));
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
- if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
(void **)&tmp->passphrase,
&tmp->passphrase_len)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
goto got_err;
}
}
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
- if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val, line,
+ if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void **)&tmp->publickeys, NULL)) {
(void **)&tmp->publickeys, NULL)) {
- got_errno = SILC_CONFIG_ESILENT;
+ got_errno = SILC_CONFIG_EPRINTLINE;
int port = *(int *)val;
if ((port <= 0) || (port > 65535)) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
int port = *(int *)val;
if ((port <= 0) || (port > 65535)) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
- "Invalid port number!\n"));
+ "Invalid port number!"));
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
/* obtain a config file object */
file = silc_config_open(filename);
if (!file) {
/* obtain a config file object */
file = silc_config_open(filename);
if (!file) {
- SILC_SERVER_LOG_ERROR(("\nError: can't open config file `%s'\n",
+ SILC_SERVER_LOG_ERROR(("\nError: can't open config file `%s'",
filename));
return NULL;
}
filename));
return NULL;
}
char *linebuf, *filename = silc_config_get_filename(file);
SilcUInt32 line = silc_config_get_line(file);
if (ret != SILC_CONFIG_EPRINTLINE)
char *linebuf, *filename = silc_config_get_filename(file);
SilcUInt32 line = silc_config_get_line(file);
if (ret != SILC_CONFIG_EPRINTLINE)
- SILC_SERVER_LOG_ERROR(("Error while parsing config file: %s.\n",
+ SILC_SERVER_LOG_ERROR(("Error while parsing config file: %s.",
silc_config_strerror(ret)));
linebuf = silc_config_read_line(file, line);
silc_config_strerror(ret)));
linebuf = silc_config_read_line(file, line);
- SILC_SERVER_LOG_ERROR((" file %s line %lu: %s\n\n", filename,
+ SILC_SERVER_LOG_ERROR((" file %s line %lu: %s\n", filename,
line, linebuf));
silc_free(linebuf);
}
line, linebuf));
silc_free(linebuf);
}
/* If config_new is incomplete, abort the object and return NULL */
if (!config_new->server_info) {
SILC_SERVER_LOG_ERROR(("\nError: Missing mandatory block "
/* If config_new is incomplete, abort the object and return NULL */
if (!config_new->server_info) {
SILC_SERVER_LOG_ERROR(("\nError: Missing mandatory block "
silc_server_config_destroy(config_new);
return NULL;
}
silc_server_config_destroy(config_new);
return NULL;
}
STAT_OUTPUT(" Packets sent : %d", silcd->stat.packets_sent);
STAT_OUTPUT(" Packets received : %d", silcd->stat.packets_received);
STAT_OUTPUT(" Packets sent : %d", silcd->stat.packets_sent);
STAT_OUTPUT(" Packets received : %d", silcd->stat.packets_received);
fflush(fdd);
fclose(fdd);
}
fflush(fdd);
fclose(fdd);
}
-/* This function should not be called directly but throught the wrapper
+/* This function should not be called directly but thru the wrapper
macro SILC_SERVER_LOG_STDERR() */
void silc_server_stderr(char *message)
{
macro SILC_SERVER_LOG_STDERR() */
void silc_server_stderr(char *message)
{
+ if (silcd->background) {
+ char *p, *n = message;
+
+ /* remove newlines if we are going to output it to a log file */
+ for (p = n; *p; p++) {
+ if (*p != '\n') {
+ if (p != n)
+ *n = *p;
+ n++;
+ }
+ }
+ *n = 0;
+
silc_log_output(SILC_LOG_ERROR, message);
silc_log_output(SILC_LOG_ERROR, message);
- fprintf(stderr, "%s", message);
+ fprintf(stderr, "%s\n", message);