Diff for /parser3/src/main/pa_socks.C between versions 1.19 and 1.34

version 1.19, 2003/07/24 11:31:24 version 1.34, 2024/11/04 03:53:25
Line 1 Line 1
 /**     @file  /**     @file
         Parser: socks initialization/finalization.          Parser: socks initialization/finalization.
   
         Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru>
 */  */
   
 static const char* IDENT_SOCKS_C="$Date$";  volatile const char * IDENT_PA_SOCKS_C="$Id$";
   
 #define NO_UNISTD_H  
 #include "pa_config_includes.h"  #include "pa_config_includes.h"
   
 #ifdef WIN32  #ifdef _MSC_VER
   
 #include "pa_exception.h"  #include "pa_exception.h"
 #include "pa_socks.h"  #include "pa_socks.h"
 #include "pa_string.h"  #include "pa_string.h"
   
 // in cygwin: for pascal  
 // in MSVC: for everything  
 #include <windows.h>  #include <windows.h>
   
 #ifdef CYGWIN  
 // WSADATA  
 #define WSADESCRIPTION_LEN      256  
 #define WSASYS_STATUS_LEN       128  
 typedef struct WSAData {  
         WORD    wVersion;  
         WORD    wHighVersion;  
         char    szDescription[WSADESCRIPTION_LEN+1];  
         char    szSystemStatus[WSASYS_STATUS_LEN+1];  
         unsigned short  iMaxSockets;  
         unsigned short  iMaxUdpDg;  
         char *  lpVendorInfo;  
 } WSADATA;  
 typedef WSADATA *LPWSADATA;  
   
 int PASCAL WSAStartup(WORD,LPWSADATA);  
 int PASCAL WSACleanup(void);  
 #endif  
   
 WSADATA wsaData;  WSADATA wsaData;
   
 void pa_init_socks() {  void pa_socks_init() {
         WORD wVersionRequested;          WORD wVersionRequested;
         int err;           int err; 
         wVersionRequested = MAKEWORD( 1, 1 );           wVersionRequested = MAKEWORD( 1, 1 ); 
         //wVersionRequested = MAKEWORD( 2, 2 );   
         err = WSAStartup( wVersionRequested, &wsaData );          err = WSAStartup( wVersionRequested, &wsaData );
         if ( err != 0 ) {          if ( err != 0 ) {
             /* Tell the user that we could not find a usable */                  /* Tell the user that we could not find a usable */
                 /* WinSock DLL.                                  */                      throw Exception(0, 0, "cannot WSAStartup, err=%d", err);
                 throw Exception(0,  
                         0,  
                         "can not WSAStartup, err=%d",   
                                 err);  
         }           } 
 }  }
   
 void pa_done_socks() {  void pa_socks_done() {
         /* Confirm that the WinSock DLL supports 2.2.*/          /* Confirm that the WinSock DLL supports 2.2.*/
         /* Note that if the DLL supports versions greater    */          /* Note that if the DLL supports versions greater    */
         /* than 2.2 in addition to 2.2, it will still return */          /* than 2.2 in addition to 2.2, it will still return */
         /* 2.2 in wVersion since that is the version we      */          /* 2.2 in wVersion since that is the version we      */
         /* requested.                                        */           /* requested.                                        */ 
         if ( LOBYTE( wsaData.wVersion ) == 2 ||          if ( LOBYTE( wsaData.wVersion ) == 2 || HIBYTE( wsaData.wVersion ) == 2 ) {
         HIBYTE( wsaData.wVersion ) == 2 ) {                  WSACleanup();
                 WSACleanup( );                  return;
                 return;   
         }           } 
 }  }
   
   const char* pa_socks_strerr(int no) {
           char buf[MAX_STRING];
           buf[0]=0;
           size_t error_size=FormatMessage( 
                   FORMAT_MESSAGE_FROM_SYSTEM | 
                   FORMAT_MESSAGE_IGNORE_INSERTS,
                   NULL,
                   no,
                   0, // Default language
                   (LPTSTR) &buf,
                   sizeof(buf),
                   NULL 
           );
           if(error_size>3) // ".\r\n"
                   buf[error_size-3]=0;
           return buf[0]? pa_strdup(buf): "unknown error";
   }
   int pa_socks_errno() {
           return WSAGetLastError();
   }
   
 #else  #else
   
 void pa_init_socks() {}  void pa_socks_init() {}
 void pa_done_socks() {}  void pa_socks_done() {}
   
   const char* pa_socks_strerr(int no) {
           return strerror(no);
   }
   int pa_socks_errno() {
           return errno;
   }
   
 #endif  #endif

Removed from v.1.19  
changed lines
  Added in v.1.34


E-mail: