X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/35c8b547dde529693875087d67fa60bf88319d2b..101acb51a8d63adc10e76027bc25503df8c55a1f:/server/admin.c?ds=sidebyside diff --git a/server/admin.c b/server/admin.c index 0fb57cd8..487010e1 100644 --- a/server/admin.c +++ b/server/admin.c @@ -1250,6 +1250,7 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) add = xmalloc(sizeof(*add)); add->peer.name = 0; add->peer.tag = 0; + add->peer.privtag = 0; add->peer.t_ka = 0; add->peer.tops = tun_default; add->peer.f = 0; @@ -1279,6 +1280,11 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) add->peer.tag = xstrdup(arg); }) OPT("-mobile", { add->peer.f |= PSF_MOBILE; }) + OPTARG("-priv", arg, { + if (add->peer.privtag) + xfree(add->peer.privtag); + add->peer.privtag = xstrdup(arg); + }) }); /* --- Make sure someone's not got there already --- */ @@ -1304,6 +1310,7 @@ bad_syntax: fail: if (add->peer.name) xfree(add->peer.name); if (add->peer.tag) xfree(add->peer.tag); + if (add->peer.privtag) xfree(add->peer.privtag); xfree(add); return; } @@ -1824,11 +1831,16 @@ static void acmd_peerinfo(admin *a, unsigned ac, char *av[]) { peer *p; const peerspec *ps; + const char *ptag; if ((p = a_findpeer(a, av[0])) != 0) { ps = p_spec(p); a_info(a, "tunnel=%s", ps->tops->name, A_END); - a_info(a, "key=%s", p_tag(p), A_END); + a_info(a, "key=%s", p_tag(p), + "current-key=%s", p->kx.kpub->tag, A_END); + if ((ptag = p_privtag(p)) == 0) ptag = "(default)"; + a_info(a, "private-key=%s", ptag, + "current-private-key=%s", p->kx.kpriv->tag, A_END); a_info(a, "keepalive=%lu", ps->t_ka, A_END); a_ok(a); }