#define SAME_TIME (1<<7)
/* update this if you make incompatible changes */
-#define PROTOCOL_VERSION 15
-#define MIN_PROTOCOL_VERSION 10
+#define PROTOCOL_VERSION 16
+#define MIN_PROTOCOL_VERSION 11
#define MAX_PROTOCOL_VERSION 20
#define SPARSE_WRITE_SIZE (4*1024)
#define uint32 unsigned int32
#endif
+#ifdef HAVE_LONGLONG
+#define int64 long long
+#else
+#define int64 off_t
+#endif
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
struct file_struct {
- time_t modtime;
- off_t length;
- mode_t mode;
- ino_t inode;
- dev_t dev;
- dev_t rdev;
- uid_t uid;
- gid_t gid;
- char *name;
- char *dir;
- char *link;
- char sum[MD4_SUM_LENGTH];
+ time_t modtime;
+ off_t length;
+ mode_t mode;
+ ino_t inode;
+ dev_t dev;
+ dev_t rdev;
+ uid_t uid;
+ gid_t gid;
+ char *basename;
+ char *dirname;
+ char *basedir;
+ char *link;
+ char *sum;
};
struct file_list {
int count;
int malloced;
- struct file_struct *files;
+ struct file_struct **files;
};
struct sum_buf {
};
struct map_struct {
- char *map,*p;
- int fd,size,p_size,p_offset,p_len;
+ char *map,*p;
+ int fd,p_size,p_len;
+ off_t size, p_offset;
};
/* we need this function because of the silly way in which duplicate
entries are handled in the file lists - we can't change this
without breaking existing versions */
-static int flist_up(struct file_list *flist, int i)
+static inline int flist_up(struct file_list *flist, int i)
{
- while (!flist->files[i].name) i++;
+ while (!flist->files[i]->basename) i++;
return i;
}