From 67b67cb17143f84bf7df99f5e0950fc2f550a5ad Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Thu, 23 Jul 2015 10:12:22 +0200
Subject: Fix immediate connects
Apparently FreeBSD can do this while Linux can not.
---
common.c | 2 +-
degesch.c | 6 +++---
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 ------------------------------------------------------------
--
cgit v1.2.3-70-g09d2