diff options
Diffstat (limited to 'src/core/transport/http/sender/http_sender.c')
-rw-r--r-- | src/core/transport/http/sender/http_sender.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/core/transport/http/sender/http_sender.c b/src/core/transport/http/sender/http_sender.c index 093cfec..f899a9e 100644 --- a/src/core/transport/http/sender/http_sender.c +++ b/src/core/transport/http/sender/http_sender.c @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#include <axutil_stream.h> #include <axis2_http_sender.h> #include <axutil_string.h> #include <axis2_http_transport.h> @@ -36,6 +36,7 @@ #include <axis2_util.h> #include <axiom_soap.h> #include <axutil_version.h> +#include "ssl/ssl_stream.h" #ifdef AXIS2_LIBCURL_ENABLED #include "libcurl/axis2_libcurl.h" @@ -43,6 +44,8 @@ #define CLIENT_NONCE_LENGTH 8 #endif + + struct axis2_http_sender { axis2_char_t *http_version; @@ -1594,7 +1597,14 @@ axis2_http_sender_process_response( response, env)); property = axutil_property_create(env); axutil_property_set_scope(property, env, AXIS2_SCOPE_REQUEST); - axutil_property_set_free_func(property, env, axutil_stream_free_void_arg); +#ifdef AXIS2_SSL_ENABLED + if(in_stream->stream_type == AXIS2_STREAM_SOCKET) + axutil_property_set_free_func(property, env, axutil_stream_free_void_arg); + else /** SSL Streams are AXIS2_STREAM_BASIC */ + axutil_property_set_free_func(property, env, axis2_ssl_stream_free); +#else + axutil_property_set_free_func(property, env, axutil_stream_free_void_arg); +#endif axutil_property_set_value(property, env, in_stream); axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_TRANSPORT_IN, property); AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_http_sender_process_response"); |