diff options
Diffstat (limited to 'src/frontends/android/jni/libandroidbridge/charonservice.c')
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/charonservice.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/charonservice.c b/src/frontends/android/jni/libandroidbridge/charonservice.c index 4b2e58b25..9afedf616 100644 --- a/src/frontends/android/jni/libandroidbridge/charonservice.c +++ b/src/frontends/android/jni/libandroidbridge/charonservice.c @@ -1,7 +1,7 @@ /* + * Copyright (C) 2012-2013 Tobias Brunner * Copyright (C) 2012 Giuliano Grassi * Copyright (C) 2012 Ralf Sager - * Copyright (C) 2012 Tobias Brunner * Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it @@ -79,6 +79,11 @@ struct private_charonservice_t { network_manager_t *network_manager; /** + * Handle network events + */ + android_net_t *net_handler; + + /** * CharonVpnService reference */ jobject vpn_service; @@ -358,12 +363,14 @@ static bool charonservice_register(void *plugin, plugin_feature_t *feature, private_charonservice_t *this = (private_charonservice_t*)charonservice; if (reg) { + this->net_handler = android_net_create(); lib->credmgr->add_set(lib->credmgr, &this->creds->set); hydra->attributes->add_handler(hydra->attributes, &this->attr->handler); } else { + this->net_handler->destroy(this->net_handler); lib->credmgr->remove_set(lib->credmgr, &this->creds->set); hydra->attributes->remove_handler(hydra->attributes, &this->attr->handler); @@ -413,6 +420,10 @@ static void set_options(char *logfile) /* don't install virtual IPs via kernel-netlink */ lib->settings->set_bool(lib->settings, "charon.install_virtual_ip", FALSE); + /* kernel-netlink should not trigger roam events, we use Android's + * ConnectivityManager for that, much less noise */ + lib->settings->set_bool(lib->settings, + "charon.plugins.kernel-netlink.roam_events", FALSE); /* ignore tun devices (it's mostly tun0 but it may already be taken, ignore * some others too) */ lib->settings->set_str(lib->settings, |