* Channel options.
* Second line indicates filed in the MeshChannelInfo union carrying the answer.
*/
-enum MeshOption
+enum GNUNET_MESH_ChannelOption
{
+ /**
+ * Default options: unreliable, default buffering, not out of order.
+ */
+ GNUNET_MESH_OPTION_DEFAULT = 0x0,
+
/**
* Disable buffering on intermediate nodes (for minimum latency).
* Yes/No.
/**
* Who is the peer at the other end of the channel.
+ * Only for use in @c GNUNET_MESH_channel_get_info
* struct GNUNET_PeerIdentity *peer
*/
GNUNET_MESH_OPTION_PEER = 0x8
* Method called whenever another peer has added us to a channel
* the other peer initiated.
* Only called (once) upon reception of data with a message type which was
- * subscribed to in #GNUNET_MESH_connect. A call to #GNUNET_MESH_channel_destroy
- * causes te channel to be ignored and no further notifications are sent about
- * the same channel.
+ * subscribed to in #GNUNET_MESH_connect.
+ *
+ * A call to #GNUNET_MESH_channel_destroy causes te channel to be ignored. In
+ * this case the handler MUST return NULL.
*
* @param cls closure
* @param channel new handle to the channel
* @param initiator peer that started the channel
* @param port Port this channel is for.
+ * @param options MeshOption flag field, with all active option bits set to 1.
+ *
* @return initial channel context for the channel
* (can be NULL -- that's not an error)
*/
const struct
GNUNET_PeerIdentity
* initiator,
- uint32_t port);
+ uint32_t port,
+ enum GNUNET_MESH_ChannelOption
+ options);
/**
* @param channel_ctx client's channel context to associate with the channel
* @param peer peer identity the channel should go to
* @param port Port number.
- * @param nobuffer Flag for disabling buffering on relay nodes.
- * @param reliable Flag for end-to-end reliability.
+ * @param options MeshOption flag field, with all desired option bits set to 1.
+ *
* @return handle to the channel
*/
struct GNUNET_MESH_Channel *
void *channel_ctx,
const struct GNUNET_PeerIdentity *peer,
uint32_t port,
- int nobuffer,
- int reliable);
+ enum GNUNET_MESH_ChannelOption options);
/**
/**
* Peer on the other side of the channel
*/
- const struct GNUNET_PeerIdentity *peer;
+ const struct GNUNET_PeerIdentity peer;
};
*/
const union GNUNET_MESH_ChannelInfo *
GNUNET_MESH_channel_get_info (struct GNUNET_MESH_Channel *channel,
- enum MeshOption option, ...);
+ enum GNUNET_MESH_ChannelOption option, ...);
/**