All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH] alfred: output valid JSON
@ 2013-09-07 20:19 Nils Schneider
  2013-09-07 20:32 ` Antonio Quartulli
  0 siblings, 1 reply; 7+ messages in thread
From: Nils Schneider @ 2013-09-07 20:19 UTC (permalink / raw)
  To: b.a.t.m.a.n

With this patch alfred -r will output JSON like this:

{
  "00:11:22:33:44:55" : "...",
  "22:33:44:55:66:FF" : "..."
}
---
 client.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/client.c b/client.c
index a535f5a..ec882d9 100644
--- a/client.c
+++ b/client.c
@@ -39,7 +39,7 @@ int alfred_client_request_data(struct globals *globals)
 	struct alfred_status_v0 *status;
 	struct alfred_tlv *tlv;
 	struct alfred_data *data;
-	int ret, len, data_len, i;
+	int ret, len, data_len, i, count;
 
 	if (unix_sock_open_client(globals, ALFRED_SOCK_PATH))
 		return -1;
@@ -59,6 +59,9 @@ int alfred_client_request_data(struct globals *globals)
 		fprintf(stderr, "%s: only wrote %d of %d bytes: %s\n",
 			__func__, ret, len, strerror(errno));
 
+	printf("{");
+
+	count = 0;
 	push = (struct alfred_push_data_v0 *)buf;
 	tlv = (struct alfred_tlv *)buf;
 	while ((ret = read(globals->unix_sock, buf, sizeof(*tlv))) > 0) {
@@ -98,9 +101,12 @@ int alfred_client_request_data(struct globals *globals)
 		if (ret < data_len)
 			break;
 
+		if (count > 0)
+			printf(",\n");
+
 		pos = data->data;
 
-		printf("{ \"%02x:%02x:%02x:%02x:%02x:%02x\", \"",
+		printf("\n  \"%02x:%02x:%02x:%02x:%02x:%02x\": \"",
 		       data->source[0], data->source[1],
 		       data->source[2], data->source[3],
 		       data->source[4], data->source[5]);
@@ -110,14 +116,18 @@ int alfred_client_request_data(struct globals *globals)
 			else if (pos[i] == '\\')
 				printf("\\\\");
 			else if (!isprint(pos[i]))
-				printf("\\x%02x", pos[i]);
+				printf("\\u00%02x", pos[i]);
 			else
 				printf("%c", pos[i]);
 		}
 
-		printf("\" },\n");
+		printf("\"");
+
+		count++;
 	}
 
+	printf("\n}\n");
+
 	unix_sock_close(globals);
 
 	return 0;
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-09-08 23:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-07 20:19 [B.A.T.M.A.N.] [PATCH] alfred: output valid JSON Nils Schneider
2013-09-07 20:32 ` Antonio Quartulli
2013-09-07 20:56   ` Nils Schneider
2013-09-08  2:39     ` Marek Lindner
2013-09-08  8:47       ` Nils Schneider
2013-09-08 21:53         ` Simon Wunderlich
2013-09-08 23:40           ` Gui Iribarren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.