jsoninfo: simplify output_error by using an abuf
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 7 Mar 2016 13:20:52 +0000 (14:20 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 9 Mar 2016 11:46:27 +0000 (12:46 +0100)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/jsoninfo/src/olsrd_jsoninfo.c

index 59f1062..6f27790 100644 (file)
@@ -176,19 +176,20 @@ void output_end(struct autobuf *abuf) {
 }
 
 void output_error(struct autobuf *abuf, unsigned int status, const char * req, bool http_headers) {
-  char buf[1024];
+  struct autobuf abufInternal;
 
   if (http_headers || (status == INFO_HTTP_OK)) {
     return;
   }
 
+  abuf_init(&abufInternal, 1024);
+
   output_start(abuf);
 
   switch (status) {
     case INFO_HTTP_NOTFOUND:
-      snprintf(buf, sizeof(buf) - 1, "Invalid request '%s'", req);
-      buf[sizeof(buf) - 1] = '\0';
-      abuf_json_string(abuf, "error", buf);
+      abuf_appendf(&abufInternal, "Invalid request '%s'", req);
+      abuf_json_string(abuf, "error", abufInternal.buf);
       break;
 
     case INFO_HTTP_NOCONTENT:
@@ -196,9 +197,8 @@ void output_error(struct autobuf *abuf, unsigned int status, const char * req, b
       break;
 
     default:
-      snprintf(buf, sizeof(buf) - 1, "Unknown status %d for request '%s'", status, req);
-      buf[sizeof(buf) - 1] = '\0';
-      abuf_json_string(abuf, "error", buf);
+      abuf_appendf(&abufInternal, "Unknown status %d for request '%s'", status, req);
+      abuf_json_string(abuf, "error", abufInternal.buf);
       break;
   }