Răsfoiți Sursa

origin-to-realm map fixed

mom040267 11 ani în urmă
părinte
comite
95861605d7

+ 7 - 3
src/apps/relay/dbdrivers/dbd_mongo.c

@@ -815,6 +815,8 @@ static void mongo_reread_realms(secrets_list_t * realms_list) {
     	if (bson_iter_init(&iter, item) && bson_iter_find(&iter, "realm") && BSON_ITER_HOLDS_UTF8(&iter)) {
         char * _realm = strdup(bson_iter_utf8(&iter, &length));
 
+        get_realm(_realm);
+
         if (bson_iter_init(&iter, item) && bson_iter_find(&iter, "origin") && BSON_ITER_HOLDS_ARRAY(&iter)) {
           const uint8_t *docbuf = NULL;
           uint32_t doclen = 0;
@@ -827,9 +829,11 @@ static void mongo_reread_realms(secrets_list_t * realms_list) {
           if (bson_iter_init(&origin_iter, &origin_array)) {
             while(bson_iter_next(&origin_iter)) {
               if (BSON_ITER_HOLDS_UTF8(&origin_iter)) {
-                const char * _origin = bson_iter_utf8(&origin_iter, &length);
-								ur_string_map_value_type value = strdup(_origin);
-								ur_string_map_put(o_to_realm_new, (const ur_string_map_key_type)_realm, value);
+                char * _origin = strdup(bson_iter_utf8(&origin_iter, &length));
+				char *rval = strdup(_realm);
+				ur_string_map_value_type value = (ur_string_map_value_type)(rval);
+				ur_string_map_put(o_to_realm_new, (const ur_string_map_key_type) _origin, value);
+				free(_origin);
               }
             }
           }

+ 2 - 2
src/apps/relay/dbdrivers/dbd_mysql.c

@@ -741,14 +741,14 @@ static void mysql_reread_realms(secrets_list_t * realms_list) {
 									oval[sz]=0;
 									char *rval=strdup(row[1]);
 									get_realm(rval);
-									ur_string_map_value_type value = strdup(rval);
+									ur_string_map_value_type value = (ur_string_map_value_type)rval;
 									ur_string_map_put(o_to_realm_new, (const ur_string_map_key_type) oval, value);
 								}
 							}
 						}
 					}
 
-          update_o_to_realm(o_to_realm_new);
+					update_o_to_realm(o_to_realm_new);
 				}
 
 				if(mres)