Core Update of doxygen, removal of history, changing "ser" to "kamailio"
[sip-router] / mod_fix.h
1 /* 
2  * Copyright (C) 2008 iptelorg GmbH
3  *
4  * Permission to use, copy, modify, and distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16
17 /**
18  * @file mod_fix.h
19  * @brief Generic fixup functions for module function parameter.
20  * (kamailio compatibility)
21  * @ingroup core
22  * Module: \ref core
23  */
24
25 #ifndef _mod_fix_h_
26 #define _mod_fix_h_
27
28 #include "sr_module.h"
29 #include "pvar.h"
30
31 #define GPARAM_TYPE_INT         FPARAM_INT
32 #define GPARAM_TYPE_STR         FPARAM_STR
33 #define GPARAM_TYPE_PVS         FPARAM_PVS
34 #define GPARAM_TYPE_PVE         FPARAM_PVE
35
36 /**
37  * generic parameter that holds a string, an int, a pseudo-variable
38  * or a ser select, avp, or subst.
39  * 
40  * Note: used only for compatibility with existing kamailio code,
41  *  please use fparam_t directly in the future.
42  *
43  * @see fparam_t
44  */
45
46 /* reuse ser fparam_t */
47 #define gparam_t fparam_t
48
49 typedef gparam_t *gparam_p;
50
51 int fixup_get_svalue(struct sip_msg* msg, gparam_p gp, str *val);
52
53 /** get a string value out of a fparam_t.
54   *
55   * Note: this macro/function is  for kamailio compatibility
56   * (please use get_str_fparam() directly in the future)
57   *
58   * @param msg  - pointer to the sip message
59   * @param fp   - pointer to the fparam_t
60   * @param sval - pointer to str, used to store the result
61   * @return  0 on success, -1 on error
62   */
63 #define fixup_get_svalue(msg, fp, sval) get_str_fparam(sval, msg, fp)
64
65 /** get an int value out of a fparam_t.
66   *
67   * Note: this macro/function is  for kamailio compatibility
68   * (please use get_int_fparam() directly in the future)
69   *
70   * @param msg  - pointer to the sip message
71   * @param fp   - pointer to the fparam_t
72   * @param ival - pointer to str, used to store the result
73   * @return  0 on success, -1 on error
74   */
75 #define fixup_get_ivalue(msg, fp, ival) get_int_fparam(ival, msg, fp)
76
77 int fixup_str_null(void** param, int param_no);
78 int fixup_str_str(void** param, int param_no);
79
80 int fixup_free_str_null(void** param, int param_no);
81 int fixup_free_str_str(void** param, int param_no);
82
83 int fixup_uint_null(void** param, int param_no);
84 int fixup_uint_uint(void** param, int param_no);
85
86
87 int fixup_regexp_null(void** param, int param_no);
88 int fixup_free_regexp_null(void** param, int param_no);
89 #if 0
90 int fixup_regexp_none(void** param, int param_no);
91 int fixup_free_regexp_none(void** param, int param_no);
92 /* not implemened yet */
93 int fixup_regexpNL_null(void** param, int param_no);
94 int fixup_regexpNL_none(void** param, int param_no);
95 #endif
96
97 int fixup_pvar_null(void **param, int param_no);
98 int fixup_free_pvar_null(void** param, int param_no);
99
100 int fixup_pvar_none(void** param, int param_no);
101 int fixup_free_pvar_none(void** param, int param_no);
102
103 int fixup_pvar_pvar(void **param, int param_no);
104 int fixup_free_pvar_pvar(void** param, int param_no);
105
106 int fixup_pvar_str(void** param, int param_no);
107 int fixup_free_pvar_str(void** param, int param_no);
108
109 int fixup_pvar_str_str(void** param, int param_no);
110 int fixup_free_pvar_str_str(void** param, int param_no);
111
112 int fixup_pvar_uint(void** param, int param_no);
113 int fixup_free_pvar_uint(void** param, int param_no);
114
115 int fixup_igp_igp(void** param, int param_no);
116 int fixup_free_igp_igp(void** param, int param_no);
117 int fixup_igp_null(void** param, int param_no);
118 int fixup_free_igp_null(void** param, int param_no);
119 int fixup_get_ivalue(struct sip_msg* msg, gparam_p gp, int *val);
120
121 int fixup_igp_pvar(void** param, int param_no);
122 int fixup_free_igp_pvar(void** param, int param_no);
123
124 int fixup_igp_pvar_pvar(void** param, int param_no);
125 int fixup_free_igp_pvar_pvar(void** param, int param_no);
126
127 int fixup_spve_spve(void** param, int param_no);
128 int fixup_free_spve_spve(void** param, int param_no);
129 int fixup_spve_null(void** param, int param_no);
130 int fixup_free_spve_null(void** param, int param_no);
131 int fixup_spve_uint(void** param, int param_no);
132 int fixup_spve_str(void** param, int param_no);
133 int fixup_free_spve_str(void** param, int param_no);
134
135 int fixup_spve_all(void** param, int param_no);
136 int fixup_igp_all(void** param, int param_no);
137
138 int fixup_spve_igp(void** param, int param_no);
139 int fixup_free_spve_igp(void** param, int param_no);
140
141 /** get the corresp. free fixup function.*/
142 free_fixup_function mod_fix_get_fixup_free(fixup_function f);
143
144 #endif