diff --git a/http2irc.py b/http2irc.py index 85a7d1c..4498a4c 100644 --- a/http2irc.py +++ b/http2irc.py @@ -516,7 +516,7 @@ class IRCClientProtocol(asyncio.Protocol): def _self_usermask_length(self): if not self.server.nickname or not self.server.username or not self.server.hostname: return 100 - return len(self.server.nickname) + len(self.server.username) + len(self.server.hostname) + return len(self.server.nickname) + 1 + len(self.server.username) + 1 + len(self.server.hostname) # nickname!username@hostname async def send_messages(self): while self.connected: @@ -527,7 +527,7 @@ class IRCClientProtocol(asyncio.Protocol): break channelB = channel.encode('utf-8') messageB = message.encode('utf-8') - usermaskPrefixLength = 1 + self._self_usermask_length() + 1 + usermaskPrefixLength = 1 + self._self_usermask_length() + 1 # :usermask if usermaskPrefixLength + len(b'PRIVMSG ' + channelB + b' :' + messageB) > 510: # Message too long, need to split or truncate. First try to split on spaces, then on codepoints. Ideally, would use graphemes between, but that's too complicated. self.logger.debug(f'Message too long, overlongmode = {overlongmode}')