socket.patch
| 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();  |