repo: ngircd action: commit revision: path_from: revision_from: 7ef6cb4584c8604b73cbc82d07162757217dc08c: path_to: revision_to:
commit 7ef6cb4584c8604b73cbc82d07162757217dc08c Author: Alexander BartonDate: Sat Jun 25 14:50:52 2011 +0200 Check for redability of SSL-related files like for MOTD file Remove functions ssl_print_configvar() and ConfSSL_Puts(), introduce new function CheckFileReadable(). diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c
--- a/src/ngircd/conf.c
+++ b/src/ngircd/conf.c
@@ -109,56 +109,24 @@ ConfSSL_Init(void)
}
/**
- * Output SSL configuration variable containing a file name.
- * And make sure that the given file is readable.
+ * Make sure that a configured file is readable.
*
- * @returns true when the file is readable.
+ * Currently, this function is only used for SSL-related options ...
+ *
+ * @param Var Configuration variable
+ * @param Filename Configured filename
*/
-static bool
-ssl_print_configvar(const char *name, const char *file)
+static void
+CheckFileReadable(const char *Var, const char *Filename)
{
FILE *fp;
- if (!file) {
- printf(" %s =\n", name);
- return true;
- }
-
- fp = fopen(file, "r");
+ fp = fopen(Filename, "r");
if (fp)
fclose(fp);
else
- fprintf(stderr, "ERROR: %s \"%s\": %s\n",
- name, file, strerror(errno));
-
- printf(" %s = %s\n", name, file);
- return fp != NULL;
-}
-
-/**
- * Output SSL-related configuration variables.
- *
- * @returns true when all SSL-related configuration variables are valid.
- */
-static bool
-ConfSSL_Puts(void)
-{
- bool ret;
-
- ret = ssl_print_configvar("SSLKeyFile", Conf_SSLOptions.KeyFile);
-
- if (!ssl_print_configvar("SSLCertFile", Conf_SSLOptions.CertFile))
- ret = false;
-
- if (!ssl_print_configvar("SSLDHFile", Conf_SSLOptions.DHFile))
- ret = false;
-
- if (array_bytes(&Conf_SSLOptions.KeyFilePassword))
- puts(" SSLKeyFilePassword = ");
-
- array_free_wipe(&Conf_SSLOptions.KeyFilePassword);
-
- return ret;
+ Config_Error(LOG_ERR, "Can't read \"%s\" (\"%s\"): %s",
+ Filename, Var, strerror(errno));
}
#endif
@@ -977,6 +945,14 @@ Read_Config( bool ngircd_starting )
/* No MOTD phrase configured? (re)try motd file. */
if (array_bytes(&Conf_Motd) == 0)
Read_Motd(Conf_MotdFile);
+
+#ifdef SSL_SUPPORT
+ /* Make sure that all SSL-related files are readable */
+ CheckFileReadable("SSLCertFile", Conf_SSLOptions.CertFile);
+ CheckFileReadable("SSLDHFile", Conf_SSLOptions.DHFile);
+ CheckFileReadable("SSLKeyFile", Conf_SSLOptions.KeyFile);
+#endif
+
return true;
}
-----END OF PAGE-----