]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1733] Fixed HA unit test issue
authorThomas Markwalder <tmark@isc.org>
Fri, 9 Apr 2021 11:26:46 +0000 (07:26 -0400)
committerThomas Markwalder <tmark@isc.org>
Mon, 12 Apr 2021 14:37:04 +0000 (10:37 -0400)
src/hooks/dhcp/high_availability/libloadtests/close_unittests.cc
    Set SO_REUSEADDR so back to back runs of HA unit tests do not fail.

src/hooks/dhcp/high_availability/libloadtests/close_unittests.cc

index 67e27b1009af1fbdc992a9fdcce1693da10a875e..04f8b4d4c0cce5995e181c25c05418106d25536d 100644 (file)
@@ -184,6 +184,13 @@ CloseHATest::runPartners() {
         if (fcntl(accept_partner1, F_SETFL, O_NONBLOCK) < 0) {
             isc_throw(Unexpected, "fcntl1 " << strerror(errno));
         }
+
+        int reuse_addr = 1;
+        if (setsockopt(accept_partner1, SOL_SOCKET, SO_REUSEADDR,
+               (char *)&reuse_addr, sizeof(reuse_addr)) < 0) {
+            isc_throw(Unexpected, "partner1 setsocketopt SO_REUSEADDR failed: " << strerror(errno));
+        }
+
         partner.sin_port = htons(18124);
         if (::bind(accept_partner1, SA(&partner), slen) < 0) {
             isc_throw(Unexpected, "bind1 " << strerror(errno));
@@ -199,6 +206,12 @@ CloseHATest::runPartners() {
         if (fcntl(accept_partner2, F_SETFL, O_NONBLOCK) < 0) {
             isc_throw(Unexpected, "fcntl2 " << strerror(errno));
         }
+
+        if (setsockopt(accept_partner2, SOL_SOCKET, SO_REUSEADDR,
+               (char *)&reuse_addr, sizeof(reuse_addr)) < 0) {
+            isc_throw(Unexpected, "partner2 setsocketopt SO_REUSEADDR failed: " << strerror(errno));
+        }
+
         partner.sin_port = htons(18125);
         if (::bind(accept_partner2, SA(&partner), slen) < 0) {
             isc_throw(Unexpected, "bind2 " << strerror(errno));