return false;
}
- sptps_send_record(&(mesh->sptps), 1, ecdsa_get_public_key(mesh->private_key), 32);
+ sptps_send_record(&mesh->sptps, 1, ecdsa_get_public_key(mesh->private_key), 32);
logger(mesh, MESHLINK_DEBUG, "Configuration stored in: %s\n", mesh->confbase);
switch(type) {
case SPTPS_HANDSHAKE:
- return sptps_send_record(&(mesh->sptps), 0, mesh->cookie, sizeof(mesh)->cookie);
+ return sptps_send_record(&mesh->sptps, 0, mesh->cookie, sizeof(mesh)->cookie);
case 0:
return finalize_join(mesh, msg, len);
}
// Notify event loop
- signal_trigger(&(mesh->loop), &(mesh->datafromapp));
+ signal_trigger(&mesh->loop, &mesh->datafromapp);
return true;
}
}
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
}
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);