This is an automated email from the ASF dual-hosted git repository.

astitcher pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git

commit 0ad20092eb68e08a784a988af31dfc2be500e7f5
Author: Andrew Stitcher <astitc...@apache.org>
AuthorDate: Wed Jun 1 08:22:43 2022 -0400

    PROTON-2556: Removed gratuitous use of pn_string from reactor-send
---
 c/tools/reactor-send.c | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/c/tools/reactor-send.c b/c/tools/reactor-send.c
index 1b7870f79..5929ddc3d 100644
--- a/c/tools/reactor-send.c
+++ b/c/tools/reactor-send.c
@@ -85,9 +85,9 @@ typedef struct {
   char *encoded_data;
   size_t encoded_data_size;
   pn_url_t *send_url;
-  pn_string_t *hostname;
-  pn_string_t *container_id;
-  pn_string_t *reply_to;
+  char hostname[256];
+  char reply_to[256]; // This should be large enough for the return address
+  const char *container_id;
 } sender_context_t;
 
 void sender_context_init(sender_context_t *sc, Options_t *opts, Statistics_t 
*stats)
@@ -101,14 +101,13 @@ void sender_context_init(sender_context_t *sc, Options_t 
*opts, Statistics_t *st
   sc->encoded_data_size = sc->opts->msg_size + 4096;
   sc->encoded_data = (char *)calloc(1, sc->encoded_data_size);
   check(sc->encoded_data, "failed to allocate encoding buffer");
-  sc->container_id = pn_string("reactor-send"); // prefer uuid-like name
+  sc->container_id = "reactor-send"; // prefer uuid-like name
 
   sc->reply_message = (sc->opts->get_replies) ? pn_message() : 0;
   sc->message = pn_message();
   check(sc->message, "failed to allocate a message");
-  sc->reply_to = pn_string("amqp://");
-  pn_string_addf(sc->reply_to, "%s", pn_string_get(sc->container_id));
-  pn_message_set_reply_to(sc->message, pn_string_get(sc->reply_to));
+  snprintf(sc->reply_to, sizeof(sc->reply_to), "amqp://%s", sc->container_id);
+  pn_message_set_reply_to(sc->message, sc->reply_to);
   pn_data_t *body = pn_message_body(sc->message);
   // borrow the encoding buffer this one time
   char *data = sc->encoded_data;
@@ -118,9 +117,11 @@ void sender_context_init(sender_context_t *sc, Options_t 
*opts, Statistics_t *st
   sc->send_url = pn_url_parse(sc->opts->targets.addresses[0]);
   const char *host = pn_url_get_host(sc->send_url);
   const char *port = pn_url_get_port(sc->send_url);
-  sc->hostname = pn_string(host);
-  if (port && strlen(port))
-    pn_string_addf(sc->hostname, ":%s", port);
+  if (port && strlen(port)) {
+    snprintf(sc->hostname, sizeof(sc->hostname), "%s:%s", host, port);
+  } else {
+    snprintf(sc->hostname, sizeof(sc->hostname), "%s", host);
+  }
 }
 
 sender_context_t *sender_context(pn_handler_t *h)
@@ -134,9 +135,6 @@ void sender_cleanup(pn_handler_t *h)
   pn_message_free(sc->message);
   pn_message_free(sc->reply_message);
   pn_url_free(sc->send_url);
-  pn_free(sc->hostname);
-  pn_free(sc->container_id);
-  pn_free(sc->reply_to);
   free(sc->encoded_data);
 }
 
@@ -147,7 +145,7 @@ pn_message_t* get_message(sender_context_t *sc, bool 
sending) {
     pn_message_t *m = pn_message();
     check(m, "failed to allocate a message");
     if (sending) {
-      pn_message_set_reply_to(m, pn_string_get(sc->reply_to));
+      pn_message_set_reply_to(m, sc->reply_to);
       // copy the data
       pn_data_t *body = pn_message_body(m);
       pn_data_t *template_body = pn_message_body(sc->message);
@@ -172,8 +170,8 @@ void sender_dispatch(pn_handler_t *h, pn_event_t *event, 
pn_event_type_t type)
   case PN_CONNECTION_INIT:
     {
       pn_connection_t *conn = pn_event_connection(event);
-      pn_connection_set_container(conn, pn_string_get(sc->container_id));
-      pn_connection_set_hostname(conn, pn_string_get(sc->hostname));
+      pn_connection_set_container(conn, sc->container_id);
+      pn_connection_set_hostname(conn, sc->hostname);
       pn_connection_open(conn);
       pn_session_t *ssn = pn_session(conn);
       pn_session_open(ssn);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to