irkerd: Add Python-3-compatible string handling
authorW. Trevor King <wking@tremily.us>
Fri, 7 Mar 2014 04:21:21 +0000 (20:21 -0800)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 11 Mar 2014 04:50:24 +0000 (00:50 -0400)
commite29c46a94edfb6f3ca7ef61cb2d200c359bd7755
treee4fe4b9659cb94508a6ee99e3a227dc1d74b5806
parent86cd0f2e083eef45f749f2e92f9d4643408e27d0
irkerd: Add Python-3-compatible string handling

This implements the necessary changes to work around the (str,
unicode) -> (bytes, str) transition.  We decode the bytes as soon as
possible after receiving them in the Irker*Handler classes.  For
IRC-side connections, we still encode outgoing data right before
sending it in IRCServerConnection.ship.

We decode incoming IRC-side bytes in IRCServerConnection.consume,
after storing them as bytes in the LineBufferedStream
IRCServerConnection.buffer.  That ensures that we don't try and decode
partial code points which are split across two socket messages.
irkerd