diff --git a/.gitmodules b/.gitmodules index 213b00ee2..b12a9c3ff 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,27 @@ [submodule "TMessagesProj/jni/boringssl"] path = TMessagesProj/jni/boringssl url = https://github.com/google/boringssl + +[submodule "ss-rust/src/main/rust/shadowsocks-rust"] + path = ss-rust/src/main/rust/shadowsocks-rust + url = https://github.com/shadowsocks/shadowsocks-rust.git + +[submodule "shadowsocksr-libev"] + path = ssr-libev/src/main/jni/shadowsocks-libev + url = https://github.com/shadowsocksRb/shadowsocksr-libev.git +[submodule "ssr-libev/src/main/jni/libancillary"] + path = ssr-libev/src/main/jni/libancillary + url = https://github.com/shadowsocks/libancillary.git +[submodule "ssr-libev/src/main/jni/mbedtls"] + path = ssr-libev/src/main/jni/mbedtls + url = https://github.com/ARMmbed/mbedtls +[submodule "ssr-libev/src/main/jni/pcre"] + path = ssr-libev/src/main/jni/pcre + url = https://android.googlesource.com/platform/external/pcre +[submodule "ssr-libev/src/main/jni/libsodium"] + path = ssr-libev/src/main/jni/libsodium + url = https://github.com/jedisct1/libsodium.git + branch = stable +[submodule "ssr-libev/src/main/jni/re2"] + path = ssr-libev/src/main/jni/re2 + url = https://github.com/google/re2.git \ No newline at end of file diff --git a/relaybaton/.gitignore b/relaybaton/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/relaybaton/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/relaybaton/build.gradle b/relaybaton/build.gradle new file mode 100644 index 000000000..ad3f426b0 --- /dev/null +++ b/relaybaton/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'com.android.library' +} + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.3" + ndkVersion "21.1.6352462" + + defaultConfig { + minSdkVersion 16 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + } +} \ No newline at end of file diff --git a/relaybaton/src/main/AndroidManifest.xml b/relaybaton/src/main/AndroidManifest.xml new file mode 100644 index 000000000..ed92616fc --- /dev/null +++ b/relaybaton/src/main/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 867a4183d..498a68eb0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,4 @@ include ':TMessagesProj' +include ':ss-rust' +include ':ssr-libev' +//include ':relaybaton' \ No newline at end of file diff --git a/ss-rust/.gitignore b/ss-rust/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/ss-rust/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/ss-rust/build.gradle.kts b/ss-rust/build.gradle.kts new file mode 100644 index 000000000..dd6670534 --- /dev/null +++ b/ss-rust/build.gradle.kts @@ -0,0 +1,51 @@ +import com.android.build.gradle.internal.tasks.factory.dependsOn + +plugins { + id("com.android.library") + id("org.mozilla.rust-android-gradle.rust-android") +} + +android { + + ndkVersion = rootProject.extra.get("ndkVersion").toString() + + compileSdkVersion(29) + defaultConfig { + minSdkVersion(21) + targetSdkVersion(28) + } + +} + +cargo { + module = "src/main/rust/shadowsocks-rust" + libname = "ss-local" + targets = listOf("arm", "arm64", "x86", "x86_64") + profile = findProperty("CARGO_PROFILE")?.toString() ?: "release" + extraCargoBuildArguments = listOf("--bin", "sslocal") + featureSpec.noDefaultBut(arrayOf( + "sodium", + "rc4", + "aes-cfb", + "aes-ctr", + "camellia-cfb", + "openssl-vendored")) + exec = { spec, toolchain -> + spec.environment("RUST_ANDROID_GRADLE_LINKER_WRAPPER_PY", "$projectDir/$module/../linker-wrapper.py") + spec.environment("RUST_ANDROID_GRADLE_TARGET", "target/${toolchain.target}/$profile/lib$libname.so") + } +} + +tasks.whenTaskAdded { + when (name) { + "mergeDebugJniLibFolders", "mergeReleaseJniLibFolders" -> dependsOn("cargoBuild") + } +} + +tasks.register("cargoClean") { + executable("cargo") // cargo.cargoCommand + args("clean") + workingDir("$projectDir/${cargo.module}") +} + +tasks.clean.dependsOn("cargoClean") \ No newline at end of file diff --git a/ss-rust/src/main/AndroidManifest.xml b/ss-rust/src/main/AndroidManifest.xml new file mode 100644 index 000000000..b3695aad8 --- /dev/null +++ b/ss-rust/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/ss-rust/src/main/rust/linker-wrapper.py b/ss-rust/src/main/rust/linker-wrapper.py new file mode 100644 index 000000000..80dc1888b --- /dev/null +++ b/ss-rust/src/main/rust/linker-wrapper.py @@ -0,0 +1,18 @@ +from __future__ import absolute_import, print_function, unicode_literals + +import os +import pipes +import shutil +import subprocess +import sys + +args = [os.environ['RUST_ANDROID_GRADLE_CC'], os.environ['RUST_ANDROID_GRADLE_CC_LINK_ARG']] + sys.argv[1:] + +# This only appears when the subprocess call fails, but it's helpful then. +printable_cmd = ' '.join(pipes.quote(arg) for arg in args) +print(printable_cmd) + +code = subprocess.call(args) +if code == 0: + shutil.copyfile(sys.argv[sys.argv.index('-o') + 1], os.environ['RUST_ANDROID_GRADLE_TARGET']) +sys.exit(code) diff --git a/ss-rust/src/main/rust/shadowsocks-rust b/ss-rust/src/main/rust/shadowsocks-rust new file mode 160000 index 000000000..ce1e58641 --- /dev/null +++ b/ss-rust/src/main/rust/shadowsocks-rust @@ -0,0 +1 @@ +Subproject commit ce1e58641d502ec128806efa898ebf2716461132 diff --git a/ssr-libev/.gitignore b/ssr-libev/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/ssr-libev/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/ssr-libev/build.gradle b/ssr-libev/build.gradle new file mode 100644 index 000000000..0e7bc9961 --- /dev/null +++ b/ssr-libev/build.gradle @@ -0,0 +1,32 @@ +plugins { + id 'com.android.library' +} + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.3" + ndkVersion rootProject.ext.ndkVersion + + defaultConfig { + minSdkVersion 16 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + externalNativeBuild { + ndkBuild { + + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + arguments "NDK_APPLICATION_MK:=src/main/jni/Application.mk", "APP_PLATFORM:=android-21", "--jobs=8" + + } + } + } + + externalNativeBuild { + ndkBuild { + path 'src/main/jni/Android.mk' + } + } + +} \ No newline at end of file diff --git a/ssr-libev/src/main/AndroidManifest.xml b/ssr-libev/src/main/AndroidManifest.xml new file mode 100644 index 000000000..8462535df --- /dev/null +++ b/ssr-libev/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/ssr-libev/src/main/jni/Android.mk b/ssr-libev/src/main/jni/Android.mk new file mode 100644 index 000000000..73160ff32 --- /dev/null +++ b/ssr-libev/src/main/jni/Android.mk @@ -0,0 +1,293 @@ +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +LOCAL_PATH := $(call my-dir) +ROOT_PATH := $(LOCAL_PATH) + +BUILD_SHARED_EXECUTABLE := $(LOCAL_PATH)/build-shared-executable.mk + +######################################################## +## libsodium +######################################################## + +include $(CLEAR_VARS) + +SODIUM_SOURCE := \ + crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c \ + crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c \ + crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c \ + crypto_core/ed25519/ref10/ed25519_ref10.c \ + crypto_core/hchacha20/core_hchacha20.c \ + crypto_core/salsa/ref/core_salsa_ref.c \ + crypto_generichash/blake2b/ref/blake2b-compress-ref.c \ + crypto_generichash/blake2b/ref/blake2b-ref.c \ + crypto_generichash/blake2b/ref/generichash_blake2b.c \ + crypto_onetimeauth/poly1305/onetimeauth_poly1305.c \ + crypto_onetimeauth/poly1305/donna/poly1305_donna.c \ + crypto_pwhash/crypto_pwhash.c \ + crypto_pwhash/argon2/argon2-core.c \ + crypto_pwhash/argon2/argon2.c \ + crypto_pwhash/argon2/argon2-encoding.c \ + crypto_pwhash/argon2/argon2-fill-block-ref.c \ + crypto_pwhash/argon2/blake2b-long.c \ + crypto_pwhash/argon2/pwhash_argon2i.c \ + crypto_scalarmult/curve25519/scalarmult_curve25519.c \ + crypto_scalarmult/curve25519/ref10/x25519_ref10.c \ + crypto_stream/chacha20/stream_chacha20.c \ + crypto_stream/chacha20/ref/chacha20_ref.c \ + crypto_stream/salsa20/stream_salsa20.c \ + crypto_stream/salsa20/ref/salsa20_ref.c \ + crypto_verify/sodium/verify.c \ + randombytes/randombytes.c \ + randombytes/sysrandom/randombytes_sysrandom.c \ + sodium/core.c \ + sodium/runtime.c \ + sodium/utils.c \ + sodium/version.c + +LOCAL_MODULE := sodium +LOCAL_CFLAGS += -I$(LOCAL_PATH)/libsodium/src/libsodium/include \ + -I$(LOCAL_PATH)/include \ + -I$(LOCAL_PATH)/include/sodium \ + -I$(LOCAL_PATH)/libsodium/src/libsodium/include/sodium \ + -DPACKAGE_NAME=\"libsodium\" -DPACKAGE_TARNAME=\"libsodium\" \ + -DPACKAGE_VERSION=\"1.0.15\" -DPACKAGE_STRING=\"libsodium-1.0.15\" \ + -DPACKAGE_BUGREPORT=\"https://github.com/jedisct1/libsodium/issues\" \ + -DPACKAGE_URL=\"https://github.com/jedisct1/libsodium\" \ + -DPACKAGE=\"libsodium\" -DVERSION=\"1.0.15\" \ + -DHAVE_PTHREAD=1 \ + -DSTDC_HEADERS=1 \ + -DHAVE_SYS_TYPES_H=1 \ + -DHAVE_SYS_STAT_H=1 \ + -DHAVE_STDLIB_H=1 \ + -DHAVE_STRING_H=1 \ + -DHAVE_MEMORY_H=1 \ + -DHAVE_STRINGS_H=1 \ + -DHAVE_INTTYPES_H=1 \ + -DHAVE_STDINT_H=1 \ + -DHAVE_UNISTD_H=1 \ + -D__EXTENSIONS__=1 \ + -D_ALL_SOURCE=1 \ + -D_GNU_SOURCE=1 \ + -D_POSIX_PTHREAD_SEMANTICS=1 \ + -D_TANDEM_SOURCE=1 \ + -DHAVE_DLFCN_H=1 \ + -DLT_OBJDIR=\".libs/\" \ + -DHAVE_SYS_MMAN_H=1 \ + -DNATIVE_LITTLE_ENDIAN=1 \ + -DASM_HIDE_SYMBOL=.hidden \ + -DHAVE_WEAK_SYMBOLS=1 \ + -DHAVE_ATOMIC_OPS=1 \ + -DHAVE_ARC4RANDOM=1 \ + -DHAVE_ARC4RANDOM_BUF=1 \ + -DHAVE_MMAP=1 \ + -DHAVE_MLOCK=1 \ + -DHAVE_MADVISE=1 \ + -DHAVE_MPROTECT=1 \ + -DHAVE_NANOSLEEP=1 \ + -DHAVE_POSIX_MEMALIGN=1 \ + -DHAVE_GETPID=1 \ + -DCONFIGURED=1 + +LOCAL_SRC_FILES := $(addprefix libsodium/src/libsodium/,$(SODIUM_SOURCE)) + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## libancillary +######################################################## + +include $(CLEAR_VARS) + +ANCILLARY_SOURCE := fd_recv.c fd_send.c + +LOCAL_MODULE := libancillary +LOCAL_CFLAGS += -I$(LOCAL_PATH)/libancillary + +LOCAL_SRC_FILES := $(addprefix libancillary/, $(ANCILLARY_SOURCE)) + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## libipset +######################################################## + +include $(CLEAR_VARS) + +bdd_src = bdd/assignments.c bdd/basics.c bdd/bdd-iterator.c bdd/expanded.c \ + bdd/reachable.c bdd/read.c bdd/write.c +map_src = map/allocation.c map/inspection.c map/ipv4_map.c map/ipv6_map.c \ + map/storage.c +set_src = set/allocation.c set/inspection.c set/ipv4_set.c set/ipv6_set.c \ + set/iterator.c set/storage.c + +IPSET_SOURCE := general.c $(bdd_src) $(map_src) $(set_src) + +LOCAL_MODULE := libipset +LOCAL_CFLAGS += -I$(LOCAL_PATH)/shadowsocks-libev/libipset/include \ + -I$(LOCAL_PATH)/shadowsocks-libev/libcork/include + +LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libipset/,$(IPSET_SOURCE)) + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## libcork +######################################################## + +include $(CLEAR_VARS) + +cli_src := cli/commands.c +core_src := core/allocator.c core/error.c core/gc.c \ + core/hash.c core/ip-address.c core/mempool.c \ + core/timestamp.c core/u128.c +ds_src := ds/array.c ds/bitset.c ds/buffer.c ds/dllist.c \ + ds/file-stream.c ds/hash-table.c ds/managed-buffer.c \ + ds/ring-buffer.c ds/slice.c +posix_src := posix/directory-walker.c posix/env.c posix/exec.c \ + posix/files.c posix/process.c posix/subprocess.c +pthreads_src := pthreads/thread.c + +CORK_SOURCE := $(cli_src) $(core_src) $(ds_src) $(posix_src) $(pthreads_src) + +LOCAL_MODULE := libcork +LOCAL_CFLAGS += -I$(LOCAL_PATH)/shadowsocks-libev/libcork/include \ + -DCORK_API=CORK_LOCAL + +LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libcork/,$(CORK_SOURCE)) + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## libudns +######################################################## + +include $(CLEAR_VARS) + +UDNS_SOURCES := udns_dn.c udns_dntosp.c udns_parse.c udns_resolver.c udns_init.c \ + udns_misc.c udns_XtoX.c \ + udns_rr_a.c udns_rr_ptr.c udns_rr_mx.c udns_rr_txt.c udns_bl.c \ + udns_rr_srv.c udns_rr_naptr.c udns_codes.c udns_jran.c + +LOCAL_MODULE := libudns +LOCAL_CFLAGS += -I$(LOCAL_PATH)/shadowsocks-libev/libudns \ + -DHAVE_DECL_INET_NTOP + +LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/libudns/,$(UDNS_SOURCES)) + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## libev +######################################################## + +include $(CLEAR_VARS) + +LOCAL_MODULE := libev +LOCAL_CFLAGS += -I$(LOCAL_PATH)/include/libev +LOCAL_SRC_FILES := \ + shadowsocks-libev/libev/ev.c \ + shadowsocks-libev/libev/event.c + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## shadowsocks-libev local +######################################################## + +include $(CLEAR_VARS) + +SHADOWSOCKS_SOURCES := local.c cache.c udprelay.c encrypt.c \ + utils.c netutils.c json.c jconf.c acl.c http.c tls.c rule.c \ + android.c + +LOCAL_MODULE := ssr-local +LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/src/, $(SHADOWSOCKS_SOURCES)) +LOCAL_CFLAGS := -Wall -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 \ + -I$(LOCAL_PATH)/pcre \ + -I$(LOCAL_PATH)/shadowsocks-libev/libudns \ + -I$(LOCAL_PATH)/shadowsocks-libev/libcork/include \ + -I$(LOCAL_PATH)/libsodium/src/libsodium/include \ + -I$(LOCAL_PATH)/libsodium/src/libsodium/include/sodium \ + -I$(LOCAL_PATH)/shadowsocks-libev/libipset/include \ + -I$(LOCAL_PATH)/shadowsocks-libev/libev \ + -I$(LOCAL_PATH)/shadowsocks-libev/src + +LOCAL_STATIC_LIBRARIES := libev libmbedtls libipset libcork libudns \ + libsodium libancillary libpcre + +LOCAL_LDLIBS := -llog + +include $(BUILD_SHARED_EXECUTABLE) + +######################################################## +## mbed TLS +######################################################## + +include $(CLEAR_VARS) + +LOCAL_MODULE := mbedtls + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/mbedtls/include + +MBEDTLS_SOURCES := $(wildcard $(LOCAL_PATH)/mbedtls/library/*.c) + +LOCAL_SRC_FILES := $(MBEDTLS_SOURCES:$(LOCAL_PATH)/%=%) + +include $(BUILD_STATIC_LIBRARY) + +######################################################## +## pcre +######################################################## + +include $(CLEAR_VARS) + +LOCAL_MODULE := pcre + +LOCAL_CFLAGS += -DHAVE_CONFIG_H + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/pcre/dist $(LOCAL_PATH)/pcre + +libpcre_src_files := \ + dist/pcre_byte_order.c \ + dist/pcre_compile.c \ + dist/pcre_config.c \ + dist/pcre_dfa_exec.c \ + dist/pcre_exec.c \ + dist/pcre_fullinfo.c \ + dist/pcre_get.c \ + dist/pcre_globals.c \ + dist/pcre_jit_compile.c \ + dist/pcre_maketables.c \ + dist/pcre_newline.c \ + dist/pcre_ord2utf8.c \ + dist/pcre_refcount.c \ + dist/pcre_string_utils.c \ + dist/pcre_study.c \ + dist/pcre_tables.c \ + dist/pcre_ucd.c \ + dist/pcre_valid_utf8.c \ + dist/pcre_version.c \ + dist/pcre_xclass.c + +LOCAL_SRC_FILES := $(addprefix pcre/, $(libpcre_src_files)) $(LOCAL_PATH)/patch/pcre/pcre_chartables.c + +include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/ssr-libev/src/main/jni/Application.mk b/ssr-libev/src/main/jni/Application.mk new file mode 100644 index 000000000..4cbaeb0d9 --- /dev/null +++ b/ssr-libev/src/main/jni/Application.mk @@ -0,0 +1,4 @@ +APP_CFLAGS := -fdata-sections -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden +APP_LDFLAGS := -Wl,--hash-style=both -Wl,-exclude-libs,ALL -Wl,--gc-sections +APP_THIN_ARCHIVE := true +APP_STL := c++_static \ No newline at end of file diff --git a/ssr-libev/src/main/jni/build-shared-executable.mk b/ssr-libev/src/main/jni/build-shared-executable.mk new file mode 100644 index 000000000..05239df18 --- /dev/null +++ b/ssr-libev/src/main/jni/build-shared-executable.mk @@ -0,0 +1,31 @@ +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# this file is included from Android.mk files to build a target-specific +# executable program +# +# Modified by @Mygod, based on: +# https://android.googlesource.com/platform/ndk/+/a355a4e/build/core/build-shared-library.mk +# https://android.googlesource.com/platform/ndk/+/a355a4e/build/core/build-executable.mk +LOCAL_BUILD_SCRIPT := BUILD_EXECUTABLE +LOCAL_MAKEFILE := $(local-makefile) +$(call check-defined-LOCAL_MODULE,$(LOCAL_BUILD_SCRIPT)) +$(call check-LOCAL_MODULE,$(LOCAL_MAKEFILE)) +$(call check-LOCAL_MODULE_FILENAME) +# we are building target objects +my := TARGET_ +$(call handle-module-filename,lib,$(TARGET_SONAME_EXTENSION)) +$(call handle-module-built) +LOCAL_MODULE_CLASS := EXECUTABLE +include $(BUILD_SYSTEM)/build-module.mk diff --git a/ssr-libev/src/main/jni/include/libev/config.h b/ssr-libev/src/main/jni/include/libev/config.h new file mode 100644 index 000000000..b7cd0b520 --- /dev/null +++ b/ssr-libev/src/main/jni/include/libev/config.h @@ -0,0 +1,129 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the `clock_gettime' function. */ +/* #undef HAVE_CLOCK_GETTIME */ + +/* Define to 1 to use the syscall interface for clock_gettime */ +#define HAVE_CLOCK_SYSCALL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `epoll_ctl' function. */ +#define HAVE_EPOLL_CTL 1 + +/* Define to 1 if you have the `eventfd' function. */ +#define HAVE_EVENTFD 1 + +/* Define to 1 if the floor function is available */ +#define HAVE_FLOOR 1 + +/* Define to 1 if you have the `inotify_init' function. */ +#define HAVE_INOTIFY_INIT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `kqueue' function. */ +/* #undef HAVE_KQUEUE */ + +/* Define to 1 if you have the `rt' library (-lrt). */ +/* #undef HAVE_LIBRT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `port_create' function. */ +/* #undef HAVE_PORT_CREATE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PORT_H */ + +/* Define to 1 if you have the `select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `signalfd' function. */ +#define HAVE_SIGNALFD 0 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_INOTIFY_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SIGNALFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "libev" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "4.11" + +#define DNDEBUG 1 +#define HAVE_CONFIG_H 1 diff --git a/ssr-libev/src/main/jni/include/shadowsocks-libev/config.h b/ssr-libev/src/main/jni/include/shadowsocks-libev/config.h new file mode 100644 index 000000000..59451b968 --- /dev/null +++ b/ssr-libev/src/main/jni/include/shadowsocks-libev/config.h @@ -0,0 +1,425 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* errno for incomplete non-blocking connect(2) */ +#define CONNECT_IN_PROGRESS EINPROGRESS + +/* Override libev default fd conversion macro. */ +/* #undef EV_FD_TO_WIN32_HANDLE */ + +/* Override libev default fd close macro. */ +/* #undef EV_WIN32_CLOSE_FD */ + +/* Override libev default handle conversion macro. */ +/* #undef EV_WIN32_HANDLE_TO_FD */ + +/* Reset max file descriptor size. */ +/* #undef FD_SETSIZE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the `CCCryptorCreateWithMode' function. */ +/* #undef HAVE_CCCRYPTORCREATEWITHMODE */ + +/* Define to 1 if you have the `clock_gettime' function. */ +/* #undef HAVE_CLOCK_GETTIME */ + +/* Define to 1 to use the syscall interface for clock_gettime */ +/* #undef HAVE_CLOCK_SYSCALL */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_COMMONCRYPTO_COMMONCRYPTO_H */ + +/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you + don't. */ +#define HAVE_DECL_INET_NTOP 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `epoll_ctl' function. */ +/* #undef HAVE_EPOLL_CTL */ + +/* Define to 1 if you have the `eventfd' function. */ +/* #undef HAVE_EVENTFD */ + +/* Define to 1 if you have the `EVP_EncryptInit_ex' function. */ +/* #undef HAVE_EVP_ENCRYPTINIT_EX */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if the floor function is available */ +#define HAVE_FLOOR 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `getpwnam_r' function. */ +#define HAVE_GETPWNAM_R 1 + +/* Define to 1 if you have the `inet_ntop' function. */ +/* #undef HAVE_INET_NTOP */ + +/* Define to 1 if you have the `inotify_init' function. */ +/* #undef HAVE_INOTIFY_INIT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Enable IPv6 support in libudns */ +#define HAVE_IPv6 1 + +/* Define to 1 if you have the `kqueue' function. */ +#define HAVE_KQUEUE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LANGINFO_H 1 + +/* Define to 1 if you have the `rt' library (-lrt). */ +/* #undef HAVE_LIBRT */ + +/* Define to 1 if you have the `socket' library (-lsocket). */ +/* #undef HAVE_LIBSOCKET */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_IF_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_NETFILTER_IPV4_H */ + +/* Define to 1 if you have the header + file. */ +/* #undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `malloc' function. */ +#define HAVE_MALLOC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_ENGINE_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_ERR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_EVP_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_PEM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_RAND_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_RSA_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENSSL_SHA_H */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `port_create' function. */ +/* #undef HAVE_PORT_CREATE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PORT_H */ + +/* Have PTHREAD_PRIO_INHERIT. */ +#define HAVE_PTHREAD_PRIO_INHERIT 1 + +/* Define to 1 if you have the `RAND_pseudo_bytes' function. */ +/* #undef HAVE_RAND_PSEUDO_BYTES */ + +/* Define to 1 if you have the 'select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setrlimit' function. */ +#define HAVE_SETRLIMIT 1 + +/* Define to 1 if you have the `signalfd' function. */ +/* #undef HAVE_SIGNALFD */ + +/* Define to 1 if you have the `socket' function. */ +#define HAVE_SOCKET 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EPOLL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENTFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_INOTIFY_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SIGNALFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WINDOWS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WINSOCK2_H */ + +/* Define to 1 if `fork' works. */ +#define HAVE_WORKING_FORK 1 + +/* Define to 1 if `vfork' works. */ +#define HAVE_WORKING_VFORK 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WS2TCPIP_H */ + +/* have zlib compression support */ +/* #undef HAVE_ZLIB */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ZLIB_H */ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 if assertions should be disabled. */ +/* #undef NDEBUG */ + +/* Name of package */ +#define PACKAGE "shadowsocks-libev" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "max.c.lv@gmail.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "shadowsocks-libev" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "shadowsocks-libev 2.4.8" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "shadowsocks-libev" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "2.4.8" + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* Define to the type of arg 1 for `select'. */ +#define SELECT_TYPE_ARG1 int + +/* Define to the type of args 2, 3 and 4 for `select'. */ +#define SELECT_TYPE_ARG234 (fd_set *) + +/* Define to the type of arg 5 for `select'. */ +#define SELECT_TYPE_ARG5 (struct timeval *) + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* If the compiler supports a TLS storage class define it to that here */ +#define TLS __thread + +/* Use Apple CommonCrypto library */ +/* #undef USE_CRYPTO_APPLECC */ + +/* Use mbed TLS library */ +#define USE_CRYPTO_MBEDTLS 1 + +/* Use OpenSSL library */ +/* #undef USE_CRYPTO_OPENSSL */ + +/* Use PolarSSL library */ +/* #undef USE_CRYPTO_POLARSSL */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#define VERSION "2.4.8" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT8_T */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to `int' if does not define. */ +/* #undef pid_t */ + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to `int' if does not define. */ +/* #undef ssize_t */ + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint16_t */ + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint8_t */ + +/* 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/ssr-libev/src/main/jni/include/sodium/version.h b/ssr-libev/src/main/jni/include/sodium/version.h new file mode 100644 index 000000000..b95c40b52 --- /dev/null +++ b/ssr-libev/src/main/jni/include/sodium/version.h @@ -0,0 +1,29 @@ + +#ifndef sodium_version_H +#define sodium_version_H + +#include "export.h" + +#define SODIUM_VERSION_STRING "1.0.7" + +#define SODIUM_LIBRARY_VERSION_MAJOR 9 +#define SODIUM_LIBRARY_VERSION_MINOR 0 + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +const char *sodium_version_string(void); + +SODIUM_EXPORT +int sodium_library_version_major(void); + +SODIUM_EXPORT +int sodium_library_version_minor(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ssr-libev/src/main/jni/libancillary b/ssr-libev/src/main/jni/libancillary new file mode 160000 index 000000000..311e5d14f --- /dev/null +++ b/ssr-libev/src/main/jni/libancillary @@ -0,0 +1 @@ +Subproject commit 311e5d14f593f16c785bc6605220517eb1f21f6b diff --git a/ssr-libev/src/main/jni/libsodium b/ssr-libev/src/main/jni/libsodium new file mode 160000 index 000000000..3b689a6ab --- /dev/null +++ b/ssr-libev/src/main/jni/libsodium @@ -0,0 +1 @@ +Subproject commit 3b689a6ab443cb7b467c2cb6c8434d97fd807168 diff --git a/ssr-libev/src/main/jni/mbedtls b/ssr-libev/src/main/jni/mbedtls new file mode 160000 index 000000000..d414c32a1 --- /dev/null +++ b/ssr-libev/src/main/jni/mbedtls @@ -0,0 +1 @@ +Subproject commit d414c32a160a45725430d99b3c11904760ac8b9c diff --git a/ssr-libev/src/main/jni/patch/pcre/pcre_chartables.c b/ssr-libev/src/main/jni/patch/pcre/pcre_chartables.c new file mode 100644 index 000000000..1e20ec29d --- /dev/null +++ b/ssr-libev/src/main/jni/patch/pcre/pcre_chartables.c @@ -0,0 +1,198 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This file contains character tables that are used when no external tables +are passed to PCRE by the application that calls it. The tables are used only +for characters whose code values are less than 256. + +This is a default version of the tables that assumes ASCII encoding. A program +called dftables (which is distributed with PCRE) can be used to build +alternative versions of this file. This is necessary if you are running in an +EBCDIC environment, or if you want to default to a different encoding, for +example ISO-8859-1. When dftables is run, it creates these tables in the +current locale. If PCRE is configured with --enable-rebuild-chartables, this +happens automatically. + +The following #includes are present because without them gcc 4.x may remove the +array definition from the final binary if PCRE is built into a static library +and dead code stripping is activated. This leads to link errors. Pulling in the +header ensures that the array gets flagged as "someone outside this compilation +unit might reference this" and so it will always be supplied to the linker. */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "pcre_internal.h" + +const pcre_uint8 PRIV(default_tables)[] = { + +/* This table is a lower casing table. */ + + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135, + 136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151, + 152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167, + 168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183, + 184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199, + 200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215, + 216,217,218,219,220,221,222,223, + 224,225,226,227,228,229,230,231, + 232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,247, + 248,249,250,251,252,253,254,255, + +/* This table is a case flipping table. */ + + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135, + 136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151, + 152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167, + 168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183, + 184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199, + 200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215, + 216,217,218,219,220,221,222,223, + 224,225,226,227,228,229,230,231, + 232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,247, + 248,249,250,251,252,253,254,255, + +/* This table contains bit maps for various character classes. Each map is 32 +bytes long and the bits run from the least significant end of each byte. The +classes that have their own maps are: space, xdigit, digit, upper, lower, word, +graph, print, punct, and cntrl. Other classes are built from combinations. */ + + 0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc, + 0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +/* This table identifies various classes of character by individual bits: + 0x01 white space character + 0x02 letter + 0x04 decimal digit + 0x08 hexadecimal digit + 0x10 alphanumeric or '_' + 0x80 regular expression metacharacter or binary zero +*/ + + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */ + 0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00, /* 8- 15 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ + 0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* - ' */ + 0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /* ( - / */ + 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */ + 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /* 8 - ? */ + 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* @ - G */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* H - O */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* P - W */ + 0x12,0x12,0x12,0x80,0x80,0x00,0x80,0x10, /* X - _ */ + 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* ` - g */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* h - o */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* p - w */ + 0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /* x -127 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */ + +/* End of pcre_chartables.c */ diff --git a/ssr-libev/src/main/jni/pcre b/ssr-libev/src/main/jni/pcre new file mode 160000 index 000000000..222bbf4b3 --- /dev/null +++ b/ssr-libev/src/main/jni/pcre @@ -0,0 +1 @@ +Subproject commit 222bbf4b3fb8e13c21686803e47e31aa3e4ad130 diff --git a/ssr-libev/src/main/jni/re2 b/ssr-libev/src/main/jni/re2 new file mode 160000 index 000000000..ca93436e5 --- /dev/null +++ b/ssr-libev/src/main/jni/re2 @@ -0,0 +1 @@ +Subproject commit ca93436e5b1be02f9f4bfca79b8202c400161994 diff --git a/ssr-libev/src/main/jni/shadowsocks-libev b/ssr-libev/src/main/jni/shadowsocks-libev new file mode 160000 index 000000000..70921a02a --- /dev/null +++ b/ssr-libev/src/main/jni/shadowsocks-libev @@ -0,0 +1 @@ +Subproject commit 70921a02a860b0ca2df4069a609951bc4182c245