]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Reschedule the correct interface for incoming packets
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 5 Jun 2017 16:10:31 +0000 (12:10 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 24 Jul 2017 17:51:38 +0000 (13:51 -0400)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_pim.c

index bd6d16c37bddffda8bb83fb0bc9481d40b7bae15..80ce6f066f78a129b1b7393f194a9d64f44c5a96 100644 (file)
@@ -286,7 +286,7 @@ static void pim_sock_read_on(struct interface *ifp);
 
 static int pim_sock_read(struct thread *t)
 {
-       struct interface *ifp;
+       struct interface *ifp, *orig_ifp;
        struct pim_interface *pim_ifp;
        int fd;
        struct sockaddr_in from;
@@ -300,7 +300,7 @@ static int pim_sock_read(struct thread *t)
        static long long count = 0;
        int cont = 1;
 
-       ifp = THREAD_ARG(t);
+       orig_ifp = ifp = THREAD_ARG(t);
        fd = THREAD_FD(t);
 
        pim_ifp = ifp->info;
@@ -344,7 +344,7 @@ static int pim_sock_read(struct thread *t)
        result = 0; /* good */
 
 done:
-       pim_sock_read_on(ifp);
+       pim_sock_read_on(orig_ifp);
 
        if (result) {
                ++pim_ifp->pim_ifstat_hello_recvfail;