extern int checksum_seed;
extern int inplace;
+extern struct exclude_list_struct server_exclude_list;
+
+
static void delete_one(char *fn, int is_dir)
{
if (!is_dir) {
}
+static void discard_receive_data(int f_in, OFF_T length)
+{
+ receive_data(f_in, NULL, -1, NULL, length);
+}
+
+
/**
* main routine for receiver process.
*
if (i == -1) {
if (phase)
break;
+
phase = 1;
csum_length = SUM_LENGTH;
if (verbose > 2)
fnamecmp = fname;
+ if (server_exclude_list.head
+ && check_exclude(&server_exclude_list, fname,
+ S_ISDIR(file->mode)) < 0) {
+ if (verbose) {
+ rprintf(FINFO,
+ "skipping server-excluded update for \"%s\"\n",
+ fname);
+ }
+ discard_receive_data(f_in, file->length);
+ continue;
+ }
+
/* open the file */
fd1 = do_open(fnamecmp, O_RDONLY, 0);
if (fd1 != -1 && do_fstat(fd1,&st) != 0) {
rsyserr(FERROR, errno, "fstat %s failed",
full_fname(fnamecmp));
- receive_data(f_in,NULL,-1,NULL,file->length);
+ discard_receive_data(f_in, file->length);
close(fd1);
continue;
}
*/
rprintf(FERROR,"recv_files: %s is a directory\n",
full_fname(fnamecmp));
- receive_data(f_in, NULL, -1, NULL, file->length);
+ discard_receive_data(f_in, file->length);
close(fd1);
continue;
}
if (fd2 == -1) {
rsyserr(FERROR, errno, "open %s failed",
full_fname(fnamecmp));
- receive_data(f_in,mapbuf,-1,NULL,file->length);
+ discard_receive_data(f_in, file->length);
if (mapbuf)
unmap_file(mapbuf);
if (fd1 != -1)
}
} else {
if (!get_tmpname(fnametmp,fname)) {
+ discard_receive_data(f_in, file->length);
if (mapbuf)
unmap_file(mapbuf);
if (fd1 != -1)
if (fd2 == -1) {
rsyserr(FERROR, errno, "mkstemp %s failed",
full_fname(fnametmp));
- receive_data(f_in,mapbuf,-1,NULL,file->length);
+ discard_receive_data(f_in, file->length);
if (mapbuf)
unmap_file(mapbuf);
if (fd1 != -1)