~mdw
/
yaid
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
yaid.c: Don't fail if either IPv4 or IPv6 is unavailable.
[yaid]
/
yaid.c
diff --git
a/yaid.c
b/yaid.c
index
385ce38
..
affa522
100644
(file)
--- a/
yaid.c
+++ b/
yaid.c
@@
-621,6
+621,7
@@
static int make_listening_socket(int af, int port, const char *proto)
size_t ssz;
if ((fd = socket(af, SOCK_STREAM, 0)) < 0) {
size_t ssz;
if ((fd = socket(af, SOCK_STREAM, 0)) < 0) {
+ if (errno == EAFNOSUPPORT) return (-1);
die(1, "failed to create %s listening socket: %s",
proto, strerror(errno));
}
die(1, "failed to create %s listening socket: %s",
proto, strerror(errno));
}
@@
-661,7
+662,7
@@
static int make_listening_socket(int af, int port, const char *proto)
sel_initfile(&sel, &l->f, fd, SEL_READ, accept_client, l);
sel_addfile(&l->f);
sel_initfile(&sel, &l->f, fd, SEL_READ, accept_client, l);
sel_addfile(&l->f);
- return (
fd
);
+ return (
0
);
}
int main(int argc, char *argv[])
}
int main(int argc, char *argv[])
@@
-691,8
+692,9
@@
int main(int argc, char *argv[])
printf("ipv6 gw = %s\n", inet_ntop(AF_INET6, &a, buf, sizeof(buf)));
sel_init(&sel);
printf("ipv6 gw = %s\n", inet_ntop(AF_INET6, &a, buf, sizeof(buf)));
sel_init(&sel);
- make_listening_socket(AF_INET, port, "IPv4");
- make_listening_socket(AF_INET6, port, "IPv6");
+ if (make_listening_socket(AF_INET, port, "IPv4") &&
+ make_listening_socket(AF_INET6, port, "IPv6"))
+ die(1, "no IP protocols supported");
for (;;)
if (sel_select(&sel)) die(1, "select failed: %s", strerror(errno));
for (;;)
if (sel_select(&sel)) die(1, "select failed: %s", strerror(errno));