extern int relative_paths;
extern int copy_links;
extern int remote_version;
+extern int io_error;
static char **local_exclude_list;
{
if (check_exclude(fname,local_exclude_list)) {
if (verbose > 2)
- fprintf(FERROR,"excluding file %s\n",fname);
+ fprintf(FINFO,"excluding file %s\n",fname);
return 0;
}
return 1;
bzero(sum,SUM_LENGTH);
if (link_stat(fname,&st) != 0) {
+ io_error = 1;
fprintf(FERROR,"%s: %s\n",
fname,strerror(errno));
return NULL;
}
if (S_ISDIR(st.st_mode) && !recurse) {
- fprintf(FERROR,"skipping directory %s\n",fname);
+ fprintf(FINFO,"skipping directory %s\n",fname);
return NULL;
}
return NULL;
if (verbose > 2)
- fprintf(FERROR,"make_file(%s)\n",fname);
+ fprintf(FINFO,"make_file(%s)\n",fname);
file = (struct file_struct *)malloc(sizeof(*file));
if (!file) out_of_memory("make_file");
int l;
char lnk[MAXPATHLEN];
if ((l=readlink(fname,lnk,MAXPATHLEN-1)) == -1) {
+ io_error=1;
fprintf(FERROR,"readlink %s : %s\n",
fname,strerror(errno));
return NULL;
d = opendir(dir);
if (!d) {
+ io_error = 1;
fprintf(FERROR,"%s: %s\n",
dir,strerror(errno));
return;
l = strlen(fname);
if (fname[l-1] != '/') {
if (l == MAXPATHLEN-1) {
+ io_error = 1;
fprintf(FERROR,"skipping long-named directory %s\n",fname);
closedir(d);
return;
strcpy(p,".cvsignore");
local_exclude_list = make_exclude_list(fname,NULL,0);
} else {
- fprintf(FERROR,"cannot cvs-exclude in long-named directory %s\n",fname);
+ io_error = 1;
+ fprintf(FINFO,"cannot cvs-exclude in long-named directory %s\n",fname);
}
}
}
if (link_stat(fname,&st) != 0) {
+ io_error=1;
fprintf(FERROR,"%s : %s\n",fname,strerror(errno));
continue;
}
if (S_ISDIR(st.st_mode) && !recurse) {
- fprintf(FERROR,"skipping directory %s\n",fname);
+ fprintf(FINFO,"skipping directory %s\n",fname);
continue;
}
exit_cleanup(1);
}
if (chdir(dir) != 0) {
+ io_error=1;
fprintf(FERROR,"chdir %s : %s\n",
dir,strerror(errno));
continue;
send_uid_list(f);
}
+ /* if protocol version is >= 17 then send the io_error flag */
+ if (f != -1 && remote_version >= 17) {
+ write_int(f, io_error);
+ }
+
return flist;
}
flist->count++;
if (verbose > 2)
- fprintf(FERROR,"recv_file_name(%s)\n",f_name(flist->files[i]));
+ fprintf(FINFO,"recv_file_name(%s)\n",f_name(flist->files[i]));
}
if (verbose > 2)
- fprintf(FERROR,"received %d names\n",flist->count);
+ fprintf(FINFO,"received %d names\n",flist->count);
clean_flist(flist);
recv_uid_list(f, flist);
}
+ /* if protocol version is >= 17 then recv the io_error flag */
+ if (f != -1 && remote_version >= 17) {
+ io_error |= read_int(f);
+ }
+
return flist;
oom:
strcmp(f_name(flist->files[i]),
f_name(flist->files[i-1])) == 0) {
if (verbose > 1 && !am_server)
- fprintf(FERROR,"removing duplicate name %s from file list %d\n",
+ fprintf(FINFO,"removing duplicate name %s from file list %d\n",
f_name(flist->files[i-1]),i-1);
free_file(flist->files[i]);
}