aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Janouch <p.janouch@gmail.com>2015-07-23 10:12:22 +0200
committerPřemysl Janouch <p.janouch@gmail.com>2015-07-23 10:17:28 +0200
commit67b67cb17143f84bf7df99f5e0950fc2f550a5ad (patch)
treee371692f7a2adacdd022695b6f30c708e3f9e32a
parent9a340e5b8f3f9d5b8b27d7702bfe7650f7b915ef (diff)
downloadxK-67b67cb17143f84bf7df99f5e0950fc2f550a5ad.tar.gz
xK-67b67cb17143f84bf7df99f5e0950fc2f550a5ad.tar.xz
xK-67b67cb17143f84bf7df99f5e0950fc2f550a5ad.zip
Fix immediate connects
Apparently FreeBSD can do this while Linux can not.
-rw-r--r--common.c2
-rw-r--r--degesch.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/common.c b/common.c
index d30ef30..fdf0db6 100644
--- a/common.c
+++ b/common.c
@@ -205,7 +205,7 @@ connector_step (struct connector *self)
connector_notify_connecting (self, target, gai_iter);
- int fd = self->socket = socket (gai_iter->ai_family,
+ int fd = socket (gai_iter->ai_family,
gai_iter->ai_socktype, gai_iter->ai_protocol);
if (fd == -1)
{
diff --git a/degesch.c b/degesch.c
index bfae437..e528d5c 100644
--- a/degesch.c
+++ b/degesch.c
@@ -4525,9 +4525,7 @@ irc_initiate_connect (struct server *s)
str_vector_free (&servers);
- if (!e)
- s->state = IRC_CONNECTING;
- else
+ if (e)
{
irc_destroy_connector (s);
@@ -4535,6 +4533,8 @@ irc_initiate_connect (struct server *s)
error_free (e);
irc_queue_reconnect (s);
}
+ else if (s->state != IRC_CONNECTED)
+ s->state = IRC_CONNECTING;
}
// --- Input prompt ------------------------------------------------------------