mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 11:18:43 +00:00
commit
c7a754408e
@ -10708,6 +10708,7 @@ DEFUN (show_ip_bgp_regexp,
|
|||||||
if (argv_find(argv, argc, "REGEX", &idx))
|
if (argv_find(argv, argc, "REGEX", &idx))
|
||||||
regstr = argv[idx]->arg;
|
regstr = argv[idx]->arg;
|
||||||
|
|
||||||
|
assert(regstr);
|
||||||
return bgp_show_regexp(vty, bgp, (const char *)regstr, afi, safi,
|
return bgp_show_regexp(vty, bgp, (const char *)regstr, afi, safi,
|
||||||
bgp_show_type_regexp, uj);
|
bgp_show_type_regexp, uj);
|
||||||
}
|
}
|
||||||
|
@ -9593,8 +9593,7 @@ static void bgp_show_neighbor_graceful_restart_capability_per_afi_safi(
|
|||||||
get_afi_safi_str(afi, safi, false));
|
get_afi_safi_str(afi, safi, false));
|
||||||
|
|
||||||
vty_out(vty, " F bit : ");
|
vty_out(vty, " F bit : ");
|
||||||
} else
|
}
|
||||||
get_afi_safi_str(afi, safi, true);
|
|
||||||
|
|
||||||
if (peer->nsf[afi][safi]
|
if (peer->nsf[afi][safi]
|
||||||
&& CHECK_FLAG(peer->af_cap[afi][safi],
|
&& CHECK_FLAG(peer->af_cap[afi][safi],
|
||||||
|
24
lib/agentx.c
24
lib/agentx.c
@ -55,28 +55,42 @@ static int agentx_timeout(struct thread *t)
|
|||||||
static int agentx_read(struct thread *t)
|
static int agentx_read(struct thread *t)
|
||||||
{
|
{
|
||||||
fd_set fds;
|
fd_set fds;
|
||||||
int flags;
|
int flags, new_flags = 0;
|
||||||
int nonblock = false;
|
int nonblock = false;
|
||||||
struct listnode *ln = THREAD_ARG(t);
|
struct listnode *ln = THREAD_ARG(t);
|
||||||
list_delete_node(events, ln);
|
list_delete_node(events, ln);
|
||||||
|
|
||||||
/* fix for non blocking socket */
|
/* fix for non blocking socket */
|
||||||
flags = fcntl(THREAD_FD(t), F_GETFL, 0);
|
flags = fcntl(THREAD_FD(t), F_GETFL, 0);
|
||||||
if (-1 == flags)
|
if (-1 == flags) {
|
||||||
|
flog_err(EC_LIB_SYSTEM_CALL, "Failed to get FD settings fcntl: %s(%d)",
|
||||||
|
strerror(errno), errno);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & O_NONBLOCK)
|
if (flags & O_NONBLOCK)
|
||||||
nonblock = true;
|
nonblock = true;
|
||||||
else
|
else
|
||||||
fcntl(THREAD_FD(t), F_SETFL, flags | O_NONBLOCK);
|
new_flags = fcntl(THREAD_FD(t), F_SETFL, flags | O_NONBLOCK);
|
||||||
|
|
||||||
|
if (new_flags == -1)
|
||||||
|
flog_err(EC_LIB_SYSTEM_CALL, "Failed to set snmp fd non blocking: %s(%d)",
|
||||||
|
strerror(errno), errno);
|
||||||
|
|
||||||
FD_ZERO(&fds);
|
FD_ZERO(&fds);
|
||||||
FD_SET(THREAD_FD(t), &fds);
|
FD_SET(THREAD_FD(t), &fds);
|
||||||
snmp_read(&fds);
|
snmp_read(&fds);
|
||||||
|
|
||||||
/* Reset the flag */
|
/* Reset the flag */
|
||||||
if (!nonblock)
|
if (!nonblock) {
|
||||||
fcntl(THREAD_FD(t), F_SETFL, flags);
|
new_flags = fcntl(THREAD_FD(t), F_SETFL, flags);
|
||||||
|
|
||||||
|
if (new_flags == -1)
|
||||||
|
flog_err(
|
||||||
|
EC_LIB_SYSTEM_CALL,
|
||||||
|
"Failed to set snmp fd back to original settings: %s(%d)",
|
||||||
|
strerror(errno), errno);
|
||||||
|
}
|
||||||
|
|
||||||
netsnmp_check_outstanding_agent_requests();
|
netsnmp_check_outstanding_agent_requests();
|
||||||
agentx_events_update();
|
agentx_events_update();
|
||||||
|
@ -1489,7 +1489,7 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
|
|||||||
* resolved by a route NH1. The exception is if the route is a
|
* resolved by a route NH1. The exception is if the route is a
|
||||||
* host route.
|
* host route.
|
||||||
*/
|
*/
|
||||||
if (top && rn == top)
|
if (rn == top)
|
||||||
if (((afi == AFI_IP) && (rn->p.prefixlen != 32))
|
if (((afi == AFI_IP) && (rn->p.prefixlen != 32))
|
||||||
|| ((afi == AFI_IP6) && (rn->p.prefixlen != 128))) {
|
|| ((afi == AFI_IP6) && (rn->p.prefixlen != 128))) {
|
||||||
if (IS_ZEBRA_DEBUG_RIB_DETAILED)
|
if (IS_ZEBRA_DEBUG_RIB_DETAILED)
|
||||||
|
Loading…
Reference in New Issue
Block a user