Author: aconway
Date: Thu Apr 10 15:04:54 2014
New Revision: 1586327

URL: http://svn.apache.org/r1586327
Log:
NO-JIRA: Have proton.c exit on error rather than abort, e.g. for bad command 
line options.

Modified:
    qpid/proton/trunk/proton-c/src/proton.c

Modified: qpid/proton/trunk/proton-c/src/proton.c
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/proton.c?rev=1586327&r1=1586326&r2=1586327&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/proton.c (original)
+++ qpid/proton/trunk/proton-c/src/proton.c Thu Apr 10 15:04:54 2014
@@ -41,12 +41,23 @@
 #include "platform_fmt.h"
 #include "protocol.h"
 
+void error_exit(const char* fmt, ...)
+{
+  va_list ap;
+  va_start(ap, fmt);
+  vfprintf(stderr, fmt, ap);
+  va_end(ap);
+  exit(1);
+}
+
+
 typedef struct {
   char *buf;
   size_t capacity;
 } heap_buffer;
 
 heap_buffer client_msg, client_data, server_data, server_iresp;
+
 void free_heap_buffers(void) {
   free(client_msg.buf);
   free(client_data.buf);
@@ -309,7 +320,7 @@ void client_callback(pn_connector_t *cto
     ctx->init = true;
 
     char container[1024];
-    if (gethostname(container, 1024)) pn_fatal("hostname lookup failed");
+    if (gethostname(container, 1024)) error_exit("hostname lookup failed");
 
     pn_connection_set_container(connection, container);
     pn_connection_set_hostname(connection, ctx->hostname);
@@ -418,7 +429,7 @@ int main(int argc, char **argv)
   {
     switch (opt) {
     case 'c':
-      if (url) pn_fatal("multiple connect urls not allowed\n");
+      if (url) error_exit("multiple connect urls not allowed\n");
       url = optarg;
       break;
     case 'a':
@@ -462,7 +473,7 @@ int main(int argc, char **argv)
       printf("    -h    Print this help.\n");
       exit(EXIT_SUCCESS);
     default: /* '?' */
-      pn_fatal("Usage: %s -h\n", argv[0]);
+      error_exit("Usage: %s -h\n", argv[0]);
     }
   }
 
@@ -484,7 +495,7 @@ int main(int argc, char **argv)
     ctx.hostname = host;
     ctx.address = address;
     pn_connector_t *ctor = pn_connector(drv, host, port, &ctx);
-    if (!ctor) pn_fatal("connector failed\n");
+    if (!ctor) error_exit("connector failed\n");
     pn_connector_set_connection(ctor, pn_connection());
     while (!ctx.done) {
       pn_driver_wait(drv, -1);
@@ -502,7 +513,7 @@ int main(int argc, char **argv)
     }
   } else {
     struct server_context ctx = {0, quiet, size};
-    if (!pn_listener(drv, host, port, &ctx)) pn_fatal("listener failed\n");
+    if (!pn_listener(drv, host, port, &ctx)) error_exit("listener failed\n");
     while (true) {
       pn_driver_wait(drv, -1);
       pn_listener_t *l;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to