working on bandwidth draft

This commit is contained in:
mom040267 2014-05-27 01:47:45 +00:00
parent 5a339c60df
commit ec38153d81
7 changed files with 26 additions and 7 deletions

View File

@ -92,7 +92,7 @@ LOW_DEFAULT_PORTS_BOUNDARY,HIGH_DEFAULT_PORTS_BOUNDARY,0,0,"",
/////////////// stop server ////////////////
0,
/////////////// MISC PARAMS ////////////////
0,0,0,0,0,SHATYPE_SHA1,':',0,0,TURN_CREDENTIALS_NONE,0,0,0,0,0,
0,0,0,0,0,SHATYPE_SHA1,':',0,0,TURN_CREDENTIALS_NONE,0,0,0,0,0,0,
///////////// Users DB //////////////
{ TURN_USERDB_TYPE_FILE, {"\0",NULL}, {0,NULL,NULL, {NULL,0}} }
@ -1715,6 +1715,11 @@ int main(int argc, char **argv)
}
}
if(turn_params.bps_capacity && !(turn_params.max_bps)) {
TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "\nCONFIG ERROR: If you set the --bps-capacity option, then you must set --max-bps options, too.\n");
exit(-1);
}
if(turn_params.no_udp_relay && turn_params.no_tcp_relay) {
TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "\nCONFIG ERROR: --no-udp-relay and --no-tcp-relay options cannot be used together.\n");
exit(-1);

View File

@ -300,6 +300,7 @@ typedef struct _turn_params_ {
int use_auth_secret_with_timestamp;
band_limit_t max_bps;
band_limit_t bps_capacity;
band_limit_t bps_capacity_allocated;
vint total_quota;
vint user_quota;

View File

@ -1381,7 +1381,8 @@ static void setup_relay_server(struct relay_server *rs, ioa_engine_handle e, int
send_socket_to_relay,
&turn_params.secure_stun, turn_params.shatype, &turn_params.mobility,
turn_params.server_relay,
send_turn_session_info);
send_turn_session_info,
turn_params.max_bps);
if(to_set_rfc5780) {
set_rfc5780(&(rs->server), get_alt_addr, send_message_from_listener_to_client);

View File

@ -80,8 +80,6 @@ typedef struct _stun_buffer_list {
size_t tsz;
} stun_buffer_list;
typedef vint band_limit_t;
/*
* New connection callback
*/

View File

@ -361,6 +361,10 @@ static void change_cli_param(struct cli_session* cs, const char* pn)
cli_max_output_sessions = atoi(pn+strlen("cli-max-output-sessions"));
cli_print_uint(cs,(unsigned long)cli_max_output_sessions,"cli-max-output-sessions",2);
return;
} else if(strstr(pn,"bps-capacity")==pn) {
turn_params.bps_capacity = atoi(pn+strlen("bps-capacity"));
cli_print_uint(cs,(unsigned long)turn_params.bps_capacity,"bps-capacity",2);
return;
}
myprintf(cs, "\n");
@ -714,7 +718,8 @@ static void cli_print_configuration(struct cli_session* cs)
cli_print_uint(cs,(unsigned long)turn_params.min_port,"min-port",0);
cli_print_uint(cs,(unsigned long)turn_params.max_port,"max-port",0);
cli_print_uint(cs,(unsigned long)turn_params.bps_capacity,"bps_capacity",0);
cli_print_uint(cs,(unsigned long)turn_params.bps_capacity,"bps-capacity",2);
cli_print_uint(cs,(unsigned long)turn_params.bps_capacity_allocated,"Allocated bps-capacity",0);
cli_print_ip_range_list(cs,&turn_params.ip_whitelist,"Whitelist IP",0);
cli_print_ip_range_list(cs,&turn_params.ip_blacklist,"Blacklist IP",0);

View File

@ -4348,7 +4348,8 @@ void init_turn_server(turn_turnserver* server,
ip_range_list_t* ip_whitelist, ip_range_list_t* ip_blacklist,
send_socket_to_relay_cb send_socket_to_relay,
vintp secure_stun, SHATYPE shatype, vintp mobility, int server_relay,
send_turn_session_info_cb send_turn_session_info) {
send_turn_session_info_cb send_turn_session_info,
band_limit_t max_bps) {
if (!server)
return;
@ -4405,6 +4406,8 @@ void init_turn_server(turn_turnserver* server,
server->send_socket_to_relay = send_socket_to_relay;
server->max_bps = max_bps;
set_ioa_timer(server->e, 1, 0, timer_timeout_handler, server, 1, "timer_timeout_handler");
}

View File

@ -92,6 +92,8 @@ typedef void (*release_allocation_quota_cb)(u08bits *username, u08bits *realm);
typedef int (*send_socket_to_relay_cb)(turnserver_id id, u64bits cid, stun_tid *tid, ioa_socket_handle s, int message_integrity, MESSAGE_TO_RELAY_TYPE rmt, ioa_net_data *nd);
typedef int (*send_turn_session_info_cb)(struct turn_session_info *tsi);
typedef vint band_limit_t;
struct _turn_turnserver {
turnserver_id id;
@ -149,6 +151,9 @@ struct _turn_turnserver {
/* Server relay */
int server_relay;
/* Bandwidth draft: */
band_limit_t max_bps;
};
///////////////////////////////////////////
@ -182,7 +187,8 @@ void init_turn_server(turn_turnserver* server,
SHATYPE shatype,
vintp mobility,
int server_relay,
send_turn_session_info_cb send_turn_session_info);
send_turn_session_info_cb send_turn_session_info,
band_limit_t max_bps);
ioa_engine_handle turn_server_get_engine(turn_turnserver *s);