summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/inspircd.h10
-rw-r--r--include/typedefs.h1
-rw-r--r--src/inspircd.cpp27
3 files changed, 25 insertions, 13 deletions
diff --git a/include/inspircd.h b/include/inspircd.h
index 16f767ac3..236f99db0 100644
--- a/include/inspircd.h
+++ b/include/inspircd.h
@@ -90,10 +90,15 @@ class serverstats
}
};
-typedef void (handlerfunc) (char**, int, userrec*);
+
+class InspIRCd
+{
+ public:
+ InspIRCd(int argc, char** argv);
+ int Run();
+};
/* prototypes */
-int InspIRCd(char** argv, int argc);
void force_nickchange(userrec* user,const char* newnick);
void kill_link(userrec *user,const char* r);
void kill_link_silent(userrec *user,const char* r);
@@ -118,6 +123,5 @@ std::string GetVersionString();
void* dns_task(void* arg);
void process_buffer(const char* cmdbuf,userrec *user);
void FullConnectUser(userrec* user);
-chanrec* ForceChan(chanrec* Ptr,ucrec &a,userrec* user, int created);
#endif
diff --git a/include/typedefs.h b/include/typedefs.h
index 05cf9e8db..558a93757 100644
--- a/include/typedefs.h
+++ b/include/typedefs.h
@@ -25,5 +25,6 @@ typedef std::deque<command_t> command_table;
typedef std::vector<std::string> servernamelist;
typedef std::vector<ExtMode> ExtModeList;
typedef ExtModeList::iterator ExtModeListIter;
+typedef void (handlerfunc) (char**, int, userrec*);
#endif
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 0da0f580c..60e0c11bd 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -428,7 +428,7 @@ void kill_link_silent(userrec *user,const char* r)
}
-int main(int argc, char** argv)
+InspIRCd::InspIRCd(int argc, char** argv)
{
Start();
srand(time(NULL));
@@ -468,14 +468,7 @@ int main(int argc, char** argv)
lowermap[(unsigned)']'] = '}';
lowermap[(unsigned)'\\'] = '|';
- if (InspIRCd(argv,argc) == ERROR)
- {
- log(DEFAULT,"main: daemon function bailed");
- printf("ERROR: could not initialise. Shutting down.\n");
- Exit(ERROR);
- }
- Exit(TRUE);
- return 0;
+ return;
}
template<typename T> inline string ConvToStr(const T &in)
@@ -1543,7 +1536,7 @@ int BindPorts()
return boundPortCount;
}
-int InspIRCd(char** argv, int argc)
+int InspIRCd::Run()
{
bool expire_run = false;
std::vector<int> activefds;
@@ -1753,3 +1746,17 @@ int InspIRCd(char** argv, int argc)
return 0;
}
+/**********************************************************************************/
+
+/**
+ * An ircd in four lines! bwahahaha. ahahahahaha. ahahah *cough*.
+ */
+
+int main(int argc, char** argv)
+{
+ InspIRCd TittyBiscuits = new InspIRCd(argc, argv);
+ TittyBiscuits->Run();
+ delete TittyBiscuits;
+ return 0;
+}
+