From: Tobias Brunner Date: Tue, 31 Mar 2020 12:56:38 +0000 (+0200) Subject: android: Change how initial log handler is registered X-Git-Tag: 5.9.0dr1~9^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3695d089b22833c8287bf63f4a8ce336ba5569a;p=thirdparty%2Fstrongswan.git android: Change how initial log handler is registered Previously, if the two utility functions were called while the VPN connection was established (i.e. charon was initialized) the logger for libstrongswan would get reset to the initial log handler. So certain log messages would not get logged to the log file after the TUN device was created (one of the helpers is used to convert IPs there). --- diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c index 5a3435a11c..d0f1d35ab3 100644 --- a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c +++ b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c @@ -620,6 +620,14 @@ static void segv_handler(int signal) exit(1); } +/** + * Register this logger as default before we have the bus available + */ +static void __attribute__ ((constructor))register_logger() +{ + dbg = dbg_android; +} + /** * Initialize charon and the libraries via JNI */ @@ -630,9 +638,6 @@ JNI_METHOD(CharonVpnService, initializeCharon, jboolean, struct utsname utsname; char *logfile, *appdir, *plugins; - /* logging for library during initialization, as we have no bus yet */ - dbg = dbg_android; - /* initialize library */ if (!library_init(NULL, "charon")) { @@ -750,8 +755,6 @@ JNI_METHOD_P(org_strongswan_android_utils, Utils, isProposalValid, jboolean, char *str; bool valid; - dbg = dbg_android; - if (!library_init(NULL, "charon")) { library_deinit(); @@ -776,8 +779,6 @@ JNI_METHOD_P(org_strongswan_android_utils, Utils, parseInetAddressBytes, jbyteAr host_t *host; char *str; - dbg = dbg_android; - if (!library_init(NULL, "charon")) { library_deinit();