X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fdevtools.h;h=97924384aff55e04fe6034d3b055b3349f5d5696;hb=ec02aca3d7888f072c5c0d52ba6b5c37ed42b69e;hp=e74d41376b7a0644b4cba2e235fc08521b66ef20;hpb=305f26990ad31de1bc5edbf95e5d8b8d330ca5dc;p=meshlink diff --git a/src/devtools.h b/src/devtools.h index e74d4137..97924384 100644 --- a/src/devtools.h +++ b/src/devtools.h @@ -68,7 +68,7 @@ struct devtool_edge { * @return A pointer to an array containing devtool_edge_t elements, * or NULL in case of an error. * If the @a edges @a argument was not NULL, then the - * retun value can be either the same value or a different + * return value can be either the same value or a different * value. If the new values is NULL, then the old array * will have been freed by Meshlink. */ @@ -120,4 +120,35 @@ struct devtool_node_status { */ extern void devtool_get_node_status(meshlink_handle_t *mesh, meshlink_node_t *node, devtool_node_status_t *status); +/// Get the list of all submeshes of a meshlink instance. +/** This function returns an array of submesh handles. + * These pointers are the same pointers that are present in the submeshes list + * in mesh handle. + * + * @param mesh A handle which represents an instance of MeshLink. + * @param submeshes A pointer to an array of submesh handles if any allocated previously. + * @param nmemb A pointer to a size_t variable that has + * to be provided by the caller. + * The contents of this variable will be changed to indicate + * the number if array elements. + */ +extern meshlink_submesh_t **devtool_get_all_submeshes(meshlink_handle_t *mesh, meshlink_submesh_t **submeshes, size_t *nmemb); + +/// Open a MeshLink instance in a given network namespace. +/** This function opens MeshLink in the given network namespace. + * + * @param confbase The directory in which MeshLink will store its configuration files. + * After the function returns, the application is free to overwrite or free @a confbase @a. + * @param name The name which this instance of the application will use in the mesh. + * After the function returns, the application is free to overwrite or free @a name @a. + * @param appname The application name which will be used in the mesh. + * After the function returns, the application is free to overwrite or free @a name @a. + * @param devclass The device class which will be used in the mesh. + * @param netns A filedescriptor that represents the network namespace. + * + * @return A pointer to a meshlink_handle_t which represents this instance of MeshLink, or NULL in case of an error. + * The pointer is valid until meshlink_close() is called. + */ +extern meshlink_handle_t *devtool_open_in_netns(const char *confbase, const char *name, const char *appname, dev_class_t devclass, int netns); + #endif