Add experimental HTTP/TLS obfuscating as an **optional extension** of shadowsocks protocol.
More discussions can be found here: https://github.com/shadowsocks/shadowsocks-org/issues/26
As this feature is still a SIP (Shadowsocks Improvement Proposal), it's very unstable and experimental. So,
1. Don't enable it unless you know what it is.
2. Be very careful when using it in production environment.
- The usage of `pthread_setname_np` is not supported on versions of
glibc earlier than 2.12. This patch checks the glibc MINOR version and
only uses that API where supported.
- This will suppress undeclared function warning when compiling
with uClibc/musl-libc.
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
Notes:
- Test cipher CFB support just in case (i.e. OpenWrt disabled it)
- Added some inline notes, please feel free to modify or remove them.
- Sorry for my bad English
- If you want to compile for OpenWrt, please make sure this hunk[1] not exists.
- Only tested on ARM mamba (Linksys WRT1900AC v1), it works.
[1] https://github.com/openwrt-mirror/openwrt/blob/master/package/libs/mbedtls/patches/200-config.patch#L12-L20
Have fun!
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>