GPLization banner introduced to *.[hc] files
[sip-router] / parser / contact / cparam.h
1 /*
2  * $Id$
3  *
4  * Contact parameter datatype
5  *
6  * Copyright (C) 2001-2003 Fhg Fokus
7  *
8  * This file is part of ser, a free SIP server.
9  *
10  * ser is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version
14  *
15  * For a license to use the ser software under conditions
16  * other than those described here, or to purchase support for this
17  * software, please contact iptel.org by e-mail at the following addresses:
18  *    info@iptel.org
19  *
20  * ser is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23  * GNU General Public License for more details.
24  *
25  * You should have received a copy of the GNU General Public License 
26  * along with this program; if not, write to the Free Software 
27  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28  */
29
30
31 #ifndef CPARAM_H
32 #define CPARAM_H
33
34 #include "../../str.h"
35
36 /*
37  * Supported types of contact parameters
38  */
39 typedef enum cptype {
40         CP_OTHER = 0,  /* Unknown parameter */
41         CP_Q,          /* Q parameter */
42         CP_EXPIRES,    /* Expires parameter */
43         CP_METHOD      /* Method parameter */
44 } cptype_t;
45
46
47 /*
48  * Structure representing a contact
49  */
50 typedef struct cparam {
51         cptype_t type;       /* Type of the parameter */
52         str name;            /* Parameter name */
53         str body;            /* Parameter body */
54         struct cparam* next; /* Next parameter in the list */
55 } cparam_t;
56
57
58 /*
59  * Parse contact parameters
60  */
61 int parse_cparams(str* _s, cparam_t** _p, cparam_t** _q, cparam_t** _e, cparam_t** _m);
62
63
64 /*
65  * Free the whole contact parameter list
66  */
67 void free_cparams(cparam_t** _p);
68
69
70 /*
71  * Print contact parameter list
72  */
73 void print_cparams(cparam_t* _p);
74
75
76 #endif /* CPARAM_H */