mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-28 03:33:42 +00:00
parsing socks 5 request: more suggestive code
This commit is contained in:
+9
-9
@@ -577,12 +577,12 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
|
||||
if (buf->len < request_len + in_addr_len + 2) {
|
||||
return;
|
||||
}
|
||||
memcpy(abuf->data + abuf->len, buf->data + 4, in_addr_len + 2);
|
||||
memcpy(abuf->data + abuf->len, buf->data + request_len, in_addr_len + 2);
|
||||
abuf->len += in_addr_len + 2;
|
||||
|
||||
if (acl || verbose) {
|
||||
uint16_t p = ntohs(*(uint16_t *)(buf->data + 4 + in_addr_len));
|
||||
dns_ntop(AF_INET, (const void *)(buf->data + 4),
|
||||
uint16_t p = ntohs(*(uint16_t *)(buf->data + request_len + in_addr_len));
|
||||
dns_ntop(AF_INET, (const void *)(buf->data + request_len),
|
||||
ip, INET_ADDRSTRLEN);
|
||||
sprintf(port, "%d", p);
|
||||
}
|
||||
@@ -593,13 +593,13 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
|
||||
return;
|
||||
}
|
||||
abuf->data[abuf->len++] = name_len;
|
||||
memcpy(abuf->data + abuf->len, buf->data + 4 + 1, name_len + 2);
|
||||
memcpy(abuf->data + abuf->len, buf->data + request_len + 1, name_len + 2);
|
||||
abuf->len += name_len + 2;
|
||||
|
||||
if (acl || verbose) {
|
||||
uint16_t p =
|
||||
ntohs(*(uint16_t *)(buf->data + 4 + 1 + name_len));
|
||||
memcpy(host, buf->data + 4 + 1, name_len);
|
||||
ntohs(*(uint16_t *)(buf->data + request_len + 1 + name_len));
|
||||
memcpy(host, buf->data + request_len + 1, name_len);
|
||||
host[name_len] = '\0';
|
||||
sprintf(port, "%d", p);
|
||||
|
||||
@@ -610,12 +610,12 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
|
||||
if (buf->len < request_len + in6_addr_len + 2) {
|
||||
return;
|
||||
}
|
||||
memcpy(abuf->data + abuf->len, buf->data + 4, in6_addr_len + 2);
|
||||
memcpy(abuf->data + abuf->len, buf->data + request_len, in6_addr_len + 2);
|
||||
abuf->len += in6_addr_len + 2;
|
||||
|
||||
if (acl || verbose) {
|
||||
uint16_t p = ntohs(*(uint16_t *)(buf->data + 4 + in6_addr_len));
|
||||
dns_ntop(AF_INET6, (const void *)(buf->data + 4),
|
||||
uint16_t p = ntohs(*(uint16_t *)(buf->data + request_len + in6_addr_len));
|
||||
dns_ntop(AF_INET6, (const void *)(buf->data + request_len),
|
||||
ip, INET6_ADDRSTRLEN);
|
||||
sprintf(port, "%d", p);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user