Diff for /embedaddon/php/win32/sockets.c between versions 1.1.1.2 and 1.1.1.4

version 1.1.1.2, 2012/05/29 12:34:34 version 1.1.1.4, 2014/06/15 20:04:03
Line 2 Line 2
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | PHP Version 5                                                        |     | PHP Version 5                                                        |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
   | Copyright (c) 1997-2012 The PHP Group                                |   | Copyright (c) 1997-2014 The PHP Group                                |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | This source file is subject to version 3.01 of the PHP license,      |     | This source file is subject to version 3.01 of the PHP license,      |
    | that is bundled with this package in the file LICENSE, and is        |     | that is bundled with this package in the file LICENSE, and is        |
Line 39  PHPAPI int socketpair(int domain, int type, int protoc Line 39  PHPAPI int socketpair(int domain, int type, int protoc
                 return -1;                  return -1;
         }          }
   
           sock[0] = sock[1] = redirect = INVALID_SOCKET;
   
         sock[0]                         = socket(domain, type, protocol);  
         address.sin_addr.s_addr         = INADDR_ANY;  
         address.sin_family              = AF_INET;  
         address.sin_port                = 0;  
   
        bind(sock[0], (struct sockaddr*)&address, sizeof(address));        sock[0] = socket(domain, type, protocol);
         if (INVALID_SOCKET == sock[0]) {
                 goto error;
         }
   
           address.sin_addr.s_addr = INADDR_ANY;
           address.sin_family      = AF_INET;
           address.sin_port        = 0;
   
           if (bind(sock[0], (struct sockaddr*)&address, sizeof(address)) != 0) {
                   goto error;
           }
   
         if(getsockname(sock[0], (struct sockaddr *)&address, &size) != 0) {          if(getsockname(sock[0], (struct sockaddr *)&address, &size) != 0) {
                   goto error;
         }          }
   
        listen(sock[0], 2);        if (listen(sock[0], 2) != 0) {
        sock[1] = socket(domain, type, protocol);                       goto error;
         }
 
         sock[1] = socket(domain, type, protocol);
         if (INVALID_SOCKET == sock[1]) {
                 goto error;
         }
 
         address.sin_addr.s_addr = htonl(INADDR_LOOPBACK);          address.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
           if(connect(sock[1], (struct sockaddr*)&address, sizeof(address)) != 0) {
                   goto error;
           }
   
         connect(sock[1], (struct sockaddr*)&address, sizeof(address));  
         redirect = accept(sock[0],(struct sockaddr*)&address, &size);          redirect = accept(sock[0],(struct sockaddr*)&address, &size);
           if (INVALID_SOCKET == redirect) {
                   goto error;
           }
   
         closesocket(sock[0]);          closesocket(sock[0]);
         sock[0] = redirect;          sock[0] = redirect;
   
         if(sock[0] == INVALID_SOCKET ) {  
                 closesocket(sock[0]);  
                 closesocket(sock[1]);  
                 WSASetLastError(WSAECONNABORTED);  
                 return -1;  
         }  
           
         return 0;          return 0;
   
   error:
           closesocket(redirect);
           closesocket(sock[0]);
           closesocket(sock[1]);
           WSASetLastError(WSAECONNABORTED);
           return -1;
 }  }

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>