diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/protocol/inspircd11.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c index 21ac9dbe7..8f42c46fc 100644 --- a/src/protocol/inspircd11.c +++ b/src/protocol/inspircd11.c @@ -382,6 +382,7 @@ CUMode myCumodes[128] = { int has_servicesmod = 0; int has_globopsmod = 0; +int has_svsholdmod = 0; void inspircd_set_umode(User * user, int ac, char **av) { @@ -1487,6 +1488,7 @@ int anope_event_capab(char *source, int ac, char **av) /* reset CAPAB */ has_servicesmod = 0; has_globopsmod = 0; + has_svsholdmod = 0; } else if (strcasecmp(av[0], "MODULES") == 0) { if (strstr(av[1], "m_globops.so")) { has_globopsmod = 1; @@ -1494,6 +1496,9 @@ int anope_event_capab(char *source, int ac, char **av) if (strstr(av[1], "m_services.so")) { has_servicesmod = 1; } + if (strstr(av[1], "m_svshold.so")) { + has_svsholdmod = 1; + } } else if (strcasecmp(av[0], "END") == 0) { if (has_globopsmod == 0) { send_cmd(NULL, @@ -1533,13 +1538,18 @@ int anope_event_capab(char *source, int ac, char **av) /* SVSHOLD - set */ void inspircd_cmd_svshold(char *nick) { - /* Not supported by this IRCD */ + if (has_svsholdmod == 1) { + send_cmd(s_OperServ, "SVSHOLD %s %ds :%s", nick, NSReleaseTimeout, + "Being held for registered user"); + } } /* SVSHOLD - release */ void inspircd_cmd_release_svshold(char *nick) { - /* Not Supported by this IRCD */ + if (has_svsholdmod == 1) { + send_cmd(s_OperServ, "SVSHOLD %s", nick); + } } /* UNSGLINE */ @@ -1794,7 +1804,7 @@ int AnopeInit(int argc, char **argv) moduleAddAuthor("Anope"); moduleAddVersion - ("$Id: inspircd.c 1207 2006-12-10 12:27:56Z geniusdex $"); + ("$Id: inspircd11.c 2007-08-27 20:45 GMT -5 katsklaw $"); moduleSetType(PROTOCOL); pmodule_ircd_version("inspircdIRCd 1.1"); |