File: mod_fix.h

package info (click to toggle)
kamailio 4.2.0-2+deb8u3
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 56,276 kB
  • sloc: ansic: 552,836; xml: 166,484; sh: 8,659; makefile: 7,676; sql: 6,235; perl: 3,487; yacc: 3,428; python: 1,457; cpp: 1,219; php: 1,047; java: 449; pascal: 194; cs: 40; awk: 27
file content (143 lines) | stat: -rw-r--r-- 4,827 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/* 
 * $Id$
 * 
 * Copyright (C) 2008 iptelorg GmbH
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */
/**
 * @file mod_fix.h
 * @brief Generic fixup functions for module function parameter.
 * (kamailio compatibility)
 */

#ifndef _mod_fix_h_
#define _mod_fix_h_

#include "sr_module.h"
#include "pvar.h"

#define GPARAM_TYPE_INT		FPARAM_INT
#define GPARAM_TYPE_STR		FPARAM_STR
#define GPARAM_TYPE_PVS		FPARAM_PVS
#define GPARAM_TYPE_PVE		FPARAM_PVE

/**
 * generic parameter that holds a string, an int, a pseudo-variable
 * or a ser select, avp, or subst.
 * 
 * Note: used only for compatibility with existing kamailio code,
 *  please use fparam_t directly in the future.
 *
 * @see fparam_t
 */

/* reuse ser fparam_t */
#define gparam_t fparam_t

typedef gparam_t *gparam_p;

int fixup_get_svalue(struct sip_msg* msg, gparam_p gp, str *val);

/** get a string value out of a fparam_t.
  *
  * Note: this macro/function is  for kamailio compatibility
  * (please use get_str_fparam() directly in the future)
  *
  * @param msg  - pointer to the sip message
  * @param fp   - pointer to the fparam_t
  * @param sval - pointer to str, used to store the result
  * @return  0 on success, -1 on error
  */
#define fixup_get_svalue(msg, fp, sval) get_str_fparam(sval, msg, fp)

/** get an int value out of a fparam_t.
  *
  * Note: this macro/function is  for kamailio compatibility
  * (please use get_int_fparam() directly in the future)
  *
  * @param msg  - pointer to the sip message
  * @param fp   - pointer to the fparam_t
  * @param ival - pointer to str, used to store the result
  * @return  0 on success, -1 on error
  */
#define fixup_get_ivalue(msg, fp, ival) get_int_fparam(ival, msg, fp)

int fixup_str_null(void** param, int param_no);
int fixup_str_str(void** param, int param_no);

int fixup_free_str_null(void** param, int param_no);
int fixup_free_str_str(void** param, int param_no);

int fixup_uint_null(void** param, int param_no);
int fixup_uint_uint(void** param, int param_no);


int fixup_regexp_null(void** param, int param_no);
int fixup_free_regexp_null(void** param, int param_no);
#if 0
int fixup_regexp_none(void** param, int param_no);
int fixup_free_regexp_none(void** param, int param_no);
/* not implemened yet */
int fixup_regexpNL_null(void** param, int param_no);
int fixup_regexpNL_none(void** param, int param_no);
#endif

int fixup_pvar_null(void **param, int param_no);
int fixup_free_pvar_null(void** param, int param_no);

int fixup_pvar_none(void** param, int param_no);
int fixup_free_pvar_none(void** param, int param_no);

int fixup_pvar_pvar(void **param, int param_no);
int fixup_free_pvar_pvar(void** param, int param_no);

int fixup_pvar_str(void** param, int param_no);
int fixup_free_pvar_str(void** param, int param_no);

int fixup_pvar_str_str(void** param, int param_no);
int fixup_free_pvar_str_str(void** param, int param_no);

int fixup_pvar_uint(void** param, int param_no);
int fixup_free_pvar_uint(void** param, int param_no);

int fixup_igp_igp(void** param, int param_no);
int fixup_free_igp_igp(void** param, int param_no);
int fixup_igp_null(void** param, int param_no);
int fixup_free_igp_null(void** param, int param_no);
int fixup_get_ivalue(struct sip_msg* msg, gparam_p gp, int *val);

int fixup_igp_pvar(void** param, int param_no);
int fixup_free_igp_pvar(void** param, int param_no);

int fixup_igp_pvar_pvar(void** param, int param_no);
int fixup_free_igp_pvar_pvar(void** param, int param_no);

int fixup_spve_spve(void** param, int param_no);
int fixup_free_spve_spve(void** param, int param_no);
int fixup_spve_null(void** param, int param_no);
int fixup_free_spve_null(void** param, int param_no);
int fixup_spve_uint(void** param, int param_no);
int fixup_spve_str(void** param, int param_no);
int fixup_free_spve_str(void** param, int param_no);

int fixup_spve_all(void** param, int param_no);
int fixup_igp_all(void** param, int param_no);

int fixup_spve_igp(void** param, int param_no);
int fixup_free_spve_igp(void** param, int param_no);

/** get the corresp. free fixup function.*/
free_fixup_function mod_fix_get_fixup_free(fixup_function f);

#endif