commit aa4f7a7d00a087ddbfa05f0de962d0c5c80c8cba
Author: Oswald Buddenhagen <o...@users.sf.net>
Date:   Sun Jul 6 10:06:40 2014 +0200

    move use_imaps out of server_conf_t
    
    it doesn't belong there - it's a property of imap_server_conf_t.
    the port setup is now done while reading the config.
    
    this makes socket.[hc] imap-agnostic.

 src/drv_imap.c |   17 ++++++++++++-----
 src/socket.c   |   20 +++++++-------------
 src/socket.h   |    1 -
 3 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index e6d93ee..299aa23 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -46,6 +46,7 @@ typedef struct imap_server_conf {
        int max_in_progress;
 #ifdef HAVE_LIBSSL
        char use_ssl;
+       char use_imaps;
        char require_ssl;
        char require_cram;
 #endif
@@ -1531,7 +1532,7 @@ imap_open_store_connected( int ok, void *aux )
        if (!ok)
                imap_open_store_bail( ctx );
 #ifdef HAVE_LIBSSL
-       else if (srvc->sconf.use_imaps)
+       else if (srvc->use_imaps)
                socket_start_tls( &ctx->conn, imap_open_store_tlsstarted1 );
 #endif
 }
@@ -1581,7 +1582,7 @@ imap_open_store_authenticate( imap_store_t *ctx )
 
        if (ctx->greeting != GreetingPreauth) {
 #ifdef HAVE_LIBSSL
-               if (!srvc->sconf.use_imaps && srvc->use_ssl) {
+               if (!srvc->use_imaps && srvc->use_ssl) {
                        /* always try to select SSL support if available */
                        if (CAP(STARTTLS)) {
                                imap_exec( ctx, 0, 
imap_open_store_authenticate_p2, "STARTTLS" );
@@ -1600,7 +1601,7 @@ imap_open_store_authenticate( imap_store_t *ctx )
                imap_open_store_authenticate2( ctx );
        } else {
 #ifdef HAVE_LIBSSL
-               if (!srvc->sconf.use_imaps && srvc->require_ssl) {
+               if (!srvc->use_imaps && srvc->require_ssl) {
                        error( "IMAP error: SSL support not available\n" );
                        imap_open_store_bail( ctx );
                        return;
@@ -2272,7 +2273,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
 #ifdef HAVE_LIBSSL
                        if (starts_with( cfg->val, -1, "imaps:", 6 )) {
                                cfg->val += 6;
-                               server->sconf.use_imaps = 1;
+                               server->use_imaps = 1;
                                server->sconf.use_sslv2 = 1;
                                server->sconf.use_sslv3 = 1;
                        } else
@@ -2310,7 +2311,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
                } else if (!strcasecmp( "RequireSSL", cfg->cmd ))
                        server->require_ssl = parse_bool( cfg );
                else if (!strcasecmp( "UseIMAPS", cfg->cmd ))
-                       server->sconf.use_imaps = parse_bool( cfg );
+                       server->use_imaps = parse_bool( cfg );
                else if (!strcasecmp( "UseSSLv2", cfg->cmd ))
                        server->sconf.use_sslv2 = parse_bool( cfg );
                else if (!strcasecmp( "UseSSLv3", cfg->cmd ))
@@ -2377,6 +2378,12 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep 
)
                        return 1;
                }
 #endif
+               if (!server->sconf.port)
+                       server->sconf.port =
+#ifdef HAVE_LIBSSL
+                               server->use_imaps ? 993 :
+#endif
+                               143;
        }
        if (store) {
                if (!store->server) {
diff --git a/src/socket.c b/src/socket.c
index f47e375..4bc2752 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -312,7 +312,7 @@ socket_connect( conn_t *sock, void (*cb)( int ok, void *aux 
) )
 
        sock->callbacks.connect = cb;
 
-       /* open connection to IMAP server */
+       /* open connection to server */
        if (conf->tunnel) {
                int a[2];
 
@@ -352,7 +352,7 @@ socket_connect( conn_t *sock, void (*cb)( int ok, void *aux 
) )
                hints.ai_flags = AI_ADDRCONFIG;
                infon( "Resolving %s... ", conf->host );
                if ((gaierr = getaddrinfo( conf->host, NULL, &hints, 
&sock->addrs ))) {
-                       error( "IMAP error: Cannot resolve server '%s': %s\n", 
conf->host, gai_strerror( gaierr ) );
+                       error( "Error: Cannot resolve server '%s': %s\n", 
conf->host, gai_strerror( gaierr ) );
                        socket_connect_bail( sock );
                        return;
                }
@@ -365,7 +365,7 @@ socket_connect( conn_t *sock, void (*cb)( int ok, void *aux 
) )
                infon( "Resolving %s... ", conf->host );
                he = gethostbyname( conf->host );
                if (!he) {
-                       error( "IMAP error: Cannot resolve server '%s': %s\n", 
conf->host, hstrerror( h_errno ) );
+                       error( "Error: Cannot resolve server '%s': %s\n", 
conf->host, hstrerror( h_errno ) );
                        socket_connect_bail( sock );
                        return;
                }
@@ -381,7 +381,6 @@ static void
 socket_connect_one( conn_t *sock )
 {
        int s;
-       ushort port;
 #ifdef HAVE_IPV6
        struct addrinfo *ai;
 #else
@@ -400,18 +399,13 @@ socket_connect_one( conn_t *sock )
                return;
        }
 
-       port = sock->conf->port ? sock->conf->port :
-#ifdef HAVE_LIBSSL
-              sock->conf->use_imaps ? 993 :
-#endif
-              143;
 #ifdef HAVE_IPV6
        if (ai->ai_family == AF_INET6) {
                struct sockaddr_in6 *in6 = ((struct sockaddr_in6 *)ai->ai_addr);
                char sockname[64];
-               in6->sin6_port = htons( port );
+               in6->sin6_port = htons( sock->conf->port );
                nfasprintf( &sock->name, "%s ([%s]:%hu)",
-                           sock->conf->host, inet_ntop( AF_INET6, 
&in6->sin6_addr, sockname, sizeof(sockname) ), port );
+                           sock->conf->host, inet_ntop( AF_INET6, 
&in6->sin6_addr, sockname, sizeof(sockname) ), sock->conf->port );
        } else
 #endif
        {
@@ -421,9 +415,9 @@ socket_connect_one( conn_t *sock )
                in->sin_family = AF_INET;
                in->sin_addr.s_addr = *((int *)*sock->curr_addr);
 #endif
-               in->sin_port = htons( port );
+               in->sin_port = htons( sock->conf->port );
                nfasprintf( &sock->name, "%s (%s:%hu)",
-                           sock->conf->host, inet_ntoa( in->sin_addr ), port );
+                           sock->conf->host, inet_ntoa( in->sin_addr ), 
sock->conf->port );
        }
 
 #ifdef HAVE_IPV6
diff --git a/src/socket.h b/src/socket.h
index 1545b39..c7fcb78 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -34,7 +34,6 @@ typedef struct server_conf {
        int port;
 #ifdef HAVE_LIBSSL
        char *cert_file;
-       char use_imaps;
        char use_sslv2, use_sslv3, use_tlsv1, use_tlsv11, use_tlsv12;
 
        /* these are actually variables and are leaked at the end */

------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to