/* Implements svn_ra_serf__request_body_delegate_t */ static svn_error_t* create_merge_body(serf_bucket_t **bkt, void *baton, serf_bucket_alloc_t *alloc, apr_pool_t *pool /* request pool */, apr_pool_t *scratch_pool) { merge_context_t *ctx = baton; serf_bucket_t *body_bkt; body_bkt = serf_bucket_aggregate_create(alloc); svn_ra_serf__add_xml_header_buckets(body_bkt, alloc); svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:merge", "xmlns:D", "DAV:", SVN_VA_NULL); svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:source", SVN_VA_NULL); svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:href", SVN_VA_NULL); svn_ra_serf__add_cdata_len_buckets(body_bkt, alloc, ctx->merge_resource_url, strlen(ctx->merge_resource_url)); svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:href"); svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:source"); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:no-auto-merge", SVN_VA_NULL); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:no-checkout", SVN_VA_NULL); svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:prop", SVN_VA_NULL); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:checked-in", SVN_VA_NULL); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:" SVN_DAV__VERSION_NAME, SVN_VA_NULL); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:resourcetype", SVN_VA_NULL); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:" SVN_DAV__CREATIONDATE, SVN_VA_NULL); svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc, "D:creator-displayname", SVN_VA_NULL); svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:prop"); svn_ra_serf__merge_lock_token_list(ctx->lock_tokens, NULL, body_bkt, alloc, pool); svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:merge"); *bkt = body_bkt; return SVN_NO_ERROR; }
/* Implements svn_ra_serf__request_body_delegate_t */ static svn_error_t * create_file_revs_body(serf_bucket_t **body_bkt, void *baton, serf_bucket_alloc_t *alloc, apr_pool_t *pool /* request pool */, apr_pool_t *scratch_pool) { serf_bucket_t *buckets; blame_context_t *blame_ctx = baton; buckets = serf_bucket_aggregate_create(alloc); svn_ra_serf__add_open_tag_buckets(buckets, alloc, "S:file-revs-report", "xmlns:S", SVN_XML_NAMESPACE, SVN_VA_NULL); svn_ra_serf__add_tag_buckets(buckets, "S:start-revision", apr_ltoa(pool, blame_ctx->start), alloc); svn_ra_serf__add_tag_buckets(buckets, "S:end-revision", apr_ltoa(pool, blame_ctx->end), alloc); if (blame_ctx->include_merged_revisions) { svn_ra_serf__add_empty_tag_buckets(buckets, alloc, "S:include-merged-revisions", SVN_VA_NULL); } svn_ra_serf__add_tag_buckets(buckets, "S:path", blame_ctx->path, alloc); svn_ra_serf__add_close_tag_buckets(buckets, alloc, "S:file-revs-report"); *body_bkt = buckets; return SVN_NO_ERROR; }
/* Implements svn_ra_serf__request_body_delegate_t */ static svn_error_t * create_list_body(serf_bucket_t **body_bkt, void *baton, serf_bucket_alloc_t *alloc, apr_pool_t *pool /* request pool */, apr_pool_t *scratch_pool) { serf_bucket_t *buckets; list_context_t *list_ctx = baton; int i; buckets = serf_bucket_aggregate_create(alloc); svn_ra_serf__add_open_tag_buckets(buckets, alloc, "S:list-report", "xmlns:S", SVN_XML_NAMESPACE, SVN_VA_NULL); svn_ra_serf__add_tag_buckets(buckets, "S:path", list_ctx->path, alloc); svn_ra_serf__add_tag_buckets(buckets, "S:revision", apr_ltoa(pool, list_ctx->revision), alloc); svn_ra_serf__add_tag_buckets(buckets, "S:depth", svn_depth_to_word(list_ctx->depth), alloc); if (list_ctx->patterns) { for (i = 0; i < list_ctx->patterns->nelts; i++) { char *name = APR_ARRAY_IDX(list_ctx->patterns, i, char *); svn_ra_serf__add_tag_buckets(buckets, "S:pattern", name, alloc); } if (list_ctx->patterns->nelts == 0) { svn_ra_serf__add_empty_tag_buckets(buckets, alloc, "S:no-patterns", SVN_VA_NULL); } } for (i = 0; i < list_ctx->props->nelts; i++) { const svn_ra_serf__dav_props_t *prop = &APR_ARRAY_IDX(list_ctx->props, i, const svn_ra_serf__dav_props_t); const char *name = apr_pstrcat(pool, prop->xmlns, prop->name, SVN_VA_NULL); svn_ra_serf__add_tag_buckets(buckets, "S:prop", name, alloc); } svn_ra_serf__add_close_tag_buckets(buckets, alloc, "S:list-report"); *body_bkt = buckets; return SVN_NO_ERROR; }