1053 Commits

Author SHA1 Message Date
brain
529c6acc01 Unload as many modules as we can on restart, and close listeners
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6068 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 14:19:33 +00:00
brain
371daf9928 Refactored /RESTART (and added InspIRCd::Restart(reason))
Fixed bug in m_ziplinks, assigning instead of testing a var (gcc 4.1.1 picked up on this, 3.4 didnt)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6067 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 14:06:57 +00:00
peavey
089cf1f5fd change userrec int timeout to time_t since it's a timestamp made of TIME + users connection class timeout.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6066 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-22 22:02:50 +00:00
brain
79939d71ba Add ConvToInt() template to go with ConvToStr() that we've had for a while
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6064 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-22 20:45:38 +00:00
brain
49eabd1197 Refactor connect allow/deny lines
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6061 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-22 20:12:15 +00:00
brain
1c52b90e82 Refactor dns.cpp to use an array of request types rather than map, for O(1) lookup time
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6042 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-18 18:35:25 +00:00
brain
156d634231 Add this:
#define CMD_LOCALONLY CMD_FAILURE
so that when we say 'return cmd_failure to not allow spanningtree to propogate the message', the constant itself documents the code instead and is more readable.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6035 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-17 14:40:34 +00:00
peavey
3c14fd2155 Make RemoveCommand private.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6030 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-17 02:58:57 +00:00
peavey
3712db9cc6 Invented safe delete-while-itering for hash_map.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6029 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-17 02:46:47 +00:00
peavey
d7bc663d0a Config option added for prefixed channel NOTICEs and PRIVMSGs to turn on/off IRCU style of adding prefix to outgoing text.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6018 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-16 22:43:56 +00:00
brain
dbe93e4477 Add stuff so that the core catches CoreException properly
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6017 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-16 21:40:06 +00:00
brain
e65c1d261c Add an optional parameter to ConfigReader::ReadValue which defines if we want linefeeds or not.
Tidy up some duplicated code in configreader (error reporting)
Change ModuleException to inherit from CoreException, have the configreader throw and catch its CoreException on fatal error


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6013 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-16 21:04:47 +00:00
peavey
d7d188e1c5 Make irc::spacify take 'const char*' instead of 'char*'
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6006 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-16 02:54:16 +00:00
w00t
696ee9ff66 And now, just to force you to recompile the *whole* ircd.. updated headers on the headers. :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5998 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 22:18:59 +00:00
w00t
a7cbd51d45 Still more massive commit fun. Headers in include/ still to be done, else that's it.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5997 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 22:03:27 +00:00
brain
457362304b Cleaning up irrelevent stuff in channels.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5993 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 17:32:16 +00:00
brain
4652f73b9e CPU Usage percent in stats z! yay!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5988 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-14 19:30:42 +00:00
brain
a78cecbeb9 Refactor userrec::chans.
Old way: A vector of ucrec, MAXCHANS in size by default populated by NULLS, so you have to scan the vector to find an empty slot when joining a user, parting a user etc
New way: std::map<chanrec*, char> (the char holds their basic core permissions on the channel [voice, halfop, op])
This increases speed a ton, and removes some wtf-age.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5986 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-14 17:46:47 +00:00
brain
6bd9e67851 Change m_watch to use hash_map rather than map, because of the large number of entries we deal with it will usually be faster
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5979 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-13 20:07:08 +00:00
brain
f240285155 Improve the way 005 ISUPPORT is sent to users when they connect, cache it in a much more sane format which is much simpler to spool to them
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5978 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-13 20:00:33 +00:00
brain
1c84dff59d Improve how we handle ELINEs on connect, turn O(2n) into O(n) (thats the best we can do with g/k/z/q checks for now :( )
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5968 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-12 23:21:51 +00:00
brain
3679c5ebb7 New clone counting mechanism (this isnt tested yet)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5967 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-12 22:51:38 +00:00
brain
33530c338c irc::string assign(std::string&)
std::string assign(irc::string&)
soooo:
irc::string foo = assign(my_std_string);
:p


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5956 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-11 23:56:22 +00:00
brain
540fee57bf Add InspIRCd::UseInterface and InspIRCd::DoneWithInterface, and also InspIRCd::GetInterfaceUseCount().
These can be used for one module to lock other modules in memory that it depends on, this way they can
enforce an unload order so that you cant (for example) unload m_ssl_gnutls.so whilst m_spanningtree.so
is using it for ssl server to server sessions (in this case, youd have to unload spanningtree first,
THEN ssl_gnutls, to satisfy the dependencies and unload orders)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5924 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-10 22:17:51 +00:00
brain
0471fe2677 Removal of AES, this is no longer required. (This also eliminates code that isnt ours, and was some public domain crap)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5915 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-10 15:51:31 +00:00
brain
f559b94fa3 Add the stuff required for the InspSocketHook interface
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5890 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-09 19:25:10 +00:00
brain
768171fef9 Add OnRawSocketConnect, we've not had it till now because we've not needed it :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5887 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-09 18:49:36 +00:00
brain
dfa831752c Not yet tested -- allow iohooking of inspsockets
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5886 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-09 18:36:24 +00:00
brain
b57568ecc4 Bad w00tie bad, /who isnt checking +s for channel /who!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5883 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-07 23:00:43 +00:00
brain
3daff89138 Document FindInterface, PublishInterface, UnpublishInterface, fix a bug where the interface wasnt removed when it was decremented to 0 implementing modules
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5874 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-05 21:19:19 +00:00
brain
c3a7fb47d6 Untested, undocumented PublishInterface, UnpublishInterface, FindInterface.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5867 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-05 20:43:41 +00:00
brain
8f385c3006 This has changed again, i suggest you dont bother trying to keep up till im done :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5863 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-05 19:50:10 +00:00
brain
2ade6284f9 Change this a LOT.
<oper blah.... hash="md5|sha256" pass="blah...">
It will now only check pass if you put the hash= in, people have been bugging for this for a while.
note the m_oper_hash module will try and detect both m_sha256 and m_md5 now, and will provide /mkpasswd that can do either.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5862 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-05 19:36:26 +00:00
special
1abbafc07a Added InspIRCd::GetTimeDelta() - previously m_alltime was using a hack to get the delta, which wasn't always reliable
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5827 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-29 22:41:41 +00:00
brain
9f34f8d94e BuildExemptList is becoming pretty ugly. grr.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5819 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-27 17:45:16 +00:00
brain
439cff2dc8 Add OnBuildExemptList, which is used to build an exempt list when passing a privmsg on, but not directly processing it (m_spanningtree etc)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5818 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-27 17:19:28 +00:00
brain
ee3a514fe2 Add exception lists to OnUserMessage and OnUserNotice, to be used for smarter routing of messages in spanningtree amongst other things
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5817 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-27 17:03:47 +00:00
brain
0e8a718038 Update comments to reflect new API
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5807 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-26 18:12:50 +00:00
brain
2e52ff280d Add extra parameter to OnUserPreNotice and OnUserPrePrivmsg, CUList &exempt_list, a list of users NOT to write to. By default it just contains the sender, you can add more.
This also bumps the module api version by one. added "CUList fixme" to peaveys module just so it builds, as this will be refactored to use the new feature that was just added :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5806 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-26 18:04:47 +00:00
special
1c912588dd Removed <options:tempdir> - this hasn't been used since modules were updated to not copy before load (quite awhile ago)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5785 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-22 04:29:51 +00:00
peavey
06fd57cc35 fix for bug #175, change OnUserRegister to return int, and if greater than 0 = user was quit and stop propagating to rest of loaded modules. Also bumb the module API version.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5783 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-21 23:22:04 +00:00
brain
7159842998 Fix all the _FORTIFY_SOURCE warnings except "punned pointer".
We CANNOT fix this, as it is the recommended (and only) way to dlsym a symbol from a .so file.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5770 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-19 00:43:35 +00:00
brain
e8722fcff8 Change from dos to unix line endings (how did these get in here?)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5765 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18 17:31:01 +00:00
brain
e315b86451 bits_size must be protected, not private
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5764 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18 01:14:05 +00:00
brain
023350a03f Add \code and \endcode tags for doxygen
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5763 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18 01:05:36 +00:00
brain
96495c2009 Fix a major whoopsie in that class i just added. It must be derived using virtual methods, because each TYPE of bitmask must have its own static allocation of flags. See the (long winded) comments.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5762 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18 01:03:47 +00:00
brain
77300844a4 Reduce size of max number of bytes in a bitfield from a 4 or 8 byte field to a 1 byte field (unsigned char).
This still allows storage of 8*255 bits, which is MORE than enough (for the interested, its 2040 bits)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5761 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18 00:32:35 +00:00
brain
8827eca1da Properly document irc::dynamicbitmask
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5760 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-18 00:08:46 +00:00
brain
bc8ba059b9 Fix this so it works, passes test case. Provide a method to query for a bit and to return the total size in bytes of the bitset
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5758 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-17 23:51:35 +00:00
brain
11f7397023 Add irc::dynamicbitmask class. Feel free to take a look and offer suggestions, as far as i can tell its about as efficient as im going to make it.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5757 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-17 23:23:32 +00:00