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