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.
- GNU treats void* as char* when doing pointer arithmetic, so let's make it clear
- Fix memory leak, save copy from malloc() and pass the original pointer to free()
- minor type mismatches
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
* Add 'tunnel_address' support for json config parser
And allow ss-tunnel to use the newly introduced parser.
Signed-off-by: Adam Anonymous <anonymous_temp_user@yahoo.co.jp>
* Add "mode" support for jconf
Now jconf supports "mode" setting, allowed values are "tcp_only",
"tcp_and_udp" and "udp_only".
Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>
* Use jconf "mode" for server/local/tunnel/manager
Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>
* Add per-project vimrc to gitignore
As the coding style differs from kernel and other projects, so such
project vimrc should be helpful.
Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>
- Added one macro to avoid dangling pointers
- Added two functions to perform NULL pointer check
since the allocation is not guaranteed by C library, although it
is a rare case, just for sanity
- Add NULL pointer check to brealloc() and bfree() and for sanity as well
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
errno is never set to zero by any system call or library function,
and it's programmer's resposibility to reset it before doing checks.
Otherwise the error might be misleading.
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>