From 24594f74630567f72d3ccb0e6b80de09afb3242c Mon Sep 17 00:00:00 2001 From: Chris Wiggins Date: Wed, 11 Nov 2020 18:05:24 +1300 Subject: [PATCH] Check RabbitMQ admin topic in a better way --- transports/janus_rabbitmq.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/transports/janus_rabbitmq.c b/transports/janus_rabbitmq.c index 417a28baf3..ce98768fd2 100644 --- a/transports/janus_rabbitmq.c +++ b/transports/janus_rabbitmq.c @@ -839,17 +839,10 @@ void *janus_rmq_in_thread(void *data) { JANUS_LOG(LOG_VERB, "Delivery #%u, %.*s\n", (unsigned) d->delivery_tag, (int) d->routing_key.len, (char *) d->routing_key.bytes); /* Check if this is a Janus or Admin API request */ if(rmq_client->admin_api_enabled) { - if(d->routing_key.len == rmq_client->to_janus_admin_queue.len) { - size_t i=0; + char incoming_topic[d->routing_key.len + 2]; + strlcpy(incoming_topic, (char *)d->routing_key.bytes, d->routing_key.len + 1); // Convert the amqp_bytes_t back to char* + if (strcmp(incoming_topic, to_janus_admin) == 0) { admin = TRUE; - char *inq = (char *)d->routing_key.bytes; - char *expq = (char *)rmq_client->to_janus_admin_queue.bytes; - for(i=0; i< d->routing_key.len; i++) { - if(inq[i] != expq[i]) { - admin = FALSE; - break; - } - } } } JANUS_LOG(LOG_VERB, " -- This is %s API request\n", admin ? "an admin" : "a Janus");