diff options
| author | trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-01-17 03:19:41 +0000 |
|---|---|---|
| committer | trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-01-17 03:19:41 +0000 |
| commit | 4797b990aac2d4ec665b5573270e1f571eea2c69 (patch) | |
| tree | ec46e98179da6522e3c01824f7ddc925f6e68489 /src | |
| parent | 50fb0cd6e76545dec1b32e70577e5071092840a3 (diff) | |
BUILD : 1.7.7 (548) BUGS : N/A NOTES : Support for PTlinks VHOST (NEWMASK) command.
git-svn-id: svn://svn.anope.org/anope/trunk@548 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@401 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
| -rw-r--r-- | src/actions.c | 20 | ||||
| -rw-r--r-- | src/ptlink.c | 33 |
2 files changed, 38 insertions, 15 deletions
diff --git a/src/actions.c b/src/actions.c index e7f8eac6a..1078ebe3f 100644 --- a/src/actions.c +++ b/src/actions.c @@ -213,6 +213,11 @@ char *common_get_vhost(User * u) if (ircd->vhostmode) { if (u->mode & ircd->vhostmode) { return u->vhost; + /* ptlink hack since there is no user mode + for vhost, simply compare the host to the + vhost struct memember */ + } else if (stricmp(u->vhost, u->host)) { + return u->vhost; } else { return u->host; } @@ -236,7 +241,18 @@ char *common_get_vident(User * u) } if (ircd->vhostmode) { if (u->mode & ircd->vhostmode) { - if (u->vident) { + return u->vident; + /* ptlink hack since there is no user mode + for vhost, simply compare the host to the + vhost struct memember */ + } else if (stricmp(u->vident, u->username)) { + return u->vident; + } else { + return u->username; + } + } else { + if (u->vident) { + if (stricmp(u->vident, u->username)) { return u->vident; } else { return u->username; @@ -244,7 +260,5 @@ char *common_get_vident(User * u) } else { return u->username; } - } else { - return u->username; } } diff --git a/src/ptlink.c b/src/ptlink.c index 2e7e4a436..1aa88596e 100644 --- a/src/ptlink.c +++ b/src/ptlink.c @@ -449,15 +449,15 @@ int anope_event_newmask(char *source, int ac, char **av) /* NICK %s %d %lu %s %s %s %s %s :%s - parv[1] = nickname - parv[2] = hopcount - parv[3] = nick TS (nick introduction time) - parv[4] = umodes - parv[5] = username - parv[6] = hostname - parv[7] = spoofed hostname - parv[8] = server - parv[9] = nick info + parv[0] = nickname + parv[1] = hopcount + parv[2] = nick TS (nick introduction time) + parv[3] = umodes + parv[4] = username + parv[5] = hostname + parv[6] = spoofed hostname + parv[7] = server + parv[8] = nick info */ /* Change NICK @@ -465,13 +465,18 @@ int anope_event_newmask(char *source, int ac, char **av) parv[1] = new nick parv[2] = TS (timestamp from user's server when nick changed was received) */ +/* + NICK xpto 2 561264 +rw irc num.myisp.pt mask.myisp.pt uc.ptlink.net :Just me + 0 1 2 3 4 5 6 7 8 + +*/ int anope_event_nick(char *source, int ac, char **av) { User *user; if (ac != 2) { - user = do_nick(source, av[0], av[4], av[6], av[7], av[8], - strtoul(av[2], NULL, 10), 0, 0, av[5], NULL); + user = do_nick(source, av[0], av[4], av[5], av[7], av[8], + strtoul(av[2], NULL, 10), 0, 0, av[6], NULL); if (user) anope_set_umode(user, 1, &av[3]); } else { @@ -1325,7 +1330,11 @@ void anope_cmd_vhost_off(User * u) void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost) { - /* does not support vhosting */ + if (vIdent) { + send_cmd(s_HostServ, "NEWMASK %s@%s %s", vIdent, vhost, nick); + } else { + send_cmd(s_HostServ, "NEWMASK %s %s", vhost, nick); + } } /* INVITE */ |
