users list improved
This commit is contained in:
parent
b4a78d1af4
commit
541736ebed
@ -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;
|
||||
|
||||
@ -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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -650,7 +650,7 @@ static int redis_list_users(int is_st, u08bits *realm) {
|
||||
}
|
||||
|
||||
clean_secrets_list(&keys);
|
||||
ret = 0;
|
||||
ret = 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user