From 3cdb507c9a97d04ff245cc5e637a96b15749855c Mon Sep 17 00:00:00 2001 From: Oleg Moskalenko Date: Sun, 13 Nov 2016 23:10:42 -0800 Subject: [PATCH] working on merge fix --- src/apps/relay/mainrelay.c | 4 ++-- src/server/ns_turn_server.c | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 1f2d108..d1ed837 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -678,7 +678,6 @@ static char AdminUsage[] = "Usage: turnadmin [command] [options]\n" #define ADMIN_OPTIONS "PgGORIHKYlLkaADSdb:e:M:J:N:u:r:p:s:X:o:h" enum EXTRA_OPTS { - PROD_OPT, NO_UDP_OPT=256, NO_TCP_OPT, NO_TLS_OPT, @@ -742,7 +741,8 @@ enum EXTRA_OPTS { ADMIN_TOTAL_QUOTA_OPT, ADMIN_USER_QUOTA_OPT, SERVER_NAME_OPT, - OAUTH_OPT + OAUTH_OPT, + PROD_OPT }; struct myoption { diff --git a/src/server/ns_turn_server.c b/src/server/ns_turn_server.c index 9233824..1045ba9 100644 --- a/src/server/ns_turn_server.c +++ b/src/server/ns_turn_server.c @@ -58,7 +58,7 @@ static inline int get_family(int stun_family) { //////////////////////////////////////////////// const char * get_version(turn_turnserver *server) { - if(!server->prod) { + if(server && !server->prod) { return (const char *) TURN_SOFTWARE; } else { return (const char *) "None"; @@ -1724,7 +1724,7 @@ static int handle_turn_refresh(turn_turnserver *server, { const u08bits *field = (const u08bits *) get_version(server); - static const size_t fsz = sizeof(get_version(server))-1; + size_t fsz = strlen(get_version(server)); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, STUN_ATTRIBUTE_SOFTWARE, field, fsz); ioa_network_buffer_set_size(nbh, len); @@ -2191,7 +2191,7 @@ static void tcp_peer_accept_connection(ioa_socket_handle s, void *arg) { const u08bits *field = (const u08bits *) get_version(server); - static const size_t fsz = sizeof(get_version(server))-1; + size_t fsz = strlen(get_version(server)); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, STUN_ATTRIBUTE_SOFTWARE, field, fsz); ioa_network_buffer_set_size(nbh, len); @@ -2467,8 +2467,8 @@ int turnserver_accept_tcp_client_data_connection(turn_turnserver *server, tcp_co } { + size_t fsz = strlen(get_version(server)); const u08bits *field = (const u08bits *) get_version(server); - static const size_t fsz = sizeof(get_version(server))-1; size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, STUN_ATTRIBUTE_SOFTWARE, field, fsz); ioa_network_buffer_set_size(nbh, len); @@ -3774,7 +3774,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, { const u08bits *field = (const u08bits *) get_version(server); - static const size_t fsz = sizeof(get_version(server))-1; + size_t fsz = strlen(get_version(server)); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, STUN_ATTRIBUTE_SOFTWARE, field, fsz); ioa_network_buffer_set_size(nbh, len); @@ -3875,7 +3875,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, { const u08bits *field = (const u08bits *) get_version(server); - static const size_t fsz = sizeof(get_version(server))-1; + size_t fsz = strlen(get_version(server)); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, STUN_ATTRIBUTE_SOFTWARE, field, fsz); ioa_network_buffer_set_size(nbh, len); @@ -3955,11 +3955,13 @@ static int handle_old_stun_command(turn_turnserver *server, ts_ur_super_session } { - size_t newsz = (((sizeof(get_version(server)))>>2) + 1)<<2; + size_t oldsz = strlen(get_version(server)); + size_t newsz = (((oldsz)>>2) + 1)<<2; u08bits software[120]; + ns_bzero(software,sizeof(software)); if(newsz>sizeof(software)) newsz = sizeof(software); - ns_bcopy(get_version(server),software,newsz); + ns_bcopy(get_version(server),software,oldsz); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, OLD_STUN_ATTRIBUTE_SERVER, software, newsz); ioa_network_buffer_set_size(nbh, len); @@ -4007,11 +4009,13 @@ static int handle_old_stun_command(turn_turnserver *server, ts_ur_super_session } { - size_t newsz = (((sizeof(get_version(server)))>>2) + 1)<<2; + size_t oldsz = strlen(get_version(server)); + size_t newsz = (((oldsz)>>2) + 1)<<2; u08bits software[120]; + ns_bzero(software,sizeof(software)); if(newsz>sizeof(software)) newsz = sizeof(software); - ns_bcopy(get_version(server),software,newsz); + ns_bcopy(get_version(server),software,oldsz); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, OLD_STUN_ATTRIBUTE_SERVER, software, newsz); ioa_network_buffer_set_size(nbh, len); @@ -4736,7 +4740,7 @@ static void peer_input_handler(ioa_socket_handle s, int event_type, { const u08bits *field = (const u08bits *) get_version(server); - static const size_t fsz = sizeof(get_version(server))-1; + size_t fsz = strlen(get_version(server)); size_t len = ioa_network_buffer_get_size(nbh); stun_attr_add_str(ioa_network_buffer_data(nbh), &len, STUN_ATTRIBUTE_SOFTWARE, field, fsz); ioa_network_buffer_set_size(nbh, len);