44 |
|
#include "memory.h" |
45 |
|
#include "balloc.h" |
46 |
|
#include "s_log.h" |
47 |
+ |
#include "msg.h" |
48 |
|
|
49 |
|
/* some small utility functions */ |
50 |
|
static char *check_string(char *); |
92 |
|
#define NCHCAPS (sizeof(channel_capabs)/sizeof(int)) |
93 |
|
#define NCHCAP_COMBOS (1 << NCHCAPS) |
94 |
|
|
95 |
+ |
static char nuh_mask[MAXPARA][IRCD_BUFSIZE]; |
96 |
|
/* some buffers for rebuilding channel/nick lists with ,'s */ |
97 |
|
static char modebuf[IRCD_BUFSIZE]; |
98 |
|
static char parabuf[MODEBUFLEN]; |
643 |
|
if (MyClient(source_p) && (++mode_limit > MAXMODEPARAMS)) |
644 |
|
return; |
645 |
|
|
646 |
< |
mask = parv[(*parn)++]; |
647 |
< |
|
646 |
> |
mask = nuh_mask[*parn]; |
647 |
> |
memcpy(mask, parv[*parn], sizeof(nuh_mask[*parn])); |
648 |
> |
++*parn; |
649 |
> |
|
650 |
|
if (IsServer(client_p)) |
651 |
|
if (strchr(mask, ' ')) |
652 |
|
return; |
740 |
|
if (MyClient(source_p) && (++mode_limit > MAXMODEPARAMS)) |
741 |
|
return; |
742 |
|
|
743 |
< |
mask = parv[(*parn)++]; |
743 |
> |
mask = nuh_mask[*parn]; |
744 |
> |
memcpy(mask, parv[*parn], sizeof(nuh_mask[*parn])); |
745 |
> |
++*parn; |
746 |
|
|
747 |
|
if (IsServer(client_p)) |
748 |
|
if (strchr(mask, ' ')) |
834 |
|
if (MyClient(source_p) && (++mode_limit > MAXMODEPARAMS)) |
835 |
|
return; |
836 |
|
|
837 |
< |
mask = parv[(*parn)++]; |
837 |
> |
mask = nuh_mask[*parn]; |
838 |
> |
memcpy(mask, parv[*parn], sizeof(nuh_mask[*parn])); |
839 |
> |
++*parn; |
840 |
|
|
841 |
|
if (IsServer(client_p)) |
842 |
|
if (strchr(mask, ' ')) |