Created
October 18, 2014 05:11
-
-
Save walkure/0c37201669508d1adf58 to your computer and use it in GitHub Desktop.
workaround patch for https://github.com/barnybug/wmr100/ (commit d28e072) building/running on Raspbian(libzmq1 2.2.0+dfsg-2)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/wmr100.c b/wmr100.c | |
index 9b43c21..d6f3153 100644 | |
--- a/wmr100.c | |
+++ b/wmr100.c | |
@@ -271,6 +271,7 @@ void wmr_output_stdout(WMR *wmr, char *msg) { | |
} | |
void wmr_output_zmq(WMR *wmr, char *topic, char *msg) { | |
+ zmq_msg_t zmsg; | |
int len = strlen(topic) + 1 + strlen(msg); | |
void *buf = malloc(len); | |
char *data = (char *)buf; | |
@@ -279,8 +280,19 @@ void wmr_output_zmq(WMR *wmr, char *topic, char *msg) { | |
strcpy(data, topic); | |
data += strlen(topic) + 1; | |
memcpy(data, msg, strlen(msg)); | |
- zmq_send(wmr->zmq_sock, buf, len, 0); | |
+ | |
+ if(zmq_msg_init_size(&zmsg,len) != 0){ | |
+ perror("zmq_msg_init_size failed"); | |
+ return; | |
+ } | |
+ memcpy(zmq_msg_data(&zmsg),buf,len); | |
+ if(zmq_send(wmr->zmq_sock, &zmsg, 0) != 0){ | |
+ perror("zmq_send failed"); | |
+ zmq_msg_close(&zmsg); | |
+ return; | |
+ } | |
free(buf); | |
+ zmq_msg_close(&zmsg); | |
} | |
void wmr_log_data(WMR *wmr, char *topic, char *msg) { | |
@@ -624,7 +636,9 @@ int init_output_zmq(WMR *wmr) { | |
wmr->zmq_sock = zmq_socket(wmr->zmq_ctx, ZMQ_PUB); | |
assert(wmr->zmq_sock != NULL); | |
assert(gOutputZmq); | |
- zmq_connect(wmr->zmq_sock, gOutputZmq); | |
+ if(zmq_bind(wmr->zmq_sock, gOutputZmq) != 0) | |
+ perror("zmq_bind failed"); | |
+ | |
return 0; | |
} | |
~ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment