aboutsummaryrefslogtreecommitdiff
path: root/sbin/ifconfig/ifstf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/ifconfig/ifstf.c')
-rw-r--r--sbin/ifconfig/ifstf.c26
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, &param, sizeof(param), 0) < 0)
+ if (do_cmd(ctx, STF6RD_GV4NET, &param, 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);
}