diff options
Diffstat (limited to 'src/protocol/hybrid.c')
-rw-r--r-- | src/protocol/hybrid.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/protocol/hybrid.c b/src/protocol/hybrid.c index af402f8dc..e08cfd72a 100644 --- a/src/protocol/hybrid.c +++ b/src/protocol/hybrid.c @@ -1204,7 +1204,34 @@ void hybrid_cmd_351(char *source) /* Event: PROTOCTL */ 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; } |