diff options
Diffstat (limited to 'src/protocol/plexus.c')
-rw-r--r-- | src/protocol/plexus.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/protocol/plexus.c b/src/protocol/plexus.c index 4429b757e..0e16b2937 100644 --- a/src/protocol/plexus.c +++ b/src/protocol/plexus.c @@ -1481,7 +1481,34 @@ plexus_cmd_351 (char *source) int anope_event_capab (char *source, int ac, char **av) { - capab_parse (ac, 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; } |