X-Git-Url: https://git.strongswan.org/?p=strongswan.git;a=blobdiff_plain;f=src%2Ffrontends%2Fandroid%2Fjni%2Flibandroidbridge%2Fkernel%2Fnetwork_manager.h;h=da0106829f6a23e96591e79429597207ec66745e;hp=cb0da7fa2ca6512a36bc3b0b1534cd5ffc98edd4;hb=7d70a14779b2dc897bc46559e6475a9bd01b2be6;hpb=8f092a2221956868cbac0cfbaf12be63584700a4 diff --git a/src/frontends/android/jni/libandroidbridge/kernel/network_manager.h b/src/frontends/android/jni/libandroidbridge/kernel/network_manager.h index cb0da7f..da01068 100644 --- a/src/frontends/android/jni/libandroidbridge/kernel/network_manager.h +++ b/src/frontends/android/jni/libandroidbridge/kernel/network_manager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Tobias Brunner + * Copyright (C) 2012-2013 Tobias Brunner * Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it @@ -15,7 +15,7 @@ /** * @defgroup network_manager network_manager - * @{ @ingroup kernel_android + * @{ @ingroup android_kernel */ #ifndef NETWORK_MANAGER_H_ @@ -24,12 +24,24 @@ #include #include -#include +#include typedef struct network_manager_t network_manager_t; /** - * NetworkManager, used to retrieve local IP addresses. + * Callback called if connectivity changes somehow. + * + * Implementation should be quick as the call is made by the Java apps main + * thread. + * + * @param data data supplied during registration + * @param disconnected TRUE if currently disconnected + */ +typedef void (*connectivity_cb_t)(void *data, bool disconnected); + +/** + * NetworkManager, used to listen for network changes and retrieve local IP + * addresses. * * Communicates with NetworkManager via JNI */ @@ -44,6 +56,34 @@ struct network_manager_t { host_t *(*get_local_address)(network_manager_t *this, bool ipv4); /** + * Get the name of the interface on which the given IP address is installed + * + * @param ip the IP address to look for + * @param name returns the name of the interface (optional) + * @return TRUE if found + */ + bool (*get_interface)(network_manager_t *this, host_t *ip, char **name); + + /** + * Register a callback that is called if connectivity changes + * + * @note Only the first registered callback is currently used + * + * @param cb callback to register + * @param data data provided to callback + */ + void (*add_connectivity_cb)(network_manager_t *this, connectivity_cb_t cb, + void *data); + + /** + * Unregister a previously registered callback for connectivity changes + * + * @param cb previously registered callback + */ + void (*remove_connectivity_cb)(network_manager_t *this, + connectivity_cb_t cb); + + /** * Destroy a network_manager_t instance */ void (*destroy)(network_manager_t *this); @@ -52,8 +92,9 @@ struct network_manager_t { /** * Create a network_manager_t instance * + * @param context Context object * @return network_manager_t instance */ -network_manager_t *network_manager_create(); +network_manager_t *network_manager_create(jobject context); #endif /** NETWORK_MANAGER_H_ @}*/