mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-02 12:22:47 +00:00
commit
4ed0abcb55
@ -240,14 +240,14 @@ DEFPY (show_ip_eigrp_interfaces,
|
||||
struct eigrp *eigrp;
|
||||
|
||||
if (vrf && strncmp(vrf, "all", sizeof("all")) == 0) {
|
||||
struct vrf *vrf;
|
||||
struct vrf *v;
|
||||
|
||||
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
|
||||
eigrp = eigrp_lookup(vrf->vrf_id);
|
||||
RB_FOREACH (v, vrf_name_head, &vrfs_by_name) {
|
||||
eigrp = eigrp_lookup(v->vrf_id);
|
||||
if (!eigrp)
|
||||
continue;
|
||||
|
||||
vty_out(vty, "VRF %s:\n", vrf->name);
|
||||
vty_out(vty, "VRF %s:\n", v->name);
|
||||
|
||||
eigrp_interface_helper(vty, eigrp, ifname, detail);
|
||||
}
|
||||
|
@ -429,7 +429,6 @@ static char *zencrypt(const char *passwd)
|
||||
{
|
||||
char salt[6];
|
||||
struct timeval tv;
|
||||
char *crypt(const char *, const char *);
|
||||
|
||||
gettimeofday(&tv, 0);
|
||||
|
||||
|
@ -382,7 +382,6 @@ static void vty_auth(struct vty *vty, char *buf)
|
||||
char *passwd = NULL;
|
||||
enum node_type next_node = 0;
|
||||
int fail;
|
||||
char *crypt(const char *, const char *);
|
||||
|
||||
switch (vty->node) {
|
||||
case AUTH_NODE:
|
||||
|
@ -89,7 +89,7 @@ ssize_t zbuf_read(struct zbuf *zb, int fd, size_t maxlen)
|
||||
zb->tail += r;
|
||||
else if (r == 0)
|
||||
r = -2;
|
||||
else if (r < 0 && ERRNO_IO_RETRY(errno))
|
||||
else if (ERRNO_IO_RETRY(errno))
|
||||
r = 0;
|
||||
|
||||
return r;
|
||||
@ -109,7 +109,7 @@ ssize_t zbuf_write(struct zbuf *zb, int fd)
|
||||
zbuf_reset(zb);
|
||||
} else if (r == 0)
|
||||
r = -2;
|
||||
else if (r < 0 && ERRNO_IO_RETRY(errno))
|
||||
else if (ERRNO_IO_RETRY(errno))
|
||||
r = 0;
|
||||
|
||||
return r;
|
||||
@ -128,7 +128,7 @@ ssize_t zbuf_recv(struct zbuf *zb, int fd)
|
||||
zb->tail += r;
|
||||
else if (r == 0)
|
||||
r = -2;
|
||||
else if (r < 0 && ERRNO_IO_RETRY(errno))
|
||||
else if (ERRNO_IO_RETRY(errno))
|
||||
r = 0;
|
||||
return r;
|
||||
}
|
||||
|
@ -165,8 +165,6 @@ static uint32_t ospf6_interface_get_cost(struct ospf6_interface *oi)
|
||||
cost = (uint32_t)((double)refbw / (double)bw + (double)0.5);
|
||||
if (cost < 1)
|
||||
cost = 1;
|
||||
else if (cost > UINT32_MAX)
|
||||
cost = UINT32_MAX;
|
||||
}
|
||||
|
||||
return cost;
|
||||
|
@ -21,7 +21,6 @@ import os
|
||||
import subprocess
|
||||
import re
|
||||
import argparse
|
||||
import subprocess
|
||||
import json
|
||||
|
||||
structs = ['xref', 'xref_logmsg', 'xref_threadsched', 'xref_install_element', 'xrefdata', 'xrefdata_logmsg', 'cmd_element']
|
||||
|
@ -255,66 +255,59 @@ ns_id_t zebra_ns_id_get(const char *netnspath, int fd_param)
|
||||
}
|
||||
}
|
||||
|
||||
if (ret <= 0) {
|
||||
if (errno != EEXIST && ret != 0) {
|
||||
flog_err(
|
||||
EC_LIB_SOCKET,
|
||||
"netlink( %u) recvfrom() error 2 when reading: %s",
|
||||
fd, safe_strerror(errno));
|
||||
close(sock);
|
||||
if (netnspath)
|
||||
close(fd);
|
||||
if (errno == ENOTSUP) {
|
||||
zlog_debug("NEWNSID locally generated");
|
||||
return zebra_ns_id_get_fallback(netnspath);
|
||||
}
|
||||
return NS_UNKNOWN;
|
||||
if (errno != EEXIST && ret != 0) {
|
||||
flog_err(EC_LIB_SOCKET,
|
||||
"netlink( %u) recvfrom() error 2 when reading: %s", fd,
|
||||
safe_strerror(errno));
|
||||
close(sock);
|
||||
if (netnspath)
|
||||
close(fd);
|
||||
if (errno == ENOTSUP) {
|
||||
zlog_debug("NEWNSID locally generated");
|
||||
return zebra_ns_id_get_fallback(netnspath);
|
||||
}
|
||||
/* message to send to netlink : GETNSID */
|
||||
memset(buf, 0, NETLINK_SOCKET_BUFFER_SIZE);
|
||||
nlh = initiate_nlh(buf, &seq, RTM_GETNSID);
|
||||
rt = (struct rtgenmsg *)(buf + nlh->nlmsg_len);
|
||||
nlh->nlmsg_len += NETLINK_ALIGN(sizeof(struct rtgenmsg));
|
||||
rt->rtgen_family = AF_UNSPEC;
|
||||
|
||||
nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_FD, fd);
|
||||
nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_NSID,
|
||||
ns_id);
|
||||
|
||||
ret = send_receive(sock, nlh, seq, buf);
|
||||
if (ret < 0) {
|
||||
close(sock);
|
||||
if (netnspath)
|
||||
close(fd);
|
||||
return NS_UNKNOWN;
|
||||
}
|
||||
nlh = (struct nlmsghdr *)buf;
|
||||
len = ret;
|
||||
ret = 0;
|
||||
do {
|
||||
if (nlh->nlmsg_type >= NLMSG_MIN_TYPE) {
|
||||
return_nsid = extract_nsid(nlh, buf);
|
||||
if (return_nsid != NS_UNKNOWN)
|
||||
break;
|
||||
} else if (nlh->nlmsg_type == NLMSG_ERROR) {
|
||||
struct nlmsgerr *err =
|
||||
(struct nlmsgerr
|
||||
*)((char *)nlh
|
||||
+ NETLINK_ALIGN(sizeof(
|
||||
struct
|
||||
nlmsghdr)));
|
||||
if (err->error < 0)
|
||||
errno = -err->error;
|
||||
else
|
||||
errno = err->error;
|
||||
break;
|
||||
}
|
||||
len = len - NETLINK_ALIGN(nlh->nlmsg_len);
|
||||
nlh = (struct nlmsghdr *)((char *)nlh
|
||||
+ NETLINK_ALIGN(
|
||||
nlh->nlmsg_len));
|
||||
} while (len != 0 && ret == 0);
|
||||
return NS_UNKNOWN;
|
||||
}
|
||||
/* message to send to netlink : GETNSID */
|
||||
memset(buf, 0, NETLINK_SOCKET_BUFFER_SIZE);
|
||||
nlh = initiate_nlh(buf, &seq, RTM_GETNSID);
|
||||
rt = (struct rtgenmsg *)(buf + nlh->nlmsg_len);
|
||||
nlh->nlmsg_len += NETLINK_ALIGN(sizeof(struct rtgenmsg));
|
||||
rt->rtgen_family = AF_UNSPEC;
|
||||
|
||||
nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_FD, fd);
|
||||
nl_attr_put32(nlh, NETLINK_SOCKET_BUFFER_SIZE, NETNSA_NSID, ns_id);
|
||||
|
||||
ret = send_receive(sock, nlh, seq, buf);
|
||||
if (ret < 0) {
|
||||
close(sock);
|
||||
if (netnspath)
|
||||
close(fd);
|
||||
return NS_UNKNOWN;
|
||||
}
|
||||
nlh = (struct nlmsghdr *)buf;
|
||||
len = ret;
|
||||
ret = 0;
|
||||
do {
|
||||
if (nlh->nlmsg_type >= NLMSG_MIN_TYPE) {
|
||||
return_nsid = extract_nsid(nlh, buf);
|
||||
if (return_nsid != NS_UNKNOWN)
|
||||
break;
|
||||
} else if (nlh->nlmsg_type == NLMSG_ERROR) {
|
||||
struct nlmsgerr *err =
|
||||
(struct nlmsgerr *)((char *)nlh +
|
||||
NETLINK_ALIGN(sizeof(
|
||||
struct nlmsghdr)));
|
||||
if (err->error < 0)
|
||||
errno = -err->error;
|
||||
else
|
||||
errno = err->error;
|
||||
break;
|
||||
}
|
||||
len = len - NETLINK_ALIGN(nlh->nlmsg_len);
|
||||
nlh = (struct nlmsghdr *)((char *)nlh +
|
||||
NETLINK_ALIGN(nlh->nlmsg_len));
|
||||
} while (len != 0 && ret == 0);
|
||||
|
||||
if (netnspath)
|
||||
close(fd);
|
||||
|
Loading…
Reference in New Issue
Block a user