461 Commits

Author SHA1 Message Date
danieldg
585138e4a4 Clean up unused functions, add nonicks operoverride [dKingston]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11951 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-22 00:09:15 +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
dcbb0ae938 Move command-line items to CommandLineConf
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11949 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-21 23:46:24 +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
355b17f151 Update documentation and remove unused classes/functions
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11938 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-21 23:44:27 +00:00
danieldg
34fbe51fa4 Move DumpText into User; kill unused WriteWallOps and DecreasePenalty functions
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11931 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-20 04:40:27 +00:00
danieldg
fa452641bf Remove more classbase
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11905 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-18 16:18:44 +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
e80a1296a0 Move static map of extensions into ServerInstance, add const-correctness
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11873 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-14 18:39:38 +00:00
danieldg
37fd031da0 Remove Command and ModeHandler objects in their destructors; fixes possible pointer leak if a module was not careful when triggering exceptions in its constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11872 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-13 21:34:29 +00:00
peavey
e4839dc443 Move 2 static extensibles from user class to inspircd class for global access in an attempt to further fix windows build.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11838 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-11 18:03:17 +00:00
peavey
c049a4a0f5 Use CoreExport for the ServerInstance extern. Fixes unresolved symbol error for windows DLLs like modules and commands.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11833 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-11 15:23:33 +00:00
danieldg
de25d94673 Get rid of a bunch of memory-wasting C-style strings
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11796 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-03 01:52:59 +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
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
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
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
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
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
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
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
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
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
77d5c9f765 Remove now-unused insp_sockaddr and insp_inaddr types
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11579 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-01 15:07:45 +00:00
danieldg
0036e3a70c Fixes for config reader
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11504 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-12 18:03:52 +00:00
danieldg
c384697c88 Make rehash generate a new ServerInstance->Config object
This makes it possible to cancel a pending rehash, and fixes possible
threading issues with rehash and other events.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11424 e03df62e-2008-0410-955e-edbf42e46eb7
2009-07-01 22:55:46 +00:00
danieldg
50eebfeac8 Move list of open ports out of Config object
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11423 e03df62e-2008-0410-955e-edbf42e46eb7
2009-07-01 22:55:39 +00:00
danieldg
6dd331262a Create subclass of User for FakeClient, to allow for use as command source
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11375 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-13 05:27:39 +00:00
w00t
71f7e47bcd Remove FindDescriptor wrapper for GetRef, it doesn't do anything useful and in fact is a bit harmful in some ways as we've seen..
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11364 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-06 22:27:51 +00:00
danieldg
a4e0a1127a Fix headers for GCC 4.4: sprintf requires #include <cstdio>
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11259 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-25 05:08:58 +00:00
danieldg
e7150d29f4 ConfigReaderThread updates: add done flag, remove main-thread-only mutex
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11256 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-23 20:42:17 +00:00
danieldg
f9e6de5284 ThreadEngine: remove MutexFactory, mutexes should be constructed using their constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11250 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-23 18:48:42 +00:00
psychon
b6dbd6caab Update all wiki links to point to the new wiki. This was done automatically with the following command, only .Makefile.inc got some indent fixups by hand.
for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-15 12:42:35 +00:00
danieldg
96a4a1d41e Include explicit parameter list in ProtocolInterface::SendMode
Also leave the strings split into deque, there's no need to pack it into a
string just to unpack it during the translate.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11181 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07 01:29:45 +00:00
peavey
f209cce90b Nuke trailing spaces
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-14 21:14:36 +00:00
brain
89249e32fc Patch for bug #704 by Darom, allows for 64 bit file offsets, so that signal 25 isnt raised if there is a 2gb logfile (really, WATCH YOUR LOGS)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11035 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-06 23:48:25 +00:00
w00t
43847ec9c7 Update copyrights for 2009.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-02 18:16:05 +00:00
w00t
376a2833d9 Change a few bits to use std::list instead of std::vector.
Vector is better than list, unless:
 - you require random access (these don't)
 - you require that the memory they are stored in are contiguous (these don't)
This will save a couple of bytes here and there perhaps (along with
much less problems with memory fragmentation and allocation).

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10923 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-28 03:27:28 +00:00
w00t
805d47c98e Move stuff to use ASCII map where required.
Also move this out of being a member totally, as it breaks (gah) and is already untidy.. to be revisited.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10858 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-07 18:31:57 +00:00
w00t
6c38936243 national_case_sensitive_map must be static, thanks to the match stuff being static (this is a bit ugly, but necessary for now).
Default to national charset map instead of rfc map, as modules may change the pointer.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10857 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-07 18:31:54 +00:00
w00t
3c2c0b7733 Add InspIRCd::national_case_sensitive_map pointer, defaults to rfc_case_insensitive_map.
Modules may override this pointer to customise casemapping of nick/channel names.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10856 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-07 18:31:48 +00:00
brain
9bddcf91ac Thread safety fixes to avoid crashes on rehash, dont reopen logs within the rehash thread. Put this in the safe part of the rehash operation, after the thread exits. Put a mutex around the part where the thread exits, just in case somehow there are two rehash threads exiting at the same time due to user
muppetry.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10811 e03df62e-2008-0410-955e-edbf42e46eb7
2008-11-22 16:54:32 +00:00
w00t
f432839202 Migrate oper commands to an std::set, add a set for privs also. Change the API a bit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10661 e03df62e-2008-0410-955e-edbf42e46eb7
2008-10-18 16:52:46 +00:00
brain
636a52312b Fix a rather nasty race condition revealed by my reading through the comments and enhancing them. Back when i did executeable includes, i placed a 'todo' in the code which said something along the lines of:
'we cant pass a User* into the config reader any more, because when the config reader thread finishes, that user may be gone and this will crash. Consider using an UID instead so that if the user vanishes, we can
detect this situation.' Of course, nobody ever did this, so i'm doing it now to ensure we dont come up against some particularly ugly race condition crashes!


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10569 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-20 21:46:56 +00:00
brain
552885befe More comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10568 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-20 21:20:15 +00:00
brain
bc770c5388 MutexEngine -> MutexFactory, more sensible name
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10385 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-04 11:03:58 +00:00