1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-12-12 09:50:29 +00:00

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.
This commit is contained in:
Florian Westphal 2009-08-31 19:42:59 +02:00
parent 5f1e43416a
commit cf7e19193b
2 changed files with 20 additions and 7 deletions

View File

@ -75,7 +75,8 @@ command.
.TP .TP
\fBPorts\fR \fBPorts\fR
Ports on which the server should listen. There may be more than one port, 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 .TP
\fBSSLPorts\fR \fBSSLPorts\fR
Same as \fBPorts\fR , except that ngIRCd will expect incoming connections Same as \fBPorts\fR , except that ngIRCd will expect incoming connections

View File

@ -542,6 +542,16 @@ Set_Defaults( bool InitServers )
} /* Set_Defaults */ } /* Set_Defaults */
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 static bool
Read_Config( bool ngircd_starting ) Read_Config( bool ngircd_starting )
{ {
@ -698,12 +708,14 @@ Read_Config( bool ngircd_starting )
Conf_Server[New_Server_Idx] = New_Server; Conf_Server[New_Server_Idx] = New_Server;
} }
if (0 == array_length(&Conf_ListenPorts, sizeof(UINT16))) { /* not a single listening port? Add default. */
if (!array_copyb(&Conf_ListenPorts, (char*) &defaultport, sizeof defaultport)) { if (no_listenports() &&
Config_Error( LOG_ALERT, "Could not add default listening Port %u: %s", !array_copyb(&Conf_ListenPorts, (char*) &defaultport, sizeof defaultport))
(unsigned int) defaultport, strerror(errno)); {
exit( 1 ); Config_Error(LOG_ALERT, "Could not add default listening Port %u: %s",
} (unsigned int) defaultport, strerror(errno));
exit(1);
} }
if (!Conf_ListenAddress) if (!Conf_ListenAddress)