home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / system / mail / delivery / deliver.tz / deliver / debug.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-07  |  1.8 KB  |  101 lines

  1. /* $Header: debug.c,v 2.2 90/02/23 14:16:42 chip Exp $
  2.  *
  3.  * Debugging output.
  4.  *
  5.  * $Log:    debug.c,v $
  6.  * Revision 2.2  90/02/23  14:16:42  chip
  7.  * Support "#!" in delivery files.
  8.  * Support "user|program" and "user?error" from delivery files.
  9.  * Improve debugging and error message formatting.
  10.  * Rearrange code for clarity.
  11.  * 
  12.  * Revision 2.1  89/06/09  12:25:17  network
  13.  * Update RCS revisions.
  14.  * 
  15.  * Revision 1.4  89/06/09  12:23:42  network
  16.  * Baseline for 2.0 release.
  17.  * 
  18.  */
  19.  
  20. #include "deliver.h"
  21.  
  22. /*----------------------------------------------------------------------
  23.  * Print out a complete dump of all destinations
  24.  */
  25.  
  26. dumpdests(when)
  27. char    *when;
  28. {
  29.     DEST    *d, **dv;
  30.     int    i, count;
  31.  
  32.     message("Destinations %s:\n", when);
  33.  
  34.     /*
  35.      * Get and sort the array of destinations.
  36.      */
  37.  
  38.     if ((dv = dest_array(&count)) == NULL)
  39.     {
  40.         message("\tnone\n");
  41.         return;
  42.     }
  43.  
  44.     /*
  45.      * Now print them in the order we just created.
  46.      */
  47.  
  48.     for (i = 0; i < count; ++i)
  49.     {
  50.         char    *e;
  51.         int    len;
  52.  
  53.         d = dv[i];
  54.  
  55.         message("\t%s", d->d_name);
  56.  
  57.         switch (d->d_class)
  58.         {
  59.         case CL_USER:
  60.             /* it's understood */
  61.             break;
  62.         case CL_MBOX:
  63.             message(", mailbox='%s'", d->d_param);
  64.             break;
  65.         case CL_UUCP:
  66.             message(" (UUCP)");
  67.             break;
  68.         case CL_PROG:
  69.             message(", program='%s'", d->d_param);
  70.             break;
  71.         }
  72.  
  73.         e = (d->d_state == ST_ERROR) ? derrmsg(d) : "";
  74.         len = strlen(d->d_name) + strlen(e);
  75.         if (d->d_param)
  76.             len += strlen(d->d_param);
  77.         message(":%s", (len > 60) ? "\n\t\t" : " ");
  78.  
  79.         switch (d->d_state)
  80.         {
  81.         case ST_WORKING:
  82.             message("Working");
  83.             break;
  84.         case ST_HOLD:
  85.             message("Hold");
  86.             break;
  87.         case ST_DONE:
  88.             message("Done");
  89.             break;
  90.         case ST_ERROR:
  91.             message("Error (%s)", derrmsg(d));
  92.             break;
  93.         }
  94.         message("\n");
  95.     }
  96.  
  97.     /* It's our job to free the array. */
  98.  
  99.     free((char *) dv);
  100. }
  101.