home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / communication / internet / amitcp3.0b / src.lha / src / amitcp / net / sana2perror.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-08  |  1.5 KB  |  55 lines

  1. RCS_ID_C="$Id: sana2perror.c,v 1.1 1994/01/23 22:00:52 jraja Exp $";
  2. /*
  3.  * sana2perror.c --- print SANA-II error message
  4.  *
  5.  * Author: ppessi <Pekka.Pessi@hut.fi>
  6.  *
  7.  * Copyright © 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>
  8.  *                  Helsinki University of Technology, Finland.
  9.  *                  All rights reserved.
  10.  *
  11.  * Created      : Sat Mar 20 02:10:14 1993 ppessi
  12.  * Last modified: Mon Jan 24 00:00:44 1994 jraja
  13.  */
  14.  
  15. #include <conf.h>
  16. #include <sys/param.h>
  17. #include <sys/systm.h>
  18. #include <sys/syslog.h>
  19.  
  20. #include <devices/sana2.h>
  21. #include <net/sana2errno.h>
  22.  
  23. extern const char * const io_errlist[];
  24. extern const short io_nerr;
  25. extern const char * const sana2io_errlist[];
  26. extern const short sana2io_nerr;
  27. extern const char * const sana2wire_errlist[];
  28. extern const short sana2wire_nerr;
  29.  
  30. void 
  31. sana2perror(const char *banner, struct IOSana2Req *ios2)
  32. {
  33.   register WORD err = ios2->ios2_Req.io_Error;
  34.   register ULONG werr = ios2->ios2_WireError;
  35.   const char *errstr;
  36.  
  37.   if (err >= sana2io_nerr || -err > io_nerr) {
  38.     errstr = io_errlist[0];
  39.   } else { 
  40.     if (err < 0) 
  41.       /* Negative error codes are common with all IO devices */
  42.       errstr = io_errlist[-err];
  43.     else 
  44.       /* Positive error codes are SANA-II specific */ 
  45.       errstr = sana2io_errlist[err];
  46.   }
  47.  
  48.   if (werr == 0 || werr >= sana2wire_nerr) {
  49.     log(LOG_ERR, "%s: %s\n", banner, errstr);
  50.   } else {
  51.     log(LOG_ERR, "%s: %s (%s)\n", banner, errstr, sana2wire_errlist[werr]);
  52.   }
  53. }
  54.  
  55.