Explorar el Código

kazoo : add consumer key if appropriate

lazedo hace 8 años
padre
commit
b87ac3440a
Se han modificado 1 ficheros con 21 adiciones y 9 borrados
  1. 21 9
      src/modules/kazoo/kz_amqp.c

+ 21 - 9
src/modules/kazoo/kz_amqp.c

@@ -2848,9 +2848,13 @@ char* maybe_add_consumer_key(int server_id, amqp_bytes_t body)
     }
     char buffer[100];
     const char* server_id_str = json_object_get_string(server_id_obj);
-    sprintf(buffer, "consumer://%d/%s", server_id, server_id_str);
-    json_object_object_del(json_obj, BLF_JSON_SERVERID);
-    json_object_object_add(json_obj, BLF_JSON_SERVERID, json_object_new_string(buffer));
+    if(server_id_str && strlen(server_id_str) > 0) {
+    	sprintf(buffer, "consumer://%d/%s", server_id, server_id_str);
+        json_object_object_del(json_obj, BLF_JSON_SERVERID);
+    	json_object_object_add(json_obj, BLF_JSON_SERVERID, json_object_new_string(buffer));
+    } else {
+        json_object_object_del(json_obj, BLF_JSON_SERVERID);
+    }
     shm_free(payload);
     payload = kz_amqp_bytes_dup(amqp_cstring_bytes((char*)json_object_to_json_string(json_obj)));
    	json_object_put(json_obj);
@@ -2894,9 +2898,13 @@ void kz_send_targeted_cmd(int server_id, amqp_bytes_t body)
     JObj = kz_json_get_object(json_obj, BLF_JSON_SERVERID);
     if(JObj != NULL) {
     	server_id_str = (char*) json_object_get_string(JObj);
-        sprintf(buffer, "consumer://%d/%s", server_id, server_id_str);
-        json_object_object_del(json_obj, BLF_JSON_SERVERID);
-        json_object_object_add(json_obj, BLF_JSON_SERVERID, json_object_new_string(buffer));
+        if(server_id_str && strlen(server_id_str) > 0) {
+        	sprintf(buffer, "consumer://%d/%s", server_id, server_id_str);
+            json_object_object_del(json_obj, BLF_JSON_SERVERID);
+        	json_object_object_add(json_obj, BLF_JSON_SERVERID, json_object_new_string(buffer));
+        } else {
+            json_object_object_del(json_obj, BLF_JSON_SERVERID);
+        }
     }
 
     cmd->return_payload = kz_amqp_string_dup((char*)json_object_to_json_string(json_obj));
@@ -2957,9 +2965,13 @@ void kz_amqp_send_worker_event(kz_amqp_server_ptr server_ptr, amqp_envelope_t* e
     JObj = kz_json_get_object(json_obj, BLF_JSON_SERVERID);
     if(JObj != NULL) {
         const char* _kz_server_id_str = json_object_get_string(JObj);
-        sprintf(buffer, "consumer://%d/%s", _kz_server_id, _kz_server_id_str);
-        json_object_object_del(json_obj, BLF_JSON_SERVERID);
-        json_object_object_add(json_obj, BLF_JSON_SERVERID, json_object_new_string(buffer));
+        if(_kz_server_id_str && strlen(_kz_server_id_str) > 0) {
+        	sprintf(buffer, "consumer://%d/%s", _kz_server_id, _kz_server_id_str);
+            json_object_object_del(json_obj, BLF_JSON_SERVERID);
+        	json_object_object_add(json_obj, BLF_JSON_SERVERID, json_object_new_string(buffer));
+        } else {
+            json_object_object_del(json_obj, BLF_JSON_SERVERID);
+        }
     }
 
     json_object_object_add(json_obj, BLF_JSON_BROKER_ZONE, json_object_new_string(server_ptr->zone->zone));