1279 Commits

Author SHA1 Message Date
brain
2a5e6d416f And its all done and working!
(note, we still need to test cache expiry)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6253 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-07 21:37:06 +00:00
brain
f1ca6c6d71 DNS caching stuff (almost done)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6252 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-07 21:35:25 +00:00
brain
dac672cf30 DNS Stuff - this wont work right yet, it will soon (tm)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6250 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-07 21:16:03 +00:00
peavey
6b9eaeba41 Move all /WHOWAS related out of core and into cmd_whowas.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6249 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-07 21:14:17 +00:00
brain
9db7f13b0c Add TTL stuff to dns system (pass it to inherited objects)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6247 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-07 20:01:11 +00:00
peavey
b2f3ac1161 add internal cmdhandler that will make it easy to move stuff out of core and into a reloadable command.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6241 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-07 01:24:44 +00:00
brain
ca6434e44f Massive speedups for applying and checking perm xlines - matches_*line() now has a permonly optional param, and apply_lines can be passed an APPLY_LOCAL_ONLY.
Also, improve speed of config reading stuff when reading in the lines


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6223 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-04 18:53:31 +00:00
brain
2802a62272 Fix lusers breakage introduced by latest set of optimizations
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6219 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-03 20:58:21 +00:00
brain
42d5b9571e Fix to allow for OnRehash to know what user initiated the rehash
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6207 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-01 20:53:20 +00:00
brain
ba339f8b1c Add port type identifiers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6196 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-01 00:16:50 +00:00
brain
6a6f5b2275 Add missing feature: /rehash reinitializes dns subsytem (and can handle changed addresses)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6193 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-31 19:17:04 +00:00
brain
d3e3a13ae6 Cached GetFullRealHost etc.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6179 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-30 19:30:53 +00:00
brain
1aaa30bc9b Properly document support for libhamsters
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6177 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-30 17:43:26 +00:00
brain
fce2d243c0 Add unregistered user counter, this may also fix the (minor) m_conn_lusers shows current connection as unregged
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6170 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-30 14:34:49 +00:00
peavey
81c26039d5 Change description for insp_aton since only a positive return means convertion was a success.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6169 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-30 13:50:40 +00:00
brain
500a6b24b2 This doesnt need to be static
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6164 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-29 23:35:35 +00:00
brain
5e9a6b9186 Add counter system for umodes to get rid of some O(n)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6163 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-29 23:34:47 +00:00
peavey
79c0364d54 Add Template itoa to convert integer to char*
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6119 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-26 05:55:45 +00:00
peavey
f3f570b4fa Also add support for default values for ConfValueBool and ConfValueInteger in configreader, and for ReadFlag and ReadInteger in modules.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6116 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-26 01:48:55 +00:00
peavey
047f09dd57 Add possibility to define default value for ConfValue in configreader and ReadConf in modules.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6113 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-26 00:51:20 +00:00
peavey
7f6344e3ad Fix a bug in whowas that could desync list.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6091 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-24 04:01:45 +00:00
brain
b31a8ee0ad Add OnGarbageCollect method
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6086 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-24 00:42:22 +00:00
brain
74c8913f72 Hash rehashing change
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6080 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 23:06:37 +00:00
brain
6cc7cd76fb Close logfile on rehash and reopen (it was only doing this on sighup for some reason)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6079 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 17:08:02 +00:00
brain
f9ef034ef5 Fix exit in wrong place, and add new exitcodes.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6077 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 16:41:22 +00:00
brain
e04f190f63 Program termination (including SIGTERM) now calls InspIRCd::Cleanup() which does most of the duties performed by InspIRCd::Restart().
This means that on controlled shutdown we give the modules a chance to unload, etc, and close our sockets and free ram in a proper way.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6075 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 16:06:16 +00:00
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