]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules.cpp
Extra debugging
[user/henk/code/inspircd.git] / src / modules.cpp
index eaff59c2db51ab180a0851d4abb0e99afee34f8f..6d6b39d876b9981d94c7ca02dfa3b90486abd7da 100644 (file)
  * ---------------------------------------------------
  */
 
-#include "inspircd_config.h"
-//#include "inspircd.h"
 #include "configreader.h"
-#include <unistd.h>
-#include <sys/errno.h>
-#include <time.h>
-#include <string>
-#include <map>
-#include <sstream>
-#include <vector>
-#include <deque>
 #include "users.h"
-#include "ctables.h"
-#include "globals.h"
 #include "modules.h"
-#include "dynamic.h"
 #include "wildcard.h"
 #include "mode.h"
 #include "xline.h"
-#include "commands.h"
-#include "inspstring.h"
-
-#include "hashcomp.h"
 #include "socket.h"
 #include "socketengine.h"
-#include "typedefs.h"
-#include "modules.h"
 #include "command_parse.h"
 #include "dns.h"
 #include "inspircd.h"
 
 // version is a simple class for holding a modules version number
-
-Version::Version(int major, int minor, int revision, int build, int flags)
-: Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags)
+Version::Version(int major, int minor, int revision, int build, int flags, int api_ver)
+: Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags), API(api_ver)
 {
 }
 
@@ -130,12 +110,13 @@ void              Module::OnUserConnect(userrec* user) { }
 void           Module::OnUserQuit(userrec* user, const std::string& message) { }
 void           Module::OnUserDisconnect(userrec* user) { }
 void           Module::OnUserJoin(userrec* user, chanrec* channel) { }
+void           Module::OnPostJoin(userrec* user, chanrec* channel) { }
 void           Module::OnUserPart(userrec* user, chanrec* channel, const std::string &partmessage) { }
 void           Module::OnRehash(const std::string &parameter) { }
 void           Module::OnServerRaw(std::string &raw, bool inbound, userrec* user) { }
-int            Module::OnUserPreJoin(userrec* user, chanrec* chan, const char* cname) { return 0; }
+int            Module::OnUserPreJoin(userrec* user, chanrec* chan, const char* cname, std::string &privs) { return 0; }
 void           Module::OnMode(userrec* user, void* dest, int target_type, const std::string &text) { };
-Version                Module::GetVersion() { return Version(1,0,0,0,VF_VENDOR); }
+Version                Module::GetVersion() { return Version(1,0,0,0,VF_VENDOR,-1); }
 void           Module::OnOper(userrec* user, const std::string &opertype) { };
 void           Module::OnPostOper(userrec* user, const std::string &opertype) { };
 void           Module::OnInfo(userrec* user) { };
@@ -151,7 +132,8 @@ int         Module::OnKill(userrec* source, userrec* dest, const std::string &reason) {
 void           Module::OnLoadModule(Module* mod,const std::string &name) { };
 void           Module::OnUnloadModule(Module* mod,const std::string &name) { };
 void           Module::OnBackgroundTimer(time_t curtime) { };
-int            Module::OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated) { return 0; };
+int            Module::OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated, const std::string &original_line) { return 0; };
+void           Module::OnPostCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, CmdResult result, const std::string &original_line) { };
 bool           Module::OnCheckReady(userrec* user) { return true; };
 void           Module::OnUserRegister(userrec* user) { };
 int            Module::OnUserPreKick(userrec* source, userrec* user, chanrec* chan, const std::string &reason) { return 0; };
@@ -169,7 +151,7 @@ void                Module::OnEvent(Event* event) { return; };
 char*          Module::OnRequest(Request* request) { return NULL; };
 int            Module::OnOperCompare(const std::string &password, const std::string &input) { return 0; };
 void           Module::OnGlobalOper(userrec* user) { };
-void           Module::OnGlobalConnect(userrec* user) { };
+void           Module::OnPostConnect(userrec* user) { };
 int            Module::OnAddBan(userrec* source, chanrec* channel,const std::string &banmask) { return 0; };
 int            Module::OnDelBan(userrec* source, chanrec* channel,const std::string &banmask) { return 0; };
 void           Module::OnRawSocketAccept(int fd, const std::string &ip, int localport) { };
@@ -209,25 +191,8 @@ void               Module::OnChannelDelete(chanrec* chan) { };
 Priority       Module::Prioritize() { return PRIORITY_DONTCARE; }
 void           Module::OnSetAway(userrec* user) { };
 void           Module::OnCancelAway(userrec* user) { };
+int            Module::OnUserList(userrec* user, chanrec* Ptr) { return 0; };
 
-/* server is a wrapper class that provides methods to all of the C-style
- * exports in the core
- */
-
-void InspIRCd::AddSocket(InspSocket* sock)
-{
-       this->module_sockets.push_back(sock);
-}
-
-void InspIRCd::RemoveSocket(InspSocket* sock)
-{
-       for (std::vector<InspSocket*>::iterator a = this->module_sockets.begin(); a < this->module_sockets.end(); a++)
-       {
-               InspSocket* s = (InspSocket*)*a;
-               if (s == sock)
-                       s->MarkAsClosed();
-       }
-}
 
 long InspIRCd::PriorityAfter(const std::string &modulename)
 {
@@ -303,18 +268,6 @@ void InspIRCd::RehashServer()
        this->Config->Read(false,NULL);
 }
 
-void InspIRCd::DelSocket(InspSocket* sock)
-{
-       for (std::vector<InspSocket*>::iterator a = this->module_sockets.begin(); a < this->module_sockets.end(); a++)
-       {
-               if (*a == sock)
-               {
-                       this->module_sockets.erase(a);
-                       return;
-               }
-       }
-}
-
 /* This is ugly, yes, but hash_map's arent designed to be
  * addressed in this manner, and this is a bit of a kludge.
  * Luckily its a specialist function and rarely used by