PingAccess Agent SDK for C
paa.h
Go to the documentation of this file.
1 /*****************************************************
2  * Copyright (C) 2015 Ping Identity Corporation
3  * All rights reserved.
4  *
5  * The contents of this file are the property of Ping Identity Corporation.
6  * You may not copy or use this file, in either source code or executable
7  * form, except in compliance with terms set by Ping Identity Corporation.
8  * For further information please contact:
9  *
10  * Ping Identity Corporation
11  * 1001 17th St Suite 100
12  * Denver, CO 80202
13  * 303.468.2900
14  * http://www.pingidentity.com
15  *
16  ****************************************************/
17 
33 #ifndef _PAA_SDK_PAA_H_
34 #define _PAA_SDK_PAA_H_ 1
35 
36 #include <stdlib.h>
37 
38 #include "apr.h"
39 #include "apr_pools.h"
40 
41 #include "paa-http-server-facade.h"
42 #include "paa-http-client.h"
43 #include "paa-config.h"
44 #include "paa-cache.h"
45 #include "paa-log.h"
46 #include "paa-util.h"
47 
49 #define APR_PAA_REQ_ALLOWED (APR_PAA_MODULE_START + 0)
50 
52 #define APR_PAA_REQ_DENIED (APR_PAA_MODULE_START + 1)
53 
55 #define APR_PAA_REQ_AGAIN (APR_PAA_MODULE_START + 2)
56 
58 #define APR_PAA_CACHE_HIT (APR_PAA_MODULE_START + 3)
59 
61 #define APR_PAA_CACHE_MISS (APR_PAA_MODULE_START + 4)
62 
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66 
70 const char *paa_get_version();
71 
76 const char *paa_get_paap_version();
77 
93 apr_status_t paa_cache_lookup(apr_pool_t *request_pool,
94  const paa_cache *cache,
95  const paa_client_request *client_req,
96  const paa_agent_response **agent_resp);
97 
105 void paa_agent_resp_get_status(const paa_agent_response *agent_resp,
106  int *status,
107  const char **reason);
108 
113 typedef struct paa_header_iter_struct paa_header_iter;
114 
118 typedef struct paa_header_item_struct {
120  const char *name;
121 
123  const char *value;
125 
137 apr_status_t paa_agent_resp_headers_begin(const paa_agent_response *agent_resp,
138  apr_pool_t *request_pool,
139  paa_header_iter **iter);
140 
150 apr_status_t paa_headers_next(paa_header_iter *iter,
151  paa_header_item *output);
152 
157 typedef struct paa_msg_body_iter_struct paa_msg_body_iter;
158 
162 typedef struct paa_msg_body_item_struct {
164  const unsigned char *data;
165 
167  size_t size;
169 
180 apr_status_t paa_agent_resp_body_begin(const paa_agent_response *agent_resp,
181  apr_pool_t *request_pool,
182  paa_msg_body_iter **iter);
183 
193 apr_status_t paa_msg_body_next(paa_msg_body_iter *iter,
194  paa_msg_body_item *output);
195 
215 apr_status_t paa_configure_agent_request(apr_pool_t *request_pool,
216  const paa_config *config,
217  const paa_client_request *client_req,
218  const paa_agent_response *agent_resp,
219  const paa_http_request *request);
220 
246 apr_status_t paa_process_agent_response(apr_pool_t *request_pool,
247  const paa_http_response *raw_response,
248  const paa_cache *cache,
249  const paa_client_request *client_req,
250  const paa_agent_response *last_resp,
251  const paa_agent_response **agent_resp);
252 
258 
266 
278 apr_status_t paa_client_request_modify(apr_pool_t *request_pool,
279  const paa_client_request *req,
280  const paa_agent_response *resp);
281 
289 
304 apr_status_t paa_client_response_modify(apr_pool_t *request_pool,
305  const paa_client_response *client_resp,
306  const paa_agent_response *agent_resp);
307 
333 apr_status_t paa_submit_agent_request(apr_pool_t *request_pool,
334  const paa_http_client *http_client,
335  const paa_config *config,
336  const paa_cache *cache,
337  const paa_client_request *client_req,
338  const paa_client_response *client_resp,
339  const paa_agent_response **agent_resp);
340 
341 #ifdef __cplusplus
342 } /* C */
343 #endif
344 
345 #endif /* _PAA_SDK_PAA_H_ */
apr_status_t paa_client_request_modify(apr_pool_t *request_pool, const paa_client_request *req, const paa_agent_response *resp)
Definition: paa-http-client.h:340
apr_status_t paa_configure_agent_request(apr_pool_t *request_pool, const paa_config *config, const paa_client_request *client_req, const paa_agent_response *agent_resp, const paa_http_request *request)
struct paa_msg_body_item_struct paa_msg_body_item
Definition: paa-http-client.h:162
apr_status_t paa_msg_body_next(paa_msg_body_iter *iter, paa_msg_body_item *output)
struct paa_header_iter_struct paa_header_iter
Definition: paa.h:113
const char * paa_get_version()
apr_status_t paa_submit_agent_request(apr_pool_t *request_pool, const paa_http_client *http_client, const paa_config *config, const paa_cache *cache, const paa_client_request *client_req, const paa_client_response *client_resp, const paa_agent_response **agent_resp)
void paa_agent_resp_get_status(const paa_agent_response *agent_resp, int *status, const char **reason)
apr_status_t paa_agent_resp_headers_begin(const paa_agent_response *agent_resp, apr_pool_t *request_pool, paa_header_iter **iter)
Definition: paa-http-server-facade.h:92
const char * paa_get_paap_version()
apr_status_t paa_client_response_modify(apr_pool_t *request_pool, const paa_client_response *client_resp, const paa_agent_response *agent_resp)
const char * value
Definition: paa.h:123
struct paa_msg_body_iter_struct paa_msg_body_iter
Definition: paa.h:157
Definition: paa-http-server-facade.h:418
apr_status_t paa_agent_resp_body_begin(const paa_agent_response *agent_resp, apr_pool_t *request_pool, paa_msg_body_iter **iter)
Definition: paa-cache.h:69
int paa_agent_response_req_allowed(const paa_agent_response *resp)
int paa_agent_response_modifies_response(const paa_agent_response *resp)
apr_status_t paa_headers_next(paa_header_iter *iter, paa_header_item *output)
const unsigned char * data
Definition: paa.h:164
const char * name
Definition: paa.h:120
size_t size
Definition: paa.h:167
apr_status_t paa_process_agent_response(apr_pool_t *request_pool, const paa_http_response *raw_response, const paa_cache *cache, const paa_client_request *client_req, const paa_agent_response *last_resp, const paa_agent_response **agent_resp)
struct paa_header_item_struct paa_header_item
Definition: paa.h:162
int paa_agent_response_modifies_request(const paa_agent_response *resp)
apr_status_t paa_cache_lookup(apr_pool_t *request_pool, const paa_cache *cache, const paa_client_request *client_req, const paa_agent_response **agent_resp)
struct paa_agent_response_struct paa_agent_response
Definition: paa-http-server-facade.h:48
Definition: paa-http-client.h:54
Definition: paa-config.h:53
Definition: paa.h:118