Browse code

core - test: reorganized the old files in test folder

- moved to subfolders in test/misc
- keep content of the test folder cleaner for travis and unit tests

Daniel-Constantin Mierla authored on 26/11/2015 22:30:51
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,439 +0,0 @@
1
-
2
-/* test program -> switch speed */
3
-/*
4
- *
5
- * Copyright (C) 2001-2003 FhG Fokus
6
- *
7
- * This file is part of Kamailio, a free SIP server.
8
- *
9
- * Kamailio is free software; you can redistribute it and/or modify
10
- * it under the terms of the GNU General Public License as published by
11
- * the Free Software Foundation; either version 2 of the License, or
12
- * (at your option) any later version
13
- *
14
- * Kamailio is distributed in the hope that it will be useful,
15
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
- * GNU General Public License for more details.
18
- *
19
- * You should have received a copy of the GNU General Public License 
20
- * along with this program; if not, write to the Free Software 
21
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22
- */
23
-
24
-
25
-
26
-/* parsing:           compact form:
27
- * Via:               v:
28
- * From:              f:
29
- * To:                t:
30
- * Cseq:              n/a
31
- * Call-ID:           i:
32
- * Contact:           m:
33
- * Max-Forwards:      n/a
34
- * Route:             n/a
35
- */
36
-
37
-enum { INITIAL=0,
38
-		VIA1, VIA2,
39
-		FROM1, FROM2, FROM3,
40
-		TO1,
41
-		C_START, CSEQ2, CSEQ3,
42
-		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,
43
-		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,
44
-		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,
45
-		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,
46
-		MAXFORWARDS11,
47
-		ROUTE1, ROUTE2, ROUTE3, ROUTE4,
48
-		/* final states*/
49
-		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,
50
-		F_ROUTE,
51
-		I_START,
52
-
53
-		UNKNOWN_HEADER=200,
54
-		BODY=220,
55
-		LF=25000,
56
-	};
57
-
58
-#include <stdio.h>
59
-
60
-int main(int argc, char** argv)
61
-{
62
-
63
-	char* t;
64
-	register int state;
65
-	int i;
66
-	int err;
67
-	err=0;
68
-
69
-	state=INITIAL;
70
-	printf(" %s (%d)\n", argv[0], argc);
71
-	if (argc<2){
72
-			fprintf(stderr, " no parameters\n");
73
-			exit(-1);
74
-	}
75
-	
76
-	for (i=0;i<10000000;i++){
77
-		
78
-	for(t=argv[1];*t;t++){
79
-		switch(*t){
80
-			case 'V':
81
-			case 'v':
82
-					switch(state){
83
-						case INITIAL:
84
-							state=VIA1;
85
-							break;
86
-						case UNKNOWN_HEADER: break;
87
-						default:
88
-							state=UNKNOWN_HEADER;
89
-					}
90
-					break;
91
-			case 'I':
92
-			case 'i':
93
-					switch(state){
94
-						case VIA1:
95
-							state=VIA2;
96
-							break;
97
-						case CALLID5:
98
-							state=CALLID6;
99
-							break;
100
-						case INITIAL:
101
-							state=I_START;
102
-							break;
103
-						case UNKNOWN_HEADER: break;
104
-						default:
105
-							state=UNKNOWN_HEADER;
106
-					}
107
-					break;
108
-			case 'A':
109
-			case 'a':
110
-					switch(state){
111
-						case VIA2:
112
-								state=F_VIA;
113
-								break;
114
-						case C_START:  /*CALLID1*/
115
-								state=CALLID2;
116
-								break;
117
-						case CONTACT4:
118
-								state=CONTACT5;
119
-								break;
120
-						case M_START:
121
-								state=MAXFORWARDS2;
122
-								break;
123
-						case MAXFORWARDS8:
124
-								state=MAXFORWARDS9;
125
-								break;
126
-						case UNKNOWN_HEADER: break;
127
-						default:
128
-								state=UNKNOWN_HEADER;
129
-					}
130
-					break;
131
-			case 'F':
132
-			case 'f':
133
-					switch(state){
134
-						case INITIAL:
135
-								state=FROM1;
136
-								break;
137
-						case MAXFORWARDS4:
138
-								state=MAXFORWARDS5;
139
-								break;
140
-						case UNKNOWN_HEADER: break;
141
-						default:
142
-								state=UNKNOWN_HEADER;
143
-					}
144
-					break;
145
-			case 'R':
146
-			case 'r':
147
-					switch(state){
148
-						case INITIAL:
149
-							state=ROUTE1;
150
-							break;
151
-						case FROM1:
152
-							state=FROM2;
153
-							break;
154
-						case MAXFORWARDS6:
155
-							state=MAXFORWARDS7;
156
-							break;
157
-						case MAXFORWARDS9:
158
-							state=MAXFORWARDS10;
159
-							break;
160
-						case UNKNOWN_HEADER: break;
161
-						default:
162
-							state=UNKNOWN_HEADER;
163
-					}
164
-					break;
165
-			case 'O':
166
-			case 'o':
167
-					switch(state){
168
-						case FROM2:
169
-							state=FROM3;
170
-							break;
171
-						case TO1:
172
-							state=F_TO;
173
-							break;
174
-						case C_START: /*CONTACT1 */
175
-							state=CONTACT2;
176
-							break;
177
-						case ROUTE1:
178
-							state=ROUTE2;
179
-							break;
180
-						case MAXFORWARDS5:
181
-							state=MAXFORWARDS6;
182
-							break;
183
-						case UNKNOWN_HEADER: break;
184
-						default:
185
-							state=UNKNOWN_HEADER;
186
-					}
187
-					break;
188
-			case 'M':
189
-			case 'm':
190
-						switch(state){
191
-							case INITIAL:
192
-								state=M_START;
193
-								break;
194
-							case FROM3:
195
-								state=F_FROM;
196
-								break;
197
-							case UNKNOWN_HEADER: break;
198
-							default:
199
-								state=UNKNOWN_HEADER;
200
-						}
201
-						break;
202
-			case 'T':
203
-			case 't':
204
-						switch(state){
205
-							case INITIAL:
206
-								state=TO1;
207
-								break;
208
-							case CONTACT3:
209
-								state=CONTACT4;
210
-								break;
211
-							case CONTACT6:
212
-								state=F_CONTACT;
213
-								break;
214
-							case ROUTE3:
215
-								state=ROUTE4;
216
-								break;
217
-							case UNKNOWN_HEADER: break;
218
-							default:
219
-								state=UNKNOWN_HEADER;
220
-						}
221
-						break;
222
-			case 'C':
223
-			case 'c':
224
-						switch(state){
225
-							case INITIAL:
226
-								state=C_START;
227
-								break;
228
-							case CONTACT5:
229
-								state=CONTACT6;
230
-								break;
231
-							case UNKNOWN_HEADER: break;
232
-							default:
233
-								state=UNKNOWN_HEADER;
234
-						}
235
-						break;
236
-			case 'S':
237
-			case 's':
238
-						switch(state){
239
-							case C_START:
240
-								state=CSEQ2;
241
-								break;
242
-							case MAXFORWARDS11:
243
-								state=F_MAXFORWARDS;
244
-								break;
245
-							case UNKNOWN_HEADER: break;
246
-							default:
247
-								state=UNKNOWN_HEADER;
248
-						}
249
-						break;
250
-			case 'E':
251
-			case 'e':
252
-						switch(state){
253
-							case CSEQ2:
254
-								state=CSEQ3;
255
-								break;
256
-							case ROUTE4:
257
-								state=F_ROUTE;
258
-								break;
259
-							case UNKNOWN_HEADER: break;
260
-							default:
261
-								state=UNKNOWN_HEADER;
262
-						}
263
-						break;
264
-			case 'Q':
265
-			case 'q':
266
-						switch(state){
267
-							case CSEQ3:
268
-								state=F_CSEQ;
269
-								break;
270
-							case UNKNOWN_HEADER: break;
271
-							default:
272
-								state=UNKNOWN_HEADER;
273
-						}
274
-						break;
275
-			case 'L':
276
-			case 'l':
277
-						switch(state){
278
-							case CALLID2:
279
-								state=CALLID3;
280
-								break;
281
-							case CALLID3:
282
-								state=CALLID4;
283
-								break;
284
-							case UNKNOWN_HEADER: break;
285
-							default:
286
-								state=UNKNOWN_HEADER;
287
-						}
288
-						break;
289
-			case 'D':
290
-			case 'd':
291
-						switch(state){
292
-							case CALLID6:
293
-								state=F_CALLID;
294
-								break;
295
-							case MAXFORWARDS10:
296
-								state=MAXFORWARDS11;
297
-								break;
298
-							case UNKNOWN_HEADER: break;
299
-							default:
300
-								state=UNKNOWN_HEADER;
301
-						}
302
-						break;
303
-			case 'N':
304
-			case 'n':
305
-						switch(state){
306
-							case CONTACT2:
307
-								state=CONTACT3;
308
-								break;
309
-							case UNKNOWN_HEADER: break;
310
-							default:
311
-								state=UNKNOWN_HEADER;
312
-						}
313
-						break;
314
-			case 'X':
315
-			case 'x':
316
-						switch(state){
317
-							case MAXFORWARDS2:
318
-								state=MAXFORWARDS3;
319
-								break;
320
-							case UNKNOWN_HEADER: break;
321
-							default:
322
-								state=UNKNOWN_HEADER;
323
-						}
324
-						break;
325
-			case '-':
326
-						switch(state){
327
-							case CALLID4:
328
-								state=CALLID5;
329
-								break;
330
-							case MAXFORWARDS3:
331
-								state=MAXFORWARDS4;
332
-								break;
333
-							case UNKNOWN_HEADER: break;
334
-							default:
335
-								state=UNKNOWN_HEADER;
336
-						}
337
-						break;
338
-			case 'W':
339
-			case 'w':
340
-						switch(state){
341
-							case MAXFORWARDS7:
342
-								state=MAXFORWARDS8;
343
-								break;
344
-							case UNKNOWN_HEADER: break;
345
-							default:
346
-								state=UNKNOWN_HEADER;
347
-						}
348
-						break;
349
-			case 'U':
350
-			case 'u':
351
-						switch(state){
352
-							case ROUTE2:
353
-								state=ROUTE3;
354
-								break;
355
-							case UNKNOWN_HEADER: break;
356
-							default:
357
-								state=UNKNOWN_HEADER;
358
-						}
359
-						break;
360
-			case ' ':
361
-						switch(state){
362
-							case INITIAL:
363
-								break; /*eat space */
364
-							case F_VIA:
365
-							case F_FROM:
366
-							case F_TO:
367
-							case F_CSEQ:
368
-							case F_CALLID:
369
-							case F_CONTACT:
370
-							case F_MAXFORWARDS:
371
-							case F_ROUTE:
372
-								break; /* eat trailing space*/
373
-							case VIA1:
374
-								/*compact form: v: */
375
-								state=F_VIA;
376
-								break;
377
-							case FROM1:
378
-								/*compact form f:*/
379
-								state=F_FROM;
380
-								break;
381
-							case TO1:
382
-								/*compact form t:*/
383
-								state=F_TO;
384
-								break;
385
-							case I_START:
386
-								/*compact form i: (Call-ID)*/
387
-								state=F_CALLID;
388
-								break;
389
-							case M_START:
390
-								/*compact form m: (Contact)*/
391
-								state=F_CONTACT;
392
-								break;
393
-							case UNKNOWN_HEADER: break;
394
-							default:
395
-								state=UNKNOWN_HEADER;
396
-						}
397
-						break;
398
-			case ':':
399
-						switch(state){
400
-							case F_VIA:
401
-							case VIA1: /* compact form*/
402
-							case F_FROM:
403
-							case FROM1: /*compact form*/
404
-							case F_TO:
405
-							case TO1: /*compact form*/
406
-							case F_CSEQ:
407
-							case F_CALLID:
408
-							case I_START: /*compact form*/
409
-							case F_CONTACT:
410
-							case M_START: /*compact form*/
411
-							case F_MAXFORWARDS:
412
-							case F_ROUTE:
413
-							//	printf("found header, state=%d\n", state);
414
-								state=INITIAL; /* reset to test*/
415
-								break;
416
-							case UNKNOWN_HEADER:
417
-							default:
418
-								/*printf("found unknown header, state=%d\n", 
419
-											state);*/
420
-								err=1;
421
-								state=INITIAL;
422
-						}
423
-						break;
424
-			default:
425
-					/*fprintf(stderr, "Unexpected char <%c> encountered"
426
-										" state=%d\n", *t, state);
427
-						exit(-1);*/
428
-					state=UNKNOWN_HEADER;
429
-		}
430
-	}
431
-
432
-	} //for i
433
-	if (err) printf("Error unknown header\n");
434
-	printf("final state=%d\n", state);
435
-
436
-	exit(0);
437
-
438
-}
439
-
Browse code

test: Remove SVN ID's

Olle E. Johansson authored on 07/03/2015 19:43:49
Showing 1 changed files
... ...
@@ -4,19 +4,14 @@
4 4
  *
5 5
  * Copyright (C) 2001-2003 FhG Fokus
6 6
  *
7
- * This file is part of ser, a free SIP server.
7
+ * This file is part of Kamailio, a free SIP server.
8 8
  *
9
- * ser is free software; you can redistribute it and/or modify
9
+ * Kamailio is free software; you can redistribute it and/or modify
10 10
  * it under the terms of the GNU General Public License as published by
11 11
  * the Free Software Foundation; either version 2 of the License, or
12 12
  * (at your option) any later version
13 13
  *
14
- * For a license to use the ser software under conditions
15
- * other than those described here, or to purchase support for this
16
- * software, please contact iptel.org by e-mail at the following addresses:
17
- *    info@iptel.org
18
- *
19
- * ser is distributed in the hope that it will be useful,
14
+ * Kamailio is distributed in the hope that it will be useful,
20 15
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 16
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 17
  * GNU General Public License for more details.
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
... ...
@@ -23,7 +23,7 @@
23 23
  *
24 24
  * You should have received a copy of the GNU General Public License 
25 25
  * along with this program; if not, write to the Free Software 
26
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
27 27
  */
28 28
 
29 29
 
Browse code

- Spelling checked

Jan Janak authored on 24/08/2004 09:01:24
Showing 1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /* test program -> switch speed */
3 3
 /*
4 4
  *
5
- * Copyright (C) 2001-2003 Fhg Fokus
5
+ * Copyright (C) 2001-2003 FhG Fokus
6 6
  *
7 7
  * This file is part of ser, a free SIP server.
8 8
  *
... ...
@@ -420,7 +420,7 @@ int main(int argc, char** argv)
420 420
 								break;
421 421
 							case UNKNOWN_HEADER:
422 422
 							default:
423
-								/*printf("found unkown header, state=%d\n", 
423
+								/*printf("found unknown header, state=%d\n", 
424 424
 											state);*/
425 425
 								err=1;
426 426
 								state=INITIAL;
Browse code

GPLization banner introduced to *.[hc] files

Jiri Kuthan authored on 19/09/2002 12:23:52
Showing 1 changed files
... ...
@@ -1,5 +1,31 @@
1 1
 
2 2
 /* test program -> switch speed */
3
+/*
4
+ *
5
+ * Copyright (C) 2001-2003 Fhg Fokus
6
+ *
7
+ * This file is part of ser, a free SIP server.
8
+ *
9
+ * ser is free software; you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation; either version 2 of the License, or
12
+ * (at your option) any later version
13
+ *
14
+ * For a license to use the ser software under conditions
15
+ * other than those described here, or to purchase support for this
16
+ * software, please contact iptel.org by e-mail at the following addresses:
17
+ *    info@iptel.org
18
+ *
19
+ * ser is distributed in the hope that it will be useful,
20
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
+ * GNU General Public License for more details.
23
+ *
24
+ * You should have received a copy of the GNU General Public License 
25
+ * along with this program; if not, write to the Free Software 
26
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
27
+ */
28
+
3 29
 
4 30
 
5 31
 /* parsing:           compact form:
Browse code

- update TODO - added test files for the new automaton based parsing (work in progress)

Andrei Pelinescu-Onciul authored on 02/11/2001 21:22:24
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,418 @@
1
+
2
+/* test program -> switch speed */
3
+
4
+
5
+/* parsing:           compact form:
6
+ * Via:               v:
7
+ * From:              f:
8
+ * To:                t:
9
+ * Cseq:              n/a
10
+ * Call-ID:           i:
11
+ * Contact:           m:
12
+ * Max-Forwards:      n/a
13
+ * Route:             n/a
14
+ */
15
+
16
+enum { INITIAL=0,
17
+		VIA1, VIA2,
18
+		FROM1, FROM2, FROM3,
19
+		TO1,
20
+		C_START, CSEQ2, CSEQ3,
21
+		         CALLID2, CALLID3, CALLID4, CALLID5, CALLID6,
22
+		         CONTACT2, CONTACT3, CONTACT4, CONTACT5, CONTACT6,
23
+		M_START,      MAXFORWARDS2, MAXFORWARDS3, MAXFORWARDS4, MAXFORWARDS5,
24
+		MAXFORWARDS6, MAXFORWARDS7, MAXFORWARDS8, MAXFORWARDS9, MAXFORWARDS10,
25
+		MAXFORWARDS11,
26
+		ROUTE1, ROUTE2, ROUTE3, ROUTE4,
27
+		/* final states*/
28
+		F_VIA=1000, F_FROM, F_TO, F_CSEQ, F_CALLID, F_CONTACT, F_MAXFORWARDS,
29
+		F_ROUTE,
30
+		I_START,
31
+
32
+		UNKNOWN_HEADER=200,
33
+		BODY=220,
34
+		LF=25000,
35
+	};
36
+
37
+#include <stdio.h>
38
+
39
+int main(int argc, char** argv)
40
+{
41
+
42
+	char* t;
43
+	register int state;
44
+	int i;
45
+	int err;
46
+	err=0;
47
+
48
+	state=INITIAL;
49
+	printf(" %s (%d)\n", argv[0], argc);
50
+	if (argc<2){
51
+			fprintf(stderr, " no parameters\n");
52
+			exit(-1);
53
+	}
54
+	
55
+	for (i=0;i<10000000;i++){
56
+		
57
+	for(t=argv[1];*t;t++){
58
+		switch(*t){
59
+			case 'V':
60
+			case 'v':
61
+					switch(state){
62
+						case INITIAL:
63
+							state=VIA1;
64
+							break;
65
+						case UNKNOWN_HEADER: break;
66
+						default:
67
+							state=UNKNOWN_HEADER;
68
+					}
69
+					break;
70
+			case 'I':
71
+			case 'i':
72
+					switch(state){
73
+						case VIA1:
74
+							state=VIA2;
75
+							break;
76
+						case CALLID5:
77
+							state=CALLID6;
78
+							break;
79
+						case INITIAL:
80
+							state=I_START;
81
+							break;
82
+						case UNKNOWN_HEADER: break;
83
+						default:
84
+							state=UNKNOWN_HEADER;
85
+					}
86
+					break;
87
+			case 'A':
88
+			case 'a':
89
+					switch(state){
90
+						case VIA2:
91
+								state=F_VIA;
92
+								break;
93
+						case C_START:  /*CALLID1*/
94
+								state=CALLID2;
95
+								break;
96
+						case CONTACT4:
97
+								state=CONTACT5;
98
+								break;
99
+						case M_START:
100
+								state=MAXFORWARDS2;
101
+								break;
102
+						case MAXFORWARDS8:
103
+								state=MAXFORWARDS9;
104
+								break;
105
+						case UNKNOWN_HEADER: break;
106
+						default:
107
+								state=UNKNOWN_HEADER;
108
+					}
109
+					break;
110
+			case 'F':
111
+			case 'f':
112
+					switch(state){
113
+						case INITIAL:
114
+								state=FROM1;
115
+								break;
116
+						case MAXFORWARDS4:
117
+								state=MAXFORWARDS5;
118
+								break;
119
+						case UNKNOWN_HEADER: break;
120
+						default:
121
+								state=UNKNOWN_HEADER;
122
+					}
123
+					break;
124
+			case 'R':
125
+			case 'r':
126
+					switch(state){
127
+						case INITIAL:
128
+							state=ROUTE1;
129
+							break;
130
+						case FROM1:
131
+							state=FROM2;
132
+							break;
133
+						case MAXFORWARDS6:
134
+							state=MAXFORWARDS7;
135
+							break;
136
+						case MAXFORWARDS9:
137
+							state=MAXFORWARDS10;
138
+							break;
139
+						case UNKNOWN_HEADER: break;
140
+						default:
141
+							state=UNKNOWN_HEADER;
142
+					}
143
+					break;
144
+			case 'O':
145
+			case 'o':
146
+					switch(state){
147
+						case FROM2:
148
+							state=FROM3;
149
+							break;
150
+						case TO1:
151
+							state=F_TO;
152
+							break;
153
+						case C_START: /*CONTACT1 */
154
+							state=CONTACT2;
155
+							break;
156
+						case ROUTE1:
157
+							state=ROUTE2;
158
+							break;
159
+						case MAXFORWARDS5:
160
+							state=MAXFORWARDS6;
161
+							break;
162
+						case UNKNOWN_HEADER: break;
163
+						default:
164
+							state=UNKNOWN_HEADER;
165
+					}
166
+					break;
167
+			case 'M':
168
+			case 'm':
169
+						switch(state){
170
+							case INITIAL:
171
+								state=M_START;
172
+								break;
173
+							case FROM3:
174
+								state=F_FROM;
175
+								break;
176
+							case UNKNOWN_HEADER: break;
177
+							default:
178
+								state=UNKNOWN_HEADER;
179
+						}
180
+						break;
181
+			case 'T':
182
+			case 't':
183
+						switch(state){
184
+							case INITIAL:
185
+								state=TO1;
186
+								break;
187
+							case CONTACT3:
188
+								state=CONTACT4;
189
+								break;
190
+							case CONTACT6:
191
+								state=F_CONTACT;
192
+								break;
193
+							case ROUTE3:
194
+								state=ROUTE4;
195
+								break;
196
+							case UNKNOWN_HEADER: break;
197
+							default:
198
+								state=UNKNOWN_HEADER;
199
+						}
200
+						break;
201
+			case 'C':
202
+			case 'c':
203
+						switch(state){
204
+							case INITIAL:
205
+								state=C_START;
206
+								break;
207
+							case CONTACT5:
208
+								state=CONTACT6;
209
+								break;
210
+							case UNKNOWN_HEADER: break;
211
+							default:
212
+								state=UNKNOWN_HEADER;
213
+						}
214
+						break;
215
+			case 'S':
216
+			case 's':
217
+						switch(state){
218
+							case C_START:
219
+								state=CSEQ2;
220
+								break;
221
+							case MAXFORWARDS11:
222
+								state=F_MAXFORWARDS;
223
+								break;
224
+							case UNKNOWN_HEADER: break;
225
+							default:
226
+								state=UNKNOWN_HEADER;
227
+						}
228
+						break;
229
+			case 'E':
230
+			case 'e':
231
+						switch(state){
232
+							case CSEQ2:
233
+								state=CSEQ3;
234
+								break;
235
+							case ROUTE4:
236
+								state=F_ROUTE;
237
+								break;
238
+							case UNKNOWN_HEADER: break;
239
+							default:
240
+								state=UNKNOWN_HEADER;
241
+						}
242
+						break;
243
+			case 'Q':
244
+			case 'q':
245
+						switch(state){
246
+							case CSEQ3:
247
+								state=F_CSEQ;
248
+								break;
249
+							case UNKNOWN_HEADER: break;
250
+							default:
251
+								state=UNKNOWN_HEADER;
252
+						}
253
+						break;
254
+			case 'L':
255
+			case 'l':
256
+						switch(state){
257
+							case CALLID2:
258
+								state=CALLID3;
259
+								break;
260
+							case CALLID3:
261
+								state=CALLID4;
262
+								break;
263
+							case UNKNOWN_HEADER: break;
264
+							default:
265
+								state=UNKNOWN_HEADER;
266
+						}
267
+						break;
268
+			case 'D':
269
+			case 'd':
270
+						switch(state){
271
+							case CALLID6:
272
+								state=F_CALLID;
273
+								break;
274
+							case MAXFORWARDS10:
275
+								state=MAXFORWARDS11;
276
+								break;
277
+							case UNKNOWN_HEADER: break;
278
+							default:
279
+								state=UNKNOWN_HEADER;
280
+						}
281
+						break;
282
+			case 'N':
283
+			case 'n':
284
+						switch(state){
285
+							case CONTACT2:
286
+								state=CONTACT3;
287
+								break;
288
+							case UNKNOWN_HEADER: break;
289
+							default:
290
+								state=UNKNOWN_HEADER;
291
+						}
292
+						break;
293
+			case 'X':
294
+			case 'x':
295
+						switch(state){
296
+							case MAXFORWARDS2:
297
+								state=MAXFORWARDS3;
298
+								break;
299
+							case UNKNOWN_HEADER: break;
300
+							default:
301
+								state=UNKNOWN_HEADER;
302
+						}
303
+						break;
304
+			case '-':
305
+						switch(state){
306
+							case CALLID4:
307
+								state=CALLID5;
308
+								break;
309
+							case MAXFORWARDS3:
310
+								state=MAXFORWARDS4;
311
+								break;
312
+							case UNKNOWN_HEADER: break;
313
+							default:
314
+								state=UNKNOWN_HEADER;
315
+						}
316
+						break;
317
+			case 'W':
318
+			case 'w':
319
+						switch(state){
320
+							case MAXFORWARDS7:
321
+								state=MAXFORWARDS8;
322
+								break;
323
+							case UNKNOWN_HEADER: break;
324
+							default:
325
+								state=UNKNOWN_HEADER;
326
+						}
327
+						break;
328
+			case 'U':
329
+			case 'u':
330
+						switch(state){
331
+							case ROUTE2:
332
+								state=ROUTE3;
333
+								break;
334
+							case UNKNOWN_HEADER: break;
335
+							default:
336
+								state=UNKNOWN_HEADER;
337
+						}
338
+						break;
339
+			case ' ':
340
+						switch(state){
341
+							case INITIAL:
342
+								break; /*eat space */
343
+							case F_VIA:
344
+							case F_FROM:
345
+							case F_TO:
346
+							case F_CSEQ:
347
+							case F_CALLID:
348
+							case F_CONTACT:
349
+							case F_MAXFORWARDS:
350
+							case F_ROUTE:
351
+								break; /* eat trailing space*/
352
+							case VIA1:
353
+								/*compact form: v: */
354
+								state=F_VIA;
355
+								break;
356
+							case FROM1:
357
+								/*compact form f:*/
358
+								state=F_FROM;
359
+								break;
360
+							case TO1:
361
+								/*compact form t:*/
362
+								state=F_TO;
363
+								break;
364
+							case I_START:
365
+								/*compact form i: (Call-ID)*/
366
+								state=F_CALLID;
367
+								break;
368
+							case M_START:
369
+								/*compact form m: (Contact)*/
370
+								state=F_CONTACT;
371
+								break;
372
+							case UNKNOWN_HEADER: break;
373
+							default:
374
+								state=UNKNOWN_HEADER;
375
+						}
376
+						break;
377
+			case ':':
378
+						switch(state){
379
+							case F_VIA:
380
+							case VIA1: /* compact form*/
381
+							case F_FROM:
382
+							case FROM1: /*compact form*/