change according to remarks of marckleinebudde (C99 struct initializers, etc.)

pull/29/head
ajneu 2016-08-31 13:21:00 +02:00
parent 2ca7d6fd2e
commit b4bba50c54
1 changed files with 28 additions and 26 deletions

View File

@ -159,6 +159,7 @@ void sigterm(int signo)
int is_idx_cached(int ifidx) { int is_idx_cached(int ifidx) {
int cached = 0; int cached = 0;
int i; int i;
for (i=0; i < MAXIFNAMES; i++) { for (i=0; i < MAXIFNAMES; i++) {
if (dindex[i] == ifidx) { if (dindex[i] == ifidx) {
cached = 1; cached = 1;
@ -220,22 +221,23 @@ int idx2dindex(int ifidx, int socket) {
// http://git.pengutronix.de/?p=tools/libsocketcan.git;a=blob;f=src/libsocketcan.c;hb=HEAD // http://git.pengutronix.de/?p=tools/libsocketcan.git;a=blob;f=src/libsocketcan.c;hb=HEAD
static int send_dump_request(int fd, int family, int type) static int send_dump_request(int fd, int family, int type)
{ {
struct get_req { struct get_req {
struct nlmsghdr n; struct nlmsghdr n;
struct rtgenmsg g; 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)); return send(fd, &req, sizeof(req), 0);
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);
} }
/* altern: /* altern:
void netlink_getlink(int nsock) from void netlink_getlink(int nsock) from
@ -282,7 +284,13 @@ int main(int argc, char **argv)
struct netlink_struc { struct netlink_struc {
int s; int s;
struct sockaddr_nl saddr; 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(SIGTERM, sigterm);
signal(SIGHUP, sigterm); signal(SIGHUP, sigterm);
@ -451,14 +459,10 @@ int main(int argc, char **argv)
} }
// netlink to determine down/up // 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)); 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) { if (send_dump_request(netlink_s.s, AF_PACKET, RTM_GETLINK) < 0) {
perror("Cannot send dump request"); perror("Cannot send dump request");
return ret; return 1;
} }
//altern: netlink_getlink(netlink_s.s); //altern: netlink_getlink(netlink_s.s);
@ -713,11 +717,9 @@ int main(int argc, char **argv)
if (nh->nlmsg_type == NLMSG_DONE){ if (nh->nlmsg_type == NLMSG_DONE){
break; break;
} }
if (nh->nlmsg_type == NLMSG_ERROR){ if (nh->nlmsg_type == NLMSG_ERROR)
continue; continue;
}
if (nh->nlmsg_type == RTM_NEWLINK) { if (nh->nlmsg_type == RTM_NEWLINK) {
/*if (nh->nlmsg_type < RTM_NEWADDR){*/
struct ifinfomsg *rtif = NLMSG_DATA(nh); struct ifinfomsg *rtif = NLMSG_DATA(nh);
if (is_idx_cached(rtif->ifi_index)) { if (is_idx_cached(rtif->ifi_index)) {
@ -726,7 +728,7 @@ int main(int argc, char **argv)
const int will_exit = (down_causes_exit && !(rtif->ifi_flags&IFF_RUNNING)); const int will_exit = (down_causes_exit && !(rtif->ifi_flags&IFF_RUNNING));
if (report_down_up || will_exit) { if (report_down_up || will_exit) {
printf("#%*s is %s\n", max_devname_len, ifname, printf("# %*s is %s\n", max_devname_len, ifname,
(rtif->ifi_flags&IFF_RUNNING) ? "up" : "down"); (rtif->ifi_flags&IFF_RUNNING) ? "up" : "down");
fflush(stdout); fflush(stdout);
} }
@ -756,7 +758,7 @@ int main(int argc, char **argv)
if (errno == ENETDOWN) { if (errno == ENETDOWN) {
if (down_causes_exit) { if (down_causes_exit) {
//if (!report_down_up) { /* no previous reporting message, so report here before exit */ //if (!report_down_up) { /* no previous reporting message, so report here before exit */
printf("#%*s is down!\n", max_devname_len, devname[idx]); printf("# %*s is down!\n", max_devname_len, devname[idx]);
//} //}
} else { } else {
continue; continue;