Hi, I am having troubles writting a Vapi for ZeroMQ. There are some issues with the Socket.send method: whenever socket.send is called, it makes a temp zmq_msg_t variable with zmq_msg_copy(); however, it does not initialize this variable before using it and this is required by ZMQ. Also, it passes the parameters in the wrong order (src, dest) rather than (dest, src). Msg.copy() seems to work correctly when called directly, but not when Vala uses the zmq_msg_copy function itself. There are 2 sample programs attached, hwserver and hwclient. Both must be run at the same time. The issue can be seen in hwclient. void* requester; ... guint8* _tmp11_; gint _tmp11__length1; zmq_msg_t request = {0}; ... zmq_msg_t _tmp15_; zmq_msg_t _tmp16_ = {0}; ... zmq_msg_init_data (&request, _tmp11_, _tmp11__length1, NULL, NULL); ... _tmp14_ = requester; _tmp15_ = request; // <<< _tmp15_ is not initizlized, as request is, before copy call. This will cause a seg-fault. zmq_msg_copy (&_tmp15_, &_tmp16_); // <<< parameters are in wrong order here zmq_send (_tmp14_, &_tmp16_, 0); Thanks, ~Lewis
Attachment:
libzmq.vapi
Description: Text Data
Attachment:
hwclient.vala
Description: Text Data
Attachment:
hwserver.vala
Description: Text Data