soup-gnutls: return SOUP_SSL_ERROR, not G_IO_ERROR, on handshake failure
authorDan Winship <danw@gnome.org>
Sat, 22 May 2010 20:59:21 +0000 (16:59 -0400)
committerDan Winship <danw@gnome.org>
Sat, 22 May 2010 20:59:21 +0000 (16:59 -0400)
Part of https://bugzilla.gnome.org/show_bug.cgi?id=615535

libsoup/soup-gnutls.c
libsoup/soup-misc.h

index ac22d95..79211f5 100644 (file)
@@ -163,9 +163,10 @@ again:
        }
 
        if (result < 0) {
-               g_set_error (err, G_IO_CHANNEL_ERROR,
-                            G_IO_CHANNEL_ERROR_FAILED,
-                            "Unable to handshake");
+               g_set_error (err, SOUP_SSL_ERROR,
+                            SOUP_SSL_ERROR_HANDSHAKE_FAILED,
+                            "SSL handshake failed: %s",
+                            gnutls_strerror (result));
                return G_IO_STATUS_ERROR;
        }
 
index 9e7f00d..45c8883 100644 (file)
@@ -61,7 +61,8 @@ GQuark soup_ssl_error_quark (void);
 typedef enum {
        SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ,
        SOUP_SSL_ERROR_HANDSHAKE_NEEDS_WRITE,
-       SOUP_SSL_ERROR_CERTIFICATE
+       SOUP_SSL_ERROR_CERTIFICATE,
+       SOUP_SSL_ERROR_HANDSHAKE_FAILED
 } SoupSSLError;
 
 typedef enum {