summaryrefslogtreecommitdiffstats
path: root/sysdep/unix
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2004-06-18 14:54:53 +0200
committerOndrej Filip <feela@network.cz>2004-06-18 14:54:53 +0200
commit09e4117cc19dd94efbdad6edde9bc7d715a58a9a (patch)
tree0c42b0c521490f6edb9d6403ebe846f56fd25db9 /sysdep/unix
parentb4d8a0c280d34e6164a88d0e2f9ebf16fd5a1d68 (diff)
downloadbird-09e4117cc19dd94efbdad6edde9bc7d715a58a9a.tar
bird-09e4117cc19dd94efbdad6edde9bc7d715a58a9a.zip
sk_write bugfix for BSD.
Diffstat (limited to 'sysdep/unix')
-rw-r--r--sysdep/unix/io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c
index ed5b89f..f68763c 100644
--- a/sysdep/unix/io.c
+++ b/sysdep/unix/io.c
@@ -1025,7 +1025,7 @@ sk_write(sock *s)
{
sockaddr sa;
fill_in_sockaddr(&sa, s->daddr, s->dport);
- if (connect(s->fd, (struct sockaddr *) &sa, sizeof(sa)) >= 0)
+ if (connect(s->fd, (struct sockaddr *) &sa, sizeof(sa)) >= 0 || errno == EISCONN)
sk_tcp_connected(s);
else if (errno != EINTR && errno != EAGAIN && errno != EINPROGRESS)
s->err_hook(s, errno);