/* show a stats request */
static void *
show_stats(va_list args)
{
  struct Client *source_p = va_arg(args, struct Client *);
  int parc = va_arg(args, int);
  char **parv = va_arg(args, char **);
  char statchar;

  if (parc < 2)
    return NULL;  /* shouldn't happen */

  statchar = parv[1][0];
  if (statchar == 'L' || statchar == 'l')
  {
    if (parc > 2 && *parv[2])
      sendto_realops_flags(UMODE_SPY, L_ALL,
                           "STATS %c requested by %s (%s@%s) [%s] on %s",
			   statchar, source_p->name, source_p->username,
			   source_p->host, source_p->servptr->name, parv[2]);
    else
      sendto_realops_flags(UMODE_SPY, L_ALL,
                           "STATS %c requested by %s (%s@%s) [%s]",
                           statchar, source_p->name, source_p->username,
			   source_p->host, source_p->servptr->name);
  }
  else if (statchar != 'p')
    sendto_realops_flags(UMODE_SPY, L_ALL,
                         "STATS %c requested by %s (%s@%s) [%s]",
                         statchar, source_p->name, source_p->username,
                         source_p->host, source_p->servptr->name);

  return pass_callback(prev_hook, source_p, parc, parv);
}
Ejemplo n.º 2
0
/*
 * Associates a window message with the given socket.
 * This will automagically switch it to nonblocking.
 */
static void *
setup_winsock_fd(va_list args)
{
  int fd = va_arg(args, int);

  WSAAsyncSelect(fd, wndhandle, WM_SOCKET, 0);

  return pass_callback(setupfd_hook, fd);
}
Ejemplo n.º 3
0
/*
 * changing_fdlimit
 *
 * Make sure hard_fdlimit doesn't go too big.
 */
static void *
changing_fdlimit(va_list args)
{
  int fdmax = va_arg(args, int);

  if (fdmax > FD_SETSIZE)
    fdmax = FD_SETSIZE;

  return pass_callback(hookptr, fdmax);
}
Ejemplo n.º 4
0
/*
 * verify_mail()
 *
 * Checks if required settings are defined.
 *
 * inputs: none
 * output: none
 */
static void *
verify_mail(va_list args)
{
  if (EmptyString(Mail.command))
    parse_fatal("command= field missing in mail{} section");

  if (EmptyString(Mail.from_address))
    parse_fatal("from_address= field missing in mail{} section");

  return pass_callback(hverify);
}
Ejemplo n.º 5
0
static void *
show_info(va_list args)
{
  struct Client *source_p = va_arg(args, struct Client *);
  int parc = va_arg(args, int);
  char **parv = va_arg(args, char **);

  if (IsClient(source_p))
    sendto_gnotice_flags(UMODE_SPY, L_ALL, me.name, &me, NULL,
                         "info requested by %s (%s@%s) [%s]",
                         source_p->name, source_p->username,
                         source_p->host, source_p->servptr->name);

  return pass_callback(prev_hook, source_p, parc, parv);
}
Ejemplo n.º 6
0
static void *
show_stats_p(va_list args)
{
  struct Client *source_p = va_arg(args, struct Client *);
  int parc = va_arg(args, int);
  char **parv = va_arg(args, char **);

  if (parc < 2)
    return NULL;  /* shouldn't happen */

  if (parv[1][0] == 'p')
    sendto_realops_flags(UMODE_SPY, L_ALL,
                         "STATS p requested by %s (%s@%s) [%s]",
                         source_p->name, source_p->username,
                         source_p->host, source_p->servptr->name);

  return pass_callback(prev_hook, source_p, parc, parv);
}
Ejemplo n.º 7
0
/*
 * reset_mail()
 *
 * Sets up default values before a rehash.
 *
 * inputs: none
 * output: none
 */
static void *
reset_mail(va_list args)
{
  return pass_callback(hreset);
}