Age | Commit message (Collapse) | Author |
|
Having Server#to_s alias the hostname would cause problems when the
hostname was nil (e.g. after a disconnect). Fix by making sure that to_s
always returns a string instead.
|
|
|
|
When using a DB backend different from BDB, the BDB constant may not be
defined, causing a NameError during error trapping in the main loop. Fix
this by defining our own DBFatal error that maps to BDB::Fatal in the
BDB case and is defined as an (unused) Exception for TokyoCabinet.
|
|
|
|
|
|
|
|
|
|
When upgrading from 0.9.5 data, write the 0.9.9-style regisitry using
BDB still rather than trying to use TokyoCabinet already. This makes
sure that the next step (0.9.9 to modern times) works correctly.
(Moreover, the existing BDB-to-TC attempt wouldn't have worked anyway
due to wrong var names. I doubt anybody will ever hit this path and
notice though.)
|
|
|
|
|
|
|
|
When a redirect has a Set-Cookie: header, check if the cookie domain is
valid for the host we are redirected to. If not, don't set the cookie
in the new request.
|
|
|
|
|
|
This allows us to support servers that (ab)use the CASEMAPPING
to indicate the set of allowed characters for nicks (e.g. Inspire
IRCd).
|
|
Somebody should hang the ActiveSupport developers by their balls
with barbed wire. Their MissingSourceFile extension to LoadError
_expects_ a second argument, breaking the usual Exception interface
(instead, the smart thing to do would have been to make the second
parameter optional and run the code in the from_message method if
it was missing).
|
|
|
|
|
|
|
|
|
|
|
|
This gets the list of channels we think we are in (not what the server says we are in).
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
My fault for not finding it in review
|
|
|
|
|
|
The new Freenode ircd returns multiple RPL_WHOISCHANNELS lines (split
based on length), and they must be merged, otherwise only the last ends
up as the list of channels that the bot is in.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
This is used to tell apart colloquial messages to the bot ("botname,
do this") from classic bot-style interface ("!do this").
|
|
|
|
|
|
|
|
Change a return to a next. Leftover from the refactoring of the logger
into its own thread. Thanks to gelraen for spotting this.
|
|
|
|
We cannot signal back to the user from the UI anyway.
|
|
Returns the unprefixed part of a channel name
|
|
This ensures that checks are correct in both Ruby 1.8 and 1.9
|
|
It should be BooleanValue, otherwise false would get converted to 0
which would evaluate to true, meaning cache would never expire.
|
|
Untrapped connect() failures would raise up to the mainloop, causing a
burst of reconnect attempts without delay. Fix by rescuing in
reconnect() and retrying after waiting.
|
|
|
|
This makes it easier to understand why the bot is not joining
when join_after_identify is set to true and the bot is not
identifying.
|
|
Since in ruby 1.9 Exception#to_str was removed, change it to to #to_s
|
|
method_defined? doesn't search in private methods, and :bound_targets is
private, so change it to respond_to?(method, include_private=true)
|
|
This reverts commit 4ea25eba02d85b81dcee4302375d7d3e08cd52ac.
Not only the patch was missing an essential part, but Nokogiri is not
compatible enough with Hpricot anyway. Incompatibilities include
doc/"style|script" raising an "Undefined namespace prefix" error and the
non-existence of Hpricot::Elements.
If we want to support Nokogiri we'll need to write code for it on
purpose or redesign the Hpricot code so that it only uses the subset
supported by Nokogiri.
|
|
|
|
|
|
The time parsing refactoring introduced an unpleasant namespace
conflict by defining Utils::Time. Eliminate it by renaming it to
ParseTime
|
|
When LANGUAGE env var is set to empty value, it breaks
gettext in ruby, so we unset it if it's empty.
|
|
Since in 1.9 methods arrays have symbols instead of strings, fix it by
changing into respond_to? and method_defined?
|
|
this monkeypatch doesn't work on 1.9 - Singleton has no _load method
|
|
ruby 1.9's ConditionVariable#wait is not implemented for timeout != nil,
this patch adds an implementation for it (see ruby-core:15847)
Also, since MonitorMixin is included into TCPSocket in rbot, and
TCPSocket#send != Object#send in ruby 1.9, i changed that to use
__send__.
|
|
in 1.9, Integer(nil) raises TypeError, so we change "%d" to "%s"
|