1 /* HRR.h  -  Glue functions to adapt apr to both Apache httpd 2.2 and 2.4
2  * Copyright (c) 2015 Synergetics NV (sampo@synergetics.be), All Rights Reserved.
3  * Author: Sampo Kellomaki (sampo@iki.fi)
4  * This is confidential unpublished proprietary source code of the author.
5  * NO WARRANTY, not even implied warranties. Contains trade secrets.
6  * Distribution prohibited unless authorized in writing or as licensed below.
7  * Licensed under Apache License 2.0, see file COPYING.
8  * $Id: HRR.h,v 1.17 2010-01-08 02:10:09 sampo Exp $
9  *
10  * 12.4.2015,  created --Sampo
11  *
12  * http://httpd.apache.org/docs/2.2/developer/
13  * http://modules.apache.org/doc/API.html
14  */
15 
16 #ifndef _HRR_H
17 #define _HRR_H 1
18 
19 #ifdef USE_HRR
20 
21 #define HRRC_headers_in      0
22 #define HRRC_headers_out     1
23 #define HRRC_err_headers_out 2
24 #define HRRC_pool            4
25 #define HRRC_args            5
26 #define HRRC_uri             6
27 #define HRRC_user            7
28 #define HRRC_filename        8
29 #define HRRC_path_info       9
30 #define HRRC_header_only    10
31 #define HRRC_remaining      11
32 #define HRRC_main           12
33 #define HRRC_method_number  13
34 #define HRRC_subprocess_env 14
35 #define HRRC_per_dir_config 15
36 
37 #define HRR_headers_in(r)      HRR_field((r), HRRC_headers_in)
38 #define HRR_headers_out(r)     HRR_field((r), HRRC_headers_out)
39 #define HRR_err_headers_out(r) HRR_field((r), HRRC_err_headers_out)
40 #define HRR_pool(r)            HRR_field((r), HRRC_pool)
41 #define HRR_subprocess_env(r)  HRR_field((r), HRRC_subprocess_env)
42 #define HRR_args(r)            HRR_field((r), HRRC_args)
43 #define HRR_uri(r)             HRR_field((r), HRRC_uri)
44 #define HRR_user(r)            HRR_field((r), HRRC_user)
45 #define HRR_filename(r)        HRR_field((r), HRRC_filename)
46 #define HRR_path_info(r)       HRR_field((r), HRRC_path_info)
47 #define HRR_header_only(r)     HRR_field_int((r), HRRC_header_only)
48 #define HRR_remaining(r)       HRR_field_int((r), HRRC_remaining)
49 #define HRR_main(r)            HRR_field((r), HRRC_main)
50 #define HRR_method_number(r)   HRR_field_int((r), HRRC_method_number)
51 #define HRR_per_dir_config(r)  HRR_field((r), HRRC_per_dir_config)
52 
53 #define HRR_set_args(r,v)      HRR_set_field((r), HRRC_args, (v))
54 #define HRR_set_uri(r,v)       HRR_set_field((r), HRRC_uri,  (v))
55 #define HRR_set_user(r,v)      HRR_set_field((r), HRRC_user, (v))
56 
57 void* HRR_field(request_rec* r, int field);
58 int   HRR_field_int(request_rec* r, int field);
59 void  HRR_set_field(request_rec* r, int field, void* v);
60 
61 #else
62 
63 #define HRR_headers_in(r)      ((r)->headers_in)
64 #define HRR_headers_out(r)     ((r)->headers_out)
65 #define HRR_err_headers_out(r) ((r)->err_headers_out)
66 #define HRR_pool(r)            ((r)->pool)
67 #define HRR_subprocess_env(r)  ((r)->subprocess_env)
68 #define HRR_args(r)            ((r)->args)
69 #define HRR_uri(r)             ((r)->uri)
70 #define HRR_user(r)            ((r)->user)
71 #define HRR_filename(r)        ((r)->filename)
72 #define HRR_path_info(r)       ((r)->path_info)
73 #define HRR_header_only(r)     ((r)->header_only)
74 #define HRR_remaining(r)       ((r)->remaining)
75 #define HRR_main(r)            ((r)->main)
76 #define HRR_method_number(r)   ((r)->method_number)
77 #define HRR_per_dir_config(r)  ((r)->per_dir_config)
78 
79 #define HRR_set_args(r,v)      ((r)->args = (v))
80 #define HRR_set_uri(r,v)       ((r)->uri  = (v))
81 #define HRR_set_user(r,v)      ((r)->user = (v))
82 
83 #endif
84 
85 #endif /* _HRR_H */
86