aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-08-09 16:36:48 +0200
committerTobias Brunner <tobias@strongswan.org>2012-08-13 11:22:20 +0200
commit6db742e7e5e87914a1b13eb20102478b49de4964 (patch)
treea4415078aa664006f35be0c4ba44b2e95c615595
parenta7c8b166a1401532ebdbfd9c2e6111feb1740f74 (diff)
downloadstrongswan-6db742e7e5e87914a1b13eb20102478b49de4964.tar.bz2
strongswan-6db742e7e5e87914a1b13eb20102478b49de4964.tar.xz
Log charon version and uname() output, split libcharon and charon initialization
-rw-r--r--src/frontends/android/jni/libandroidbridge/charonservice.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/charonservice.c b/src/frontends/android/jni/libandroidbridge/charonservice.c
index 3a5d0cb1e..232033899 100644
--- a/src/frontends/android/jni/libandroidbridge/charonservice.c
+++ b/src/frontends/android/jni/libandroidbridge/charonservice.c
@@ -17,6 +17,7 @@
#include <signal.h>
#include <string.h>
+#include <sys/utsname.h>
#include <android/log.h>
#include "charonservice.h"
@@ -355,6 +356,7 @@ JNI_METHOD(CharonVpnService, initializeCharon, void,
jobject builder)
{
struct sigaction action;
+ struct utsname utsname;
/* logging for library during initialization, as we have no bus yet */
dbg = dbg_android;
@@ -381,10 +383,25 @@ JNI_METHOD(CharonVpnService, initializeCharon, void,
return;
}
+ if (!libcharon_init("charon"))
+ {
+ libcharon_deinit();
+ libipsec_deinit();
+ libhydra_deinit();
+ library_deinit();
+ return;
+ }
+
charonservice_init(env, this, builder);
- if (!libcharon_init("charon") ||
- !charon->initialize(charon, PLUGINS))
+ if (uname(&utsname) != 0)
+ {
+ memset(&utsname, 0, sizeof(utsname));
+ }
+ DBG1(DBG_DMN, "Starting IKE charon daemon (strongSwan "VERSION", %s %s, %s)",
+ utsname.sysname, utsname.release, utsname.machine);
+
+ if (!charon->initialize(charon, PLUGINS))
{
libcharon_deinit();
charonservice_deinit(env);
@@ -413,6 +430,7 @@ JNI_METHOD(CharonVpnService, initializeCharon, void,
*/
JNI_METHOD(CharonVpnService, deinitializeCharon, void)
{
+ /* deinitialize charon before we destroy our own objects */
libcharon_deinit();
charonservice_deinit(env);
libipsec_deinit();