diff options
author | jantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-10-06 13:08:37 +0000 |
---|---|---|
committer | jantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-10-06 13:08:37 +0000 |
commit | 727bcf1fde40813f9bd148064ac377b972a6cdce (patch) | |
tree | 0341d4410a5740c0982441c0255d9f8e27f2be7b | |
parent | 699bee06c3a6e69e44f0e5b91d8e2054685c8213 (diff) |
Added option for delayed pseudo-client introduction. (Required for Insp 1.2)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2535 5417fbe8-f217-4b02-8779-1006273d7864
40 files changed, 182 insertions, 20 deletions
@@ -451,6 +451,10 @@ How To Add IRCd Support 89) CMode j: CMODE_ that defines throttle mode. Use 0 for no support. + 90) Delayed client introduction: Delay the introduction of services pseudo- + client till after we have received the uplinks + CAPAB. + So we've had this long list. Now there's a second struct to fill. This struct isn't as long as the previous one though, so we'll handle it quite quick compared to the previous one. diff --git a/include/extern.h b/include/extern.h index 8e6c61ed7..050228e6f 100644 --- a/include/extern.h +++ b/include/extern.h @@ -611,6 +611,7 @@ E void set_lastmask(User * u); E void introduce_user(const char *user); E int init_primary(int ac, char **av); E int init_secondary(int ac, char **av); +E void init_tertiary(); E int servernum; /**** ircd.c ****/ @@ -667,6 +668,7 @@ E void pmodule_cmd_chg_nick(void (*func) (char *oldnick, char *newnick)); E void pmodule_cmd_svsnick(void (*func) (char *source, char *guest, time_t when)); E void pmodule_cmd_vhost_on(void (*func) (char *nick, char *vIdent, char *vhost)); E void pmodule_cmd_connect(void (*func) (int servernum)); +E void pmodule_cmd_bob(void (*func) ()); E void pmodule_cmd_svshold(void (*func) (char *nick)); E void pmodule_cmd_release_svshold(void (*func) (char *nick)); E void pmodule_cmd_unsgline(void (*func) (char *mask)); @@ -1245,6 +1247,7 @@ E void anope_cmd_chgident(char *nick, char *vIdent); /* CHG E void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost); /* CHGHOST + CHGIDENT */ E void anope_cmd_vhost_off(User *u); E void anope_cmd_connect(int servernum); /* Connect */ +E void anope_cmd_bob(); E void anope_cmd_ea(); /* EA */ E void anope_cmd_global(char *source, const char *fmt, ...); /* GLOBOPS */ E void anope_cmd_invite(char *source, char *chan, char *nick); /* INVITE */ diff --git a/include/services.h b/include/services.h index 48e38d53c..81754e8be 100644 --- a/include/services.h +++ b/include/services.h @@ -363,10 +363,11 @@ struct ircdvars_ { char *nickchars; /* character set */ int sync; /* reports sync state */ int cidrchanbei; /* channel bans/excepts/invites support CIDR (syntax: +b *!*@192.168.0.0/15) - * 0 for no support, 1 for strict cidr support, anything else - * for ircd specific support (nefarious only cares about first /mask) */ - int jmode; /* +j join throttle */ - uint32 chan_jmode; /* Mode */ + * 0 for no support, 1 for strict cidr support, anything else + * for ircd specific support (nefarious only cares about first /mask) */ + int jmode; /* +j join throttle */ + uint32 chan_jmode; /* Mode */ + int delay_cl_intro; /*Delay client introduction till after receiving CAPAB. */ }; struct ircdcapab_ { @@ -1195,6 +1196,7 @@ typedef struct ircd_proto_ { void (*ircd_cmd_svsnick)(char *source, char *guest, time_t when); void (*ircd_cmd_vhost_on)(char *nick, char *vIdent, char *vhost); void (*ircd_cmd_connect)(int servernum); + void (*ircd_cmd_bob)(); void (*ircd_cmd_svshold)(char *nick); void (*ircd_cmd_release_svshold)(char *nick); void (*ircd_cmd_unsgline)(char *mask); diff --git a/src/init.c b/src/init.c index 7990da17f..3f66a100d 100644 --- a/src/init.c +++ b/src/init.c @@ -765,6 +765,20 @@ int init_secondary(int ac, char **av) strerror(openlog_errno)); } + if (!ircd->delay_cl_intro) + init_tertiary(); + + /* Success! */ + return 0; +} + +/*************************************************************************/ + +void init_tertiary() +{ + /* Begin our burst..*/ + anope_cmd_bob(); + /* Bring in our pseudo-clients */ introduce_user(NULL); @@ -774,16 +788,14 @@ int init_secondary(int ac, char **av) anope_cmd_join(s_GlobalNoticer, LogChannel, time(NULL)); } + /* End our burst.. */ anope_cmd_eob(); /** - * Load our delayed modeles - modules that are planing on making clients need to wait till now - * where as modules wanting to modify our ircd connection messages need to load eariler :| - **/ + * Load our delayed modeles - modules that are planing on making clients need to wait till now + * where as modules wanting to modify our ircd connection messages need to load eariler :| + **/ modules_delayed_init(); - - /* Success! */ - return 0; } /*************************************************************************/ diff --git a/src/ircd.c b/src/ircd.c index 52fb8fbbc..398f9b577 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -92,6 +92,7 @@ void initIrcdProto() ircdproto.ircd_cmd_svsnick = NULL; ircdproto.ircd_cmd_vhost_on = NULL; ircdproto.ircd_cmd_connect = NULL; + ircdproto.ircd_cmd_bob = NULL; ircdproto.ircd_cmd_svshold = NULL; ircdproto.ircd_cmd_release_svshold = NULL; ircdproto.ircd_cmd_unsgline = NULL; @@ -555,6 +556,11 @@ void anope_cmd_connect(int servernum) ircdproto.ircd_cmd_connect(servernum); } +void anope_cmd_bob() +{ + ircdproto.ircd_cmd_bob(); +} + void anope_cmd_svshold(char *nick) { ircdproto.ircd_cmd_svshold(nick); @@ -967,6 +973,11 @@ void pmodule_cmd_connect(void (*func) (int servernum)) ircdproto.ircd_cmd_connect = func; } +void pmodule_cmd_bob(void (*func) ()) +{ + ircdproto.ircd_cmd_bob = func; +} + void pmodule_cmd_svshold(void (*func) (char *nick)) { ircdproto.ircd_cmd_svshold = func; diff --git a/src/protocol/bahamut.c b/src/protocol/bahamut.c index 1d3169fed..59da13223 100644 --- a/src/protocol/bahamut.c +++ b/src/protocol/bahamut.c @@ -108,8 +108,9 @@ IRCDVar myIrcd[] = { NULL, /* character set */ 1, /* reports sync state */ 0, /* CIDR channelbans */ - 0, /* +j */ - 0, /* +j mode */ + 0, /* +j */ + 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -909,8 +910,10 @@ void bahamut_cmd_connect(int servernum) bahamut_cmd_burst(); } - - +void bahamut_cmd_bob() +{ + /* Not used */ +} /* EVENT : SERVER */ @@ -1619,6 +1622,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(bahamut_cmd_svsnick); pmodule_cmd_vhost_on(bahamut_cmd_vhost_on); pmodule_cmd_connect(bahamut_cmd_connect); + pmodule_cmd_bob(bahamut_cmd_bob); pmodule_cmd_svshold(bahamut_cmd_svshold); pmodule_cmd_release_svshold(bahamut_cmd_release_svshold); pmodule_cmd_unsgline(bahamut_cmd_unsgline); diff --git a/src/protocol/bahamut.h b/src/protocol/bahamut.h index a40d3434c..0f42dadbd 100644 --- a/src/protocol/bahamut.h +++ b/src/protocol/bahamut.h @@ -111,6 +111,7 @@ void bahamut_cmd_chg_nick(char *oldnick, char *newnick); void bahamut_cmd_svsnick(char *source, char *guest, time_t when); void bahamut_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void bahamut_cmd_connect(int servernum); +void bahamut_cmd_bob(); void bahamut_cmd_svshold(char *nick); void bahamut_cmd_release_svshold(char *nick); void bahamut_cmd_unsgline(char *mask); diff --git a/src/protocol/charybdis.c b/src/protocol/charybdis.c index eef1ea870..04a97b486 100644 --- a/src/protocol/charybdis.c +++ b/src/protocol/charybdis.c @@ -107,6 +107,7 @@ IRCDVar myIrcd[] = { 1, /* CIDR channelbans */ 0, /* +j */ 0, /* +j Mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -1044,6 +1045,11 @@ void charybdis_cmd_connect(int servernum) charybdis_cmd_svinfo(); } +void charybdis_cmd_bob() +{ + /* Not used */ +} + void charybdis_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes) { @@ -1927,6 +1933,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(charybdis_cmd_svsnick); pmodule_cmd_vhost_on(charybdis_cmd_vhost_on); pmodule_cmd_connect(charybdis_cmd_connect); + pmodule_cmd_bob(charybdis_cmd_bob); pmodule_cmd_svshold(charybdis_cmd_svshold); pmodule_cmd_release_svshold(charybdis_cmd_release_svshold); pmodule_cmd_unsgline(charybdis_cmd_unsgline); diff --git a/src/protocol/charybdis.h b/src/protocol/charybdis.h index 5b418259c..d8cf83d2c 100644 --- a/src/protocol/charybdis.h +++ b/src/protocol/charybdis.h @@ -99,6 +99,7 @@ void charybdis_cmd_chg_nick(char *oldnick, char *newnick); void charybdis_cmd_svsnick(char *source, char *guest, time_t when); void charybdis_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void charybdis_cmd_connect(int servernum); +void charybdis_cmd_bob(); void charybdis_cmd_svshold(char *nick); void charybdis_cmd_release_svshold(char *nick); void charybdis_cmd_unsgline(char *mask); diff --git a/src/protocol/dreamforge.c b/src/protocol/dreamforge.c index ba669dd0a..10ab74e4d 100644 --- a/src/protocol/dreamforge.c +++ b/src/protocol/dreamforge.c @@ -108,6 +108,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -639,6 +640,11 @@ void dreamforge_cmd_connect(int servernum) dreamforge_cmd_server(ServerName, 1, ServerDesc); } +void dreamforge_cmd_bob() +{ + /* Not used */ +} + void dreamforge_cmd_bot_chan_mode(char *nick, char *chan) { anope_cmd_mode(nick, chan, "%s %s %s", ircd->botchanumode, nick, nick); @@ -1324,6 +1330,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(dreamforge_cmd_svsnick); pmodule_cmd_vhost_on(dreamforge_cmd_vhost_on); pmodule_cmd_connect(dreamforge_cmd_connect); + pmodule_cmd_bob(dreamforge_cmd_bob); pmodule_cmd_svshold(dreamforge_cmd_svshold); pmodule_cmd_release_svshold(dreamforge_cmd_release_svshold); pmodule_cmd_unsgline(dreamforge_cmd_unsgline); diff --git a/src/protocol/dreamforge.h b/src/protocol/dreamforge.h index 096268057..5d113afd1 100644 --- a/src/protocol/dreamforge.h +++ b/src/protocol/dreamforge.h @@ -91,6 +91,7 @@ void dreamforge_cmd_chg_nick(char *oldnick, char *newnick); void dreamforge_cmd_svsnick(char *source, char *guest, time_t when); void dreamforge_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void dreamforge_cmd_connect(int servernum); +void dreamforge_cmd_bob(); void dreamforge_cmd_svshold(char *nick); void dreamforge_cmd_release_svshold(char *nick); void dreamforge_cmd_unsgline(char *mask); diff --git a/src/protocol/hybrid.c b/src/protocol/hybrid.c index aa05506f1..323c34893 100644 --- a/src/protocol/hybrid.c +++ b/src/protocol/hybrid.c @@ -108,6 +108,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -840,6 +841,11 @@ void hybrid_cmd_connect(int servernum) hybrid_cmd_svinfo(); } +void hybrid_cmd_bob() +{ + /* Not used */ +} + void hybrid_cmd_svsinfo() { /* not used */ @@ -1513,6 +1519,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(hybrid_cmd_svsnick); pmodule_cmd_vhost_on(hybrid_cmd_vhost_on); pmodule_cmd_connect(hybrid_cmd_connect); + pmodule_cmd_bob(hybrid_cmd_bob); pmodule_cmd_svshold(hybrid_cmd_svshold); pmodule_cmd_release_svshold(hybrid_cmd_release_svshold); pmodule_cmd_unsgline(hybrid_cmd_unsgline); diff --git a/src/protocol/hybrid.h b/src/protocol/hybrid.h index b57d7adc2..db1f7f3bd 100644 --- a/src/protocol/hybrid.h +++ b/src/protocol/hybrid.h @@ -96,6 +96,7 @@ void hybrid_cmd_chg_nick(char *oldnick, char *newnick); void hybrid_cmd_svsnick(char *source, char *guest, time_t when); void hybrid_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void hybrid_cmd_connect(int servernum); +void hybrid_cmd_bob(); void hybrid_cmd_svshold(char *nick); void hybrid_cmd_release_svshold(char *nick); void hybrid_cmd_unsgline(char *mask); diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c index ed9acd211..9fca32bf7 100644 --- a/src/protocol/inspircd11.c +++ b/src/protocol/inspircd11.c @@ -127,6 +127,7 @@ IRCDVar myIrcd[] = { 1, /* CIDR channelbans */ 1, /* +j */ CMODE_j, /* +j Mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -1174,6 +1175,11 @@ void inspircd_cmd_connect(int servernum) new_server(NULL, ServerName, ServerDesc, SERVER_ISME, NULL); } +void inspircd_cmd_bob() +{ + /* Not used */ +} + /* Events */ int anope_event_ping(char *source, int ac, char **av) @@ -1895,6 +1901,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(inspircd_cmd_svsnick); pmodule_cmd_vhost_on(inspircd_cmd_vhost_on); pmodule_cmd_connect(inspircd_cmd_connect); + pmodule_cmd_bob(inspircd_cmd_bob); pmodule_cmd_svshold(inspircd_cmd_svshold); pmodule_cmd_release_svshold(inspircd_cmd_release_svshold); pmodule_cmd_unsgline(inspircd_cmd_unsqline); diff --git a/src/protocol/inspircd11.h b/src/protocol/inspircd11.h index 7229b3c9e..60d32b4c7 100755 --- a/src/protocol/inspircd11.h +++ b/src/protocol/inspircd11.h @@ -105,6 +105,7 @@ void inspircd_cmd_chg_nick(char *oldnick, char *newnick); void inspircd_cmd_svsnick(char *source, char *guest, time_t when); void inspircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void inspircd_cmd_connect(int servernum); +void inspircd_cmd_bob(); void inspircd_cmd_svshold(char *nick); void inspircd_cmd_release_svshold(char *nick); void inspircd_cmd_unsgline(char *mask); diff --git a/src/protocol/plexus2.c b/src/protocol/plexus2.c index 1f01924f5..4a42d150c 100644 --- a/src/protocol/plexus2.c +++ b/src/protocol/plexus2.c @@ -106,6 +106,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -989,6 +990,12 @@ plexus_cmd_connect (int servernum) } void +plexus_cmd_bob() +{ + /* not used */ +} + +void plexus_cmd_svsinfo () { /* not used */ @@ -1817,6 +1824,7 @@ moduleAddAnopeCmds () pmodule_cmd_svsnick (plexus_cmd_svsnick); pmodule_cmd_vhost_on (plexus_cmd_vhost_on); pmodule_cmd_connect (plexus_cmd_connect); + pmodule_cmd_bob(plexus_cmd_bob); pmodule_cmd_svshold (plexus_cmd_svshold); pmodule_cmd_release_svshold (plexus_cmd_release_svshold); pmodule_cmd_unsgline (plexus_cmd_unsgline); diff --git a/src/protocol/plexus2.h b/src/protocol/plexus2.h index 912c8e73b..2c5d9f115 100644 --- a/src/protocol/plexus2.h +++ b/src/protocol/plexus2.h @@ -105,6 +105,7 @@ void plexus_cmd_chg_nick(char *oldnick, char *newnick); void plexus_cmd_svsnick(char *source, char *guest, time_t when); void plexus_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void plexus_cmd_connect(int servernum); +void plexus_cmd_bob(); void plexus_cmd_svshold(char *nick); void plexus_cmd_release_svshold(char *nick); void plexus_cmd_unsgline(char *mask); diff --git a/src/protocol/plexus3.c b/src/protocol/plexus3.c index 375687ae1..fbd9d2bbf 100644 --- a/src/protocol/plexus3.c +++ b/src/protocol/plexus3.c @@ -106,6 +106,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -966,6 +967,12 @@ plexus_cmd_connect (int servernum) } void +plexus_cmd_bob() +{ + /* not used */ +} + +void plexus_cmd_svsinfo () { /* not used */ @@ -1794,6 +1801,7 @@ moduleAddAnopeCmds () pmodule_cmd_svsnick (plexus_cmd_svsnick); pmodule_cmd_vhost_on (plexus_cmd_vhost_on); pmodule_cmd_connect (plexus_cmd_connect); + pmodule_cmd_bob(plexus_cmd_bob); pmodule_cmd_svshold (plexus_cmd_svshold); pmodule_cmd_release_svshold (plexus_cmd_release_svshold); pmodule_cmd_unsgline (plexus_cmd_unsgline); diff --git a/src/protocol/plexus3.h b/src/protocol/plexus3.h index bc0384db6..489de9524 100644 --- a/src/protocol/plexus3.h +++ b/src/protocol/plexus3.h @@ -92,6 +92,7 @@ void plexus_cmd_chg_nick(char *oldnick, char *newnick); void plexus_cmd_svsnick(char *source, char *guest, time_t when); void plexus_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void plexus_cmd_connect(int servernum); +void plexus_cmd_bob(); void plexus_cmd_svshold(char *nick); void plexus_cmd_release_svshold(char *nick); void plexus_cmd_unsgline(char *mask); diff --git a/src/protocol/ptlink.c b/src/protocol/ptlink.c index cd5f57c9c..785711d78 100644 --- a/src/protocol/ptlink.c +++ b/src/protocol/ptlink.c @@ -108,6 +108,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -881,6 +882,10 @@ void ptlink_cmd_connect(int servernum) ptlink_cmd_svsinfo(); } +void ptlink_cmd_bob() +{ + /* Not used */ +} int anope_event_privmsg(char *source, int ac, char **av) @@ -1736,6 +1741,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(ptlink_cmd_svsnick); pmodule_cmd_vhost_on(ptlink_cmd_vhost_on); pmodule_cmd_connect(ptlink_cmd_connect); + pmodule_cmd_bob(ptlink_cmd_bob); pmodule_cmd_svshold(ptlink_cmd_svshold); pmodule_cmd_release_svshold(ptlink_cmd_release_svshold); pmodule_cmd_unsgline(ptlink_cmd_unsgline); diff --git a/src/protocol/ptlink.h b/src/protocol/ptlink.h index e546f2e26..73e116b87 100644 --- a/src/protocol/ptlink.h +++ b/src/protocol/ptlink.h @@ -131,6 +131,7 @@ void ptlink_cmd_chg_nick(char *oldnick, char *newnick); void ptlink_cmd_svsnick(char *source, char *guest, time_t when); void ptlink_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void ptlink_cmd_connect(int servernum); +void ptlink_cmd_bob(); void ptlink_cmd_svshold(char *nick); void ptlink_cmd_release_svshold(char *nick); void ptlink_cmd_unsgline(char *mask); diff --git a/src/protocol/rageircd.c b/src/protocol/rageircd.c index a6d444db9..5ad02f5ec 100644 --- a/src/protocol/rageircd.c +++ b/src/protocol/rageircd.c @@ -108,7 +108,8 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ - } + 0, /* Use delayed client introduction. */ + } , {NULL} }; @@ -785,6 +786,11 @@ void rageircd_cmd_connect(int servernum) rageircd_cmd_burst(); } +void rageircd_cmd_bob() +{ + /* Not used */ +} + void rageircd_set_umode(User * user, int ac, char **av) { int add = 1; /* 1 if adding modes, 0 if deleting */ @@ -1616,6 +1622,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(rageircd_cmd_svsnick); pmodule_cmd_vhost_on(rageircd_cmd_vhost_on); pmodule_cmd_connect(rageircd_cmd_connect); + pmodule_cmd_bob(rageircd_cmd_bob); pmodule_cmd_svshold(rageircd_cmd_svshold); pmodule_cmd_release_svshold(rageircd_cmd_release_svshold); pmodule_cmd_unsgline(rageircd_cmd_unsgline); diff --git a/src/protocol/rageircd.h b/src/protocol/rageircd.h index acc99a6bf..73d3459bd 100644 --- a/src/protocol/rageircd.h +++ b/src/protocol/rageircd.h @@ -94,6 +94,7 @@ void rageircd_cmd_chg_nick(char *oldnick, char *newnick); void rageircd_cmd_svsnick(char *source, char *guest, time_t when); void rageircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void rageircd_cmd_connect(int servernum); +void rageircd_cmd_bob(); void rageircd_cmd_svshold(char *nick); void rageircd_cmd_release_svshold(char *nick); void rageircd_cmd_unsgline(char *mask); diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c index 5ec2a1919..6db5f16d9 100644 --- a/src/protocol/ratbox.c +++ b/src/protocol/ratbox.c @@ -108,7 +108,8 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ - } + 0, /* Use delayed client introduction. */ + } , {NULL} }; @@ -987,6 +988,11 @@ void ratbox_cmd_connect(int servernum) ratbox_cmd_svinfo(); } +void ratbox_cmd_bob() +{ + /* Not used */ +} + void ratbox_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes) { @@ -1822,6 +1828,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(ratbox_cmd_svsnick); pmodule_cmd_vhost_on(ratbox_cmd_vhost_on); pmodule_cmd_connect(ratbox_cmd_connect); + pmodule_cmd_bob(ratbox_cmd_bob); pmodule_cmd_svshold(ratbox_cmd_svshold); pmodule_cmd_release_svshold(ratbox_cmd_release_svshold); pmodule_cmd_unsgline(ratbox_cmd_unsgline); diff --git a/src/protocol/ratbox.h b/src/protocol/ratbox.h index 4cc82f712..a256096f5 100644 --- a/src/protocol/ratbox.h +++ b/src/protocol/ratbox.h @@ -98,6 +98,7 @@ void ratbox_cmd_chg_nick(char *oldnick, char *newnick); void ratbox_cmd_svsnick(char *source, char *guest, time_t when); void ratbox_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void ratbox_cmd_connect(int servernum); +void ratbox_cmd_bob(); void ratbox_cmd_svshold(char *nick); void ratbox_cmd_release_svshold(char *nick); void ratbox_cmd_unsgline(char *mask); diff --git a/src/protocol/shadowircd.c b/src/protocol/shadowircd.c index c23c51400..29e201c82 100644 --- a/src/protocol/shadowircd.c +++ b/src/protocol/shadowircd.c @@ -109,6 +109,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -989,6 +990,11 @@ void shadowircd_cmd_connect(int servernum) shadowircd_cmd_svinfo(); } +void shadowircd_cmd_bob() +{ + /* Not used */ +} + void shadowircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes) { @@ -1773,6 +1779,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(shadowircd_cmd_svsnick); pmodule_cmd_vhost_on(shadowircd_cmd_vhost_on); pmodule_cmd_connect(shadowircd_cmd_connect); + pmodule_cmd_bob(shadowircd_cmd_bob); pmodule_cmd_svshold(shadowircd_cmd_svshold); pmodule_cmd_release_svshold(shadowircd_cmd_release_svshold); pmodule_cmd_unsgline(shadowircd_cmd_unsgline); diff --git a/src/protocol/shadowircd.h b/src/protocol/shadowircd.h index 17f701163..2a94841b7 100644 --- a/src/protocol/shadowircd.h +++ b/src/protocol/shadowircd.h @@ -123,6 +123,7 @@ void shadowircd_cmd_chg_nick(char *oldnick, char *newnick); void shadowircd_cmd_svsnick(char *source, char *guest, time_t when); void shadowircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void shadowircd_cmd_connect(int servernum); +void shadowircd_cmd_bob(); void shadowircd_cmd_svshold(char *nick); void shadowircd_cmd_release_svshold(char *nick); void shadowircd_cmd_unsgline(char *mask); diff --git a/src/protocol/solidircd.c b/src/protocol/solidircd.c index 4c20de1c0..52e6c5dd4 100644 --- a/src/protocol/solidircd.c +++ b/src/protocol/solidircd.c @@ -108,8 +108,9 @@ IRCDVar myIrcd[] = { NULL, /* character set */ 1, /* reports sync state */ 0, /* CIDR channelbans */ - 0, /* +j */ - 0, /* +j mode */ + 0, /* +j */ + 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -1649,6 +1650,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(solidircd_cmd_svsnick); pmodule_cmd_vhost_on(solidircd_cmd_vhost_on); pmodule_cmd_connect(solidircd_cmd_connect); + pmodule_cmd_bob(solidircd_cmd_burst); pmodule_cmd_svshold(solidircd_cmd_svshold); pmodule_cmd_release_svshold(solidircd_cmd_release_svshold); pmodule_cmd_unsgline(solidircd_cmd_unsgline); diff --git a/src/protocol/solidircd.h b/src/protocol/solidircd.h index 28775cffb..2b26dfcc4 100644 --- a/src/protocol/solidircd.h +++ b/src/protocol/solidircd.h @@ -118,6 +118,7 @@ void solidircd_cmd_chg_nick(char *oldnick, char *newnick); void solidircd_cmd_svsnick(char *source, char *guest, time_t when); void solidircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void solidircd_cmd_connect(int servernum); +void solidircd_cmd_bob(); void solidircd_cmd_svshold(char *nick); void solidircd_cmd_release_svshold(char *nick); void solidircd_cmd_unsgline(char *mask); diff --git a/src/protocol/ultimate2.c b/src/protocol/ultimate2.c index 88d7d0a4f..a99ae105b 100644 --- a/src/protocol/ultimate2.c +++ b/src/protocol/ultimate2.c @@ -108,6 +108,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -895,6 +896,11 @@ void ultimate2_cmd_connect(int servernum) ultimate2_cmd_server(ServerName, 1, ServerDesc); } +void ultimate2_cmd_bob() +{ + /* Not used */ +} + /* CHGHOST */ void ultimate2_cmd_chghost(char *nick, char *vhost) { @@ -1674,6 +1680,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(ultimate2_cmd_svsnick); pmodule_cmd_vhost_on(ultimate2_cmd_vhost_on); pmodule_cmd_connect(ultimate2_cmd_connect); + pmodule_cmd_bob(ultimate2_cmd_bob); pmodule_cmd_svshold(ultimate2_cmd_svshold); pmodule_cmd_release_svshold(ultimate2_cmd_release_svshold); pmodule_cmd_unsgline(ultimate2_cmd_unsgline); diff --git a/src/protocol/ultimate2.h b/src/protocol/ultimate2.h index 552be5bd7..687f264b2 100644 --- a/src/protocol/ultimate2.h +++ b/src/protocol/ultimate2.h @@ -99,6 +99,7 @@ void ultimate2_cmd_chg_nick(char *oldnick, char *newnick); void ultimate2_cmd_svsnick(char *source, char *guest, time_t when); void ultimate2_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void ultimate2_cmd_connect(int servernum); +void ultimate2_cmd_bob(); void ultimate2_cmd_svshold(char *nick); void ultimate2_cmd_release_svshold(char *nick); void ultimate2_cmd_unsgline(char *mask); diff --git a/src/protocol/ultimate3.c b/src/protocol/ultimate3.c index 9daaa5bab..5afde95e0 100644 --- a/src/protocol/ultimate3.c +++ b/src/protocol/ultimate3.c @@ -108,6 +108,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -1467,6 +1468,11 @@ void ultimate3_cmd_connect(int servernum) ultimate3_cmd_burst(); } +void ultimate3_cmd_bob() +{ + /* Not used */ +} + /* SVSHOLD - set */ void ultimate3_cmd_svshold(char *nick) { @@ -1757,6 +1763,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(ultimate3_cmd_svsnick); pmodule_cmd_vhost_on(ultimate3_cmd_vhost_on); pmodule_cmd_connect(ultimate3_cmd_connect); + pmodule_cmd_bob(ultimate3_cmd_bob); pmodule_cmd_svshold(ultimate3_cmd_svshold); pmodule_cmd_release_svshold(ultimate3_cmd_release_svshold); pmodule_cmd_unsgline(ultimate3_cmd_unsgline); diff --git a/src/protocol/ultimate3.h b/src/protocol/ultimate3.h index 945e6a7f3..2191dc69f 100644 --- a/src/protocol/ultimate3.h +++ b/src/protocol/ultimate3.h @@ -104,6 +104,7 @@ void ultimate3_cmd_chg_nick(char *oldnick, char *newnick); void ultimate3_cmd_svsnick(char *source, char *guest, time_t when); void ultimate3_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void ultimate3_cmd_connect(int servernum); +void ultimate3_cmd_bob(); void ultimate3_cmd_svshold(char *nick); void ultimate3_cmd_release_svshold(char *nick); void ultimate3_cmd_unsgline(char *mask); diff --git a/src/protocol/unreal31.c b/src/protocol/unreal31.c index 0159be396..2284a9faf 100644 --- a/src/protocol/unreal31.c +++ b/src/protocol/unreal31.c @@ -110,6 +110,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -989,6 +990,11 @@ void unreal_cmd_connect(int servernum) unreal_cmd_server(ServerName, 1, ServerDesc); } +void unreal_cmd_bob() +{ + /* Not used */ +} + /* Events */ int anope_event_ping(char *source, int ac, char **av) @@ -1532,6 +1538,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(unreal_cmd_svsnick); pmodule_cmd_vhost_on(unreal_cmd_vhost_on); pmodule_cmd_connect(unreal_cmd_connect); + pmodule_cmd_bob(unreal_cmd_bob); pmodule_cmd_svshold(unreal_cmd_svshold); pmodule_cmd_release_svshold(unreal_cmd_release_svshold); pmodule_cmd_unsgline(unreal_cmd_unsgline); diff --git a/src/protocol/unreal31.h b/src/protocol/unreal31.h index e7de79f3a..674a6e0f1 100644 --- a/src/protocol/unreal31.h +++ b/src/protocol/unreal31.h @@ -104,6 +104,7 @@ void unreal_cmd_chg_nick(char *oldnick, char *newnick); void unreal_cmd_svsnick(char *source, char *guest, time_t when); void unreal_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void unreal_cmd_connect(int servernum); +void unreal_cmd_bob(); void unreal_cmd_svshold(char *nick); void unreal_cmd_release_svshold(char *nick); void unreal_cmd_unsgline(char *mask); diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c index 3eeb31bbd..0919fabbe 100644 --- a/src/protocol/unreal32.c +++ b/src/protocol/unreal32.c @@ -110,6 +110,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 1, /* +j */ CMODE_j, /* +j Mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -1114,6 +1115,11 @@ void unreal_cmd_connect(int servernum) unreal_cmd_server(ServerName, 1, ServerDesc); } +void unreal_cmd_bob() +{ + /* Not used */ +} + /* Events */ int anope_event_ping(char *source, int ac, char **av) @@ -2197,6 +2203,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(unreal_cmd_svsnick); pmodule_cmd_vhost_on(unreal_cmd_vhost_on); pmodule_cmd_connect(unreal_cmd_connect); + pmodule_cmd_bob(unreal_cmd_bob); pmodule_cmd_svshold(unreal_cmd_svshold); pmodule_cmd_release_svshold(unreal_cmd_release_svshold); pmodule_cmd_unsgline(unreal_cmd_unsgline); diff --git a/src/protocol/unreal32.h b/src/protocol/unreal32.h index dd09a043a..fb9abc641 100644 --- a/src/protocol/unreal32.h +++ b/src/protocol/unreal32.h @@ -134,6 +134,7 @@ void unreal_cmd_chg_nick(char *oldnick, char *newnick); void unreal_cmd_svsnick(char *source, char *guest, time_t when); void unreal_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void unreal_cmd_connect(int servernum); +void unreal_cmd_bob(); void unreal_cmd_svshold(char *nick); void unreal_cmd_release_svshold(char *nick); void unreal_cmd_unsgline(char *mask); diff --git a/src/protocol/viagra.c b/src/protocol/viagra.c index e53d38b2f..d53e0a7c3 100644 --- a/src/protocol/viagra.c +++ b/src/protocol/viagra.c @@ -109,6 +109,7 @@ IRCDVar myIrcd[] = { 0, /* CIDR channelbans */ 0, /* +j */ 0, /* +j mode */ + 0, /* Use delayed client introduction. */ } , {NULL} @@ -983,6 +984,11 @@ void viagra_cmd_connect(int servernum) viagra_cmd_burst(); } +void viagra_cmd_bob() +{ + /* Not used */ +} + /* EVENT : OS */ int anope_event_os(char *source, int ac, char **av) { @@ -1656,6 +1662,7 @@ void moduleAddAnopeCmds() pmodule_cmd_svsnick(viagra_cmd_svsnick); pmodule_cmd_vhost_on(viagra_cmd_vhost_on); pmodule_cmd_connect(viagra_cmd_connect); + pmodule_cmd_bob(viagra_cmd_bob); pmodule_cmd_svshold(viagra_cmd_svshold); pmodule_cmd_release_svshold(viagra_cmd_release_svshold); pmodule_cmd_unsgline(viagra_cmd_unsgline); diff --git a/src/protocol/viagra.h b/src/protocol/viagra.h index 1cd84ad4b..64151de79 100644 --- a/src/protocol/viagra.h +++ b/src/protocol/viagra.h @@ -113,6 +113,7 @@ void viagra_cmd_chg_nick(char *oldnick, char *newnick); void viagra_cmd_svsnick(char *source, char *guest, time_t when); void viagra_cmd_vhost_on(char *nick, char *vIdent, char *vhost); void viagra_cmd_connect(int servernum); +void viagra_cmd_bob(); void viagra_cmd_svshold(char *nick); void viagra_cmd_release_svshold(char *nick); void viagra_cmd_unsgline(char *mask); diff --git a/version.log b/version.log index f106c0f20..1870eecfd 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,11 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="2" VERSION_EXTRA="-svn" -VERSION_BUILD="2534" +VERSION_BUILD="2535" # $Log$ # Changes since 1.8.2 Release -#Revision 2534 - Added ability to mark users as either ID'd or UNID'd after user introduction. This is the responsibility of the protocol module!(Required for Insp 1.2) +#Revision 2535 - Added option for delayed pseudo-client introduction. (Required for Insp 1.2) +#Revision 2534 - Added ability to mark users as either ID'd or UNID'd after user introduction. This is the responsibility of the protocol module! (Required for Insp 1.2) #Revision 2533 - Backport of r2531, reset +r on registered channels after a netmerge when our creation time is newer than what we recieved. #Revision 2525 - Fix bug #1097. CS FORBID now clears excepts & invites before banning everyone to avoid rejoin floods. #Revision 2511 - Updated French language file, patch from Saka |