#include <sys/types.h>
#include <dirent.h>
-#include "../nick/nick.h"
-#include "../channel/channel.h"
-#include "../lib/irc_string.h"
-
#include "hcommands.h"
#include "hcommand.h"
}
if (strregexp(htrm->description->content, pattern) || strregexp(htrm->name->content, pattern))
{
- sprintf(buffer+strlen(buffer) /* :) */, "%s(%d) ", htrm->name->content, strlen(htrm->description->content));
+ sprintf(buffer+strlen(buffer) /* :) */, "%s(%u) ", htrm->name->content, (unsigned int)strlen(htrm->description->content));
count++;
}
}
if (IsAccount(nck))
authed_count++;
- if (IsOper(nck) && strlen(nck->nick) > 1)
+ if (IsOper(nck) && strlen(nck->nick) > 1 && (IsSecret(chan) || IsPrivate(chan) || IsKey(chan) || IsInviteOnly(chan)))
{
- helpmod_reply(sender, returntype, "Cannot check channel: Permission denied. Channel %s has an oper on it", argv[0]);
+ helpmod_reply(sender, returntype, "Cannot check channel: Permission denied. Channel %s has an oper on it and one or more of +i/+k/+p/+s", argv[0]);
return;
}
}
{
int argc = 0, useless_var;
char args_copy[512];
- char *parsed_args[H_CMD_MAX_ARGS + 3], *ptr = args_copy;
+ char *parsed_args[H_CMD_MAX_ARGS + 4], *ptr = args_copy;
/* only accept commands from valid sources */
if (huser_get_level(sender) > H_ADMIN)
if (*args == '-' || *args == '?')
args++;
- strcpy(args_copy, args);
+ strncpy(args_copy, args, (sizeof(args_copy) - 1));
+ args_copy[sizeof(args_copy) - 1] = '\0';
+
/* FIX stringituki */
- while (argc < 10)
+ while (argc < (H_CMD_MAX_ARGS + 4))
{
while (isspace(*ptr) && *ptr)
ptr++;
}
else
{
+ controlwall(NO_DEVELOPER, NL_ALL_COMMANDS, "(G) From: %s!%s@%s%s%s: %s", sender->real_user->nick, sender->real_user->ident, sender->real_user->host->name->content, IsAccount(sender->real_user)?"/":"", IsAccount(sender->real_user)?sender->real_user->authname:"", args);
SKIP_WORD;
hcom->function(sender, returntype, ostr, argc, argv);
}