home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / modempool / part01 / poolstat.c < prev    next >
C/C++ Source or Header  |  1993-04-05  |  2KB  |  69 lines

  1. /********************************************************************
  2.  * 
  3.  * Module: @(#)poolstat.c    4.2 92/04/16
  4.  *
  5.  * Description:
  6.  *     Lists status of all callback lines, uses the server data base file
  7.  *     calltmp
  8.  *
  9.  * Revision:
  10.  *    Ver    Date    By        Reason
  11.  *    ---    ----    --        ------
  12.  *    1    910118    Lars Berntzon    Created
  13.  *
  14.  ********************************************************************/
  15. static char SccsId[] = "@(#)poolstat.c    4.2 92/04/16";
  16. #include <stdio.h>
  17. #include "modempool.h"
  18.  
  19. main()
  20. {
  21. #ifdef RLOGIN
  22.     static char headfmt[] = "%-15s %-5s %-10s %-15s %-5s %-8s %s\n";
  23.     static char realfmt[] = "%-15s %-5d %-10s %-15s %-5d %-8s %s\n";
  24. #else
  25.     static char headfmt[] = "%-15s %-5s %-10s %-15s %-5s %-8s\n";
  26.     static char realfmt[] = "%-15s %-5d %-10s %-15s %-5d %-8s\n";
  27. #endif
  28.     struct slot slot;
  29.     char *status;
  30.     int fd;
  31.  
  32.     if ((fd = open(SERVERDB, 0)) < 0) {
  33.         fprintf(stderr, "failed to open server database\n");
  34.         exit(1);
  35.     }
  36.  
  37.     printf(headfmt, "LINE", "PID", "STATUS", "PHONE", "BAUD", "NAME"
  38. #ifdef RLOGIN
  39.     ,"HOST"
  40. #endif
  41.     );
  42.     while(read(fd, &slot, sizeof slot) == sizeof slot) {
  43.     if (kill(slot.pid, 0) >= 0) {
  44.         switch (slot.status) {
  45.         case SLOT_FREE:
  46.         status = "free"; 
  47.         break;
  48.         case SLOT_BUSY:
  49.         status = "busy";
  50.         break;
  51.         case SLOT_LOGIN:
  52.         status = "login";
  53.         break;
  54.         case SLOT_FAULT:
  55.         status = "fault";
  56.         break;
  57.         default:
  58.         status = "(unknown)";
  59.         }
  60.         printf(realfmt, slot.line, slot.pid, status,
  61.                slot.phone, slot.baud, slot.name
  62. #ifdef RLOGIN
  63.            ,slot.host
  64. #endif
  65.            );
  66.     }
  67.     }
  68. }
  69.