mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-21 14:33:55 +00:00
64bit compatibility
This commit is contained in:
@@ -2078,7 +2078,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
|
||||
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "failed to load site script $ac_site_file
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -2306,11 +2306,11 @@ am_lf='
|
||||
'
|
||||
case `pwd` in
|
||||
*[\\\"\#\$\&\'\`$am_lf]*)
|
||||
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
|
||||
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
|
||||
esac
|
||||
case $srcdir in
|
||||
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
|
||||
as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
|
||||
as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
@@ -2981,7 +2981,7 @@ fi
|
||||
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "no acceptable C compiler found in \$PATH
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
|
||||
# Provide some information about the compiler.
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
|
||||
@@ -3096,7 +3096,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error 77 "C compiler cannot create executables
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
@@ -3139,7 +3139,7 @@ else
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
rm -f conftest conftest$ac_cv_exeext
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
|
||||
@@ -3198,7 +3198,7 @@ $as_echo "$ac_try_echo"; } >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "cannot run C compiled programs.
|
||||
If you meant to cross compile, use \`--host'.
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -3250,7 +3250,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "cannot compute suffix of object files: cannot compile
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
rm -f conftest.$ac_cv_objext conftest.$ac_ext
|
||||
fi
|
||||
@@ -3910,7 +3910,7 @@ else
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
|
||||
ac_ext=c
|
||||
@@ -5064,7 +5064,7 @@ do
|
||||
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
|
||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
|
||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
|
||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -5382,7 +5382,7 @@ do
|
||||
esac
|
||||
case $ac_mode$ac_tag in
|
||||
:[FHL]*:*);;
|
||||
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
|
||||
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
|
||||
:[FH]-) ac_tag=-:-;;
|
||||
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
|
||||
esac
|
||||
@@ -5410,7 +5410,7 @@ do
|
||||
[\\/$]*) false;;
|
||||
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
|
||||
esac ||
|
||||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
|
||||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
|
||||
esac
|
||||
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
|
||||
as_fn_append ac_file_inputs " '$ac_f'"
|
||||
@@ -5437,7 +5437,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
|
||||
|
||||
case $ac_tag in
|
||||
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -399,6 +399,7 @@ static void accept_cb (EV_P_ ev_io *w, int revents)
|
||||
perror("accept");
|
||||
break;
|
||||
}
|
||||
setnonblocking(serverfd);
|
||||
struct server *server = new_server(serverfd);
|
||||
struct addrinfo hints, *res;
|
||||
int sockfd;
|
||||
|
||||
@@ -177,7 +177,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_encrypt(server->fd, send_buf, sizeof(response), MSG_NOSIGNAL);
|
||||
send_encrypt(server->fd, send_buf, 4, MSG_NOSIGNAL);
|
||||
close_and_free_server(EV_A_ server);
|
||||
return;
|
||||
}
|
||||
@@ -191,20 +191,20 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) {
|
||||
// IP V4
|
||||
struct sockaddr_in *addrp = (struct sockaddr_in *)&remote_sockaddr;
|
||||
struct in_addr *in_addr;
|
||||
in_addr = (struct in_addr *)(server->buf + sizeof(request));
|
||||
in_addr = (struct in_addr *)(server->buf + 4);
|
||||
addrp->sin_addr = *in_addr;
|
||||
// get port
|
||||
addrp->sin_port = *(unsigned short *)(server->buf + sizeof(request) + 4);
|
||||
addrp->sin_port = *(unsigned short *)(server->buf + 4 + 4);
|
||||
} else if (request->atyp == 3) {
|
||||
struct addrinfo hints, *res;
|
||||
memset(&hints, 0, sizeof hints);
|
||||
hints.ai_family = AF_UNSPEC;
|
||||
hints.ai_socktype = SOCK_STREAM;
|
||||
char name_buf[256];
|
||||
unsigned char name_len = *(unsigned char *)(server->buf + sizeof(request));
|
||||
memcpy(name_buf, server->buf + sizeof(request) + 1, name_len);
|
||||
unsigned char name_len = *(unsigned char *)(server->buf + 4);
|
||||
memcpy(name_buf, server->buf + 4 + 1, name_len);
|
||||
name_buf[name_len] = 0; // append NUL
|
||||
fprintf(stderr, "%s\n", name_buf);
|
||||
fprintf(stderr, "connecting: %s\n", name_buf);
|
||||
if ((rv = getaddrinfo(name_buf, "80", &hints, &res)) != 0) {
|
||||
perror("getaddrinfo");
|
||||
// TODO send reply
|
||||
@@ -217,7 +217,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) {
|
||||
|
||||
// get port
|
||||
struct sockaddr_in *addrp = (struct sockaddr_in *)&remote_sockaddr;
|
||||
addrp->sin_port = *(unsigned short *)(server->buf + sizeof(request) + 1 + name_len);
|
||||
addrp->sin_port = *(unsigned short *)(server->buf + 4 + 1 + name_len);
|
||||
freeaddrinfo(res);
|
||||
} else {
|
||||
fprintf(stderr, "unsupported addrtype: %d\n", request->atyp);
|
||||
@@ -358,8 +358,10 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
struct remote_ctx *remote_send_ctx = (struct remote_ctx *)w;
|
||||
struct remote *remote = remote_send_ctx->remote;
|
||||
struct server *server = remote->server;
|
||||
printf("remote_send_cb\n");
|
||||
if (!remote_send_ctx->connected) {
|
||||
|
||||
printf("not connected\n");
|
||||
socklen_t len;
|
||||
struct sockaddr_storage addr;
|
||||
char ipstr[INET6_ADDRSTRLEN];
|
||||
@@ -369,6 +371,7 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
if (r == 0) {
|
||||
remote_send_ctx->connected = 1;
|
||||
|
||||
printf("send reply\n");
|
||||
// send reply
|
||||
struct sockaddr_in sockaddr;
|
||||
socklen_t sockaddrlen = sizeof(sockaddr);
|
||||
@@ -385,15 +388,15 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
response.rsv = 0;
|
||||
response.atyp = 1;
|
||||
|
||||
memcpy(server->buf, &response, sizeof(response));
|
||||
memcpy(server->buf + sizeof(response), &sockaddr.sin_addr, sizeof(struct in_addr));
|
||||
memcpy(server->buf + sizeof(response) + sizeof(struct in_addr), &sockaddr.sin_port,
|
||||
memcpy(server->buf, &response, 4);
|
||||
memcpy(server->buf + 4, &sockaddr.sin_addr, sizeof(struct in_addr));
|
||||
memcpy(server->buf + 4 + sizeof(struct in_addr), &sockaddr.sin_port,
|
||||
sizeof(struct in_addr));
|
||||
|
||||
fprintf(stderr, "send reply\n");
|
||||
int r = send_encrypt(server->fd, server->buf, sizeof(response) + sizeof(struct in_addr) +
|
||||
int r = send_encrypt(server->fd, server->buf, 4 + sizeof(struct in_addr) +
|
||||
sizeof(unsigned short), 0);
|
||||
if (r < sizeof(response) + sizeof(struct in_addr) + sizeof(unsigned short)) {
|
||||
if (r < 4 + sizeof(struct in_addr) + sizeof(unsigned short)) {
|
||||
fprintf(stderr, "header not complete sent\n");
|
||||
close_and_free_remote(EV_A_ remote);
|
||||
close_and_free_server(EV_A_ server);
|
||||
@@ -411,6 +414,7 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
printf("is connected\n");
|
||||
if (remote->buf_len == 0) {
|
||||
// close and free
|
||||
close_and_free_remote(EV_A_ remote);
|
||||
@@ -537,6 +541,7 @@ static void accept_cb (EV_P_ ev_io *w, int revents)
|
||||
perror("accept");
|
||||
break;
|
||||
}
|
||||
setnonblocking(serverfd);
|
||||
struct server *server = new_server(serverfd);
|
||||
// struct addrinfo hints, *res;
|
||||
// int sockfd;
|
||||
|
||||
Reference in New Issue
Block a user