users list improved

This commit is contained in:
mom040267 2014-07-13 06:15:15 +00:00
parent b4a78d1af4
commit 541736ebed
4 changed files with 35 additions and 16 deletions

View File

@ -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;

View File

@ -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]);
}
}
}
}

View File

@ -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<PQntuples(res);i++) {
char *kval = PQgetvalue(res,i,0);
if(kval) {
printf("%s\n",kval);
char *rval = PQgetvalue(res,i,1);
if(rval && *rval) {
printf("%s[%s]\n",kval,rval);
} else {
printf("%s\n",kval);
}
}
}
ret = 0;
ret = 0;
}
if(res) {
PQclear(res);

View File

@ -650,7 +650,7 @@ static int redis_list_users(int is_st, u08bits *realm) {
}
clean_secrets_list(&keys);
ret = 0;
ret = 0;
}
return ret;
}