]> granicus.if.org Git - icinga2/commitdiff
Set SO_REUSEADDR for listeners.
authorGunnar Beutner <gunnar.beutner@netways.de>
Thu, 19 Apr 2012 07:18:54 +0000 (09:18 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 19 Apr 2012 07:31:24 +0000 (09:31 +0200)
base/tcpsocket.cpp
icinga/icingaapplication.cpp

index dc23176ca8118b54415937c0ad882ea342f1ecdd..1d8b6dcbac0e430be135b3b428e290b2e00c1ba7 100644 (file)
@@ -29,8 +29,12 @@ void TCPSocket::Bind(unsigned short port)
 
 void TCPSocket::Bind(const char *hostname, unsigned short port)
 {
-       sockaddr_in sin;
+#ifndef _WIN32
+       const int optTrue = 1;
+       setsockopt(GetFD(), SOL_SOCKET, SO_REUSEADDR, (char *)&optTrue, sizeof(optTrue));
+#endif /* _WIN32 */
 
+       sockaddr_in sin;
        memset(&sin, 0, sizeof(sin));
        sin.sin_family = AF_INET;
        sin.sin_addr.s_addr = hostname ? inet_addr(hostname) : htonl(INADDR_ANY);
index a8402365419006886edff333903d714e3a8b8008..235d44292ce0e405f3bd4a7cb31510bbac101801 100644 (file)
@@ -67,7 +67,7 @@ int IcingaApplication::Main(const vector<string>& args)
        m_TestEndpoint->RegisterMethodSource("test");
 
        m_TestTimer = make_shared<Timer>();
-       m_TestTimer->SetInterval(5);
+       m_TestTimer->SetInterval(1);
        m_TestTimer->OnTimerExpired += bind_weak(&IcingaApplication::TestTimerHandler, shared_from_this());
        m_TestTimer->Start();
 
@@ -84,7 +84,7 @@ int IcingaApplication::TestTimerHandler(const TimerEventArgs& tea)
        request.SetVersion("2.0");
        request.SetMethod("test");
 
-       for (int i = 0; i < 1000; i++)
+       for (int i = 0; i < 10000; i++)
                m_EndpointManager->SendMulticastRequest(m_TestEndpoint, request);
 
        return 0;