home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / contrib / usr.x25 / lib / x25err.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-09-03  |  1.3 KB  |  88 lines

  1. #include <netccitt/x25err.h>
  2.  
  3. extern    int errno, sys_nerr;
  4. extern    char *sys_errlist[];
  5.  
  6. char *
  7. x25err(who)
  8. char *who;
  9. {
  10.     register char *ep, *bp;
  11.     static char buf[80];
  12.  
  13.     switch(errno) {
  14.     case EXRESET:
  15.         ep = "Call reset";
  16.         break;
  17.  
  18.     case EXROUT:
  19.         ep = "Reset - out of order";
  20.         break;
  21.  
  22.     case EXRRPE:
  23.         ep = "Reset - remote procedure error";
  24.         break;
  25.  
  26.     case EXRLPE:
  27.         ep = "Reset - local procedure error";
  28.         break;
  29.  
  30.     case EXRNCG:
  31.         ep = "Reset - network congestion";
  32.         break;
  33.  
  34.     case EXCLEAR:
  35.         ep = "Clear - remote directive";
  36.         break;
  37.  
  38.     case EXCBUSY:
  39.         ep = "Clear - number is busy";
  40.         break;
  41.  
  42.     case EXCOUT:
  43.         ep = "Clear - out of order";
  44.         break;
  45.  
  46.     case EXCRPE:
  47.         ep = "Clear - remote procedure error";
  48.         break;
  49.  
  50.     case EXCRRC:
  51.         ep = "Clear - collect call refused";
  52.         break;
  53.  
  54.     case EXCINV:
  55.         ep = "Clear - invalid call";
  56.         break;
  57.  
  58.     case EXCAB:
  59.         ep = "Clear - access barred";
  60.         break;
  61.  
  62.     case EXCLPE:
  63.         ep = "Clear - local procedure error";
  64.         break;
  65.  
  66.     case EXCNCG:
  67.         ep = "Clear - network congestion";
  68.         break;
  69.  
  70.     case EXCNOB:
  71.         ep = "Clear - not obtainable";
  72.         break;
  73.  
  74.     default:
  75.         ep = errno >= 0 && errno < sys_nerr ?
  76.             sys_errlist[errno] : "Unknown error";
  77.     }
  78.     bp = buf;
  79.     if (who) {
  80.         while (bp < buf+sizeof (buf)-2-1 && (*bp++ = *who++));
  81.         bp[-1] = ':';
  82.         *bp++ = ' ';
  83.     }
  84.     while (bp < buf+sizeof (buf)-1 && (*bp++ = *ep++));
  85.     *bp++ = '\0';
  86.     return (buf);
  87. }
  88.