diff --git a/lib/fed/encoder.go b/lib/fed/encoder.go index 4daf795f1446d1a2a942bbd96058ea5937e6efd8..62fe9e9e69a2713fc406cd0560ca0612b4a76647 100644 --- a/lib/fed/encoder.go +++ b/lib/fed/encoder.go @@ -43,6 +43,7 @@ func (T *Encoder) ReadFrom(r *Decoder) (int, error) { for { if T.bufferPos >= len(T.buffer) { if err := T.Flush(); err != nil { + T.packetPos += n return n, err } } @@ -53,9 +54,11 @@ func (T *Encoder) ReadFrom(r *Decoder) (int, error) { break } if err != nil { + T.packetPos += n return n, err } } + T.packetPos += n return n, nil } diff --git a/lib/fed/packet.go b/lib/fed/packet.go index 47e239490a015b134eacfecc8a601ac8f30a3943..eabc415e126715f740f6e422dbf0d0229af6b20f 100644 --- a/lib/fed/packet.go +++ b/lib/fed/packet.go @@ -26,13 +26,11 @@ func (T PendingPacket) Length() int { } func (T PendingPacket) WriteTo(encoder *Encoder) error { - count := T.Decoder.Length() - T.Decoder.Position() for T.Decoder.Position() < T.Decoder.Length() { if _, err := encoder.ReadFrom(T.Decoder); err != nil { return err } } - encoder.packetPos += count return nil }