]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fixed a ton of MODE crap 'avec le' services :p
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Thu, 24 Mar 2005 18:07:52 +0000 (18:07 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Thu, 24 Mar 2005 18:07:52 +0000 (18:07 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@896 e03df62e-2008-0410-955e-edbf42e46eb7

include/servers.h
src/commands.cpp
src/servers.cpp

index ee4e7290bfb08f570d12eec628f397fefdd4f6a4..09e6ad1c687e321c4c38977d2e2d3b20afb0d9a7 100644 (file)
@@ -59,6 +59,10 @@ class serverrec : public connection
        /** Description of the server
         */     
        char description[MAXBUF];
+
+       /** Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/)
+        */
+       char nickserv[NICKMAX];
        
        bool sync_soon;
 
index 3bea3256331149b168ffa2d4977663f8e0cd40ec..0b9624ea810372b0956124b32b6619e82d7e0eab 100644 (file)
@@ -2555,6 +2555,10 @@ void process_restricted_commands(char token,char* params,serverrec* source,serve
                        snprintf(buffer,MAXBUF,"+ %s %s %d %d",tcp_host,ipaddr,port,authcookie);
                        NetSendToAllExcept(tcp_host,buffer);
                break;
+               case '/':
+                       WriteOpers("Server %s is IRCServices-based server (assumes-SVSMODE) - Nickname Services: %s",tcp_host,params);
+                       strlcpy(source->nickserv,params,NICKMAX);
+               break;
                // F <TS>
                // end netburst with no mesh creation
                case 'f':
@@ -2653,14 +2657,14 @@ void handle_link_packet(char* udp_msg, char* tcp_host, serverrec *serv)
                }
                if (!strcmp(command,"SVSMODE"))
                {
-                       snprintf(udp_msg,MAXBUF,"M %s",data);
+                       snprintf(udp_msg,MAXBUF,"m %s %s",source,data);
                        log(DEBUG,"Rewrote SVSMODE from services to: '%s'",udp_msg);
                        token = udp_msg[0];
                }
                if (!strcmp(command,"SVS2MODE"))
                {
-                       snprintf(udp_msg,MAXBUF,"M %s",data);
-                       log(DEBUG,"Rewrote SVSMODE from services to: '%s'",udp_msg);
+                       snprintf(udp_msg,MAXBUF,"m %s %s",source,data);
+                       log(DEBUG,"Rewrote SVS2MODE from services to: '%s'",udp_msg);
                        token = udp_msg[0];
                }
                // todo: this wont work without u:lines
index 2d1f70ed8d95bcb52fe82d56e68c417c09403750..5bf694183b1e647b101d9e89700066e6c7da770e 100644 (file)
@@ -31,6 +31,7 @@ serverrec::serverrec()
        jupiter = false;
        fd = 0;
        sync_soon = false;
+       strlcpy(nickserv,"",NICKMAX);
 }
 
  
@@ -49,5 +50,6 @@ serverrec::serverrec(char* n, long ver, bool jupe)
        jupiter = jupe;
        fd = 0;
        sync_soon = false;
+       strlcpy(nickserv,"",NICKMAX);
 }