From 838167b0351ec7dc348c366f4ce7c023cbd71ede Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 28 Dec 2012 10:07:25 +0800 Subject: [PATCH] fix address type 1 --- jni/shadowsocks/local.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/jni/shadowsocks/local.c b/jni/shadowsocks/local.c index b899e295..3b5d6305 100644 --- a/jni/shadowsocks/local.c +++ b/jni/shadowsocks/local.c @@ -191,16 +191,9 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) { if (request->atyp == 1) { // IP V4 - struct in_addr *in_addr; - in_addr = (struct in_addr *)(server->buf + 4); - char* addr_buf = inet_ntoa(*in_addr); - unsigned char name_len = strlen(addr_buf); - memcpy(addr_to_send + addr_len, addr_buf, name_len); - 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); + size_t in_addr_len = sizeof(struct in_addr); + memcpy(addr_to_send + addr_len, server->buf + 4, in_addr_len + 2); + addr_len += in_addr_len + 2; addr_to_send[addr_len] = 0; } else if (request->atyp == 3) {