change according to remarks of marckleinebudde (C99 struct initializers, etc.)
parent
2ca7d6fd2e
commit
b4bba50c54
44
candump.c
44
candump.c
|
|
@ -159,6 +159,7 @@ void sigterm(int signo)
|
|||
int is_idx_cached(int ifidx) {
|
||||
int cached = 0;
|
||||
int i;
|
||||
|
||||
for (i=0; i < MAXIFNAMES; i++) {
|
||||
if (dindex[i] == ifidx) {
|
||||
cached = 1;
|
||||
|
|
@ -223,19 +224,20 @@ static int send_dump_request(int fd, int family, int type)
|
|||
struct get_req {
|
||||
struct nlmsghdr n;
|
||||
struct rtgenmsg g;
|
||||
} req;
|
||||
} req = {
|
||||
.n = {
|
||||
.nlmsg_len = sizeof(req),
|
||||
.nlmsg_type = type,
|
||||
.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT | NLM_F_MATCH,
|
||||
.nlmsg_pid = 0,
|
||||
.nlmsg_seq = 0
|
||||
},
|
||||
.g = {
|
||||
.rtgen_family = family
|
||||
}
|
||||
};
|
||||
|
||||
memset(&req, 0, sizeof(req));
|
||||
|
||||
req.n.nlmsg_len = sizeof(req);
|
||||
req.n.nlmsg_type = type;
|
||||
req.n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT | NLM_F_MATCH;
|
||||
req.n.nlmsg_pid = 0;
|
||||
req.n.nlmsg_seq = 0;
|
||||
|
||||
req.g.rtgen_family = family;
|
||||
|
||||
return send(fd, (void *)&req, sizeof(req), 0);
|
||||
return send(fd, &req, sizeof(req), 0);
|
||||
}
|
||||
/* altern:
|
||||
void netlink_getlink(int nsock) from
|
||||
|
|
@ -282,7 +284,13 @@ int main(int argc, char **argv)
|
|||
struct netlink_struc {
|
||||
int s;
|
||||
struct sockaddr_nl saddr;
|
||||
} netlink_s;
|
||||
} netlink_s = {
|
||||
.s = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE),
|
||||
.saddr = {
|
||||
.nl_family = AF_NETLINK,
|
||||
.nl_groups = RTMGRP_LINK
|
||||
}
|
||||
};
|
||||
|
||||
signal(SIGTERM, sigterm);
|
||||
signal(SIGHUP, sigterm);
|
||||
|
|
@ -451,14 +459,10 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
// netlink to determine down/up
|
||||
memset(&netlink_s.saddr, 0, sizeof(netlink_s.saddr));
|
||||
netlink_s.saddr.nl_family = AF_NETLINK;
|
||||
netlink_s.saddr.nl_groups = RTMGRP_LINK;
|
||||
netlink_s.s = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
|
||||
bind(netlink_s.s, (struct sockaddr *) &netlink_s.saddr, sizeof(netlink_s.saddr));
|
||||
if (send_dump_request(netlink_s.s, AF_PACKET, RTM_GETLINK) < 0) {
|
||||
perror("Cannot send dump request");
|
||||
return ret;
|
||||
return 1;
|
||||
}
|
||||
//altern: netlink_getlink(netlink_s.s);
|
||||
|
||||
|
|
@ -713,11 +717,9 @@ int main(int argc, char **argv)
|
|||
if (nh->nlmsg_type == NLMSG_DONE){
|
||||
break;
|
||||
}
|
||||
if (nh->nlmsg_type == NLMSG_ERROR){
|
||||
if (nh->nlmsg_type == NLMSG_ERROR)
|
||||
continue;
|
||||
}
|
||||
if (nh->nlmsg_type == RTM_NEWLINK) {
|
||||
/*if (nh->nlmsg_type < RTM_NEWADDR){*/
|
||||
struct ifinfomsg *rtif = NLMSG_DATA(nh);
|
||||
|
||||
if (is_idx_cached(rtif->ifi_index)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue