working on https

This commit is contained in:
mom040267 2015-01-01 19:37:12 +00:00
parent adcd1f428a
commit 79094f0634
8 changed files with 55 additions and 12 deletions

View File

@ -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;

View File

@ -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

View File

@ -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>

View File

@ -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 //////////////////////

View File

@ -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;

View File

@ -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];

View File

@ -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;
};
///////////////////////////////////////////

View File

@ -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 "'"