[PATCH 2/2] add android logging.
openconnect at lakedaemon.net
openconnect at lakedaemon.net
Thu Jul 14 21:38:50 EDT 2011
From: Jason Cooper <cyanogen at lakedaemon.net>
Signed-off-by: Jason Cooper <cyanogen at lakedaemon.net>
---
main.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/main.c b/main.c
index 40c7184..e2d6baa 100644
--- a/main.c
+++ b/main.c
@@ -35,6 +35,8 @@
#include <pwd.h>
#ifndef ANDROID_CHANGES
#include <sys/syslog.h>
+#else
+#include <android/log.h>
#endif
#include <sys/utsname.h>
#include <sys/types.h>
@@ -52,8 +54,13 @@ static int write_new_config(void *_vpninfo,
char *buf, int buflen);
static void write_progress(void *_vpninfo,
int level, const char *fmt, ...);
+#ifdef ANDROID_CHANGES
+static void android_progress(void *_vpninfo,
+ int level, const char *fmt, ...);
+#else
static void syslog_progress(void *_vpninfo,
int level, const char *fmt, ...);
+#endif
static int validate_peer_cert(void *_vpninfo,
X509 *peer_cert, const char *reason);
@@ -102,7 +109,9 @@ static struct option long_options[] = {
{"setuid", 1, 0, 'U'},
{"script", 1, 0, 's'},
{"script-tun", 0, 0, 'S'},
+#ifndef ANDROID_CHANGES
{"syslog", 0, 0, 'l'},
+#endif
{"key-type", 1, 0, 'K'},
{"key-password", 1, 0, 'p'},
{"proxy", 1, 0, 'P'},
@@ -153,7 +162,9 @@ void usage(void)
printf(" -g, --usergroup=GROUP Set login usergroup\n");
printf(" -h, --help Display help text\n");
printf(" -i, --interface=IFNAME Use IFNAME for tunnel interface\n");
+#ifndef ANDROID_CHANGES
printf(" -l, --syslog Use syslog for progress messages\n");
+#endif
printf(" -U, --setuid=USER Drop privileges after connecting\n");
printf(" --csd-user=USER Drop privileges during CSD execution\n");
printf(" --csd-wrapper=SCRIPT Run SCRIPT instead of CSD binary\n");
@@ -224,7 +235,9 @@ int main(int argc, char **argv)
struct utsname utsbuf;
struct sigaction sa;
int cookieonly = 0;
+#ifndef ANDROID_CHANGES
int use_syslog = 0;
+#endif
char *proxy = getenv("https_proxy");
int autoproxy = 0;
uid_t uid = getuid();
@@ -258,8 +271,13 @@ int main(int argc, char **argv)
else
vpninfo->localname = "localhost";
+#ifdef ANDROID_CHANGES
+ while ((opt = getopt_long(argc, argv, "bC:c:Ddg:hi:k:K:pP:Q:qSs:U:u:Vvx:",
+ long_options, NULL))) {
+#else
while ((opt = getopt_long(argc, argv, "bC:c:Ddg:hi:k:K:lpP:Q:qSs:U:u:Vvx:",
long_options, NULL))) {
+#endif
if (opt < 0)
break;
@@ -345,9 +363,11 @@ int main(int argc, char **argv)
case 'i':
vpninfo->ifname = optarg;
break;
+#ifndef ANDROID_CHANGES
case 'l':
use_syslog = 1;
break;
+#endif
case 'm':
vpninfo->mtu = atol(optarg);
if (vpninfo->mtu < 576) {
@@ -477,10 +497,14 @@ int main(int argc, char **argv)
if (proxy && openconnect_set_http_proxy(vpninfo, strdup(proxy)))
exit(1);
+#ifdef ANDROID_CHANGES
+ vpninfo->progress = android_progress;
+#else
if (use_syslog) {
openlog("openconnect", LOG_PID, LOG_DAEMON);
vpninfo->progress = syslog_progress;
}
+#endif
memset(&sa, 0, sizeof(sa));
sa.sa_handler = handle_sigusr;
@@ -628,6 +652,24 @@ void syslog_progress(void *_vpninfo, int level, const char *fmt, ...)
}
}
+#ifdef ANDROID_CHANGES
+void android_progress(void *_vpninfo, int level, const char *fmt, ...)
+{
+ va_list args;
+ static int l[4] = {
+ ANDROID_LOG_ERROR, /* PRG_ERR */
+ ANDROID_LOG_INFO, /* PRG_INFO */
+ ANDROID_LOG_DEBUG, /* PRG_DEBUG */
+ ANDROID_LOG_DEBUG /* PRG_TRACE */
+ };
+
+ if (verbose >= level) {
+ va_start(args, fmt);
+ __android_log_vprint(l[level], "openconnect", fmt, args);
+ va_end(args);
+ }
+}
+#endif
struct accepted_cert {
struct accepted_cert *next;
--
1.7.0.4
More information about the openconnect-devel
mailing list