Browse Source

Reduce the side effects

pull/936/head
Max Lv 8 years ago
parent
commit
60c25dbace
2 changed files with 10 additions and 2 deletions
  1. 4
      src/acl.c
  2. 8
      src/server.c

4
src/acl.c

@ -74,7 +74,7 @@ init_iptables()
char cli[256];
sprintf(cli, "iptables -N SHADOWSOCKS_LIBEV; \
iptables -F SHADOWSOCKS_LIBEV; \
iptables -A OUTPUT -p tcp --tcp-flags FIN FIN -j SHADOWSOCKS_LIBEV");
iptables -A OUTPUT -p tcp --tcp-flags RST RST -j SHADOWSOCKS_LIBEV");
return run_cmd(cli);
}
@ -84,7 +84,7 @@ clean_iptables()
if (geteuid() != 0)
return -1;
char cli[256];
sprintf(cli, "iptables -D OUTPUT -p tcp --tcp-flags FIN FIN -j SHADOWSOCKS_LIBEV; \
sprintf(cli, "iptables -D OUTPUT -p tcp --tcp-flags RST RST -j SHADOWSOCKS_LIBEV; \
iptables -F SHADOWSOCKS_LIBEV; \
iptables -X SHADOWSOCKS_LIBEV");
return run_cmd(cli);

8
src/server.c

@ -315,6 +315,14 @@ reset_addr(int fd)
static void
report_addr(int fd, int err_level)
{
#ifdef __linux__
struct linger so_linger;
so_linger.l_onoff = 1;
so_linger.l_linger = 0;
setsockopt(fd, SOL_SOCKET, SO_LINGER, &so_linger, sizeof so_linger);
#endif
char *peer_name;
peer_name = get_peer_name(fd);
if (peer_name != NULL) {

Loading…
Cancel
Save