diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2004-04-15 09:09:17 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2004-04-15 09:09:17 +0000 |
commit | bed0c38419b46ff23b36f1edb7e5aca6a86c7c8e (patch) | |
tree | 5dadc22abc17f9e48e5ad29157789857f436fef2 /src | |
parent | a62c272ea279d4970ed49e49427bf60560a7c49a (diff) |
Fixes for nonblocking socket issues
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@593 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/InspIRCd.layout | 24 | ||||
-rw-r--r-- | src/connection.cpp | 6 | ||||
-rw-r--r-- | src/inspircd.cpp | 9 |
3 files changed, 23 insertions, 16 deletions
diff --git a/src/InspIRCd.layout b/src/InspIRCd.layout index 59ead5dff..686e7c83b 100644 --- a/src/InspIRCd.layout +++ b/src/InspIRCd.layout @@ -13,9 +13,9 @@ LeftChar=1 [Editor_1] Open=1 Top=1 -CursorCol=30 -CursorRow=899 -TopLine=863 +CursorCol=25 +CursorRow=4522 +TopLine=4491 LeftChar=1 [Editor_2] @@ -107,11 +107,11 @@ TopLine=1 LeftChar=1 [Editor_13] -Open=0 +Open=1 Top=0 -CursorCol=17 -CursorRow=17 -TopLine=1 +CursorCol=5 +CursorRow=48 +TopLine=16 LeftChar=1 [Editor_14] @@ -141,8 +141,8 @@ LeftChar=1 [Editor_17] Open=1 Top=0 -CursorCol=19 -CursorRow=123 +CursorCol=34 +CursorRow=122 TopLine=63 LeftChar=1 @@ -197,9 +197,9 @@ LeftChar=1 [Editor_24] Open=1 Top=0 -CursorCol=4 -CursorRow=272 -TopLine=246 +CursorCol=50 +CursorRow=238 +TopLine=207 LeftChar=1 [Editor_25] Open=1 diff --git a/src/connection.cpp b/src/connection.cpp index 7c5468b42..c2b67412a 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -178,6 +178,12 @@ bool connection::AddIncoming(int fd,char* targethost) connector.SetServerName(targethost); connector.SetDescriptor(fd); connector.SetState(STATE_NOAUTH_INBOUND); + int flags = fcntl(fd, F_GETFL, 0); + fcntl(fd, F_SETFL, flags | O_NONBLOCK); + int sendbuf = 32768; + int recvbuf = 32768; + setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf)); + setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf)); this->connectors.push_back(connector); return true; } diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 158bbc3da..74785a167 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -877,6 +877,7 @@ bool CommonOnThisServer(userrec* u,const char* servername) { if (!strcasecmp(i->second->server,servername)) { + log(DEBUG,"%s is common to %s sharing with %s",i->second->nick,servername,u->nick); return true; } } @@ -885,7 +886,7 @@ bool CommonOnThisServer(userrec* u,const char* servername) } -void NetSendToCommon(userrec* u, chanrec* c, char* s) +void NetSendToCommon(userrec* u, char* s) { char buffer[MAXBUF]; snprintf(buffer,MAXBUF,"%s",s); @@ -4434,7 +4435,7 @@ void handle_privmsg(char **parameters, int pcnt, userrec *user) // if any users of this channel are on remote servers, broadcast the packet char buffer[MAXBUF]; snprintf(buffer,MAXBUF,"P %s %s :%s",user->nick,chan->name,parameters[1]); - NetSendToCommon(user,chan,buffer); + NetSendToCommon(user,buffer); } else { @@ -4518,7 +4519,7 @@ void handle_notice(char **parameters, int pcnt, userrec *user) // if any users of this channel are on remote servers, broadcast the packet char buffer[MAXBUF]; snprintf(buffer,MAXBUF,"V %s %s :%s",user->nick,chan->name,parameters[1]); - NetSendToCommon(user,chan,buffer); + NetSendToCommon(user,buffer); } else { @@ -6943,7 +6944,7 @@ int InspIRCd(void) } } - for (int x = 0; x != UDPportCount; x++) + for (int x = 0; x < UDPportCount; x++) { std::deque<std::string> msgs; msgs.clear(); |