X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;fp=src%2Fmeshlink.c;h=f1b6a334c6a7bb90bd6be8018a90b861a65a2842;hb=b0319f8d358c476e29d3c6daeef1cda616cfd447;hp=e82ea4f11a384f639f3c6298a42bfa15aecf3e8a;hpb=22cef91d16dcef1c41fc187b870c112d3f408ac7;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index e82ea4f1..f1b6a334 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -3150,7 +3150,7 @@ void meshlink_set_channel_rcvbuf(meshlink_handle_t *mesh, meshlink_channel_t *ch } meshlink_channel_t *meshlink_channel_open_ex(meshlink_handle_t *mesh, meshlink_node_t *node, uint16_t port, meshlink_channel_receive_cb_t cb, const void *data, size_t len, uint32_t flags) { - if(data || len) { + if(data && len) { abort(); // TODO: handle non-NULL data } @@ -3183,6 +3183,11 @@ meshlink_channel_t *meshlink_channel_open_ex(meshlink_handle_t *mesh, meshlink_n meshlink_channel_t *channel = xzalloc(sizeof(*channel)); channel->node = n; channel->receive_cb = cb; + + if(data && !len) { + channel->priv = (void *)data; + } + channel->c = utcp_connect_ex(n->utcp, port, channel_recv, channel, flags); pthread_mutex_unlock(&mesh->mutex);