From 541736ebed2dfbb3afd9fde5c74a25cd28d20aa1 Mon Sep 17 00:00:00 2001 From: mom040267 Date: Sun, 13 Jul 2014 06:15:15 +0000 Subject: [PATCH] users list improved --- src/apps/relay/dbdrivers/dbd_mongo.c | 20 +++++++++++++++----- src/apps/relay/dbdrivers/dbd_mysql.c | 14 +++++++++----- src/apps/relay/dbdrivers/dbd_pgsql.c | 15 ++++++++++----- src/apps/relay/dbdrivers/dbd_redis.c | 2 +- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/apps/relay/dbdrivers/dbd_mongo.c b/src/apps/relay/dbdrivers/dbd_mongo.c index 21a742d..05707b8 100644 --- a/src/apps/relay/dbdrivers/dbd_mongo.c +++ b/src/apps/relay/dbdrivers/dbd_mongo.c @@ -386,6 +386,7 @@ static int mongo_list_users(int is_st, u08bits *realm) { bson_t fields; bson_init(&fields); BSON_APPEND_INT32(&fields, "name", 1); + if(!is_st) BSON_APPEND_INT32(&fields, "realm", 1); mongoc_cursor_t * cursor; cursor = mongoc_collection_find(collection, MONGOC_QUERY_NONE, 0, 0, 0, &query, &fields, NULL); @@ -398,14 +399,23 @@ static int mongo_list_users(int is_st, u08bits *realm) { const bson_t * item; uint32_t length; bson_iter_t iter; + bson_iter_t iter_realm; const char * value; while (mongoc_cursor_next(cursor, &item)) { if (bson_iter_init(&iter, item) && bson_iter_find(&iter, "name") && BSON_ITER_HOLDS_UTF8(&iter)) { - value = bson_iter_utf8(&iter, &length); - if (length) { - printf("%s\n", value); - } - } + value = bson_iter_utf8(&iter, &length); + if (length) { + const char *realm = ""; + if (!is_st && bson_iter_init(&iter_realm, item) && bson_iter_find(&iter_realm, "realm") && BSON_ITER_HOLDS_UTF8(&iter_realm)) { + realm = bson_iter_utf8(&iter_realm, &length); + } + if(realm && *realm) { + printf("%s[%s]\n", value, realm); + } else { + printf("%s\n", value); + } + } + } } mongoc_cursor_destroy(cursor); ret = 0; diff --git a/src/apps/relay/dbdrivers/dbd_mysql.c b/src/apps/relay/dbdrivers/dbd_mysql.c index 37b4e42..42f5c2d 100644 --- a/src/apps/relay/dbdrivers/dbd_mysql.c +++ b/src/apps/relay/dbdrivers/dbd_mysql.c @@ -400,11 +400,11 @@ static int mysql_list_users(int is_st, u08bits *realm) { MYSQL * myc = get_mydb_connection(); if(myc) { if(is_st) { - snprintf(statement,sizeof(statement),"select name from turnusers_st order by name"); + snprintf(statement,sizeof(statement),"select name,'' from turnusers_st order by name"); } else if(realm && realm[0]) { - snprintf(statement,sizeof(statement),"select name from turnusers_lt where realm='%s' order by name",realm); + snprintf(statement,sizeof(statement),"select name, realm from turnusers_lt where realm='%s' order by name",realm); } else { - snprintf(statement,sizeof(statement),"select name from turnusers_lt order by name"); + snprintf(statement,sizeof(statement),"select name, realm from turnusers_lt order by name"); } int res = mysql_query(myc, statement); if(res) { @@ -413,7 +413,7 @@ static int mysql_list_users(int is_st, u08bits *realm) { MYSQL_RES *mres = mysql_store_result(myc); if(!mres) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Error retrieving MySQL DB information: %s\n",mysql_error(myc)); - } else if(mysql_field_count(myc)!=1) { + } else if(mysql_field_count(myc)!=2) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Unknown error retrieving MySQL DB information: %s\n",statement); } else { for(;;) { @@ -422,7 +422,11 @@ static int mysql_list_users(int is_st, u08bits *realm) { break; } else { if(row[0]) { - printf("%s\n",row[0]); + if(row[1] && row[1][0]) { + printf("%s[%s]\n",row[0],row[1]); + } else { + printf("%s\n",row[0]); + } } } } diff --git a/src/apps/relay/dbdrivers/dbd_pgsql.c b/src/apps/relay/dbdrivers/dbd_pgsql.c index d688e1c..2873702 100644 --- a/src/apps/relay/dbdrivers/dbd_pgsql.c +++ b/src/apps/relay/dbdrivers/dbd_pgsql.c @@ -253,11 +253,11 @@ static int pgsql_list_users(int is_st, u08bits *realm) { PGconn *pqc = get_pqdb_connection(); if(pqc) { if(is_st) { - snprintf(statement,sizeof(statement),"select name from turnusers_st order by name"); + snprintf(statement,sizeof(statement),"select name,'' from turnusers_st order by name"); } else if(realm && realm[0]) { - snprintf(statement,sizeof(statement),"select name from turnusers_lt where realm='%s' order by name",realm); + snprintf(statement,sizeof(statement),"select name,realm from turnusers_lt where realm='%s' order by name",realm); } else { - snprintf(statement,sizeof(statement),"select name from turnusers_lt order by name"); + snprintf(statement,sizeof(statement),"select name,realm from turnusers_lt order by name"); } PGresult *res = PQexec(pqc, statement); if(!res || (PQresultStatus(res) != PGRES_TUPLES_OK)) { @@ -267,10 +267,15 @@ static int pgsql_list_users(int is_st, u08bits *realm) { for(i=0;i