Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
radosgw/swift: clean up flush / newline behavior.
The current code emits a newline after swift errors, but fails to account for it when it calculates 'content-length'. This results in some clients (go github.com/ncw/swift) producing complaints about the unsolicited newline such as this, Unsolicited response received on idle HTTP channel starting with "\n"; err=<nil> This logic eliminates the newline on flush. This makes the content length calculation correct and eliminates the stray newline. There was already existing separator logic in the rgw plain formatter that can emit a newline at the correct point. It had been checking "len" to decide if previous data had been emitted, but that's reset to 0 by flush(). So, this logic adds a new per-instance variable to separately track state that it emitted a previous item (and should emit a newline). Fixes: http://tracker.ceph.com/issues/18473 Signed-off-by: Marcus Watts <mwatts@redhat.com> Signed-off-by: Matt Benjamin <mbenjamin@redhat.com> (cherry picked from commit 5f229d6)
- Loading branch information