diff options
Diffstat (limited to 'sbin/ifconfig/ifstf.c')
-rw-r--r-- | sbin/ifconfig/ifstf.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/sbin/ifconfig/ifstf.c b/sbin/ifconfig/ifstf.c index f6c3cb5d5447..a99592b4801f 100644 --- a/sbin/ifconfig/ifstf.c +++ b/sbin/ifconfig/ifstf.c @@ -52,26 +52,24 @@ #include "ifconfig.h" static int -do_cmd(int sock, u_long op, void *arg, size_t argsize, int set) +do_cmd(if_ctx *ctx, u_long op, void *arg, size_t argsize, int set) { - struct ifdrv ifd; + struct ifdrv ifd = {}; - memset(&ifd, 0, sizeof(ifd)); - - strlcpy(ifd.ifd_name, ifr.ifr_name, sizeof(ifd.ifd_name)); + strlcpy(ifd.ifd_name, ctx->ifname, sizeof(ifd.ifd_name)); ifd.ifd_cmd = op; ifd.ifd_len = argsize; ifd.ifd_data = arg; - return (ioctl(sock, set ? SIOCSDRVSPEC : SIOCGDRVSPEC, &ifd)); + return (ioctl_ctx(ctx, set ? SIOCSDRVSPEC : SIOCGDRVSPEC, &ifd)); } static void -stf_status(int s) +stf_status(if_ctx *ctx) { struct stfv4args param; - if (do_cmd(s, STF6RD_GV4NET, ¶m, sizeof(param), 0) < 0) + if (do_cmd(ctx, STF6RD_GV4NET, ¶m, sizeof(param), 0) < 0) return; printf("\tv4net %s/%d -> ", inet_ntoa(param.srcv4_addr), @@ -80,7 +78,7 @@ stf_status(int s) } static void -setstf_br(const char *val, int d, int s, const struct afswtch *afp) +setstf_br(if_ctx *ctx, const char *val, int d __unused) { struct stfv4args req; struct sockaddr_in sin; @@ -94,12 +92,12 @@ setstf_br(const char *val, int d, int s, const struct afswtch *afp) errx(1, "%s: bad value", val); req.braddr = sin.sin_addr; - if (do_cmd(s, STF6RD_SBR, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, STF6RD_SBR, &req, sizeof(req), 1) < 0) err(1, "STF6RD_SBR%s", val); } static void -setstf_set(const char *val, int d, int s, const struct afswtch *afp) +setstf_set(if_ctx *ctx, const char *val, int d __unused) { struct stfv4args req; struct sockaddr_in sin; @@ -126,7 +124,7 @@ setstf_set(const char *val, int d, int s, const struct afswtch *afp) errx(1, "%s: bad value", val); memcpy(&req.srcv4_addr, &sin.sin_addr, sizeof(req.srcv4_addr)); - if (do_cmd(s, STF6RD_SV4NET, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, STF6RD_SV4NET, &req, sizeof(req), 1) < 0) err(1, "STF6RD_SV4NET %s", val); } @@ -144,9 +142,7 @@ static struct afswtch af_stf = { static __constructor void stf_ctor(void) { - int i; - - for (i = 0; i < nitems(stf_cmds); i++) + for (size_t i = 0; i < nitems(stf_cmds); i++) cmd_register(&stf_cmds[i]); af_register(&af_stf); } |