Commit Graph
745 Commits
Author SHA1 Message Date
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
Max Lv 32f52dabf9 Fix #1008 2016-12-27 15:02:13 +08:00
Max Lv 8e52029d31 Fix #1006 2016-12-23 18:17:25 +08:00
Liu DongMiao d2b7e6702d Support mac os x's launch_activate_socket (#1003)
In Mac OS X 10.10, `launch_activate_socket` was introduced.
So whenever the port is requested, the `launchd` can launch the program
dynamically. A possible plist may like this:

```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.github.shadowsocks</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/ss-local</string>
                <string>-s</string>
                <string>server host</string>
                <string>-p</string>
                <string>server port</string>
                <!-- the -l and -b can be ommited, as launchd takes over it -->
                <string>-k</string>
                <string>password</string>
                <string>-m</string>
                <string>method</string>
                <string>-t</string>
                <string>timeout</string>
                <string>-A</string>
        </array>
        <key>Sockets</key>
        <dict>
                <!-- the name is hard coded in ss-local -->
                <key>Listeners</key>
                <dict>
                        <key>SockNodeName</key>
                        <string>127.0.0.1</string>
                        <key>SockServiceName</key>
                        <string>socks</string>
                </dict>
        </dict>
</dict>
</plist>
```

The magic is `launchd` will listen to the `SockServiceName`, when the port
is requested, the `ss-local` will be launched.
2016-12-22 01:06:22 -06:00
Max Lv 134a35fd6c Refine addr resolving 2016-12-20 22:17:04 +08:00
Max Lv 31a88839d0 Handle large HTTP header properly 2016-12-14 08:51:59 +08:00
Syrone Wong e6c0780435 memset zero before using
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2016-12-10 21:37:56 -06:00
Max Lv dafadaa621 Fix #990 2016-12-08 19:04:47 +08:00
Syrone Wong 9db8c3abe8 zeroize some structs before using
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2016-12-08 04:11:43 -06:00
Syrone Wong cbe12c30fe Update uthash to latest
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2016-12-08 04:10:52 -06:00
Max Lv b7e5a97a74 Fix building error of ss-redir 2016-12-08 15:20:08 +08:00
Max Lv 25cc062e5d Use cork_container_of instead 2016-12-08 15:06:42 +08:00
Max Lv 65843154cf Fix building error 2016-12-08 14:51:14 +08:00
Max Lv a63a33861f Add container_of 2016-12-08 14:48:40 +08:00
Syrone Wong baff29e970 Fix issues found by cppcheck
- 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>
2016-12-07 22:30:47 -06:00
Max Lv 8b358c59c7 Disable resolution retry after startup 2016-12-08 12:11:55 +08:00
Syrone Wong 43a236d3ca Clarify calculation precedence for '&' and '?' (#986) 2016-12-07 20:05:36 -06:00
Max Lv a987783b2a Fix a potential memory leak 2016-12-04 13:52:59 +08:00
Max Lv 24b407c37d Fix #981 2016-12-04 11:53:42 +08:00
Rayson Zhu 135ceedb14 revert pwd->name to user when error occurs (#979) 2016-11-28 22:02:45 -06:00
Rayson Zhu 4034190b15 Change supplementary groups after setgid. (#977) 2016-11-28 16:42:35 -06:00
Max Lv fd388e0502 Fix #972 2016-11-26 13:34:41 +08:00
Rayson zhu 1c738323a7 Similar fix as #967 2016-11-25 02:11:16 -06:00
Rayson zhu a8fdd77fbf add user config option 2016-11-25 02:10:17 -06:00
tim-le aca5f5ddb4 Fix #966 again (#967)
* SO_REUSEADDR for remote sockfd

avoid  ERROR: bind_to_address: Address already in use

* set addr->sin_port to be 0

* Update server.c

* Update server.c

* Update server.c

* Update server.c

* Update server.c

* Update server.c

* Update server.c
2016-11-20 03:24:27 -06:00
Max Lv dbc530ccb1 Fix #966 2016-11-20 15:39:07 +08:00
Max Lv c0b26e380e Fix #985 2016-11-20 15:36:21 +08:00
Rayson zhu a6ef853e2b will not print user name 2016-11-20 01:31:58 +08:00
Max Lv 52e391962f Add option for firewall rules 2016-11-17 15:18:46 +08:00
Max Lv 79a98a66d8 Refine geteuid() 2016-11-16 18:19:51 +08:00
Max Lv a05a64f563 Add missing macro #954 2016-11-16 14:40:09 +08:00
Max Lv 2b7c487b09 Refine #954 2016-11-16 14:38:23 +08:00
Max Lv 6d9331a56d Fix #954 2016-11-16 14:04:57 +08:00
Max Lv a76f8f46ba Merge pull request #953 from vfreex/feature-uid
Feature: Support uid for `-a` option.
2016-11-15 22:03:58 -06:00
Max Lv 780b1aeb1a Merge pull request #952 from vfreex/fix-jconf-parse
Fix config file parsing
2016-11-15 22:03:42 -06:00
Max Lv 12612c6395 Refine key string 2016-11-16 11:08:02 +08:00
Rayson zhu 99a1ece116 Feature: uid support in run_as 2016-11-16 10:45:15 +08:00
Yuxiang Zhu 78b7afb9ac ss_strndup will fail if insufficient memory was available 2016-11-16 10:26:25 +08:00
Rayson zhu dbf00467e0 Fix read_jconf
1. a memory leak
2. missing type check
2016-11-16 10:19:45 +08:00
Max Lv c6876b0707 Refine cache replacing 2016-11-15 13:44:47 +08:00
Max Lv 62aec1e280 exit when running as a nonexistent user and warn when running as root (#948) 2016-11-14 21:06:04 -06:00
Rayson Zhu 07d2b1a005 exit when running as a nonexistent user and warn when running as root 2016-11-14 21:14:06 +08:00
Rayson Zhu 1e8a631885 fix permission check on operating iptables (#947) 2016-11-14 04:47:33 -06:00
Rayson Zhu d1765df9f9 support ipv6_first option in config file (#946) 2016-11-13 23:32:43 -06:00
Max Lv f38aedc71a Refine the ipv6first resolving 2016-11-12 11:15:32 +08:00
Max Lv 5cd294879b Add -6 option for #942 2016-11-12 11:01:05 +08:00
Max Lv f64cb0b0ca Refine the timer of traffic stat 2016-11-12 10:18:53 +08:00
Max Lv a0151422eb Fix the traffic counter in UDP mode 2016-11-12 09:58:06 +08:00
Max Lv 39436d7618 Refine set_linger 2016-11-11 18:35:44 +08:00
Max Lv 1ed725daf8 Refine APIs for auto-blocking 2016-11-11 16:38:13 +08:00