/* Test setting up the openssl library. */ static void test_ssl_init(CuTest *tc) { serf_bucket_t *bkt, *stream; serf_ssl_context_t *ssl_context; apr_status_t status; apr_pool_t *test_pool = test_setup(); serf_bucket_alloc_t *alloc = serf_bucket_allocator_create(test_pool, NULL, NULL); stream = SERF_BUCKET_SIMPLE_STRING("", alloc); bkt = serf_bucket_ssl_decrypt_create(stream, NULL, alloc); ssl_context = serf_bucket_ssl_decrypt_context_get(bkt); bkt = serf_bucket_ssl_encrypt_create(stream, ssl_context, alloc); status = serf_ssl_use_default_certificates(ssl_context); CuAssertIntEquals(tc, APR_SUCCESS, status); test_teardown(test_pool); }
/* Implements svn_ra_serf__request_body_delegate_t */ static svn_error_t * create_propfind_body(serf_bucket_t **bkt, void *setup_baton, serf_bucket_alloc_t *alloc, apr_pool_t *pool /* request pool */, apr_pool_t *scratch_pool) { propfind_context_t *ctx = setup_baton; serf_bucket_t *body_bkt, *tmp; const svn_ra_serf__dav_props_t *prop; svn_boolean_t requested_allprop = FALSE; body_bkt = serf_bucket_aggregate_create(alloc); prop = ctx->find_props; while (prop && prop->xmlns) { /* special case the allprop case. */ if (strcmp(prop->name, "allprop") == 0) { requested_allprop = TRUE; } /* <*propname* xmlns="*propns*" /> */ tmp = SERF_BUCKET_SIMPLE_STRING_LEN("<", 1, alloc); serf_bucket_aggregate_append(body_bkt, tmp); tmp = SERF_BUCKET_SIMPLE_STRING(prop->name, alloc); serf_bucket_aggregate_append(body_bkt, tmp); tmp = SERF_BUCKET_SIMPLE_STRING_LEN(" xmlns=\"", sizeof(" xmlns=\"")-1, alloc); serf_bucket_aggregate_append(body_bkt, tmp); tmp = SERF_BUCKET_SIMPLE_STRING(prop->xmlns, alloc); serf_bucket_aggregate_append(body_bkt, tmp); tmp = SERF_BUCKET_SIMPLE_STRING_LEN("\"/>", sizeof("\"/>")-1, alloc); serf_bucket_aggregate_append(body_bkt, tmp); prop++; } /* If we're not doing an allprop, add <prop> tags. */ if (!requested_allprop) { tmp = SERF_BUCKET_SIMPLE_STRING_LEN("<prop>", sizeof("<prop>")-1, alloc); serf_bucket_aggregate_prepend(body_bkt, tmp); } tmp = SERF_BUCKET_SIMPLE_STRING_LEN(PROPFIND_HEADER, sizeof(PROPFIND_HEADER)-1, alloc); serf_bucket_aggregate_prepend(body_bkt, tmp); if (!requested_allprop) { tmp = SERF_BUCKET_SIMPLE_STRING_LEN("</prop>", sizeof("</prop>")-1, alloc); serf_bucket_aggregate_append(body_bkt, tmp); } tmp = SERF_BUCKET_SIMPLE_STRING_LEN(PROPFIND_TRAILER, sizeof(PROPFIND_TRAILER)-1, alloc); serf_bucket_aggregate_append(body_bkt, tmp); *bkt = body_bkt; return SVN_NO_ERROR; }