]> git.puffer.fish Git - mirror/frr.git/commitdiff
ospf6d: create an ospf_read_helper function
authorPat Ruddy <pat@voltanet.io>
Wed, 3 Mar 2021 11:17:38 +0000 (11:17 +0000)
committerPat Ruddy <pat@voltanet.io>
Fri, 18 Jun 2021 08:40:42 +0000 (09:40 +0100)
Take the contents of ospf6_receive and split the funtionality that
deals with a single packet receipt and place it in a separate helper
function.
This is the first step in a refactor process to allow the ospf6_read
task to read until failure.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
ospf6d/ospf6_message.c

index 9a1d8b79bc8857aeb0339f92c48bab24271867df..1afcf78a8ff6e66a1038dc75163c68ba6e0c86a8 100644 (file)
@@ -1572,23 +1572,14 @@ void ospf6_message_terminate(void)
        iobuflen = 0;
 }
 
-int ospf6_receive(struct thread *thread)
+static int ospf6_read_helper(int sockfd, struct ospf6 *ospf6)
 {
-       int sockfd;
        unsigned int len;
        struct in6_addr src, dst;
        ifindex_t ifindex;
        struct iovec iovector[2];
        struct ospf6_interface *oi;
        struct ospf6_header *oh;
-       struct ospf6 *ospf6;
-
-       /* add next read thread */
-       ospf6 = THREAD_ARG(thread);
-       sockfd = THREAD_FD(thread);
-
-       thread_add_read(master, ospf6_receive, ospf6, ospf6->fd,
-                       &ospf6->t_ospf6_receive);
 
        /* initialize */
        memset(&src, 0, sizeof(src));
@@ -1689,6 +1680,21 @@ int ospf6_receive(struct thread *thread)
        return 0;
 }
 
+int ospf6_receive(struct thread *thread)
+{
+       int sockfd;
+       struct ospf6 *ospf6;
+
+       /* add next read thread */
+       ospf6 = THREAD_ARG(thread);
+       sockfd = THREAD_FD(thread);
+
+       thread_add_read(master, ospf6_receive, ospf6, ospf6->fd,
+                       &ospf6->t_ospf6_receive);
+
+       return ospf6_read_helper(sockfd, ospf6);
+}
+
 static void ospf6_send(struct in6_addr *src, struct in6_addr *dst,
                       struct ospf6_interface *oi, struct ospf6_header *oh)
 {