mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-22 18:39:31 +01:00
ircutils: split ! and @ in hostmasks from the right
This fixes /names parsing when ! is a prefix character and userhost-in-names is enabled: previously, strings such as "!@user!ident@some.host" were incorrectly split into "" for nick and "@user!ident@some.host" for ident@host.
This commit is contained in:
parent
dbbd7b4c4e
commit
37a42b0e3b
@ -90,8 +90,8 @@ def splitHostmask(hostmask):
|
||||
"""hostmask => (nick, user, host)
|
||||
Returns the nick, user, host of a user hostmask."""
|
||||
assert isUserHostmask(hostmask)
|
||||
nick, rest = hostmask.split('!', 1)
|
||||
user, host = rest.split('@', 1)
|
||||
nick, rest = hostmask.rsplit('!', 1)
|
||||
user, host = rest.rsplit('@', 1)
|
||||
return (minisix.intern(nick), minisix.intern(user), minisix.intern(host))
|
||||
|
||||
def joinHostmask(nick, ident, host):
|
||||
|
@ -266,6 +266,13 @@ class FunctionsTestCase(SupyTestCase):
|
||||
def testNickFromHostmask(self):
|
||||
self.assertEqual(ircutils.nickFromHostmask('nick!user@host.domain.tld'),
|
||||
'nick')
|
||||
# Hostmasks with user prefixes are sent via userhost-in-names. We need to
|
||||
# properly handle the case where ! is a prefix and not grab '' as the nick
|
||||
# instead.
|
||||
self.assertEqual(ircutils.nickFromHostmask('@nick!user@some.other.host'),
|
||||
'@nick')
|
||||
self.assertEqual(ircutils.nickFromHostmask('!@nick!user@some.other.host'),
|
||||
'!@nick')
|
||||
|
||||
def testToLower(self):
|
||||
self.assertEqual('jemfinch', ircutils.toLower('jemfinch'))
|
||||
|
Loading…
Reference in New Issue
Block a user