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