X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/f7bce90cf0f0c9bf448942503889462cf87b8514..e7c67065c060d500eba8d073da9568db2c658aad:/rsync.h diff --git a/rsync.h b/rsync.h index 2939e072..3e5217c1 100644 --- a/rsync.h +++ b/rsync.h @@ -1,23 +1,23 @@ /* - Copyright (C) by Andrew Tridgell 1996, 2000 - Copyright (C) Paul Mackerras 1996 - Copyright (C) 2001, 2002 by Martin Pool - - 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - + * Copyright (C) 1996, 2000 Andrew Tridgell + * Copyright (C) 1996 Paul Mackerras + * Copyright (C) 2001, 2002 Martin Pool + * Copyright (C) 2003, 2004, 2005, 2006 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ #define False 0 #define True 1 @@ -135,13 +135,15 @@ #define FNAMECMP_FUZZY 0x83 /* For use by the itemize_changes code */ +#define ITEM_REPORT_ATIME (1<<0) #define ITEM_REPORT_CHECKSUM (1<<1) #define ITEM_REPORT_SIZE (1<<2) #define ITEM_REPORT_TIME (1<<3) #define ITEM_REPORT_PERMS (1<<4) #define ITEM_REPORT_OWNER (1<<5) #define ITEM_REPORT_GROUP (1<<6) -#define ITEM_REPORT_XATTRS (1<<7) +#define ITEM_REPORT_ACL (1<<7) +#define ITEM_REPORT_XATTR (1<<8) #define ITEM_BASIS_TYPE_FOLLOWS (1<<11) #define ITEM_XNAME_FOLLOWS (1<<12) #define ITEM_IS_NEW (1<<13) @@ -158,14 +160,14 @@ /* Log-message categories. Only FERROR and FINFO get sent over the socket. * FLOG and FCLIENT are only used on the daemon side for custom logging, * while FNAME is only used on the client side. */ -enum logcode { FERROR=1, FINFO=2, FLOG=3, FCLIENT=4, FNAME=5 }; +enum logcode { FERROR=1, FINFO=2, FLOG=3, FCLIENT=4, FNAME=5, FSOCKERR=6 }; /* Messages types that are sent over the message channel. The logcode * values must all be present here with identical numbers. */ enum msgcode { MSG_DATA=0, /* raw data on the multiplexed stream */ MSG_ERROR=FERROR, MSG_INFO=FINFO, /* remote logging */ - MSG_LOG=FLOG, /* sibling logging */ + MSG_LOG=FLOG, MSG_SOCKERR=FSOCKERR, /* sibling logging */ MSG_REDO=9, /* reprocess indicated flist index */ MSG_SUCCESS=100,/* successfully updated indicated flist index */ MSG_DELETED=101,/* successfully deleted a file on receiving side */ @@ -560,6 +562,7 @@ struct sum_buf { OFF_T offset; /**< offset in file of this chunk */ int32 len; /**< length of chunk of file */ uint32 sum1; /**< simple checksum */ + int32 chain; /**< next hash-table collision */ short flags; /**< flag bits */ char sum2[SUM_LENGTH]; /**< checksum */ }; @@ -648,6 +651,15 @@ struct chmod_mode_struct; #include "lib/permstring.h" #include "lib/addrinfo.h" +#if !defined __GNUC__ || defined __APPLE__ +/* Apparently the OS X port of gcc gags on __attribute__. + * + * */ +#define __attribute__(x) +#endif + +#define UNUSED(x) x __attribute__((__unused__)) + #include "proto.h" /* We have replacement versions of these if they're missing. */ @@ -691,7 +703,12 @@ extern int errno; #define SUPPORT_HARD_LINKS 1 #endif -#define SIGNAL_CAST (RETSIGTYPE (*)()) +#ifdef HAVE_SIGACTION +#define SIGACTION(n,h) sigact.sa_handler=(h), sigaction((n),&sigact,NULL) +#define signal(n,h) we_need_to_call_SIGACTION_not_signal(n,h) +#else +#define SIGACTION(n,h) signal(n,h) +#endif #ifndef EWOULDBLOCK #define EWOULDBLOCK EAGAIN @@ -799,14 +816,6 @@ extern int errno; /* handler for null strings in printf format */ #define NS(s) ((s)?(s):"") -#if !defined __GNUC__ || defined __APPLE__ -/* Apparently the OS X port of gcc gags on __attribute__. - * - * */ -#define __attribute__(x) - -#endif - /* Convenient wrappers for malloc and realloc. Use them. */ #define new(type) ((type *)malloc(sizeof(type))) #define new_array(type, num) ((type *)_new_array(sizeof(type), (num))) @@ -823,10 +832,6 @@ void rsyserr(enum logcode, int, const char *, ...) __attribute__((format (printf, 3, 4))) ; -#ifdef REPLACE_INET_NTOA -#define inet_ntoa rep_inet_ntoa -#endif - /* Make sure that the O_BINARY flag is defined. */ #ifndef O_BINARY #define O_BINARY 0 @@ -871,5 +876,3 @@ int inet_pton(int af, const char *src, void *dst); #ifdef MAINTAINER_MODE const char *get_panic_action(void); #endif - -#define UNUSED(x) x __attribute__((__unused__))