libnetlink: code shrink
No binary (build failed)
—
(log yok)
| @@ -1,14 +1,13 @@ | |
| /* vi: set sw=4 ts=4: */ | |
| /* | |
| - | * libnetlink.c RTnetlink service routines. |
| + | * RTnetlink service routines. |
| * | |
| - | * This program is free software; you can redistribute it and/or |
| - | * modify it under the terms of the GNU General Public License |
| - | * as published by the Free Software Foundation; either version |
| - | * 2 of the License, or (at your option) any later version. |
| - | * |
| - | * Authors: Alexey Kuznetsov, <[email protected]> |
| + | * This program is free software; you can redistribute it and/or |
| + | * modify it under the terms of the GNU General Public License |
| + | * as published by the Free Software Foundation; either version |
| + | * 2 of the License, or (at your option) any later version. |
| * | |
| + | * Authors: Alexey Kuznetsov, <[email protected]> |
| */ | |
| #include <sys/socket.h> | |
| @@ -17,12 +16,7 @@ | |
| #include "libbb.h" | |
| #include "libnetlink.h" | |
| - | void FAST_FUNC rtnl_close(struct rtnl_handle *rth) |
| - | { |
| - | close(rth->fd); |
| - | } |
| - | |
| - | int FAST_FUNC xrtnl_open(struct rtnl_handle *rth/*, unsigned subscriptions*/) |
| + | void FAST_FUNC xrtnl_open(struct rtnl_handle *rth/*, unsigned subscriptions*/) |
| { | |
| socklen_t addr_len; | |
| @@ -44,7 +38,6 @@ int FAST_FUNC xrtnl_open(struct rtnl_handle *rth/*, unsigned subscriptions*/) | |
| bb_error_msg_and_die("wrong address family %d", rth->local.nl_family); | |
| */ | |
| rth->seq = time(NULL); | |
| - | return 0; |
| } | |
| int FAST_FUNC xrtnl_wilddump_request(struct rtnl_handle *rth, int family, int type) | |
| @@ -53,10 +46,6 @@ int FAST_FUNC xrtnl_wilddump_request(struct rtnl_handle *rth, int family, int ty | |
| struct nlmsghdr nlh; | |
| struct rtgenmsg g; | |
| } req; | |
| - | struct sockaddr_nl nladdr; |
| - | |
| - | memset(&nladdr, 0, sizeof(nladdr)); |
| - | nladdr.nl_family = AF_NETLINK; |
| req.nlh.nlmsg_len = sizeof(req); | |
| req.nlh.nlmsg_type = type; | |
| @@ -65,8 +54,7 @@ int FAST_FUNC xrtnl_wilddump_request(struct rtnl_handle *rth, int family, int ty | |
| req.nlh.nlmsg_seq = rth->dump = ++rth->seq; | |
| req.g.rtgen_family = family; | |
| - | return xsendto(rth->fd, (void*)&req, sizeof(req), |
| - | (struct sockaddr*)&nladdr, sizeof(nladdr)); |
| + | return rtnl_send(rth, (void*)&req, sizeof(req)); |
| } | |
| int FAST_FUNC rtnl_send(struct rtnl_handle *rth, char *buf, int len) | |
| @@ -339,8 +327,10 @@ int FAST_FUNC addattr32(struct nlmsghdr *n, int maxlen, int type, uint32_t data) | |
| { | |
| int len = RTA_LENGTH(4); | |
| struct rtattr *rta; | |
| - | if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) |
| + | |
| + | if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) { |
| return -1; | |
| + | } |
| rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len)); | |
| rta->rta_type = type; | |
| rta->rta_len = len; | |
| @@ -354,8 +344,9 @@ int FAST_FUNC addattr_l(struct nlmsghdr *n, int maxlen, int type, void *data, in | |
| int len = RTA_LENGTH(alen); | |
| struct rtattr *rta; | |
| - | if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) |
| + | if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) { |
| return -1; | |
| + | } |
| rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len)); | |
| rta->rta_type = type; | |
| rta->rta_len = len; | |
| @@ -397,7 +388,7 @@ int FAST_FUNC rta_addattr_l(struct rtattr *rta, int maxlen, int type, void *data | |
| } | |
| - | int FAST_FUNC parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len) |
| + | void FAST_FUNC parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len) |
| { | |
| while (RTA_OK(rta, len)) { | |
| if (rta->rta_type <= max) { | |
| @@ -408,5 +399,4 @@ int FAST_FUNC parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int | |
| if (len) { | |
| bb_error_msg("deficit %d, rta_len=%d!", len, rta->rta_len); | |
| } | |
| - | return 0; |
| } | |
| @@ -18,8 +18,8 @@ struct rtnl_handle { | |
| uint32_t dump; | |
| }; | |
| - | extern int xrtnl_open(struct rtnl_handle *rth) FAST_FUNC; |
| - | extern void rtnl_close(struct rtnl_handle *rth) FAST_FUNC; |
| + | extern void xrtnl_open(struct rtnl_handle *rth) FAST_FUNC; |
| + | #define rtnl_close(rth) (close((rth)->fd)) |
| extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) FAST_FUNC; | |
| extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) FAST_FUNC; | |
| extern int xrtnl_dump_filter(struct rtnl_handle *rth, | |
| @@ -42,7 +42,7 @@ extern int addattr_l(struct nlmsghdr *n, int maxlen, int type, void *data, int a | |
| extern int rta_addattr32(struct rtattr *rta, int maxlen, int type, uint32_t data) FAST_FUNC; | |
| extern int rta_addattr_l(struct rtattr *rta, int maxlen, int type, void *data, int alen) FAST_FUNC; | |
| - | extern int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len) FAST_FUNC; |
| + | extern void parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len) FAST_FUNC; |
| POP_SAVED_FUNCTION_VISIBILITY | |