summaryrefslogtreecommitdiff
path: root/sysdep/unix
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2015-11-03 11:27:27 +0100
committerOndrej Zajicek (work) <santiago@crfreenet.org>2015-11-03 11:27:27 +0100
commit3aed0a6ff7b2b811a535202fd787281d2ac33409 (patch)
tree811abde40e441094e94a7bc327818e8d0e16419c /sysdep/unix
parent338f85ca7721fac16394ccabd561ddb5ccaacb36 (diff)
IO: Fix the previous bugfix
I should check it after making some trivial changes. The original patch from Alexander has it right.
Diffstat (limited to 'sysdep/unix')
-rw-r--r--sysdep/unix/io.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c
index 726f1e49..b636e799 100644
--- a/sysdep/unix/io.c
+++ b/sysdep/unix/io.c
@@ -1309,16 +1309,6 @@ sk_passive_connected(sock *s, int type)
return 0;
}
- if (fd >= FD_SETSIZE)
- {
- /* FIXME: Call err_hook instead ? */
- log(L_ERR "SOCK: Incoming connection from %I%J (port %d) %s",
- t->daddr, ipa_is_link_local(t->daddr) ? t->iface : NULL,
- t->dport, "rejected due to FD_SETSIZE limit");
- close(fd);
- return 1;
- }
-
sock *t = sk_new(s->pool);
t->type = type;
t->fd = fd;
@@ -1338,6 +1328,18 @@ sk_passive_connected(sock *s, int type)
log(L_WARN "SOCK: Cannot get remote IP address for TCP<");
}
+ if (fd >= FD_SETSIZE)
+ {
+ /* FIXME: Call err_hook instead ? */
+ log(L_ERR "SOCK: Incoming connection from %I%J (port %d) %s",
+ t->daddr, ipa_is_link_local(t->daddr) ? t->iface : NULL,
+ t->dport, "rejected due to FD_SETSIZE limit");
+ close(fd);
+ t->fd = -1;
+ rfree(t);
+ return 1;
+ }
+
if (sk_setup(t) < 0)
{
/* FIXME: Call err_hook instead ? */