194 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
peavey
41f62a2a3b add <whowas> config option to control whowas behaviour. *may break*
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5731 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-13 00:45:37 +00:00
brain
b3c2abf41e When some (but not all) of the ports fail to bind on startup, give the user a list of the failed port/ip pairs on the terminal.
Other ircds dont do this, and say 'go read the log'. I say if we can output them to a log, why not the screen? :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5728 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-12 22:58:48 +00:00
special
1fbd75d645 Added time syncing! This is fairly simple - servers exchange timestamps and use the lowest - but should get rid of the annoying bounces for those of us who can't depend on ntpd.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5649 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-05 00:47:08 +00:00
brain
026c55cafc As requested by satmd, inspircd will now run with no client ports configured
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5643 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-04 13:20:42 +00:00
brain
89a8a819fa New events for special. Event id's "new_server" and "lost_server". The data is a pointer to a char* containing the server name.
Eventally, i might expand this to include more data about the server such as its 'gecos' field etc, but not just yet. Let me know what data you want first.
Event source is valid and will point at the protocol module.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5623 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-01 17:38:35 +00:00
brain
193b540aa7 Socket error state stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5607 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-31 20:32:01 +00:00
brain
94db28f9b3 Add 'dest' parameter to OnWhoisLine, contains the user being whois'ed (we need this for +H and probably the stuff w00t is doing too)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5573 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-28 18:41:34 +00:00
brain
034f74a23b Add support for OnWhoisLine, which allows modules to change or drop any line of whois before its sent to a user
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5570 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-28 18:12:45 +00:00
brain
3552971818 Needs more testing but seems to work: In DoBackgroundUserStuff(), calculate the time value of when we actually do need enter the function body again, and dont run function body again till that time
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5568 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-28 17:19:55 +00:00
w00t
cae372d1eb Remove deprecated -nolimit and -notraceback options
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5338 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-26 17:04:39 +00:00
brain
b9e99da4da Snomask support cometh! and it leave a sticky white mess all over the floor :(
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5062 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-29 18:26:55 +00:00
brain
104cf9cbee Note: connect() cant time out for inspsockets in this commit. They'll sit in memory forever -- if you want something actually working properly wait for the next commit
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5040 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-28 13:01:19 +00:00
brain
8cd26c0ff3 Make it virtual, in case someone ever wants to make a derived version of it
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4986 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-19 00:51:13 +00:00
brain
e3b9387237 Extra comments about how the FileLogger class schedules its own write events if all the data is not written
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4985 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-19 00:50:11 +00:00
brain
2ed8e1820f Make DELETE inline so its about as fast as the define it replaced
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4975 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 23:27:24 +00:00
brain
c2bc7f1636 Change #define DELETE to a template
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4974 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 23:13:14 +00:00
brain
65e33571de Change comment
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4973 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 22:55:08 +00:00
brain
5adcab2223 NONBLOCKING LOGGER!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4971 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 22:01:26 +00:00
brain
d546725cb6 Move lowermap[] into a pre-initialised const array in hashcomp.h,
get rid of InspIRCd::MakeLowertab()


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4951 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 15:59:23 +00:00
brain
e381b06561 EventHandler class, an abstraction for raw i/o
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4941 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18 01:08:14 +00:00
brain
48291aaee5 This commit is dedicated to Boo ;-pppppp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4911 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12 17:36:08 +00:00
brain
5d59031ee3 Document command_parse.h and CommandParser class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4903 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12 00:51:35 +00:00
brain
6050df73f4 Just to mess with om's head, remove helperfuncs.h from everywhere
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4900 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 23:31:13 +00:00
brain
3f6d53996f Just about enough docs to rebuild the docs page now
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4896 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 20:16:22 +00:00
brain
be8d814737 Documented all of the functions in a basic manner here. More detail to follow
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4892 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 18:41:32 +00:00
brain
420e1c25d2 More comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4891 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 18:22:20 +00:00
brain
15f58df9fd Tons of comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4890 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 17:01:35 +00:00
brain
cfb2c2fff4 CamelCaseRocksSoMuchICamelCasedAllTheMethodsOfClassInspIRCdSoThatItAllLooksNeat.
NowSomebodyHasToSpendHoursDocumentingAllOfThisIWonderWhoThatWillEndUpBeing...


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4889 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 16:14:44 +00:00
brain
7775a195d9 Move remaining functions:
operstrcmp*             commands.cpp            InspIRCd::operstrcmp()
duration*               commands.cpp            InspIRCd::duration()
host_matches_everyone*  commands.cpp            InspIRCd::host_matches_everyone()
ip_matches_everyone*    commands.cpp            InspIRCd::ip_matches_everyone()
nick_matches_everyone*  commands.cpp            InspIRCd::nick_matches_everyone()


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4888 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 15:14:39 +00:00
brain
187c9208f1 Fix FOREACH_MOD macros
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4881 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:28:57 +00:00
brain
d174657167 Now two types of log macro, log() and ilog(). log() assumes an InspIRCd object called ServerInstance, ilog() takes an InspIRCd object as first param.
TODO: Run a regexp over these, using perl, to translate them into InspIRCd::Log calls and then eliminate the macro :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4879 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:15:03 +00:00
brain
312d49abb0 Move all of the xline stuff into class XLineManager, make an instance of it in class InspIRCd and use it
(eliminates another extern)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4878 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 11:06:40 +00:00