diff --git a/ChangeLog b/ChangeLog index 60c00cd8..da5dcfff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +1/1/2015 Oleg Moskalenko <mom040267@gmail.com> +Version 4.3.4.1 'Tolomei': + - https admin server; + 12/24/2014 Oleg Moskalenko <mom040267@gmail.com> Version 4.3.3.1 'Tolomei': - multiple authentication threads; diff --git a/rpm/build.settings.sh b/rpm/build.settings.sh index ffff3cb7..514e69ef 100755 --- a/rpm/build.settings.sh +++ b/rpm/build.settings.sh @@ -2,7 +2,7 @@ # Common settings script. -TURNVERSION=4.3.3.1 +TURNVERSION=4.3.4.1 BUILDDIR=~/rpmbuild ARCH=`uname -p` TURNSERVER_SVN_URL=http://coturn.googlecode.com/svn diff --git a/rpm/turnserver.spec b/rpm/turnserver.spec index f83d4c98..923228ec 100644 --- a/rpm/turnserver.spec +++ b/rpm/turnserver.spec @@ -1,5 +1,5 @@ Name: turnserver -Version: 4.3.3.1 +Version: 4.3.4.1 Release: 0%{dist} Summary: Coturn TURN Server @@ -294,6 +294,8 @@ fi %{_includedir}/turn/client/TurnMsgLib.h %changelog +* Thu Jan 24 2015 Oleg Moskalenko <mom040267@gmail.com> + - Sync to 4.3.4.1 * Wed Dec 24 2014 Oleg Moskalenko <mom040267@gmail.com> - Sync to 4.3.3.1 * Sun Dec 14 2014 Oleg Moskalenko <mom040267@gmail.com> diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 26629557..ad00ebaf 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -122,7 +122,9 @@ LOW_DEFAULT_PORTS_BOUNDARY,HIGH_DEFAULT_PORTS_BOUNDARY,0,0,0,"", ///////////// Users DB ////////////// { (TURN_USERDB_TYPE)0, {"\0"}, {0,NULL,NULL, {NULL,0}} }, ///////////// CPUs ////////////////// -DEFAULT_CPUS_NUMBER +DEFAULT_CPUS_NUMBER, +///////////// HTTPS Admin Server //// +1,DEFAULT_HTTPS_ADMIN_PORT,DEFAULT_HTTPS_ADMIN_ADDR,"123" }; //////////////// OpenSSL Init ////////////////////// diff --git a/src/apps/relay/mainrelay.h b/src/apps/relay/mainrelay.h index be020acb..bdffed94 100644 --- a/src/apps/relay/mainrelay.h +++ b/src/apps/relay/mainrelay.h @@ -102,6 +102,9 @@ extern "C" { #define DEFAULT_CPUS_NUMBER (2) +#define DEFAULT_HTTPS_ADMIN_PORT (4433) +#define DEFAULT_HTTPS_ADMIN_ADDR ("0.0.0.0") + /////////// TYPES /////////////////////////////////// enum _DH_KEY_SIZE { @@ -310,6 +313,13 @@ typedef struct _turn_params_ { unsigned long cpus; +/////// HTTPS Admin server ////// + + int use_https_admin_server; + int https_admin_server_port; + char https_admin_server_addr[129]; + char https_admin_server_pwd[129]; + } turn_params_t; extern turn_params_t turn_params; diff --git a/src/apps/relay/turncli.c b/src/apps/relay/turncli.c index e4fe656e..9eb3e512 100644 --- a/src/apps/relay/turncli.c +++ b/src/apps/relay/turncli.c @@ -1217,16 +1217,38 @@ static void cliserver_input_handler(struct evconnlistener *l, evutil_socket_t fd void setup_cli_thread(void) { + ns_bzero(&cliserver,sizeof(cliserver)); cliserver.event_base = turn_event_base_new(); - super_memory_t* sm = new_super_memory_region(); - cliserver.e = create_ioa_engine(sm, cliserver.event_base, turn_params.listener.tp, turn_params.relay_ifname, turn_params.relays_number, turn_params.relay_addrs, - turn_params.default_relays, turn_params.verbose - #if !defined(TURN_NO_HIREDIS) - ,turn_params.redis_statsdb - #endif - ); TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"IO method (cli thread): %s\n",event_base_get_method(cliserver.event_base)); + if (turn_params.use_https_admin_server + && turn_params.https_admin_server_pwd[0]) { + +#if TLSv1_2_SUPPORTED + if (turn_params.tls_ctx_v1_2) { + cliserver.ctx = turn_params.tls_ctx_v1_2; + } +#endif + +#if TLSv1_1_SUPPORTED + if (!cliserver.ctx && turn_params.tls_ctx_v1_1) { + cliserver.ctx = turn_params.tls_ctx_v1_1; + } +#endif + + if (!cliserver.ctx && turn_params.tls_ctx_v1_0) { + cliserver.ctx = turn_params.tls_ctx_v1_0; + } + + if (!cliserver.ctx && turn_params.tls_ctx_ssl23) { + cliserver.ctx = turn_params.tls_ctx_ssl23; + } + } + + if(!cliserver.ctx) { + turn_params.use_https_admin_server = 0; + } + { struct bufferevent *pair[2]; diff --git a/src/apps/relay/turncli.h b/src/apps/relay/turncli.h index 8c4490c6..8ca61b1c 100644 --- a/src/apps/relay/turncli.h +++ b/src/apps/relay/turncli.h @@ -38,6 +38,7 @@ #include <event2/bufferevent.h> #include <event2/buffer.h> +#include <event2/http.h> #include "ns_turn_utils.h" #include "ns_turn_maps.h" @@ -54,13 +55,15 @@ extern "C" { struct cli_server { evutil_socket_t listen_fd; struct event_base* event_base; - ioa_engine_handle e; int verbose; struct evconnlistener *l; struct bufferevent *in_buf; struct bufferevent *out_buf; ur_map *sessions; pthread_t thr; + //// HTTPS interface //// + SSL_CTX *ctx; + struct evhttp *https; }; /////////////////////////////////////////// diff --git a/src/ns_turn_defs.h b/src/ns_turn_defs.h index 5f591681..4e641751 100644 --- a/src/ns_turn_defs.h +++ b/src/ns_turn_defs.h @@ -31,7 +31,7 @@ #ifndef __IOADEFS__ #define __IOADEFS__ -#define TURN_SERVER_VERSION "4.3.3.1" +#define TURN_SERVER_VERSION "4.3.4.1" #define TURN_SERVER_VERSION_NAME "Tolomei" #define TURN_SOFTWARE "Coturn-" TURN_SERVER_VERSION " '" TURN_SERVER_VERSION_NAME "'"