mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-29 12:36:53 +00:00
Add back the SNI addr reconstructor
This commit is contained in:
+14
@@ -826,6 +826,20 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
|
||||
// Not bypass
|
||||
if (remote == NULL) {
|
||||
remote = create_remote(server->listener, NULL);
|
||||
|
||||
if (sni_detected) {
|
||||
// Reconstruct address buffer
|
||||
abuf->len = 0;
|
||||
abuf->data[abuf->len++] = 3;
|
||||
abuf->data[abuf->len++] = ret;
|
||||
memcpy(abuf->data + abuf->len, hostname, ret);
|
||||
abuf->len += ret;
|
||||
dst_port = htons(dst_port);
|
||||
memcpy(abuf->data + abuf->len, &dst_port, 2);
|
||||
abuf->len += 2;
|
||||
|
||||
ss_free(hostname);
|
||||
}
|
||||
}
|
||||
|
||||
if (remote == NULL) {
|
||||
|
||||
Reference in New Issue
Block a user