Browse code

core, lib, modules: restructured source code tree

- new folder src/ to hold the source code for main project applications
- main.c is in src/
- all core files are subfolder are in src/core/
- modules are in src/modules/
- libs are in src/lib/
- application Makefiles are in src/
- application binary is built in src/ (src/kamailio)

Daniel-Constantin Mierla authored on 07/12/2016 11:03:51
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,213 +0,0 @@
1
-/*
2
- * Fast 32-bit Header Field Name Parser -- keys
3
- *
4
- * Copyright (C) 2001-2003 FhG Fokus
5
- *
6
- * This file is part of Kamailio, a free SIP server.
7
- *
8
- * Kamailio is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation; either version 2 of the License, or
11
- * (at your option) any later version
12
- *
13
- * Kamailio is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
- * GNU General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU General Public License
19
- * along with this program; if not, write to the Free Software
20
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21
- *
22
- */
23
-
24
-/** Parser :: Fast 32-bit Header Field Name Parser -- keys .
25
- * @file
26
- * @ingroup parser
27
- */
28
-
29
-#ifndef KEYS_H
30
-#define KEYS_H
31
-
32
-/*! \name Parser definitions
33
-\verbatim
34
- * a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  :  ' ' -
35
- * 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 3a 20  2d
36
-\endverbatim
37
- *
38
- * A quick way to generate the hex string is:
39
- *  perl -e '$_=lc shift; print "0x".unpack("H*",reverse)."\n";' 4_char_str
40
- * or to generate the define list:
41
-    perl -e '$s=lc shift; $s.=" "x(4-(length $s)%4);
42
-             print map("#define _". reverse ."_ 0x". (unpack "H*")."\n",
43
-                       reverse unpack("(a[4])*", reverse $s));'  string
44
- * Note that some editing is still needed (replace spaces and account for ':').
45
- * Test manually/visually if dword is intended string using:
46
- * awk '/^#define/ {printf("%s \"%c%c%c%c\" ... %s \n",  $3,strtonum("0x" substr($3,9,2)),strtonum("0x" substr($3,7,2)),strtonum("0x" substr($3,5,2)),strtonum("0x" substr($3,3,2)),$5)}' keys.h
47
- *
48
- */
49
-
50
-/*!{ */
51
-
52
-#define _acce_ 0x65636361   /* "acce" */
53
-#define _allo_ 0x6f6c6c61   /* "allo" */
54
-#define _auth_ 0x68747561   /* "auth" */
55
-#define _oriz_ 0x7a69726f   /* "oriz" */
56
-#define _atio_ 0x6f697461   /* "atio" */
57
-#define _call_ 0x6c6c6163   /* "call" */
58
-#define __id2_ 0x2064692d   /* "-id " */
59
-#define __id1_ 0x3a64692d   /* "-id:" */
60
-#define _cont_ 0x746e6f63   /* "cont" */
61
-#define _act2_ 0x20746361   /* "act " */
62
-#define _act1_ 0x3a746361   /* "act:" */
63
-#define _ent__ 0x2d746e65   /* "ent-" */
64
-#define _leng_ 0x676e656c   /* "leng" */
65
-#define _th12_ 0x203a6874   /* "th: " */
66
-#define _type_ 0x65707974   /* "type" */
67
-#define _cseq_ 0x71657363   /* "cseq" */
68
-#define _expi_ 0x69707865   /* "expi" */
69
-#define _res2_ 0x20736572   /* "res " */
70
-#define _res1_ 0x3a736572   /* "res:" */
71
-#define _from_ 0x6d6f7266   /* "from" */
72
-#define _max__ 0x2d78616d   /* "max-" */
73
-#define _forw_ 0x77726f66   /* "forw" */
74
-#define _ards_ 0x73647261   /* "ards" */
75
-#define _prox_ 0x786f7270   /* "prox" */
76
-#define _y_au_ 0x75612d79   /* "y-au" */
77
-#define _thor_ 0x726f6874   /* "thor" */
78
-#define _izat_ 0x74617a69   /* "izat" */
79
-#define _ion2_ 0x206e6f69   /* "ion " */
80
-#define _ion1_ 0x3a6e6f69   /* "ion:" */
81
-#define _then_ 0x6e656874   /* "then" */
82
-#define _tica_ 0x61636974   /* "tica" */
83
-#define _te1_  0x003a6574   /* "te:" */
84
-#define _te2_  0x00206574   /* "te " */
85
-#define _y_re_ 0x65722d79   /* "y-re" */
86
-#define _quir_ 0x72697571   /* "quir" */
87
-#define _reco_ 0x6f636572   /* "reco" */
88
-#define _rd_r_ 0x722d6472   /* "rd-r" */
89
-#define _oute_ 0x6574756f   /* "oute" */
90
-#define _requ_ 0x75716572   /* "requ" */
91
-#define _ire2_ 0x20657269   /* "ire " */
92
-#define _ire1_ 0x3a657269   /* "ire:" */
93
-#define _rout_ 0x74756f72   /* "rout" */
94
-#define _supp_ 0x70707573   /* "supp" */
95
-#define _orte_ 0x6574726f   /* "orte" */
96
-#define _to12_ 0x203a6f74   /* "to: " */
97
-#define _unsu_ 0x75736e75   /* "unsu" */
98
-#define _ppor_ 0x726f7070   /* "ppor" */
99
-#define _ted2_ 0x20646574   /* "ted " */
100
-#define _ted1_ 0x3a646574   /* "ted:" */
101
-#define _via2_ 0x20616976   /* "via " */
102
-#define _via1_ 0x3a616976   /* "via:" */
103
-#define _www__ 0x2d777777   /* "www-" */
104
-#define _enti_ 0x69746e65   /* "enti" */
105
-#define _cate_ 0x65746163   /* "cate" */
106
-#define _even_ 0x6e657665   /* "even" */
107
-#define _sip_  0x2d706973   /* "sip-" */
108
-#define _ifm_  0x6d2d6669   /* "if-m" */
109
-#define _atch_ 0x68637461   /* "atch" */
110
-#define _date_ 0x65746164   /* "date" */
111
-#define _iden_ 0x6e656469   /* "iden" */
112
-#define _tity_ 0x79746974   /* "tity" */
113
-#define _info_ 0x6f666e69   /* "info" */
114
-#define _path_ 0x68746170   /* "path" */
115
-#define _100r_ 0x72303031   /* "100r" */
116
-#define _time_ 0x656d6974   /* "time" */
117
-
118
-#define _pt_l_ 0x6c2d7470   /* "pt-l" */
119
-#define _angu_ 0x75676e61   /* "angu" */
120
-#define _age2_ 0x20656761   /* "age " */
121
-#define _age1_ 0x3a656761   /* "age:" */
122
-#define _orga_ 0x6167726f   /* "orga" */
123
-#define _niza_ 0x617a696e   /* "niza" */
124
-#define _tion_ 0x6e6f6974   /* "tion" */
125
-#define _prio_ 0x6f697270   /* "prio" */
126
-#define _rity_ 0x79746972   /* "rity" */
127
-#define _subj_ 0x6a627573   /* "subj" */
128
-#define _subs_ 0x73627573   /* "subs" */
129
-#define _crip_ 0x70697263   /* "crip" */
130
-#define __sta_ 0x6174732d   /* "-sta" */
131
-#define _ect2_ 0x20746365   /* "ect " */
132
-#define _ect1_ 0x3a746365   /* "ect:" */
133
-#define _user_ 0x72657375   /* "user" */
134
-#define __age_ 0x6567612d   /* "-age" */
135
-#define _disp_ 0x70736964   /* "disp" */
136
-#define _osit_ 0x7469736f   /* "osit" */
137
-#define _ion2_ 0x206e6f69   /* "ion " */
138
-#define _ion1_ 0x3a6e6f69   /* "ion:" */
139
-
140
-#define _pt_d_ 0x642d7470   /* "pt-d" */
141
-#define _ispo_ 0x6f707369   /* "ispo" */
142
-#define _siti_ 0x69746973   /* "siti" */
143
-
144
-#define _serv_ 0x76726573   /* "serv" */
145
-
146
-#define _dive_ 0x65766964   /* "dive" */
147
-#define _rsio_ 0x6f697372   /* "rsio" */
148
-
149
-#define _remo_ 0x6f6d6572   /* "remo" */
150
-#define _te_p_ 0x702d6574   /* "te-p" */
151
-#define _arty_ 0x79747261   /* "arty" */
152
-#define __id2_ 0x2064692d   /* "-id " */
153
-#define __id1_ 0x3a64692d   /* "-id:" */
154
-
155
-#define _refe_ 0x65666572   /* "refe" */
156
-#define _r_to_ 0x6f742d72   /* "r-to" */
157
-
158
-#define _pt_c_ 0x632d7470   /* "pt-c" */
159
-#define _onta_ 0x61746e6f   /* "onta" */
160
-
161
-#define _sess_ 0x73736573   /* "sess" */
162
-#define _ion__ 0x2d6e6f69   /* "ion-" */
163
-#define _res2_ 0x20736572   /* "res " */
164
-#define _res1_ 0x3a736572   /* "res:" */
165
-
166
-#define _w_ev_ 0x76652d77   /* "w-ev" */
167
-#define _ents_ 0x73746e65   /* "ents" */
168
-
169
-#define _enco_ 0x6f636e65   /* "enco" */
170
-#define _ding_ 0x676e6964   /* "ding" */
171
-
172
-#define _rred_ 0x64657272   /* "rred" */
173
-#define __by2_ 0x2079622d   /* "-by " */
174
-#define __by1_ 0x3a79622d   /* "-by:" */
175
-
176
-#define _reje_ 0x656a6572   /* "reje" */
177
-#define _ct_c_ 0x632d7463   /* "ct-c" */
178
-
179
-#define _est__ 0x2d747365   /* "est-" */
180
-
181
-#define _min__ 0x2d6e696d   /* "min-" */
182
-
183
-
184
-#define _retr_ 0x72746572   /* "retr" */
185
-#define _y_af_ 0x66612d79   /* "y-af" */
186
-#define _ter1_ 0x3a726574   /* "ter:" */
187
-#define _ter2_ 0x20726574   /* "ter " */
188
-
189
-#define _priv_ 0x76697270   /* "priv" */
190
-#define _acy2_ 0x20796361   /* "acy " */
191
-#define _acy1_ 0x3a796361   /* "acy:" */
192
-
193
-#define _reas_ 0x73616572  /* "reas" */
194
-#define _on1_ 0x203a6e6f  /* "on: " */
195
-#define _on2_ 0x3a206e6f  /* "on :" */
196
-#define _on3_ 0x20206e6f  /* "on  " */
197
-
198
-#define _p_as_ 0x73612d70 /* "p-as" */
199
-#define _sert_ 0x74726573 /* "sert" */
200
-#define _ed_i_ 0x692d6465 /* "ed-i" */
201
-#define _dent_ 0x746e6564 /* "dent" */
202
-#define _ity1_ 0x3a797469 /* "ity:" */
203
-#define _ity2_ 0x20797469 /* "ity " */
204
-
205
-#define _p_pr_ 0x72702d70 /* "p-pr" */
206
-#define _efer_ 0x72656665 /* "efer" */
207
-#define _red__ 0x2d646572 /* "red-" */
208
-/* _iden_ is already defined */
209
-/* _tity_ is already defined */
210
-
211
-/*!} */
212
-
213
-#endif /* KEYS_H */
Browse code

core parser - remove svn ID, remove history, change "ser" => "Kamailio"

Olle E. Johansson authored on 18/01/2015 19:36:18
Showing 1 changed files
... ...
@@ -3,14 +3,14 @@
3 3
  *
4 4
  * Copyright (C) 2001-2003 FhG Fokus
5 5
  *
6
- * This file is part of ser, a free SIP server.
6
+ * This file is part of Kamailio, a free SIP server.
7 7
  *
8
- * ser is free software; you can redistribute it and/or modify
8
+ * Kamailio is free software; you can redistribute it and/or modify
9 9
  * it under the terms of the GNU General Public License as published by
10 10
  * the Free Software Foundation; either version 2 of the License, or
11 11
  * (at your option) any later version
12 12
  *
13
- * ser is distributed in the hope that it will be useful,
13
+ * Kamailio is distributed in the hope that it will be useful,
14 14
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 15
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 16
  * GNU General Public License for more details.
... ...
@@ -19,12 +19,6 @@
19 19
  * along with this program; if not, write to the Free Software
20 20
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21 21
  *
22
- * History:
23
- * --------
24
- * 2003-05-01 _acce_ macro added (janakj)
25
- * 2003-05-01 Macros for Accept-Disposition added (janakj)
26
- * 2003-11-02 Macros for Diversion added (jh)
27
- * 2007-01-26 Macros for Identity, Identity-info, Date added (gergo)
28 22
  */
29 23
 
30 24
 /** Parser :: Fast 32-bit Header Field Name Parser -- keys .
Browse code

all: updated FSF address in GPL text

Anthony Messina authored on 04/07/2014 09:36:37 • Daniel-Constantin Mierla committed on 04/07/2014 09:37:36
Showing 1 changed files
... ...
@@ -17,7 +17,7 @@
17 17
  *
18 18
  * You should have received a copy of the GNU General Public License
19 19
  * along with this program; if not, write to the Free Software
20
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21 21
  *
22 22
  * History:
23 23
  * --------
Browse code

parser: updated for parse_supported refactoring

Peter Dunkley authored on 27/02/2013 14:03:13
Showing 1 changed files
... ...
@@ -118,6 +118,8 @@
118 118
 #define _tity_ 0x79746974   /* "tity" */
119 119
 #define _info_ 0x6f666e69   /* "info" */
120 120
 #define _path_ 0x68746170   /* "path" */
121
+#define _100r_ 0x72303031   /* "100r" */
122
+#define _time_ 0x656d6974   /* "time" */
121 123
 
122 124
 #define _pt_l_ 0x6c2d7470   /* "pt-l" */
123 125
 #define _angu_ 0x75676e61   /* "angu" */
Browse code

parser: remove old $Id$ docs header from subversion times, not usable anymore

Henning Westerholt authored on 05/07/2012 21:39:51
Showing 1 changed files
... ...
@@ -1,6 +1,4 @@
1 1
 /*
2
- * $Id$
3
- *
4 2
  * Fast 32-bit Header Field Name Parser -- keys
5 3
  *
6 4
  * Copyright (C) 2001-2003 FhG Fokus
Browse code

core: PAI & PPI header names parser fixes

Changed to the usual "case" construct. This also fixes the case
when spaces were present between the header name and ':'
(e.g. "P-Preferred-Identity : ..." was not recognized).

Andrei Pelinescu-Onciul authored on 19/02/2010 10:55:44
Showing 1 changed files
... ...
@@ -43,6 +43,13 @@
43 43
  * 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 3a 20  2d
44 44
 \endverbatim
45 45
  *
46
+ * A quick way to generate the hex string is:
47
+ *  perl -e '$_=lc shift; print "0x".unpack("H*",reverse)."\n";' 4_char_str
48
+ * or to generate the define list:
49
+    perl -e '$s=lc shift; $s.=" "x(4-(length $s)%4);
50
+             print map("#define _". reverse ."_ 0x". (unpack "H*")."\n",
51
+                       reverse unpack("(a[4])*", reverse $s));'  string
52
+ * Note that some editing is still needed (replace spaces and account for ':').
46 53
  * Test manually/visually if dword is intended string using:
47 54
  * awk '/^#define/ {printf("%s \"%c%c%c%c\" ... %s \n",  $3,strtonum("0x" substr($3,9,2)),strtonum("0x" substr($3,7,2)),strtonum("0x" substr($3,5,2)),strtonum("0x" substr($3,3,2)),$5)}' keys.h
48 55
  *
... ...
@@ -194,6 +201,19 @@
194 201
 #define _on2_ 0x3a206e6f  /* "on :" */
195 202
 #define _on3_ 0x20206e6f  /* "on  " */
196 203
 
204
+#define _p_as_ 0x73612d70 /* "p-as" */
205
+#define _sert_ 0x74726573 /* "sert" */
206
+#define _ed_i_ 0x692d6465 /* "ed-i" */
207
+#define _dent_ 0x746e6564 /* "dent" */
208
+#define _ity1_ 0x3a797469 /* "ity:" */
209
+#define _ity2_ 0x20797469 /* "ity " */
210
+
211
+#define _p_pr_ 0x72702d70 /* "p-pr" */
212
+#define _efer_ 0x72656665 /* "efer" */
213
+#define _red__ 0x2d646572 /* "red-" */
214
+/* _iden_ is already defined */
215
+/* _tity_ is already defined */
216
+
197 217
 /*!} */
198 218
 
199 219
 #endif /* KEYS_H */
Browse code

core: support for parsing the Reason header

Andrei Pelinescu-Onciul authored on 18/02/2010 20:20:07
Showing 1 changed files
... ...
@@ -29,10 +29,9 @@
29 29
  * 2007-01-26 Macros for Identity, Identity-info, Date added (gergo)
30 30
  */
31 31
 
32
-/*! \file 
33
- * \brief Parser :: Fast 32-bit Header Field Name Parser -- keys
34
- *
35
- * \ingroup parser
32
+/** Parser :: Fast 32-bit Header Field Name Parser -- keys .
33
+ * @file
34
+ * @ingroup parser
36 35
  */
37 36
 
38 37
 #ifndef KEYS_H
... ...
@@ -190,6 +189,11 @@
190 189
 #define _acy2_ 0x20796361   /* "acy " */
191 190
 #define _acy1_ 0x3a796361   /* "acy:" */
192 191
 
192
+#define _reas_ 0x73616572  /* "reas" */
193
+#define _on1_ 0x203a6e6f  /* "on: " */
194
+#define _on2_ 0x3a206e6f  /* "on :" */
195
+#define _on3_ 0x20206e6f  /* "on  " */
196
+
193 197
 /*!} */
194 198
 
195 199
 #endif /* KEYS_H */
Browse code

Doxygen for the parser directory

There's still a lot of files untouched. Feel free to jump in and help!

oej authored on 25/10/2009 15:58:41
Showing 1 changed files
... ...
@@ -12,11 +12,6 @@
12 12
  * the Free Software Foundation; either version 2 of the License, or
13 13
  * (at your option) any later version
14 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 15
  * ser is distributed in the hope that it will be useful,
21 16
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 17
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
... ...
@@ -34,18 +29,28 @@
34 29
  * 2007-01-26 Macros for Identity, Identity-info, Date added (gergo)
35 30
  */
36 31
 
32
+/*! \file 
33
+ * \brief Parser :: Fast 32-bit Header Field Name Parser -- keys
34
+ *
35
+ * \ingroup parser
36
+ */
37
+
37 38
 #ifndef KEYS_H
38 39
 #define KEYS_H
39 40
 
40
-/*
41
+/*! \name Parser definitions
42
+\verbatim
41 43
  * a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  :  ' ' -
42 44
  * 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 3a 20  2d
45
+\endverbatim
43 46
  *
44 47
  * Test manually/visually if dword is intended string using:
45 48
  * awk '/^#define/ {printf("%s \"%c%c%c%c\" ... %s \n",  $3,strtonum("0x" substr($3,9,2)),strtonum("0x" substr($3,7,2)),strtonum("0x" substr($3,5,2)),strtonum("0x" substr($3,3,2)),$5)}' keys.h
46 49
  *
47 50
  */
48 51
 
52
+/*!{ */
53
+
49 54
 #define _acce_ 0x65636361   /* "acce" */
50 55
 #define _allo_ 0x6f6c6c61   /* "allo" */
51 56
 #define _auth_ 0x68747561   /* "auth" */
... ...
@@ -185,4 +190,6 @@
185 190
 #define _acy2_ 0x20796361   /* "acy " */
186 191
 #define _acy1_ 0x3a796361   /* "acy:" */
187 192
 
193
+/*!} */
194
+
188 195
 #endif /* KEYS_H */
Browse code

Kamailio compatibility: Privacy header field name parser

This patch adds support for the Privacy header field name parser.

Jan Janak authored on 27/03/2009 07:59:37
Showing 1 changed files
... ...
@@ -181,4 +181,8 @@
181 181
 #define _ter1_ 0x3a726574   /* "ter:" */
182 182
 #define _ter2_ 0x20726574   /* "ter " */
183 183
 
184
+#define _priv_ 0x76697270   /* "priv" */
185
+#define _acy2_ 0x20796361   /* "acy " */
186
+#define _acy1_ 0x3a796361   /* "acy:" */
187
+
184 188
 #endif /* KEYS_H */
Browse code

Teach sip-router how to recognized Path header field name.

Jan Janak authored on 16/03/2009 17:49:27
Showing 1 changed files
... ...
@@ -108,6 +108,7 @@
108 108
 #define _iden_ 0x6e656469   /* "iden" */
109 109
 #define _tity_ 0x79746974   /* "tity" */
110 110
 #define _info_ 0x6f666e69   /* "info" */
111
+#define _path_ 0x68746170   /* "path" */
111 112
 
112 113
 #define _pt_l_ 0x6c2d7470   /* "pt-l" */
113 114
 #define _angu_ 0x75676e61   /* "angu" */
Browse code

- added support for parsing the Retry-After header

Andrei Pelinescu-Onciul authored on 30/07/2007 19:49:09
Showing 1 changed files
... ...
@@ -174,4 +174,10 @@
174 174
 
175 175
 #define _min__ 0x2d6e696d   /* "min-" */
176 176
 
177
+
178
+#define _retr_ 0x72746572   /* "retr" */
179
+#define _y_af_ 0x66612d79   /* "y-af" */
180
+#define _ter1_ 0x3a726574   /* "ter:" */
181
+#define _ter2_ 0x20726574   /* "ter " */
182
+
177 183
 #endif /* KEYS_H */
Browse code

Hook up Server header field support.

Maxim Sobolev authored on 01/05/2007 21:25:53
Showing 1 changed files
... ...
@@ -135,6 +135,8 @@
135 135
 #define _ispo_ 0x6f707369   /* "ispo" */
136 136
 #define _siti_ 0x69746973   /* "siti" */
137 137
 
138
+#define _serv_ 0x76726573   /* "serv" */
139
+
138 140
 #define _dive_ 0x65766964   /* "dive" */
139 141
 #define _rsio_ 0x6f697372   /* "rsio" */
140 142
 
Browse code

Date, Identity, Identity-info HF support added

Gergely Kovacs authored on 08/03/2007 14:56:10
Showing 1 changed files
... ...
@@ -31,6 +31,7 @@
31 31
  * 2003-05-01 _acce_ macro added (janakj)
32 32
  * 2003-05-01 Macros for Accept-Disposition added (janakj)
33 33
  * 2003-11-02 Macros for Diversion added (jh)
34
+ * 2007-01-26 Macros for Identity, Identity-info, Date added (gergo)
34 35
  */
35 36
 
36 37
 #ifndef KEYS_H
... ...
@@ -103,6 +104,10 @@
103 104
 #define _sip_  0x2d706973   /* "sip-" */
104 105
 #define _ifm_  0x6d2d6669   /* "if-m" */
105 106
 #define _atch_ 0x68637461   /* "atch" */
107
+#define _date_ 0x65746164   /* "date" */
108
+#define _iden_ 0x6e656469   /* "iden" */
109
+#define _tity_ 0x79746974   /* "tity" */
110
+#define _info_ 0x6f666e69   /* "info" */
106 111
 
107 112
 #define _pt_l_ 0x6c2d7470   /* "pt-l" */
108 113
 #define _angu_ 0x75676e61   /* "angu" */
Browse code

- tm: aggregate challenges (WWW/Proxy-Authenticate) from all the 401 & 407 if the final reply is a 401/407 (required by rfc3261). To turn this off and fall back to the old behaviour set tm aggregate_challenges parameter to 0 (see tm docs for more details) - core: header parse support for WWW-Authenticate and Proxy-Authenticate

Andrei Pelinescu-Onciul authored on 16/10/2006 18:44:01
Showing 1 changed files
... ...
@@ -74,6 +74,10 @@
74 74
 #define _izat_ 0x74617a69   /* "izat" */
75 75
 #define _ion2_ 0x206e6f69   /* "ion " */
76 76
 #define _ion1_ 0x3a6e6f69   /* "ion:" */
77
+#define _then_ 0x6e656874   /* "then" */
78
+#define _tica_ 0x61636974   /* "tica" */
79
+#define _te1_  0x003a6574   /* "te:" */
80
+#define _te2_  0x00206574   /* "te " */
77 81
 #define _y_re_ 0x65722d79   /* "y-re" */
78 82
 #define _quir_ 0x72697571   /* "quir" */
79 83
 #define _reco_ 0x6f636572   /* "reco" */
Browse code

added Subscription-State header field parsing (only needed parts)

Vaclav Kubart authored on 21/06/2006 13:33:01
Showing 1 changed files
... ...
@@ -110,6 +110,9 @@
110 110
 #define _prio_ 0x6f697270   /* "prio" */
111 111
 #define _rity_ 0x79746972   /* "rity" */
112 112
 #define _subj_ 0x6a627573   /* "subj" */
113
+#define _subs_ 0x73627573   /* "subs" */
114
+#define _crip_ 0x70697263   /* "crip" */
115
+#define __sta_ 0x6174732d   /* "-sta" */
113 116
 #define _ect2_ 0x20746365   /* "ect " */
114 117
 #define _ect1_ 0x3a746365   /* "ect:" */
115 118
 #define _user_ 0x72657375   /* "user" */
Browse code

- added parsing of Min-SE (related to Session-Expires) - added msg->session_expires, msg->min_se fields

Tomas Mandys authored on 21/06/2006 08:18:53
Showing 1 changed files
... ...
@@ -41,7 +41,7 @@
41 41
  * 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 3a 20  2d
42 42
  *
43 43
  * Test manually/visually if dword is intended string using:
44
- * awk '/^#define/ {printf("%s \"%x%x%x%x\" ... %s \n",  $3,strtonum("0x" substr($3,9,2)),strtonum("0x" substr($3,7,2)),strtonum("0x" substr($3,5,2)),strtonum("0x" substr($3,3,2)),$5)}' keys.h
44
+ * awk '/^#define/ {printf("%s \"%c%c%c%c\" ... %s \n",  $3,strtonum("0x" substr($3,9,2)),strtonum("0x" substr($3,7,2)),strtonum("0x" substr($3,5,2)),strtonum("0x" substr($3,3,2)),$5)}' keys.h
45 45
  *
46 46
  */
47 47
 
... ...
@@ -158,4 +158,6 @@
158 158
 
159 159
 #define _est__ 0x2d747365   /* "est-" */
160 160
 
161
+#define _min__ 0x2d6e696d   /* "min-" */
162
+
161 163
 #endif /* KEYS_H */
Browse code

- adjusted compact headers. There were missing compact equivalents for Subject, Refer-To and completely missing Session-Expires, Accept-Contact, etc. support. Currently I've implemented both compact header and case switches to assign enumeration type. No next parsing is processed, but probably will be done, good candidate e.g. Session-Expires.

Now e.g. textops hf_value correctly recognizes "Session-Expires" and "x" as equal headers.

Tomas Mandys authored on 18/06/2006 23:15:22
Showing 1 changed files
... ...
@@ -1,5 +1,5 @@
1
-/* 
2
- * $Id$ 
1
+/*
2
+ * $Id$
3 3
  *
4 4
  * Fast 32-bit Header Field Name Parser -- keys
5 5
  *
... ...
@@ -22,8 +22,8 @@
22 22
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23 23
  * GNU General Public License for more details.
24 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 
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 27
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28 28
  *
29 29
  * History:
... ...
@@ -39,6 +39,10 @@
39 39
 /*
40 40
  * a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  :  ' ' -
41 41
  * 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 3a 20  2d
42
+ *
43
+ * Test manually/visually if dword is intended string using:
44
+ * awk '/^#define/ {printf("%s \"%x%x%x%x\" ... %s \n",  $3,strtonum("0x" substr($3,9,2)),strtonum("0x" substr($3,7,2)),strtonum("0x" substr($3,5,2)),strtonum("0x" substr($3,3,2)),$5)}' keys.h
45
+ *
42 46
  */
43 47
 
44 48
 #define _acce_ 0x65636361   /* "acce" */
... ...
@@ -115,7 +119,7 @@
115 119
 #define _ion2_ 0x206e6f69   /* "ion " */
116 120
 #define _ion1_ 0x3a6e6f69   /* "ion:" */
117 121
 
118
-#define _pt_d_ 0x64617470   /* "pt-d" */
122
+#define _pt_d_ 0x642d7470   /* "pt-d" */
119 123
 #define _ispo_ 0x6f707369   /* "ispo" */
120 124
 #define _siti_ 0x69746973   /* "siti" */
121 125
 
... ...
@@ -131,4 +135,27 @@
131 135
 #define _refe_ 0x65666572   /* "refe" */
132 136
 #define _r_to_ 0x6f742d72   /* "r-to" */
133 137
 
138
+#define _pt_c_ 0x632d7470   /* "pt-c" */
139
+#define _onta_ 0x61746e6f   /* "onta" */
140
+
141
+#define _sess_ 0x73736573   /* "sess" */
142
+#define _ion__ 0x2d6e6f69   /* "ion-" */
143
+#define _res2_ 0x20736572   /* "res " */
144
+#define _res1_ 0x3a736572   /* "res:" */
145
+
146
+#define _w_ev_ 0x76652d77   /* "w-ev" */
147
+#define _ents_ 0x73746e65   /* "ents" */
148
+
149
+#define _enco_ 0x6f636e65   /* "enco" */
150
+#define _ding_ 0x676e6964   /* "ding" */
151
+
152
+#define _rred_ 0x64657272   /* "rred" */
153
+#define __by2_ 0x2079622d   /* "-by " */
154
+#define __by1_ 0x3a79622d   /* "-by:" */
155
+
156
+#define _reje_ 0x656a6572   /* "reje" */
157
+#define _ct_c_ 0x632d7463   /* "ct-c" */
158
+
159
+#define _est__ 0x2d747365   /* "est-" */
160
+
134 161
 #endif /* KEYS_H */
Browse code

added parsing of SIP-If-Match header field taken from PIC-SER

Vaclav Kubart authored on 26/10/2005 08:06:55
Showing 1 changed files
... ...
@@ -92,6 +92,9 @@
92 92
 #define _enti_ 0x69746e65   /* "enti" */
93 93
 #define _cate_ 0x65746163   /* "cate" */
94 94
 #define _even_ 0x6e657665   /* "even" */
95
+#define _sip_  0x2d706973   /* "sip-" */
96
+#define _ifm_  0x6d2d6669   /* "if-m" */
97
+#define _atch_ 0x68637461   /* "atch" */
95 98
 
96 99
 #define _pt_l_ 0x6c2d7470   /* "pt-l" */
97 100
 #define _angu_ 0x75676e61   /* "angu" */
Browse code

* Added parsing of Refer-To header.

Juha Heinanen authored on 14/02/2005 23:48:21
Showing 1 changed files
... ...
@@ -125,4 +125,7 @@
125 125
 #define __id2_ 0x2064692d   /* "-id " */
126 126
 #define __id1_ 0x3a64692d   /* "-id:" */
127 127
 
128
+#define _refe_ 0x65666572   /* "refe" */
129
+#define _r_to_ 0x6f742d72   /* "r-to" */
130
+
128 131
 #endif /* KEYS_H */
Browse code

Temporarily backout addition of Server header field parser until decision is adapted on how to overcome current limit of max 32 headers. Just for the record, I think that the easiest way out is to increase flags storage size from 32bits to 64bits, which should be sufficiend at least for the next year.

Requested by: Andrei Pelinescu-Onciul <pelinescu-onciul@fokus.fraunhofer.de>

Maxim Sobolev authored on 28/12/2004 23:41:30
Showing 1 changed files
... ...
@@ -116,8 +116,6 @@
116 116
 #define _ispo_ 0x6f707369   /* "ispo" */
117 117
 #define _siti_ 0x69746973   /* "siti" */
118 118
 
119
-#define _serv_ 0x76726573   /* "serv" */
120
-
121 119
 #define _dive_ 0x65766964   /* "dive" */
122 120
 #define _rsio_ 0x6f697372   /* "rsio" */
123 121
 
Browse code

Add support for Server header field, since it is necessary in one place (mediaproxy module) already and will also be used in another new module.

Submitted by: Valentin Nechaev <netch@portaone.com>

Maxim Sobolev authored on 20/12/2004 18:52:54
Showing 1 changed files
... ...
@@ -116,6 +116,8 @@
116 116
 #define _ispo_ 0x6f707369   /* "ispo" */
117 117
 #define _siti_ 0x69746973   /* "siti" */
118 118
 
119
+#define _serv_ 0x76726573   /* "serv" */
120
+
119 121
 #define _dive_ 0x65766964   /* "dive" */
120 122
 #define _rsio_ 0x6f697372   /* "rsio" */
121 123
 
Browse code

rollback patch pending new ser release and discussion with core maintainer

Jamey Hicks authored on 03/12/2004 17:11:36
Showing 1 changed files
... ...
@@ -47,9 +47,6 @@
47 47
 #define _oriz_ 0x7a69726f   /* "oriz" */
48 48
 #define _atio_ 0x6f697461   /* "atio" */
49 49
 #define _call_ 0x6c6c6163   /* "call" */
50
-#define _sip_  0x2d706973   /* "sip-" */
51
-#define _ifm_  0x6d2d6669   /* "if-m" */
52
-#define _atch_ 0x68637461   /* "atch" */
53 50
 #define __id2_ 0x2064692d   /* "-id " */
54 51
 #define __id1_ 0x3a64692d   /* "-id:" */
55 52
 #define _cont_ 0x746e6f63   /* "cont" */
Browse code

RFC3903 SIP-If-Match parsing from Gregory McGarry

Jamey Hicks authored on 03/12/2004 13:37:57
Showing 1 changed files
... ...
@@ -47,6 +47,9 @@
47 47
 #define _oriz_ 0x7a69726f   /* "oriz" */
48 48
 #define _atio_ 0x6f697461   /* "atio" */
49 49
 #define _call_ 0x6c6c6163   /* "call" */
50
+#define _sip_  0x2d706973   /* "sip-" */
51
+#define _ifm_  0x6d2d6669   /* "if-m" */
52
+#define _atch_ 0x68637461   /* "atch" */
50 53
 #define __id2_ 0x2064692d   /* "-id " */
51 54
 #define __id1_ 0x3a64692d   /* "-id:" */
52 55
 #define _cont_ 0x746e6f63   /* "cont" */
Browse code

- Spelling checked

Jan Janak authored on 24/08/2004 09:01:24
Showing 1 changed files
... ...
@@ -3,7 +3,7 @@
3 3
  *
4 4
  * Fast 32-bit Header Field Name Parser -- keys
5 5
  *
6
- * Copyright (C) 2001-2003 Fhg Fokus
6
+ * Copyright (C) 2001-2003 FhG Fokus
7 7
  *
8 8
  * This file is part of ser, a free SIP server.
9 9
  *
Browse code

- Diversion and Remote-Party-ID support from Juha Heinanen

Jan Janak authored on 18/01/2004 16:15:33
Showing 1 changed files
... ...
@@ -30,6 +30,7 @@
30 30
  * --------
31 31
  * 2003-05-01 _acce_ macro added (janakj)
32 32
  * 2003-05-01 Macros for Accept-Disposition added (janakj)
33
+ * 2003-11-02 Macros for Diversion added (jh)
33 34
  */
34 35
 
35 36
 #ifndef KEYS_H
... ...
@@ -115,4 +116,13 @@
115 116
 #define _ispo_ 0x6f707369   /* "ispo" */
116 117
 #define _siti_ 0x69746973   /* "siti" */
117 118
 
119
+#define _dive_ 0x65766964   /* "dive" */
120
+#define _rsio_ 0x6f697372   /* "rsio" */
121
+
122
+#define _remo_ 0x6f6d6572   /* "remo" */
123
+#define _te_p_ 0x702d6574   /* "te-p" */
124
+#define _arty_ 0x79747261   /* "arty" */
125
+#define __id2_ 0x2064692d   /* "-id " */
126
+#define __id1_ 0x3a64692d   /* "-id:" */
127
+
118 128
 #endif /* KEYS_H */
Browse code

- parsing of Content-Purpose and Content-Action removed - parsing of Accept-Disposition added.

Jan Janak authored on 05/08/2003 17:14:27
Showing 1 changed files
... ...
@@ -29,6 +29,7 @@
29 29
  * History:
30 30
  * --------
31 31
  * 2003-05-01 _acce_ macro added (janakj)
32
+ * 2003-05-01 Macros for Accept-Disposition added (janakj)
32 33
  */
33 34
 
34 35
 #ifndef KEYS_H
... ...
@@ -105,13 +106,13 @@
105 106
 #define _ect1_ 0x3a746365   /* "ect:" */
106 107
 #define _user_ 0x72657375   /* "user" */
107 108
 #define __age_ 0x6567612d   /* "-age" */
108
-#define _purp_ 0x70727570   /* "purp" */
109
-#define _ose2_ 0x2065736f   /* "ose " */
110
-#define _ose1_ 0x3a65736f   /* "ose:" */
111
-#define _acti_ 0x69746361   /* "acti" */
112 109
 #define _disp_ 0x70736964   /* "disp" */
113 110
 #define _osit_ 0x7469736f   /* "osit" */
114 111
 #define _ion2_ 0x206e6f69   /* "ion " */
115 112
 #define _ion1_ 0x3a6e6f69   /* "ion:" */
116 113
 
114
+#define _pt_d_ 0x64617470   /* "pt-d" */
115
+#define _ispo_ 0x6f707369   /* "ispo" */
116
+#define _siti_ 0x69746973   /* "siti" */
117
+
117 118
 #endif /* KEYS_H */
Browse code

- patch from Jan (for recognizing some extra headers) applyed. - interface for parse_content_type_hdr changed (separation between type and subtype inside a mime) - parse_accept_hdr added

Bogdan-Andrei Iancu authored on 05/08/2003 11:13:01
Showing 1 changed files
... ...
@@ -34,6 +34,11 @@
34 34
 #ifndef KEYS_H
35 35
 #define KEYS_H
36 36
 
37
+/*
38
+ * a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  :  ' ' -
39
+ * 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 3a 20  2d
40
+ */
41
+
37 42
 #define _acce_ 0x65636361   /* "acce" */
38 43
 #define _allo_ 0x6f6c6c61   /* "allo" */
39 44
 #define _auth_ 0x68747561   /* "auth" */
... ...
@@ -86,4 +91,27 @@
86 91
 #define _cate_ 0x65746163   /* "cate" */
87 92
 #define _even_ 0x6e657665   /* "even" */
88 93
 
94
+#define _pt_l_ 0x6c2d7470   /* "pt-l" */
95
+#define _angu_ 0x75676e61   /* "angu" */
96
+#define _age2_ 0x20656761   /* "age " */
97
+#define _age1_ 0x3a656761   /* "age:" */
98
+#define _orga_ 0x6167726f   /* "orga" */
99
+#define _niza_ 0x617a696e   /* "niza" */
100
+#define _tion_ 0x6e6f6974   /* "tion" */
101
+#define _prio_ 0x6f697270   /* "prio" */
102
+#define _rity_ 0x79746972   /* "rity" */
103
+#define _subj_ 0x6a627573   /* "subj" */
104
+#define _ect2_ 0x20746365   /* "ect " */
105
+#define _ect1_ 0x3a746365   /* "ect:" */
106
+#define _user_ 0x72657375   /* "user" */
107
+#define __age_ 0x6567612d   /* "-age" */
108
+#define _purp_ 0x70727570   /* "purp" */
109
+#define _ose2_ 0x2065736f   /* "ose " */
110
+#define _ose1_ 0x3a65736f   /* "ose:" */
111
+#define _acti_ 0x69746361   /* "acti" */
112
+#define _disp_ 0x70736964   /* "disp" */
113
+#define _osit_ 0x7469736f   /* "osit" */
114
+#define _ion2_ 0x206e6f69   /* "ion " */
115
+#define _ion1_ 0x3a6e6f69   /* "ion:" */
116
+
89 117
 #endif /* KEYS_H */
Browse code

- Accept header field is now parsed too (needed in pa)

Jan Janak authored on 02/05/2003 08:36:15
Showing 1 changed files
... ...
@@ -1,156 +1,89 @@
1
+/* 
2
+ * $Id$ 
3
+ *
4
+ * Fast 32-bit Header Field Name Parser -- keys
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
+ * History:
30
+ * --------
31
+ * 2003-05-01 _acce_ macro added (janakj)
32
+ */
33
+
1 34
 #ifndef KEYS_H
2 35
 #define KEYS_H
3 36
 
4
-
37
+#define _acce_ 0x65636361   /* "acce" */
5 38
 #define _allo_ 0x6f6c6c61   /* "allo" */
6
-#define _allo_hash ((unsigned char)((_allo_ >> 13) ^ _allo_))
7
-
8 39
 #define _auth_ 0x68747561   /* "auth" */
9
-#define _auth_hash ((unsigned char)((_auth_ >> 13) ^ _allo_))
10
-
11 40
 #define _oriz_ 0x7a69726f   /* "oriz" */
12
-#define _oriz_hash ((unsigned char)((_oriz_ >> 13) ^ _oriz_))
13
-
14 41
 #define _atio_ 0x6f697461   /* "atio" */
15
-#define _atio_hash ((unsigned char)((_atio_ >> 13) ^ _atio_))
16
-
17 42
 #define _call_ 0x6c6c6163   /* "call" */
18
-#define _call_hash ((unsigned char)((_call_ >> 13) ^ _call_))
19
-
20 43
 #define __id2_ 0x2064692d   /* "-id " */
21
-#define __id2_hash ((unsigned char)((__id2_ >> 13) ^ __id2_))
22
-
23 44
 #define __id1_ 0x3a64692d   /* "-id:" */
24
-#define __id1_hash ((unsigned char)((__id1_ >> 13) ^ __id1_))
25
-
26 45
 #define _cont_ 0x746e6f63   /* "cont" */
27
-#define _cont_hash ((unsigned char)((_cont_ >> 13) ^ _cont_))
28
-
29 46
 #define _act2_ 0x20746361   /* "act " */
30
-#define _act2_hash ((unsigned char)((_act2_ >> 13) ^ _act2_))
31
-
32 47
 #define _act1_ 0x3a746361   /* "act:" */
33
-#define _act1_hash ((unsigned char)((_act1_ >> 13) ^ _act1_))
34
-
35 48
 #define _ent__ 0x2d746e65   /* "ent-" */
36
-#define _ent__hash ((unsigned char)((_ent__ >> 13) ^ _ent__))
37
-
38 49
 #define _leng_ 0x676e656c   /* "leng" */
39
-#define _leng_hash ((unsigned char)((_leng_ >> 13) ^ _leng_))
40
-
41 50
 #define _th12_ 0x203a6874   /* "th: " */
42
-#define _th12_hash ((unsigned char)((_th12_ >> 13) ^ _th12_))
43
-
44 51
 #define _type_ 0x65707974   /* "type" */
45
-#define _type_hash ((unsigned char)((_type_ >> 13) ^ _type_))
46
-
47 52
 #define _cseq_ 0x71657363   /* "cseq" */
48
-#define _cseq_hash ((unsigned char)((_cseq_ >> 13) ^ _cseq_))
49
-
50 53
 #define _expi_ 0x69707865   /* "expi" */
51
-#define _expi_hash ((unsigned char)((_expi_ >> 13) ^ _expi_))
52
-
53 54
 #define _res2_ 0x20736572   /* "res " */
54
-#define _res2_hash ((unsigned char)((_res2_ >> 13) ^ _res2_))
55
-
56 55
 #define _res1_ 0x3a736572   /* "res:" */
57
-#define _res1_hash ((unsigned char)((_res1_ >> 13) ^ _res1_))
58
-
59 56
 #define _from_ 0x6d6f7266   /* "from" */
60
-#define _from_hash ((unsigned char)((_from_ >> 13) ^ _from_))
61
-
62 57
 #define _max__ 0x2d78616d   /* "max-" */
63
-#define _max__hash ((unsigned char)((_max__ >> 13) ^ _max__))
64
-
65 58
 #define _forw_ 0x77726f66   /* "forw" */
66
-#define _forw_hash ((unsigned char)((_forw_ >> 13) ^ _forw_))
67
-
68 59
 #define _ards_ 0x73647261   /* "ards" */
69
-#define _ards_hash ((unsigned char)((_ards_ >> 13) ^ _ards_))
70
-
71 60
 #define _prox_ 0x786f7270   /* "prox" */
72
-#define _prox_hash ((unsigned char)((_prox_ >> 13) ^ _prox_))
73
-
74 61
 #define _y_au_ 0x75612d79   /* "y-au" */
75
-#define _y_au_hash ((unsigned char)((_y_au_ >> 13) ^ _y_au_))
76
-
77 62
 #define _thor_ 0x726f6874   /* "thor" */
78
-#define _thor_hash ((unsigned char)((_thor_ >> 13) ^ _thor_))
79
-
80 63
 #define _izat_ 0x74617a69   /* "izat" */
81
-#define _izat_hash ((unsigned char)((_izat_ >> 13) ^ _izat_))
82
-
83 64
 #define _ion2_ 0x206e6f69   /* "ion " */
84
-#define _ion2_hash ((unsigned char)((_ion2_ >> 13) ^ _ion2_))
85
-
86 65
 #define _ion1_ 0x3a6e6f69   /* "ion:" */
87
-#define _ion1_hash ((unsigned char)((_ion1_ >> 13) ^ _ion1_))
88
-
89 66
 #define _y_re_ 0x65722d79   /* "y-re" */
90
-#define _y_re_hash ((unsigned char)((_y_re_ >> 13) ^ _y_re_))
91
-
92 67
 #define _quir_ 0x72697571   /* "quir" */
93
-#define _quir_hash ((unsigned char)((_quir_ >> 13) ^ _quir_))
94
-
95 68
 #define _reco_ 0x6f636572   /* "reco" */
96
-#define _reco_hash ((unsigned char)((_reco_ >> 13) ^ _reco_))
97
-
98 69
 #define _rd_r_ 0x722d6472   /* "rd-r" */
99
-#define _rd_r_hash ((unsigned char)((_rd_r_ >> 13) ^ _rd_r_))
100
-
101 70
 #define _oute_ 0x6574756f   /* "oute" */
102
-#define _oute_hash ((unsigned char)((_oute_ >> 13) ^ _oute_))
103
-
104 71
 #define _requ_ 0x75716572   /* "requ" */
105
-#define _requ_hash ((unsigned char)((_requ_ >> 13) ^ _requ_))
106
-
107 72
 #define _ire2_ 0x20657269   /* "ire " */
108
-#define _ire2_hash ((unsigned char)((_ire2_ >> 13) ^ _ire2_))
109
-
110 73
 #define _ire1_ 0x3a657269   /* "ire:" */
111
-#define _ire1_hash ((unsigned char)((_ire1_ >> 13) ^ _ire1_))
112
-
113 74
 #define _rout_ 0x74756f72   /* "rout" */
114
-#define _rout_hash ((unsigned char)((_rout_ >> 13) ^ _rout_))
115
-
116 75
 #define _supp_ 0x70707573   /* "supp" */
117
-#define _supp_hash ((unsigned char)((_supp_ >> 13) ^ _supp_))
118
-
119 76
 #define _orte_ 0x6574726f   /* "orte" */
120
-#define _orte_hash ((unsigned char)((_orte_ >> 13) ^ _orte_))
121
-
122 77
 #define _to12_ 0x203a6f74   /* "to: " */
123
-#define _to12_hash ((unsigned char)((_to12_ >> 13) ^ _to12_))
124
-
125 78
 #define _unsu_ 0x75736e75   /* "unsu" */
126
-#define _unsu_hash ((unsigned char)((_unsu_ >> 13) ^ _unsu_))
127
-
128 79
 #define _ppor_ 0x726f7070   /* "ppor" */
129
-#define _ppor_hash ((unsigned char)((_ppor_ >> 13) ^ _ppor_))
130
-
131 80
 #define _ted2_ 0x20646574   /* "ted " */
132
-#define _ted2_hash ((unsigned char)((_ted2_ >> 13) ^ _ted2_))
133
-
134 81
 #define _ted1_ 0x3a646574   /* "ted:" */
135
-#define _ted1_hash ((unsigned char)((_ted1_ >> 13) ^ _ted1_))
136
-
137 82
 #define _via2_ 0x20616976   /* "via " */
138
-#define _via2_hash ((unsigned char)((_via2_ >> 13) ^ _via2_))
139
-
140 83
 #define _via1_ 0x3a616976   /* "via:" */
141
-#define _via1_hash ((unsigned char)((_via1_ >> 13) ^ _via1_))
142
-
143 84
 #define _www__ 0x2d777777   /* "www-" */
144
-#define _www__hash ((unsigned char)((_www__ >> 13) ^ _www__))
145
-
146 85
 #define _enti_ 0x69746e65   /* "enti" */
147
-#define _enti_hash ((unsigned char)((_enti_ >> 13) ^ _enti_))
148
-
149 86
 #define _cate_ 0x65746163   /* "cate" */
150