MCPcopy Create free account
hub / github.com/ElementsProject/elements / zmq_send_multipart

Function zmq_send_multipart

src/zmq/zmqpublishnotifier.cpp:37–77  ·  view source on GitHub ↗

Internal function to send multipart message

Source from the content-addressed store, hash-verified

35
36// Internal function to send multipart message
37static int zmq_send_multipart(void *sock, const void* data, size_t size, ...)
38{
39 va_list args;
40 va_start(args, size);
41
42 while (1)
43 {
44 zmq_msg_t msg;
45
46 int rc = zmq_msg_init_size(&msg, size);
47 if (rc != 0)
48 {
49 zmqError("Unable to initialize ZMQ msg");
50 va_end(args);
51 return -1;
52 }
53
54 void *buf = zmq_msg_data(&msg);
55 memcpy(buf, data, size);
56
57 data = va_arg(args, const void*);
58
59 rc = zmq_msg_send(&msg, sock, data ? ZMQ_SNDMORE : 0);
60 if (rc == -1)
61 {
62 zmqError("Unable to send ZMQ msg");
63 zmq_msg_close(&msg);
64 va_end(args);
65 return -1;
66 }
67
68 zmq_msg_close(&msg);
69
70 if (!data)
71 break;
72
73 size = va_arg(args, size_t);
74 }
75 va_end(args);
76 return 0;
77}
78
79static bool IsZMQAddressIPV6(const std::string &zmq_address)
80{

Callers 1

SendZmqMessageMethod · 0.85

Calls 1

zmqErrorFunction · 0.85

Tested by

no test coverage detected