dav/db.c

changeset 367
4a6a59f89f9f
parent 366
5228b912c925
child 521
c5bbae4b3cca
equal deleted inserted replaced
366:5228b912c925 367:4a6a59f89f9f
120 field = 1; 120 field = 1;
121 } else if(xstreq(name, "lastmodified")) { 121 } else if(xstreq(name, "lastmodified")) {
122 field = 2; 122 field = 2;
123 } else if(xstreq(name, "size")) { 123 } else if(xstreq(name, "size")) {
124 field = 3; 124 field = 3;
125 } else if(xstreq(name, "tags-hash")) {
126 field = 4;
125 } else if(xstreq(name, "skipped")) { 127 } else if(xstreq(name, "skipped")) {
126 res->skipped = TRUE; 128 res->skipped = TRUE;
127 } else if(xstreq(name, "tags-updated")) { 129 } else if(xstreq(name, "tags-updated")) {
128 res->tags_updated = TRUE; 130 res->tags_updated = TRUE;
129 } 131 }
161 res->size = (size_t)filelen; 163 res->size = (size_t)filelen;
162 } 164 }
163 } 165 }
164 break; 166 break;
165 } 167 }
168 case 4: {
169 res->tags_hash = strdup((char*)value);
170 break;
171 }
166 } 172 }
167 } else if(XML_READER_TYPE_END_ELEMENT) { 173 } else if(XML_READER_TYPE_END_ELEMENT) {
168 if(xstreq(name, "resource")) { 174 if(xstreq(name, "resource")) {
169 break; 175 break;
170 } else { 176 } else {
284 fprintf(stderr, "Cannot write size\n"); 290 fprintf(stderr, "Cannot write size\n");
285 xmlFreeTextWriter(writer); 291 xmlFreeTextWriter(writer);
286 return -1; 292 return -1;
287 } 293 }
288 294
295 if(res->tags_hash) {
296 r = xmlTextWriterWriteElement(
297 writer,
298 BAD_CAST "tags-hash",
299 BAD_CAST res->tags_hash);
300 if(r < 0) {
301 fprintf(stderr, "Cannot write tags-hash: %s\n", res->etag);
302 xmlFreeTextWriter(writer);
303 return -1;
304 }
305 }
306
289 if(res->skipped) { 307 if(res->skipped) {
290 r = xmlTextWriterStartElement(writer, BAD_CAST "skipped"); 308 r = xmlTextWriterStartElement(writer, BAD_CAST "skipped");
291 r += xmlTextWriterEndElement(writer); 309 r += xmlTextWriterEndElement(writer);
292 if(r < 0) { 310 if(r < 0) {
293 fprintf(stderr, "Cannot write skipped\n"); 311 fprintf(stderr, "Cannot write skipped\n");
372 free(res->path); 390 free(res->path);
373 } 391 }
374 if(res->etag) { 392 if(res->etag) {
375 free(res->etag); 393 free(res->etag);
376 } 394 }
395 if(res->cached_tags) {
396 ucx_buffer_free(res->cached_tags);
397 }
398 if(res->tags_hash) {
399 free(res->tags_hash);
400 }
377 free(res); 401 free(res);
378 } 402 }

mercurial