+
+2005-09-27 Hugo Villeneuve <hugo@hugovil.com>
+ * Fixed a bug which closed the application if there was a network
+ problem in the WmnotifyGetResponse() function.
+
2005-06-22 Hugo Villeneuve <hugo@hugovil.com>
* Now using the same Tx and Rx buffers for POP3 and IMAP4.
* Removed autogenerated files from subversion repository.
get_packet:
len = WmnotifyGetResponse( rx_buffer, WMNOTIFY_BUFSIZE );
-
if( len < 0 ) {
- /* An error occured. */
- perror( PACKAGE );
- ErrorLocation( __FILE__, __LINE__ );
+ /* An error occured. WmnotifyGetResponse() should have printed an error message. */
goto error;
}
else if( len == 0 ) {
#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;
+ 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 */