diff options
author | Adam <Adam@drink-coca-cola.info> | 2010-04-29 17:31:34 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-06-18 20:58:52 -0400 |
commit | c1d161dec451ea790ff87078b5d80b1f71a3e9f0 (patch) | |
tree | 2ada0230d0411d10bb1e710d701874d253a4d4aa /src/protocol/ratbox.c | |
parent | 73e93305c10f349742fad3b2197c6c5dd3aea34e (diff) |
Rewrote all of the server handling code
Diffstat (limited to 'src/protocol/ratbox.c')
-rw-r--r-- | src/protocol/ratbox.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c index 8d0a84826..ace2a650c 100644 --- a/src/protocol/ratbox.c +++ b/src/protocol/ratbox.c @@ -14,6 +14,8 @@ #include "services.h" #include "pseudo.h" +static char *TS6UPLINK = NULL; // XXX is this needed? + IRCDVar myIrcd[] = { {"Ratbox 2.0+", /* ircd name */ "+oi", /* Modes used by pseudoclients */ @@ -190,16 +192,16 @@ class RatboxProto : public IRCDTS6Proto /* SERVER name hop descript */ void SendServer(Server *server) { - send_cmd(NULL, "SERVER %s %d :%s", server->name, server->hops, server->desc); + send_cmd(NULL, "SERVER %s %d :%s", server->GetName().c_str(), server->GetHops(), server->GetDescription().c_str()); } void SendConnect() { + Me = new Server(NULL, Config.ServerName, 0, Config.ServerDesc, TS6SID); ratbox_cmd_pass(uplink_server->password); ratbox_cmd_capab(); /* Make myself known to myself in the serverlist */ - me_server = new_server(NULL, Config.ServerName, Config.ServerDesc, SERVER_ISME, TS6SID); - SendServer(me_server); + SendServer(Me); ratbox_cmd_svinfo(); } @@ -457,14 +459,13 @@ int anope_event_sjoin(const char *source, int ac, const char **av) */ int anope_event_nick(const char *source, int ac, const char **av) { - Server *s; User *user; if (ac == 9) { - s = findserver_uid(servlist, source); + Server *s = Server::Find(source ? source : ""); /* Source is always the server */ - user = do_nick("", av[0], av[4], av[5], s->name, av[8], + user = do_nick("", av[0], av[4], av[5], s->GetName().c_str(), av[8], strtoul(av[2], NULL, 10), 0, "*", av[7]); if (user) { @@ -681,27 +682,24 @@ int anope_event_whois(const char *source, int ac, const char **av) int anope_event_server(const char *source, int ac, const char **av) { if (!stricmp(av[1], "1")) { - uplink = sstrdup(av[0]); if (TS6UPLINK) { - do_server(source, av[0], av[1], av[2], TS6UPLINK); + do_server(source, av[0], atoi(av[1]), av[2], TS6UPLINK); } else { - do_server(source, av[0], av[1], av[2], ""); + do_server(source, av[0], atoi(av[1]), av[2], ""); } } else { - do_server(source, av[0], av[1], av[2], ""); + do_server(source, av[0], atoi(av[1]), av[2], ""); } return MOD_CONT; } int anope_event_sid(const char *source, int ac, const char **av) { - Server *s; - /* :42X SID trystan.nomadirc.net 2 43X :ircd-ratbox test server */ - s = findserver_uid(servlist, source); + Server *s = Server::Find(source); - do_server(s->name, av[0], av[1], av[3], av[2]); + do_server(s->GetName(), av[0], atoi(av[1]), av[3], av[2]); return MOD_CONT; } |