Example #1
0
/* Event: PROTOCTL */
int denora_event_capab(char *source, int ac, char **av)
{
    if (denora->protocoldebug) {
        protocol_debug(source, ac, av);
    }
    capab_parse(ac, av);
    return MOD_CONT;
}
Example #2
0
/* Event: PROTOCTL */
int denora_event_capab(char *source, int ac, char **av)
{
    int argc = 5;
    char *argv[5];

    if (strcasecmp(av[0], "START") == 0) {
        /* reset CAPAB */
        has_globopsmod = 0;
    } else if (strcasecmp(av[0], "MODULES") == 0
               && strstr(av[1], "m_globops.so")) {
        has_globopsmod = 1;
    } else if (strcasecmp(av[0], "END") == 0) {
        if (has_globopsmod == 0) {
            send_cmd(NULL,
                     "ERROR :m_globops.so is not loaded. This is required by Denora");
            denora->qmsg =
                sstrdup
                ("Remote server does not have the m_globops.so module loaded, and this is required.");
            denora->quitting = 1;
            return MOD_STOP;
        }

        /* Generate a fake capabs parsing call so things like NOQUIT work
         * fine. It's ugly, but it works....
         */
        argv[0] = sstrdup("NOQUIT");
        argv[1] = sstrdup("SSJ3");
        argv[2] = sstrdup("NICK2");
        argv[3] = sstrdup("VL");
        argv[4] = sstrdup("TLKEXT");

        capab_parse(argc, argv);

        free(argv[0]);
        free(argv[1]);
        free(argv[2]);
        free(argv[3]);
        free(argv[4]);
    }
    return MOD_CONT;
}
Example #3
0
/* Event: PROTOCTL */
int
anope_event_capab (char *source, int ac, char **av)
{
  int argvsize = 8;
  int argc;
  char **argv;
  char *str;

  if (ac < 1)
    return MOD_CONT;

  /* We get the params as one arg, we should split it for capab_parse */
  argv = scalloc (argvsize, sizeof (char *));
  argc = 0;
  while ((str = myStrGetToken (av[0], ' ', argc)))
    {
      if (argc == argvsize)
	{
	  argvsize += 8;
	  argv = srealloc (argv, argvsize * sizeof (char *));
	}
      argv[argc] = str;
      argc++;
    }

  capab_parse (argc, argv);

  /* Free our built ac/av */
  for (argvsize = 0; argvsize < argc; argvsize++)
    {
      free (argv[argvsize]);
    }
  free (argv);

  return MOD_CONT;
}
Example #4
0
int xanadu_event_capab(char *source, int ac, char **av)
{
    capab_parse(ac, av);
    return MOD_CONT;
}