socket.patch

Patch to TcpSocket::Listen - Jan DolinĂ¡r, 05/30/2013 09:18 PM

Download (1.58 KB)

View differences:

uppsrc/Core/Socket.cpp (working copy)
321 321
	return SetupSocket();
322 322
}
323 323

  
324
bool TcpSocket::Listen(int port, int listen_count, bool ipv6_, bool reuse)
324
bool TcpSocket::Listen(int port, int listen_count, bool ipv6_, bool reuse, void *addr)
325 325
{
326 326
	Close();
327 327
	Init();
......
340 340
#endif
341 341
	{
342 342
		Zero(sin6);
343
		sin.sin_family = AF_INET6;
344
		sin.sin_port = htons(port);
345
		sin.sin_addr.s_addr = htonl(INADDR_ANY);
343
		sin6.sin6_family = AF_INET6;
344
		sin6.sin6_port = htons(port);
345
		sin6.sin6_addr = addr?(*(in6_addr*)addr):in6addr_any;
346 346
	}
347 347
	else {
348 348
		Zero(sin);
349 349
		sin.sin_family = AF_INET;
350 350
		sin.sin_port = htons(port);
351
		sin.sin_addr.s_addr = htonl(INADDR_ANY);
351
		sin.sin_addr.s_addr = addr?(*(uint32*)addr):htonl(INADDR_ANY);
352 352
	}
353 353
	if(reuse) {
354 354
		int optval = 1;
uppsrc/Core/Inet.h (working copy)
186 186
	void            Attach(SOCKET socket);
187 187
	bool            Connect(const char *host, int port);
188 188
	bool            Connect(IpAddrInfo& info);
189
	bool            Listen(int port, int listen_count = 5, bool ipv6 = false, bool reuse = true);
189
	bool            Listen(int port, int listen_count = 5, bool ipv6 = false, bool reuse = true, void* addr = NULL);
190 190
	bool            Accept(TcpSocket& listen_socket);
191 191
	void            Close();
192 192
	void            Shutdown();