--- embedaddon/rsync/rsync.h 2013/10/14 07:51:14 1.1.1.2 +++ embedaddon/rsync/rsync.h 2016/11/01 09:54:32 1.1.1.3 @@ -2,7 +2,7 @@ * Copyright (C) 1996, 2000 Andrew Tridgell * Copyright (C) 1996 Paul Mackerras * Copyright (C) 2001, 2002 Martin Pool - * Copyright (C) 2003-2013 Wayne Davison + * Copyright (C) 2003-2015 Wayne Davison * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -208,6 +208,7 @@ #define CFN_KEEP_TRAILING_SLASH (1<<1) #define CFN_DROP_TRAILING_DOT_DIR (1<<2) #define CFN_COLLAPSE_DOT_DOT_DIRS (1<<3) +#define CFN_REFUSE_DOT_DOT_DIRS (1<<4) #define SP_DEFAULT 0 #define SP_KEEP_DOT_DIRS (1<<0) @@ -787,6 +788,8 @@ extern int xattrs_ndx; #define DIR_FIRST_CHILD(a) (a)[1] #define DIR_NEXT_SIBLING(a) (a)[2] +#define IS_MISSING_FILE(statbuf) ((statbuf).st_mode == 0) + /* * Start the flist array at FLIST_START entries and grow it * by doubling until FLIST_LINEAR then grow by FLIST_LINEAR @@ -889,7 +892,6 @@ typedef struct filter_struct { typedef struct filter_list_struct { filter_rule *head; filter_rule *tail; - filter_rule *parent_dirscan_head; char *debug_type; } filter_rule_list; @@ -991,13 +993,22 @@ typedef struct { #ifdef SUPPORT_ACLS struct rsync_acl *acc_acl; /* access ACL */ struct rsync_acl *def_acl; /* default ACL */ + struct nfs4_acl *nfs4_acl; /* NFSv4 ACL */ + int brand; #endif #ifdef SUPPORT_XATTRS item_list *xattr; #endif } stat_x; -#define ACL_READY(sx) ((sx).acc_acl != NULL) +#ifdef SUPPORT_ACLS +#include "lib/sysacls.h" +#endif + +#define ACL_READY_POSIX(sx) ((sx).acc_acl != NULL) +#define ACL_READY_NFS4(sx) ((sx).nfs4_acl != NULL) +#define ACL_READY(sx) (((sx).brand == SMB_ACL_BRAND_NFS4) ? (ACL_READY_NFS4(sx)) : (ACL_READY_POSIX(sx))) + #define XATTR_READY(sx) ((sx).xattr != NULL) #include "proto.h"