#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)
{
- frr_elevate_privs(&ospf6d_privs) {
+ frr_with_privs(&ospf6d_privs) {
ospf6_sock = socket(AF_INET6, SOCK_RAW, IPPROTO_OSPFIGP);
if (ospf6_sock < 0) {
assert(dst);
assert(*ifindex);
+ memset(&cmsgbuf, 0, sizeof(cmsgbuf));
scmsgp = (struct cmsghdr *)&cmsgbuf;
pktinfo = (struct in6_pktinfo *)(CMSG_DATA(scmsgp));
memset(&dst_sin6, 0, sizeof(struct sockaddr_in6));