X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fnetwork.c;h=b46bce7115386bdeb9cbff7ca1dae17389b783e1;hb=a1a7d5dc60fb40d39c9f1cbc6b1879bc562299a7;hp=caa1c28098d79898e55a1ca101119491d0f154f0;hpb=db28d5c6f7928b707bffa193ad93dfa7556ab0ad;p=dockapps%2Fwmnotify.git diff --git a/src/network.c b/src/network.c index caa1c28..b46bce7 100644 --- a/src/network.c +++ b/src/network.c @@ -45,7 +45,7 @@ SocketOpen( char *server_name, int port ) hostinfo = gethostbyname(server_name); if( hostinfo == NULL ) { - perror( PACKAGE ); + herror( PACKAGE ); ErrorLocation( __FILE__, __LINE__ ); goto error; } @@ -194,13 +194,29 @@ WmnotifyGetResponse( char *buffer, int max_size ) #if HAVE_SSL if( wmnotify_infos.use_ssl == TRUE ) { - len = SSL_read( ssl_infos.ssl, buffer, max_size ); /* Get reply & decrypt */ - if( len <= 0 ) { - SSL_get_error( ssl_infos.ssl, len ); - len = -1; + len = SSL_read( ssl_infos.ssl, buffer, max_size ); /* Get reply & decrypt. */ + switch( SSL_get_error( ssl_infos.ssl, len ) ) { + case SSL_ERROR_NONE: + /* Success. */ + break; + case SSL_ERROR_ZERO_RETURN: + fprintf( stderr, "%s: SSL_read() connection closed.\n", PACKAGE ); + break; + case SSL_ERROR_SYSCALL: + fprintf( stderr, "%s: SSL_read() I/O error.\n", PACKAGE ); + goto ssl_error; + case SSL_ERROR_SSL: + fprintf( stderr, "%s: SSL_read() protocol error.\n", PACKAGE ); + goto ssl_error; + default: + fprintf( stderr, "%s: SSL_read() error.\n", PACKAGE ); + goto ssl_error; } - + return len; + + ssl_error: + return -1; } #endif /* HAVE_SSL */