+ if ( $self->{inflateStart} && $self->{dataIn} ne "" ) {
+ my $chr = substr($self->{dataIn}, 0, 1);
+
+ $self->{inflateStart} = 0;
+ if ( $chr eq chr(0xd6) || $chr eq chr(0xd7) ) {
+ #
+ # Flag 0xd6 or 0xd7 means this is a compressed file with
+ # appended md4 block checksums for rsync. Change
+ # the first byte back to 0x78 and proceed.
+ #
+ ##print("Got 0xd6/0xd7 block: normal\n");
+ substr($self->{dataIn}, 0, 1) = chr(0x78);
+ } elsif ( $chr eq chr(0xb3) ) {
+ #
+ # Flag 0xb3 means this is the start of the rsync
+ # block checksums, so consider this as EOF for
+ # the compressed file. Also seek the file so
+ # it is positioned at the 0xb3.
+ #
+ sysseek($self->{fh}, -length($self->{dataIn}), 1);
+ $self->{eof} = 1;
+ $self->{dataIn} = "";
+ ##print("Got 0xb3 block: considering eof\n");
+ last;
+ } else {
+ #
+ # normal case: nothing to do
+ #
+ }
+ }