Commit Graph

2721 Commits

Author SHA1 Message Date
Daniel Folkinshteyn
6dbbb8d06e core: force inet_aton argument to string to prevent occasional error on reconnect.
it /should/ always be a string anyway, but sometimes things break with
a TypeError that it is an int instead of the expected string and hangs
up the bot.
2012-05-31 22:53:21 -04:00
Daniel Folkinshteyn
e0c08d3f98 core: avoid casting data to string if it is already an instance of basestring, in irc.reply. 2011-12-13 18:21:38 -05:00
James McCoy
faf2608c83 Bug fixes in src/ircmsgs.py
unbans did send the repr() of the ban list, and IrcMsg.__hash__ did try to hash a list.

Conflicts:

	src/version.py

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit 998819da58)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:26:07 -05:00
James McCoy
e2f27512bc Only use ircmsg.whois's mask argument if it's non-empty.
Closes: Sf#3121298
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit f6f9e654cb)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:25:45 -05:00
James McCoy
be9415912c Perform all received* IrcMsg tagging in one spot.
This also fixes a long-standing failing Misc test since it was relying on the
receivedAt tag.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit 4ddfae427f)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:25:26 -05:00
James McCoy
63ec70bc08 Use socket.inet_aton for isIPV4 since Windows doesn't (always?) have inet_pton
Closes: Sf#3430008
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit 360a2036ac)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:24:42 -05:00
James McCoy
d8ead9bc29 One last fix to umode filtering.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit 4833976294)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:24:34 -05:00
James McCoy
2fb9ac2024 Fix IRC.do376's handling of supported state
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit d6336421e0)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:24:24 -05:00
James McCoy
23f07cadc2 Fix parsing of 004 message for supported umodes/chanmodes
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit 4232e40e26)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:24:04 -05:00
James McCoy
ab9365f172 Fix filtering of unsupported umodes
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
(cherry picked from commit 3bfda3cc7a)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:23:45 -05:00
James McCoy
23bfe116ff irclib: Filter out unsupported umodes before sending them to the server
Closes: Sf#3075891
Signed-off-by: James McCoy <vega.james@gmail.com>
(cherry picked from commit b23480b915)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:13:58 -05:00
James McCoy
edbf43f81f irclib: Add support for 004 messages from the server
At a minimum, the message gives us the server name, ircd version, supported
umodes, and supported channel modes.  Add the umodes and channel modes to
self.supported.

Some IRCds (e.g., hybrid and ircd-seven) have an extra arg which seems to be
the channel modes that require arguments.

Signed-off-by: James McCoy <vega.james@gmail.com>
(cherry picked from commit c9e548bdd9)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-12-12 11:13:23 -05:00
Daniel Folkinshteyn
20bfa97649 core: make sure owner is never ignored. also simplify the logic flow in ignore checking.
Thanks m4v for the patch!
2011-11-21 15:09:38 -05:00
James Vega
60834f239f Honor supybot-test's timeout option and document the units
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 4661acb3a3)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2011-10-11 11:55:39 -04:00
James Vega
36eb3501cf Add utils.net.isIPV4, with utils.net.isIP checking v4 or v6
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2011-10-11 11:53:59 -04:00
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
1e337bdfa9 Dict: Fix FSF address in included dictclient module
Taking fresh address from http://www.gnu.org/licenses/old-licenses/gpl-2.0.html#SEC4
2011-06-27 14:41:49 -04:00
Daniel Folkinshteyn
2b708f034b Web: add 'timeout' config for web fetch, default 5 sec.
Otherwise, when a site would take a long time to respond, the thread would hang for quite a while.

also needed to mod src/utils/web.py to take the timeout arg.
2011-06-13 16:42:57 -04:00
Daniel Folkinshteyn
1b74b8ddf6 Seen: fix tests so they pass. fix seen command so it properly accepts nick wildcards. 2011-04-04 16:30:52 -04:00
Daniel Folkinshteyn
c25db0ecdf Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true.
When noJoinsUntilIdentified config is true, the bot holds join messages in a 'waitingJoins' list, and processes them
once nickserv identification comes through. The problem was that when the bot is configured to join multiple networks,
join messages from different networks would get appended to the same list, without any differentiation by which message
belongs to which network. Thus, if there are messages waiting for multiple networks, it would often be the case that
whichever network got identification done first, would 'pick up' other network's join messages.

This fix stores the network name along with the join messages in the list, and has each network pick out only its own
join messages.
2011-03-13 14:21:46 -04:00
Daniel Folkinshteyn
a6d361573d Fix banmask creation. Thanks Progval for the patch!
fixes https://sourceforge.net/tracker/?func=detail&aid=3088559&group_id=58965&atid=489447

incorporating patch https://sourceforge.net/tracker/?func=detail&aid=3163843&group_id=58965&atid=489449
2011-01-24 16:09:18 -05:00
Daniel Folkinshteyn
42464d8180 Google: add some extra matching capability to google calc
now should be able to display any 'special' result from google.
2010-12-01 16:53:08 -05:00
Daniel Folkinshteyn
8b702543fa update the version timestamp for the batch of upstream bugfixes that just came through. 2010-10-10 17:52:04 -04:00
James Vega
a9b515fbd2 Use self.error() instead of raise for BooleanRequiredFalseOnWindows.
Closes: Sf#3070285
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 0fd6a84632)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-10-10 17:40:04 -04:00
James Vega
8baf08b882 Handle changes to fnmatch.translate in Python 2.6
Define utils.python.glob2re based on the Python version being used.
Use glob2re in Todo and Note plugins.

Closes: Sf#3059292
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit b0575cec88)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-10-10 17:38:08 -04:00
Daniel Folkinshteyn
246c73eed2 BadWords: improve help for requireWordBoundaries config.
Make a note that the plugin requires restart or the words set updating,
for changes to this setting to take effect.
2010-09-08 00:11:28 -04:00
Daniel Folkinshteyn
8d80fb9e88 Badwords: add plugin docstring, and fix/standardize some method docstrings. 2010-09-07 20:27:51 -04:00
Daniel Folkinshteyn
3c00d82579 Scheduler: don't immediately execute commands when restoring repeated events. 2010-09-04 01:25:57 -04:00
Daniel Folkinshteyn
0fe7912628 Misc: update version command to get latest version from gribble git.
Note: if this is ever merged into upstream supybot, should change url
to point at supybot gitweb, rather than gribble.
2010-09-02 18:31:42 -04:00
Daniel Folkinshteyn
567e72488d Cherry-pick a bunch of upstream fix commits. 2010-09-02 09:14:22 -04:00
Daniel Folkinshteyn
3a0e19bc22 Scheduler: remove spammy debug output. 2010-09-02 08:54:13 -04:00
Daniel Folkinshteyn
05e8b658e6 Add script to automatically update version with a datestamp upon commit. 2010-08-20 11:08:31 -04:00
Daniel Folkinshteyn
2a40d6eb90 Consolidate the version string to reside in one central place to ease change making. 2010-08-20 10:31:05 -04:00
Daniel Folkinshteyn
29837e94b1 Make plugin loading/reloading case-insensitive.
Since load/reload was the only place where case mattered for plugins, and it tripped up
a lot of new users, this should be a nice bit of usability improvement.
2010-08-11 00:43:05 -04:00
James Vega
808cb2c9f4 Ensure channel-specific reply.whenNotAddressed works.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 166f32dcb0)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-08-11 00:13:49 -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
Daniel Folkinshteyn
a9e2fc7bed Socket driver: implement ssl connection support. 2010-07-11 02:29:02 -04:00
James Vega
dbde5fc250 Elide ignored replies from nested command output.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit c10d964604)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-06-25 00:41:47 -04:00
James Vega
929859b246 Twisted: Send all available ircmsgs and reduce delay between checks
All ircmsgs that takeMsg will return should be processed each time
checkIrcForMsgs is called since there may be multiple available in the
fastqueue.

Reduced the time between calls of checkIrcForMsgs so the delay between
normally queued ircmsgs stays close to the configured throttleTime.

Closes: Sf#3018148
(cherry picked from commit adc5d62bbf)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-06-19 22:19:08 -04:00
James Vega
108f7f2f86 Socket: Ensure driver is flagged as disconnected after a socket error.
Users were occasionally hitting a situation where the socket had errored,
causing a reconnect, but the socket wasn't closed nor the driver marked as
disconnected.  This resulted in run() continuing to try and use the driver,
which would cause another error, schedule another reconnect, log an error, ad
infinitum.

Closes: Sf#2965530

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit a278d17f2b)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-06-03 10:44:25 -04:00
James Vega
bc8457dc90 utils/web.py: Only try catching socket.sslerror if built with SSL support
Closes: Sf#2998820

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit f03a3f6c85)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-06-03 10:43:54 -04:00
Jeremy Fincher
df2c6c2650 Updates and tweaks to some ircutils functions.
(cherry picked from commit 6135a88741)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-06-03 10:42:58 -04:00
Štěpán Němec
51cabeea33 Topic plugin: Add persistence support.
Topics now persist between restarts.

Rationale: Useful when reloading/restarting; previously the topics would
be just forgotten. Don't use database, as that would be an unnecessary
overkill and in any case not needed.

(Also, remove the unused `re' module import.)

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 6520d1f282)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-05-12 13:19:54 -04:00
James Vega
5ad620b5fd Make registry.Regexp.error mimic registry.Value.error
Regexp.error can't directly call Value.error because it's providing extra
information, so it needs to build the InvalidRegistryValue exception itself
and raise it.

Closes: Sf#2985241

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit ef8bd817e8)

Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-04-19 01:00:02 -04:00
Daniel Folkinshteyn
35fee237da Undo mtughan's bugfix from 7f9a113060, so i can merge jamessan's fix ef8bd817e8 2010-04-19 00:53:40 -04:00
Daniel Folkinshteyn
b5058cc5c2 update Karma plugin and test code to use sqlite3.
This involved also updating src/conf.py to look for sqlite3 and add it to supybot.conf.databases list,
since karma uses the plugins.DB() constructor for its database, which checks the available databases list.
2010-04-18 02:10:29 -04:00