dav/sync.h

Sun, 17 Sep 2017 17:56:02 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 17 Sep 2017 17:56:02 +0200
changeset 309
8a474d2ad209
parent 302
395763c0ee69
child 327
a66e0a1f01fc
child 330
54819e984a19
permissions
-rw-r--r--

adds option to dav get for downloading only the directory structure

this is an undocumented feature and may be replaced in the future

46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
185
cd42cccee550 updated copyright notice
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 145
diff changeset
4 * Copyright 2016 Olaf Wintermann. All rights reserved.
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #ifndef SYNC_H
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #define SYNC_H
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #include <curl/curl.h>
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 #include <libidav/webdav.h>
47
fbbbeed4ba8f added push command for dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 46
diff changeset
34 #include <ucx/list.h>
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 #include "sopt.h"
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37
190
a76e43d89f55 dav-sync can create and delete empty directories now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 185
diff changeset
38 #include "version.h"
a76e43d89f55 dav-sync can create and delete empty directories now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 185
diff changeset
39
302
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
40 #ifdef _WIN32
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
41 // TODO: thread includes
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
42 #else
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
43 #include <pthread.h>
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
44 #endif /* _WIN32 */
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
45
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 #ifdef __cplusplus
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 extern "C" {
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 #endif
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49
53
ddc4efc9b0f8 added usage info and some options
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 52
diff changeset
50 #define STDIN_BUF_SIZE 2048
302
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
51
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 void print_usage(char *cmd);
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53
302
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
54 pthread_t start_sighandler(pthread_mutex_t *mutex) ;
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
55 void stop_sighandler(pthread_mutex_t *mutex, pthread_t tid);
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
56
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 int cmd_pull(CmdArgs *args);
299
c517502d3e38 adds dav-sync archive command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 296
diff changeset
58 int cmd_push(CmdArgs *args, DavBool archive);
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59
192
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
60 int sync_get_resource(
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
61 CmdArgs *a,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
62 SyncDirectory *dir,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
63 DavResource *res,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
64 SyncDatabase *db,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
65 int *counter);
190
a76e43d89f55 dav-sync can create and delete empty directories now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 185
diff changeset
66 int sync_remove_local_resource(SyncDirectory *dir, LocalResource *res);
a76e43d89f55 dav-sync can create and delete empty directories now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 185
diff changeset
67 void sync_remove_local_directory(SyncDirectory *dir, LocalResource *res);
216
16d6b97fbf33 dav-sync push ignores conflict files
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 204
diff changeset
68 void rename_conflict_file(SyncDirectory *dir, SyncDatabase *db, char *path);
145
82475dc12dd4 improved dav-sync data-loss prevention
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 144
diff changeset
69 char* create_tmp_download_path(char *path);
65
d4077e8175f3 added optional trash for deleted files
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 64
diff changeset
70 void move_to_trash(SyncDirectory *dir, char *path);
49
c5759ac76c1b dav-sync detects locally removed files
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 47
diff changeset
71 UcxList* local_scan(SyncDirectory *dir, SyncDatabase *db);
53
ddc4efc9b0f8 added usage info and some options
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 52
diff changeset
72 UcxList* read_changes(SyncDirectory *dir, SyncDatabase *db);
64
112dbf7ba8b0 changed sync behavior
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 53
diff changeset
73 LocalResource* local_resource_new(SyncDirectory *dir, SyncDatabase *db, char *path, int *isdir);
302
395763c0ee69 adds SIGINT handler to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 299
diff changeset
74 LocalResource* local_resource_copy(LocalResource *res);
64
112dbf7ba8b0 changed sync behavior
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 53
diff changeset
75 int local_resource_is_changed(SyncDirectory *dir, SyncDatabase *db, LocalResource *res);
220
f1b3873a6525 added conflict detection to dav-sync push
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 218
diff changeset
76 int remote_resource_is_changed(
f1b3873a6525 added conflict detection to dav-sync push
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 218
diff changeset
77 DavSession *sn,
f1b3873a6525 added conflict detection to dav-sync push
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 218
diff changeset
78 SyncDirectory *dir,
f1b3873a6525 added conflict detection to dav-sync push
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 218
diff changeset
79 SyncDatabase *db,
f1b3873a6525 added conflict detection to dav-sync push
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 218
diff changeset
80 LocalResource *res);
47
fbbbeed4ba8f added push command for dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 46
diff changeset
81
144
c2c02c9b3be4 dav-sync detects broken uploads
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 75
diff changeset
82 int sync_set_status(DavResource *res, char *status);
c2c02c9b3be4 dav-sync detects broken uploads
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 75
diff changeset
83 int sync_remove_status(DavResource *res);
192
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
84 int sync_put_resource(
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
85 SyncDirectory *dir,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
86 DavResource *res,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
87 LocalResource *local,
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
88 int *counter);
190
a76e43d89f55 dav-sync can create and delete empty directories now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 185
diff changeset
89 int sync_mkdir(SyncDirectory *dir, DavResource *res, LocalResource *local);
192
d10194a51304 dav-sync prints a small report after successful sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 190
diff changeset
90 int sync_delete_remote_resource(DavSession *sn, LocalResource *res, int *counter);
47
fbbbeed4ba8f added push command for dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 46
diff changeset
91
218
5f1f7602cf77 automatically remove deleted conflict files from the db
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 217
diff changeset
92 void remove_deleted_conflicts(SyncDirectory *dir, SyncDatabase *db);
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93
217
12bad63cf5a8 added resolve-conflicts and delete-conflicts commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 216
diff changeset
94 int cmd_resolve_conflicts(CmdArgs *args);
12bad63cf5a8 added resolve-conflicts and delete-conflicts commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 216
diff changeset
95 int cmd_delete_conflicts(CmdArgs *args);
12bad63cf5a8 added resolve-conflicts and delete-conflicts commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 216
diff changeset
96
204
4f0207044837 added trash-info and empty-trash commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 200
diff changeset
97 int cmd_trash_info(CmdArgs *args);
4f0207044837 added trash-info and empty-trash commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 200
diff changeset
98 int cmd_empty_trash(CmdArgs *args);
200
cc474cf2c2f5 added add-directory command to dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 192
diff changeset
99 int cmd_add_directory(CmdArgs *args);
256
54433cb371df implements check-repositories command for dav-sync
Mike Becker <universe@uap-core.de>
parents: 252
diff changeset
100 int cmd_list_dirs();
252
6b8e287269fc improves config error reporting and adds check (check-config) command + dav-sync no longer aborts on missing sync.xml
Mike Becker <universe@uap-core.de>
parents: 220
diff changeset
101 int cmd_check_repositories();
6b8e287269fc improves config error reporting and adds check (check-config) command + dav-sync no longer aborts on missing sync.xml
Mike Becker <universe@uap-core.de>
parents: 220
diff changeset
102
296
bb49953b1cf8 dav-sync writes the locktoken to a file now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 256
diff changeset
103 char* create_locktoken_file(const char *syncdirname, const char *locktoken);
bb49953b1cf8 dav-sync writes the locktoken to a file now
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 256
diff changeset
104
46
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105 #ifdef __cplusplus
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 }
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 #endif
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 #endif /* SYNC_H */
0542668d0f26 added new sync tool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110

mercurial