You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2013/01/07 22:10:03 UTC
svn commit: r1430010 - /qpid/proton/trunk/proton-c/src/ssl/openssl.c
Author: kgiusti
Date: Mon Jan 7 21:10:03 2013
New Revision: 1430010
URL: http://svn.apache.org/viewvc?rev=1430010&view=rev
Log:
PROTON-171: stop accepting input after SSL session is closed.
Modified:
qpid/proton/trunk/proton-c/src/ssl/openssl.c
Modified: qpid/proton/trunk/proton-c/src/ssl/openssl.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/ssl/openssl.c?rev=1430010&r1=1430009&r2=1430010&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/ssl/openssl.c (original)
+++ qpid/proton/trunk/proton-c/src/ssl/openssl.c Mon Jan 7 21:10:03 2013
@@ -123,6 +123,8 @@ static ssize_t process_input_cleartext(p
static ssize_t process_output_cleartext(pn_transport_t *transport, char *buffer, size_t max_len);
static ssize_t process_input_unknown(pn_transport_t *transport, const char *input_data, size_t len);
static ssize_t process_output_unknown(pn_transport_t *transport, char *input_data, size_t len);
+static ssize_t process_input_done(pn_transport_t *transport, const char *input_data, size_t len);
+static ssize_t process_output_done(pn_transport_t *transport, char *input_data, size_t len);
static connection_mode_t check_for_ssl_connection( const char *data, size_t len );
static int init_ssl_socket( pn_ssl_t * );
static void release_ssl_socket( pn_ssl_t * );
@@ -904,6 +906,7 @@ static ssize_t process_input_ssl( pn_tra
//}
if (ssl->app_input_closed && (SSL_get_shutdown(ssl->ssl) & SSL_SENT_SHUTDOWN) ) {
consumed = ssl->app_input_closed;
+ ssl->process_input = process_input_done;
}
_log(ssl, "process_input_ssl() returning %d\n", (int) consumed);
return consumed;
@@ -1015,6 +1018,7 @@ static ssize_t process_output_ssl( pn_tr
//}
if (written == 0 && (SSL_get_shutdown(ssl->ssl) & SSL_SENT_SHUTDOWN) && BIO_pending(ssl->bio_net_io) == 0) {
written = ssl->app_output_closed ? ssl->app_output_closed : PN_EOS;
+ ssl->process_output = process_output_done;
}
_log(ssl, "process_output_ssl() returning %d\n", (int) written);
return written;
@@ -1248,3 +1252,12 @@ int pn_ssl_get_peer_hostname( pn_ssl_t *
*bufsize = len;
return 0;
}
+
+static ssize_t process_input_done(pn_transport_t *transport, const char *input_data, size_t len)
+{
+ return PN_EOS;
+}
+static ssize_t process_output_done(pn_transport_t *transport, char *input_data, size_t len)
+{
+ return PN_EOS;
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org