diff options
author | geniusdex 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 |
---|---|---|
committer | geniusdex 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 |
commit | b9854dad63729e0314a95bb351da2502648bfa6c (patch) | |
tree | 86b1571d39a31b4656433668f59e22f82e3efad6 /src | |
parent | 8f7e160ce917b0a3fe20640ef95ab66b3e2fbbc0 (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.c | 10 |
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]); } |