#include "inspircd.h"
#include "configreader.h"
#include <algorithm>
-#include <dirent.h>
-#include <dlfcn.h>
#include "users.h"
#include "modules.h"
#include "wildcard.h"
#include "socket.h"
#include "command_parse.h"
+/* Directory Searching for Unix-Only */
+#ifndef WIN32
+#include <dirent.h>
+#include <dlfcn.h>
+#endif
+
bool InspIRCd::ULine(const char* server)
{
if (!server)
bool CommandParser::IsValidCommand(const std::string &commandname, int pcnt, userrec * user)
{
- nspace::hash_map<std::string,command_t*>::iterator n = cmdlist.find(commandname);
+ command_table::iterator n = cmdlist.find(commandname);
if (n != cmdlist.end())
{
command_t* CommandParser::GetHandler(const std::string &commandname)
{
- nspace::hash_map<std::string,command_t*>::iterator n = cmdlist.find(commandname);
+ command_table::iterator n = cmdlist.find(commandname);
if (n != cmdlist.end())
return n->second;
CmdResult CommandParser::CallHandler(const std::string &commandname,const char** parameters, int pcnt, userrec *user)
{
- nspace::hash_map<std::string,command_t*>::iterator n = cmdlist.find(commandname);
+ command_table::iterator n = cmdlist.find(commandname);
if (n != cmdlist.end())
{
return;
}
- nspace::hash_map<std::string,command_t*>::iterator cm = cmdlist.find(command);
+ command_table::iterator cm = cmdlist.find(command);
if (cm != cmdlist.end())
{
{
if (!user->IsModeSet(cm->second->flags_needed))
{
- user->WriteServ("481 %s :Permission Denied- You do not have the required operator privileges",user->nick);
+ user->WriteServ("481 %s :Permission Denied - You do not have the required operator privileges",user->nick);
return;
}
if (!user->HasPermission(command))
{
- user->WriteServ("481 %s :Permission Denied- Oper type %s does not have access to command %s",user->nick,user->oper,command.c_str());
+ user->WriteServ("481 %s :Permission Denied - Oper type %s does not have access to command %s",user->nick,user->oper,command.c_str());
return;
}
}
- if ((user->registered == REG_ALL) && (!*user->oper) && (cm->second->IsDisabled()))
+ if ((user->registered == REG_ALL) && (!IS_OPER(user)) && (cm->second->IsDisabled()))
{
/* command is disabled! */
user->WriteServ("421 %s %s :This command has been disabled.",user->nick,command.c_str());
bool CommandParser::RemoveCommands(const char* source)
{
- nspace::hash_map<std::string,command_t*>::iterator i,safei;
+ command_table::iterator i,safei;
for (i = cmdlist.begin(); i != cmdlist.end(); i++)
{
safei = i;
return true;
}
-void CommandParser::RemoveCommand(nspace::hash_map<std::string,command_t*>::iterator safei, const char* source)
+void CommandParser::RemoveCommand(command_table::iterator safei, const char* source)
{
command_t* x = safei->second;
if (x->source == std::string(source))
{
if (!user->muted)
{
- ServerInstance->Log(DEBUG,"-> :%s %s",user->nick,buffer.c_str());
+ ServerInstance->Log(DEBUG,"C[%d] -> :%s %s",user->GetFd(), user->nick, buffer.c_str());
this->ProcessCommand(user,buffer);
}
}
{
*v = dlsym(h, "init_command");
const char* err = dlerror();
- if (err)
+ if (err && !(*v))
{
ServerInstance->Log(SPARSE, "Error loading core command: %s\n", err);
return false;
{
RFCCommands.clear();
+ printf("\nLoading core commands");
+ fflush(stdout);
+
DIR* library = opendir(LIBRARYDIR);
if (library)
{
{
if (match(entry->d_name, "cmd_*.so"))
{
+ printf(".");
+ fflush(stdout);
this->LoadCommand(entry->d_name);
}
}
closedir(library);
+ printf("\n");
}
this->CreateCommand(new cmd_reload(ServerInstance));