diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-03 20:12:47 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-03 20:12:47 +0000 |
commit | a83a728b91e3274ec5d367fa33b6f86b2292670d (patch) | |
tree | 58ce856581206a54ca8182425b2e9b3a370a42e8 | |
parent | 0fa6fadb9c48dc7d9f705517d9bf1cfbd79d2209 (diff) |
Fix annoying off-by-one error in connection::RecvPacket (nothing like driving to calm the mind :p)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1298 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/commands.cpp | 13 | ||||
-rw-r--r-- | src/connection.cpp | 2 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/commands.cpp b/src/commands.cpp index d28094bf2..2eff8186d 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -2061,7 +2061,7 @@ void handle_M(char token,char* params,serverrec* source,serverrec* reply, char* pars[index++] = parameter; parameter = strtok(NULL," "); } - log(DEBUG,"*** MODE: %s %s",pars[0],pars[1]); + log(DEBUG,"*** MODE: '%s %s'",pars[0],pars[1]); merge_mode(pars,index); if (FindChan(target)) { @@ -2114,7 +2114,8 @@ void handle_m(char token,char* params,serverrec* source,serverrec* reply, char* } log(DEBUG,"Calling merge_mode2"); - merge_mode2(pars,index,user); + if (index) + merge_mode2(pars,index,user); } } @@ -3197,7 +3198,7 @@ void handle_link_packet(char* udp_msg, char* tcp_host, serverrec *serv) char* serverdesc = finalparam+2; if ((!cookie) || (!servername) || (!serverdesc)) - break; + return; WriteOpers("AuthCookie CONNECT from %s (%s)",servername,tcp_host); @@ -3247,9 +3248,7 @@ void handle_link_packet(char* udp_msg, char* tcp_host, serverrec *serv) char* serverdesc = finalparam+2; if ((!servername) || (!password) || (!myport) || (!revision) || (!serverdesc)) - break; - - password = password; + return; WriteOpers("CONNECT from %s (%s) (their port: %d)",servername,tcp_host,atoi(myport)); @@ -3413,7 +3412,7 @@ void handle_link_packet(char* udp_msg, char* tcp_host, serverrec *serv) char* serverdesc = finalparam+2; if ((!password) || (!servername) || (!serverdesc)) - break; + return; char Link_ServerName[1024]; char Link_IPAddr[1024]; diff --git a/src/connection.cpp b/src/connection.cpp index debd3144f..6302b1e7e 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -509,7 +509,7 @@ bool connection::RecvPacket(std::deque<std::string> &messages, char* recvhost) int ret = poll(&polls,1,1); if (ret <= 0) continue; - rcvsize = recv(this->connectors[i].GetDescriptor(),data,4096,0); + rcvsize = recv(this->connectors[i].GetDescriptor(),data,4090,0); data[rcvsize] = '\0'; if (rcvsize == -1) { |