From f2cc2e9457174b93a2809ec994386af6917efbdd Mon Sep 17 00:00:00 2001 From: mom040267 Date: Thu, 18 Sep 2014 06:26:50 +0000 Subject: [PATCH] server name cleaning --- src/apps/relay/mainrelay.c | 51 ++++++++++++++++++--------- src/apps/relay/mainrelay.h | 1 + src/apps/relay/ns_ioalib_impl.h | 2 +- src/apps/relay/userdb.c | 61 ++++++++++++--------------------- 4 files changed, 58 insertions(+), 57 deletions(-) diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 9942910..462646a 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -85,7 +85,7 @@ LOW_DEFAULT_PORTS_BOUNDARY,HIGH_DEFAULT_PORTS_BOUNDARY,0,0,0,"", 0,NULL,0,NULL,DEFAULT_GENERAL_RELAY_SERVERS_NUMBER,0, ////////////// Auth server ///////////////////////////////////// {NULL,NULL,NULL,0,NULL}, -"", +"","", /////////////// AUX SERVERS //////////////// {NULL,0,{0,NULL}},0, /////////////// ALTERNATE SERVERS //////////////// @@ -1693,26 +1693,38 @@ static void drop_privileges(void) } static void init_oauth_server_name(void) { - struct utsname name; - if(!uname(&name)) { - STRCPY(turn_params.oauth_server_name,name.nodename); - } + if(!turn_params.oauth_server_name[0]) { - STRCPY(turn_params.oauth_server_name,TURN_SOFTWARE); - } - { - char domain[513]; - if(getdomainname(domain,sizeof(domain)-1)>=0) { - size_t dlen = strlen(domain); - if(dlen>0 && domain[0] != '(') { - size_t slen = strlen(turn_params.oauth_server_name); + + struct utsname name; + + if(!uname(&name)) { + STRCPY(turn_params.oauth_server_name,name.nodename); + } + if(!turn_params.oauth_server_name[0]) { + STRCPY(turn_params.oauth_server_name,TURN_SOFTWARE); + } + + size_t slen = strlen(turn_params.oauth_server_name); + + if(get_realm(NULL)->options.name[0]) { + turn_params.oauth_server_name[slen]='.'; + ns_bcopy(get_realm(NULL)->options.name,turn_params.oauth_server_name+slen+1,strlen(get_realm(NULL)->options.name)+1); + } else { + size_t dlen = strlen(turn_params.domain); + if(dlen>0 && turn_params.domain[0] != '(') { turn_params.oauth_server_name[slen]='.'; - ns_bcopy(domain,turn_params.oauth_server_name+slen+1,strlen(domain)+1); + ns_bcopy(turn_params.domain,turn_params.oauth_server_name+slen+1,strlen(turn_params.domain)+1); } } } } +static void init_domain(void) +{ + getdomainname(turn_params.domain,sizeof(turn_params.domain)-1); +} + int main(int argc, char **argv) { int c = 0; @@ -1727,7 +1739,8 @@ int main(int argc, char **argv) redis_async_init(); #endif - create_new_realm(NULL); + init_domain(); + create_default_realm(); init_turn_server_addrs_list(&turn_params.alternate_servers_list); init_turn_server_addrs_list(&turn_params.tls_alternate_servers_list); @@ -1738,7 +1751,6 @@ int main(int argc, char **argv) init_listener(); init_secrets_list(&turn_params.default_users_db.ram_db.static_auth_secrets); init_dynamic_ip_lists(); - init_oauth_server_name(); if (!strstr(argv[0], "turnadmin")) { @@ -1815,6 +1827,13 @@ int main(int argc, char **argv) read_config_file(argc,argv,1); + if(!get_realm(NULL)->options.name[0]) { + STRCPY(get_realm(NULL)->options.name,turn_params.domain); + } + + init_oauth_server_name(); + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Domain name: %s\n",turn_params.domain); + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Default realm: %s\n",get_realm(NULL)->options.name); TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Server name: %s\n",turn_params.oauth_server_name); optind = 0; diff --git a/src/apps/relay/mainrelay.h b/src/apps/relay/mainrelay.h index be56bd4..da45b0d 100644 --- a/src/apps/relay/mainrelay.h +++ b/src/apps/relay/mainrelay.h @@ -272,6 +272,7 @@ typedef struct _turn_params_ { struct auth_server authserver; char oauth_server_name[1025]; + char domain[1025]; /////////////// AUX SERVERS //////////////// diff --git a/src/apps/relay/ns_ioalib_impl.h b/src/apps/relay/ns_ioalib_impl.h index a44f288..a0934b9 100644 --- a/src/apps/relay/ns_ioalib_impl.h +++ b/src/apps/relay/ns_ioalib_impl.h @@ -236,7 +236,7 @@ typedef struct _timer_event /* realm */ -void create_new_realm(char* name); +void create_default_realm(); int get_realm_data(char* name, realm_params_t* rp); /* engine handling */ diff --git a/src/apps/relay/userdb.c b/src/apps/relay/userdb.c index 6763bca..a00b58b 100644 --- a/src/apps/relay/userdb.c +++ b/src/apps/relay/userdb.c @@ -65,15 +65,6 @@ //////////// REALM ////////////// static realm_params_t *default_realm_params_ptr = NULL; -static const realm_params_t _default_realm_params = -{ - 1, - { - "\0", /* name */ - {0,0,0} - }, - {0,NULL} -}; static ur_string_map *realms = NULL; static turn_mutex o_to_realm_mutex; @@ -95,40 +86,30 @@ void update_o_to_realm(ur_string_map * o_to_realm_new) { TURN_MUTEX_UNLOCK(&o_to_realm_mutex); } -void create_new_realm(char* name) +void create_default_realm() { - realm_params_t *ret = NULL; - - if((name == NULL)||(name[0]==0)) { - if(default_realm_params_ptr) { - return; - } - /* init everything: */ - TURN_MUTEX_INIT_RECURSIVE(&o_to_realm_mutex); - init_secrets_list(&realms_list); - o_to_realm = ur_string_map_create(free); - default_realm_params_ptr = (realm_params_t*)malloc(sizeof(realm_params_t)); - ns_bcopy(&_default_realm_params,default_realm_params_ptr,sizeof(realm_params_t)); - realms = ur_string_map_create(NULL); - ur_string_map_lock(realms); - ret = default_realm_params_ptr; - } else { - ur_string_map_value_type value = 0; - ur_string_map_lock(realms); - if (!ur_string_map_get(realms, (const ur_string_map_key_type) name, &value)) { - ret = (realm_params_t*)turn_malloc(sizeof(realm_params_t)); - ns_bcopy(default_realm_params_ptr,ret,sizeof(realm_params_t)); - STRCPY(ret->options.name,name); - value = (ur_string_map_value_type)ret; - ur_string_map_put(realms, (const ur_string_map_key_type) name, value); - add_to_secrets_list(&realms_list, name); - } else { - ur_string_map_unlock(realms); - return; - } + if(default_realm_params_ptr) { + return; } - ret->status.alloc_counters = ur_string_map_create(NULL); + static realm_params_t _default_realm_params = + { + 1, + { + "\0", /* name */ + {0,0,0} + }, + {0,NULL} + }; + + /* init everything: */ + TURN_MUTEX_INIT_RECURSIVE(&o_to_realm_mutex); + init_secrets_list(&realms_list); + o_to_realm = ur_string_map_create(free); + default_realm_params_ptr = &_default_realm_params; + realms = ur_string_map_create(NULL); + ur_string_map_lock(realms); + default_realm_params_ptr->status.alloc_counters = ur_string_map_create(NULL); ur_string_map_unlock(realms); }