summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_message.c')
-rw-r--r--ospf6d/ospf6_message.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
index 790fc0ae..51933b76 100644
--- a/ospf6d/ospf6_message.c
+++ b/ospf6d/ospf6_message.c
@@ -832,7 +832,7 @@ ospf6_dbdesc_recv (struct in6_addr *src, struct in6_addr *dst,
((caddr_t) oh + sizeof (struct ospf6_header));
/* Interface MTU check */
- if (ntohs (dbdesc->ifmtu) != oi->ifmtu)
+ if (!oi->mtu_ignore && ntohs (dbdesc->ifmtu) != oi->ifmtu)
{
if (IS_OSPF6_DEBUG_MESSAGE (oh->type, RECV))
zlog_debug ("I/F MTU mismatch");
@@ -1168,6 +1168,24 @@ ospf6_iobuf_size (unsigned int size)
return iobuflen;
}
+void
+ospf6_message_terminate (void)
+{
+ if (recvbuf)
+ {
+ XFREE (MTYPE_OSPF6_MESSAGE, recvbuf);
+ recvbuf = NULL;
+ }
+
+ if (sendbuf)
+ {
+ XFREE (MTYPE_OSPF6_MESSAGE, sendbuf);
+ sendbuf = NULL;
+ }
+
+ iobuflen = 0;
+}
+
int
ospf6_receive (struct thread *thread)
{