]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/rfc2812.rb
Rework netmask/hostname detection code to work around non-RFC-compliant servers
[user/henk/code/ruby/rbot.git] / lib / rbot / rfc2812.rb
index 97181b039a67c8f3b8498b78eae52f6425f0d39f..efa50035f87af634ca71007e24241c69aa9ca87a 100644 (file)
@@ -902,13 +902,14 @@ module Irc
         # This is not always true, though, since some servers do not send a
         # full hostmask for user messages.
         #
-        if prefix =~ /^(?:\S+)(?:!\S+)?@(?:\S+)$/
+        if prefix =~ /^#{Regexp::Irc::GEN_MASK}$/
           data[:source] = @server.user(prefix)
         else
           if @server.hostname
             if @server.hostname != prefix
-              debug "Origin #{prefix} for message\n\t#{serverstring.inspect}\nis neither a user hostmask nor the server hostname, assuming it's a nick"
-              data[:source] = @server.user(prefix)
+              # TODO do we want to be able to differentiated messages that are passed on to us from /other/ servers?
+              debug "Origin #{prefix} for message\n\t#{serverstring.inspect}\nis neither a user hostmask nor the server hostname\nI'll pretend that it's from the server anyway"
+              data[:source] = @server
             else
               data[:source] = @server
             end