Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Getting rid of recent "chown" since we decided to forego trying to run
[rsync/rsync.git]
/
token.c
diff --git
a/token.c
b/token.c
index
3bd8d34
..
e120a0f
100644
(file)
--- a/
token.c
+++ b/
token.c
@@
-21,7
+21,6
@@
#include "zlib/zlib.h"
extern int do_compression;
#include "zlib/zlib.h"
extern int do_compression;
-int default_compression_level = Z_DEFAULT_COMPRESSION;
static int compression_level = Z_DEFAULT_COMPRESSION;
/* determine the compression level based on a wildcard filename list */
static int compression_level = Z_DEFAULT_COMPRESSION;
/* determine the compression level based on a wildcard filename list */
@@
-33,11
+32,17
@@
void set_compression(char *fname)
if (!do_compression) return;
if (!do_compression) return;
- compression_level =
default_compression_level
;
+ compression_level =
Z_DEFAULT_COMPRESSION
;
dont = lp_dont_compress(module_id);
if (!dont || !*dont) return;
dont = lp_dont_compress(module_id);
if (!dont || !*dont) return;
+ if ((dont[0] == '*') && (!dont[1])) {
+ /* an optimization to skip the rest of this routine */
+ compression_level = 0;
+ return;
+ }
+
dont = strdup(dont);
fname = strdup(fname);
if (!dont || !fname) return;
dont = strdup(dont);
fname = strdup(fname);
if (!dont || !fname) return;
@@
-85,18
+90,29
@@
static int simple_recv_token(int f,char **data)
static void simple_send_token(int f,int token,
struct map_struct *buf,OFF_T offset,int n)
{
static void simple_send_token(int f,int token,
struct map_struct *buf,OFF_T offset,int n)
{
+ extern int write_batch; /* dw */
+ int hold_int; /* dw */
+
if (n > 0) {
int l = 0;
while (l < n) {
int n1 = MIN(CHUNK_SIZE,n-l);
write_int(f,n1);
write_buf(f,map_ptr(buf,offset+l,n1),n1);
if (n > 0) {
int l = 0;
while (l < n) {
int n1 = MIN(CHUNK_SIZE,n-l);
write_int(f,n1);
write_buf(f,map_ptr(buf,offset+l,n1),n1);
+ if (write_batch) {
+ write_batch_delta_file( (char *) &n1, sizeof(int) );
+ write_batch_delta_file(map_ptr(buf,offset+l,n1),n1);
+ }
l += n1;
}
}
/* a -2 token means to send data only and no token */
if (token != -2) {
write_int(f,-(token+1));
l += n1;
}
}
/* a -2 token means to send data only and no token */
if (token != -2) {
write_int(f,-(token+1));
+ if (write_batch) {
+ hold_int = -(token+1);
+ write_batch_delta_file( (char *) &hold_int, sizeof(int) );
+ }
}
}
}
}
@@
-129,6
+145,8
@@
send_deflated_token(int f, int token,
{
int n, r;
static int init_done, flush_pending;
{
int n, r;
static int init_done, flush_pending;
+ extern int write_batch; /* dw */
+ char temp_byte; /* dw */
if (last_token == -1) {
/* initialization */
if (last_token == -1) {
/* initialization */
@@
-161,13
+179,27
@@
send_deflated_token(int f, int token,
n = last_token - run_start;
if (r >= 0 && r <= 63) {
write_byte(f, (n==0? TOKEN_REL: TOKENRUN_REL) + r);
n = last_token - run_start;
if (r >= 0 && r <= 63) {
write_byte(f, (n==0? TOKEN_REL: TOKENRUN_REL) + r);
+ if (write_batch) { /* dw */
+ temp_byte = (char)( (n==0? TOKEN_REL: TOKENRUN_REL) + r);
+ write_batch_delta_file(&temp_byte,sizeof(char));
+ }
} else {
write_byte(f, (n==0? TOKEN_LONG: TOKENRUN_LONG));
write_int(f, run_start);
} else {
write_byte(f, (n==0? TOKEN_LONG: TOKENRUN_LONG));
write_int(f, run_start);
+ if (write_batch) { /* dw */
+ temp_byte = (char)(n==0? TOKEN_LONG: TOKENRUN_LONG);
+ write_batch_delta_file(&temp_byte,sizeof(temp_byte));
+ write_batch_delta_file((char *)&run_start,sizeof(run_start));
+ }
}
if (n != 0) {
write_byte(f, n);
write_byte(f, n >> 8);
}
if (n != 0) {
write_byte(f, n);
write_byte(f, n >> 8);
+ if (write_batch) { /* dw */
+ write_batch_delta_file((char *)&n,sizeof(char));
+ temp_byte = (char) n >> 8;
+ write_batch_delta_file(&temp_byte,sizeof(temp_byte));
+ }
}
last_run_end = last_token;
run_start = token;
}
last_run_end = last_token;
run_start = token;
@@
-226,6
+258,8
@@
send_deflated_token(int f, int token,
obuf[0] = DEFLATED_DATA + (n >> 8);
obuf[1] = n;
write_buf(f, obuf, n+2);
obuf[0] = DEFLATED_DATA + (n >> 8);
obuf[1] = n;
write_buf(f, obuf, n+2);
+ if (write_batch) /* dw */
+ write_batch_delta_file(obuf,n+2);
}
}
} while (nb != 0 || tx_strm.avail_out == 0);
}
}
} while (nb != 0 || tx_strm.avail_out == 0);
@@
-235,6
+269,10
@@
send_deflated_token(int f, int token,
if (token == -1) {
/* end of file - clean up */
write_byte(f, END_FLAG);
if (token == -1) {
/* end of file - clean up */
write_byte(f, END_FLAG);
+ if (write_batch) { /* dw */
+ temp_byte = END_FLAG;
+ write_batch_delta_file((char *)&temp_byte,sizeof(temp_byte));
+ }
} else if (token != -2) {
/* add the data in the current block to the compressor's
} else if (token != -2) {
/* add the data in the current block to the compressor's
@@
-436,8
+474,8
@@
static void see_deflate_token(char *buf, int len)
} while (len || rx_strm.avail_out == 0);
}
} while (len || rx_strm.avail_out == 0);
}
-/*
- *
transmit a verbatim buffer of length n followed by a token
+/*
*
+ *
Transmit a verbatim buffer of length @p n followed by a token.
* If token == -1 then we have reached EOF
* If n == 0 then don't send a buffer
*/
* If token == -1 then we have reached EOF
* If n == 0 then don't send a buffer
*/