Diff for /embedaddon/rsync/lib/sysxattrs.c between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2013/10/14 07:51:14 version 1.1.1.3, 2016/11/01 09:54:32
Line 2 Line 2
  * Extended attribute support for rsync.   * Extended attribute support for rsync.
  *   *
  * Copyright (C) 2004 Red Hat, Inc.   * Copyright (C) 2004 Red Hat, Inc.
 * Copyright (C) 2003-2008 Wayne Davison * Copyright (C) 2003-2015 Wayne Davison
  * Written by Jay Fenlason.   * Written by Jay Fenlason.
  *   *
  * This program is free software; you can redistribute it and/or modify   * This program is free software; you can redistribute it and/or modify
Line 24 Line 24
   
 #ifdef SUPPORT_XATTRS  #ifdef SUPPORT_XATTRS
   
   #ifdef HAVE_OSX_XATTRS
   #define GETXATTR_FETCH_LIMIT (64*1024*1024)
   #endif
   
 #if defined HAVE_LINUX_XATTRS  #if defined HAVE_LINUX_XATTRS
   
 ssize_t sys_lgetxattr(const char *path, const char *name, void *value, size_t size)  ssize_t sys_lgetxattr(const char *path, const char *name, void *value, size_t size)
Line 55  ssize_t sys_llistxattr(const char *path, char *list, s Line 59  ssize_t sys_llistxattr(const char *path, char *list, s
   
 ssize_t sys_lgetxattr(const char *path, const char *name, void *value, size_t size)  ssize_t sys_lgetxattr(const char *path, const char *name, void *value, size_t size)
 {  {
        return getxattr(path, name, value, size, 0, XATTR_NOFOLLOW);        ssize_t len = getxattr(path, name, value, size, 0, XATTR_NOFOLLOW);
 
         /* If we're retrieving data, handle resource forks > 64MB specially */
         if (value != NULL && len == GETXATTR_FETCH_LIMIT && (size_t)len < size) {
                 /* getxattr will only return 64MB of data at a time, need to call again with a new offset */
                 u_int32_t offset = len;
                 size_t data_retrieved = len;
                 while (data_retrieved < size) {
                         len = getxattr(path, name, value + offset, size - data_retrieved, offset, XATTR_NOFOLLOW);
                         if (len <= 0)
                                 break;
                         data_retrieved += len;
                         offset += (u_int32_t)len;
                 }
                 len = data_retrieved;
         }
 
         return len;
 }  }
   
 ssize_t sys_fgetxattr(int filedes, const char *name, void *value, size_t size)  ssize_t sys_fgetxattr(int filedes, const char *name, void *value, size_t size)

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>