home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / libncftp / older_versions / libncftp-3.2.2-src.tar.bz2 / libncftp-3.2.2-src.tar / libncftp-3.2.2 / sio / SError.c < prev    next >
C/C++ Source or Header  |  2008-07-13  |  5KB  |  176 lines

  1. #include "syshdrs.h"
  2. #ifdef PRAGMA_HDRSTOP
  3. #    pragma hdrstop
  4. #endif
  5.  
  6. #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__)
  7. #define _CRT_SECURE_NO_WARNINGS 1
  8.  
  9. const char *wsaerrlist[128] = {
  10.     /*   0 */    "Unknown error #0",
  11.     /*   1 */    "Unknown error #1",
  12.     /*   2 */    "Unknown error #2",
  13.     /*   3 */    "Unknown error #3",
  14.     /*   4 */    "Interrupted system call",
  15.     /*   5 */    "Unknown error #5",
  16.     /*   6 */    "Unknown error #6",
  17.     /*   7 */    "Unknown error #7",
  18.     /*   8 */    "Unknown error #8",
  19.     /*   9 */    "Bad file descriptor",
  20.     /*  10 */    "Unknown error #10",
  21.     /*  11 */    "Unknown error #11",
  22.     /*  12 */    "Unknown error #12",
  23.     /*  13 */    "Permission denied",
  24.     /*  14 */    "Bad address",
  25.     /*  15 */    "Unknown error #15",
  26.     /*  16 */    "Unknown error #16",
  27.     /*  17 */    "Unknown error #17",
  28.     /*  18 */    "Unknown error #18",
  29.     /*  19 */    "Unknown error #19",
  30.     /*  20 */    "Unknown error #20",
  31.     /*  21 */    "Unknown error #21",
  32.     /*  22 */    "Invalid argument",
  33.     /*  23 */    "Unknown error #23",
  34.     /*  24 */    "Too many open files",
  35.     /*  25 */    "Unknown error #25",
  36.     /*  26 */    "Unknown error #26",
  37.     /*  27 */    "Unknown error #27",
  38.     /*  28 */    "Unknown error #28",
  39.     /*  29 */    "Unknown error #29",
  40.     /*  30 */    "Unknown error #30",
  41.     /*  31 */    "Unknown error #31",
  42.     /*  32 */    "Unknown error #32",
  43.     /*  33 */    "Unknown error #33",
  44.     /*  34 */    "Unknown error #34",
  45.     /*  35 */    "Resource temporarily unavailable",
  46.     /*  36 */    "Operation now in progress",
  47.     /*  37 */    "Operation already in progress",
  48.     /*  38 */    "Socket operation on non-socket",
  49.     /*  39 */    "Destination address required",
  50.     /*  40 */    "Message too long",
  51.     /*  41 */    "Protocol wrong type for socket",
  52.     /*  42 */    "Protocol not available",
  53.     /*  43 */    "Protocol not supported",
  54.     /*  44 */    "Socket type not supported",
  55.     /*  45 */    "Operation not supported",
  56.     /*  46 */    "Protocol family not supported",
  57.     /*  47 */    "Address family not supported by protocol",
  58.     /*  48 */    "Address already in use",
  59.     /*  49 */    "Cannot assign requested address",
  60.     /*  50 */    "Network is down",
  61.     /*  51 */    "Network is unreachable",
  62.     /*  52 */    "Network dropped connection on reset",
  63.     /*  53 */    "Software caused connection abort",
  64.     /*  54 */    "Connection reset by peer",
  65.     /*  55 */    "No buffer space available",
  66.     /*  56 */    "Transport endpoint is already connected",
  67.     /*  57 */    "Transport endpoint is not connected",
  68.     /*  58 */    "Cannot send after transport endpoint shutdown",
  69.     /*  59 */    "Too many references: cannot splice",
  70.     /*  60 */    "Connection timed out",
  71.     /*  61 */    "Connection refused",
  72.     /*  62 */    "Too many levels of symbolic links",
  73.     /*  63 */    "File name too long",
  74.     /*  64 */    "Host is down",
  75.     /*  65 */    "No route to host",
  76.     /*  66 */    "Directory not empty",
  77.     /*  67 */    "WSAEPROCLIM error",
  78.     /*  68 */    "Too many users",
  79.     /*  69 */    "Disc quota exceeded",
  80.     /*  70 */    "Stale NFS file handle",
  81.     /*  71 */    "Object is remote",
  82.     /*  72 */    "Unknown error #72",
  83.     /*  73 */    "Unknown error #73",
  84.     /*  74 */    "Unknown error #74",
  85.     /*  75 */    "Unknown error #75",
  86.     /*  76 */    "Unknown error #76",
  87.     /*  77 */    "Unknown error #77",
  88.     /*  78 */    "Unknown error #78",
  89.     /*  79 */    "Unknown error #79",
  90.     /*  80 */    "Unknown error #80",
  91.     /*  81 */    "Unknown error #81",
  92.     /*  82 */    "Unknown error #82",
  93.     /*  83 */    "Unknown error #83",
  94.     /*  84 */    "Unknown error #84",
  95.     /*  85 */    "Unknown error #85",
  96.     /*  86 */    "Unknown error #86",
  97.     /*  87 */    "Unknown error #87",
  98.     /*  88 */    "Unknown error #88",
  99.     /*  89 */    "Unknown error #89",
  100.     /*  90 */    "Unknown error #90",
  101.     /*  91 */    "WSASYSNOTREADY error",
  102.     /*  92 */    "Version not supported",
  103.     /*  93 */    "Winsock not initialised",
  104.     /*  94 */    "Unknown error #94",
  105.     /*  95 */    "Unknown error #95",
  106.     /*  96 */    "Unknown error #96",
  107.     /*  97 */    "Unknown error #97",
  108.     /*  98 */    "Unknown error #98",
  109.     /*  99 */    "Unknown error #99",
  110.     /* 100 */    "Unknown error #100",
  111.     /* 101 */    "WSAEDISCON error",
  112.     /* 102 */    "Unknown error #102",
  113.     /* 103 */    "Unknown error #103",
  114.     /* 104 */    "Unknown error #104",
  115.     /* 105 */    "Unknown error #105",
  116.     /* 106 */    "Unknown error #106",
  117.     /* 107 */    "Unknown error #107",
  118.     /* 108 */    "Unknown error #108",
  119.     /* 109 */    "Unknown error #109",
  120.     /* 110 */    "Unknown error #110",
  121.     /* 111 */    "Unknown error #111",
  122.     /* 112 */    "Unknown error #112",
  123.     /* 113 */    "Unknown error #113",
  124.     /* 114 */    "Unknown error #114",
  125.     /* 115 */    "Unknown error #115",
  126.     /* 116 */    "Unknown error #116",
  127.     /* 117 */    "Unknown error #117",
  128.     /* 118 */    "Unknown error #118",
  129.     /* 119 */    "Unknown error #119",
  130.     /* 120 */    "Unknown error #120",
  131.     /* 121 */    "Unknown error #121",
  132.     /* 122 */    "Unknown error #122",
  133.     /* 123 */    "Unknown error #123",
  134.     /* 124 */    "Unknown error #124",
  135.     /* 125 */    "Unknown error #125",
  136.     /* 126 */    "Unknown error #126",
  137.     /* 127 */    "Unknown error #127",
  138. };
  139.  
  140. #endif    /* Windows */
  141.  
  142.  
  143.  
  144. const char *
  145. SError(int e)
  146. {
  147. #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__)
  148.     const char *cp;
  149.     static char estr[32];
  150.  
  151.     if (e == 0)
  152.         e = WSAGetLastError();
  153.  
  154.     if ((e >= WSABASEERR) && (e < (WSABASEERR + (sizeof(wsaerrlist) / sizeof(const char *))))) {
  155.         return wsaerrlist[e - WSABASEERR];
  156.     }
  157.  
  158.     cp = strerror(e);
  159.     if ((cp == NULL) || (cp[0] == '\0') || (strcmp(cp, "Unknown error") == 0)) {
  160.         wsprintf(estr, "Error #%d", e);
  161.         cp = estr;
  162.     }
  163.     return cp;
  164. #elif defined(HAVE_STRERROR)
  165.     if (e == 0)
  166.         e = errno;
  167.     return strerror(e);
  168. #else
  169.     static char estr[32];
  170.     if (e == 0)
  171.         e = errno;
  172.     sprintf(estr, "Error #%d", e);
  173.     return (estr);
  174. #endif
  175. }    /* SError */
  176.