From 0a102a7f432a337b2092cc047d3df4c004b489a7 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Thu, 13 Aug 2026 19:35:13 +0300 Subject: [PATCH] proxy: guard if_indextoname bind block for Windows (_WIN32) --- src/proxy/tcp_proxy_server.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/proxy/tcp_proxy_server.c b/src/proxy/tcp_proxy_server.c index d51230c5..9cd2c868 100644 --- a/src/proxy/tcp_proxy_server.c +++ b/src/proxy/tcp_proxy_server.c @@ -387,10 +387,13 @@ int tcp_proxy_server_handle_connect(struct UTUN_INSTANCE* inst, struct ll_entry* setsockopt(sock, SOL_SOCKET, SO_SETFIB, &g->tcp_proxy_server_fib, sizeof(g->tcp_proxy_server_fib)); } #endif + // Bind to interface if specified (Linux only) +#ifndef _WIN32 if (g->tcp_proxy_server_netif_index > 0) { char ifname[IF_NAMESIZE]; if (if_indextoname(g->tcp_proxy_server_netif_index, ifname)) socket_bind_to_device(sock, ifname); } +#endif rc->tc = tcp_conn_create(inst->ua, sock, 1500, 8192, 4, 0, inst->config->global.tcp_recv_buf, on_fin_cb, on_error_cb, rc); if (!rc->tc) { DEBUG_ERROR(DEBUG_CATEGORY_PROXY, "TCP proxy server: tcp_conn_create failed"); socket_close_wrapper(sock); ctx->conn_count--; u_free(rc); queue_dgram_free(entry); queue_entry_free(entry); return -1; }