330 Commits

Author SHA1 Message Date
brain
e65c1d261c Add an optional parameter to ConfigReader::ReadValue which defines if we want linefeeds or not.
Tidy up some duplicated code in configreader (error reporting)
Change ModuleException to inherit from CoreException, have the configreader throw and catch its CoreException on fatal error


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6013 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-16 21:04:47 +00:00
w00t
696ee9ff66 And now, just to force you to recompile the *whole* ircd.. updated headers on the headers. :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5998 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 22:18:59 +00:00
brain
3679c5ebb7 New clone counting mechanism (this isnt tested yet)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5967 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-12 22:51:38 +00:00
brain
540fee57bf Add InspIRCd::UseInterface and InspIRCd::DoneWithInterface, and also InspIRCd::GetInterfaceUseCount().
These can be used for one module to lock other modules in memory that it depends on, this way they can
enforce an unload order so that you cant (for example) unload m_ssl_gnutls.so whilst m_spanningtree.so
is using it for ssl server to server sessions (in this case, youd have to unload spanningtree first,
THEN ssl_gnutls, to satisfy the dependencies and unload orders)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5924 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-10 22:17:51 +00:00
brain
768171fef9 Add OnRawSocketConnect, we've not had it till now because we've not needed it :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5887 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-09 18:49:36 +00:00
brain
c3a7fb47d6 Untested, undocumented PublishInterface, UnpublishInterface, FindInterface.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5867 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-05 20:43:41 +00:00
brain
2ade6284f9 Change this a LOT.
<oper blah.... hash="md5|sha256" pass="blah...">
It will now only check pass if you put the hash= in, people have been bugging for this for a while.
note the m_oper_hash module will try and detect both m_sha256 and m_md5 now, and will provide /mkpasswd that can do either.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5862 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-05 19:36:26 +00:00
brain
9f34f8d94e BuildExemptList is becoming pretty ugly. grr.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5819 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-27 17:45:16 +00:00
brain
439cff2dc8 Add OnBuildExemptList, which is used to build an exempt list when passing a privmsg on, but not directly processing it (m_spanningtree etc)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5818 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-27 17:19:28 +00:00
brain
ee3a514fe2 Add exception lists to OnUserMessage and OnUserNotice, to be used for smarter routing of messages in spanningtree amongst other things
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5817 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-27 17:03:47 +00:00
brain
0e8a718038 Update comments to reflect new API
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5807 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-26 18:12:50 +00:00
brain
2e52ff280d Add extra parameter to OnUserPreNotice and OnUserPrePrivmsg, CUList &exempt_list, a list of users NOT to write to. By default it just contains the sender, you can add more.
This also bumps the module api version by one. added "CUList fixme" to peaveys module just so it builds, as this will be refactored to use the new feature that was just added :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5806 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-26 18:04:47 +00:00
peavey
06fd57cc35 fix for bug #175, change OnUserRegister to return int, and if greater than 0 = user was quit and stop propagating to rest of loaded modules. Also bumb the module API version.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5783 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-21 23:22:04 +00:00
brain
9f35df1ad1 Inherit ModuleException from std::exception rather than classbase
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5740 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-14 18:50:50 +00:00
special
d0a0de4044 Removed OnRawMode - this hasn't been called at all for awhile now, so it was completely worthless. I even tested it.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5604 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-31 18:06:33 +00:00
brain
94db28f9b3 Add 'dest' parameter to OnWhoisLine, contains the user being whois'ed (we need this for +H and probably the stuff w00t is doing too)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5573 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-28 18:41:34 +00:00
brain
034f74a23b Add support for OnWhoisLine, which allows modules to change or drop any line of whois before its sent to a user
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5570 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-28 18:12:45 +00:00
brain
bc69a6264e Multiply API_VERSION by ten if IPV6 is defined, to prevent modules built for an ipv6 insp being loaded into an ipv4 insp (the sizes of structs such as userrec and inspsocket are different when ipv6 is enabled)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5486 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-16 21:27:02 +00:00
brain
4b0f6c610f Now with binary versioning goodness
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5366 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-01 14:59:38 +00:00
special
2d86278096 Added OnPostJoin, which is (at the moment) almost exactly identical to OnUserJoin but called after, so you can play with linking
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5361 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-01 00:19:36 +00:00
brain
27199ee710 make OnPostConnect global
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5339 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-26 17:16:42 +00:00
brain
990c308a95 Whoops, patch
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5324 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-25 17:43:28 +00:00
brain
3a7dd5b129 Add const std::string &original_command to OnPreCommand and OnPostCommand, which gives the entire untouched command string and params in all its colon-ny glory
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5265 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-17 14:01:53 +00:00
brain
ecd5b4082a Finish off the fix for bug #136 (a biggie for such a simple thing)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5151 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-06 18:20:02 +00:00
brain
5b8d2c4cab Remove a ton of <typeinfo>, <iostream>, <sstream> etc that we usually never use
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5081 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-30 09:51:50 +00:00
brain
fe3799248f Add support for NAMESX
Tidy up m_alias blank lines
Add m_namesx.so to example conf (no extra config tags required for it, it "just works")


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5039 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-28 01:02:41 +00:00
special
ef89755982 Renamed the OnGlobalConnect callback to OnPostConnect, which is much more appropriate
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5010 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-24 18:02:46 +00:00
brain
985169b6ee Inherit ModuleMessage from Extensible, so users can Extend and Shrink it.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4996 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23 09:33:30 +00:00
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
787020a2d7 More docs. Tons more docs. I need coffee and we're out of coffee :<
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4904 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12 01:04:56 +00:00
brain
c9f5327966 Added comment about why its important to push_back onto the string_list when doing OnStats, rather than just WriteServ'ing stuff to the user
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4898 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 22:53:11 +00:00
brain
187c9208f1 Fix FOREACH_MOD macros
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4881 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:28:57 +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
12737ab4ad ConfigReader and FileReader now take InspIRCd* to their constructors
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4865 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 01:35:01 +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
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
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
brain
afa1ec0e95 PublishFeature, FindFeature, FindModule, PriorityBefore, PriorityAfter -> InspIRCd::
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4846 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 17:37:25 +00:00
brain
e91d5023f3 Removal of Server::Log -- not much ever used it anyway with the ability to use log(). log() macro still exists, and calls InspIRCd::Log()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4845 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 16:56:03 +00:00
brain
94288cdc2e Fixes and removal of Server::GetServerName()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4844 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 16:37:01 +00:00
brain
fca345d6b5 Server::GetAdmin, Server::GetServerDescription, Server::GetNetworkName --- *REMOVED*
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4843 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 16:16:40 +00:00
brain
7fc4b79abc Why is most of Server:: virtual?`
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4839 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 15:47:26 +00:00
brain
aa31aa5969 Remove Server::Server() and Server::~Server()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4838 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 15:45:08 +00:00
brain
dafc021be4 cmode(), cflags(), cstatus() -> chanrec::GetStatusChar(), chanrec::GetStatusFlags(), chanrec::GetStatus()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4837 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 15:44:03 +00:00
brain
5ad9206627 Server::GetConfig, Server::GetVersion -> removed
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4833 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 15:02:11 +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
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
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