diff options
| -rw-r--r-- | bgpd/bgp_packet.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 2d62c8da..968c8e4d 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -1411,14 +1411,16 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)    /* Peer BGP version check. */    if (version != BGP_VERSION_4)      { -      u_int8_t maxver = BGP_VERSION_4; +      u_int16_t maxver = htons(BGP_VERSION_4); +      /* XXX this reply may not be correct if version < 4  XXX */        if (BGP_DEBUG (normal, NORMAL))  	zlog_debug ("%s bad protocol version, remote requested %d, local request %d",  		   peer->host, version, BGP_VERSION_4); +      /* Data must be in network byte order here */        bgp_notify_send_with_data (peer,   				 BGP_NOTIFY_OPEN_ERR,   				 BGP_NOTIFY_OPEN_UNSUP_VERSION, -				 &maxver, 1); +				 (u_int8_t *) &maxver, 2);        return -1;      }  | 
