From: Wilfried Goesgens Date: Tue, 25 Jan 2011 22:51:22 +0000 (+0100) Subject: fix ipv6 connections in smtp client X-Git-Tag: v8.11~1097 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=f73ec44ea6fb12fe23b7a021993dff8a28cbe0f7 fix ipv6 connections in smtp client --- diff --git a/citadel/event_client.c b/citadel/event_client.c index 60f74282d..4ba983220 100644 --- a/citadel/event_client.c +++ b/citadel/event_client.c @@ -384,9 +384,9 @@ eNextState event_connect_socket(AsyncIO *IO, double conn_timeout, double first_r IO->conn_fail.data = IO; ev_timer_init(&IO->rw_timeout, IO_Timout_callback, first_rw_timeout, 0); IO->rw_timeout.data = IO; - ///struct sockaddr_in *addr = &IO->Addr; + if (IO->IP6) - rc = connect(IO->sock, &IO->Addr, sizeof(struct in6_addr)); + rc = connect(IO->sock, &IO->Addr, sizeof(struct sockaddr_in6)); else rc = connect(IO->sock, (struct sockaddr_in *)&IO->Addr, sizeof(struct sockaddr_in)); diff --git a/citadel/modules/smtp/serv_smtpeventclient.c b/citadel/modules/smtp/serv_smtpeventclient.c index e09080200..7eb42248c 100644 --- a/citadel/modules/smtp/serv_smtpeventclient.c +++ b/citadel/modules/smtp/serv_smtpeventclient.c @@ -306,12 +306,12 @@ eNextState mx_connect_relay_ip(AsyncIO *IO) if (SendMsg->pCurrRelay->Port != 0) IO->dport = SendMsg->pCurrRelay->Port; - memset(&IO->Addr, 0, sizeof(struct in6_addr)); + memset(&IO->Addr, 0, sizeof(struct sockaddr_in6)); if (IO->IP6) { memcpy(&IO->Addr.sin6_addr.s6_addr, &SendMsg->pCurrRelay->Addr, sizeof(struct in6_addr)); - + IO->Addr.sin6_family = AF_INET6; IO->Addr.sin6_port = htons(IO->dport); }