summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrystan 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
committertrystan 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
commit4797b990aac2d4ec665b5573270e1f571eea2c69 (patch)
treeec46e98179da6522e3c01824f7ddc925f6e68489 /src
parent50fb0cd6e76545dec1b32e70577e5071092840a3 (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.c20
-rw-r--r--src/ptlink.c33
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 */