X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/blobdiff_plain/8362ac1c9b2fbf253b06a50639c57047d43a8fa2..067aa5f013dd6108e81c1df0c2ed19491802bc69:/server/admin.c?ds=inline diff --git a/server/admin.c b/server/admin.c index 886c672c..54883afa 100644 --- a/server/admin.c +++ b/server/admin.c @@ -551,7 +551,7 @@ void a_quit(void) { close(sock.fd); unlink(sockname); - FOREACH_PEER(p, { p_destroy(p); }); + FOREACH_PEER(p, { p_destroy(p, 1); }); ps_quit(); exit(0); } @@ -1285,11 +1285,12 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) }) OPTTIME("-keepalive", t, { add->peer.t_ka = t; }) OPT("-cork", { add->peer.f |= KXF_CORK; }) + OPT("-ephemeral", { add->peer.f |= PSF_EPHEM; }) OPTARG("-key", arg, { if (add->peer.tag) xfree(add->peer.tag); add->peer.tag = xstrdup(arg); }) - OPT("-mobile", { add->peer.f |= PSF_MOBILE; }) + OPT("-mobile", { add->peer.f |= PSF_MOBILE | PSF_EPHEM; }) OPTARG("-priv", arg, { if (add->peer.privtag) xfree(add->peer.privtag); add->peer.privtag = xstrdup(arg); @@ -1297,6 +1298,7 @@ static void acmd_add(admin *a, unsigned ac, char *av[]) OPTARG("-knock", arg, { if (add->peer.knock) xfree(add->peer.knock); add->peer.knock = xstrdup(arg); + add->peer.f |= PSF_EPHEM; }) }); @@ -1860,6 +1862,7 @@ static void acmd_peerinfo(admin *a, unsigned ac, char *av[]) a_info(a, "keepalive=%lu", ps->t_ka, A_END); a_info(a, "corked=%s", BOOL(p->kx.f&KXF_CORK), "mobile=%s", BOOL(ps->f&PSF_MOBILE), + "ephemeral=%s", BOOL(ps->f&PSF_EPHEM), A_END); a_ok(a); } @@ -1915,7 +1918,7 @@ static void acmd_kill(admin *a, unsigned ac, char *av[]) peer *p; if ((p = a_findpeer(a, av[0])) != 0) { - p_destroy(p); + p_destroy(p, 1); a_ok(a); } }