commit - 4a5dfcc3ace54de033f16503065831ed62433b2d
commit + 1dca082fc6f0595d6bde431bf50132445340fb7f
blob - 12b688d23d06ecabcc88494091ad3a4761c5ecc9
blob + 9bfa9d41a11a41717ee3b3353639ec39e2ea1214
--- doc/sample-ngircd.conf.tmpl
+++ doc/sample-ngircd.conf.tmpl
# Allow Pre-Defined Channels only (see Section [Channels])
;PredefChannelsOnly = no
- # Don't do any DNS lookups when a client connects to the server.
- ;NoDNS = no
+ # Do any DNS lookups when a client connects to the server.
+ ;DNS = yes
- # Don't do any IDENT lookups, even if ngIRCd has been compiled
- # with support for it.
- ;NoIdent = no
-
- # Don't use PAM, even if ngIRCd has been compiled with support for it.
- ;NoPAM = no
+ # Do any IDENT lookups if ngIRCd has been compiled with support for it.
+ ;Ident = yes
- # Don't use ZeroConf service registration, even if ngIRCd has been
+ # Use PAM if ngIRCd has been compiled with support for it.
+ ;PAM = no
+
+ # Use ZeroConf service registration if ngIRCd has been
# compiled with support for it (e.g. Howl, Avahi, Mac OS X).
- ;NoZeroConf = no
+ ;ZeroConf = no
# try to connect to other irc servers using ipv4 and ipv6, if possible
;ConnectIPv6 = yes
blob - 8fa7623a421d92ad35f6c5737c270c8d337d5d6e
blob + 1a6301fbec25e3c503c7885ca8c4f25e6418a9ec
--- man/ngircd.conf.5.tmpl
+++ man/ngircd.conf.5.tmpl
[Channel] sections in the configuration file.
Default: no.
.TP
-\fBNoDNS\fR
-If set to true, ngIRCd will not make DNS lookups when clients connect.
+\fBDNS\fR
+If set to false, ngIRCd will not make DNS lookups when clients connect.
If you configure the daemon to connect to other servers, ngIRCd may still
perform a DNS lookup if required.
-Default: no.
+Default: yes.
.TP
-\fBNoIdent\fR
+\fBIdent\fR
If ngIRCd is compiled with IDENT support this can be used to disable IDENT
lookups at run time.
-Default: no.
+Default: yes.
.TP
-\fBNoPAM\fR
+\fBPAM\fR
If ngIRCd is compiled with PAM support this can be used to disable all calls
to the PAM library at runtime; all users connecting without password are
allowed to connect, all passwords given will fail.
-Default: no.
+Default: yes.
.TP
-\fBNoZeroConf\fR
+\fBZeroConf\fR
If ngIRCd is compiled to register its services using ZeroConf (e.g. using
Howl, Avahi or on Mac OS X) this parameter can be used to disable service
registration at runtime.
-Default: no.
+Default: yes.
.TP
\fBConnectIPv4\fR
Set this to no if you do not want ngIRCd to connect to other IRC servers using
blob - ecd1a7c5fb462cdd6f319578376a42dccb7eb09a
blob + 737c01841c7381ece36543ba7e203842118ac93a
--- src/ngircd/client.c
+++ src/ngircd/client.c
This_Server->hops = 0;
gethostname( This_Server->host, CLIENT_HOST_LEN );
- if (!Conf_NoDNS) {
+ if (Conf_DNS) {
h = gethostbyname( This_Server->host );
if (h) strlcpy(This_Server->host, h->h_name, sizeof(This_Server->host));
}
blob - 4a255b26b81ae56834db34434a904b620dea8a29
blob + b194d3aedec0ae510fe68329209f328164654be9
--- src/ngircd/conf.c
+++ src/ngircd/conf.c
printf(" OperServerMode = %s\n", yesno_to_str(Conf_OperServerMode));
printf(" AllowRemoteOper = %s\n", yesno_to_str(Conf_AllowRemoteOper));
printf(" PredefChannelsOnly = %s\n", yesno_to_str(Conf_PredefChannelsOnly));
- printf(" NoDNS = %s\n", yesno_to_str(Conf_NoDNS));
- printf(" NoIdent = %s\n", yesno_to_str(Conf_NoIdent));
- printf(" NoPAM = %s\n", yesno_to_str(Conf_NoPAM));
- printf(" NoZeroConf = %s\n", yesno_to_str(Conf_NoZeroConf));
+ printf(" DNS = %s\n", yesno_to_str(Conf_DNS));
+ printf(" Ident = %s\n", yesno_to_str(Conf_Ident));
+ printf(" PAM = %s\n", yesno_to_str(Conf_PAM));
+ printf(" ZeroConf = %s\n", yesno_to_str(Conf_ZeroConf));
#ifdef WANT_IPV6
printf(" ConnectIPv4 = %s\n", yesno_to_str(Conf_ConnectIPv6));
} /* Conf_IsService */
+static void
+Set_Defaults_Optional(void)
+{
+#ifdef IDENTAUTH
+ Conf_Ident = true;
+#else
+ Conf_Ident = false;
+#endif
+#ifdef PAM
+ Conf_PAM = true;
+#else
+ Conf_PAM = false;
+#endif
+#ifdef ZEROCONF
+ Conf_ZeroConf = true;
+#else
+ Conf_ZeroConf = false;
+#endif
+}
+
+
/**
* Initialize configuration settings with their default values.
*/
Conf_PingTimeout = 120;
Conf_PongTimeout = 20;
Conf_ConnectRetry = 60;
- Conf_NoDNS = false;
- Conf_NoIdent = false;
- Conf_NoPAM = false;
- Conf_NoZeroConf = false;
+ Conf_DNS = true;
Conf_Oper_Count = 0;
Conf_Channel_Count = 0;
Conf_SyslogFacility = 0;
#endif
#endif
+ Set_Defaults_Optional();
/* Initialize server configuration structures */
if (InitServers) {
}
return new;
} /* Handle_MaxNickLength */
+
+
+static void
+WarnIdent(int Line)
+{
+#ifndef IDENTAUTH
+ if (Conf_Ident) {
+ /* user has enabled ident lookups explicitly, but ... */
+ Config_Error(LOG_WARNING,
+ "%s: line %d: Ident=True, but ngircd was built without IDENT support",
+ NGIRCd_ConfFile, Line);
+ }
+#endif
+}
+
+static bool
+CheckLegacyNoOption(const char *Var, const char *Arg)
+{
+ if( strcasecmp( Var, "NoDNS" ) == 0 ) {
+ Conf_DNS = !Check_ArgIsTrue( Arg );
+ return true;
+ }
+ if (strcasecmp(Var, "NoIdent") == 0) {
+ Conf_Ident = !Check_ArgIsTrue(Arg);
+ return true;
+ }
+ if(strcasecmp(Var, "NoPAM") == 0) {
+ Conf_PAM = !Check_ArgIsTrue(Arg);
+ return true;
+ }
+ if(strcasecmp(Var, "NoZeroConf") == 0) {
+ Conf_ZeroConf = !Check_ArgIsTrue(Arg);
+ return true;
+ }
+ return false;
+}
+const char *
+NoNo(const char *str)
+{
+ assert(strncasecmp("no", str, 2) == 0 && str[2]);
+ return str + 2;
+}
+static const char *
+InvertArg(const char *arg)
+{
+ return yesno_to_str(!Check_ArgIsTrue(arg));
+}
static void
Handle_GLOBAL( int Line, char *Var, char *Arg )
Conf_PredefChannelsOnly = Check_ArgIsTrue( Arg );
return;
}
- if( strcasecmp( Var, "NoDNS" ) == 0 ) {
- /* don't do reverse dns lookups when clients connect? */
- Conf_NoDNS = Check_ArgIsTrue( Arg );
+
+ if (CheckLegacyNoOption(Var, Arg)) {
+ Config_Error(LOG_WARNING, "%s, line %d: \"No\"-Prefix has been removed, use "
+ "\"%s = %s\" instead",
+ NGIRCd_ConfFile, Line, NoNo(Var), InvertArg(Arg));
+ if (strcasecmp(Var, "NoIdent") == 0)
+ WarnIdent(Line);
return;
}
- if (strcasecmp(Var, "NoIdent") == 0) {
- /* don't do IDENT lookups when clients connect? */
- Conf_NoIdent = Check_ArgIsTrue(Arg);
-#ifndef IDENTAUTH
- if (!Conf_NoIdent) {
- /* user has enabled ident lookups explicitly, but ... */
- Config_Error(LOG_WARNING,
- "%s: line %d: NoIdent=False, but ngircd was built without IDENT support",
- NGIRCd_ConfFile, Line);
- }
-#endif
+ if( strcasecmp( Var, "DNS" ) == 0 ) {
+ /* do reverse dns lookups when clients connect? */
+ Conf_DNS = Check_ArgIsTrue( Arg );
return;
}
- if(strcasecmp(Var, "NoPAM") == 0) {
- /* don't use PAM library to authenticate users */
- Conf_NoPAM = Check_ArgIsTrue(Arg);
+ if (strcasecmp(Var, "Ident") == 0) {
+ /* do IDENT lookups when clients connect? */
+ Conf_Ident = Check_ArgIsTrue(Arg);
+ WarnIdent(Line);
return;
}
- if(strcasecmp(Var, "NoZeroConf") == 0) {
- /* don't register services using ZeroConf */
- Conf_NoZeroConf = Check_ArgIsTrue(Arg);
+ if(strcasecmp(Var, "PAM") == 0) {
+ /* use PAM library to authenticate users */
+ Conf_PAM = Check_ArgIsTrue(Arg);
+ return;
+ }
+ if(strcasecmp(Var, "ZeroConf") == 0) {
+ /* register services using ZeroConf */
+ Conf_ZeroConf = Check_ArgIsTrue(Arg);
return;
}
#ifdef WANT_IPV6
blob - 47a499ae8ac44758e6de6d50512e50cc9ab84e7e
blob + 3cddbb4be32642d9389ee46833fe271033b114ae
--- src/ngircd/conf.h
+++ src/ngircd/conf.h
/* Are remote IRC operators allowed to manage this server? */
GLOBAL bool Conf_AllowRemoteOper;
-/* Disable all DNS functions? */
-GLOBAL bool Conf_NoDNS;
+/* Enable all DNS functions? */
+GLOBAL bool Conf_DNS;
-/* Disable IDENT lookups, even when compiled with support for it */
-GLOBAL bool Conf_NoIdent;
+/* Enable IDENT lookups, even when compiled with support for it */
+GLOBAL bool Conf_Ident;
-/* Disable all usage of PAM, even when compiled with support for it */
-GLOBAL bool Conf_NoPAM;
+/* Enable all usage of PAM, even when compiled with support for it */
+GLOBAL bool Conf_PAM;
-/* Disable service registration using "ZeroConf" */
-GLOBAL bool Conf_NoZeroConf;
+/* Enable service registration using "ZeroConf" */
+GLOBAL bool Conf_ZeroConf;
/*
* try to connect to remote systems using the ipv6 protocol,
blob - 51ab8fd3eb968326e0f54ebe4063d2d50d65e509
blob + 6a1c056e21cf715128c2871f590af76cfdb01fce
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
identsock = new_sock;
#ifdef IDENTAUTH
- if (Conf_NoIdent)
+ if (!Conf_Ident)
identsock = -1;
#endif
- if (!Conf_NoDNS)
+ if (Conf_DNS)
Resolve_Addr(&My_Connections[new_sock].proc_stat, &new_addr,
identsock, cb_Read_Resolver_Result);
blob - 03fea99ad4e8f79ceb3a426d073f75444817933e
blob + 381dd201b675c9a8ca6985380c23b90361c64b33
--- src/ngircd/irc-login.c
+++ src/ngircd/irc-login.c
assert(Client != NULL);
conn = Client_Conn(Client);
- if (Conf_NoPAM) {
+ if (!Conf_PAM) {
/* Don't do any PAM authentication at all, instead emulate
* the beahiour of the daemon compiled without PAM support:
* because there can't be any "server password", all
blob - c0c22eb784c7e982f3ade749133e96da4d786dd7
blob + 056cb1e5caf9e3e454b3d89ecd002e97a6529e72
--- src/ngircd/rendezvous.c
+++ src/ngircd/rendezvous.c
{
int i;
- if (Conf_NoZeroConf)
+ if (!Conf_ZeroConf)
return true;
/* Search free port structure */