/* -*-c-*-
*
- * $Id$
- *
* Admin interface for configuration
*
* (c) 2001 Straylight/Edgeware
r->addr = 0;
r->func = func;
if (mystrieq(av[i], "inet")) i++;
- if (ac - i != 2) {
- a_fail(a, "bad-addr-syntax", "[inet] ADDRESS PORT", A_END);
+ if (ac - i != 1 && ac - i != 2) {
+ a_fail(a, "bad-addr-syntax", "[inet] ADDRESS [PORT]", A_END);
goto fail;
}
r->sa.sin.sin_family = AF_INET;
r->sasz = sizeof(r->sa.sin);
r->addr = xstrdup(av[i]);
- pt = strtoul(av[i + 1], &p, 0);
- if (*p) {
- struct servent *s = getservbyname(av[i + 1], "udp");
- if (!s) {
- a_fail(a, "unknown-service", "%s", av[i + 1], A_END);
- goto fail;
+ if (!av[i + i])
+ pt = TRIPE_PORT;
+ else {
+ pt = strtoul(av[i + 1], &p, 0);
+ if (*p) {
+ struct servent *s = getservbyname(av[i + 1], "udp");
+ if (!s) {
+ a_fail(a, "unknown-service", "%s", av[i + 1], A_END);
+ goto fail;
+ }
+ pt = ntohs(s->s_port);
}
- pt = ntohs(s->s_port);
}
if (pt == 0 || pt >= 65536) {
a_fail(a, "invalid-port", "%lu", pt, A_END);
add->peer.name = 0;
add->peer.t_ka = 0;
add->peer.tops = tun_default;
+ add->peer.kxf = 0;
/* --- Parse options --- */
}
})
OPTTIME("-keepalive", t, { add->peer.t_ka = t; })
+ OPT("-cork", { add->peer.kxf |= KXF_CORK; })
});
/* --- Make sure someone's not got there already --- */