426 Commits

Author SHA1 Message Date
Daniel De Graaf
cd6b7a8cda Split up API_VERSION number
Since we can make API changes in multiple branches at the same time,
a single sequence number is insufficient. Use two numbers to indicate
the major version and API increment.
2010-04-01 19:01:32 -05:00
danieldg
10d8e9151d Remove channel argument from OnSendWhoLine, this information is already available in params[0]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12650 e03df62e-2008-0410-955e-edbf42e46eb7
2010-03-22 20:29:05 +00:00
danieldg
a9754ce49b Allow static initialization of dynamic_reference objects
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12648 e03df62e-2008-0410-955e-edbf42e46eb7
2010-03-22 18:02:09 +00:00
danieldg
7cb909b0f3 PURE_STATIC fixes to use normal <module> tags
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12641 e03df62e-2008-0410-955e-edbf42e46eb7
2010-03-18 15:14:31 +00:00
danieldg
11e45f2cb7 Convert pgsql to SQLv3
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12626 e03df62e-2008-0410-955e-edbf42e46eb7
2010-03-13 01:28:54 +00:00
danieldg
6d55803ae8 Fix ModuleManager::SetPriority algorithm which did not handle PRIORITY_BEFORE correctly
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12600 e03df62e-2008-0410-955e-edbf42e46eb7
2010-03-06 01:27:20 +00:00
danieldg
4d46f5f9ef Restore <options:exemptchanops> with long names
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12502 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-20 09:15:55 +00:00
danieldg
c2ec183ffe Kill m_spy, which was replaced by channels/auspex in 1.2 but kept alive for nostalgia
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12497 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-19 02:50:29 +00:00
danieldg
394414b7eb Defer module init on initial load for easier dependency checking
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12477 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-16 20:32:43 +00:00
danieldg
4498f1abd1 m_dnsbl updates
Prevent user registration until dnsbl lookups are complete
Allow DNSBLs to be checked using <connect:dnsbl> (MARK type)

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12454 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-14 00:31:44 +00:00
danieldg
aab7998583 Add random number generation functions to InspIRCd class.
Default implementation uses libc random(), which can be better than rand().
If gnutls is loaded, gcrypt will be used to provide random numbers.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12404 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-09 02:22:27 +00:00
danieldg
8e34d66ef3 Add OnSetConnectClass hook for use in adding requirements to connect classes (such as requiressl)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12352 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-02 15:02:33 +00:00
danieldg
23e62cef07 Add parameters to OnSendWhoLine hook, fixes "/who * o" returning opers with +H
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12345 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-01 01:31:40 +00:00
danieldg
9ee588b23f PreCommand/PostCommand are local-only hooks
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12291 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-18 17:35:55 +00:00
danieldg
4b6bdeccb5 Add Module::init() for correct exception handling during hook registration
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12278 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-17 16:00:14 +00:00
danieldg
ac002a195d Verify cloak keys match during CAPAB negotiation
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12258 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-14 18:22:39 +00:00
danieldg
601d67fd5f Move revision information from Version object to a static symbol
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12256 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-14 18:17:08 +00:00
brain
cd712c40e1 ...because every now and again, i have to do a massive commit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-11 03:07:32 +00:00
danieldg
54fb0cd5aa Use ServiceProvider for inter-module dependencies
This will stop dependency chains from preventing module reloads when
it is not actually needed; however, it removes some failsafes that will
need to be reimplemented in order to avoid unmapped vtables.

This deprecates Request as an inter-module signaling mechanism, although
SQL still uses it.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12140 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-16 17:59:06 +00:00
danieldg
19487dbebc Allow static build of inspircd without module support
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12083 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-11 00:17:07 +00:00
danieldg
0f74e88f09 Move MODENOTICE command to a command module
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11991 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-03 01:14:12 +00:00
danieldg
fa2cdd0bb8 Force heap allocation of refcountbase, create usecountbase for non-allocation reference counting
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11978 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-25 20:03:55 +00:00
danieldg
6b2ea83367 Move forward declarations to typedefs.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11967 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-24 20:03:53 +00:00
danieldg
d221de8827 Kill ListenSocketBase, use OnAcceptConnection for all new connections
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11950 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-21 23:46:33 +00:00
danieldg
123eac3f25 Change module API to use LocalUser* where correct
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11943 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-21 23:45:19 +00:00
danieldg
9924e56311 Split LocalUser and RemoteUser
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11940 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-21 23:44:48 +00:00
danieldg
be10eab6ce Maintain refcount of Module objects to complain about leaked pointers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11925 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-19 20:12:22 +00:00
danieldg
a59d08fffd Remove VF_SERVICEPROVIDER, prevent heap allocation of ConfigReader
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11904 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-18 16:01:33 +00:00
danieldg
9db7af579c Make classbase and refcountbase uncopyable; expand comments on their indended uses
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11888 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17 18:52:39 +00:00
danieldg
67a4a9b623 Remove dummy API_VERSION from Version constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11887 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17 17:53:31 +00:00
danieldg
bf6724c049 Rewrite ConfigReader again
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11879 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17 02:14:44 +00:00
danieldg
dbf4d59543 Fix module unmapping with culled Module objects
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11875 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-14 22:12:55 +00:00
danieldg
2602f4efbd Encode module API version in the init_module symbol; fixes conflic with glibc-exported init_module
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11863 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-12 23:41:43 +00:00
danieldg
060f403430 DLLFactory--
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11861 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-12 22:56:41 +00:00
danieldg
4ab15e8655 Make OnChannelRestrictionApply take a User* instead of a Membership* [jackmcbarn]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11858 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-12 20:23:26 +00:00
danieldg
579e707f01 m_exemptchanops by jackmcbarn - channel mode +X to allow per-channel setting
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11855 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-12 18:12:48 +00:00
danieldg
7e843c22e1 Update Event and Request APIs
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11808 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-08 23:29:21 +00:00
danieldg
f9717e35ca Take advantage of link errors to check API_VERSION at module load time
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11805 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-06 16:50:48 +00:00
danieldg
085a8bc660 Add OnBuildNeighborList hook, replaces all uses of OnHostCycle
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11802 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-05 23:27:46 +00:00
danieldg
8456cf5ccd Fix valgrind issues and crashes on exit
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11794 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-02 03:15:46 +00:00
danieldg
75d9c67804 Add ROUTE_TYPE_MESSAGE and use for PRIVMSG/NOTICE routing
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11791 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-01 21:41:52 +00:00
danieldg
7107ec12d8 Flexible SendQ
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11766 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 16:41:07 +00:00
danieldg
ee913368d7 Change IS_FAKE and CheckTimeStamp to IS_SERVER and ResolveModeConflict to clarify their use
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11765 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 16:40:58 +00:00
danieldg
6d03943426 Remove InspIRCd* parameters and fields
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 14:13:13 +00:00
danieldg
7d93921aab Describe module purpose in /MODULES output
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11757 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-22 01:05:35 +00:00
danieldg
e2af2347fc Create StreamSocket for IO hooking implementation
Fixes the SSL SendQ bug
Removes duplicate code between User and BufferedSocket
Simplify SSL module API
Simplify EventHandler API (Readable/Writeable moved to SE)
Add hook for culled objects to invoke callbacks prior to destructor
 Replace SocketCull with GlobalCull now that sockets can close themselves
Shorten common case of user read/parse/write path:
 User::Write is now zero-copy up to syscall/SSL invocation
 User::Read has only two copy/scan passes from read() to ProcessCommand

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11752 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-21 13:26:31 +00:00
danieldg
2d732f4dbf Change match direction of extbans to allow stacking
This allows you create stacked bans like:
	+b m:r:*bot* to mute anyone with bot in their gecos
	+e S:j:+#staff to allow voices in #staff to use color

It also deprecates extban M, which can be implemented using m:R:

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11711 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:33:11 +00:00
danieldg
069a2ef214 Clean up Command constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11707 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:32:27 +00:00
danieldg
0ed3ef9dee Add SerializeFormat for easier metadata formatting
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11704 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:32:03 +00:00
danieldg
d9e3bb8d43 Remove redundant ServerInstance* fields
It has been impossible to have more than one InspIRCd* object in the
same address space for some time now, and this feature was never used.
This formalizes class InspIRCd as a singleton object.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11703 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:31:54 +00:00