From c2b05555899f12a290900d5c30eaaf84670af37f Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 22 Feb 2013 21:49:54 +0800 Subject: [PATCH] refine shadowsocks --- assets/shadowsocks | Bin 42312 -> 42312 bytes jni/shadowsocks/local.c | 16 +++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/assets/shadowsocks b/assets/shadowsocks index 48af64b239905e489e7f62c2e264957b1c629f0f..f9f6da3f81c5762de644380aafe3d5025dfa8ef0 100755 GIT binary patch delta 7884 zcmcgxe^^vi{yujY1`tH#H+Y3R3>JzADi$Cb!gysEbkURs(*%F*n3R)HmSKZi8I>t| z$k6fRB-^v;sQ9WA|x?{5Y2Et zOkzR41^Jd;zq@~G=}tmQ$8Z5;1QEiZMj?hpH|tj`D{I5uZMKQrA5~g2d(iL|4SsBd zT~CwLsn+L5q`o}D-Z#QNJi>l^gnde3kHu5pRoJW*AKh(R$>qBf$QL8*zmKrHN7(-w zVfT%&uW^Y8E#O=1X%yeol_c$y!a%1xr{f>UeqN94^OVb2|5myNKOjj&gZupgy= z3r@9KN2Ilc6G&Ar$Vr6;SdFWr{i}nFcHWKqzwIt3e7`fc*ztX9GDC& z2G}(Vr~qaI_W|sh2izY}grtJ!59xR^b2xDZxDr?d%%Pp5Y@C{I2`>rD9L~?CpMZ*KA^lJhYcfm0q_7Y322(ak+^t5wll`f&5Z9Ql9-& zvM2CN37%u6Bxj2jImTW7-Oxt!5E8>i!l}(H)FKS$2gRb+l(AkB_~;p@AW9fxgvuEU7)Zui3@&498X+bobc8HpjM%GY4BxM2 zjJPs0M(ETshOaG*F^ct!5hhPFMp!j4M)))`&L-pq#)$1E#t6afj1d*hj1fjHU~4>L zsFfuk!1pu8fFEXDK*%x12&dzW5%i}RBNp2jBNk6HMgW{)Ttr9*<2i(!V~k+Bz!($c zB4Y&FWyY8XcE*VP&$BrziANw`VF{Q`*BBcR1B@{fZ!kurxfo-{x)~$TeT*MO3@}De z^)bd|@iWE@RXeh7svU=JMmlynLVX|IynG08@$t^tv?zaij30= zeM+H^DfE7YZc*s%3jKmYHz;)d_u7gU)qZb4uU6<~3cXmN%N1I$(1i+}tI(4bI$fc8 zXzTZ`h*e}nD70Fk{ewSx>$XC>75aukUsLGM75egz+Is!MkH+;5g+8s&rxf~_Lho1T z7KPrf&@U)-gF@E_v~?&bY84r)6?&OMFIMPsh1M%{p+e^>^kjujS7_d0vMF&vk

hrxp5?LLXD;{R-Wp(AyRI1%+;48rQOO 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 arb)+iVHO0p1wqtI=N|hBS503(X8V8U0whHM delta 7459 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]I=MYWE4YwHQWaE`1CyRHB8T5Y( zvt%)t^1@t2>s4Ks&+$=i0I5B#eBfucbj%s(U>YGq=1i`S7MC1I+ki*n!JFQMVmC!fZmOXHx(SMl&*95X8GTIW;@qa3(ib^y9^I$^ zEb}U2K$blkm0yMm&(@gh)lZS1E6Ah&ebZz;xJq{1EjsC|vx?OdyL0u81z&e0eiDfX z>w0*jt(&O#2&tBFv-5=;(t%f!##C=d5Ivnv}5NPFMiezBK+I(J|CNN2y; z(4*irn9l@XQ1pw#@bb!5l$P%o`S!PZ@VZG_dri;hfg=x0m1LxMtI{uSRoRH(gWn zBzKLr*R10POl7Y{%eZgo($&v!XX%%#Kjs=tFV;TEac50mt~ny-PMe;8voI*+?k(@V z;QY~Dw@oeY(2!-38@$Hm=B7Fg_(Wt~U5DQedxxceQWv~&Fn>Atc<^U+Tfh%w_>8&9 zYwQJUH+zk4aLE?j&+@@6-TlE}I={{I$+m@orjDJpL7z9S=V&%)TQtPWAIha1w0xKNJrR z1`>fP*vWod2{zEo{rWiuq_P}Vx*Evbk7sEAe-J3-y9}@^fGU6bzR&P|*RRb{gMVP< z{t9OR8v2+0(MI22TU&AH{d-{icQx#9SM#rpyv1aa9lXGC<@C!#X(4RB8}aQwhdN-f z*=`GAvlM$cEl`UH(bBxb>JSzyRbhx7`t0GfkiowY@ll+9087&V|Bqnzv>Z-T)JJfn zek;9kI9=iUmvJkV9Z6TP`7&>(qmHBxtBdAvBi<8bbit8Sy7vfA>yL!di{LXy!U9=j t80euR@zer~#YQ##<%l}a_x~kLJgN?%{{gx*m8k## diff --git a/jni/shadowsocks/local.c b/jni/shadowsocks/local.c index c4ea82e1..2bda00f2 100644 --- a/jni/shadowsocks/local.c +++ b/jni/shadowsocks/local.c @@ -28,7 +28,6 @@ static char *_server; static char *_remote_port; static int _timeout; -static char *_key; static int setnonblocking(int fd) { int flags; @@ -256,7 +255,6 @@ static void server_send_cb (EV_P_ ev_io *w, int revents) { perror("send"); close_and_free_remote(EV_A_ remote); close_and_free_server(EV_A_ server); - return; } return; } @@ -404,7 +402,6 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) { // close and free close_and_free_remote(EV_A_ remote); close_and_free_server(EV_A_ server); - return; } return; } @@ -579,6 +576,15 @@ static void accept_cb (EV_P_ ev_io *w, int revents) } } +static void print_usage() { + printf("usage: ss -s server_host -p server_port -l local_port\n"); + printf(" -k password [-m encrypt_method] [-f pid_file]\n"); + printf("\n"); + printf("info:\n"); + printf(" encrypt_method: table, rc4\n"); + printf(" pid_file: valid path to the pid file\n"); +} + int main (int argc, char **argv) { @@ -621,6 +627,7 @@ int main (int argc, char **argv) if (server == NULL || remote_port == NULL || port == NULL || key == NULL) { + print_usage(); exit(EXIT_FAILURE); } @@ -679,7 +686,6 @@ int main (int argc, char **argv) _server = strdup(server); _remote_port = strdup(remote_port); _timeout = atoi(timeout); - _key = key; _method = TABLE; if (method != NULL) { if (strcmp(method, "rc4") == 0) { @@ -709,7 +715,7 @@ int main (int argc, char **argv) setnonblocking(listenfd); struct listen_ctx listen_ctx; listen_ctx.fd = listenfd; - struct ev_loop *loop = ev_default_loop(EVBACKEND_EPOLL | EVFLAG_NOENV); + struct ev_loop *loop = ev_default_loop(0); if (!loop) { LOGE("no epoll found here, maybe it hides under your chair"); return 1;