X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.h;h=a6c5b4b9401a2233808b34914f8d692aa59bb71c;hb=39f2e20489cbc3e924547b684340bf722a0df028;hp=cc18bec037841b54bcc253c0ce0c873749c98595;hpb=3be09bc77ac43f45d3fc933f90c93567562d9231;p=meshlink diff --git a/src/meshlink.h b/src/meshlink.h index cc18bec0..a6c5b4b9 100644 --- a/src/meshlink.h +++ b/src/meshlink.h @@ -87,7 +87,7 @@ typedef enum { typedef enum { MESHLINK_STORAGE_ENABLED, ///< Store all updates. MESHLINK_STORAGE_DISABLED, ///< Don't store any updates. - MESHLINK_STORAGE_KEYS_ONLY, ///< Only store updates when a node's key has changed. + MESHLINK_STORAGE_KEYS_ONLY ///< Only store updates when a node's key has changed. } meshlink_storage_policy_t; /// Invitation flags @@ -1531,7 +1531,6 @@ void meshlink_channel_shutdown(struct meshlink_handle *mesh, struct meshlink_cha /// Close a reliable stream channel. /** This informs the remote node that the local node has finished sending all data on the channel. * It also causes the local node to stop accepting incoming data from the remote node. - * It will free the struct meshlink_channel and all associated resources. * Afterwards, the channel handle is invalid and must not be used any more. * * It is allowed to call this function at any time on a valid handle, even inside callback functions. @@ -1543,6 +1542,21 @@ void meshlink_channel_shutdown(struct meshlink_handle *mesh, struct meshlink_cha */ void meshlink_channel_close(struct meshlink_handle *mesh, struct meshlink_channel *channel); +/// Abort a reliable stream channel. +/** This aborts a channel. + * Data that was in the send and receive buffers is dropped, so potentially there is some data that + * was sent on this channel that will not be received by the peer. + * Afterwards, the channel handle is invalid and must not be used any more. + * + * It is allowed to call this function at any time on a valid handle, even inside callback functions. + * If called with a valid handle, this function always succeeds, otherwise the result is undefined. + * + * \memberof meshlink_channel + * @param mesh A handle which represents an instance of MeshLink. + * @param channel A handle for the channel. + */ +void meshlink_channel_abort(struct meshlink_handle *mesh, struct meshlink_channel *channel); + /// Transmit data on a channel /** This queues data to send to the remote node. *