813 Commits

Author SHA1 Message Date
brain
e381b06561 EventHandler class, an abstraction for raw i/o
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4941 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 01:08:14 +00:00
brain
79961a8903 Optimize tons more timer checking stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4938 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-17 21:21:33 +00:00
brain
95fa07b5c6 DoSocketTimeouts and TickTimers only need to be called once a second. Why they were being called once every time around the mainloop, up to 30 times a second, is beyond me.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4937 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-17 21:08:09 +00:00
brain
3b7ce097e2 Clear fd_ref_table and socket_ref arrays in the constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4915 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-13 11:17:54 +00:00
brain
48291aaee5 This commit is dedicated to Boo ;-pppppp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4911 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12 17:36:08 +00:00
brain
6c01915414 Remove a blank line! WOO YAY! biggest commit all week!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4901 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 23:41:32 +00:00
brain
6050df73f4 Just to mess with om's head, remove helperfuncs.h from everywhere
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4900 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 23:31:13 +00:00
brain
cfb2c2fff4 CamelCaseRocksSoMuchICamelCasedAllTheMethodsOfClassInspIRCdSoThatItAllLooksNeat.
NowSomebodyHasToSpendHoursDocumentingAllOfThisIWonderWhoThatWillEndUpBeing...


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4889 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 16:14:44 +00:00
brain
7775a195d9 Move remaining functions:
operstrcmp*             commands.cpp            InspIRCd::operstrcmp()
duration*               commands.cpp            InspIRCd::duration()
host_matches_everyone*  commands.cpp            InspIRCd::host_matches_everyone()
ip_matches_everyone*    commands.cpp            InspIRCd::ip_matches_everyone()
nick_matches_everyone*  commands.cpp            InspIRCd::nick_matches_everyone()


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4888 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 15:14:39 +00:00
brain
bb2a45e116 This commit-o-gram is dedicated to boo, because i geek too much :) love you babe ;-ppp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4886 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:49:12 +00:00
brain
c0d8af77bb Move xline to before config system
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4883 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:35:29 +00:00
brain
e84bf9f3ec Change to using Instance->Log (InspIRCd::Log) rather than log() macro
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4880 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:26:07 +00:00
brain
d174657167 Now two types of log macro, log() and ilog(). log() assumes an InspIRCd object called ServerInstance, ilog() takes an InspIRCd object as first param.
TODO: Run a regexp over these, using perl, to translate them into InspIRCd::Log calls and then eliminate the macro :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4879 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:15:03 +00:00
brain
312d49abb0 Move all of the xline stuff into class XLineManager, make an instance of it in class InspIRCd and use it
(eliminates another extern)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4878 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 11:06:40 +00:00
brain
a5833e654d Move whowas into InspIRCd
Tidy up lowermap extern (for now, we cant do much but have this as extern)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4876 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 09:50:16 +00:00
brain
9ea40ce2f7 Removal of an extern
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4875 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 09:39:48 +00:00
brain
76ebc88ccd extern time_t TIME -> InspIRCd::Time()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4873 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 09:23:46 +00:00
brain
55e2180b4a Committing this as a rollback point - does not compile
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4860 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 23:36:53 +00:00
brain
b37a253d96 Note: FOR THE MOMENT, this is BROKEN. It wont run right until im done.
Changed Parameter for modules from Server* to InspIRCd*.
TODO: Move remaining Server* Modules into InspIRCd* and remove class Server.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4859 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 23:19:43 +00:00
brain
f9636a2eff So much stuff changed in this one, i forgot most of it.
Oh yeah, main thing is ModeHandler and ModeWatcher classes now take an InspIRCd* to their constructor


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4858 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 22:40:57 +00:00
brain
d02a5866d4 Mass-tidyup of module global vars, theyre no longer global vars.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4856 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 21:19:19 +00:00
brain
23a4885701 Move tons more stuff into class InspIRCd*, make signal handler functions static members
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4855 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 20:27:51 +00:00
brain
78dc981302 Move AllModulesReportReady into a private method of class InspIRCd
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4851 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 18:58:21 +00:00
brain
6c9588419d Move FileExists, CleanFilename, DirValid, GetFullProgDir into class ServerConfig
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4848 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 18:28:37 +00:00
brain
fd2eb26472 Move IsNick, IsIdent into class InspIRCd, update modules that use it.
Change message.h to just a #warning saying its deprecated, and remove all use of it from the core :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4847 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 18:04:19 +00:00
om
f12b920c07 Cast value to long instead of int, shouldn't break any sane system, fixes warning on 64bit systems
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4841 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 16:01:21 +00:00
brain
396c9ef9f7 FindNick, FindChan, ChanModes, UserList, CountInvisible, PurgeEmptyChannels, GetClass, WriteOpers, GetServerDescription -> into classes
ServerConfig takes InspIRCd pointer in its constructor


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4832 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 14:43:29 +00:00
brain
f93dcf4fa3 bad_alloc is thrown by reference not by value
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4830 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 12:01:23 +00:00
brain
33bb24ca6b Add a default exception handler around main()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4829 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 11:59:29 +00:00
brain
d7336f351d Move the socket functions like insp_ntoa into their own namespace. They arent really sensible to put into a class, but namespacing them out discourages developers from directly using them without explicitly saing 'using irc::sockets::BindPorts' or whatever first. Some functions such as insp_ntoa are already 'exposed' by headers that use them so 'using irc::sockets::inet_ntoa' isnt required.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4828 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 00:36:07 +00:00
brain
ad3c37e38c Relocate timer stuff into TimerManager class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4827 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 00:02:31 +00:00
brain
3020afbbed Fix passing wrong instance to resolver
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4824 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 20:14:26 +00:00
brain
48262da087 Change some resolver stuff.
OM, THIS STILL WONT COMPILE! Error on the same line


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4821 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 19:25:31 +00:00
brain
9bc04a3025 userrec and chanrec now have their own independent pointer back to their 'creator' InspIRCd* object, extern now longer required in channels.cpp or users.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4820 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 18:55:52 +00:00
brain
2591562ada Move tons more stuff into class InspIRCd
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4819 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 17:52:10 +00:00
brain
1cbf29e3cd Move clientlist and chanlist into InspIRCd*
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4818 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 16:35:24 +00:00
brain
89749a7440 Move fd_ref_table into class InspIRCd*
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4817 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 15:36:51 +00:00
brain
ab46b96db4 Move socket_ref and module_sockets vectors/arrays into InspIRCd*. These are public members, which InspSocket can modify.
(eventually, this will be marshalled safely through some accessors). When constructing an InspSocket you must now provide
an InspIRCd* instance to 'attach' the socket to.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4812 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 14:53:19 +00:00
brain
09afa50856 ServerConfig extern moved into class InspIRCd
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4808 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09 11:33:10 +00:00
brain
c18d1040a3 Move whowas stuff into its own namespace, move more stuff into userrec
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4795 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-08 16:07:25 +00:00
brain
2329d59b09 Extra checking that the fd's we pass to SocketEngine::AddFd were added (a lot of assuming was going off, leading to total chaos if we run out of fd's etc)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4780 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-08 09:32:57 +00:00
brain
358f2064c4 Bail if we couldn't bind any ports (when did this get broken?)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4774 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-07 21:25:48 +00:00
brain
233402b05c The segfaults on missing init_module symbol are now gone, and hopefully not coming back!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4772 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-07 20:42:18 +00:00
brain
1ff199172d Added some hax :( to prevent invalid symbols. It seems that instead of returning NULL, its setting a pointer to -1
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4770 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-07 20:12:24 +00:00
brain
2d871a23fe Remove dependent commands BEFORE deleting the Module*, otherwise things go tits over arse
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4761 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-07 11:53:21 +00:00
brain
28c4961290 Syntax notice on bad commandline
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4752 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-06 22:00:08 +00:00
brain
6c657e45fd Add -notraceback startup option, disables automatic backtrace facility so that you can do it yourself with a coredump and gdb (auto backtrace doesnt dump cores)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4751 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-06 21:55:01 +00:00
brain
f4a4901fee Support CIDR, CIDR zline, /oper and CIDR <connect> tags. NOTE: With CIDR oper, ident field is not supported (yet)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4732 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-06 16:09:29 +00:00
brain
a9621bc989 Fix CIDR functions so they work
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4731 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-06 15:26:16 +00:00
brain
b886782d50 Extra debug
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4699 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-04 12:39:39 +00:00