Ejemplo n.º 1
0
static int WSAAPI my_connect(SOCKET s, const struct sockaddr *sa, int sa_len)
{
	int ret;
	struct sockaddr_in *sin = (struct sockaddr_in *)sa;

	if (sa->sa_family == AF_INET &&
		sin->sin_addr.s_addr == inet_addr(LOCALHOST))
	{
		connect_flag = 1;
		return 0;
	}

	gg_win32_hook_set_enabled(&connect_hook, 0);
	ret = connect(s, sa, sa_len);
	gg_win32_hook_set_enabled(&connect_hook, 1);

	return ret;
}
Ejemplo n.º 2
0
int connect(int socket, const struct sockaddr *address, socklen_t address_len)
#endif
{
	struct sockaddr_in sin;
#ifdef _WIN32
	int ret;
#endif

	if (connected && test_mode == TEST_MODE_SEND_NAT) {
		memcpy(&sin, address, address_len);
		sin.sin_addr.s_addr = INADDR_NONE;
		address = (struct sockaddr*) &sin;
	}

#ifdef _WIN32
	gg_win32_hook_set_enabled(&connect_hook, 0);
	ret = connect(socket, address, address_len);
	gg_win32_hook_set_enabled(&connect_hook, 1);

	return ret;
#else
	return __connect(socket, address, address_len);
#endif
}