X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/cd2d678ee93ee3cab0c4f0df959489c27e9a8ad5..24898e7eadbac98ac25abbecdb813ceacabefa76:/server/admin.c diff --git a/server/admin.c b/server/admin.c index 0432b8a0..78188f54 100644 --- a/server/admin.c +++ b/server/admin.c @@ -1428,6 +1428,7 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) { const char *tag = 0; admin_addop *add; + const tunnel_ops *tops; /* --- Set stuff up --- */ @@ -1437,7 +1438,7 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) add->peer.privtag = 0; add->peer.knock = 0; add->peer.t_ka = 0; - add->peer.tops = tun_default; + add->peer.tops = p_dflttun(); add->peer.f = 0; /* --- Parse options --- */ @@ -1445,17 +1446,9 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) OPTIONS(ac, av, { OPTARG("-background", arg, { tag = arg; }) OPTARG("-tunnel", arg, { - unsigned i; - for (i = 0;; i++) { - if (!tunnels[i]) { - a_fail(a, "unknown-tunnel", "%s", arg, A_END); - goto fail; - } - if (mystrieq(arg, tunnels[i]->name)) { - add->peer.tops = tunnels[i]; - break; - } - } + if ((tops = p_findtun(arg)) == 0) + { a_fail(a, "unknown-tunnel", "%s", arg, A_END); goto fail; } + add->peer.tops = tops; }) OPTTIME("-keepalive", t, { add->peer.t_ka = t; }) OPT("-cork", { add->peer.f |= KXF_CORK; }) @@ -2144,10 +2137,7 @@ static void acmd_version(admin *a, unsigned ac, char *av[]) static void acmd_tunnels(admin *a, unsigned ac, char *av[]) { - int i; - - for (i = 0; tunnels[i]; i++) - a_info(a, "%s", tunnels[i]->name, A_END); + FOREACH_TUN(tops, { a_info(a, "%s", tops->name, A_END); }); a_ok(a); }