Commit Diff
Diff:
5f1e43416a7ff8185928ce8538b8d0826c61b93f
cf7e19193b79af0711c5a03ac7da33bd84947b16
Commit:
cf7e19193b79af0711c5a03ac7da33bd84947b16
Tree:
1de9d196c777b5cdb1b2fbae8ec1c9c857c32b20
Author:
Florian Westphal <fw@strlen.de>
Committer:
Florian Westphal <fw@strlen.de>
Date:
Mon Aug 31 20:08:35 2009 UTC
Message:
do not add default listening port if ssl ports were specified Cosmo Kastemaa reported that its impossible to create an ssl-only setup, as ngircd binds to port 6667 by default, even if setting "Ports =". Only add the default port if _both_ "Ports" and "SSLPorts" are unspecified. Fixes bugzilla #98.
blob - 8e5b254aa04d2bdb69a487c72651b3d59e8bf456
blob + a725af65342c469dd330600f46299b1eabea1987
--- man/ngircd.conf.5.tmpl
+++ man/ngircd.conf.5.tmpl
@@ -75,7 +75,8 @@ command.
.TP
\fBPorts\fR
Ports on which the server should listen. There may be more than one port,
-separated with commas (","). Default: 6667.
+separated with commas (","). Default: 6667, unless \fBSSL_Ports\fR are also
+specified.
.TP
\fBSSLPorts\fR
Same as \fBPorts\fR , except that ngIRCd will expect incoming connections
blob - eccf13cc3edec2a78d533287c2d92a18ce2345ce
blob + 1d1bb482d43cc4c3f5da606ac540cf40cd75afca
--- src/ngircd/conf.c
+++ src/ngircd/conf.c
@@ -543,6 +543,16 @@ Set_Defaults( bool InitServers )
static bool
+no_listenports(void)
+{
+ unsigned int cnt = array_bytes(&Conf_ListenPorts);
+#ifdef SSL_SUPPORT
+ cnt += array_bytes(&Conf_SSLOptions.ListenPorts);
+#endif
+ return cnt == 0;
+}
+
+static bool
Read_Config( bool ngircd_starting )
{
/* Read configuration file. */
@@ -698,12 +708,14 @@ Read_Config( bool ngircd_starting )
Conf_Server[New_Server_Idx] = New_Server;
}
- if (0 == array_length(&Conf_ListenPorts, sizeof(UINT16))) {
- if (!array_copyb(&Conf_ListenPorts, (char*) &defaultport, sizeof defaultport)) {
- Config_Error( LOG_ALERT, "Could not add default listening Port %u: %s",
- (unsigned int) defaultport, strerror(errno));
- exit( 1 );
- }
+ /* not a single listening port? Add default. */
+ if (no_listenports() &&
+ !array_copyb(&Conf_ListenPorts, (char*) &defaultport, sizeof defaultport))
+ {
+ Config_Error(LOG_ALERT, "Could not add default listening Port %u: %s",
+ (unsigned int) defaultport, strerror(errno));
+
+ exit(1);
}
if (!Conf_ListenAddress)
IRCNow