From 5a560fce495ae997a8d6593f2872a47c9195019a Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 27 May 2008 00:18:31 +0000 Subject: [PATCH] Mon May 26 14:57:28 EDT 2008 Pekka Pessi * nth: gracefully downgrade to tcp only if no tls certificates are available git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8676 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/sofia-sip/.update | 2 +- libs/sofia-sip/libsofia-sip-ua/nth/nth_client.c | 8 +++++++- libs/sofia-sip/libsofia-sip-ua/nth/nth_server.c | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 4f87411885..1172f36695 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Mon May 26 20:18:02 EDT 2008 +Mon May 26 20:18:27 EDT 2008 diff --git a/libs/sofia-sip/libsofia-sip-ua/nth/nth_client.c b/libs/sofia-sip/libsofia-sip-ua/nth/nth_client.c index 0622c0ff92..f9236b6361 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nth/nth_client.c +++ b/libs/sofia-sip/libsofia-sip-ua/nth/nth_client.c @@ -440,6 +440,8 @@ static char const *const he_tports[] = { "tcp", "tls", NULL }; +static char const *const he_no_tls_tports[] = { "tcp", NULL }; + static tp_stack_class_t http_client_class[1] = { { sizeof(http_client_class), he_recv_message, @@ -456,7 +458,11 @@ int he_create_tports(nth_engine_t * he, tagi_t *tags) if (!he->he_tports) return -1; - return tport_tbind(he->he_tports, he_name, he_tports, + if (tport_tbind(he->he_tports, he_name, he_tports, + TPTAG_SERVER(0), TAG_NEXT(tags)) >= 0) + return 0; + + return tport_tbind(he->he_tports, he_name, he_no_tls_tports, TPTAG_SERVER(0), TAG_NEXT(tags)); } diff --git a/libs/sofia-sip/libsofia-sip-ua/nth/nth_server.c b/libs/sofia-sip/libsofia-sip-ua/nth/nth_server.c index 4117648838..dadf51b1ab 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nth/nth_server.c +++ b/libs/sofia-sip/libsofia-sip-ua/nth/nth_server.c @@ -688,6 +688,8 @@ static char const * const http_tports[] = "tcp", "tls", NULL }; +static char const * const http_no_tls_tports[] = { "tcp", NULL }; + static tp_stack_class_t nth_server_class[1] = {{ sizeof(nth_server_class), @@ -738,6 +740,8 @@ server_t *server_create(url_t const *url, srv->srv_max_bodylen = 1 << 30; /* 1 GB */ if (tport_tbind(srv->srv_tports, tpn, http_tports, + TAG_END()) >= 0 || + tport_tbind(srv->srv_tports, tpn, http_no_tls_tports, TAG_END()) >= 0) { srv->srv_root = root; srv->srv_mclass = mclass ? mclass : http_default_mclass();