diff options
author | Peter Powell <petpow@saberuk.com> | 2013-07-07 14:27:54 +0100 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2013-07-16 21:48:53 +0100 |
commit | 22f013a06f6015ab7601329a632001770cd14941 (patch) | |
tree | beafd72407d56185b39b6a90dc1d63a4eafa052c | |
parent | 6033f1d6fa3d37e068a56c29ef47b220abb3174d (diff) |
Use the preprocessor to check for TCP deferring support.
-rwxr-xr-x | configure | 17 | ||||
-rw-r--r-- | make/test/so_acceptfilter.cpp | 27 | ||||
-rw-r--r-- | make/test/tcp_defer_accept.cpp | 27 | ||||
-rw-r--r-- | src/listensocket.cpp | 7 |
4 files changed, 2 insertions, 76 deletions
@@ -298,18 +298,6 @@ if (test_file($config{CXX}, "eventfd.cpp")) { print "no\n"; } -printf "Checking if a TCP deferring mechanism is available... "; -if (test_file($config{CXX}, "tcp_defer_accept.cpp")) { - $config{HAS_DEFER} = "TCP_DEFER_ACCEPT"; - print "yes (TCP_DEFER_ACCEPT)\n"; -} elsif (test_file($config{CXX}, "so_acceptfilter.cpp")) { - $config{HAS_DEFER} = "SO_ACCEPTFILTER"; - print "yes (SO_ACCEPTFILTER)\n"; -} else { - $config{HAS_DEFER} = "false"; - print "no\n"; -} - print "Checking whether epoll is available... "; $config{HAS_EPOLL} = test_header($config{CXX}, "sys/epoll.h"); print $config{HAS_EPOLL} ? "yes\n" : "no\n"; @@ -791,11 +779,6 @@ EOF if ($config{HAS_CLOCK_GETTIME} eq 'true') { print FILEHANDLE "#define HAS_CLOCK_GETTIME\n"; } - if ($config{HAS_DEFER} eq "TCP_DEFER_ACCEPT") { - print FILEHANDLE "#define USE_TCP_DEFER_ACCEPT\n"; - } elsif ($config{HAS_DEFER} eq "SO_ACCEPTFILTER") { - print FILEHANDLE "#define USE_SO_ACCEPTFILTER\n" - } print FILEHANDLE "\n#include \"threadengines/threadengine_pthread.h\"\n"; close(FILEHANDLE); diff --git a/make/test/so_acceptfilter.cpp b/make/test/so_acceptfilter.cpp deleted file mode 100644 index 0fd4cda4f..000000000 --- a/make/test/so_acceptfilter.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * - * This file is part of InspIRCd. InspIRCd is free software: you can - * redistribute it and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <sys/socket.h> - -#ifndef SO_ACCEPTFILTER - #error -#endif - -int main() -{ - return 0; -} diff --git a/make/test/tcp_defer_accept.cpp b/make/test/tcp_defer_accept.cpp deleted file mode 100644 index 191b1ac70..000000000 --- a/make/test/tcp_defer_accept.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * - * This file is part of InspIRCd. InspIRCd is free software: you can - * redistribute it and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <netinet/tcp.h> - -#ifndef TCP_DEFER_ACCEPT - #error -#endif - -int main() -{ - return 0; -} diff --git a/src/listensocket.cpp b/src/listensocket.cpp index 20cbe51ac..9b69b53ff 100644 --- a/src/listensocket.cpp +++ b/src/listensocket.cpp @@ -21,10 +21,7 @@ #include "inspircd.h" #include "socket.h" #include "socketengine.h" - -#ifdef USE_TCP_DEFER_ACCEPT #include <netinet/tcp.h> -#endif ListenSocket::ListenSocket(ConfigTag* tag, const irc::sockets::sockaddrs& bind_to) : bind_tag(tag) @@ -63,9 +60,9 @@ ListenSocket::ListenSocket(ConfigTag* tag, const irc::sockets::sockaddrs& bind_t int timeout = tag->getInt("defer", 0); if (timeout && !rv) { -#ifdef USE_TCP_DEFER_ACCEPT +#if defined TCP_DEFER_ACCEPT setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &timeout, sizeof(timeout)); -#elif defined USE_SO_ACCEPTFILTER +#elif defined SO_ACCEPTFILTER struct accept_filter_arg afa; memset(&afa, 0, sizeof(afa)); strcpy(afa.af_name, "dataready"); |