]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ospf6d: closing server socket when leaving ospf6d
authorPhilippe Guibert <philippe.guibert@6wind.com>
Thu, 14 Feb 2019 13:06:41 +0000 (14:06 +0100)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Thu, 14 Feb 2019 17:24:01 +0000 (18:24 +0100)
this commit brings consistency as it closes the socket used to carry
ospfv3 messages.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
ospf6d/ospf6_main.c
ospf6d/ospf6_network.c
ospf6d/ospf6_network.h

index 046badc8248504b40847bd17787d236275fcf61a..289c7dc18c2259bae60875114d95203c77b3a628 100644 (file)
@@ -43,6 +43,7 @@
 #include "ospf6d.h"
 #include "ospf6_top.h"
 #include "ospf6_message.h"
+#include "ospf6_network.h"
 #include "ospf6_asbr.h"
 #include "ospf6_lsa.h"
 #include "ospf6_interface.h"
@@ -97,6 +98,7 @@ static void __attribute__((noreturn)) ospf6_exit(int status)
        ospf6_asbr_terminate();
        ospf6_lsa_terminate();
 
+       ospf6_serv_close();
        /* reverse access_list_init */
        access_list_reset();
 
index 136e931d3d9b994793a50b2ed1b00dff9435f7f1..625ad884f2f7a8d09bb2422af500f7b2882ceb76 100644 (file)
@@ -73,6 +73,15 @@ static void ospf6_set_checksum(void)
 #endif /* DISABLE_IPV6_CHECKSUM */
 }
 
+void ospf6_serv_close(void)
+{
+       if (ospf6_sock > 0) {
+               close(ospf6_sock);
+               ospf6_sock = -1;
+               return;
+       }
+}
+
 /* Make ospf6d's server socket. */
 int ospf6_serv_sock(void)
 {
index 7c7c155fbf64f6d040979905d04735e6cbcd1262..7fe6e33ff2b724f50976861d824f325368b785d5 100644 (file)
@@ -26,6 +26,7 @@ extern struct in6_addr allspfrouters6;
 extern struct in6_addr alldrouters6;
 
 extern int ospf6_serv_sock(void);
+extern void ospf6_serv_close(void);
 extern int ospf6_sso(ifindex_t ifindex, struct in6_addr *group, int option);
 
 extern int ospf6_sendmsg(struct in6_addr *, struct in6_addr *, ifindex_t *,