]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink++.h
Check all arguments of the public API for NULL pointers.
[meshlink] / src / meshlink++.h
index 494c6ebda8c7ac406984cae5d0a2da25e1e57a0a..2729130cc64872f686a1fe6a4ce9bda60a564c9f 100644 (file)
@@ -182,9 +182,10 @@ namespace meshlink {
                 *  @param nodes        A pointer to an array of pointers to meshlink::node, which should be allocated by the application.
                 *  @param nmemb        The maximum number of pointers that can be stored in the nodes array.
                 *
-                *  @return             The number of known nodes. This can be larger than nmemb, in which case not all nodes were stored in the nodes array.
+                *  @return             The number of known nodes, or -1 in case of an error.
+                *                      This can be larger than nmemb, in which case not all nodes were stored in the nodes array.
                 */
-               size_t get_all_nodes(node **nodes, size_t nmemb) {
+               ssize_t get_all_nodes(node **nodes, size_t nmemb) {
                        return meshlink_get_all_nodes(this, (meshlink_node_t **)nodes, nmemb);
                }
 
@@ -299,6 +300,7 @@ namespace meshlink {
                 *  to hand the data over to the application's thread.
                 *  The callback should also not block itself and return as quickly as possible.
                 *
+                *  @param channel   A handle for the channel.
                 *  @param cb        A pointer to the function which will be called when another node sends data to the local node.
                 */
                void set_channel_accept_cb(channel *channel, channel_accept_cb_t cb) {
@@ -317,8 +319,8 @@ namespace meshlink {
                 *
                 *  @return             A handle for the channel, or NULL in case of an error.
                 */
-               channel *channel_open(node *node, uint16_t port, channel_receive_cb_t recv, const void *data, size_t len) {
-                       return (channel *)meshlink_channel_open(this, node, port, (meshlink_channel_receive_cb_t)recv, data, len);
+               channel *channel_open(node *node, uint16_t port, channel_receive_cb_t cb, const void *data, size_t len) {
+                       return (channel *)meshlink_channel_open(this, node, port, (meshlink_channel_receive_cb_t)cb, data, len);
                }
 
                /// Partially close a reliable stream channel.
@@ -386,6 +388,10 @@ namespace meshlink {
        static void close(mesh *mesh) {
                meshlink_close(mesh);
        }
+
+       static const char *strerror(errno_t err = meshlink_errno) {
+               return meshlink_strerror(err);
+       }
 };
 
 #endif // MESHLINKPP_H