summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2008-01-05 18:59:04 +0000
committergeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2008-01-05 18:59:04 +0000
commitb9854dad63729e0314a95bb351da2502648bfa6c (patch)
tree86b1571d39a31b4656433668f59e22f82e3efad6 /src
parent8f7e160ce917b0a3fe20640ef95ab66b3e2fbbc0 (diff)
BUILD : 1.7.20 (1333) BUGS : 817 NOTES : Fixed users not being re-identified automatically after a netsplit on insp
git-svn-id: svn://svn.anope.org/anope/trunk@1333 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1049 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/protocol/inspircd11.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c
index 0e35986e0..664eb9204 100644
--- a/src/protocol/inspircd11.c
+++ b/src/protocol/inspircd11.c
@@ -443,6 +443,7 @@ void inspircd_set_umode(User * user, int ac, char **av)
}
break;
case 'r':
+ user->svid = (add ? user->timestamp : 0);
if (add && !nick_identified(user)) {
common_svsmode(user, "-r", NULL);
user->mode &= ~UMODE_r;
@@ -1454,14 +1455,19 @@ int anope_event_nick(char *source, int ac, char **av)
if (ac != 1) {
if (ac == 8) {
+ int svid = 0;
+ int ts = strtoul(av[0], NULL, 10);
+
+ if (strchr(av[5], 'r') != NULL)
+ svid = ts;
+
inet_aton(av[6], &addy);
user = do_nick("", av[1], /* nick */
av[4], /* username */
av[2], /* realhost */
source, /* server */
av[7], /* realname */
- strtoul(av[0], NULL, 10),
- 0, htonl(*ad), av[3], NULL);
+ ts, svid, htonl(*ad), av[3], NULL);
if (user)
anope_set_umode(user, 1, &av[5]);
}