302 Commits
Author SHA1 Message Date
星野ハジメ cc1bb4cf62 format with .uncrustify.cfg (#1759)
* format with .uncrustify.cfg

format with .uncrustify.cfg

* format with .uncrustify.cfg

* format with .uncrustify.cfg exclude json.* base64.* uthash.h

* format with .uncrustify.cfg exclude json.* base64.* uthash.h
2017-10-30 21:28:53 +08:00
星野ハジメ 44027da326 enable TCP_NODELAY from config file (#1757)
* Fix #1739

Refine #1739

* enable TCP_NODELAY from config file
2017-10-30 10:35:14 +08:00
Vladimir Olteanu 82694c8f19 properly set recv_ctx->connected 2017-09-16 14:19:43 +08:00
Vladimir Olteanu 1c64829dfa Add command-line argument for keeping TCP_NODELAY (#1685) 2017-09-15 09:17:00 +08:00
Max Lv ede744ae7c Add c-ares support (#1655)
* Replace udns with c-ares

* Get IO loop work

* Clean up

* Avoid initializing nameservers each query

* Add ARES_OPT_SERVERS

* Refine resolv_cancel

* Fix a memory leak

* Replace udns.h with ares.h

* Fix all inet_* fucntions

* Clean up

* Enable servers_ports when VERSION_MINOR >= 11

* Avoid ares_inet_XtoX

* Handle multipe nameservers correctly

* Use ares_set_servers for IPv4 and IPv6 mixed list

* Refine c-ares for udprelay

* Refine ares_set_servers()

* Refine the timer based on ares_timeout

* Avoid resolv_cancel

* Fix an issue of null pointer

* Fix another null pointer issue

* Refine the order of resolv_shutdown

* Fix the corrupted ev io
2017-08-31 09:16:07 +08:00
Daniel 8e6ee153f0 Replace unchecked malloc with ss_malloc.
In a few places `malloc` was being used without checking the return for
a `NULL` pointer. There's already a wrapper (`ss_malloc`) in
`util.c` that performs this check and exits if it fails so this commit
replaces the unsafe `malloc`s with `ss_malloc`s.
2017-08-06 18:05:18 -07:00
Yousong Zhou db1728c76d decouple use_syslog from pid_flags
Sometimes we need processes to run in the foreground to be supervised
and at the same time use syslog facility instead of logging its stdout,
stderr output
2017-08-01 22:59:38 -07:00
Max Lv 5070256631 Clean up 2017-06-28 17:13:00 +08:00
Max Lv f308ddeda6 Fix #1522 2017-06-08 15:39:18 +08:00
Max Lv d252da8d83 Fix another potential out of bound access. #1465 2017-04-19 12:46:59 +08:00
Max Lv 9ee82a9a89 Fix a potential out of bound access. #1465 2017-04-19 12:16:41 +08:00
V.E.O 0de794f0db avoid blocking requests from local plugins server
When ss-server wrapped in a plugin server, every peer_name are 127.0.0.1, black list seems not working.
If large requests sent from the plugin server, ss-server would in DoS.
Maybe when in plugin mode, disable black list in ss-server and move it to plugin server?
2017-04-14 19:02:48 +08:00
Sebastien DUPONCHEEL 6c6a054e5f ss-server: allows you to set a TOS/DSCP value to the outgoing ciphered connection to the client from a netfilter mark setted on the (re)comming connection from the outside world. 2017-03-08 13:58:28 +08:00
Max Lv 5e13d396ee Refine port binding 2017-03-07 12:05:07 +08:00
Max Lv 3f1337540e Listening at 0.0.0.0 by default 2017-03-04 09:25:12 +08:00
Sebastien DUPONCHEEL 5074cd336d mptcp: make shadowsocks kernel independant 2017-03-03 20:14:00 +08:00
Max Lv b655fb2b8f Replace nonce cache with a ping-pong bloom filter (#1282)
* Add Ping-Pong bloom filter

* Refine bloom filter insertion

* Reduce the error rate to 0.00001

* Avoid alignment issue in murmurhash2

* Fix a memory leak

* Fix build on non-GPU targets

* Detect get_current_dir_name in configure

* Update README.md

* Remove redudant bfree()

* Reduce the memory usage for local client

* Fix #1275

* Refine #1275

* Use IP when bypassing SNI domains

* Also apply replay detector on UDP traffic

* Update deb build script

Now build script is able to auto detect system and choose libraries
necessary to build.

Also update the README accordingly.

* Update build script to enable jessie/stretch etc

Also include a few cleanup that simplified pkg installation from
backports repository.
2017-02-20 10:29:32 +08:00
Max Lv d434cd20ec Fix a memory leak 2017-02-17 12:31:22 +08:00
Max Lv 504a3f7813 Refine MAX_FRAG 2017-02-14 10:38:39 +08:00
Max Lv 422eaa5024 Add back fragmentation detection 2017-02-14 10:02:36 +08:00
Max Lv 2a9b9c7358 Revert "Fix server buffer #1245"
This reverts commit 9716eede20.
2017-02-13 19:03:28 +08:00
Max Lv 9716eede20 Fix server buffer #1245 2017-02-13 18:54:37 +08:00
Max Lv f4b1641636 Fix #1217 2017-02-08 09:58:04 +08:00
Max Lv ef0402eb10 Add --key option to set key directly (#1207) 2017-02-06 17:02:04 +08:00
Max Lv f45c150e02 Fix redundant options 2017-02-04 09:23:22 +08:00
Max Lv 7b290f30d6 Make SO_REUSEPORT disabled by default 2017-02-02 21:05:57 +08:00
Max Lv 56658d1c79 Merge pull request #1152 from shadowsocks/sip004
Add AEAD support
2017-02-01 18:19:40 +08:00
anonymous-contributor 98c51cd0d5 Obfsproxy standalone mode (#1156)
* ss-libev: Introduce mode parameter for start_plugin

Since obfsproxy handles client and server in different ways, no matter
standalone or manged mode, so introduce the mode for start_plugin() to
support obfsproxy.

With more comments added to plugin.h for later developers.

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: Move SS protocol plugin initialization code to start_ss_plugin

Move SS protocol plugin initialization to start_ss_plugin() function, as
the support for obfsproxy will not use that environment.

Also, remove the use of get_current_dir_name() which is a glibc
extension, such macro hack will just make code less readable.
Not to mention it already screw up code folding of vim.

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: Introduce obfsproxy standalone mode support as plugin

Now shadowsocks-libev supports to use obfsproxy as plugin.

Currently we only support to use standalone(proxy) mode of obfsproxy, as
managed mode needs to use SOCKS5 as upstream forward, while ss-libev
doesn't support it yet.

And the output from plugin is just trashed for now.
Support to pipe them into stdout/stderr will be added later.

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: doc: Fix wrong cmdline parameter for plugin options

Command line option for plugin options is "--plugin-opts", not the json
option "--plugin_opts"

Fix it.

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>
2017-02-01 18:18:43 +08:00
anonymous-contributor a3d0f02c3e Use enum number for val of long options (#1155) 2017-02-01 12:53:20 +08:00
anonymous-contributor 1fc17aca38 Use enum number for val of long options (#1155)
* ss-libev: local: Use enum number for val of long options

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: manager: Use enum number for val of long options

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: redir: Use enum number for val of long options

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: server: Use enum number for val of long options

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>

* ss-libev: tunnel: Use enum number for val of long options

Signed-off-by: Adam Anonymous <anonymous_temp_mail@yahoo.co.jp>
2017-02-01 12:49:10 +08:00
Max Lv c0030f0d7d Improve logging 2017-01-31 20:01:44 +08:00
Max Lv 790520c478 No need to report addr in non-stream mode 2017-01-31 19:42:01 +08:00
Max Lv 05d5121707 Fix typos for endian 2017-01-31 18:51:52 +08:00
Max Lv 4ebe5aeb12 Add SIP004 (AEAD) support 2017-01-29 10:10:44 +08:00
Max Lv 3f8cd982e5 Drop MinGW32 support 2017-01-24 20:10:31 +08:00
Max Lv 8fce46ed62 Fix #1078 2017-01-16 13:23:07 +08:00
Max Lv 0acc79b430 Fix UDP relay when plugin enabled 2017-01-14 12:34:05 +08:00
Max Lv 92f0baa789 Update SIP003 interfaces 2017-01-14 10:40:14 +08:00
Max Lv 3fde843ec8 Fix #1061 2017-01-12 10:24:27 +08:00
Max Lv c6355f5060 Fix #1057 2017-01-10 12:57:06 +08:00
Max Lv 355c264a20 Fix #1055 2017-01-10 11:00:40 +08:00
Max Lv dc96bced39 Fix #1051 2017-01-10 09:55:16 +08:00
Max Lv 94a341fe2c Refine SIGCHLD handling 2017-01-09 17:56:56 +08:00
Max Lv f67518a9d4 Fix #1050 2017-01-09 17:15:40 +08:00
Max Lv 97c58ad44d Refine signal handling 2017-01-08 16:22:49 +08:00
Max Lv 61b82c45c5 Add SIP003 plugin support (#1044)
https://github.com/shadowsocks/shadowsocks-org/issues/28
2017-01-08 01:10:00 -06:00
Max Lv 47b3406739 Disable fast_open when setsockopt failed 2016-12-29 11:40:07 +08:00
Max Lv 3383501e7b Disable fast_open when it's not supported 2016-12-29 11:26:32 +08:00
Max Lv 80565eece1 Refine the log of obfuscating 2016-12-28 15:01:17 +08:00
Max Lv 8cb4f81eba Add HTTP/TLS obfuscating. [SIP001] (#1009)
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.
2016-12-27 02:53:25 -06:00