summaryrefslogtreecommitdiff
path: root/src/connection.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2004-04-15 09:09:17 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2004-04-15 09:09:17 +0000
commitbed0c38419b46ff23b36f1edb7e5aca6a86c7c8e (patch)
tree5dadc22abc17f9e48e5ad29157789857f436fef2 /src/connection.cpp
parenta62c272ea279d4970ed49e49427bf60560a7c49a (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/connection.cpp')
-rw-r--r--src/connection.cpp6
1 files changed, 6 insertions, 0 deletions
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;
}