From b5242e3be0801abd0edebf62955b1d1b6cd3fd7d Mon Sep 17 00:00:00 2001 From: Adam- Date: Tue, 1 Dec 2009 00:06:21 +0000 Subject: Fixed bug #1106 - Anope now keeps track of users cloaked hosts as well as virtual host and will use both in matching for things git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2679 5417fbe8-f217-4b02-8779-1006273d7864 --- src/protocol/rageircd.c | 2 +- src/protocol/solidircd.c | 2 +- src/protocol/ultimate3.c | 2 +- src/protocol/unreal31.c | 9 ++++++++- src/protocol/unreal32.c | 19 ++++++++----------- src/protocol/viagra.c | 2 +- 6 files changed, 20 insertions(+), 16 deletions(-) (limited to 'src/protocol') diff --git a/src/protocol/rageircd.c b/src/protocol/rageircd.c index 5ad02f5ec..4103fc202 100644 --- a/src/protocol/rageircd.c +++ b/src/protocol/rageircd.c @@ -668,7 +668,7 @@ void rageircd_cmd_topic(char *whosets, char *chan, char *whosetit, void rageircd_cmd_vhost_off(User * u) { - send_cmd(s_HostServ, "SVSMODE %s -x", u->nick); + common_svsmode(u, "-x", NULL); notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar); } diff --git a/src/protocol/solidircd.c b/src/protocol/solidircd.c index 52e6c5dd4..dbcff821a 100644 --- a/src/protocol/solidircd.c +++ b/src/protocol/solidircd.c @@ -1388,7 +1388,7 @@ void solidircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost) void solidircd_cmd_vhost_off(User * u) { - send_cmd(s_HostServ, "SVSMODE %s -v", u->nick); + common_svsmode(u, "-v", NULL); notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar); } diff --git a/src/protocol/ultimate3.c b/src/protocol/ultimate3.c index 5afde95e0..2a328186d 100644 --- a/src/protocol/ultimate3.c +++ b/src/protocol/ultimate3.c @@ -720,7 +720,7 @@ void ultimate3_cmd_remove_akill(char *user, char *host) void ultimate3_cmd_vhost_off(User * u) { - send_cmd(s_HostServ, "SVSMODE %s -x", u->nick); + common_svsmode(u, "-x", NULL); notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar); } diff --git a/src/protocol/unreal31.c b/src/protocol/unreal31.c index 2284a9faf..76a31c4cf 100644 --- a/src/protocol/unreal31.c +++ b/src/protocol/unreal31.c @@ -424,6 +424,12 @@ void unreal_set_umode(User * user, int ac, char **av) } break; case 'x': + if (!add) + { + if (user->vhost) + free(user->vhost); + user->vhost = NULL; + } update_host(user); break; } @@ -518,7 +524,8 @@ void unreal_cmd_topic(char *whosets, char *chan, char *whosetit, void unreal_cmd_vhost_off(User * u) { - send_cmd(s_HostServ, "SVSMODE %s -xt", u->nick); + common_svsmode(u, "-xt", NULL); + common_svsmode(u, "+x", NULL); notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar); } diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c index 0919fabbe..f93dc8236 100644 --- a/src/protocol/unreal32.c +++ b/src/protocol/unreal32.c @@ -489,6 +489,12 @@ void unreal_set_umode(User * user, int ac, char **av) } break; case 'x': + if (!add) + { + if (user->vhost) + free(user->vhost); + user->vhost = NULL; + } update_host(user); break; } @@ -532,18 +538,9 @@ void unreal_cmd_topic(char *whosets, char *chan, char *whosetit, void unreal_cmd_vhost_off(User * u) { - if (UseSVS2MODE) { - send_cmd(s_HostServ, "%s %s -xt", send_token("SVS2MODE", "v"), - u->nick); - send_cmd(s_HostServ, "%s %s +x", send_token("SVS2MODE", "v"), - u->nick); - } else { - send_cmd(s_HostServ, "%s %s -xt", send_token("SVSMODE", "n"), - u->nick); - send_cmd(s_HostServ, "%s %s +x", send_token("SVSMODE", "n"), - u->nick); + common_svsmode(u, "-xt", NULL); + common_svsmode(u, "+x", NULL); - } notice_lang(s_HostServ, u, HOST_OFF); } diff --git a/src/protocol/viagra.c b/src/protocol/viagra.c index d53e0a7c3..f8a465fa9 100644 --- a/src/protocol/viagra.c +++ b/src/protocol/viagra.c @@ -812,7 +812,7 @@ void viagra_cmd_topic(char *whosets, char *chan, char *whosetit, void viagra_cmd_vhost_off(User * u) { - send_cmd(NULL, "SVSMODE %s -x", u->nick); + common_svsmode(u, "-x", NULL); notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar); } -- cgit