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
brain
edd35ae3af
ability to create mutexes (rather than just having one system wide mutex) in the threadengines, allows for migration of m_mysql etc.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10381 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-04 10:06:59 +00:00
w00t
a1a7b96a8c
Match conversion stuff.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10216 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-22 16:14:36 +00:00
w00t
c16cda5d71
match() is no longer a function+no header, now a static method of InspIRCd class, blah blah blah. Also rip out the 1.2 matcher, as it was slow, and replace it with one adapted from znc, which happens to be a tiny bit faster than 1.1's (and the fastest I've seen so far that works properly)
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10212 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-21 20:56:16 +00:00
brain
2c5db1dfcb
add support for windows service. This now is part of inspircd itself being as we have native build. It doesnt quite work yet in all the ways it should.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10193 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-21 11:01:51 +00:00
w00t
ccfcdda274
Fix potential off-by-one on large reads (thanks psychon)
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10048 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-20 09:15:01 +00:00
w00t
ca781714c1
Fixes to some stuff that writes on memory it shouldn't (thanks psychon).
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10047 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-20 08:53:56 +00:00
w00t
6a016cb0a6
Fix broken build
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10044 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-19 21:56:01 +00:00
w00t
a67b9de174
Change modes in channels and users to use std::bitset instead of an array. This saves 56 bytes per channel, and 112 bytes per channel, with no loss in speed or ease of use in code. :). Thanks (VERY) much to Special for telling me about this.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10043 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-19 20:34:14 +00:00
w00t
21bb2f2acf
Combine IP+port in a failed port list, show (the more helpful) error string so the user can have some idea of what actually went wrong.. why we forced people to strace is beyond me..
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10030 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-17 20:07:58 +00:00
special
14e4768140
Applied patch by psychon to make AddExtBanChar correctly take a single char
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10024 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-16 09:50:23 +00:00
w00t
ac71a039c3
Add InspIRCd::AddExtBanChar() to avoid copypasta.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10017 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-14 11:53:07 +00:00
w00t
95538518b3
Add include/numerics.h, contains/will contain an enum for numerics. Work in progress.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10006 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-13 19:01:17 +00:00
w00t
97ef4d2d75
Remove a slightly odd comment
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9997 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-12 21:52:28 +00:00
w00t
feb6904d32
peavey already fixed this with climits include, remove limits.h. Keep the warning, though.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9996 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-12 21:49:45 +00:00
w00t
f8d9c51317
Pull in limits.h to fix PATH_MAX problems, thanks to Uli Slachter (psychon).. Not sure why this wouldn't work anyway, as we define it manually, but..
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9954 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-11 15:37:31 +00:00