toc/
toc/account/a/
toc/area/backup/
toc/area/imc/
toc/caste/
toc/caste/backup/
toc/clans/
toc/classes/
toc/crash/
toc/gods/
toc/guilds/
toc/lname/s/
toc/maps/backup/
toc/player/a/
toc/src/
toc/system/backup/
toc/tableprog/
/****************************************************************************
 * [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame      |   \\._.//   *
 * -----------------------------------------------------------|   (0...0)   *
 * SMAUG 1.4 (C) 1994, 1995, 1996, 1998  by Derek Snider      |    ).:.(    *
 * -----------------------------------------------------------|    {o o}    *
 * SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus,      |   / ' ' \   *
 * Scryn, Rennard, Swordbearer, Gorog, Grishnakh, Nivek,      |~'~.VxvxV.~'~*
 * Tricops and Fireblade                                      |             *
 * ------------------------------------------------------------------------ *
 *			    Special requests module			    *
 * ------------------------------------------------------------------------ *
 * - Only handles who requests currently, but will hopefully support much   *
 *   more in the future.  Including: reboot/shutdown etc.		    *
 ****************************************************************************/

#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "mud.h"


int REQ;

void init_request_pipe()
{
#ifdef REQUESTS
   if ((REQ = open(REQUEST_PIPE, O_RDONLY | O_NONBLOCK)) == -1)
   {
      bug("REQUEST pipe not found", 0);
      exit(1);
   }
#endif
}

void check_requests()
{
#ifdef REQUESTS
   char buf[MSL];
   char buf2[MSL];
   int c;

   if (read(REQ, buf, sizeof(buf)) > 0)
   {
      close(REQ);
      init_request_pipe();
      for (c = 0; c < MSL; c++)
         if (buf[c] == '\n' || buf[c] == '\r')
         {
            buf[c] = '\0';
            break;
         }
      sprintf(buf2, "REQUEST: %s", buf);
      log_string(buf2);
      if (strcmp(buf, "who") == 0)
         do_who(NULL, "");
      else if (strcmp(buf, "webwho") == 0)
         do_who(NULL, "www");
   }
#endif
}