diff options
Diffstat (limited to 'IrcTokens/StatefulDecoder.cs')
-rw-r--r-- | IrcTokens/StatefulDecoder.cs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/IrcTokens/StatefulDecoder.cs b/IrcTokens/StatefulDecoder.cs index 62d1703..b2bad5e 100644 --- a/IrcTokens/StatefulDecoder.cs +++ b/IrcTokens/StatefulDecoder.cs @@ -49,14 +49,15 @@ namespace IrcTokens public List<Line> Push(string data) { - return Push(Encoding.GetBytes(data)); + var bytes = Encoding.GetBytes(data); + return Push(bytes, bytes.Length); } - public List<Line> Push(byte[] data) + public List<Line> Push(byte[] data, int bytesReceived) { - if (data == null || data.Length == 0) return null; + if (data == null) return null; - _buffer = _buffer == null ? Array.Empty<byte>() : _buffer.Concat(data).ToArray(); + _buffer = _buffer == null ? Array.Empty<byte>() : _buffer.Concat(data.Take(bytesReceived)).ToArray(); var listLines = _buffer.Split((byte) '\n').Select(l => l.Trim((byte) '\r')).ToList(); _buffer = listLines.Last(); |