118 Commits

Author SHA1 Message Date
brain
32d9979d48 Fix (tested) for failing dlsym on win32
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7051 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-19 22:28:11 +00:00
w00t
9cf56d917d Windows support. Tested and working to compile on freebsd and linux. Next step is to make sure it actually works in windows too. ;p. Add Burlex to contributors.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7043 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-19 15:56:42 +00:00
brain
91eebe370c Change the way i/o lines are formatted in debug log to make them more intuitive. Now includes a C or S to say if its client or server, plus the fd:
Thu May 17 17:56:16 2007: C[15] -> :Brain MODE #test
Thu May 17 17:56:17 2007: C[15] -> :Brain WHO #test


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7039 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-17 16:54:33 +00:00
brain
98b4acdb3f Add a progress meter for loading of core commands, fix broken implementation for <disabled commands> with a module command, as discovered by Casey in bug #293
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7038 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-16 21:41:48 +00:00
w00t
e6fa614ad2 We've had an IS_OPER macro for a long time. About time we started using it, maybe? :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6990 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-12 16:22:35 +00:00
brain
f15165b49a we typedeffed nspace::hash_map<std::string,command_t*> to command_table ages ago.
Now its time we used it! command_table::iterator is far neater than nspace::hash_map<std::string,command_t*>::iterator


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6907 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-07 18:51:47 +00:00
brain
26095e43d9 Proper fix for clients that send a nickprefix on their commands (the rfc says they shouldnt but also says that the ircd should discard it if they do)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6881 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-04 20:11:52 +00:00
brain
0ff8bc01c2 Don't send SYNTAX to clients which havent registered fully yet. Nothing says we cant but its a bit 'odd' and may break something
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6795 e03df62e-2008-0410-955e-edbf42e46eb7
2007-04-14 23:39:41 +00:00
brain
f9110f02e7 We had to roll our own time function because some craqsmoker thought having a carriage return on the end of ctime and asctime was a great idea, and the only other solution is to fanny around with
strftime.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6749 e03df62e-2008-0410-955e-edbf42e46eb7
2007-04-06 19:18:08 +00:00
brain
821a5bca88 Fix for bug #199 (Feature request) submitted by owine. Ended up adding an extra parameter to <uline> for this.
It turned into a biggie :P


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6742 e03df62e-2008-0410-955e-edbf42e46eb7
2007-04-05 23:53:01 +00:00
brain
5870145ac2 This needs some general QA-ing. Add support to new parser (introduced in 1.1) for empty final params (just the colon)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6731 e03df62e-2008-0410-955e-edbf42e46eb7
2007-04-02 22:11:14 +00:00
brain
ddb970dd67 1) Fix for nickname overruled with new cullList stuff -- we have to change their nick, its not safe to quit them as it messes up the nick hash.
2) Add a mute flag for users, so we can drop commands from users who have been placed on the cullList. This is independent of the actual cullList and can be
used as a general mute flag e.g. by shun modules.
3) Fix /kill to also not quit the user immediately, remove need for CMD_USER_DELETED return anywhere in the code.
*** THIS NEEDS TESTING BY QA ***


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6596 e03df62e-2008-0410-955e-edbf42e46eb7
2007-02-19 08:38:26 +00:00
brain
44d4833d86 Remove some debug here, cuts down boot output
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6364 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-17 17:58:24 +00:00
brain
2d8fb5d579 Change the format of some debug
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6354 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-15 23:04:50 +00:00
brain
9206364b1c Tidyup
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6103 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-24 18:38:29 +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
f5f71bdfef Cut down on debug on restart
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6073 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23 15:04:14 +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
brain
0632c7946c When receiving an FJOIN, if we have no local users, dont send deops, this just contributes to pointless server noise
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6028 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-17 02:18:03 +00:00
w00t
1552f3918a Jesus, look who's the commit whore today. More header updates, and removal of namespacing.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5996 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 21:45:30 +00:00
brain
f4be97d195 (1) make command reloads be announced to opers
(2) change loadmodule and unloadmodule to say WHO did it, like with /reload


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5885 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-07 23:14:23 +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
peavey
c36a1534cf fix small typo (also doubles as test commit)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5685 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-11 13:18:23 +00:00
brain
e4694e4675 Oops, add special-case for user killing themselves (their userrec is gone when the function returns)
Also put checks in LoopCall to check that the user didnt vanish half way through the comma seperated list, if they did, abort at that element of the list.
This means if your nick is 'a' and you do "/kill b,c,a,f,g die" only you, b and c will be removed from irc. (this is to be expected, really)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5684 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-11 12:15:11 +00:00
brain
506137fa75 Whoops, make targets case insensitive when cutting down a comma seperated list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5656 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-05 14:06:10 +00:00
brain
8d57be001c Smart voodoo to weed out duplicates in a comma seperated list for LoopCall. voooodooo!
Thanks for the suggestion of using std::map, w00tie :)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5647 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-04 20:35:30 +00:00
brain
6a582ef38e Fix comma-seperated list handling by CommandParser::LoopCall, should fix /amsg etc.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5644 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-04 16:54:43 +00:00
brain
4c19dfeed8 Revert special's sqloper change, nice try but only half a biscuit.
With the old fix, it would echo out all the oper failure notices first then try again, annoying all the opers.
The new version uses a CommandParser method i added, to again use OnPreCommand, halt the /oper command, but after doing the sql lookup call the original handler of the OPER command with the original user and pass, so the original handler handles the definitive failure message.


DAMNIT STOP COMMITTING


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5636 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-03 08:30:37 +00:00
brain
677c569364 Remove some debug
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5602 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-31 17:50:26 +00:00
brain
24dfb05a86 Mini security audit
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5333 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-25 21:58:32 +00:00
brain
3a7dd5b129 Add const std::string &original_command to OnPreCommand and OnPostCommand, which gives the entire untouched command string and params in all its colon-ny glory
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5265 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-17 14:01:53 +00:00
brain
5c53f05f76 If inspircd crashes in std::string destructor in CommandParser::ProcessCommand, take away all std::string's to make the bug manifest elsewhere, so maybe we can spot it
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5232 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-13 20:29:53 +00:00
brain
c06d4197af Special check in cmd_quit and cmd_kill and special return value CMD_USER_DELETED, to prevent theoretical segfault (this isnt the bug youre trying to find, pip)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5230 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-13 20:07:19 +00:00
brain
afd808e442 Stop gcc prerelease (PRERELEASE? YEAH REALLY, WE HATE YOUR GUTS DEBIAN) from bitching about using ++ within an expression
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5197 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-10 15:11:49 +00:00
brain
c95593578c Remove debug output
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5190 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-09 17:43:36 +00:00
brain
19b34cde73 I'll give you ##TOAST, :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5189 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-09 17:42:56 +00:00
brain
ecd5b4082a Finish off the fix for bug #136 (a biggie for such a simple thing)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5151 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-06 18:20:02 +00:00
brain
71ad308979 All commands now return results CMD_FAILURE or CMD_SUCCESS
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5150 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-06 17:58:59 +00:00
brain
13aeb82ad2 Proper error checking on loading cmd_*.so files
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5122 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-03 00:58:09 +00:00
brain
1c4abcfda1 Remove the shared object pointer from the hash after each reload
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5121 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-03 00:48:12 +00:00
brain
540f3bd9da Add /RELOAD and move cmd_mode into its own command.
/RELOAD is the only thing you cant reload (ahem)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5119 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-03 00:44:11 +00:00
brain
1b7c615062 Auto loading of commands as shared objects via dlsym (very lightweight interface, just expects a command_t* pointer)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5118 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-03 00:09:38 +00:00
brain
d54fd9b1e6 Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include lists
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-30 09:03:03 +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
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
e84bf9f3ec Change to using Instance->Log (InspIRCd::Log) rather than log() macro
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4880 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 12:26:07 +00:00
brain
76ebc88ccd extern time_t TIME -> InspIRCd::Time()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4873 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 09:23:46 +00:00
brain
66098d307c (Bigger than it looks, i did this with perl inplace edit) -- commands now take an InspIRCd* param to their constructor, so that you can do stuff within them without an extern
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4862 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11 00:15:07 +00:00
brain
f9636a2eff So much stuff changed in this one, i forgot most of it.
Oh yeah, main thing is ModeHandler and ModeWatcher classes now take an InspIRCd* to their constructor


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4858 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 22:40:57 +00:00