Fix zlib compression (#901)

* add failing integrationtest for https://github.com/hierynomus/sshj/issues/893

* Fix zlib compression

---------

Co-authored-by: Malte Otten <malte.otten@emsysvpp.de>
This commit is contained in:
Henning Pöttker
2023-10-11 20:57:20 +02:00
committed by GitHub
parent 461c0e46d4
commit 5d040dd4bb
2 changed files with 88 additions and 4 deletions

View File

@@ -22,7 +22,6 @@ import java.util.zip.Inflater;
import net.schmizz.sshj.common.Buffer;
import net.schmizz.sshj.common.DisconnectReason;
import net.schmizz.sshj.transport.TransportException;
import net.schmizz.sshj.transport.compression.Compression;
public class ZlibCompression implements Compression {
@@ -71,10 +70,14 @@ public class ZlibCompression implements Compression {
public void compress(Buffer buffer) {
deflater.setInput(buffer.array(), buffer.rpos(), buffer.available());
buffer.wpos(buffer.rpos());
do {
while (true) {
final int len = deflater.deflate(tempBuf, 0, BUF_SIZE, Deflater.SYNC_FLUSH);
buffer.putRawBytes(tempBuf, 0, len);
} while (!deflater.needsInput());
if(len > 0) {
buffer.putRawBytes(tempBuf, 0, len);
} else {
return;
}
}
}
@Override