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
Print a warning message in the version if the platform cannot support 32-bit ints
[rsync/rsync.git]
/
flist.c
diff --git
a/flist.c
b/flist.c
index
e102076
..
1082c40
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-55,7
+55,7
@@
static struct file_struct null_file;
static void clean_flist(struct file_list *flist, int strip_root);
static void clean_flist(struct file_list *flist, int strip_root);
-struct string_area *string_area_new(int size)
+st
atic st
ruct string_area *string_area_new(int size)
{
struct string_area *a;
{
struct string_area *a;
@@
-65,12
+65,12
@@
struct string_area *string_area_new(int size)
a->current = a->base = malloc(size);
if (!a->current) out_of_memory("string_area_new buffer");
a->end = a->base + size;
a->current = a->base = malloc(size);
if (!a->current) out_of_memory("string_area_new buffer");
a->end = a->base + size;
- a->next =
0
;
+ a->next =
NULL
;
return a;
}
return a;
}
-void string_area_free(struct string_area *a)
+
static
void string_area_free(struct string_area *a)
{
struct string_area *next;
{
struct string_area *next;
@@
-80,7
+80,7
@@
void string_area_free(struct string_area *a)
}
}
}
}
-char *string_area_malloc(struct string_area **ap, int size)
+
static
char *string_area_malloc(struct string_area **ap, int size)
{
char *p;
struct string_area *a;
{
char *p;
struct string_area *a;
@@
-100,7
+100,7
@@
char *string_area_malloc(struct string_area **ap, int size)
return p;
}
return p;
}
-char *string_area_strdup(struct string_area **ap, const char *src)
+
static
char *string_area_strdup(struct string_area **ap, const char *src)
{
char* dest = string_area_malloc(ap, strlen(src) + 1);
return strcpy(dest, src);
{
char* dest = string_area_malloc(ap, strlen(src) + 1);
return strcpy(dest, src);
@@
-185,8
+185,6
@@
int link_stat(const char *Path, STRUCT_STAT *Buffer)
static int match_file_name(char *fname,STRUCT_STAT *st)
{
if (check_exclude(fname,local_exclude_list,st)) {
static int match_file_name(char *fname,STRUCT_STAT *st)
{
if (check_exclude(fname,local_exclude_list,st)) {
- if (verbose > 2)
- rprintf(FINFO,"excluding file %s\n",fname);
return 0;
}
return 1;
return 0;
}
return 1;
@@
-469,7
+467,8
@@
static int skip_filesystem(char *fname, STRUCT_STAT *st)
#define MALLOC(ap, i) (ap ? string_area_malloc(ap, i) : malloc(i))
/* create a file_struct for a named file */
#define MALLOC(ap, i) (ap ? string_area_malloc(ap, i) : malloc(i))
/* create a file_struct for a named file */
-struct file_struct *make_file(int f, char *fname, struct string_area **ap)
+struct file_struct *make_file(int f, char *fname, struct string_area **ap,
+ int noexcludes)
{
struct file_struct *file;
STRUCT_STAT st;
{
struct file_struct *file;
STRUCT_STAT st;
@@
-478,6
+477,7
@@
struct file_struct *make_file(int f, char *fname, struct string_area **ap)
char cleaned_name[MAXPATHLEN];
char linkbuf[MAXPATHLEN];
extern int delete_excluded;
char cleaned_name[MAXPATHLEN];
char linkbuf[MAXPATHLEN];
extern int delete_excluded;
+ extern int module_id;
strlcpy(cleaned_name, fname, MAXPATHLEN);
cleaned_name[MAXPATHLEN-1] = 0;
strlcpy(cleaned_name, fname, MAXPATHLEN);
cleaned_name[MAXPATHLEN-1] = 0;
@@
-496,6
+496,9
@@
struct file_struct *make_file(int f, char *fname, struct string_area **ap)
return NULL;
}
return NULL;
}
+ /* we use noexcludes from backup.c */
+ if (noexcludes) goto skip_excludes;
+
if (S_ISDIR(st.st_mode) && !recurse) {
rprintf(FINFO,"skipping directory %s\n",fname);
return NULL;
if (S_ISDIR(st.st_mode) && !recurse) {
rprintf(FINFO,"skipping directory %s\n",fname);
return NULL;
@@
-509,7
+512,13
@@
struct file_struct *make_file(int f, char *fname, struct string_area **ap)
/* f is set to -1 when calculating deletion file list */
if (((f != -1) || !delete_excluded) && !match_file_name(fname,&st))
return NULL;
/* f is set to -1 when calculating deletion file list */
if (((f != -1) || !delete_excluded) && !match_file_name(fname,&st))
return NULL;
-
+
+
+ if (lp_ignore_nonreadable(module_id) && access(fname, R_OK) != 0)
+ return NULL;
+
+ skip_excludes:
+
if (verbose > 2)
rprintf(FINFO,"make_file(%d,%s)\n",f,fname);
if (verbose > 2)
rprintf(FINFO,"make_file(%d,%s)\n",f,fname);
@@
-523,7
+532,7
@@
struct file_struct *make_file(int f, char *fname, struct string_area **ap)
if (lastdir && strcmp(fname, lastdir)==0) {
file->dirname = lastdir;
} else {
if (lastdir && strcmp(fname, lastdir)==0) {
file->dirname = lastdir;
} else {
- file->dirname =
STRDUP(ap,
fname);
+ file->dirname =
strdup(
fname);
lastdir = file->dirname;
}
file->basename = STRDUP(ap, p+1);
lastdir = file->dirname;
}
file->basename = STRDUP(ap, p+1);
@@
-568,7
+577,7
@@
struct file_struct *make_file(int f, char *fname, struct string_area **ap)
if (lastdir && strcmp(lastdir, flist_dir)==0) {
file->basedir = lastdir;
} else {
if (lastdir && strcmp(lastdir, flist_dir)==0) {
file->basedir = lastdir;
} else {
- file->basedir =
STRDUP(ap,
flist_dir);
+ file->basedir =
strdup(
flist_dir);
lastdir = file->basedir;
}
} else {
lastdir = file->basedir;
}
} else {
@@
-588,7
+597,7
@@
void send_file_name(int f,struct file_list *flist,char *fname,
{
struct file_struct *file;
{
struct file_struct *file;
- file = make_file(f,fname, &flist->string_area);
+ file = make_file(f,fname, &flist->string_area
, 0
);
if (!file) return;
if (!file) return;
@@
-689,6
+698,8
@@
struct file_list *send_file_list(int f,int argc,char *argv[])
if (verbose && recurse && !am_server && f != -1) {
rprintf(FINFO,"building file list ... ");
if (verbose && recurse && !am_server && f != -1) {
rprintf(FINFO,"building file list ... ");
+ if (verbose > 1)
+ rprintf(FINFO, "\n");
rflush(FINFO);
}
rflush(FINFO);
}
@@
-1004,7
+1015,7
@@
struct file_list *flist_new()
#if ARENA_SIZE > 0
flist->string_area = string_area_new(0);
#else
#if ARENA_SIZE > 0
flist->string_area = string_area_new(0);
#else
- flist->string_area =
0
;
+ flist->string_area =
NULL
;
#endif
return flist;
}
#endif
return flist;
}