Commit graph

762 commits

Author SHA1 Message Date
clowwindy
42ce2569c4 also test with real website
Now that localhost is used in tests, DNS code is uncovered.
Use clients1.google.com/generate_204 to test if a real website works.
2015-02-10 17:43:06 +08:00
clowwindy
581d6e687f use localhost in test.py
Since now the unit tests is huge, using third party website
is not polite. So use localhost instead.
2015-02-10 17:38:01 +08:00
clowwindy
d774286dc0 rename utils module into shell
Since utils is ambiguous, we want to give the module a more
clear role.
2015-02-10 17:26:10 +08:00
clowwindy
cb7062e1c1 implement utils.print_exception()
Previously we used logging.error(e) and traceback.print_exc()
to output error stack trace. The problem is, we want to
output the stack trace only when verbose > 0. The if statement
scattered around the code. So we replaced them with the new
utils.print_exception() call.
2015-02-10 17:21:29 +08:00
clowwindy
48ddc1714b move jenkins.sh 2015-02-10 17:02:31 +08:00
clowwindy
dfd81af844 support --version 2015-02-09 14:43:11 +08:00
clowwindy
783a6ef7f2 support multiple server ip on client side 2015-02-09 13:50:46 +08:00
clowwindy
e71ce6c758 fix server check 2015-02-03 18:45:36 +08:00
clowwindy
e564f17505 fix bytes in utils 2015-02-03 18:23:22 +08:00
clowwindy
6d09cd21ca fix openssl 2015-02-03 18:13:01 +08:00
clowwindy
318d88ec89 use string more 2015-02-03 18:09:07 +08:00
clowwindy
ce805f0aea license under Apache License v2.0 2015-02-03 14:10:36 +08:00
clowwindy
96a86c028d update CHANGES 2015-02-02 17:29:57 +08:00
clowwindy
2c59ffb952 update rst 2015-02-02 16:42:37 +08:00
clowwindy
27a0c7754d bump 2015-02-02 16:23:17 +08:00
clowwindy
0cd261dd10 catch KeyError 2015-02-02 16:22:56 +08:00
clowwindy
fbf15cb942 update command tests 2015-02-02 15:59:44 +08:00
clowwindy
1c81465436 fix command line 2015-02-02 15:57:44 +08:00
clowwindy
73f21ffbf6 do not check config for daemon stop 2015-02-02 15:50:41 +08:00
clowwindy
7aa37cad8e check cipher before daemon start
fix #280
2015-02-02 15:46:22 +08:00
clowwindy
ae99698b4e implement --user
fix @278
2015-02-02 15:38:55 +08:00
clowwindy
da65d0a2ee update coverage_server 2015-02-01 17:15:10 +08:00
clowwindy
3b7755bd5e fix a travis issue 2015-02-01 09:38:32 +08:00
clowwindy
5a7225c54b fix a problem in test arguments 2015-02-01 09:27:18 +08:00
clowwindy
4aba904d6e fix typo 2015-02-01 09:24:49 +08:00
clowwindy
b77f419336 test if localhost is in the default forbidden list 2015-02-01 09:23:45 +08:00
clowwindy
c39bbbe237 test invalid CIDR 2015-02-01 09:13:29 +08:00
clowwindy
453a9c61a6 show CIDR error more friendly 2015-02-01 09:09:35 +08:00
clowwindy
54181ef821 Merge pull request #279 from planetmeow/develop/CIDRForbidden
Implement CIDR forbidden blacklist
2015-02-01 09:00:08 +08:00
Sunny
17624d0b99 Fix large file test since forbidden ip list is default to localhost
Use an empty forbidden ip list to override default list should work.
2015-02-01 02:40:48 +08:00
Sunny
a0aa9173a8 Fix for Python3 map changed behavior
In Python3, map returns an iterator instead of list in Python2,
which cause map "lazier" than before, wrap with list() force it running.
2015-02-01 02:37:30 +08:00
Sunny
79b9b53dbe Never process empty string and prevent infinite loop
If user provide an empty string as network range, inet_pton will
treate it as an IPv6 unspecified address, it seems a bug but I
can't confirm. Then empty string will be converted to 0, 0 & 1
always be zero, so it caused dead loop.
2015-02-01 01:57:17 +08:00
Sunny
070108f78b Disable forbidden ip feature for local shadowsocks
Since forbidden ip is server-side only, disable it for local-side.
This commit also supress warning about IPv6 loopback because I can
confirm ::1/128 is the only loopback address, not like IPv4.
2015-02-01 01:34:23 +08:00
Sunny
b11d848986 Fix for Python3 lambda behavior change
In Python3, lambda no longer support use tuple as syntax.
So, ugly changes is inevitable.
2015-02-01 01:34:18 +08:00
Sunny
aa28796524 Make common fit PEP8 2015-02-01 01:34:13 +08:00
Sunny
8af359ae05 Use IPNetwork supporting forbidden ip feature in config utils
This commit also make "forbidden_ip" field available in config file.
If no forbidden ip specified in command line and config file,
default to "127.0.0.0/8,::1".
2015-01-31 22:56:23 +08:00
Sunny
100ebcf064 Add IPNetwork class to support CIDR calculation
Usage:
Use IPNetwork(str|list<str>) to create an IPNetwork object.
Use operator 'in' to determine whether the specified
IP address is in the IP network or not, like:
>>> '192.168.1.1' in IPNetwork('192.168.1.0/24')
True

Both IPv4 and IPv6 address are supported.
Note: When using string to initialize the IPNetwork,
a comma seperated IP network list should be provided.

Currently, IPNetwork just support standard CIDR like:
x.x.x.x/y eg. 192.168.1.0/24
::x/y     eg. ::1/10
If pure IP address was provided,
it will be treated as implicit IP network,
like 192.168.0.0 will be treated as 192.168.0.0/16
and  192.168.1.1 will be treated as 192.168.1.1/32
This implicit translate may cause some unexpected behavior,
like user provide 192.168.2.0 and expect it will be treated as
192.168.2.0/24 but actually it will be translated to
192.168.2.0/23 because there are 9 continuous 0 from right.
In order to avoid confusion, a warning message
will be displayed when pure IP address was provided.

Other variants of CIDR are not supported yet.
2015-01-31 22:56:16 +08:00
Sunny
8783e0e9ae Move is_ip from asyncdns to common
Since implement CIDR forbidden need this function,
move it to common file seems to be a better choice.
2015-01-31 22:56:09 +08:00
clowwindy
ada97ab6d9 improve comments 2015-01-31 02:58:40 +08:00
clowwindy
5316b3bf11 update .gitignore 2015-01-28 17:17:05 +08:00
clowwindy
4a2d98b280 update coverage url 2015-01-24 14:43:11 +08:00
clowwindy
51f47ccb91 update coverage url 2015-01-24 14:28:39 +08:00
clowwindy
70ebd2ef28 bump 2015-01-23 17:35:32 +08:00
clowwindy
1f8819f790 fix #270 2015-01-23 17:33:48 +08:00
clowwindy
0e6a4cd8ff output python version in unit tests 2015-01-23 14:06:01 +08:00
clowwindy
f4052fbc84 fix MANIFEST.in 2015-01-21 14:32:55 +08:00
clowwindy
5e5d25efd9 Update CONTRIBUTING.md 2015-01-19 16:20:08 +08:00
clowwindy
2e9ce11ea1 bump 2015-01-18 18:32:04 +08:00
clowwindy
6efb3d00e4 fix #264 2015-01-16 18:52:40 +08:00
clowwindy
13413267dc Update README.md 2015-01-16 17:06:48 +08:00