brain
5e1f2c1728
In prep for remote includes, configuration reading is now two-pass.
...
Note that theres an important part missing from here, there can be a NON-BLOCKING delay between the start of pass 2 and the files being available for download.
At this point, ServerConfig::Read() should probably return an ENOTREADY or such at which point it gets monitored for ready state. The socket engine is ready at this point
so we can poll the socket engine for it. In the case of startup, the socket engine blocks in a private loop, its no good booting the ircd till we have a complete config!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8565 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11 17:01:00 +00:00
brain
7eebbe7da1
Implement roadmap item: "userrec::HasPermission -> map of maps, for (even faster) access"
...
This is not a map of maps, but a single level map per oper, in non-opers this member is NULL.
Please note that this is not yet tested.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8564 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11 15:44:43 +00:00
brain
7336f449eb
Fix crashes from badly written safeiters
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8563 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11 12:41:03 +00:00
brain
ba79ba9fc1
Make iterators safe in FOREACH_MOD etc macros, so that ModuleManager::Detach() wont screw up the iterator
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8562 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11 01:29:50 +00:00
brain
abc959a04d
m_spy no longer implements SPYNAMES, instead it overrides normal NAMES on the event that: (1) you are an oper and (2) you are not actually ON the channel.
...
This way it will not break m_auditorium, m_delayjoin etc, however it will work properly with mircs annoying assumptions in its channel list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8555 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-10 16:19:46 +00:00
brain
b94c45340e
Roadmap item "Fix jointhrottle to not try 'throttle' clients during a netmerge (requires changing join event to be aware of netmerge?)" -- 1.2 only
...
requires an extra parameter to OnUserJoin, bool sync. usually false, but FJOIN code during burst sets it to true.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8552 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-09 21:51:48 +00:00
brain
91a3d1324b
Rehash method added which frees unused memory from the hash_map. Has a delete-safe iterator. see comments.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8542 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-05 19:52:16 +00:00
brain
477681996b
Why the hell the includes are half way down the damn file in modules.h is beyond me. lets fix this.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8541 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 23:33:40 +00:00
w00t
880ae2dab1
Integrate K/Gline into the bancache system by making some modifications to DefaultApply method. This means any type of XLine that uses DefaultApply can hook into the bancache system and add positive hits quickly and easily with no modification, which is neat.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8538 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 23:04:47 +00:00
brain
198cc96a62
And whoops, typo
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8534 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 22:16:30 +00:00
brain
6fa2633311
Fix these to use new hook system (u_listmode wasnt fixed yet)
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8533 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 22:15:46 +00:00
brain
71b7b578bd
Get rid of global_implementation[] and implement_lists[] from here
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8532 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 22:07:36 +00:00
brain
a3b4110d51
Instead of a vector of vectors, use an array of vectors as in the original spec on Development/Hooking.
...
This is faster, as only the inner list resizes, and this avoids calls to std::vector::operator[]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8531 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 21:57:27 +00:00
brain
12b9855339
Honking huge commit. Removal of DELETE() template that never worked right anyway
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8527 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 21:24:40 +00:00
brain
38d5fd9b40
Comments
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8526 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 21:19:29 +00:00
brain
ad9715ffd1
MODERR tidyups
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8524 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 21:07:54 +00:00
brain
d2858a7fef
Remove some now redundant if (!empty) checks in FOREACH_MOD
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8520 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 20:10:20 +00:00
brain
d6a3643a4b
Remove no longer required typedef
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8517 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 19:52:41 +00:00
brain
43d2d6ec89
Comment all the new stuff
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8516 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 19:49:36 +00:00
brain
e1efa862f3
Not yet tested: remove last vestiges of modules[] and module_names[] arrays.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8514 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 19:28:22 +00:00
brain
7fe5347210
Remove our vectors of Module*/ircd_module*, replace with a map of std::pair<ircd_module*, Module*>
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8513 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 19:12:55 +00:00
brain
9b131bef32
More craq
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8507 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 16:50:50 +00:00
brain
02ce802257
Bring back Prioritize (needs to occur after module load) with a different declaration
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8499 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 16:23:06 +00:00
brain
2facf72164
Next part of Development/Hooking (see wiki)
...
Module::Prioritize and Module::Implements are now GONE.
ModuleManager::MoveTo, MoveBefore, MoveAfter, MoveFirst, MoveLast are GONE too.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8498 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 15:39:06 +00:00
brain
bf44023d11
Development/Hooking in full swing now: WARNING, this will break ALL modules for the time being until complete!
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8497 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 15:29:49 +00:00
brain
c0abad9948
Add EventHandlers structure for Development/Hooking
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8496 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 15:06:21 +00:00
w00t
9f936a7830
Instantiate BanCache in InspIRCd class.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8491 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 13:23:15 +00:00
brain
cce3669a3a
Make bancache compile on windows
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8490 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 11:04:03 +00:00
w00t
ae888e9cf9
Remove some unnecessary headers from places, commit working BanCacheManager skeleton. Work in progress, ignore it for now. Doesn't do anything, either.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8487 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 00:44:28 +00:00
brain
4d85db12ae
You'll hit yourself w00t. You left the ; off both the class decls :p
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8486 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-03 22:56:40 +00:00
brain
98d5ac1394
Remove needless headers from typedefs.h
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8485 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-03 22:55:14 +00:00
w00t
b104fdfe8a
This won't work yet.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8484 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-03 22:53:51 +00:00
w00t
841dc636d1
Add bancache.coo/h. Nothing in them, yet.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8483 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-03 21:19:39 +00:00
brain
335a65f418
More anal config parsing, validates channel fields, ip address fields (with/without wildcard) hostname fields, fields which may not contain spaces
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8474 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-03 16:14:29 +00:00
brain
f2b187052b
Comment documentation for all the new shizzle
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8467 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02 16:36:11 +00:00
brain
17a80c5a8e
Hopefully fix the bursting of xlines to work again (even with unknown types) and also add facility to enumerate them
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8461 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02 14:01:55 +00:00
brain
5028040d96
Move lookup_lines to private, theres no need for it to be public any more
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8460 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02 13:46:51 +00:00
brain
5ecd5447d0
Tidy up, and make the identifer for a line type be std::string not char
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8459 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02 13:45:02 +00:00
brain
68b55aa455
XLines now only checked for expiry on positive hit. saves us a honking big O(n) loop.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8458 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02 12:51:22 +00:00
brain
786093b751
xline gutting, once more. There is no longer an active_lines vector, and no requirement for sorting. Expiry will be cheked on a per-line basis for each positive hit on that line,
...
saving on cpu time.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8457 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02 12:35:18 +00:00
brain
5315db41ad
There, i think all thats now left is matches_*line which we can do with two overloaded methods Matches(const char type, const std::string &pattern) and
...
Matches(const char type, User* u)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8450 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 22:16:42 +00:00
brain
6236cf5891
Add XLine::SetCreateTime that removes gline_set_creation_time and friends
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8449 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 22:15:03 +00:00
brain
4e5bd889d9
Fix (?) stats chars
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8448 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 22:00:25 +00:00
brain
0ade30b8bc
This *should* fix expiry. Can someone else (w00t? :p) test for me, and check im not committing something thats a pointless exercise in futility? :P
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8447 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 21:43:56 +00:00
brain
c45fe6715d
Fix up to pass User*
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8442 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 19:51:03 +00:00
brain
b3f562c11d
Forward decl
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8441 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 19:37:07 +00:00
brain
6fb9ea5765
Remove all the OnAddGLine, OnAddWhateverLine replace with one simple OnAddLine and a OnDelLine which is passed User* (person adding or NULL if its the server) and the XLine
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8440 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 19:36:38 +00:00
brain
21f9acdb6c
Add factories for other types
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8439 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 19:31:51 +00:00
brain
31eaefa6a6
Add factories for eline and gline as tests
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8438 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 19:26:26 +00:00
brain
3cf7620e91
Add XLineFactory stuff.
...
The idea is, a module or the core can register a class derived from XLineFactory. This class's job is to handle creation of an 'unknown' xline type given xline-specific mask data
(e.g. "*@host*" or any other such text) and a line type, currently char (i DO plan on changing this!!!). This way, spanningtree and friends can create an xline without knowing
its full details just by passing what all xlines share in common and a bit of semi-opaque metadata.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8436 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31 19:03:28 +00:00