chiark / gitweb /
server/servutil.c: Add utilities for simple leaky-bucket rate limiting.
[tripe] / server / admin.c
index c9a035a043be6e58a77940683e4d71fdbabda63d..d80992cd368ab4ce0a32afca26a31d3bfb91614c 100644 (file)
@@ -1110,7 +1110,6 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag,
     goto fail;
   }
   r->sa.sin.sin_family = AF_INET;
-  r->sasz = sizeof(r->sa.sin);
   r->addr = xstrdup(av[i]);
   if (!av[i + 1])
     pt = TRIPE_PORT;
@@ -1223,7 +1222,6 @@ static void a_doadd(admin_resop *r, int rc)
   T( trace(T_ADMIN, "admin: done add op %s", BGTAG(add)); )
 
   if (rc == ARES_OK) {
-    add->peer.sasz = add->r.sasz;
     add->peer.sa = add->r.sa;
     if (p_findbyaddr(&add->r.sa))
       a_bgfail(&add->r.bg, "peer-addr-exists", "?ADDR", &add->r.sa, A_END);
@@ -1778,7 +1776,7 @@ static void acmd_getchal(admin *a, unsigned ac, char *av[])
   buf b;
 
   buf_init(&b, buf_i, PKBUFSZ);
-  c_new(&b);
+  c_new(0, 0, &b);
   a_info(a, "?B64", BBASE(&b), (size_t)BLEN(&b), A_END);
   a_ok(a);
 }
@@ -1795,7 +1793,7 @@ static void acmd_checkchal(admin *a, unsigned ac, char *av[])
     a_fail(a, "bad-base64", "%s", codec_strerror(err), A_END);
   else {
     buf_init(&b, d.buf, d.len);
-    if (c_check(&b) || BBAD(&b) || BLEFT(&b))
+    if (c_check(0, 0, &b) || BBAD(&b) || BLEFT(&b))
       a_fail(a, "invalid-challenge", A_END);
     else
       a_ok(a);
@@ -1852,6 +1850,9 @@ static void acmd_peerinfo(admin *a, unsigned ac, char *av[])
     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_info(a, "corked=%s", BOOL(p->kx.f&KXF_CORK),
+          "mobile=%s", BOOL(ps->f&PSF_MOBILE),
+          A_END);
     a_ok(a);
   }
 }
@@ -1981,6 +1982,7 @@ static const acmd acmdtab[] = {
   { "reload",  0,                      0,      0,      acmd_reload },
   { "servinfo",        0,                      0,      0,      acmd_servinfo },
   { "setifname", "PEER NEW-NAME",      2,      2,      acmd_setifname },
+  { "stats",   "PEER",                 1,      1,      acmd_stats },
   { "svcclaim",        "SERVICE VERSION",      2,      2,      acmd_svcclaim },
   { "svcensure", "SERVICE [VERSION]",  1,      2,      acmd_svcensure },
   { "svcfail", "JOBID TOKENS...",      1,      0xffff, acmd_svcfail },
@@ -1991,7 +1993,6 @@ static const acmd acmdtab[] = {
   { "svcrelease", "SERVICE",           1,      1,      acmd_svcrelease },
   { "svcsubmit", "[OPTIONS] SERVICE TOKENS...",
                                        2,      0xffff, acmd_svcsubmit },
-  { "stats",   "PEER",                 1,      1,      acmd_stats },
 #ifndef NTRACE
   { "trace",   "[OPTIONS]",            0,      1,      acmd_trace },
 #endif
@@ -2360,7 +2361,6 @@ again:
 
   sig_add(&s_term, SIGTERM, a_sigdie, 0);
   sig_add(&s_hup, SIGHUP, a_sighup, 0);
-  signal(SIGPIPE, SIG_IGN);
   sigaction(SIGINT, 0, &sa);
   if (sa.sa_handler != SIG_IGN)
     sig_add(&s_int, SIGINT, a_sigdie, 0);