Make irc module accept the nick being shortened by the server.
This can happen if the server has a NICKLEN setting which is less than the length of the specified nick. With this patch we now grab that nick and use it moving forward, instead of failing because we didn't get back the one we specified, in the connection response.
This commit is contained in:
parent
fb42d429c0
commit
e02efb4cf2
1 changed files with 6 additions and 2 deletions
|
@ -39,7 +39,7 @@ options:
|
||||||
default: 6667
|
default: 6667
|
||||||
nick:
|
nick:
|
||||||
description:
|
description:
|
||||||
- Nickname
|
- Nickname. May be shortened, depending on server's NICKLEN setting.
|
||||||
required: false
|
required: false
|
||||||
default: ansible
|
default: ansible
|
||||||
msg:
|
msg:
|
||||||
|
@ -122,7 +122,11 @@ def send_msg(channel, msg, server='localhost', port='6667',
|
||||||
start = time.time()
|
start = time.time()
|
||||||
while 1:
|
while 1:
|
||||||
motd += irc.recv(1024)
|
motd += irc.recv(1024)
|
||||||
if re.search('^:\S+ 00[1-4] %s :' % nick, motd, flags=re.M):
|
# The server might send back a shorter nick than we specified (due to NICKLEN),
|
||||||
|
# so grab that and use it from now on (assuming we find the 00[1-4] response).
|
||||||
|
match = re.search('^:\S+ 00[1-4] (?P<nick>\S+) :', motd, flags=re.M)
|
||||||
|
if match:
|
||||||
|
nick = match.group('nick')
|
||||||
break
|
break
|
||||||
elif time.time() - start > timeout:
|
elif time.time() - start > timeout:
|
||||||
raise Exception('Timeout waiting for IRC server welcome response')
|
raise Exception('Timeout waiting for IRC server welcome response')
|
||||||
|
|
Loading…
Reference in a new issue