[Toybox] [PATCH 2/2] Cleanup setRoute and resolve warnings about alignment and NULL args
Eric Molitor
emolitor at molitor.org
Sun May 31 08:36:12 PDT 2020
Crap, please don't apply as this is broken for IPv6. I will rework them and
resubmit a new set of patches.
- Eric
On Sun, May 31, 2020 at 12:26 PM Eric Molitor <emolitor at molitor.org> wrote:
> ---
> toys/pending/route.c | 17 +++++++----------
> 1 file changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/toys/pending/route.c b/toys/pending/route.c
> index 9c95d996..b37d3ecd 100644
> --- a/toys/pending/route.c
> +++ b/toys/pending/route.c
> @@ -290,20 +290,17 @@ static void setroute(sa_family_t family, char **argv)
> char *targetip;
> int sockfd, arg2_action;
> int action = get_action(&argv, arglist1); //verify the arg for add/del.
> + struct nlmsghdr buf[8192 / sizeof(struct nlmsghdr)];
> + struct nlmsghdr *nlMsg;
> + struct rtmsg *rtMsg;
>
> if (!action || !*argv) help_exit("setroute");
> -
> arg2_action = get_action(&argv, arglist2); //verify the arg for -net or
> -host
> if (!*argv) help_exit("setroute");
> -
> targetip = *argv++;
> -
> - struct nlmsghdr *nlMsg;
> - struct rtmsg *rtMsg;
> -
> sockfd = xsocket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
> - memset(toybuf, 0, sizeof(toybuf));
> - nlMsg = (struct nlmsghdr *) toybuf;
> + memset(buf, 0, sizeof(buf));
> + nlMsg = (struct nlmsghdr *) buf;
> rtMsg = (struct rtmsg *) NLMSG_DATA(nlMsg);
>
> nlMsg->nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
> @@ -350,7 +347,7 @@ static void setroute(sa_family_t family, char **argv)
> } else if (!strcmp(*argv, "reject")) {
> rtMsg->rtm_type = RTN_UNREACHABLE;
> } else {
> - if (!argv[1]) help_exit(0);
> + if (!argv[1]) show_help(stdout, 1);
>
> if (!strcmp(*argv, "metric")) {
> unsigned int priority = atolx_range(argv[1], 0, UINT_MAX);
> @@ -423,7 +420,7 @@ void route_main(void)
> if (!*toys.optargs) {
> if (!strcmp(TT.family, "inet")) display_routes(AF_INET);
> else if (!strcmp(TT.family, "inet6")) display_routes(AF_INET6);
> - else help_exit(0);
> + else show_help(stdout, 1);
> } else {
> if (!strcmp(TT.family, "inet")) setroute(AF_INET, toys.optargs);
> else setroute(AF_INET6, toys.optargs);
> --
> 2.25.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20200531/85adef65/attachment-0001.htm>
More information about the Toybox
mailing list