321 Commits

Author SHA1 Message Date
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
peavey
bf0c9c494b include limits to get correct PATH_MAX where available
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9942 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-01 18:04:35 +00:00
brain
d15b915ef5 Defined too early
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9909 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-15 11:57:01 +00:00
brain
d62febcf8f Define PATH_MAX if its not already defined
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9907 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-15 11:53:04 +00:00
pippijn
8a51d8969c revert for now..
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9899 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-12 21:09:04 +00:00
pippijn
6f76451a5c we are C++, not C
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9897 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-12 21:04:10 +00:00
pippijn
cf6ba58008 optimise string-to-literal comparison while we are at it
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9896 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-12 21:00:48 +00:00
brain
b3e3b1f14e Now builds ok on gcc 4.3, not tested fully. Also UGLY, oh we hate you GCC, why couldnt you just use TR1 from the start???
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9894 e03df62e-2008-0410-955e-edbf42e46eb7
2008-06-12 19:29:42 +00:00
brain
7d7250484c First phase of conversion to dynamic limits on all the lengths, configured via the <limits> tag
(the tag isnt there yet, these all just run on defaults in the class constructor)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9802 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-25 17:30:43 +00:00
w00t
ba0d375f7a char -> std::string conversion
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9777 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-20 15:34:10 +00:00
brain
ffbd1eebf0 Conversion of command handler params from "const char* const* parameters, int pcnt" to "const std::vector<std::string>& parameters". All of core is converted, but cant test it till the modules are converted.
IMPORTANT: The mode parser public calls have had to be tweaked a bit to also use the string vector. Note that this makes a LOT of our core a bit messy and paves the way to convert a lot of stuff from the mess
of .c_str() calls to using std::string params directly.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9608 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-04 21:37:36 +00:00
brain
dd73789134 Port a bunch of methods of InspIRCd to functors. IsChannel, IsSID, Rehash.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9474 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-13 03:28:56 +00:00
w00t
eb2e28b0cf Remove deprecated InspIRCd::Log() method so people don't use it etc
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9320 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-04 15:40:33 +00:00
brain
e48c7e038a Add basic stuff for protocol interface and implement a couple of the methods. It's all in ServerInstance->PI for calls from other modules/the core
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9297 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-04 12:30:38 +00:00
w00t
519d8e5dfe Better generation. This is still fucked up, but less spectacularly and in a much less obvious way.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9260 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-02 11:48:54 +00:00
w00t
9fcf4c08a1 Unneeded
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9255 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-02 08:54:43 +00:00
aquanight
58385dd458 Commit -Wformat=2 -Wmissing-format-attributes, printf-like functions in inspircd now get treated like printf (meaning compile-time check goodness) in GCC
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9217 e03df62e-2008-0410-955e-edbf42e46eb7
2008-03-30 02:48:54 +00:00
brain
43a376fd68 Fix the warnings that are worth fixing, ignore the rest of gcc's nannying
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9117 e03df62e-2008-0410-955e-edbf42e46eb7
2008-03-17 17:28:54 +00:00
brain
d16efdba4a Left out CoreExport
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9047 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-26 23:05:58 +00:00
brain
b119a88b55 Allow for 'bail' and 'user' parameters to rehash thread
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9022 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-24 17:45:21 +00:00
brain
d43120ca4a First part of my evil empire! BWAHAHAHAHAHAHAH...HAHAHAHA...AHAHAH *cough* err i mean... remote includes (BWAHAHAHA)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9013 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-24 14:09:02 +00:00
w00t
29b51086b9 Nuke TIMESYNC from orbit \o/
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8998 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-22 16:40:02 +00:00
brain
dd36852a52 Wheee, mass commit! this adds const stafety, throwing a compile error if anyone does: "parameters[n] = blahvar;" in a command handler etc. where they REALLY SHOULD NOT fuck with the value and should
copy the pointer.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8971 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-20 19:07:07 +00:00
brain
bfaf7e3b27 Commit patch from danieldg that makes a ton of stuff const-safe for latest warn-happy trigger-happy gcc4 (thanks)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8922 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-13 18:22:19 +00:00
w00t
bfff1d9d93 Implement LogManager::CloseLogs() to give logstreams a chance to clean up on rehash or exit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8863 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 20:15:09 +00:00
w00t
af7e1a1ca8 New logging implementation. Also write messages about InspIRCd::Log() being deprecated. Any takers on changing it all to use the new system? :P. STILL TODO: create <log> blocks in config, add a method called to 'cleanup' (or use destructor) of logstreams, add a method to logmanager to initiate destruction of all logstreams.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8858 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 12:41:17 +00:00