2040 Commits

Author SHA1 Message Date
danieldg
7aa5e059a8 Remove include/inspircd_se_config.h and socketengine-specific headers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11784 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-30 18:31:05 +00:00
danieldg
5fd6471070 Detect, complain, and don't crash when objects are inserted into cull list twice
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11782 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-30 16:28:43 +00:00
danieldg
e279597c0b Fix compilation of SQL modules, use GlobalCulls to clean up deleted modules
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11780 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-30 03:22:25 +00:00
danieldg
d811ffeda2 Fix linking errors on BSD
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11774 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-28 02:21:43 +00:00
danieldg
7c1509e0a7 Fix compile errors on BSD
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11773 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-28 01:59:21 +00:00
danieldg
d5e36aa2b2 Fix warnings from BSD build and work around the failures of BSD make
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11771 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-28 00:55:42 +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
810c662c9b Add FD_WANT_SINGLE_WRITE to efficiently replace FD_WANT_POLL_WRITE
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11762 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 14:12:45 +00:00
danieldg
939cb0ba98 Clean up SocketEngine interface to allow edge-triggered I/O and sockets that do not force readability.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11760 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 01:43:09 +00:00
danieldg
c8026bc2d7 Move configuration filename specification to start script, to reduce hardcoded paths in executable
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11759 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-24 01:44:29 +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
a068c47d71 Separate spy channels [jackmcbarn]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11747 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-18 17:07:13 +00:00
danieldg
01c23b31f7 Remove Extensible items from user, channel, and Membership on module unload
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11730 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-15 21:25:30 +00:00
danieldg
6eae25cd36 Fix access checks on chanprotect preventing use of SAMODE
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11717 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:33:56 +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
36a6e7f22e Prevent <include:executable> from running <include:executable> itself [jackmcbarn]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11710 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:33:03 +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
danieldg
8f9dafbfa3 Use FindMode instead of FindPrefix for OnUserPreJoin privs; makes it possible to give +q or +Y on join even without prefix
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11702 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:31:45 +00:00
danieldg
1524caf2f7 Simplify ModeHandler constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11701 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:31:33 +00:00
danieldg
7892c8a031 Replace OnAccessCheck with OnPreMode to remove a number of redundant checks
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11700 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:31:23 +00:00
danieldg
b4be0c94ab Module API changes to use Membership* where sensible
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11699 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:31:11 +00:00
danieldg
91df762e93 Membership* changes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11697 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:30:47 +00:00
danieldg
6d57bbe05c Change Extensible to use strongly typed entries
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:30:25 +00:00
danieldg
c11ec1cd38 Fix invalid iterator in select socketengine, clean up its memory use a bit too
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11687 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-09 19:28:42 +00:00
w00t
b49d529981 Likewise, convert OnLocalTopicChange to OnPreTopicChange and to be run for both local and remote changes, for API consistency.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11678 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-05 22:48:00 +00:00
w00t
b6decc75f2 Change OnPostLocalTopicChange to be OnPostTopicChange, invoked for both remote and local events. Will be needed for some xline trickery.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11677 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-05 22:47:46 +00:00
danieldg
17fd32bf74 Remove HandleInternal and HandleServer, they are duplicated by Request* and FakeUser
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11672 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-03 21:06:44 +00:00
danieldg
1c1c5fc3f0 Remove CMD_LOCALONLY, enforce use of GetRouting for routed commands
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11671 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-03 15:53:15 +00:00
danieldg
f4472dd6dc Change cmd_*.so to use the Module object API
Create Module* objects for each command, and load them like modules.
This unifies the external API for modules.

Library directory is now deprecated: all modules are located in a
single module directory.

Header files for each command are no longer needed; remove.

This also fixes two potential segfaults in m_spanningtree.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11668 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-03 02:30:12 +00:00
danieldg
3e26f42a8f Include VERSION/REVISION information in module version tag, so that we do no longer rely on $Id$
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11666 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 18:33:16 +00:00
danieldg
9dde0b1b33 Add inspircd_config.h to hash_map so that it can be used independently
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11662 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 15:37:31 +00:00
brain
bec20ca453 Add more comments here
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11659 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 01:06:02 +00:00
danieldg
0377d937c5 Remote user messaging fixes
Add format string output to DumpText
Fix PI->PushToClient prefixing issue
Fix ENCAP routing to use SID rather than server name

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11658 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:53:03 +00:00
danieldg
cdf850dcbb Add OnChangeIdent and FIDENT support
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11652 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:52:12 +00:00
danieldg
df0489220c Make CHECK work remotely with optional second parameter
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11651 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:52:04 +00:00
danieldg
1b3dabf0ba Add OnSendWhoLine hook, and use it in the oper hiding modules
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11650 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:51:56 +00:00
danieldg
54e89b822e Change SAMODE to source from the acting user, not the server
This is a merge of the OOMODE command into SAMODE.
This fixes SAMODE not working because of mode merging.
An additional access check for umode changes is added for this command.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11647 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:51:33 +00:00
danieldg
95f69d02e9 inline Channel::IsModeSet
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11643 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:51:04 +00:00
danieldg
94a601fb3b Rip out VisData in preparation for replacing it with more flexible hooks
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11640 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:43 +00:00
danieldg
c32734fb23 Fix some ICC-found warnings and remove unused #define
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11639 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:35 +00:00
danieldg
1662f21eed Remove now-unused quitmsg/operquitmsg fields from User
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11637 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:21 +00:00
danieldg
db7cc57f44 Move user quit logic out of cull list
This changes the cull list from a list of User* that ran special cleanup
to a list of classbase* that simply deletes the objects.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11636 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:12 +00:00
danieldg
86775e2e98 ModResult conversion: Change return type of all module functions
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11634 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:49:36 +00:00
danieldg
3d8ec5dbd9 Remove "servermode" parameter, replace with IS_FAKE() which is more reliable
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11633 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:49:24 +00:00
danieldg
24731c63b6 Add Module* creator to Command and ModeHandler
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11631 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:48:48 +00:00