CONFIG_IS_DOUBLE(server_info->server_type);
server_info->server_type = strdup((char *) val);
}
+ else if (!strcmp(name, "externalip")) {
+ CONFIG_IS_DOUBLE(server_info->external_ip);
+ server_info->external_ip = strdup((char *) val);
+ }
else if (!strcmp(name, "admin")) {
CONFIG_IS_DOUBLE(server_info->admin);
server_info->admin = strdup((char *) val);
/* Check the private key file permissions. */
if ((stat(file_tmp, &st)) != -1) {
- if ((st.st_mode & 0777) != 0600) {
+ if (((st.st_mode & 0777) != 0600) &&
+ ((st.st_mode & 0777) != 0640)) {
SILC_SERVER_LOG_ERROR(("Wrong permissions in private key "
"file \"%s\". The permissions must be "
- "0600.", file_tmp));
+ "0600 or 0640.", file_tmp));
return SILC_CONFIG_ESILENT;
}
}
{ "primary", SILC_CONFIG_ARG_BLOCK, fetch_serverinfo, table_serverinfo_c},
{ "secondary", SILC_CONFIG_ARG_BLOCK, fetch_serverinfo, table_serverinfo_c},
{ "servertype", SILC_CONFIG_ARG_STR, fetch_serverinfo, NULL},
+ { "externalip", SILC_CONFIG_ARG_STR, fetch_serverinfo, NULL},
{ "location", SILC_CONFIG_ARG_STR, fetch_serverinfo, NULL},
{ "admin", SILC_CONFIG_ARG_STR, fetch_serverinfo, NULL},
{ "adminemail", SILC_CONFIG_ARG_STR, fetch_serverinfo, NULL},
silc_free(di);
}
silc_free(si->server_type);
+ silc_free(si->external_ip);
silc_free(si->location);
silc_free(si->admin);
silc_free(si->email);