From 5632e02dce7eb50f62b6dd78afe270cf838a45e9 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Sat, 12 Jan 2013 22:06:02 +0800 Subject: [PATCH] ignore all SIGPIPE --- assets/shadowsocks | Bin 128488 -> 128488 bytes jni/shadowsocks/local.c | 10 ++++++---- jni/termExec.cpp | 5 +++++ libs/armeabi/libexec.so | Bin 17576 -> 17576 bytes 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/assets/shadowsocks b/assets/shadowsocks index bd43f5628b06071c44bc4522312ce1a72ab48c99..e5dd30c35cc4b9ac4b500f197117e6e4ed578853 100755 GIT binary patch delta 30367 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 diff --git a/jni/shadowsocks/local.c b/jni/shadowsocks/local.c index c57766fc..6581c306 100644 --- a/jni/shadowsocks/local.c +++ b/jni/shadowsocks/local.c @@ -157,7 +157,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) { response.ver = VERSION; response.method = 0; char *send_buf = (char *)&response; - send(server->fd, send_buf, sizeof(response), MSG_NOSIGNAL); + send(server->fd, send_buf, sizeof(response), 0); server->stage = 1; return; } else if (server->stage == 1) { @@ -171,7 +171,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) { response.rsv = 0; response.atyp = 1; char *send_buf = (char *)&response; - send(server->fd, send_buf, 4, MSG_NOSIGNAL); + send(server->fd, send_buf, 4, 0); close_and_free_remote(EV_A_ remote); close_and_free_server(EV_A_ server); return; @@ -225,7 +225,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) { = (unsigned short) htons(atoi(_remote_port)); int reply_size = 4 + sizeof(struct in_addr) + sizeof(unsigned short); - int r = send(server->fd, server->buf, reply_size, MSG_NOSIGNAL); + int r = send(server->fd, server->buf, reply_size, 0); if (r < reply_size) { LOGE("header not complete sent\n"); close_and_free_remote(EV_A_ remote); @@ -334,7 +334,7 @@ static void remote_recv_cb (EV_P_ ev_io *w, int revents) { } } decrypt(server->buf, r, server->d_ctx); - int w = send(server->fd, server->buf, r, MSG_NOSIGNAL); + int w = send(server->fd, server->buf, r, 0); if(w < 0) { if (errno == EAGAIN) { // no data, wait for send @@ -670,6 +670,8 @@ int main (int argc, char **argv) fclose(file); } + signal(SIGPIPE, SIG_IGN); + // init global variables _server = strdup(server); _remote_port = strdup(remote_port); diff --git a/jni/termExec.cpp b/jni/termExec.cpp index a01c84bb..55623137 100644 --- a/jni/termExec.cpp +++ b/jni/termExec.cpp @@ -121,6 +121,8 @@ static int create_subprocess(const int rdt, const char *cmd, char *const argv[], if(pid == 0){ + signal(SIGPIPE, SIG_IGN); + if (envp) { for (; *envp; ++envp) { putenv(*envp); @@ -145,6 +147,9 @@ static int create_subprocess(const int rdt, const char *cmd, char *const argv[], exit(0); } else { + + signal(SIGPIPE, SIG_IGN); + *pProcessId = (int) pid; dup2(pfds[1], 1); diff --git a/libs/armeabi/libexec.so b/libs/armeabi/libexec.so index f16d8678563933182913f4a390b3ceaf1b1206f2..fe3c9fb359f5b40c4e9883742556ee44c79bf31e 100755 GIT binary patch delta 3360 zcmcInYitx%6ux)aM;CVKc3VoT+jh&=vXnk~wP1m=tw?zjF`ztJq^M|vRS`i+7L~-3 z00l25g;uGG+8T@{3ki`&`U40tJhqXj5E2%oP^Gif1hd#6<9B9f%Vqz2l5f8AojY^q z+;eBn?6z;??c4aSx~Z8(j1f!>=3tD2>ZSqnqX;5!6)@}L25VvHP7N*Vl6L9x{Z6JVUAJE!nT7|(ZO4ISUhjY@(<8GbaN6@ zGP;qr#A#ccPL9**&`Bd0TMu^PemUR?3!@V{*k9_{$F*NAMW8}Dp&UA9qu?x-G$r(6 zoL&WeG?TFejL`x<}B9&OiwW==G952)$=e`z?&BePA$PVRxYOpL#Tb8Rf6VcnU%^ zVH)(TCm5^JwHNxZq|2aV=7uvjPOpHj%|#MJFrOb2z7=;uBXkfeT1qEiycv4Clwc?H zW=WrcZk6y&Sq9x?a}}(91oH zxpmzHy&2l5>o({u()dy6Hs~&W{35hoQNMP>-w{}h3@K?!;6a>D#>^X~@tin49=cT; zUl6C)LU&2yTL!g1dc#iIq(eo`9DyU)Md*wa{g{HklY}hNg#- z7UY6%lQgTTS-o*p&C6@WdDE4lFTGt?^Y+?T)~%`!d}IF5=x3Fl@~Q5rmEFw`Vjm)LY>2k=5`R*It! z$N^?(k?3JEXt=J+!4rUqKo&qxQ3XIY9vBDU@n#b9bSqW>lmO2FmEwBg zSW#>93O6^3Mq54}+Nj|rVd=UbBfN>4rN#m}j|C5li)Bk1yQ6Ivg*Y%8m_$N1YM@Dg zhf0s;&7Rf=h^RM^*`lN!6LBn*GDjI|S67&}Njl(9}?Eb1^Z?tPRP`*oZc`_V<5$k-`jl=Unz7IBW)iH#1D zgU!A~j79uLjLp7Ej0%Q`k@QVsRG^m_74IWP;{C*Kyc@*W?EA#1o1{Y2cjXpOXCJ z@Dtqodzho`cZ0hr^u4P7c@Ry&$Pi;qp@Yz^qQv2`H=rFP99ih&*=l5#Smh`fG3jpE ziLRNuaJJ=$!^Jz;C^a%peB~&$xbD8{QX_70-El3sGi-LX`Apr%s=cmFRcfR}T`7J} z8e{(fdYTqVRV#(nS-{^DrOwI8OT)%YbN440&DBOPKQxPvoCWr+`t>Is^3VSeCvd)7 z+;NWfJHw`ZEYA?MwW|?ZSdBQsd>8X3UQr{?Fnd*vq=f6L*UTP*x!$WXyS1o?i+Lfw z&+g{gEU&OzjSLU7d_%V}q+NZEc?Y^#_RwaE55w`4VrpSy9YKz(Pbvl+e^hw39U~7F zyT93hf($4&$WEoiWdIK-3@1I%jtnVFo87c#HL^jxnUYajt|T-wFAu7bGR2~MM}krup{+j zZn#<&NKJEc-XX@MFX2Lbkp4b@H}G$IvVs3Cl3c6#HSvz?TYe;vk+FmudW!=aGQTwP z;y}8m(qgUoN4=9!QSiqKu_kX$$;KYl-;r==%N{TuPk*znPl4N^f6?Q&z@44nZAl4S z&#O!>SxO%O-S9(zZAUXfQ)EGa8mJeYjT$a>V?v|YJFV!2OZdd1C9-v3v`kiozDRw1 zJT!5+&NFp>PUmG{OvqM)>DxhVnm$?d=|)*uy~v)v#NUf%M!&evqUm)3^oujz?qiz& z3DX{%m~OnXkg+#_iKxJ@;A_Bn6z(SYPhc;6a}kyR>)hbk3?LC rN7d>TywYRR{?dps@apGNEf>Ml{>F$+l^!d7{~FMhb_Kq!9K!zt>^3D? delta 3258 zcmcIneQZ-z6u-ChYp}Ae`(T4^>sH(fY-|;9<73cu<6~gPPy-_%K|Z7eO)!}WU`&T0 zahTzT7j!a(VMZ(jV@U;xf&8t!a}qTmmtzIkfamIp1;$+)tmnBNq+sE-?{JI zckj9Po%`zB%YA!!$ENCErZYy+F_@V#4)V+g8sfNuz%@Xxwrjx6Xm3V)^ZuiiDgLR9 z#jyXk3F-2kow%!0r0@m2Rn+qW-Xga0^7H_nk%K;pn1Qu{zZ1uKSNd)0T{R2%u2`rk z@ID$1fho#qaH^3uCh76e!Ay(`Y(f9I;F*o_8_evUVoTDc&@QRn2|a2>jConT6rcw# zPtq%)cjRLrXrl?e2wgWh-USVy6?&$mk3v5q>5I^tBprgjlh9rR`v(CV0+>{6Mkb`+ zI1vv~bsluHq|0b|RI`C=lJry1wqnK(jEVQRC8_;Y=nhP%iQ2uG!9E0@OpM6DjzQ0p z^ykoPC4B?hC+P>!?6LTWC?l!p_*P*&W27fR4?*|f64I5>2Z|W8LVGE&0s%h)FQ^x6 zhPK)<3svudo(HW}^+9Nt)cz6ldgu#kdoQ${(QD9|7$A+Ao_Fs*?TrPD=($R|AU8=n zpw~+6bxC?1bc@vfa*}=nx<_h1oY2eSBl08g$rQ{=9pTr|51>m`-4AWUOIW4qhtN&X zv?*yu={jUUe4~p5zS8g3dTS9z&ukGuHV>fKLSQjKhWDGz2I>Lqu7st)s|2PcB8<@j zmjg?HYQO<31;|R`l=#J}Qc~lFRc9uE_BPoQKn-9AT)?Q&yvD0yE_eno6TmiQlYj*P z+2eo{KrUmeSpXijY}Fad(&CA$K%fqAixsI)3twufI6E%YONB|cTvcSrLHNin8>jtq_uwTFyDUkv(PNWrD{0qwVK1OB0NgK^*6HsDK$wt;TR@09!w z$#0eX7Rlcs`P(JmBl+tkzlnUWI-*9YVTt6sB)>}XD2i|_sDp<(aj5$XoEOt zF3XyCx9a?bMZLJ%aN2C;$61jQtr9<*D-A_=Jys=JEV9yn%{UX$Tf5!5;MsbIb!VLt zbt+B5V3}e%2|Yg+$yTaGwWSP)|2E6)jCB!hzCPHF*5X*}^${jMwUn85tM{KD;fHUE zd$_(>6l9cmb0WG!Y^tU&)u%))5ha=(;T_D8)~`f!BFv*iCq|yD->`HH`r1{ex5c7% zE*6J4?kWwkQcX}BQlgm=euX(623g_QPU>eIey@ggU2K}UkK?Y(VGVwJ!@SUh7EQ#| zsX-n_!l_=!&%#ct20RjGxQIpQR~zAl)JY^v9s0smNC=CJ>vCIXTXSMQ4O`ns-5m<2 zcJUCmuW@TcrIk(B1PvjI@*ikO6}b99xY$ZVrTCj+ewE@j#9PCnF|#3K%7{MS5X`C1 zU8=XyJeBBc;#6i{<&vw60HjxRBwJb&0k?1!pi-H($x>_2A-!f28;#zg)Xa* zFA^nLU1`I2O6nbnUhj)wR(V?goxJ+IMC?bAmOV?OpDPw+PvuSGrR+7lG4Or%>s(`- z9ax!T;ryi7n!Ad>Exycsh3^VfPt4HpVX?xxkq?N|)(`pFz_WR)xTe$@IFtW@md^;R zw$~a`HvFypX>^tSv0faTy3Dy}Q1Ko&o@(g^pHviYkE;8?KIj28ejn`jpJ=fK3a8a( zh>G$$=VVl)QNy{-I#4+1Jh}`}jWwcr(eZ*}6@y0{oL|1W7Y8EB9@_{;S!52>KC03V zXkw?zb5&lVawC`yq9!n%iu8$0-zjv^Qi`{WyalVgK2&k~9&SZJYXRu{FxmRh&Hscs ziH_-^`O|SY0~{H62Ydv07fI^@p8z()zXZMxtPVI`+c@`&_iGALC`W{i;vy7fh~N_8 zngX2%XM;ziyX`5IU&3Wk?Jh_eosmmyhBBjTLX+6%#y!Z0N1Srob+P{n;yOIaluz(l myDs);Lrj6Uy@B$$0$%J7hS*taPie-gHlq@?1&-B@;r{|9`}get