diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2004-04-10 20:35:16 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2004-04-10 20:35:16 +0000 |
commit | acf2c3bc71321cac71ef1dbc7c26c89a7dd8a076 (patch) | |
tree | 5c3613f5d0f7152f10f66f3d3694ede8eea4b88b /src/inspircd.cpp | |
parent | dd32369cdd20df7f390fcb50b200c290a454b293 (diff) |
Fix to 'm' handling in server to server links
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@509 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/inspircd.cpp')
-rw-r--r-- | src/inspircd.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 5b7eecbb7..8a25bd261 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -3526,7 +3526,7 @@ void merge_mode2(char **parameters, int pcnt, userrec* user) Ptr = FindChan(parameters[0]); if (Ptr) { - process_modes(parameters,user,Ptr,STATUS_OP,pcnt,true,true); + process_modes(parameters,user,Ptr,STATUS_OP,pcnt,false,true); } } @@ -6004,7 +6004,7 @@ void handle_M(char token,char* params,serverrec* source,serverrec* reply, char* void handle_m(char token,char* params,serverrec* source,serverrec* reply, char* udp_host,int udp_port) { char* pars[128]; - char original[MAXBUF],target[MAXBUF]; + char original[MAXBUF]; strncpy(original,params,MAXBUF); int index = 0; @@ -6020,14 +6020,15 @@ void handle_m(char token,char* params,serverrec* source,serverrec* reply, char* pars[index++] = parameter; parameter = strtok(NULL," "); } + merge_mode2(pars,--index,user); - if (FindChan(target)) + if (FindChan(pars[0])) { - WriteChannelLocal(FindChan(target), user, "MODE %s",original); + WriteChannelLocal(FindChan(pars[0]), user, "MODE %s",original); } - if (Find(target)) + if (Find(pars[0])) { - WriteTo(user,Find(target),"MODE %s",original); + WriteTo(user,Find(pars[0]),"MODE %s",original); } } } |