From b47776fc5fb5a1f29a01f8ed2281265ba8676510 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Sun, 30 Dec 2012 10:03:46 +0800 Subject: [PATCH] fix endian bugs on mips --- assets/shadowsocks | Bin 46408 -> 46408 bytes jni/shadowsocks/encrypt.c | 10 +++------- jni/shadowsocks/local.c | 9 +++++++-- libs/armeabi/shadowsocks | Bin 46408 -> 46408 bytes 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/assets/shadowsocks b/assets/shadowsocks index f702e780845786049d25f73f19a9c331b7e8b666..44bfbca55bf0fbd536e8540c0a9f2d370e7fd1e6 100755 GIT binary patch delta 1524 zcmXw3e{2(F82-My>$UrVfx(~!oYzsHGi7xAh!Zo$w)%OU2&GO83hu7bd0Pe}gC!e6 zyAF*%;vXwVq+{7S5Me+t8|O^KKo~(oG#VED0|zmMiMtY$mM9#c^n9%2=yvu^M0Vq{E&6s z(sd6;Xyio_@a5h9qRC zqFA7#Ow<%LC3>egiRos0*yv%t%T`XzJ-YT~65E4L<|cC7k$+z34R=oKOrX0uxqmvM zAR3+Qn2u8o?rnNUDLIOBuh{!8Xr#JQgmZDfjC_Y zBn=+w$1f&=e7h&;wODm+dlE4~jmYt*3&Wzf!?TTl$-0dvkg7|XyUR%#(Y4Jf4G%u2g1vO*V+wKyADanU zo_C|uZq!#N2dig}`M?bE=2$m|YnjAG2x=hMP+MSSq4{$*a=E28IBYVr7sv|X|>>${hk7T zovpy@wdvXwl_4|vDjP>ufT_zW2mjxx#^}dYLw{YqSG0gqVi3Y} z;5;nodO2VQxBNe#fbfp_@ZDE-WS#bhs7?j%N`yTLxG9_377&rzq-!UzdCSV91+{Z)#80& zL}(K%v9wUbBU_b(q`cF)XEIuI$}L@%BGNi3qqV1uHA3U>PSWtMjT_~vmYyl=bZ=~W z3tk{**-DB?M*BBa##_1#6+@N?&L!?JlrZ4l#V_@_L6Au;+Ay$b%Dofz+*#|lt`W_> z--wao$J6c|wVSM1JOJ)T#eHDj1LkvjEU|oFA#eAY`kWHg7-_UZx0@*^n5<15-NMGG z^zMhVVPi6yJB5H9e( zUpZ^n!+xx?v_vnvXp{9+>(^i?Q)rJnzA&lN)S6Uk!B!1LZeA- zpxZ8x2r;_Lgu11arA>JYRtAj_FhJBani#4?6o^?GWoP-}_6IVh%8qB2;*YuC{mwb} z+;hG;Goufv(Fas)4_i5eQ03?QmXs6}j$783rx0q_FP6N6^Yq=52({@e=lnpgTmW9* zJC453wkg|iUi!4?L;o#h+Y7ir7q{eug&rSspaW=QXbNU&GD>P9N^ zQgJNNaVE~j*_8IwrZO?EkBfgSUUz$lqt7xgWUzOuz}!XUe``O_ua9(0$FUGMntpGZ zQNXUHcT6)H*rha+Kmr=mQ*<6bOHp||lVbCDBEb}K6Ga=g*=w2 zWNbT}zkM#XMeGP}spnmm`9=mYU^=EH7nDRc)xRHX5!bs~#2~nuGme;_c!_1coNxSU4G&?WSLDFf8O5Murt^wI^0acj`vG6U^vqug*H^VLn7s-;o|cKls8c`MS<_Y zlwFwfPPf+s=L4COf#=48P)wDpE<{ICb<^8o7Y7G>4P5?Wsw&hOyy&VDqb_=hpHTgl zx!>@RDzXX^2%zNm6edM=Cj;n)lQ8+T^D{X4uUtvcMC}untdUTHle(m(Vg)p?)-@^Z zlzTj1$^0pSP!pFQ3uGlkewV8xH6mW$YDYiW|Fv#bUR+xPG78GH)6znI-nP z1yTlA|6~ZT{$kkDJ}~TfLn|tsNAX9siqf)3^e962U}E-4mUR^NW3cZ9ybkCGoP=lM z3vI-Cnmxe8shBh6NFdcR8w_}dfFks0nLz{I_;$2-DOm<=*kH(Cbr%9?>{g0~PM48_ zgO>TBfxUeEsR|SHlH| zI;GXpC20rrt3a<+@@2Wl`&bT0loXX(!Gh&Ia@2cG-leQo)+v;-SzOl49xhYHrt<(J?dIDXCBTngi8o6F6MyM5ktPx+c|SM zi@%$vU`B|X*6OsSNA!p{Yt3)nlnS}-)W2SZBK!@cb-}gM|U`H%!k!*^8T~1U1n<`2vhq&aBXCy`>zNwV9@R{WDqkq3j$$CZrzvw> z4=rw@@nvm5sIl4a!hH^((7#<#Gt;JA^>NO|b9D=`jXwt4FmFPho0es1UpG|f+exPr zcj3#@!m)7PUIgZzA*N!Cdr<$Cs!5!LQas_VI#*$BTdaxYp hz9C_T);;9co6r8rQj=J#&=+zKy%;?l)SL82_&=xJZHxc_ diff --git a/jni/shadowsocks/encrypt.c b/jni/shadowsocks/encrypt.c index 173e8d50..e31384c5 100755 --- a/jni/shadowsocks/encrypt.c +++ b/jni/shadowsocks/encrypt.c @@ -2,10 +2,7 @@ #include "android.h" #include - -typedef unsigned char uint8_t; -typedef unsigned int uint32_t; -typedef unsigned long long uint64_t; +#include static int random_compare(const void *_x, const void *_y) { uint32_t i = _i; @@ -150,9 +147,8 @@ int recv_decrypt(int sock, char *buf, int len, int flags) { void get_table(const char* key) { uint8_t *table = encrypt_table; - uint8_t *tmp_hash; - tmp_hash = MD5((const uint8_t*)key, strlen(key), NULL); - _a = *(uint64_t *)tmp_hash; + uint8_t *tmp_hash = MD5((const uint8_t*)key, strlen(key), NULL); + _a = htole64(*(uint64_t *)tmp_hash); uint32_t i; for(i = 0; i < 256; ++i) { diff --git a/jni/shadowsocks/local.c b/jni/shadowsocks/local.c index b708d9dd..d455b95a 100644 --- a/jni/shadowsocks/local.c +++ b/jni/shadowsocks/local.c @@ -508,7 +508,8 @@ static void accept_cb (EV_P_ ev_io *w, int revents) if (sockfd < 0) { perror("socket"); close(sockfd); - free_server(server); + close_and_free_server(EV_A_ server); + freeaddrinfo(res); continue; } setnonblocking(sockfd); @@ -630,7 +631,11 @@ int main (int argc, char **argv) setnonblocking(listenfd); struct listen_ctx listen_ctx; listen_ctx.fd = listenfd; - struct ev_loop *loop = EV_DEFAULT; + struct ev_loop *loop = ev_default_loop(EVBACKEND_EPOLL | EVFLAG_NOENV); + if (!loop) { + LOGE("no epoll found here, maybe it hides under your chair"); + return 1; + } ev_io_init (&listen_ctx.io, accept_cb, listenfd, EV_READ); ev_io_start (loop, &listen_ctx.io); ev_run (loop, 0); diff --git a/libs/armeabi/shadowsocks b/libs/armeabi/shadowsocks index f702e780845786049d25f73f19a9c331b7e8b666..44bfbca55bf0fbd536e8540c0a9f2d370e7fd1e6 100755 GIT binary patch delta 1524 zcmXw3e{2(F82-My>$UrVfx(~!oYzsHGi7xAh!Zo$w)%OU2&GO83hu7bd0Pe}gC!e6 zyAF*%;vXwVq+{7S5Me+t8|O^KKo~(oG#VED0|zmMiMtY$mM9#c^n9%2=yvu^M0Vq{E&6s z(sd6;Xyio_@a5h9qRC zqFA7#Ow<%LC3>egiRos0*yv%t%T`XzJ-YT~65E4L<|cC7k$+z34R=oKOrX0uxqmvM zAR3+Qn2u8o?rnNUDLIOBuh{!8Xr#JQgmZDfjC_Y zBn=+w$1f&=e7h&;wODm+dlE4~jmYt*3&Wzf!?TTl$-0dvkg7|XyUR%#(Y4Jf4G%u2g1vO*V+wKyADanU zo_C|uZq!#N2dig}`M?bE=2$m|YnjAG2x=hMP+MSSq4{$*a=E28IBYVr7sv|X|>>${hk7T zovpy@wdvXwl_4|vDjP>ufT_zW2mjxx#^}dYLw{YqSG0gqVi3Y} z;5;nodO2VQxBNe#fbfp_@ZDE-WS#bhs7?j%N`yTLxG9_377&rzq-!UzdCSV91+{Z)#80& zL}(K%v9wUbBU_b(q`cF)XEIuI$}L@%BGNi3qqV1uHA3U>PSWtMjT_~vmYyl=bZ=~W z3tk{**-DB?M*BBa##_1#6+@N?&L!?JlrZ4l#V_@_L6Au;+Ay$b%Dofz+*#|lt`W_> z--wao$J6c|wVSM1JOJ)T#eHDj1LkvjEU|oFA#eAY`kWHg7-_UZx0@*^n5<15-NMGG z^zMhVVPi6yJB5H9e( zUpZ^n!+xx?v_vnvXp{9+>(^i?Q)rJnzA&lN)S6Uk!B!1LZeA- zpxZ8x2r;_Lgu11arA>JYRtAj_FhJBani#4?6o^?GWoP-}_6IVh%8qB2;*YuC{mwb} z+;hG;Goufv(Fas)4_i5eQ03?QmXs6}j$783rx0q_FP6N6^Yq=52({@e=lnpgTmW9* zJC453wkg|iUi!4?L;o#h+Y7ir7q{eug&rSspaW=QXbNU&GD>P9N^ zQgJNNaVE~j*_8IwrZO?EkBfgSUUz$lqt7xgWUzOuz}!XUe``O_ua9(0$FUGMntpGZ zQNXUHcT6)H*rha+Kmr=mQ*<6bOHp||lVbCDBEb}K6Ga=g*=w2 zWNbT}zkM#XMeGP}spnmm`9=mYU^=EH7nDRc)xRHX5!bs~#2~nuGme;_c!_1coNxSU4G&?WSLDFf8O5Murt^wI^0acj`vG6U^vqug*H^VLn7s-;o|cKls8c`MS<_Y zlwFwfPPf+s=L4COf#=48P)wDpE<{ICb<^8o7Y7G>4P5?Wsw&hOyy&VDqb_=hpHTgl zx!>@RDzXX^2%zNm6edM=Cj;n)lQ8+T^D{X4uUtvcMC}untdUTHle(m(Vg)p?)-@^Z zlzTj1$^0pSP!pFQ3uGlkewV8xH6mW$YDYiW|Fv#bUR+xPG78GH)6znI-nP z1yTlA|6~ZT{$kkDJ}~TfLn|tsNAX9siqf)3^e962U}E-4mUR^NW3cZ9ybkCGoP=lM z3vI-Cnmxe8shBh6NFdcR8w_}dfFks0nLz{I_;$2-DOm<=*kH(Cbr%9?>{g0~PM48_ zgO>TBfxUeEsR|SHlH| zI;GXpC20rrt3a<+@@2Wl`&bT0loXX(!Gh&Ia@2cG-leQo)+v;-SzOl49xhYHrt<(J?dIDXCBTngi8o6F6MyM5ktPx+c|SM zi@%$vU`B|X*6OsSNA!p{Yt3)nlnS}-)W2SZBK!@cb-}gM|U`H%!k!*^8T~1U1n<`2vhq&aBXCy`>zNwV9@R{WDqkq3j$$CZrzvw> z4=rw@@nvm5sIl4a!hH^((7#<#Gt;JA^>NO|b9D=`jXwt4FmFPho0es1UpG|f+exPr zcj3#@!m)7PUIgZzA*N!Cdr<$Cs!5!LQas_VI#*$BTdaxYp hz9C_T);;9co6r8rQj=J#&=+zKy%;?l)SL82_&=xJZHxc_