server: Add a peer without sending key-exchange packets.
[tripe] / server / peer.c
index 99d4447..675ceff 100644 (file)
@@ -706,7 +706,7 @@ peer *p_create(peerspec *spec)
   if ((p->t = spec->tops->create(p, &p->ifname)) == 0)
     goto tidy_0;
   p_setkatimer(p);
-  if (kx_init(&p->kx, p, &p->ks))
+  if (kx_init(&p->kx, p, &p->ks, p->spec.kxf))
     goto tidy_1;
   p->next = peers;
   if (peers)
@@ -717,8 +717,10 @@ peer *p_create(peerspec *spec)
            "%s", p->ifname,
            "?ADDR", &p->spec.sa,
            A_END);
-  a_notify("KXSTART", "?PEER", p, A_END);
+  if (!(p->spec.kxf & KXF_CORK)) {
+    a_notify("KXSTART", "?PEER", p, A_END);
     /* Couldn't tell anyone before */
+  }
   return (p);
 
 tidy_1: