93 char *collection = NULL; |
93 char *collection = NULL; |
94 char *repository = NULL; |
94 char *repository = NULL; |
95 char *database = NULL; |
95 char *database = NULL; |
96 UcxList *include = NULL; |
96 UcxList *include = NULL; |
97 UcxList *exclude = NULL; |
97 UcxList *exclude = NULL; |
|
98 int max_retry = DAV_MAX_RETRY; |
|
99 bool backuppull = false; |
98 |
100 |
99 node = node->children; |
101 node = node->children; |
100 while(node) { |
102 while(node) { |
101 if(node->type == XML_ELEMENT_NODE) { |
103 if(node->type == XML_ELEMENT_NODE) { |
102 char *value = util_xml_get_text(node); |
104 char *value = util_xml_get_text(node); |
116 database = value; |
118 database = value; |
117 } else if(xstreq(node->name, "include")) { |
119 } else if(xstreq(node->name, "include")) { |
118 include = add_regex_pattern(include, value); |
120 include = add_regex_pattern(include, value); |
119 } else if(xstreq(node->name, "exclude")) { |
121 } else if(xstreq(node->name, "exclude")) { |
120 exclude = add_regex_pattern(exclude, value); |
122 exclude = add_regex_pattern(exclude, value); |
|
123 } else if(xstreq(node->name, "max-retry")) { |
|
124 int64_t i; |
|
125 if(util_strtoint(value, &i)) { |
|
126 max_retry = (int)i; |
|
127 } else { |
|
128 fprintf(stderr, "Warnung: sync.xml: integer value " |
|
129 "expected in <max-retry> element\n"); |
|
130 } |
|
131 } else if(xstreq(node->name, "backup-on-pull")) { |
|
132 backuppull = util_getboolean(value); |
121 } |
133 } |
122 } |
134 } |
123 node = node->next; |
135 node = node->next; |
124 } |
136 } |
125 |
137 |
144 dir->name = strdup(name); |
156 dir->name = strdup(name); |
145 dir->path = strdup(path); |
157 dir->path = strdup(path); |
146 dir->collection = collection ? strdup(collection) : NULL; |
158 dir->collection = collection ? strdup(collection) : NULL; |
147 dir->repository = strdup(repository); |
159 dir->repository = strdup(repository); |
148 dir->database = strdup(database); |
160 dir->database = strdup(database); |
149 dir->max_retry = DAV_MAX_RETRY; |
161 dir->max_retry = max_retry; |
|
162 dir->backuppull = backuppull; |
150 if (include) { |
163 if (include) { |
151 dir->include = include; |
164 dir->include = include; |
152 } else { |
165 } else { |
153 regex_t *matchall = malloc(sizeof(regex_t)); |
166 regex_t *matchall = malloc(sizeof(regex_t)); |
154 regcomp(matchall, ".*", REG_NOSUB); |
167 regcomp(matchall, ".*", REG_NOSUB); |