diff options
Diffstat (limited to 'src/frontends/android/jni/libandroidbridge/kernel')
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/kernel/android_net.c | 51 | ||||
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/kernel/android_net.h | 29 |
2 files changed, 22 insertions, 58 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/kernel/android_net.c b/src/frontends/android/jni/libandroidbridge/kernel/android_net.c index 4b42b55a8..653e2738b 100644 --- a/src/frontends/android/jni/libandroidbridge/kernel/android_net.c +++ b/src/frontends/android/jni/libandroidbridge/kernel/android_net.c @@ -16,21 +16,20 @@ #include "../charonservice.h" #include <hydra.h> -#include <utils/debug.h> #include <processing/jobs/callback_job.h> #include <threading/mutex.h> /** delay before firing roam events (ms) */ #define ROAM_DELAY 100 -typedef struct private_kernel_android_net_t private_kernel_android_net_t; +typedef struct private_android_net_t private_android_net_t; -struct private_kernel_android_net_t { +struct private_android_net_t { /** * Public kernel interface */ - kernel_android_net_t public; + android_net_t public; /** * Reference to NetworkManager object @@ -62,7 +61,7 @@ static job_requeue_t roam_event() /** * Listen for connectivity change events and queue a roam event */ -static void connectivity_cb(private_kernel_android_net_t *this, +static void connectivity_cb(private_android_net_t *this, bool disconnected) { timeval_t now; @@ -84,30 +83,8 @@ static void connectivity_cb(private_kernel_android_net_t *this, lib->scheduler->schedule_job_ms(lib->scheduler, job, ROAM_DELAY); } -METHOD(kernel_net_t, get_source_addr, host_t*, - private_kernel_android_net_t *this, host_t *dest, host_t *src) -{ - return this->network_manager->get_local_address(this->network_manager, - dest->get_family(dest) == AF_INET); -} - -METHOD(kernel_net_t, get_interface, bool, - private_kernel_android_net_t *this, host_t *host, char **name) -{ - return this->network_manager->get_interface(this->network_manager, host, - name); -} - -METHOD(kernel_net_t, add_ip, status_t, - private_kernel_android_net_t *this, host_t *virtual_ip, int prefix, - char *iface) -{ - /* we get the IP from the IKE_SA once the CHILD_SA is established */ - return SUCCESS; -} - -METHOD(kernel_net_t, destroy, void, - private_kernel_android_net_t *this) +METHOD(android_net_t, destroy, void, + private_android_net_t *this) { this->network_manager->remove_connectivity_cb(this->network_manager, (void*)connectivity_cb); @@ -118,23 +95,13 @@ METHOD(kernel_net_t, destroy, void, /* * Described in header. */ -kernel_android_net_t *kernel_android_net_create() +android_net_t *android_net_create() { - private_kernel_android_net_t *this; + private_android_net_t *this; INIT(this, .public = { - .interface = { - .get_source_addr = _get_source_addr, - .get_nexthop = (void*)return_null, - .get_interface = _get_interface, - .create_address_enumerator = (void*)enumerator_create_empty, - .add_ip = _add_ip, - .del_ip = (void*)return_failed, - .add_route = (void*)return_failed, - .del_route = (void*)return_failed, - .destroy = _destroy, - }, + .destroy = _destroy, }, .mutex = mutex_create(MUTEX_TYPE_DEFAULT), .network_manager = charonservice->get_network_manager(charonservice), diff --git a/src/frontends/android/jni/libandroidbridge/kernel/android_net.h b/src/frontends/android/jni/libandroidbridge/kernel/android_net.h index f0605390d..ade83f32a 100644 --- a/src/frontends/android/jni/libandroidbridge/kernel/android_net.h +++ b/src/frontends/android/jni/libandroidbridge/kernel/android_net.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 @@ -14,36 +14,33 @@ */ /** - * @defgroup kernel_android_net kernel_android_net + * @defgroup android_net android_net * @{ @ingroup android_kernel */ -#ifndef KERNEL_ANDROID_NET_H_ -#define KERNEL_ANDROID_NET_H_ +#ifndef ANDROID_NET_H_ +#define ANDROID_NET_H_ #include <library.h> -#include <kernel/kernel_net.h> -typedef struct kernel_android_net_t kernel_android_net_t; +typedef struct android_net_t android_net_t; /** - * Implementation of the kernel-net interface. This currently consists of only - * noops because a kernel_net_t implementation is required and we can't use - * kernel_netlink_net_t at the moment. + * Handle connectivity events from NetworkManager */ -struct kernel_android_net_t { +struct android_net_t { /** - * Implements kernel_net_t interface + * Destroy an android_net_t instance. */ - kernel_net_t interface; + void (*destroy)(android_net_t *this); }; /** - * Create a android net interface instance. + * Create an android_net_t instance. * - * @return kernel_android_net_t instance + * @return android_net_t instance */ -kernel_android_net_t *kernel_android_net_create(); +android_net_t *android_net_create(); -#endif /** KERNEL_ANDROID_NET_H_ @}*/ +#endif /** ANDROID_NET_H_ @}*/ |