Commit Graph

107 Commits

Author SHA1 Message Date
Daniel Folkinshteyn
e23bd93ded Secure some more commands which take a regexp from untrusted user input.
Namely todo.search, note.search, dunno.search.
2011-08-12 18:13:27 -04:00
Daniel Folkinshteyn
2feaddba08 src/commands.py: make subprocesses raise an error on timeout, rather than return a string 2011-08-12 16:28:50 -04:00
Daniel Folkinshteyn
e4498664bb Fix error handling for subprocesses. 2010-08-08 00:39:51 -04:00
Daniel Folkinshteyn
27be9ceb74 commands.process: return immediately when terminating process, without having to deal with the queue.
otherwise, we have to block for $smalldelay between putting and getting the item, since queue putting is not instantaneous
and sometimes we would get 'nothing returned' instead of the timeout message.
2010-08-05 14:48:12 -04:00
Daniel Folkinshteyn
89cbc7efdf Some improvements to the commands.process function - better process naming and informational output. 2010-08-05 13:45:02 -04:00
Daniel Folkinshteyn
0c300162d8 Create a commands.process function which runs a function inside a separate process.
This is the only way to limit the execution time of a possibly long-running python statement.
Use this on String.re, due to the possibility of pathologically long re matching in python.
This allows us to remove the 'trusted-only' restriction on string.re.
In the future, this should probably be used in other places that take user-supplied regexps,
such as 'misc last --regexp', for example, as well as other potentially long-running tasks
that can block the bot.
2010-08-05 01:20:46 -04:00
James Vega
288d7c6e02 Update plugins to ignore all non-ACTION CTCP messages.
Also update commands.urlSnarfer to do the same, which allows us to revert
"Don't bother snarfing URLs from non-Action CTCP messages."

This reverts commit 3282e3407e.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-28 08:14:44 -05:00
James Vega
8a98653d3b Allow Banmask.makeBanmask to work when dynamic.channel is None.
This gives back the ability to generate a banmask based on the global banmask
settings instead of per-channel settings.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-01 10:26:08 -05:00
James Vega
56fbbe9f36 commands.py: Explain the odd userHostmask check in getOtherUser
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-23 18:29:49 -04:00
James Vega
459bc616b1 Reply with an error when getBanmask doesn't have a valid channel.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-02 07:40:33 -04:00
James Vega
260570bd4f Ensure getBanmask has a channel variable as per makeBanmask's requirement
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-09-01 23:29:42 -04:00
Štěpán Němec
2fa0f6dedc commands.py: Sort the items of the wrappers dictionary
(just to make it readable)

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-20 11:20:48 -04:00
James Vega
abb83d4863 Make getBanmask use protocols.irc.banmask.makeBanmask 2009-03-11 13:37:27 -04:00
Jeremy Fincher
d08eee8f13 Made httpUrl arg wrapper add http:// if that produces a valid http url. 2009-03-11 13:37:25 -04:00
James Vega
2f15eb2418 getHaveOp needs to call getChannel if state.channel isn't set 2009-03-11 13:37:25 -04:00
James Vega
a3e4fc5b1d Change the modeline to use softtabstop instead of tabstop. 2006-02-11 15:52:51 +00:00
James Vega
17afef9c30 src/commands: Change the rest context so that it raises an IndexError when no arguments are available.
This fixes the problem in Dunno (and any other plugin that uses plugins.ChannelIdDatabasePlugin) where calling the search command using only the getopts and no additional arguments will cause the command to fail and the help to be displayed.
2005-07-27 21:57:17 +00:00
James Vega
e4c9381f7b src/commands: Update first so that state.errored will not prevent the bot from responding when the first converter fails. 2005-06-13 17:27:15 +00:00
Jeremy Fincher
4da1f38235 Fixed the security issue nicktastic reported, and made sure that if, for some reason, an error doesn't raise an exception, it still stops the calling of the command function. 2005-06-01 20:13:33 +00:00
Jeremy Fincher
c1dcb47e3f Added another elucidating comment. 2005-05-30 19:20:17 +00:00
Jeremy Fincher
0b848199b5 Fixed some style issues with logging calls. 2005-05-18 04:18:35 +00:00
James Vega
994cff5c05 Update a couple missed changeFunctionName calls. 2005-05-16 03:25:43 +00:00
Jeremy Fincher
2394005cdd Moved utils.changeFunctionName to utils.python. 2005-05-15 17:17:26 +00:00
James Vega
9971e991fe Fix the modelines. 2005-03-23 20:07:45 +00:00
James Vega
aefcd594df Move structures to utils/ 2005-03-12 18:01:47 +00:00
Jeremy Fincher
fc2a18bdb3 Added a name= keyword argument for commands.wrap, to override the name of the method being wrapped. 2005-02-28 07:58:46 +00:00
Jeremy Fincher
4648360a04 Added op, halfop, and voice converters, and converted Channel to use them. 2005-02-24 09:59:21 +00:00
Jeremy Fincher
07814fc808 Fix for bug in first.__repr__. 2005-02-21 01:04:45 +00:00
Jeremy Fincher
156084c225 Fixed some bugs introduced with the latest refactoring of callCommand, etc. 2005-02-17 22:39:44 +00:00
James Vega
90c000793d utils.gen.* functions shouldn't explicitly be called since they're all in the utils namespace. 2005-02-15 13:57:57 +00:00
Jeremy Fincher
e53e237818 Better error logging for when commands.wrap fails to provide the right number of arguments. 2005-02-07 01:04:33 +00:00
Jeremy Fincher
978cf65453 Added an email converter. 2005-02-01 07:08:13 +00:00
James Vega
28cb5abc65 Update usage of functions in utils.gen. 2005-01-31 13:06:43 +00:00
Jeremy Fincher
70da904be2 States don't have a copy method. 2005-01-29 21:23:37 +00:00
James Vega
6f2aec352a Fix a bug where nickInChannel would add the channel to the args list. 2005-01-28 22:53:59 +00:00
Jeremy Fincher
e1fe232e9b Converted commands.py to use the new utils.web instead of webutils; fixed a bug in the httpUrl converter which rejected https protocols. 2005-01-28 14:51:25 +00:00
Jeremy Fincher
5fd6bbb52d Completely restructured our utils modules.
Tons of changes.  Here's the summary of things that matter most:

* There is no more supybot.fix.
* There is no more supybot.webutils; now there is supybot.utils.web.
  * It's no longer webutils.WebError, but just utils.web.Error.
* You shouldn't import itertools, ideally, but instead import utils.iter.
* No more using imap/ifilter in commands unless absolutely necessary.  It's
  premature optimization and annoying.
* utils.str.format isn't quite ready yet, but will be soon.  That'll be the
  next big thing to fix in our code.
2005-01-27 06:59:08 +00:00
Jeremy Fincher
5019d10a1b Updated license years. 2005-01-19 13:33:05 +00:00
Jeremy Fincher
8ca625d339 Initial import. 2005-01-19 13:14:38 +00:00
James Vega
dbfec8afb9 Add supybot module 2007-04-22 20:10:26 +00:00
James Vega
88a906df84 Fix a bug where nickInChannel would append channel to the args list. 2005-01-28 22:59:27 +00:00
James Vega
225c565aee Add/update supybot.databases.plugins.channelSpecific{,.link{,.allow}}
channelSpecific.link replaces channelSpecific.channel
2005-01-08 07:22:46 +00:00
James Vega
d97a652182 Need to actually add the channel to state.args if getChannel throws an exception 2005-01-02 02:34:54 +00:00
Jeremy Fincher
b9067089b1 Removed an XXX. 2004-12-16 09:30:45 +00:00
James Vega
cedd6a2b59 Add some Raise=True and a test for multiple replies from Misc.hostmask. 2004-12-15 17:54:33 +00:00
Jeremy Fincher
af1d04291d Reimplementation of channeldb converter, respecting the channelValueness of supybot.databases.plugins.channelSpecific, and turned supybot.databases.plugins.channelSpecific.channel into a channelValue so channels can link their databases to other channels. 2004-12-13 06:18:41 +00:00
Jeremy Fincher
1a63af3b26 Fix for bug #1081086. Be sure to read the reasoning in the bug itself. 2004-12-08 06:16:08 +00:00
Jeremy Fincher
640241bd11 Added networkIrc, owner, admin. 2004-12-07 06:39:52 +00:00
James Vega
864fd97315 Fix a getNick bug 2004-12-03 02:54:27 +00:00
James Vega
a71d074e46 cleaner implementation of getLong 2004-11-30 18:12:43 +00:00