mirror of
				https://github.com/coturn/coturn.git
				synced 2025-11-04 00:41:02 +01:00 
			
		
		
		
	Reduce code duplication when printing userdb (#1103)
TURN_USERDB_TYPE enum does not need to be "dynamic" based on what libraries actually available during the build - all potentially supported DB options are now enumerated. Printing (to log or http) the DB type name is done with much less code (using a helper function `userdb_type_to_string`)
This commit is contained in:
		
							parent
							
								
									744a263d80
								
							
						
					
					
						commit
						5d44f5087b
					
				@ -744,35 +744,7 @@ static void cli_print_configuration(struct cli_session *cs) {
 | 
				
			|||||||
    myprintf(cs, "\n");
 | 
					    myprintf(cs, "\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (turn_params.default_users_db.persistent_users_db.userdb[0]) {
 | 
					    if (turn_params.default_users_db.persistent_users_db.userdb[0]) {
 | 
				
			||||||
      switch (turn_params.default_users_db.userdb_type) {
 | 
					      cli_print_str(cs, userdb_type_to_string(turn_params.default_users_db.userdb_type), "DB type", 0);
 | 
				
			||||||
#if !defined(TURN_NO_SQLITE)
 | 
					 | 
				
			||||||
      case TURN_USERDB_TYPE_SQLITE:
 | 
					 | 
				
			||||||
        cli_print_str(cs, "SQLite", "DB type", 0);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_PQ)
 | 
					 | 
				
			||||||
      case TURN_USERDB_TYPE_PQ:
 | 
					 | 
				
			||||||
        cli_print_str(cs, "Postgres", "DB type", 0);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_MYSQL)
 | 
					 | 
				
			||||||
      case TURN_USERDB_TYPE_MYSQL:
 | 
					 | 
				
			||||||
        cli_print_str(cs, "MySQL/MariaDB", "DB type", 0);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_MONGO)
 | 
					 | 
				
			||||||
      case TURN_USERDB_TYPE_MONGO:
 | 
					 | 
				
			||||||
        cli_print_str(cs, "MongoDB", "DB type", 0);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_HIREDIS)
 | 
					 | 
				
			||||||
      case TURN_USERDB_TYPE_REDIS:
 | 
					 | 
				
			||||||
        cli_print_str(cs, "redis", "DB type", 0);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        cli_print_str(cs, "unknown", "DB type", 0);
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      cli_print_str(cs, turn_params.default_users_db.persistent_users_db.userdb, "DB", 0);
 | 
					      cli_print_str(cs, turn_params.default_users_db.persistent_users_db.userdb, "DB", 0);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      cli_print_str(cs, "none", "DB type", 0);
 | 
					      cli_print_str(cs, "none", "DB type", 0);
 | 
				
			||||||
@ -2125,35 +2097,7 @@ static void write_pc_page(ioa_socket_handle s) {
 | 
				
			|||||||
        https_print_empty_row(sb, 2);
 | 
					        https_print_empty_row(sb, 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (turn_params.default_users_db.persistent_users_db.userdb[0]) {
 | 
					        if (turn_params.default_users_db.persistent_users_db.userdb[0]) {
 | 
				
			||||||
          switch (turn_params.default_users_db.userdb_type) {
 | 
					          https_print_str(sb, userdb_type_to_string(turn_params.default_users_db.userdb_type), "DB type", 0);
 | 
				
			||||||
#if !defined(TURN_NO_SQLITE)
 | 
					 | 
				
			||||||
          case TURN_USERDB_TYPE_SQLITE:
 | 
					 | 
				
			||||||
            https_print_str(sb, "SQLite", "DB type", 0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_PQ)
 | 
					 | 
				
			||||||
          case TURN_USERDB_TYPE_PQ:
 | 
					 | 
				
			||||||
            https_print_str(sb, "Postgres", "DB type", 0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_MYSQL)
 | 
					 | 
				
			||||||
          case TURN_USERDB_TYPE_MYSQL:
 | 
					 | 
				
			||||||
            https_print_str(sb, "MySQL/MariaDB", "DB type", 0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_MONGO)
 | 
					 | 
				
			||||||
          case TURN_USERDB_TYPE_MONGO:
 | 
					 | 
				
			||||||
            https_print_str(sb, "MongoDB", "DB type", 0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_HIREDIS)
 | 
					 | 
				
			||||||
          case TURN_USERDB_TYPE_REDIS:
 | 
					 | 
				
			||||||
            https_print_str(sb, "redis", "DB type", 0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
          default:
 | 
					 | 
				
			||||||
            https_print_str(sb, "unknown", "DB type", 0);
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
          if (is_superuser()) {
 | 
					          if (is_superuser()) {
 | 
				
			||||||
            https_print_str(sb, turn_params.default_users_db.persistent_users_db.userdb, "DB", 0);
 | 
					            https_print_str(sb, turn_params.default_users_db.persistent_users_db.userdb, "DB", 0);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
				
			|||||||
@ -68,6 +68,35 @@ static TURN_MUTEX_DECLARE(o_to_realm_mutex);
 | 
				
			|||||||
static ur_string_map *o_to_realm = NULL;
 | 
					static ur_string_map *o_to_realm = NULL;
 | 
				
			||||||
static secrets_list_t realms_list;
 | 
					static secrets_list_t realms_list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static char userdb_type_unknown[] = "Unknown";
 | 
				
			||||||
 | 
					static char userdb_type_sqlite[] = "SQLite";
 | 
				
			||||||
 | 
					static char userdb_type_postgresql[] = "PostgreSQL";
 | 
				
			||||||
 | 
					static char userdb_type_mysql[] = "MySQL/MariaDB";
 | 
				
			||||||
 | 
					static char userdb_type_mongo[] = "MongoDB";
 | 
				
			||||||
 | 
					static char userdb_type_redis[] = "Redis";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const char *userdb_type_to_string(TURN_USERDB_TYPE t) {
 | 
				
			||||||
 | 
					  switch (t) {
 | 
				
			||||||
 | 
					  case TURN_USERDB_TYPE_SQLITE:
 | 
				
			||||||
 | 
					    return userdb_type_sqlite;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case TURN_USERDB_TYPE_PQ:
 | 
				
			||||||
 | 
					    return userdb_type_postgresql;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case TURN_USERDB_TYPE_MYSQL:
 | 
				
			||||||
 | 
					    return userdb_type_mysql;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case TURN_USERDB_TYPE_MONGO:
 | 
				
			||||||
 | 
					    return userdb_type_mongo;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case TURN_USERDB_TYPE_REDIS:
 | 
				
			||||||
 | 
					    return userdb_type_redis;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  default:
 | 
				
			||||||
 | 
					    return userdb_type_unknown;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void lock_realms(void) { ur_string_map_lock(realms); }
 | 
					void lock_realms(void) { ur_string_map_lock(realms); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void unlock_realms(void) { ur_string_map_unlock(realms); }
 | 
					void unlock_realms(void) { ur_string_map_unlock(realms); }
 | 
				
			||||||
 | 
				
			|||||||
@ -92,25 +92,11 @@ struct auth_message {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum _TURN_USERDB_TYPE {
 | 
					enum _TURN_USERDB_TYPE {
 | 
				
			||||||
#if !defined(TURN_NO_SQLITE)
 | 
					  TURN_USERDB_TYPE_UNKNOWN,
 | 
				
			||||||
  TURN_USERDB_TYPE_UNKNOWN = -1,
 | 
					  TURN_USERDB_TYPE_SQLITE,
 | 
				
			||||||
  TURN_USERDB_TYPE_SQLITE = 0
 | 
					  TURN_USERDB_TYPE_PQ,
 | 
				
			||||||
#else
 | 
					  TURN_USERDB_TYPE_MYSQL,
 | 
				
			||||||
  TURN_USERDB_TYPE_UNKNOWN = 0
 | 
					  TURN_USERDB_TYPE_MONGO,
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_PQ)
 | 
					 | 
				
			||||||
  ,
 | 
					 | 
				
			||||||
  TURN_USERDB_TYPE_PQ
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_MYSQL)
 | 
					 | 
				
			||||||
  ,
 | 
					 | 
				
			||||||
  TURN_USERDB_TYPE_MYSQL
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#if !defined(TURN_NO_MONGO)
 | 
					 | 
				
			||||||
  ,
 | 
					 | 
				
			||||||
  TURN_USERDB_TYPE_MONGO
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
  ,
 | 
					 | 
				
			||||||
  TURN_USERDB_TYPE_REDIS
 | 
					  TURN_USERDB_TYPE_REDIS
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -173,6 +159,7 @@ typedef struct _default_users_db_t {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/////////////////////////////////////////////
 | 
					/////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const char *userdb_type_to_string(TURN_USERDB_TYPE t);
 | 
				
			||||||
realm_params_t *get_realm(char *name);
 | 
					realm_params_t *get_realm(char *name);
 | 
				
			||||||
void set_default_realm_name(char *realm);
 | 
					void set_default_realm_name(char *realm);
 | 
				
			||||||
int change_total_quota(char *realm, int value);
 | 
					int change_total_quota(char *realm, int value);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user