# "PONG" reply.
;RequireAuthPing = no
+ # Silently drop all incomming CTCP requests.
+ ;ScrubCTCP = no
+
+ # Syslog "facility" to which ngIRCd should send log messages.
+ # Possible values are system dependent, but most probably auth, daemon,
+ # user and local1 through local7 are possible values; see syslog(3).
+ # Default is "local5" for historical reasons, you probably want to
+ # change this to "daemon", for example.
+ ;SyslogFacility = local1
+
+ # Password required for using the WEBIRC command used by some
+ # Web-to-IRC gateways. If not set/empty, the WEBIRC command can't
+ # be used. (Default: not set)
+ ;WebircPassword = xyz
+
+;[SSL]
+ # SSL-related configuration options. Please note that this section
+ # is only available when ngIRCd is compiled with support for SSL!
+ # So don't forget to remove the ";" above if this is the case ...
+
# SSL Server Key Certificate
;SSLCertFile = :ETCDIR:/ssl/server-cert.pem
register this client only after receiving the corresponding "PONG" reply.
Default: no.
.TP
+ \fBScrubCTCP\fR (boolean)
+ If set to true, ngIRCd will silently drop all CTCP requests sent to it from
+ both clients and servers. It will also not forward CTCP requests to any
+ other servers. CTCP requests can be used to query user clients about which
+ software they are using and which versions said softare is. CTCP can also be
+ used to reveal clients IP numbers. ACTION CTCP requests are not blocked,
+ this means that /me commands will not be dropped, but please note that
+ blocking CTCP will disable file sharing between users!
+ Default: no.
+ .TP
+\fBSyslogFacility\fR (string)
+Syslog "facility" to which ngIRCd should send log messages. Possible
+values are system dependent, but most probably "auth", "daemon", "user"
+and "local1" through "local7" are possible values; see syslog(3).
+Default is "local5" for historical reasons, you probably want to
+change this to "daemon", for example.
+.TP
+\fBWebircPassword\fR (string)
+Password required for using the WEBIRC command used by some Web-to-IRC
+gateways. If not set or empty, the WEBIRC command can't be used.
+Default: not set.
+.SH [SSL]
+All SSL-related configuration variables are located in the
+.I [SSL]
+section. Please note that this whole section is only recognized by ngIRCd
+when it is compiled with support for SSL using OpenSSL or GnuTLS!
+.TP
\fBSSLCertFile\fR (string)
SSL Certificate file of the private server key.
.TP
#ifndef STRICT_RFC
printf(" RequireAuthPing = %s\n", yesno_to_str(Conf_AuthPing));
#endif
-#ifdef SSL_SUPPORT
- printf(" SSLCertFile = %s\n", Conf_SSLOptions.CertFile);
- printf(" SSLDHFile = %s\n", Conf_SSLOptions.DHFile);
- printf(" SSLKeyFile = %s\n", Conf_SSLOptions.KeyFile);
- if (array_bytes(&Conf_SSLOptions.KeyFilePassword))
- puts(" SSLKeyFilePassword = <secret>");
- else
- puts(" SSLKeyFilePassword = ");
- array_free_wipe(&Conf_SSLOptions.KeyFilePassword);
- printf(" SSLPorts = ");
- ports_puts(&Conf_SSLOptions.ListenPorts);
-#endif
+ printf(" ScrubCTCP = %s\n", yesno_to_str(Conf_ScrubCTCP));
#ifdef SYSLOG
printf(" SyslogFacility = %s\n",
ngt_SyslogFacilityName(Conf_SyslogFacility));
return;
}
#endif
+ if (strcasecmp(Var, "ScrubCTCP") == 0) {
+ Conf_ScrubCTCP = Check_ArgIsTrue(Arg);
+ return;
+ }
+#ifdef SYSLOG
+ if (strcasecmp(Var, "SyslogFacility") == 0) {
+ Conf_SyslogFacility = ngt_SyslogFacilityID(Arg,
+ Conf_SyslogFacility);
+ return;
+ }
+#endif
+ if (strcasecmp(Var, "WebircPassword") == 0) {
+ len = strlcpy(Conf_WebircPwd, Arg, sizeof(Conf_WebircPwd));
+ if (len >= sizeof(Conf_WebircPwd))
+ Config_Error_TooLong(Line, Var);
+ return;
+ }
+
+ Config_Error_Section(Line, Var, "Options");
+}
+
#ifdef SSL_SUPPORT
- if (strcasecmp(Var, "SSLCertFile") == 0) {
+
+/**
+ * Handle variable in [SSL] configuration section.
+ *
+ * @param Line Line numer in configuration file.
+ * @param Var Variable name.
+ * @param Arg Variable argument.
+ */
+static void
+Handle_SSL(int Line, char *Var, char *Arg)
+{
+ assert(Line > 0);
+ assert(Var != NULL);
+ assert(Arg != NULL);
+
+ if (strcasecmp(Var, "CertFile") == 0) {
assert(Conf_SSLOptions.CertFile == NULL);
Conf_SSLOptions.CertFile = strdup_warn(Arg);
return;