46 xmlDoc *document; |
46 xmlDoc *document; |
47 xmlNode *current; |
47 xmlNode *current; |
48 }; |
48 }; |
49 |
49 |
50 struct ResponseTag { |
50 struct ResponseTag { |
51 char *href; |
51 const char *href; |
52 int iscollection; |
52 int iscollection; |
53 UcxList *properties; |
53 CxList *properties; |
54 char *crypto_name; |
54 const char *crypto_name; |
55 char *crypto_key; |
55 const char *crypto_key; |
56 }; |
56 }; |
57 |
57 |
58 struct LockDiscovery { |
58 struct LockDiscovery { |
59 char *timeout; |
59 char *timeout; |
60 char *locktoken; |
60 char *locktoken; |
61 }; |
61 }; |
62 |
62 |
63 int dav_buffer_seek(UcxBuffer *b, curl_off_t offset, int origin); |
63 int dav_buffer_seek(CxBuffer *b, curl_off_t offset, int origin); |
64 |
64 |
65 CURLcode do_propfind_request( |
65 CURLcode do_propfind_request( |
66 DavSession *sn, |
66 DavSession *sn, |
67 UcxBuffer *request, |
67 CxBuffer *request, |
68 UcxBuffer *response); |
68 CxBuffer *response); |
69 |
69 |
70 CURLcode do_proppatch_request( |
70 CURLcode do_proppatch_request( |
71 DavSession *sn, |
71 DavSession *sn, |
72 char *lock, |
72 char *lock, |
73 UcxBuffer *request, |
73 CxBuffer *request, |
74 UcxBuffer *response); |
74 CxBuffer *response); |
75 |
75 |
76 CURLcode do_put_request( |
76 CURLcode do_put_request( |
77 DavSession *sn, |
77 DavSession *sn, |
78 char *lock, |
78 char *lock, |
79 DavBool create, |
79 DavBool create, |
80 void *data, |
80 void *data, |
81 dav_read_func read_func, |
81 dav_read_func read_func, |
82 dav_seek_func seek_func, |
82 dav_seek_func seek_func, |
83 size_t length); |
83 size_t length); |
84 |
84 |
85 UcxBuffer* create_allprop_propfind_request(void); |
85 CxBuffer* create_allprop_propfind_request(void); |
86 UcxBuffer* create_cryptoprop_propfind_request(void); |
86 CxBuffer* create_cryptoprop_propfind_request(void); |
87 UcxBuffer* create_propfind_request(DavSession *sn, UcxList *properties, char *rootelm, DavBool nocrypt); |
87 CxBuffer* create_propfind_request(DavSession *sn, CxList *properties, char *rootelm, DavBool nocrypt); |
88 UcxBuffer* create_basic_propfind_request(void); |
88 CxBuffer* create_basic_propfind_request(void); |
89 |
89 |
90 PropfindParser* create_propfind_parser(UcxBuffer *response, char *url); |
90 PropfindParser* create_propfind_parser(CxBuffer *response, char *url); |
91 void destroy_propfind_parser(PropfindParser *parser); |
91 void destroy_propfind_parser(PropfindParser *parser); |
92 int get_propfind_response(PropfindParser *parser, ResponseTag *result); |
92 int get_propfind_response(PropfindParser *parser, ResponseTag *result); |
93 void cleanup_response(ResponseTag *result); |
93 void cleanup_response(ResponseTag *result); |
94 |
94 |
95 int hrefeq(DavSession *sn, char *href1, char *href2); |
95 int hrefeq(DavSession *sn, const char *href1, const char *href2); |
96 DavResource* response2resource(DavSession *sn, ResponseTag *response, char *parent_path); |
96 DavResource* response2resource(DavSession *sn, ResponseTag *response, char *parent_path); |
97 void add_properties(DavResource *res, ResponseTag *response); |
97 void add_properties(DavResource *res, ResponseTag *response); |
98 |
98 |
99 DavResource* parse_propfind_response(DavSession *sn, DavResource *root, UcxBuffer *response); |
99 DavResource* parse_propfind_response(DavSession *sn, DavResource *root, CxBuffer *response); |
100 int parse_response_tag(DavResource *resource, xmlNode *node); |
100 int parse_response_tag(DavResource *resource, xmlNode *node); |
101 void set_davprops(DavResource *res); |
101 void set_davprops(DavResource *res); |
102 |
102 |
103 /* |
103 /* |
104 * parses the content of a resourcetype element |
104 * parses the content of a resourcetype element |
105 * returns 1 if the resourcetype is a collection, 0 otherwise |
105 * returns 1 if the resourcetype is a collection, 0 otherwise |
106 */ |
106 */ |
107 int parse_resource_type(xmlNode *node); |
107 int parse_resource_type(xmlNode *node); |
108 |
108 |
109 UcxBuffer* create_proppatch_request(DavResourceData *data); |
109 CxBuffer* create_proppatch_request(DavResourceData *data); |
110 UcxBuffer* create_crypto_proppatch_request(DavSession *sn, DavKey *key, const char *name, const char *hash); |
110 CxBuffer* create_crypto_proppatch_request(DavSession *sn, DavKey *key, const char *name, const char *hash); |
111 |
111 |
112 CURLcode do_delete_request(DavSession *sn, char *lock, UcxBuffer *response); |
112 CURLcode do_delete_request(DavSession *sn, char *lock, CxBuffer *response); |
113 |
113 |
114 CURLcode do_mkcol_request(DavSession *sn, char *lock); |
114 CURLcode do_mkcol_request(DavSession *sn, char *lock); |
115 |
115 |
116 CURLcode do_head_request(DavSession *sn); |
116 CURLcode do_head_request(DavSession *sn); |
117 |
117 |
118 CURLcode do_copy_move_request(DavSession *sn, char *dest, char *lock, DavBool copy, DavBool override); |
118 CURLcode do_copy_move_request(DavSession *sn, char *dest, char *lock, DavBool copy, DavBool override); |
119 |
119 |
120 UcxBuffer* create_lock_request(void); |
120 CxBuffer* create_lock_request(void); |
121 int parse_lock_response(DavSession *sn, UcxBuffer *response, LockDiscovery *lock); |
121 int parse_lock_response(DavSession *sn, CxBuffer *response, LockDiscovery *lock); |
122 CURLcode do_lock_request(DavSession *sn, UcxBuffer *request, UcxBuffer *response, time_t timeout); |
122 CURLcode do_lock_request(DavSession *sn, CxBuffer *request, CxBuffer *response, time_t timeout); |
123 CURLcode do_unlock_request(DavSession *sn, char *locktoken); |
123 CURLcode do_unlock_request(DavSession *sn, char *locktoken); |
124 |
124 |
125 CURLcode do_simple_request(DavSession *sn, char *method, char *locktoken); |
125 CURLcode do_simple_request(DavSession *sn, char *method, char *locktoken); |
126 |
126 |
127 CURLcode do_report_request(DavSession *sn, UcxBuffer *request, UcxBuffer *response); |
127 CURLcode do_report_request(DavSession *sn, CxBuffer *request, CxBuffer *response); |
128 |
128 |
129 #ifdef __cplusplus |
129 #ifdef __cplusplus |
130 } |
130 } |
131 #endif |
131 #endif |
132 |
132 |