LibreOffice Module ucb (master)  1
SerfCallbacks.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include "SerfCallbacks.hxx"
21 
22 #include "SerfSession.hxx"
23 #include "SerfRequestProcessor.hxx"
24 
25 using namespace http_dav_ucp;
26 
27 extern "C" apr_status_t Serf_ConnectSetup( apr_socket_t *skt,
28  serf_bucket_t **read_bkt,
29  serf_bucket_t **write_bkt,
30  void *setup_baton,
31  apr_pool_t *pool )
32 {
33  SerfSession* pSerfSession = static_cast< SerfSession* >( setup_baton );
34  return pSerfSession->setupSerfConnection( skt,
35  read_bkt,
36  write_bkt,
37  pool );
38 }
39 
40 extern "C" apr_status_t Serf_Credentials( char **username,
41  char **password,
42  serf_request_t *request,
43  void *baton,
44  int code,
45  const char *authn_type,
46  const char *realm,
47  apr_pool_t *pool )
48 {
49  SerfRequestProcessor* pReqProc = static_cast< SerfRequestProcessor* >( baton );
50  return pReqProc->provideSerfCredentials( username,
51  password,
52  request,
53  code,
54  authn_type,
55  realm,
56  pool );
57 }
58 
59 extern "C" apr_status_t Serf_CertificateChainValidation(
60  void* pSerfSession,
61  int nFailures,
62  int /*nErrorCode*/,
63  const serf_ssl_certificate_t * const * pCertificateChainBase64Encoded,
64  apr_size_t nCertificateChainLength)
65 {
66  return static_cast<SerfSession*>(pSerfSession)
67  ->verifySerfCertificateChain(nFailures, pCertificateChainBase64Encoded, nCertificateChainLength);
68 }
69 
70 extern "C" apr_status_t Serf_SetupRequest( serf_request_t *request,
71  void *setup_baton,
72  serf_bucket_t **req_bkt,
73  serf_response_acceptor_t *acceptor,
74  void **acceptor_baton,
75  serf_response_handler_t *handler,
76  void **handler_baton,
77  apr_pool_t * pool )
78 {
79  SerfRequestProcessor* pReqProc = static_cast< SerfRequestProcessor* >( setup_baton );
80  return pReqProc->setupSerfRequest( request,
81  req_bkt,
82  acceptor,
83  acceptor_baton,
84  handler,
85  handler_baton,
86  pool );
87 }
88 
89 extern "C" serf_bucket_t* Serf_AcceptResponse( serf_request_t *request,
90  serf_bucket_t *stream,
91  void *acceptor_baton,
92  apr_pool_t *pool )
93 {
94  SerfRequestProcessor* pReqProc = static_cast< SerfRequestProcessor* >( acceptor_baton );
95  return pReqProc->acceptSerfResponse( request,
96  stream,
97  pool );
98 }
99 
100 extern "C" apr_status_t Serf_HandleResponse( serf_request_t *request,
101  serf_bucket_t *response,
102  void *handler_baton,
103  apr_pool_t *pool )
104 {
105  SerfRequestProcessor* pReqProc = static_cast< SerfRequestProcessor* >( handler_baton );
106  return pReqProc->handleSerfResponse( request,
107  response,
108  pool );
109 }
110 
111 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
apr_status_t Serf_CertificateChainValidation(void *pSerfSession, int nFailures, int, const serf_ssl_certificate_t *const *pCertificateChainBase64Encoded, apr_size_t nCertificateChainLength)
apr_status_t Serf_HandleResponse(serf_request_t *request, serf_bucket_t *response, void *handler_baton, apr_pool_t *pool)
apr_status_t setupSerfConnection(apr_socket_t *inAprSocket, serf_bucket_t **outSerfInputBucket, serf_bucket_t **outSerfOutputBucket, apr_pool_t *inAprPool)
apr_status_t Serf_SetupRequest(serf_request_t *request, void *setup_baton, serf_bucket_t **req_bkt, serf_response_acceptor_t *acceptor, void **acceptor_baton, serf_response_handler_t *handler, void **handler_baton, apr_pool_t *pool)
apr_status_t Serf_ConnectSetup(apr_socket_t *skt, serf_bucket_t **read_bkt, serf_bucket_t **write_bkt, void *setup_baton, apr_pool_t *pool)
apr_status_t Serf_Credentials(char **username, char **password, serf_request_t *request, void *baton, int code, const char *authn_type, const char *realm, apr_pool_t *pool)
serf_bucket_t * Serf_AcceptResponse(serf_request_t *request, serf_bucket_t *stream, void *acceptor_baton, apr_pool_t *pool)
apr_status_t provideSerfCredentials(char **outUsername, char **outPassword, serf_request_t *inRequest, int inCode, const char *inAuthProtocol, const char *inRealm, apr_pool_t *inAprPool)
apr_status_t setupSerfRequest(serf_request_t *inSerfRequest, serf_bucket_t **outSerfRequestBucket, serf_response_acceptor_t *outSerfResponseAcceptor, void **outSerfResponseAcceptorBaton, serf_response_handler_t *outSerfResponseHandler, void **outSerfResponseHandlerBaton, apr_pool_t *inAprPool)
serf_bucket_t * acceptSerfResponse(serf_request_t *inSerfRequest, serf_bucket_t *inSerfStreamBucket, apr_pool_t *inAprPool)
apr_status_t handleSerfResponse(serf_request_t *inSerfRequest, serf_bucket_t *inSerfResponseBucket, apr_pool_t *inAprPool)