/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2019 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
? (const char*) array_start(&Conf_Motd) : "");
}
printf(" Network = %s\n", Conf_Network);
- if (!Conf_PAM)
+ if (!Conf_PAM)
printf(" Password = %s\n", Conf_ServerPwd);
printf(" PidFile = %s\n", Conf_PidFile);
printf(" Ports = ");
printf(" MaxConnectionsIP = %d\n", Conf_MaxConnectionsIP);
printf(" MaxJoins = %d\n", Conf_MaxJoins > 0 ? Conf_MaxJoins : -1);
printf(" MaxNickLength = %u\n", Conf_MaxNickLength - 1);
+ printf(" MaxPenaltyTime = %ld\n", Conf_MaxPenaltyTime);
printf(" MaxListSize = %d\n", Conf_MaxListSize);
printf(" PingTimeout = %d\n", Conf_PingTimeout);
printf(" PongTimeout = %d\n", Conf_PongTimeout);
#ifdef PAM
printf(" PAM = %s\n", yesno_to_str(Conf_PAM));
printf(" PAMIsOptional = %s\n", yesno_to_str(Conf_PAMIsOptional));
+ printf(" PAMServiceName = %s\n", Conf_PAMServiceName);
#endif
#ifndef STRICT_RFC
printf(" RequireAuthPing = %s\n", yesno_to_str(Conf_AuthPing));
/**
* Check if the given nickname is blocked for "normal client" use.
*
- * @param ConfServer The server index or NONE to check all configured servers.
* @param Nick The nickname to check.
* @returns true if the given nickname belongs to an "IRC service".
*/
Conf_MaxConnectionsIP = 5;
Conf_MaxJoins = 10;
Conf_MaxNickLength = CLIENT_NICK_LEN_DEFAULT;
+ Conf_MaxPenaltyTime = -1;
Conf_MaxListSize = 100;
Conf_PingTimeout = 120;
Conf_PongTimeout = 20;
Conf_PAM = false;
#endif
Conf_PAMIsOptional = false;
+ strcpy(Conf_PAMServiceName, "ngircd");
Conf_ScrubCTCP = false;
#ifdef SYSLOG
#ifdef LOG_LOCAL5
*
* This function is used to read the MOTD and help text file, for example.
*
- * @param filename Name of the file to read.
+ * @param Filename Name of the file to read.
* @return true, when the file has been read in.
*/
static bool
* Please note that this function uses exit(1) on fatal errors and therefore
* can result in ngIRCd terminating!
*
- * @param ngircd_starting Flag indicating if ngIRCd is starting or not.
- * @returns true when the configuration file has been read
- * successfully; false otherwise.
+ * @param IsStarting Flag indicating if ngIRCd is starting or not.
+ * @returns true when the configuration file has been read
+ * successfully; false otherwise.
*/
static bool
Read_Config(bool TestOnly, bool IsStarting)
FILE *fd;
DIR *dh;
+ Log(LOG_INFO, "Using configuration file \"%s\" ...", NGIRCd_ConfFile);
+
/* Open configuration file */
fd = fopen( NGIRCd_ConfFile, "r" );
if( ! fd ) {
Config_Error_NaN(File, Line, Var);
return;
}
+ if (strcasecmp(Var, "MaxPenaltyTime") == 0) {
+ Conf_MaxPenaltyTime = atol(Arg);
+ if (Conf_MaxPenaltyTime < -1)
+ Conf_MaxPenaltyTime = -1; /* "unlimited" */
+ return;
+ }
if (strcasecmp(Var, "PingTimeout") == 0) {
Conf_PingTimeout = atoi(Arg);
if (Conf_PingTimeout < 5) {
Conf_PAMIsOptional = Check_ArgIsTrue(Arg);
return;
}
+ if (strcasecmp(Var, "PAMServiceName") == 0) {
+ len = strlcpy(Conf_PAMServiceName, Arg, sizeof(Conf_PAMServiceName));
+ if (len >= sizeof(Conf_PAMServiceName))
+ Config_Error_TooLong(File, Line, Var);
+ return;
+ }
if (strcasecmp(Var, "PredefChannelsOnly") == 0) {
/*
* TODO: This section and support for "PredefChannelsOnly"
"This server uses PAM, \"Password\" in [Global] section will be ignored!");
#endif
+ if (Conf_MaxPenaltyTime != -1)
+ Config_Error(LOG_WARNING,
+ "Maximum penalty increase ('MaxPenaltyTime') is set to %ld, this is not recommended!",
+ Conf_MaxPenaltyTime);
+
#ifdef DEBUG
servers = servers_once = 0;
for (i = 0; i < MAX_SERVERS; i++) {