Commit Graph

156 Commits

Author SHA1 Message Date
Andy Wang
4a2eac51fe
Cleanup some tests using testify/assert 2020-12-29 01:24:32 +00:00
Andy Wang
57bb437802
Log timestamp 2020-12-27 20:27:04 +00:00
Andy Wang
21bcb53062
Human friendly key and uid generators 2020-12-19 15:24:25 +00:00
不确定
cfbf0dfcb6
Fix critical bugs in session opening for TCP and UDP in case of Singleplex mode. (#145)
* Fix critical bugs in session opening for TCP and UDP in case of Singleplex mode.

- In case of TCP, don't open the session in the listener accept thread. This
  causes resource exhaustion of the tcp listener backlog queue in case of internet
  connection disruption or timeout.

- In case of UDP, don't create a new session for every UDP packet.

* Fix race in integration test.

* Fix race condition in session maker

* Code style improvements

* Explicit session.Close() call is indeed needed

Co-authored-by: Andy Wang <cbeuw.andy@gmail.com>
2020-12-19 14:42:10 +00:00
notsure2
caca33a1a5 Respect user choice of ProxyMethod in shadowsocks plugin mode. 2020-12-11 09:03:48 +00:00
Andy Wang
8b0a7425f8 Add tests for parsing shadowsocks binding addresses 2020-10-17 13:45:52 +01:00
Andy Wang
afbc87162c Extract address processing functions 2020-10-17 11:55:12 +01:00
Andy Wang
c6d6f40021 Format Android protector C code 2020-10-17 11:11:15 +01:00
Andy Wang
3f3259d4d3 MakeSession no longer needs to know if the Session should be admin 2020-10-15 23:02:51 +01:00
Andy Wang
f96925982f Rename SplitConfigs to ProcessRawConfig to better reflect its behaviour 2020-10-15 22:51:59 +01:00
Andy Wang
9887649b88 Refactor Singleplexing 2020-10-15 21:32:38 +01:00
Andy Wang
0b217ddb07 Linting 2020-08-17 17:56:05 +01:00
notsure2
dab137dbd7 Support session per connection mode (like GoQuiet) when NumConn = 0. 2020-07-06 23:18:52 +02:00
不确定
aff53484eb
Accept and ignore 2 parameters passed by shadowsocks-android in shadowsocks plugin mode. (#115) 2020-05-27 01:06:30 +01:00
Andy Wang
5cbc24817d Acceptor function 2020-05-23 22:25:17 +01:00
Andy Wang
4a81683e44 Code cleanup and move stuff around 2020-04-14 14:14:51 +01:00
Andy Wang
5d4e8b8d8d Refactor udp piping and add tests 2020-04-11 22:37:15 +01:00
Andy Wang
d53b80208f Refactor for easier testing 2020-04-10 11:07:38 +01:00
Andy Wang
254b7152b6 Fix tests 2020-04-09 22:21:02 +01:00
Andy Wang
444182f5bb Purge impurity 2020-04-09 22:11:12 +01:00
Andy Wang
15f343db31 Refactor server configuration 2020-04-09 13:26:23 +01:00
Andy Wang
140c8022f5 Unbreak server keygen 2020-04-09 00:37:59 +01:00
Andy Wang
86095ba5e6 Refactor out Dialer 2020-04-09 00:34:02 +01:00
Andy Wang
8cf7b60f4e Merge remote-tracking branch 'origin/master' 2020-04-08 22:17:32 +01:00
Andy Wang
7e9fe952aa Move code around for clarity 2020-04-08 22:07:11 +01:00
Andy Wang
693544659f Refactor server transport 2020-04-08 21:37:21 +01:00
Andy Wang
545164a300 Make send/receive buffer sizes configurable 2020-04-08 15:07:35 +01:00
Andy Wang
01e5d15d20 Code cleanup 2020-04-08 12:18:20 +01:00
Andy Wang
c1f3408c2c Make key lengths explicit 2020-04-07 21:15:28 +01:00
Kirill Buev
ba5d903539 Fix incorrect config field name for remote port in plugin mode 2020-04-07 09:05:44 +03:00
Andy Wang
6a83c58143 Refactor authentication pipeline 2020-04-06 15:24:18 +01:00
Andy Wang
25e41d0941 Allow UDP option to be set in both commandline and json 2020-04-06 13:11:19 +01:00
Andy Wang
a163f066a6 Refactor client config 2020-04-06 13:07:16 +01:00
Andy Wang
402cfc9e25 Logging for silent connections 2020-04-05 01:15:45 +01:00
Andy Wang
5e1931a11c Ineffectual assignments 2020-04-04 16:10:43 +01:00
notsure2
35236b27d1 Fix: server was timing out response from the proxy instead of the request from the client. 2020-04-04 15:44:45 +01:00
Andy Wang
850f45d66f Remove an unnecessary fatal 2020-04-04 15:34:28 +01:00
notsure2
2de034ec92 Make keepalive optional on client -> server and server -> proxy connections. Use KeepAlive value in config (seconds). 2020-04-04 15:32:19 +01:00
Andy Wang
6b973045d5 Refactor verbosity flag parsing 2020-04-04 15:29:06 +01:00
notsure2
d4ac2a2cf5 Accept log level flag even when started in shadowsocks mode. 2020-04-04 15:18:25 +01:00
Andy Wang
2327420f75 Allow remote host to be set in the client config file 2020-04-04 00:43:06 +01:00
Andy Wang
d482661494 Fix #101 by concatenating IPv6 ports correctly 2020-04-03 23:39:48 +01:00
Andy Wang
517a6d6e57 Handle error and retry for Crypto.rand 2020-02-01 23:46:46 +00:00
Andy Wang
2acc174a05 Update goWeb with new state fields 2019-12-29 19:47:17 +00:00
Andy Wang
c26be98e79 Use sync.Map in multiplex instead of manual locks 2019-11-03 12:22:12 +00:00
Andy Wang
52720ca52f RedirAddr backward compatibility 2019-09-21 16:17:43 +01:00
Andy Wang
8a6f6b6088 Minor error prompt and listen to :80 and :443 by default 2019-09-15 18:11:23 +01:00
Andy Wang
63f3b4a89f Allow server to listen on multiple ports 2019-09-15 15:29:29 +01:00
Andy Wang
339b324946 Working direct WebSocket transport 2019-09-01 20:23:45 +01:00
Andy Wang
a3c3c5dc07 Client side plain websocket 2019-08-31 18:01:39 +01:00