From 95def09838fc61b37b6ea7cd5c234a465b4b129b Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 25 Nov 1999 00:26:21 +1100 Subject: - Merged very large OpenBSD source code reformat - OpenBSD CVS updates - [channels.c cipher.c compat.c log-client.c scp.c serverloop.c] [ssh.h sshd.8 sshd.c] syslog changes: * Unified Logmessage for all auth-types, for success and for failed * Standard connections get only ONE line in the LOG when level==LOG: Auth-attempts are logged only, if authentication is: a) successfull or b) with passwd or c) we had more than AUTH_FAIL_LOG failues * many log() became verbose() * old behaviour with level=VERBOSE - [readconf.c readconf.h ssh.1 ssh.h sshconnect.c sshd.c] tranfer s/key challenge/response data in SSH_SMSG_AUTH_TIS_CHALLENGE messages. allows use of s/key in windows (ttssh, securecrt) and ssh-1.2.27 clients without 'ssh -v', ok: niels@ - [sshd.8] -V, for fallback to openssh in SSH2 compatibility mode - [sshd.c] fix sigchld race; cjc5@po.cwru.edu --- compress.c | 233 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 116 insertions(+), 117 deletions(-) (limited to 'compress.c') diff --git a/compress.c b/compress.c index c3267f73..463e7374 100644 --- a/compress.c +++ b/compress.c @@ -1,20 +1,20 @@ /* - -compress.c - -Author: Tatu Ylonen - -Copyright (c) 1995 Tatu Ylonen , Espoo, Finland - All rights reserved - -Created: Wed Oct 25 22:12:46 1995 ylo - -Interface to packet compression for ssh. - -*/ + * + * compress.c + * + * Author: Tatu Ylonen + * + * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland + * All rights reserved + * + * Created: Wed Oct 25 22:12:46 1995 ylo + * + * Interface to packet compression for ssh. + * + */ #include "includes.h" -RCSID("$Id: compress.c,v 1.1 1999/10/27 03:42:44 damien Exp $"); +RCSID("$Id: compress.c,v 1.2 1999/11/24 13:26:22 damien Exp $"); #include "ssh.h" #include "buffer.h" @@ -23,32 +23,34 @@ RCSID("$Id: compress.c,v 1.1 1999/10/27 03:42:44 damien Exp $"); static z_stream incoming_stream; static z_stream outgoing_stream; -/* Initializes compression; level is compression level from 1 to 9 (as in - gzip). */ +/* Initializes compression; level is compression level from 1 to 9 + (as in gzip). */ -void buffer_compress_init(int level) +void +buffer_compress_init(int level) { - debug("Enabling compression at level %d.", level); - if (level < 1 || level > 9) - fatal("Bad compression level %d.", level); - inflateInit(&incoming_stream); - deflateInit(&outgoing_stream, level); + debug("Enabling compression at level %d.", level); + if (level < 1 || level > 9) + fatal("Bad compression level %d.", level); + inflateInit(&incoming_stream); + deflateInit(&outgoing_stream, level); } /* Frees any data structures allocated for compression. */ -void buffer_compress_uninit() +void +buffer_compress_uninit() { - debug("compress outgoing: raw data %lu, compressed %lu, factor %.2f", - outgoing_stream.total_in, outgoing_stream.total_out, - outgoing_stream.total_in == 0 ? 0.0 : - (double)outgoing_stream.total_out / outgoing_stream.total_in); - debug("compress incoming: raw data %lu, compressed %lu, factor %.2f", - incoming_stream.total_out, incoming_stream.total_in, - incoming_stream.total_out == 0 ? 0.0 : - (double)incoming_stream.total_in / incoming_stream.total_out); - inflateEnd(&incoming_stream); - deflateEnd(&outgoing_stream); + debug("compress outgoing: raw data %lu, compressed %lu, factor %.2f", + outgoing_stream.total_in, outgoing_stream.total_out, + outgoing_stream.total_in == 0 ? 0.0 : + (double) outgoing_stream.total_out / outgoing_stream.total_in); + debug("compress incoming: raw data %lu, compressed %lu, factor %.2f", + incoming_stream.total_out, incoming_stream.total_in, + incoming_stream.total_out == 0 ? 0.0 : + (double) incoming_stream.total_in / incoming_stream.total_out); + inflateEnd(&incoming_stream); + deflateEnd(&outgoing_stream); } /* Compresses the contents of input_buffer into output_buffer. All @@ -59,50 +61,49 @@ void buffer_compress_uninit() form a single compression stream) by the receiver. This appends the compressed data to the output buffer. */ -void buffer_compress(Buffer *input_buffer, Buffer *output_buffer) +void +buffer_compress(Buffer * input_buffer, Buffer * output_buffer) { - char buf[4096]; - int status; - - /* This case is not handled below. */ - if (buffer_len(input_buffer) == 0) - return; - - /* Input is the contents of the input buffer. */ - outgoing_stream.next_in = buffer_ptr(input_buffer); - outgoing_stream.avail_in = buffer_len(input_buffer); - - /* Loop compressing until deflate() returns with avail_out != 0. */ - do - { - /* Set up fixed-size output buffer. */ - outgoing_stream.next_out = buf; - outgoing_stream.avail_out = sizeof(buf); - - /* Compress as much data into the buffer as possible. */ - status = deflate(&outgoing_stream, Z_PARTIAL_FLUSH); - switch (status) - { - case Z_OK: - /* Append compressed data to output_buffer. */ - buffer_append(output_buffer, buf, - sizeof(buf) - outgoing_stream.avail_out); - break; - case Z_STREAM_END: - fatal("buffer_compress: deflate returned Z_STREAM_END"); - /*NOTREACHED*/ - case Z_STREAM_ERROR: - fatal("buffer_compress: deflate returned Z_STREAM_ERROR"); - /*NOTREACHED*/ - case Z_BUF_ERROR: - fatal("buffer_compress: deflate returned Z_BUF_ERROR"); - /*NOTREACHED*/ - default: - fatal("buffer_compress: deflate returned %d", status); - /*NOTREACHED*/ + char buf[4096]; + int status; + + /* This case is not handled below. */ + if (buffer_len(input_buffer) == 0) + return; + + /* Input is the contents of the input buffer. */ + outgoing_stream.next_in = buffer_ptr(input_buffer); + outgoing_stream.avail_in = buffer_len(input_buffer); + + /* Loop compressing until deflate() returns with avail_out != 0. */ + do { + /* Set up fixed-size output buffer. */ + outgoing_stream.next_out = buf; + outgoing_stream.avail_out = sizeof(buf); + + /* Compress as much data into the buffer as possible. */ + status = deflate(&outgoing_stream, Z_PARTIAL_FLUSH); + switch (status) { + case Z_OK: + /* Append compressed data to output_buffer. */ + buffer_append(output_buffer, buf, + sizeof(buf) - outgoing_stream.avail_out); + break; + case Z_STREAM_END: + fatal("buffer_compress: deflate returned Z_STREAM_END"); + /* NOTREACHED */ + case Z_STREAM_ERROR: + fatal("buffer_compress: deflate returned Z_STREAM_ERROR"); + /* NOTREACHED */ + case Z_BUF_ERROR: + fatal("buffer_compress: deflate returned Z_BUF_ERROR"); + /* NOTREACHED */ + default: + fatal("buffer_compress: deflate returned %d", status); + /* NOTREACHED */ + } } - } - while (outgoing_stream.avail_out == 0); + while (outgoing_stream.avail_out == 0); } /* Uncompresses the contents of input_buffer into output_buffer. All @@ -113,48 +114,46 @@ void buffer_compress(Buffer *input_buffer, Buffer *output_buffer) same order that buffers compressed with that. This appends the uncompressed data to the output buffer. */ -void buffer_uncompress(Buffer *input_buffer, Buffer *output_buffer) +void +buffer_uncompress(Buffer * input_buffer, Buffer * output_buffer) { - char buf[4096]; - int status; - - incoming_stream.next_in = buffer_ptr(input_buffer); - incoming_stream.avail_in = buffer_len(input_buffer); - - incoming_stream.next_out = buf; - incoming_stream.avail_out = sizeof(buf); - - for (;;) - { - status = inflate(&incoming_stream, Z_PARTIAL_FLUSH); - switch (status) - { - case Z_OK: - buffer_append(output_buffer, buf, - sizeof(buf) - incoming_stream.avail_out); - incoming_stream.next_out = buf; - incoming_stream.avail_out = sizeof(buf); - break; - case Z_STREAM_END: - fatal("buffer_uncompress: inflate returned Z_STREAM_END"); - /*NOTREACHED*/ - case Z_DATA_ERROR: - fatal("buffer_uncompress: inflate returned Z_DATA_ERROR"); - /*NOTREACHED*/ - case Z_STREAM_ERROR: - fatal("buffer_uncompress: inflate returned Z_STREAM_ERROR"); - /*NOTREACHED*/ - case Z_BUF_ERROR: - /* Comments in zlib.h say that we should keep calling inflate() - until we get an error. This appears to be the error that we - get. */ - return; - case Z_MEM_ERROR: - fatal("buffer_uncompress: inflate returned Z_MEM_ERROR"); - /*NOTREACHED*/ - default: - fatal("buffer_uncompress: inflate returned %d", status); + char buf[4096]; + int status; + + incoming_stream.next_in = buffer_ptr(input_buffer); + incoming_stream.avail_in = buffer_len(input_buffer); + + incoming_stream.next_out = buf; + incoming_stream.avail_out = sizeof(buf); + + for (;;) { + status = inflate(&incoming_stream, Z_PARTIAL_FLUSH); + switch (status) { + case Z_OK: + buffer_append(output_buffer, buf, + sizeof(buf) - incoming_stream.avail_out); + incoming_stream.next_out = buf; + incoming_stream.avail_out = sizeof(buf); + break; + case Z_STREAM_END: + fatal("buffer_uncompress: inflate returned Z_STREAM_END"); + /* NOTREACHED */ + case Z_DATA_ERROR: + fatal("buffer_uncompress: inflate returned Z_DATA_ERROR"); + /* NOTREACHED */ + case Z_STREAM_ERROR: + fatal("buffer_uncompress: inflate returned Z_STREAM_ERROR"); + /* NOTREACHED */ + case Z_BUF_ERROR: + /* Comments in zlib.h say that we should keep + calling inflate() until we get an error. This + appears to be the error that we get. */ + return; + case Z_MEM_ERROR: + fatal("buffer_uncompress: inflate returned Z_MEM_ERROR"); + /* NOTREACHED */ + default: + fatal("buffer_uncompress: inflate returned %d", status); + } } - } } - -- cgit v1.2.3