libevent.rpm
mom040267 10 years ago
parent f29f111fdc
commit da0f380b18
  1. 15
      src/apps/relay/dbdrivers/dbd_mongo.c
  2. 7
      src/apps/relay/dbdrivers/dbd_mysql.c
  3. 7
      src/apps/relay/dbdrivers/dbd_pgsql.c
  4. 15
      src/apps/relay/dbdrivers/dbd_redis.c
  5. 14
      src/apps/relay/dbdrivers/dbd_sqlite.c
  6. 2
      src/apps/relay/dbdrivers/dbdriver.h
  7. 56
      src/apps/relay/turn_admin_server.c
  8. 2
      src/apps/relay/userdb.c

@ -1318,7 +1318,7 @@ static int mongo_del_admin_user(const u08bits *usname)
return ret;
}
static int mongo_list_admin_users(void)
static int mongo_list_admin_users(int no_print)
{
const char * collection_name = "admin_user";
mongoc_collection_t * collection = mongo_get_collection(collection_name);
@ -1352,6 +1352,7 @@ static int mongo_list_admin_users(void)
bson_iter_t iter;
bson_iter_t iter_realm;
const char * value;
ret = 0;
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);
@ -1360,16 +1361,18 @@ static int mongo_list_admin_users(void)
if (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);
++ret;
if(!no_print) {
if(realm && *realm) {
printf("%s[%s]\n", value, realm);
} else {
printf("%s\n", value);
}
}
}
}
}
mongoc_cursor_destroy(cursor);
ret = 0;
}
mongoc_collection_destroy(collection);
bson_destroy(&query);

@ -1189,7 +1189,7 @@ static int mysql_del_admin_user(const u08bits *usname)
return ret;
}
static int mysql_list_admin_users(void)
static int mysql_list_admin_users(int no_print)
{
int ret = -1;
char statement[TURN_LONG_STRING_SIZE];
@ -1207,12 +1207,14 @@ static int mysql_list_admin_users(void)
} else if(mysql_field_count(myc)!=2) {
TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Unknown error retrieving MySQL DB information: %s\n",statement);
} else {
ret = 0;
for(;;) {
MYSQL_ROW row = mysql_fetch_row(mres);
if(!row) {
break;
} else {
if(row[0]) {
++ret;
if(row[0] && !no_print) {
if(row[1] && row[1][0]) {
printf("%s[%s]\n",row[0],row[1]);
} else {
@ -1221,7 +1223,6 @@ static int mysql_list_admin_users(void)
}
}
}
ret = 0;
}
if(mres)

@ -920,7 +920,7 @@ static int pgsql_del_admin_user(const u08bits *usname)
return ret;
}
static int pgsql_list_admin_users(void)
static int pgsql_list_admin_users(int no_print)
{
int ret = -1;
char statement[TURN_LONG_STRING_SIZE];
@ -934,9 +934,11 @@ static int pgsql_list_admin_users(void)
TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Error retrieving PostgreSQL DB information: %s\n",PQerrorMessage(pqc));
} else {
int i = 0;
ret = 0;
for(i=0;i<PQntuples(res);i++) {
char *kval = PQgetvalue(res,i,0);
if(kval) {
++ret;
if(kval && !no_print) {
char *rval = PQgetvalue(res,i,1);
if(rval && *rval) {
printf("%s[%s]\n",kval,rval);
@ -945,7 +947,6 @@ static int pgsql_list_admin_users(void)
}
}
}
ret = 0;
}
if(res) {
PQclear(res);

@ -1288,7 +1288,7 @@ static int redis_del_admin_user(const u08bits *usname) {
return ret;
}
static int redis_list_admin_users(void)
static int redis_list_admin_users(int no_print)
{
int ret = -1;
donot_print_connection_success = 1;
@ -1320,22 +1320,25 @@ static int redis_list_admin_users(void)
}
}
ret = 0;
for(isz=0;isz<keys.sz;++isz) {
char *s = keys.secrets[isz];
s += strlen("turn/admin_user/");
u08bits realm[STUN_MAX_REALM_SIZE];
password_t pwd;
if(redis_get_admin_user((const u08bits*)s,realm,pwd) == 0) {
if(realm[0]) {
printf("%s[%s]\n",s,realm);
} else {
printf("%s\n",s);
++ret;
if(!no_print) {
if(realm[0]) {
printf("%s[%s]\n",s,realm);
} else {
printf("%s\n",s);
}
}
}
}
clean_secrets_list(&keys);
ret = 0;
return ret;
}

@ -1241,7 +1241,7 @@ static int sqlite_del_admin_user(const u08bits *usname)
return ret;
}
static int sqlite_list_admin_users(void)
static int sqlite_list_admin_users(int no_print)
{
int ret = -1;
char statement[TURN_LONG_STRING_SIZE];
@ -1266,12 +1266,16 @@ static int sqlite_list_admin_users(void)
const char* kval = (const char*) sqlite3_column_text(st, 0);
const char* rval = (const char*) sqlite3_column_text(st, 1);
if (rval && *rval) {
printf("%s[%s]\n", kval, rval);
} else {
printf("%s\n", kval);
if(!no_print) {
if (rval && *rval) {
printf("%s[%s]\n", kval, rval);
} else {
printf("%s\n", kval);
}
}
++ret;
} else if (res == SQLITE_DONE) {
break;
} else {

@ -72,7 +72,7 @@ typedef struct _turn_dbdriver_t {
int (*get_admin_user)(const u08bits *usname, u08bits *realm, password_t pwd);
int (*set_admin_user)(const u08bits *usname, const u08bits *realm, const password_t pwd);
int (*del_admin_user)(const u08bits *usname);
int (*list_admin_users)(void);
int (*list_admin_users)(int no_print);
} turn_dbdriver_t;
/////////// USER DB CHECK //////////////////

@ -1536,7 +1536,7 @@ static void https_print_page_header(struct str_buffer *sb)
str_buffer_append(sb,"<br>\r\n");
}
static void https_finish_page(struct str_buffer *sb, ioa_socket_handle s)
static void https_finish_page(struct str_buffer *sb, ioa_socket_handle s, int cclose)
{
str_buffer_append(sb,"</body>\r\n</html>\r\n");
@ -1544,6 +1544,9 @@ static void https_finish_page(struct str_buffer *sb, ioa_socket_handle s)
send_str_from_ioa_socket_tcp(s,TURN_SOFTWARE);
send_str_from_ioa_socket_tcp(s,"\r\n");
send_str_from_ioa_socket_tcp(s,get_http_date_header());
if(cclose) {
send_str_from_ioa_socket_tcp(s,"Connection: close");
}
send_str_from_ioa_socket_tcp(s,"Content-Type: text/html; charset=UTF-8\r\nContent-Length: ");
send_ulong_from_ioa_socket_tcp(s,str_buffer_get_str_len(sb));
@ -1574,18 +1577,31 @@ static void write_https_logon_page(ioa_socket_handle s)
https_print_top_page_header(sb);
str_buffer_append(sb,"<br><br>\r\n");
str_buffer_append(sb,"<form action=\"");
str_buffer_append(sb,form_names[AS_FORM_LOGON].name);
str_buffer_append(sb,"\" method=\"POST\">\r\n");
str_buffer_append(sb," <fieldset><legend>Admin user information:</legend> user name:<br><input required type=\"text\" name=\"");
str_buffer_append(sb,HR_USERNAME);
str_buffer_append(sb,"\" value=\"\"><br>password:<br><input required type=\"password\" name=\"");
str_buffer_append(sb,HR_PASSWORD);
str_buffer_append(sb,"\" value=\"\"><br><br><input type=\"submit\" value=\"Login\"></fieldset>\r\n");
str_buffer_append(sb,"</form>\r\n");
int we_have_admin_users = 0;
const turn_dbdriver_t * dbd = get_dbdriver();
if (dbd && dbd->list_admin_users) {
int ausers = dbd->list_admin_users(1);
if(ausers>0) {
we_have_admin_users = 1;
}
}
if(!we_have_admin_users) {
str_buffer_append(sb,"<br>To use the HTTPS admin connection, you have to set the database table <b><i>admin_user</i></b> with the admin user accounts.<br>\r\n");
} else {
str_buffer_append(sb,"<br><br>\r\n");
str_buffer_append(sb,"<form action=\"");
str_buffer_append(sb,form_names[AS_FORM_LOGON].name);
str_buffer_append(sb,"\" method=\"POST\">\r\n");
str_buffer_append(sb," <fieldset><legend>Admin user information:</legend> user name:<br><input required type=\"text\" name=\"");
str_buffer_append(sb,HR_USERNAME);
str_buffer_append(sb,"\" value=\"\"><br>password:<br><input required type=\"password\" name=\"");
str_buffer_append(sb,HR_PASSWORD);
str_buffer_append(sb,"\" value=\"\"><br><br><input type=\"submit\" value=\"Login\"></fieldset>\r\n");
str_buffer_append(sb,"</form>\r\n");
}
https_finish_page(sb,s);
https_finish_page(sb,s,!we_have_admin_users);
}
}
@ -1676,7 +1692,7 @@ static void write_https_home_page(ioa_socket_handle s)
str_buffer_append(sb,"</fieldset>\r\n");
str_buffer_append(sb,"</form>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -2132,7 +2148,7 @@ static void write_pc_page(ioa_socket_handle s)
str_buffer_append(sb,"\r\n</table>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -2364,7 +2380,7 @@ static void write_ps_page(ioa_socket_handle s, const char* client_protocol, cons
str_buffer_append_sz(sb,total_sz);
str_buffer_append(sb,"<br>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -2517,7 +2533,7 @@ static void write_users_page(ioa_socket_handle s, const u08bits *add_user, const
str_buffer_append_sz(sb,total_sz);
str_buffer_append(sb,"<br>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -2651,7 +2667,7 @@ static void write_shared_secrets_page(ioa_socket_handle s, const char* add_secre
str_buffer_append_sz(sb,total_sz);
str_buffer_append(sb,"<br>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -2784,7 +2800,7 @@ static void write_origins_page(ioa_socket_handle s, const char* add_origin, cons
str_buffer_append_sz(sb,total_sz);
str_buffer_append(sb,"<br>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -2937,7 +2953,7 @@ static void write_https_oauth_show_keys(ioa_socket_handle s, const char* kid)
}
}
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}
@ -3173,7 +3189,7 @@ static void write_https_oauth_page(ioa_socket_handle s, const char* add_kid, con
str_buffer_append_sz(sb,total_sz);
str_buffer_append(sb,"<br>\r\n");
https_finish_page(sb,s);
https_finish_page(sb,s,0);
}
}
}

@ -775,7 +775,7 @@ static int list_users(u08bits *realm, int is_admin)
if (dbd) {
if(is_admin) {
if(dbd->list_admin_users) {
(*dbd->list_admin_users)();
(*dbd->list_admin_users)(0);
}
} else {
if(dbd->list_users) {

Loading…
Cancel
Save