diff -r ac5ac55b1b2e -r da2b0cc44e4f libidav/webdav.h --- a/libidav/webdav.h Tue Mar 12 09:35:04 2019 +0100 +++ b/libidav/webdav.h Wed Mar 13 12:52:24 2019 +0100 @@ -59,6 +59,7 @@ typedef struct DavPropName DavPropName; typedef struct DavKey DavKey; typedef struct DavXmlNode DavXmlNode; +typedef struct DavXmlAttr DavXmlAttr; typedef size_t(*dav_read_func)(void*, size_t, size_t, void*); typedef size_t(*dav_write_func)(const void*, size_t, size_t, void*); @@ -206,12 +207,18 @@ DavXmlNode *children; DavXmlNode *parent; - // TODO: attributes + DavXmlAttr *attributes; char *content; size_t contentlength; }; +struct DavXmlAttr { + char *name; + char *value; + DavXmlAttr *next; +}; + DavContext* dav_context_new(); void dav_context_destroy(DavContext *ctx); @@ -333,6 +340,7 @@ DavXmlNode* dav_xml_createnode_with_text(const char *ns, const char *name, const char *text); DavXmlNode* dav_xml_createtextnode(const char *text); void dav_xml_add_child(DavXmlNode *node, DavXmlNode *child); +void dav_xml_add_attr(DavXmlNode *node, const char *name, const char *value); DavXmlNode* dav_parse_xml(DavSession *sn, const char *str, size_t len);