From a857a394cd3b11eaf6ed18be6d795779e5f3e58f Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 28 Dec 2012 10:08:46 +0800 Subject: [PATCH] fix pid issues --- jni/Application.mk | 1 + jni/shadowsocks/local.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/jni/Application.mk b/jni/Application.mk index 2539ffd4..ad75fe15 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -1 +1,2 @@ APP_PLATFORM = android-9 +NDK_TOOLCHAIN_VERSION = clang3.1 diff --git a/jni/shadowsocks/local.c b/jni/shadowsocks/local.c index b899e295..a98a22f4 100644 --- a/jni/shadowsocks/local.c +++ b/jni/shadowsocks/local.c @@ -199,8 +199,8 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) { addr_len += name_len; // get port - addr_to_send[addr_len++] = *(unsigned char *)(server->buf + 4 + 4); - addr_to_send[addr_len++] = *(unsigned char *)(server->buf + 4 + 4 + 1); + addr_to_send[addr_len++] = *(unsigned char *)(server->buf + 4 + sizeof(struct in_addr)); + addr_to_send[addr_len++] = *(unsigned char *)(server->buf + 4 + sizeof(struct in_addr) + 1); addr_to_send[addr_len] = 0; } else if (request->atyp == 3) { @@ -610,6 +610,11 @@ int main (int argc, char **argv) close(STDIN_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO); + } else { + pid_t pid = getpid(); + FILE *file = fopen("/data/data/com.github.shadowsocks/shadowsocks.pid", "w"); + fprintf(file, "%d", pid); + fclose(file); } _server = strdup(server);