]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Only send data if we have something to send 254/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 3 Mar 2017 15:24:15 +0000 (10:24 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 7 Mar 2017 00:40:26 +0000 (19:40 -0500)
When shutting down, only send with data if we have
something to send.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgpd.c

index 745b86c4ee9cb8a9cff87a660c8cdf8f8beece48..095f0fce6f6084a413b0f9f688a89ede47571d7d 100644 (file)
@@ -3825,14 +3825,20 @@ peer_flag_modify_action (struct peer *peer, u_int32_t flag)
               if (msglen > 128)
                  msglen = 128;
 
-              u_char msgbuf[129];
+              if (msglen)
+                {
+                  u_char msgbuf[129];
 
-              msgbuf[0] = msglen;
-              memcpy(msgbuf + 1, msg, msglen);
+                  msgbuf[0] = msglen;
+                  memcpy(msgbuf + 1, msg, msglen);
 
-              bgp_notify_send_with_data (peer, BGP_NOTIFY_CEASE,
-                                         BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN,
-                                         msgbuf, msglen + 1);
+                  bgp_notify_send_with_data (peer, BGP_NOTIFY_CEASE,
+                                             BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN,
+                                             msgbuf, msglen + 1);
+                }
+              else
+                bgp_notify_send (peer, BGP_NOTIFY_CEASE,
+                                 BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN);
             }
          else
             bgp_session_reset(peer);