Skip to content

Commit 9946b31

Browse files
committed
Fix socket creation for IPv6 on sendto & WSASendTo
Signed-off-by: xaxys <[email protected]>
1 parent ef44c24 commit 9946b31

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/fkhook.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,8 @@ static int WINAPI fake_sendto(SOCKET s, const char *buf, int len, int flags, con
234234
new_to.set_port_raw(origin_to->sin_port);
235235
SOCKET new_sock = socks.count(s) ? socks[s] : s;
236236

237-
// 如果是IPv6,需要创建新的socket
238-
if (new_to.get_family() == AF_INET6) {
237+
// 如果是IPv6,并且没有可替换的socket,需要创建新的socket
238+
if (!socks.count(s) && new_to.get_family() == AF_INET6) {
239239
// 获取原socket绑定的地址端口
240240
sockaddr_in origin_local_addr;
241241
int origin_local_addr_len = sizeof(sockaddr_in);
@@ -339,8 +339,8 @@ static int WINAPI fake_wsasendto(SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCou
339339
new_to.set_port_raw(origin_to->sin_port);
340340
SOCKET new_sock = socks.count(s) ? socks[s] : s;
341341

342-
// 如果是IPv6,需要创建新的socket
343-
if (new_to.get_family() == AF_INET6) {
342+
// 如果是IPv6,并且没有可替换的socket,需要创建新的socket
343+
if (!socks.count(s) && new_to.get_family() == AF_INET6) {
344344
// 获取原socket绑定的地址端口
345345
sockaddr_in origin_local_addr;
346346
int origin_local_addr_len = sizeof(sockaddr_in);

0 commit comments

Comments
 (0)