]> git.proxmox.com Git - mirror_frr.git/blobdiff - ldpd/packet.c
Merge pull request #3069 from donaldsharp/bgp_nexthop_address
[mirror_frr.git] / ldpd / packet.c
index be7f2ba649c6c013863693aae509b38eaf18775b..8ca90841de82e57ce7ead41e2c6dc747016853ad 100644 (file)
@@ -70,7 +70,7 @@ int
 send_packet(int fd, int af, union ldpd_addr *dst, struct iface_af *ia,
     void *pkt, size_t len)
 {
-       struct sockaddr         *sa;
+       union sockunion su;
 
        switch (af) {
        case AF_INET:
@@ -97,10 +97,10 @@ send_packet(int fd, int af, union ldpd_addr *dst, struct iface_af *ia,
                fatalx("send_packet: unknown af");
        }
 
-       sa = addr2sa(af, dst, LDP_PORT);
-       if (sendto(fd, pkt, len, 0, sa, sockaddr_len(sa)) == -1) {
+       addr2sa(af, dst, LDP_PORT, &su);
+       if (sendto(fd, pkt, len, 0, &su.sa, sockaddr_len(&su.sa)) == -1) {
                log_warn("%s: error sending packet to %s", __func__,
-                   log_sockaddr(sa));
+                        log_sockaddr(&su.sa));
                return (-1);
        }
 
@@ -144,7 +144,7 @@ disc_recv_packet(struct thread *thread)
 
        /* reschedule read */
        *threadp = NULL;
-       thread_add_read(master, disc_recv_packet, threadp, fd, &*threadp);
+       thread_add_read(master, disc_recv_packet, threadp, fd, threadp);
 
        /* setup buffer */
        memset(&m, 0, sizeof(m));
@@ -494,7 +494,7 @@ session_read(struct thread *thread)
                        msg_len = ntohs(msg->length);
                        if (msg_len < LDP_MSG_LEN ||
                            (msg_len + LDP_MSG_DEAD_LEN) > pdu_len) {
-                               session_shutdown(nbr, S_BAD_TLV_LEN, msg->id,
+                               session_shutdown(nbr, S_BAD_MSG_LEN, msg->id,
                                    msg->type);
                                free(buf);
                                return (0);