return TRUE;
}
-static SilcBool my_parse_publickeydir(const char *dirname, void **auth_data,
- SilcSKRKeyUsage usage)
+static int my_parse_publickeydir(const char *dirname, void **auth_data,
+ SilcSKRKeyUsage usage)
{
int total = 0;
struct dirent *get_file;
if (!(dp = opendir(dirname))) {
SILC_SERVER_LOG_ERROR(("Error while parsing config file: "
"Could not open directory \"%s\"", dirname));
- return FALSE;
+ return -1;
}
/* errors are not considered fatal */
SILC_SERVER_LOG_ERROR(("Error stating file %s: %s", buf,
strerror(errno)));
} else if (S_ISREG(check_file.st_mode)) {
- my_parse_authdata(SILC_AUTH_PUBLIC_KEY, buf, auth_data, NULL,
- usage, NULL);
- total++;
+ if (my_parse_authdata(SILC_AUTH_PUBLIC_KEY, buf, auth_data, NULL,
+ usage, NULL))
+ total++;
}
}
SILC_LOG_DEBUG(("Tried to load %d public keys in \"%s\"", total, dirname));
- return TRUE;
+ return total;
}
/* Callbacks */
else if (!strcmp(name, "publickey")) {
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void *)&config->server->repository, NULL,
+ SILC_SKR_USAGE_AUTH |
SILC_SKR_USAGE_KEY_AGREEMENT, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
+ tmp->publickeys = TRUE;
}
else if (!strcmp(name, "publickeydir")) {
- if (!my_parse_publickeydir((char *) val,
- (void *)&config->server->repository,
- SILC_SKR_USAGE_KEY_AGREEMENT)) {
+ if (my_parse_publickeydir((char *) val,
+ (void *)&config->server->repository,
+ SILC_SKR_USAGE_AUTH |
+ SILC_SKR_USAGE_KEY_AGREEMENT) < 0) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
+ tmp->publickeys = TRUE;
}
else if (!strcmp(name, "params")) {
CONFIG_IS_DOUBLE(tmp->param);
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
+ tmp->publickeys = TRUE;
}
else
return SILC_CONFIG_EINTERNAL;
CONFIG_IS_DOUBLE(tmp->publickeys);
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void *)&config->server->repository, NULL,
+ SILC_SKR_USAGE_AUTH |
SILC_SKR_USAGE_KEY_AGREEMENT, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
+ tmp->publickeys = TRUE;
}
else if (!strcmp(name, "params")) {
CONFIG_IS_DOUBLE(tmp->param);
CONFIG_IS_DOUBLE(tmp->publickeys);
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
(void *)&config->server->repository, NULL,
+ SILC_SKR_USAGE_AUTH |
SILC_SKR_USAGE_KEY_AGREEMENT, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
+ tmp->publickeys = TRUE;
}
else if (!strcmp(name, "params")) {
CONFIG_IS_DOUBLE(tmp->param);