From b76f410c343574044026f131b45e08501cc4f984 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 9 Sep 2016 10:30:22 +0800 Subject: [PATCH] Refine header parser --- src/main/assets/acl/gfwlist.acl | 4 ++++ src/main/jni/Android.mk | 4 ++-- .../jni/include/shadowsocks-libev/config.h | 6 ++++++ src/main/jni/shadowsocks-libev | 2 +- .../github/shadowsocks/GuardedProcess.scala | 21 ++++++++++++------- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/assets/acl/gfwlist.acl b/src/main/assets/acl/gfwlist.acl index 55c64b61fe..810f1d0381 100644 --- a/src/main/assets/acl/gfwlist.acl +++ b/src/main/assets/acl/gfwlist.acl @@ -3,6 +3,10 @@ [bypass_all] [white_list] +# Telegram IPs +91.108.4.0/22 +91.108.56.0/22 +149.154.160.0/20 .*4tern\.com .*adorama\.com .*akiba-web\.com diff --git a/src/main/jni/Android.mk b/src/main/jni/Android.mk index 4565f22ac0..5d129fdb2b 100755 --- a/src/main/jni/Android.mk +++ b/src/main/jni/Android.mk @@ -390,6 +390,7 @@ LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/src/, $(SHADOWSOCKS_SOURCES)) LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DMODULE_LOCAL \ -DUSE_CRYPTO_MBEDTLS -DANDROID -DHAVE_CONFIG_H \ -DCONNECT_IN_PROGRESS=EINPROGRESS \ + -I$(LOCAL_PATH)/include/shadowsocks-libev \ -I$(LOCAL_PATH)/include \ -I$(LOCAL_PATH)/libancillary \ -I$(LOCAL_PATH)/mbedtls/include \ @@ -399,8 +400,7 @@ LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -DMODULE_LOCAL \ -I$(LOCAL_PATH)/shadowsocks-libev/libsodium/src/libsodium/include \ -I$(LOCAL_PATH)/shadowsocks-libev/libsodium/src/libsodium/include/sodium \ -I$(LOCAL_PATH)/shadowsocks-libev/libipset/include \ - -I$(LOCAL_PATH)/shadowsocks-libev/libev \ - -I$(LOCAL_PATH)/include/shadowsocks-libev + -I$(LOCAL_PATH)/shadowsocks-libev/libev LOCAL_STATIC_LIBRARIES := libev libmbedtls libipset libcork libudns \ libsodium libancillary libpcre diff --git a/src/main/jni/include/shadowsocks-libev/config.h b/src/main/jni/include/shadowsocks-libev/config.h index 8372373a21..59451b9683 100644 --- a/src/main/jni/include/shadowsocks-libev/config.h +++ b/src/main/jni/include/shadowsocks-libev/config.h @@ -417,3 +417,9 @@ /* Define as `fork' if `vfork' does not work. */ /* #undef vfork */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PCRE_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PCRE_PCRE_H */ diff --git a/src/main/jni/shadowsocks-libev b/src/main/jni/shadowsocks-libev index 42d9b68dcc..e5c3254450 160000 --- a/src/main/jni/shadowsocks-libev +++ b/src/main/jni/shadowsocks-libev @@ -1 +1 @@ -Subproject commit 42d9b68dcc1c6ccd9d766b3755e674c2d0c45a57 +Subproject commit e5c325445092dc80d3c8bba2d8ab07beee6e4d4d diff --git a/src/main/scala/com/github/shadowsocks/GuardedProcess.scala b/src/main/scala/com/github/shadowsocks/GuardedProcess.scala index 763dd7fb82..9ea8612121 100644 --- a/src/main/scala/com/github/shadowsocks/GuardedProcess.scala +++ b/src/main/scala/com/github/shadowsocks/GuardedProcess.scala @@ -97,14 +97,17 @@ class GuardedProcess(cmd: Seq[String]) { semaphore.release process.waitFor - if (isRestart) { - isRestart = false - } else { - if (currentTimeMillis - startTime < 1000) { - Log.w(TAG, "process exit too fast, stop guard: " + cmd) - isDestroyed = true + this.synchronized { + if (isRestart) { + isRestart = false + } else { + if (currentTimeMillis - startTime < 1000) { + Log.w(TAG, "process exit too fast, stop guard: " + cmd) + isDestroyed = true + } } } + } } catch { case ignored: InterruptedException => @@ -134,8 +137,10 @@ class GuardedProcess(cmd: Seq[String]) { } def restart() { - isRestart = true - process.destroy() + this.synchronized { + isRestart = true + process.destroy() + } } @throws(classOf[InterruptedException])