home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / wsftp2.zip / WS_ERROR.C < prev    next >
C/C++ Source or Header  |  1993-11-12  |  5KB  |  150 lines

  1. /***************************************************************************
  2.   Windows Sockets Client Application Support Module
  3.  
  4.   Written by:
  5.       John A. Junod             Internet: <junodj@gordon-emh2.army.mil>
  6.       267 Hillwood Street                 <zj8549@trotter.usma.edu>
  7.       Martinez, GA 30907      Compuserve: 72321,366 
  8.  
  9.   This program executable and all source code is released into the public
  10.   domain.  It would be nice (but is not required) to give me a little 
  11.   credit for any use of this code.  
  12.  
  13.   THE INFORMATION AND CODE PROVIDED IS PROVIDED AS IS WITHOUT WARRANTY 
  14.   OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  15.   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  16.   PURPOSE. IN NO EVENT SHALL JOHN A. JUNOD BE LIABLE FOR ANY DAMAGES 
  17.   WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS 
  18.   OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF JOHN A. JUNOD HAS BEEN 
  19.   ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  20.  
  21. *****************************************************************************/
  22.  
  23. #include "ws_glob.h"
  24. #include "ws_ftp.h"
  25.  
  26. LPSTR ReturnWSError(UINT nErr,LPSTR lpszBuf)
  27. {
  28.   static char szErrMsg[128];
  29.   LPSTR lpszRetStr;
  30.  
  31.   switch(nErr)
  32.   {
  33.     case WSAVERNOTSUPPORTED:
  34.       lpszRetStr="version of WinSock not supported";
  35.       break;
  36.     case WSASYSNOTREADY:
  37.       lpszRetStr="WinSock not present or not responding";
  38.       break;
  39.     case WSAEINVAL:
  40.       lpszRetStr="app version not supported by DLL";
  41.       break;
  42.     case WSAHOST_NOT_FOUND:
  43.       lpszRetStr="Authoritive: Host not found";
  44.       break;
  45.     case WSATRY_AGAIN:
  46.       lpszRetStr="Non-authoritive: host not found or server failure";
  47.       break;
  48.     case WSANO_RECOVERY:
  49.       lpszRetStr="Non-recoverable: refused or not implemented";
  50.       break;
  51.     case WSANO_DATA:
  52.       lpszRetStr="Valid name, no data record for type";
  53.       break;
  54. /*
  55.     case WSANO_ADDRESS:
  56.       lpszRetStr="Valid name, no MX record";
  57.       break;
  58. */
  59.     case WSANOTINITIALISED:
  60.       lpszRetStr="WSA Startup not initialized";
  61.       break;
  62.     case WSAENETDOWN:
  63.       lpszRetStr="Network subsystem failed";
  64.       break;
  65.     case WSAEINPROGRESS:
  66.       lpszRetStr="Blocking operation in progress";
  67.       break;
  68.     case WSAEINTR:
  69.       lpszRetStr="Blocking call cancelled";
  70.       break;
  71.     case WSAEAFNOSUPPORT:
  72.       lpszRetStr="address family not supported";
  73.       break;
  74.     case WSAEMFILE:
  75.       lpszRetStr="no file descriptors available";
  76.       break;
  77.     case WSAENOBUFS:
  78.       lpszRetStr="no buffer space available";
  79.       break;
  80.     case WSAEPROTONOSUPPORT:
  81.       lpszRetStr="specified protocol not supported";
  82.       break;
  83.     case WSAEPROTOTYPE:
  84.       lpszRetStr="protocol wrong type for this socket";
  85.       break;
  86.     case WSAESOCKTNOSUPPORT:
  87.       lpszRetStr="socket type not supported for address family";
  88.       break;
  89.     case WSAENOTSOCK:
  90.       lpszRetStr="descriptor is not a socket";
  91.       break;
  92.     case WSAEWOULDBLOCK:
  93.       lpszRetStr="socket marked as non-blocking and SO_LINGER set not 0";
  94.       break;
  95.     case WSAEADDRINUSE:
  96.       lpszRetStr="address already in use";
  97.       break;
  98.     case WSAECONNABORTED:
  99.       lpszRetStr="connection aborted";
  100.       break;
  101.     case WSAECONNRESET:
  102.       lpszRetStr="connection reset";
  103.       break;
  104.     case WSAENOTCONN:
  105.       lpszRetStr="not connected";
  106.       break;
  107.     case WSAETIMEDOUT:
  108.       lpszRetStr="connection timed out";
  109.       break;
  110.     case WSAECONNREFUSED:
  111.       lpszRetStr="connection refused";
  112.       break;
  113.     case WSAEHOSTDOWN:
  114.       lpszRetStr="host down";
  115.       break;
  116.     case WSAEHOSTUNREACH:
  117.       lpszRetStr="host unreachable";
  118.       break;
  119.     case WSAEADDRNOTAVAIL:
  120.       lpszRetStr="address not available";
  121.       break;
  122.     default:
  123.       if(lpszBuf==NULL) lpszBuf=szErrMsg;
  124.       wsprintf((LPSTR)lpszBuf, (LPSTR)"error %u", nErr);
  125.       return(lpszBuf);
  126.   }
  127.   if(lpszBuf!=NULL) {
  128.     lstrcpy(lpszBuf,lpszRetStr);
  129.     return(lpszBuf);
  130.   }
  131.   return(lpszRetStr);
  132. }
  133.  
  134. VOID ReportWSError(LPSTR lpszMsg,UINT nErr)
  135. {
  136.   if(lpszMsg!=NULL)
  137.     DoPrintf("%s: %s",lpszMsg,ReturnWSError(nErr,NULL));
  138.   else
  139.     DoAddLine(ReturnWSError(nErr,NULL));
  140. }
  141.  
  142. VOID ReportWindowWSError(struct win_info *Window,LPSTR lpszMsg,UINT nErr)
  143. {
  144.   if(lpszMsg!=NULL)
  145.     DoWindowPrintf(Window,"%s: %s",lpszMsg,ReturnWSError(nErr,NULL));
  146.   else
  147.     DoAddWindowLine(Window,ReturnWSError(nErr,NULL));
  148. }
  149.  
  150.