Sat, 22 Jun 2019 16:36:52 +0200
move some properties to new namespace
for properties encryption we need to decide which props must be encrypted and the plan is, to decide by namespace
410
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
1 | /* |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
3 | * |
576
62cc92445234
store relative link in LocalResource
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
574
diff
changeset
|
4 | * Copyright 2019 Olaf Wintermann. All rights reserved. |
410
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
5 | * |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
6 | * Redistribution and use in source and binary forms, with or without |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
7 | * modification, are permitted provided that the following conditions are met: |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
8 | * |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
9 | * 1. Redistributions of source code must retain the above copyright |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
10 | * notice, this list of conditions and the following disclaimer. |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
11 | * |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
12 | * 2. Redistributions in binary form must reproduce the above copyright |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
13 | * notice, this list of conditions and the following disclaimer in the |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
14 | * documentation and/or other materials provided with the distribution. |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
15 | * |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
0b9bea2d7283
adds file io abstraction functions
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 |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
26 | * POSSIBILITY OF SUCH DAMAGE. |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
27 | */ |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
28 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
29 | #ifndef DAV_SYSTEM_H |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
30 | #define DAV_SYSTEM_H |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
31 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
32 | #include <stdio.h> |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
33 | #include <time.h> |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
34 | #include <sys/types.h> |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
35 | #include <sys/stat.h> |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
36 | #include <dirent.h> |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
37 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
38 | #ifdef _WIN32 |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
39 | #include <Windows.h> |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
40 | #endif |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
41 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
42 | #ifdef __cplusplus |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
43 | extern "C" { |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
44 | #endif |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
45 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
46 | typedef struct SysDirEnt { |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
47 | char *name; |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
48 | } SysDirEnt; |
411
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
49 | |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
50 | #ifdef _WIN32 |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
51 | struct WinDir { |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
52 | int first; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
53 | HANDLE handle; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
54 | WIN32_FIND_DATAW finddata; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
55 | SysDirEnt *ent; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
56 | }; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
57 | #define SYS_DIR struct WinDir* |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
58 | #define SYS_STAT struct __stat64 |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
59 | |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
60 | #else |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
61 | |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
62 | typedef struct SysDir { |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
63 | DIR *dir; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
64 | SysDirEnt *ent; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
65 | } SysDir; |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
66 | |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
67 | #define SYS_DIR SysDir* |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
68 | #define SYS_STAT struct stat |
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
69 | #endif |
410
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
70 | |
582
7aec3e6cab1f
fix stat_func typedef
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
581
diff
changeset
|
71 | typedef int(*stat_func)(const char*, SYS_STAT *); |
581
3f9a9c80a2d2
fix that symlink config was not used in sync_get_resource
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
578
diff
changeset
|
72 | |
410
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
73 | void sys_freedirent(SysDirEnt *ent); |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
74 | SYS_DIR sys_opendir(const char *path); |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
75 | SysDirEnt* sys_readdir(SYS_DIR dir); |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
76 | void sys_closedir(SYS_DIR dir); |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
77 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
78 | FILE* sys_fopen(const char *path, const char *mode); |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
79 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
80 | int sys_stat(const char *path, SYS_STAT *s); |
574
c36eddf167a8
read link on LocalResource creation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
448
diff
changeset
|
81 | int sys_lstat(const char *path, SYS_STAT *s); |
410
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
82 | |
411
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
83 | int sys_rename(const char *oldpath, const char *newpath); |
412
dc74f736aea1
adds more fs abstraction
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
411
diff
changeset
|
84 | int sys_unlink(const char *path); |
dc74f736aea1
adds more fs abstraction
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
411
diff
changeset
|
85 | int sys_mkdir(const char *path); |
411
a182e503617b
using new io abstraction in dav-sync
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
410
diff
changeset
|
86 | |
574
c36eddf167a8
read link on LocalResource creation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
448
diff
changeset
|
87 | ssize_t sys_readlink(const char *path, char *buffer, size_t size); |
c36eddf167a8
read link on LocalResource creation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
448
diff
changeset
|
88 | |
578
bb1e60fada74
create symlinks on pull
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
576
diff
changeset
|
89 | int sys_symlink(const char *target, const char *linkpath); |
bb1e60fada74
create symlinks on pull
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
576
diff
changeset
|
90 | |
410
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
91 | #ifdef __cplusplus |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
92 | } |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
93 | #endif |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
94 | |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
95 | #endif /* DAV_SYSTEM_H */ |
0b9bea2d7283
adds file io abstraction functions
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
96 |