751 Commits

Author SHA1 Message Date
brain
6ab0b94dce irc::tokenstream is a token parser which using std::string and std::vector builds a list of tokens using irc parsing rules.
e.g.:
:arse PRIVMSG #chan :foo bar baz
becomes
a[0] = ":arse", a[1] = "PRIVMSG", a[2] = "#chan", a[3] = "foo bar baz".

*** SOMEONE *** needs to optimize this or at least verify its neatness (without making it total craq and unreadable). Feel free to mess with my code.
Any optimizations you make, run them against the COMMENTED OUT TEST SUITE at the top of main() in src/inspircd.cpp and ensure ALL output is the same
with no crashes. (note: if you comment out and build with the test suite, all inspircd will do is output test data and exit!)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4396 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16 01:40:58 +00:00
brain
5454b47bd5 Removed GCC2 checks as we havent supported gcc2 for years
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4394 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-15 17:35:31 +00:00
brain
40ef7ec1b6 3.3 -> 3.4 fix (the 3.3 stuff was actually craq)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4393 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-14 21:29:23 +00:00
brain
d4ca01f12f Add <options:nouserdns> - defaults to off. if set to on, no user dns lookups are performed, saving resources
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4386 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-14 13:02:40 +00:00
brain
174169ac35 Rollback dns change
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4384 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-14 12:14:42 +00:00
brain
ccb1837a14 Fix dns socket leak found in stable
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4383 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-14 11:43:17 +00:00
brain
a8b71c68dd Tiny tiny docs update, not even worth re-generating the docs for atm
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4370 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-12 16:15:00 +00:00
brain
7b41936ce8 Document class Resolver
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4369 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-12 15:35:59 +00:00
brain
d4cb72e312 Make it work:
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4357 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-12 12:43:55 +00:00
brain
069fa0a472 Test framework in m_testcommand, add interface
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4354 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-12 12:26:58 +00:00
brain
b864f69ce9 Added class Resolver (needs testing)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4353 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-12 12:20:36 +00:00
om
ecec1067b4 Add single parameter versions of Extensible::Extend and Extensible::GetExt for storing boolean values, seckshayer
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4324 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-11 12:27:58 +00:00
brain
276b84df68 Move openSockfd[] into ServerConfig
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4322 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-11 10:03:09 +00:00
brain
b9d5841f8f ContentSize speedups
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4316 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 22:23:03 +00:00
brain
719f60cfc6 Add FileReader::ContentSize and FileReader::Contents
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4314 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 22:11:53 +00:00
brain
184b622025 Try to make this serve some static content
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4308 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 21:23:21 +00:00
brain
1b9da97971 Update docs to indicate new templated GetExt and Extend, remove references to char* and void* pointers in here, and indicate how its now possible to store a NULL in Extensible :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4306 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 20:26:42 +00:00
brain
57a5c3b9b3 Take out broken id
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4305 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:12:04 +00:00
brain
f6103acd92 Aaaand, fix the typo
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4304 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:09:19 +00:00
brain
d9174c0a19 Added refcount to classbase, static classbase::id
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4303 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:08:43 +00:00
brain
28b812bb33 I made a Boo Boo :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4301 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:04:16 +00:00
brain
df6c796c0a Deps weeding
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4300 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:02:52 +00:00
brain
ac39617c08 Inherit just about everything from classbase
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4299 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:02:06 +00:00
brain
62b550f653 Inherit tons of stuff from classbase that should always have been
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4298 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:54:25 +00:00
brain
7cca932bb5 Sort deps of base.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4295 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:25:17 +00:00
brain
0b1cf0e951 Sort include dependencies of dns.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4294 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:24:34 +00:00
brain
3dacf1edd2 Made a load more stuff Extensible which might be of use to someone
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4293 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:22:16 +00:00
brain
b9fbf3621c Properly set the resulting pointer to NULL when the object isnt found
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4292 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:13:07 +00:00
brain
9941a616cb If you ask me, it looks a hell of a lot tidier without forcing the cast.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4277 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 16:51:19 +00:00
w00t
91436d31a4 - userrec::ProcessNoticeMasks - provide a way to set or unset masks.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4276 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 16:04:06 +00:00
w00t
2816a3ff87 - Add usermode +n for notice masks - our implementation of snomasks. We're not sure how this will tie in with +s yet.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4274 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 15:20:41 +00:00
w00t
d2381df1f7 -Clone mode methods into notice mask methods for userrec.
- Modify userrec to add char [] of notice masks, works in the same function as modes.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4273 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 15:07:39 +00:00
brain
09b79e31b4 Add empty snomasks.cpp (still got to add headers here so the build doesnt barf on the empty file?)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4270 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 14:32:50 +00:00
brain
e2ca8e6131 Add interface to AddModeWatcher and DelModeWatcher into class Server
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4267 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 12:53:29 +00:00
brain
db75baa96d Added ModeParser::AddModeWatcher() and ModeParser::DelModeWatcher()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4266 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 12:46:03 +00:00
brain
b4cbd36f1c Finally finished documenting new mode parser. Lots of comments.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4242 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 19:22:04 +00:00
brain
de4a3f44b9 Fix whoopsies
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4239 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 17:59:42 +00:00
brain
04b29a4e89 Added Server::GetModuleName(), Module* to filename
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4238 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 17:56:43 +00:00
brain
b98c8c198c Reorder to avoid warning.
We could make the autotidy stuff part of the 'check argument' virtual method in banexception and inviteexception at a later date?


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4237 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 17:37:36 +00:00
brain
f16ef27e0e Altered u_listmode to have a constructor arg 'autotidy' which if set to true runs input through ModeParser::CleanMask() otherwise leaves it alone
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4236 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 17:36:30 +00:00
brain
49ef1162a5 Alter SetModeParam to take const char* to save on casts, notice a load of modules that arent setting the param or the mode inside the handler
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4231 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 16:40:58 +00:00
om
a09109f612 Okay..updates to u_listmode, general cleanups and add some virtual methods which subclasses can override to alter behaviour..all looking much nicer and more flexible now.
Update m_chanfilter to use u_listmode, demonstrates most or all of the new features of it and looks a hell of a lot prettier :)

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4201 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 11:59:07 +00:00
om
ceebdc9437 Add a parameter to set what config tag to parse (defaults to what was previously hardcoded); Some other cleanups using initialisation lists, and using a ConfigParser stack-allocated rather than keeping a persistent heap-allocated one; Remove hardcoded filename prefixes in log messages
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4200 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 11:07:21 +00:00
brain
f6fc729c72 Did some renaming so that the methods for modes in chanrec and userrec are identical.
bool IsModeSet(const unsigned char c);
void SetMode(const unsigned char c, bool value);
Fixed m_botmode for new api


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4194 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 21:37:16 +00:00
brain
5e5162341d Port m_blockcaps to new api, remove OnExtendedMode and OnDisplayList events entirely
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4191 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 21:12:22 +00:00
brain
793d2364d9 Convert u_listmode and m_banexception to new api
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4189 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 20:57:24 +00:00
brain
f88beda4d4 Remove Server::AddExtendedMode and Server::AddExtendedListMode, replace with Server::AddMode (makes more sense naming wise too as all modes are modes, all the same now)
NOTE: Modules that implement modes WILL NO LONGER COMPILE NOW UNTIL THEY ARE PORTED TO THE NEW API


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4188 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 20:14:57 +00:00
brain
4fa01bc07b Implement DisplayList virtual method calls, and implement it in cmode_b
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4185 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 19:46:55 +00:00
brain
9fb4cb8d33 Add usermode +o, with special checking so that an oper may only remove the mode not set it (on himself or others) -
Finish off facility for oper-only user and channel modes


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4183 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 18:37:01 +00:00
brain
5bbea4813d Added DisplayCurrentModes which will display the modes of a channel or nick
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4181 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 18:22:34 +00:00