summaryrefslogtreecommitdiff
path: root/src/de/blinkt/openvpn/core/OpenVPNThread.java
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2013-09-27 22:57:30 +0200
committerArne Schwabe <arne@rfc2549.org>2013-09-27 22:57:30 +0200
commit911f3855f184ecdb1339c1d8383ea19e86fe918e (patch)
tree8799a9b78e0a7f5c7e4162a410ce256135f535f4 /src/de/blinkt/openvpn/core/OpenVPNThread.java
parent4d9f6e5358b97ab104bc6c26b862ab290161568f (diff)
Implement changing log level on the fly in the log window, still needs some UI design love
--HG-- extra : rebase_source : 207343cea3b74cd07ebdf00f8ef443465d12c966
Diffstat (limited to 'src/de/blinkt/openvpn/core/OpenVPNThread.java')
-rw-r--r--src/de/blinkt/openvpn/core/OpenVPNThread.java36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/de/blinkt/openvpn/core/OpenVPNThread.java b/src/de/blinkt/openvpn/core/OpenVPNThread.java
index 930d2614..0807b33d 100644
--- a/src/de/blinkt/openvpn/core/OpenVPNThread.java
+++ b/src/de/blinkt/openvpn/core/OpenVPNThread.java
@@ -10,11 +10,17 @@ import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Map.Entry;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class OpenVPNThread implements Runnable {
- private static final String DUMP_PATH_STRING = "Dump path: ";
+ private static final String DUMP_PATH_STRING = "Dump path: ";
private static final String TAG = "OpenVPN";
- private String[] mArgv;
+ public static final int M_FATAL = (1 << 4);
+ public static final int M_NONFATAL = (1 << 5);
+ public static final int M_WARN = (1 << 6);
+ public static final int M_DEBUG = (1 << 7);
+ private String[] mArgv;
private Process mProcess;
private String mNativeDir;
private OpenVpnService mService;
@@ -111,7 +117,31 @@ public class OpenVPNThread implements Runnable {
mDumpPath = logline.substring(DUMP_PATH_STRING.length());
- VpnStatus.logInfo("P:" + logline);
+ // 1380308330.240114 18000002 Send to HTTP proxy: 'X-Online-Host: bla.blabla.com'
+
+ Pattern p = Pattern.compile("(\\d+).(\\d+) ([0-9a-f])+ (.*)");
+ Matcher m = p.matcher(logline);
+ if(m.matches()) {
+ int flags = Integer.parseInt(m.group(3),16);
+ String msg = m.group(4);
+ int logLevel = flags & 0x0F;
+
+ VpnStatus.LogLevel logStatus = VpnStatus.LogLevel.INFO;
+
+ if ((flags & M_FATAL) != 0)
+ logStatus = VpnStatus.LogLevel.ERROR;
+ else if ((flags & M_NONFATAL)!=0)
+ logStatus = VpnStatus.LogLevel.WARNING;
+ else if ((flags & M_WARN)!=0)
+ logStatus = VpnStatus.LogLevel.WARNING;
+ else if ((flags & M_DEBUG)!=0)
+ logStatus = VpnStatus.LogLevel.VERBOSE;
+
+
+ VpnStatus.logMessageOpenVPN(logStatus,logLevel,msg);
+ } else {
+ VpnStatus.logInfo("P:" + logline);
+ }
}