summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-08 17:22:29 +0000
committerRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-08 17:22:29 +0000
commit6130eecca20443011310ea5b7bdda072dd2c1265 (patch)
tree29714c929ea425c2c35fc8e7ef396cb742d338f9
parent1072827648ad8809d32f23f5835698ba36690305 (diff)
Merge commit 'cbx/anopeng-config' into anopeng
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1598 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--data/example_new.conf90
-rw-r--r--src/config.c92
-rw-r--r--src/protocol/Makefile2
-rw-r--r--src/protocol/unreal32.c10
4 files changed, 128 insertions, 66 deletions
diff --git a/data/example_new.conf b/data/example_new.conf
index 636b2a3c8..1d1abdd55 100644
--- a/data/example_new.conf
+++ b/data/example_new.conf
@@ -117,6 +117,54 @@ uplink
* Refer to your IRCd documentation for more information on link blocks.
*/
password = "mypassword"
+
+ /*
+ * What Server ID to use for this connection?
+ * Note: This should *ONLY* be used for TS6/P10 IRCds.
+ */
+ #id = "64"
+}
+
+/*
+ * [REQUIRED] Server Information
+ *
+ * This section contains information about the Services server.
+ */
+serverinfo {
+ /*
+ * The hostname that Services will be seen as, it must have no conflicts with any
+ * other server names on the rest of your IRC network. Note that it does not have
+ * to be an existing hostname, just one that isn't on your network already. This
+ * can be overridden with the -name command-line option when starting Services.
+ */
+ name = "services.localhost.net"
+
+ /*
+ * The text which should appear as the server's information in /whois and similar
+ * queries. This can be overridden by the -desc command-line option when starting
+ * Services.
+ */
+ description = "Services for IRC Networks"
+
+ /*
+ * These identify the ident@hostname which will be used by the Serivces pesudoclients.
+ * They can be overridden by the -user and -host command-line options when starting
+ * Services.
+ */
+ ident = "services"
+ hostname = "localhost.net"
+
+ /*
+ * The filename containing the Services process ID. The path is relative to the
+ * services executable. If not given, defaults to "services.pid".
+ */
+ pid = "services.pid"
+
+ /*
+ * The filename containing the Message of the Day. The path is relative to the
+ * services executable. If not given, defaults to "services.motd".
+ */
+ motd = "services.motd"
}
/*
@@ -152,6 +200,12 @@ nickserv
#prenickdatabase = "prenick.db"
/*
+ * The core modules to load for NickServ. This is a space separated list that corresponds
+ * to the base names of the modules for NickServ. This directive is optional, but highly recommended.
+ */
+ modules = "ns_help ns_register ns_group ns_identify ns_access ns_set ns_saset ns_drop ns_recover ns_release ns_sendpass ns_ghost ns_alist ns_info ns_list ns_logout ns_status ns_update ns_getpass ns_getemail ns_forbid ns_suspend"
+
+ /*
* Force users to give an e-mail address when they register a nick. This directive
* is recommended to be enabled, and required if the e-mail registration option is
* enabled.
@@ -339,6 +393,12 @@ chanserv
database = "chan.db"
/*
+ * The core modules to load for ChanServ. This is a space separated list that corresponds
+ * to the base names of the modules for ChanServ. This directive is optional, but highly recommended.
+ */
+ modules = "cs_help cs_register cs_identify cs_set cs_xop cs_access cs_akick cs_drop cs_sendpass cs_ban cs_clear cs_modes cs_getkey cs_invite cs_kick cs_list cs_logout cs_topic cs_info cs_getpass cs_forbid cs_suspend cs_status"
+
+ /*
* The default options for newly registered channels. Note that changing these options
* will have no effect on channels which are already registered. The list must be separated
* by spaces.
@@ -454,6 +514,12 @@ memoserv
description = "Memo Service"
/*
+ * The core modules to load for MemoServ. This is a space separated list that corresponds
+ * to the base names of the modules for MemoServ. This directive is optional, but highly recommended.
+ */
+ modules = "ms_send ms_cancel ms_list ms_read ms_del ms_set ms_info ms_rsend ms_check ms_staff ms_sendall ms_help"
+
+ /*
* The maximum number of memos a user is allowed to keep by default. Normal users may set the
* limit anywhere between 0 and this value. Services Admins can change it to any value or
* disable it. This directive is optional, but recommended. If not set, the limit is disabled
@@ -515,6 +581,12 @@ botserv
database = "bot.db"
/*
+ * The core modules to load for BotServ. This is a space separated list that corresponds
+ * to the base names of the modules for BotServ. This directive is optional, but highly recommended.
+ */
+ modules = "bs_help bs_botlist bs_assign bs_set bs_kick bs_badwords bs_act bs_info bs_say bs_unassign bs_bot bs_fantasy bs_fantasy_kick bs_fantasy_kickban bs_fantasy_owner bs_fantasy_seen bs_fantasy_unban"
+
+ /*
* The default bot options for newly registered channel. Note that changing these options
* will have no effect on channels which are already registered. The list must be separated
* by spaces.
@@ -608,6 +680,12 @@ hostserv
database = "hosts.db"
/*
+ * The core modules to load for HostServ. This is a space separated list that corresponds
+ * to the base names of the modules for HostServ. This directive is optional, but highly recommended.
+ */
+ modules = "hs_help hs_on hs_off hs_group hs_list hs_set hs_setall hs_del hs_delall"
+
+ /*
* Specifies the nicks of NON-OPERS allowed to set or remove vHosts using HostServ. Can be re-loaded
* with /msg operserv reload. You can specify more than one nick by separating each one by a space.
*
@@ -635,6 +713,12 @@ helpserv
* name) of the client.
*/
description = "Help Service"
+
+ /*
+ * The core modules to load for HelpServ. This is a space separated list that corresponds
+ * to the base names of the modules for HelpServ. This directive is optional, but highly recommended.
+ */
+ modules = "he_help"
}
/*
@@ -693,6 +777,12 @@ operserv
#autokilldatabase = "akill.db"
/*
+ * The core modules to load for OperServ. This is a space separated list that corresponds
+ * to the base names of the modules for OperServ. This directive is optional, but highly recommended.
+ */
+ modules = "os_help os_global os_stats os_oper os_admin os_staff os_mode os_kick os_clearmodes os_akill os_sgline os_sqline os_szline os_chanlist os_userlist os_logonnews os_randomnews os_opernews os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modlist os_modinfo"
+
+ /*
* Specifies the Services "super-users". The super-users, or "roots" as in Unix terminology, are
* the only uses who can add or delete Services Admins.
*
diff --git a/src/config.c b/src/config.c
index 759cc29ac..6c51fd343 100644
--- a/src/config.c
+++ b/src/config.c
@@ -46,7 +46,6 @@ char *ServerName;
char *ServerDesc;
char *ServiceUser;
char *ServiceHost;
-static char *temp_userhost;
char *HelpChannel;
char *LogChannel;
@@ -239,31 +238,31 @@ char **ModulesDelayedAutoload;
/**
* Core Module Stuff
**/
-char *HostCoreModules;
+static char *HostCoreModules;
char **HostServCoreModules;
int HostServCoreNumber;
-char *MemoCoreModules;
+static char *MemoCoreModules;
char **MemoServCoreModules;
int MemoServCoreNumber;
-char *HelpCoreModules;
+static char *HelpCoreModules;
char **HelpServCoreModules;
int HelpServCoreNumber;
-char *BotCoreModules;
+static char *BotCoreModules;
char **BotServCoreModules;
int BotServCoreNumber;
-char *OperCoreModules;
+static char *OperCoreModules;
char **OperServCoreModules;
int OperServCoreNumber;
-char *NickCoreModules;
+static char *NickCoreModules;
char **NickServCoreModules;
int NickServCoreNumber;
-char *ChanCoreModules;
+static char *ChanCoreModules;
char **ChanServCoreModules;
int ChanServCoreNumber;
@@ -433,14 +432,16 @@ bool ValidateNotZero(ServerConfig *, const char *tag, const char *value, ValueIt
bool ValidateEmailReg(ServerConfig *, const char *tag, const char *value, ValueItem &data)
{
- if (static_cast<std::string>(value) == "prenickdatabase") {
- if (!*data.GetString()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> cannot be empty when e-mail registrations are enabled!");
- }
- else if (static_cast<std::string>(value) == "preregexpire") {
- if (!data.GetInteger()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> must be non-zero when e-mail registration are enabled!");
- }
- else {
- if (!data.GetBool()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> must be set to yes when e-mail registrations are enabled!");
+ if (NSEmailReg) {
+ if (static_cast<std::string>(value) == "prenickdatabase") {
+ if (!*data.GetString()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> cannot be empty when e-mail registrations are enabled!");
+ }
+ else if (static_cast<std::string>(value) == "preregexpire") {
+ if (!data.GetInteger()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> must be non-zero when e-mail registration are enabled!");
+ }
+ else {
+ if (!data.GetBool()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> must be set to yes when e-mail registrations are enabled!");
+ }
}
return true;
}
@@ -545,7 +546,7 @@ int ServerConfig::Read(bool bail)
{
errstr.clear();
// These tags MUST occur and must ONLY occur once in the config file
- static const char *Once[] = {"nickserv", "chanserv", "memoserv", "helpserv", "operserv", NULL};
+ static const char *Once[] = {"serverinfo", "nickserv", "chanserv", "memoserv", "helpserv", "operserv", NULL};
// These tags can occur ONCE or not at all
InitialConfig Values[] = {
/* The following comments are from CyberBotX to w00t as examples to use:
@@ -601,14 +602,21 @@ int ServerConfig::Read(bool bail)
{"uplink", "host", "", new ValueContainerChar(&RemoteServer), DT_HOSTNAME | DT_NORELOAD, ValidateNotEmpty},
{"uplink", "port", "0", new ValueContainerInt(&RemotePort), DT_INTEGER | DT_NORELOAD, ValidatePort},
{"uplink", "password", "", new ValueContainerChar(&RemotePassword), DT_NOSPACES | DT_NORELOAD, ValidateNotEmpty},
- {"uplink", "id", "", new ValueContainerChar(&Numeric), DT_NOSPACES | DT_NORELOAD, ValidateNotEmpty},
+ {"uplink", "id", "", new ValueContainerChar(&Numeric), DT_NOSPACES | DT_NORELOAD, NoValidation},
+ {"serverinfo", "name", "", new ValueContainerChar(&ServerName), DT_HOSTNAME | DT_NORELOAD, ValidateNotEmpty},
+ {"serverinfo", "description", "", new ValueContainerChar(&ServerDesc), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"serverinfo", "ident", "", new ValueContainerChar(&ServiceUser), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"serverinfo", "hostname", "", new ValueContainerChar(&ServiceHost), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"serverinfo", "pid", "services.pid", new ValueContainerChar(&PIDFilename), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"serverinfo", "motd", "services.motd", new ValueContainerChar(&MOTDFilename), DT_CHARPTR, ValidateNotEmpty},
{"nickserv", "nick", "NickServ", new ValueContainerChar(&s_NickServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"nickserv", "description", "Nickname Registration Service", new ValueContainerChar(&desc_NickServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"nickserv", "database", "nick.db", new ValueContainerChar(&NickDBName), DT_CHARPTR, ValidateNotEmpty},
{"nickserv", "emailregistration", "no", new ValueContainerBool(&NSEmailReg), DT_BOOLEAN, NoValidation},
{"nickserv", "prenickdatabase", "", new ValueContainerChar(&PreNickDBName), DT_CHARPTR, ValidateEmailReg},
+ {"nickserv", "modules", "", new ValueContainerChar(&NickCoreModules), DT_CHARPTR, NoValidation},
{"nickserv", "forceemail", "no", new ValueContainerBool(&NSForceEmail), DT_BOOLEAN, ValidateEmailReg},
- {"nickserv", "defaults", "secure memosignon memoreceive", new ValueContainerString(&NSDefaults), DT_BOOLEAN, NoValidation},
+ {"nickserv", "defaults", "secure memosignon memoreceive", new ValueContainerString(&NSDefaults), DT_STRING, NoValidation},
{"nickserv", "defaultlanguage", "0", new ValueContainerInt(&NSDefLanguage), DT_INTEGER, ValidateLanguage},
{"nickserv", "regdelay", "0", new ValueContainerTime(&NSRegDelay), DT_TIME, NoValidation},
{"nickserv", "resenddelay", "0", new ValueContainerTime(&NSResendDelay), DT_TIME, NoValidation},
@@ -632,7 +640,8 @@ int ServerConfig::Read(bool bail)
{"chanserv", "nick", "ChanServ", new ValueContainerChar(&s_ChanServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"chanserv", "description", "Channel Registration Service", new ValueContainerChar(&desc_ChanServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"chanserv", "database", "chan.db", new ValueContainerChar(&ChanDBName), DT_CHARPTR, ValidateNotEmpty},
- {"chanserv", "defaults", "keetopic secure securefounder signkick", new ValueContainerString(&CSDefaults), DT_BOOLEAN, NoValidation},
+ {"chanserv", "modules", "", new ValueContainerChar(&ChanCoreModules), DT_CHARPTR, NoValidation},
+ {"chanserv", "defaults", "keetopic secure securefounder signkick", new ValueContainerString(&CSDefaults), DT_STRING, NoValidation},
{"chanserv", "maxregistered", "0", new ValueContainerInt(&CSMaxReg), DT_INTEGER, NoValidation},
{"chanserv", "expire", "14d", new ValueContainerTime(&CSExpire), DT_TIME, NoValidation},
{"chanserv", "defbantype", "2", new ValueContainerInt(&CSDefBantype), DT_INTEGER, ValidateBantype},
@@ -646,6 +655,7 @@ int ServerConfig::Read(bool bail)
{"chanserv", "opersonly", "no", new ValueContainerBool(&CSOpersOnly), DT_BOOLEAN, NoValidation},
{"memoserv", "nick", "MemoServ", new ValueContainerChar(&s_MemoServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"memoserv", "description", "Memo Service", new ValueContainerChar(&desc_MemoServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"memoserv", "modules", "", new ValueContainerChar(&MemoCoreModules), DT_CHARPTR, NoValidation},
{"memoserv", "maxmemos", "0", new ValueContainerInt(&MSMaxMemos), DT_INTEGER, NoValidation},
{"memoserv", "senddelay", "0", new ValueContainerTime(&MSSendDelay), DT_TIME, NoValidation},
{"memoserv", "notifyall", "no", new ValueContainerBool(&MSNotifyAll), DT_BOOLEAN, NoValidation},
@@ -653,6 +663,7 @@ int ServerConfig::Read(bool bail)
{"botserv", "nick", "", new ValueContainerChar(&s_BotServ), DT_CHARPTR | DT_NORELOAD, NoValidation},
{"botserv", "description", "Bot Service", new ValueContainerChar(&desc_BotServ), DT_CHARPTR | DT_NORELOAD, ValidateBotServ},
{"botserv", "database", "bot.db", new ValueContainerChar(&BotDBName), DT_CHARPTR, ValidateBotServ},
+ {"botserv", "modules", "", new ValueContainerChar(&BotCoreModules), DT_CHARPTR, NoValidation},
{"botserv", "defaults", "", new ValueContainerString(&BSDefaults), DT_STRING, NoValidation},
{"botserv", "minusers", "0", new ValueContainerInt(&BSMinUsers), DT_INTEGER, ValidateBotServ},
{"botserv", "badwordsmax", "0", new ValueContainerInt(&BSBadWordsMax), DT_INTEGER, ValidateBotServ},
@@ -660,13 +671,15 @@ int ServerConfig::Read(bool bail)
{"botserv", "smartjoin", "no", new ValueContainerBool(&BSSmartJoin), DT_BOOLEAN, NoValidation},
{"botserv", "gentlebadwordreason", "no", new ValueContainerBool(&BSGentleBWReason), DT_BOOLEAN, NoValidation},
{"botserv", "casesensitive", "no", new ValueContainerBool(&BSCaseSensitive), DT_BOOLEAN, NoValidation},
- {"botserv", "fantasycharacter", "!", new ValueContainerChar(&BSFantasyCharacter), DT_BOOLEAN, NoValidation},
+ {"botserv", "fantasycharacter", "!", new ValueContainerChar(&BSFantasyCharacter), DT_CHARPTR, NoValidation},
{"hostserv", "nick", "", new ValueContainerChar(&s_HostServ), DT_CHARPTR | DT_NORELOAD, NoValidation},
{"hostserv", "description", "vHost Service", new ValueContainerChar(&desc_HostServ), DT_CHARPTR | DT_NORELOAD, ValidateHostServ},
{"hostserv", "database", "hosts.db", new ValueContainerChar(&HostDBName), DT_CHARPTR, ValidateHostServ},
+ {"hostserv", "modules", "", new ValueContainerChar(&HostCoreModules), DT_CHARPTR, NoValidation},
{"hostserv", "hostsetters", "", new ValueContainerChar(&HostSetter), DT_CHARPTR, NoValidation},
{"helpserv", "nick", "HelpServ", new ValueContainerChar(&s_HelpServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"helpserv", "description", "Help Service", new ValueContainerChar(&desc_HelpServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"helpserv", "modules", "", new ValueContainerChar(&HelpCoreModules), DT_CHARPTR, NoValidation},
{"operserv", "nick", "OperServ", new ValueContainerChar(&s_OperServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"operserv", "description", "Operator Service", new ValueContainerChar(&desc_OperServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"operserv", "globalnick", "Global", new ValueContainerChar(&s_GlobalNoticer), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
@@ -675,6 +688,7 @@ int ServerConfig::Read(bool bail)
{"operserv", "newsdatabase", "news.db", new ValueContainerChar(&NewsDBName), DT_CHARPTR, ValidateNotEmpty},
{"operserv", "exceptiondatabase", "exception.db", new ValueContainerChar(&ExceptionDBName), DT_CHARPTR, ValidateNotEmpty},
{"operserv", "autokilldatabase", "akill.db", new ValueContainerChar(&AutokillDBName), DT_CHARPTR, ValidateNotEmpty},
+ {"operserv", "modules", "", new ValueContainerChar(&OperCoreModules), DT_CHARPTR, NoValidation},
{"operserv", "servicesroot", "", new ValueContainerChar(&ServicesRoot), DT_CHARPTR, ValidateNotEmpty},
{"operserv", "superadmin", "no", new ValueContainerBool(&SuperAdmin), DT_BOOLEAN, NoValidation},
{"operserv", "logmaxusers", "no", new ValueContainerBool(&LogMaxUsers), DT_BOOLEAN, NoValidation},
@@ -801,7 +815,7 @@ int ServerConfig::Read(bool bail)
break;
case DT_BOOLEAN: {
bool val = vi.GetBool();
- ValueContainerBool *vcb = (ValueContainerBool *)Values[Index].val;
+ ValueContainerBool *vcb = dynamic_cast<ValueContainerBool *>(Values[Index].val);
vcb->Set(&val, sizeof(bool));
}
break;
@@ -1287,17 +1301,13 @@ bool ValueItem::GetBool()
Directive directives[] = {
{"BadPassLimit", {{PARAM_POSINT, PARAM_RELOAD, &BadPassLimit}}},
{"BadPassTimeout", {{PARAM_TIME, PARAM_RELOAD, &BadPassTimeout}}},
- {"BotCoreModules", {{PARAM_STRING, PARAM_RELOAD, &BotCoreModules}}},
- {"ChanCoreModules", {{PARAM_STRING, PARAM_RELOAD, &ChanCoreModules}}},
{"DontQuoteAddresses",
{{PARAM_SET, PARAM_RELOAD, &DontQuoteAddresses}}},
{"DumpCore", {{PARAM_SET, 0, &DumpCore}}},
{"EncModule", {{PARAM_STRING, 0, &EncModule}}},
{"ExpireTimeout", {{PARAM_TIME, PARAM_RELOAD, &ExpireTimeout}}},
{"ForceForbidReason", {{PARAM_SET, PARAM_RELOAD, &ForceForbidReason}}},
- {"HelpCoreModules", {{PARAM_STRING, PARAM_RELOAD, &HelpCoreModules}}},
{"HelpChannel", {{PARAM_STRING, PARAM_RELOAD, &HelpChannel}}},
- {"HostCoreModules", {{PARAM_STRING, PARAM_RELOAD, &HostCoreModules}}},
{"LogChannel", {{PARAM_STRING, PARAM_RELOAD, &LogChannel}}},
{"LogBot", {{PARAM_SET, PARAM_RELOAD, &LogBot}}},
{"KeepBackups", {{PARAM_INT, PARAM_RELOAD, &KeepBackups}}},
@@ -1306,7 +1316,6 @@ Directive directives[] = {
{PARAM_PORT, PARAM_OPTIONAL, &LocalPort}}},
{"LogUsers", {{PARAM_SET, PARAM_RELOAD, &LogUsers}}},
{"MailDelay", {{PARAM_TIME, PARAM_RELOAD, &MailDelay}}},
- {"MemoCoreModules", {{PARAM_STRING, PARAM_RELOAD, &MemoCoreModules}}},
{"MysqlHost", {{PARAM_STRING, PARAM_RELOAD, &MysqlHost}}},
{"MysqlUser", {{PARAM_STRING, PARAM_RELOAD, &MysqlUser}}},
{"MysqlPass", {{PARAM_STRING, PARAM_RELOAD, &MysqlPass}}},
@@ -1319,15 +1328,11 @@ Directive directives[] = {
{"ModuleAutoload", {{PARAM_STRING, PARAM_RELOAD, &Modules}}},
{"ModuleDelayedAutoload",
{{PARAM_STRING, PARAM_RELOAD, &ModulesDelayed}}},
- {"MOTDFile", {{PARAM_STRING, PARAM_RELOAD, &MOTDFilename}}},
{"NetworkName", {{PARAM_STRING, PARAM_RELOAD, &NetworkName}}},
{"NewsCount", {{PARAM_POSINT, PARAM_RELOAD, &NewsCount}}},
{"NickLen", {{PARAM_POSINT, 0, &NickLen}}},
- {"NickCoreModules", {{PARAM_STRING, PARAM_RELOAD, &NickCoreModules}}},
{"NickRegDelay", {{PARAM_POSINT, PARAM_RELOAD, &NickRegDelay}}},
{"NoBackupOkay", {{PARAM_SET, PARAM_RELOAD, &NoBackupOkay}}},
- {"OperCoreModules", {{PARAM_STRING, PARAM_RELOAD, &OperCoreModules}}},
- {"PIDFile", {{PARAM_STRING, 0, &PIDFilename}}},
{"ReadTimeout", {{PARAM_TIME, PARAM_RELOAD, &ReadTimeout}}},
{"RemoteServer2", {{PARAM_STRING, 0, &RemoteServer2},
{PARAM_PORT, 0, &RemotePort2},
@@ -1339,9 +1344,6 @@ Directive directives[] = {
{"RestrictOperNicks", {{PARAM_SET, PARAM_RELOAD, &RestrictOperNicks}}},
{"SendMailPath", {{PARAM_STRING, PARAM_RELOAD, &SendMailPath}}},
{"SendFrom", {{PARAM_STRING, PARAM_RELOAD, &SendFrom}}},
- {"ServerDesc", {{PARAM_STRING, 0, &ServerDesc}}},
- {"ServerName", {{PARAM_STRING, 0, &ServerName}}},
- {"ServiceUser", {{PARAM_STRING, 0, &temp_userhost}}},
{"HideStatsO", {{PARAM_SET, PARAM_RELOAD, &HideStatsO}}},
{"GlobalOnCycle", {{PARAM_SET, PARAM_RELOAD, &GlobalOnCycle}}},
{"AnonymousGlobal", {{PARAM_SET, PARAM_RELOAD, &AnonymousGlobal}}},
@@ -1653,9 +1655,6 @@ int read_config(int reload)
fclose(config);
if (!reload) {
- CHECK(ServerName);
- CHECK(ServerDesc);
-
if (RemoteServer3)
CHECK(RemoteServer2);
@@ -1685,32 +1684,13 @@ int read_config(int reload)
CHECK(EncModule);
CHECK(NetworkName);
- if (!reload) {
- CHEK2(temp_userhost, ServiceUser);
- CHEK2(PIDFilename, PIDFile);
- }
- CHEK2(MOTDFilename, MOTDFile);
CHECK(UpdateTimeout);
CHECK(ExpireTimeout);
CHECK(ReadTimeout);
CHECK(WarningTimeout);
CHECK(TimeoutCheck);
- if (!reload) {
-
- if (temp_userhost) {
- if (!(s = strchr(temp_userhost, '@'))) {
- error(0, "Missing `@' for ServiceUser");
- } else {
- *s++ = 0;
- ServiceUser = temp_userhost;
- ServiceHost = s;
- }
- }
-
- }
-
if (temp_nsuserhost) {
if (!(s = strchr(temp_nsuserhost, '@'))) {
NSEnforcerUser = temp_nsuserhost;
diff --git a/src/protocol/Makefile b/src/protocol/Makefile
index 0d5f3a15b..d49a69be5 100644
--- a/src/protocol/Makefile
+++ b/src/protocol/Makefile
@@ -8,7 +8,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'PROFILE=${PROFILE}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
OBJECTS= $(SRCS:.c=.o)
-OBJECTS= $(SRCS:.cpp=.o)
+OBJECTS+= $(SRCS:.cpp=.o)
SO_FILES=$(OBJECTS:.o=.s)
CDEFS= -rdynamic -Wall
diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c
index c3f0c9dfd..9b18dc01f 100644
--- a/src/protocol/unreal32.c
+++ b/src/protocol/unreal32.c
@@ -86,15 +86,7 @@
IRCDVar myIrcd[] = {
{"UnrealIRCd 3.2.x", /* ircd name */
- "+oS", /* nickserv mode */
- "+oS", /* chanserv mode */
- "+oS", /* memoserv mode */
- "+oS", /* hostserv mode */
- "+ioS", /* operserv mode */
- "+oS", /* botserv mode */
- "+oS", /* helpserv mode */
- "+ioS", /* Global mode */
- "+qS", /* Used by BotServ Bots */
+ "+Soi", /* Modes used by pseudoclients */
5, /* Chan Max Symbols */
"-cilmnpstuzACGHKMNOQRSTV", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */