Browse code

Faster parse_hname function, hash table removed, several minor optimizations

Jan Janak authored on 18/11/2002 19:08:16
Showing 21 changed files
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Allow header field parser macros
4
+ * Allow Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -27,18 +27,17 @@
27 27
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28 28
  */
29 29
 
30
-
31 30
 #ifndef CASE_ALLO_H
32 31
 #define CASE_ALLO_H
33 32
 
34 33
 
35
-#define Allo_CASE                     \
36
-    p += 4;                           \
37
-    if ((*p == 'w') || (*p == 'W')) { \
38
-            hdr->type = HDR_ALLOW;    \
39
-            p++;                      \
40
-	    goto dc_end;              \
41
-    }                                 \
34
+#define allo_CASE                  \
35
+    p += 4;                        \
36
+    if (LOWER_BYTE(*p) == 'w') {   \
37
+            hdr->type = HDR_ALLOW; \
38
+            p++;                   \
39
+	    goto dc_end;           \
40
+    }                              \
42 41
     goto other;
43 42
 
44 43
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Authoriazation header field parser macros
4
+ * Authorization Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -27,17 +27,15 @@
27 27
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28 28
  */
29 29
 
30
-
31 30
 #ifndef CASE_AUTH_H
32 31
 #define CASE_AUTH_H
33 32
 
34 33
 
35 34
 #define AUTH_ATIO_CASE                                 \
36
-        if (val == _atio_) {                           \
35
+        if (LOWER_DWORD(val) == _atio_) {              \
37 36
 	        p += 4;                                \
38
-		switch(*p) {                           \
37
+		switch(LOWER_BYTE(*p)) {               \
39 38
 		case 'n':                              \
40
-		case 'N':                              \
41 39
 		        hdr->type = HDR_AUTHORIZATION; \
42 40
 			p++;                           \
43 41
 			goto dc_end;                   \
... ...
@@ -47,27 +45,19 @@
47 47
 	}
48 48
 	             
49 49
 
50
-#define AUTH_ORIZ_CASE            \
51
-        if (val == _oriz_) {      \
52
-                p += 4;           \
53
-	        val = READ(p);    \
54
-	        AUTH_ATIO_CASE;   \
55
-          			  \
56
-                val = unify(val); \
57
-	        AUTH_ATIO_CASE;   \
58
-                                  \
59
-                goto other;       \
50
+#define AUTH_ORIZ_CASE                     \
51
+        if (LOWER_DWORD(val) == _oriz_) {  \
52
+                p += 4;                    \
53
+	        val = READ(p);             \
54
+	        AUTH_ATIO_CASE;            \
55
+                goto other;                \
60 56
         }
61 57
 
62 58
 
63
-#define Auth_CASE      \
59
+#define auth_CASE      \
64 60
      p += 4;           \
65 61
      val = READ(p);    \
66 62
      AUTH_ORIZ_CASE;   \
67
-                       \
68
-     val = unify(val); \
69
-     AUTH_ORIZ_CASE;   \
70
-                       \
71 63
      goto other;
72 64
 
73 65
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Call-ID header field parser macros
4
+ * Call-ID Header Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,28 +33,24 @@
33 33
 
34 34
 
35 35
 #define ID_CASE                      \
36
-     switch(val) {                   \
37
-     case __ID1_:                    \
36
+     switch(LOWER_DWORD(val)) {      \
37
+     case __id1_:                    \
38 38
 	     hdr->type = HDR_CALLID; \
39 39
 	     hdr->name.len = 7;      \
40 40
 	     *(p + 3) = '\0';        \
41 41
 	     return (p + 4);         \
42 42
 	                             \
43
-     case __ID2_:                    \
43
+     case __id2_:                    \
44 44
 	     hdr->type = HDR_CALLID; \
45 45
 	     p += 4;                 \
46 46
 	     goto dc_end;            \
47 47
      }
48 48
 
49 49
 
50
-#define Call_CASE      \
50
+#define call_CASE      \
51 51
      p += 4;           \
52 52
      val = READ(p);    \
53 53
      ID_CASE;          \
54
-                       \
55
-     val = unify(val); \
56
-     ID_CASE;          \
57
-                       \
58 54
      goto other;
59 55
 
60 56
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Contact, Content-Type, Content-Length header field parser macros
4
+ * Contact, Content-Type, Content-Length Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,7 +33,7 @@
33 33
 
34 34
 
35 35
 #define TH_CASE                                        \
36
-        switch(val) {                                  \
36
+        switch(LOWER_DWORD(val)) {                     \
37 37
         case _th12_:                                   \
38 38
                 hdr->type = HDR_CONTENTLENGTH;         \
39 39
                 hdr->name.len = 14;                    \
... ...
@@ -41,9 +41,9 @@
41 41
                 return (p + 4);                        \
42 42
         }                                              \
43 43
                                                        \
44
-        if ((*p == 't') || (*p == 'T')) {              \
44
+        if (LOWER_BYTE(*p) == 't') {                   \
45 45
                 p++;                                   \
46
-                if ((*p == 'h') || (*p == 'H')) {      \
46
+                if (LOWER_BYTE(*p) == 'h') {           \
47 47
                         hdr->type = HDR_CONTENTLENGTH; \
48 48
                         p++;                           \
49 49
                         goto dc_end;                   \
... ...
@@ -52,14 +52,14 @@
52 52
 
53 53
 
54 54
 #define LENG_TYPE_CASE                       \
55
-        switch(val) {                        \
56
-        case _Leng_:                         \
55
+        switch(LOWER_DWORD(val)) {            \
56
+        case _leng_:                         \
57 57
                 p += 4;                      \
58 58
                 val = READ(p);               \
59 59
                 TH_CASE;                     \
60 60
                 goto other;                  \
61 61
                                              \
62
-        case _Type_:                         \
62
+        case _type_:                         \
63 63
                 hdr->type = HDR_CONTENTTYPE; \
64 64
                 p += 4;                      \
65 65
                 goto dc_end;                 \
... ...
@@ -67,7 +67,7 @@
67 67
 
68 68
 
69 69
 #define ACT_ENT_CASE                     \
70
-        switch(val) {                    \
70
+        switch(LOWER_DWORD(val)) {       \
71 71
         case _act1_:                     \
72 72
 	        hdr->type = HDR_CONTACT; \
73 73
 	        hdr->name.len = 7;       \
... ...
@@ -83,20 +83,14 @@
83 83
                 p += 4;                  \
84 84
                 val = READ(p);           \
85 85
                 LENG_TYPE_CASE;          \
86
-                                         \
87
-                val = unify(val);        \
88
-                LENG_TYPE_CASE;          \
89 86
                 goto other;              \
90 87
         }                         
91 88
 
92 89
 
93
-#define Cont_CASE      \
90
+#define cont_CASE      \
94 91
      p += 4;           \
95 92
      val = READ(p);    \
96 93
      ACT_ENT_CASE;     \
97
-                       \
98
-     val = unify(val); \
99
-     ACT_ENT_CASE;     \
100 94
      goto other;
101 95
 
102 96
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * CSeq header field parser macros
4
+ * CSeq Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -32,7 +32,7 @@
32 32
 #define CASE_CSEQ_H
33 33
 
34 34
 
35
-#define CSeq_CASE          \
35
+#define cseq_CASE          \
36 36
      hdr->type = HDR_CSEQ; \
37 37
      p += 4;               \
38 38
      goto dc_end
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Event header field parser macros
4
+ * Event Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -32,9 +32,9 @@
32 32
 #define CASE_EVEN_H
33 33
 
34 34
 
35
-#define Even_CASE                     \
35
+#define even_CASE                     \
36 36
     p += 4;                           \
37
-    if ((*p == 't') || (*p == 'T')) { \
37
+    if (LOWER_BYTE(*p) == 't') {      \
38 38
             hdr->type = HDR_EVENT;    \
39 39
             p++;                      \
40 40
 	    goto dc_end;              \
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Expires header field parser macros
4
+ * Expires Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,7 +33,7 @@
33 33
 
34 34
 
35 35
 #define EXPI_RES_CASE                    \
36
-        switch(val) {                    \
36
+        switch(LOWER_DWORD(val)) {       \
37 37
         case _res1_:                     \
38 38
 		hdr->type = HDR_EXPIRES; \
39 39
 		hdr->name.len = 7;       \
... ...
@@ -47,13 +47,10 @@
47 47
         }
48 48
 
49 49
 
50
-#define Expi_CASE         \
50
+#define expi_CASE         \
51 51
         p += 4;           \
52 52
         val = READ(p);    \
53 53
         EXPI_RES_CASE;    \
54
-                          \
55
-        val = unify(val); \
56
-        EXPI_RES_CASE;    \
57 54
         goto other;
58 55
 
59 56
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * From header field parser macros
4
+ * From Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -32,7 +32,7 @@
32 32
 #define CASE_FROM_H
33 33
 
34 34
 
35
-#define From_CASE             \
35
+#define from_CASE             \
36 36
         hdr->type = HDR_FROM; \
37 37
         p += 4;               \
38 38
         goto dc_end
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Max-Forwards header field parser macros
4
+ * Max-Forwards Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,33 +33,27 @@
33 33
 
34 34
 
35 35
 #define ARDS_CASE                            \
36
-        if (val == _ards_) {                 \
36
+        if (LOWER_DWORD(val) == _ards_) {    \
37 37
 	        hdr->type = HDR_MAXFORWARDS; \
38 38
 	        p += 4;                      \
39 39
 		goto dc_end;                 \
40 40
 	}
41 41
 
42 42
 
43
-#define FORW_CASE                 \
44
-        switch(val) {             \
45
-        case _Forw_:              \
46
-	        p += 4;           \
47
-	        val = READ(p);    \
48
-                ARDS_CASE;        \
49
-                                  \
50
-	        val = unify(val); \
51
-		ARDS_CASE;        \
52
-	        goto other;       \
43
+#define FORW_CASE                  \
44
+        switch(LOWER_DWORD(val)) { \
45
+        case _forw_:               \
46
+	        p += 4;            \
47
+	        val = READ(p);     \
48
+                ARDS_CASE;         \
49
+	        goto other;        \
53 50
         }                                             
54 51
 
55 52
 
56
-#define Max_CASE       \
53
+#define max_CASE       \
57 54
      p += 4;           \
58 55
      val = READ(p);    \
59 56
      FORW_CASE;        \
60
-                       \
61
-     val = unify(val); \
62
-     FORW_CASE;        \
63 57
      goto other;       \
64 58
 
65 59
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Proxy-Authorization and Proxy-Require header field parser macros
4
+ * Proxy-Require, Proxy-Authorization Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,7 +33,7 @@
33 33
 
34 34
 
35 35
 #define ION_CASE                           \
36
-        switch(val) {                      \
36
+        switch(LOWER_DWORD(val)) {         \
37 37
         case _ion1_:                       \
38 38
 	        hdr->type = HDR_PROXYAUTH; \
39 39
 	        hdr->name.len = 19;        \
... ...
@@ -47,39 +47,32 @@
47 47
         }
48 48
 
49 49
 
50
-#define IZAT_CASE                 \
51
-        switch(val) {             \
52
-        case _izat_:              \
53
-                p += 4;           \
54
-                val = READ(p);    \
55
-                ION_CASE;         \
56
-                                  \
57
-                val = unify(val); \
58
-                ION_CASE;         \
59
-                goto other;       \
50
+#define IZAT_CASE                  \
51
+        switch(LOWER_DWORD(val)) { \
52
+        case _izat_:               \
53
+                p += 4;            \
54
+                val = READ(p);     \
55
+                ION_CASE;          \
56
+                goto other;        \
60 57
         }
61 58
 
62 59
 
63
-#define THOR_CASE                 \
64
-        switch(val) {             \
65
-        case _thor_:              \
66
-                p += 4;           \
67
-                val = READ(p);    \
68
-                IZAT_CASE;        \
69
-                                  \
70
-                val = unify(val); \
71
-                IZAT_CASE;        \
72
-                goto other;       \
60
+#define THOR_CASE                  \
61
+        switch(LOWER_DWORD(val)) { \
62
+        case _thor_:               \
63
+                p += 4;            \
64
+                val = READ(p);     \
65
+                IZAT_CASE;         \
66
+                goto other;        \
73 67
         }
74 68
 
75 69
 
76 70
 #define QUIR_CASE                                     \
77
-        switch(val) {                                 \
71
+        switch(LOWER_DWORD(val)) {                    \
78 72
         case _quir_:                                  \
79 73
 	        p += 4;                               \
80
-                switch(*p) {                          \
74
+                switch(LOWER_BYTE(*p)) {              \
81 75
                 case 'e':                             \
82
-                case 'E':                             \
83 76
                         hdr->type = HDR_PROXYREQUIRE; \
84 77
 	                p++;                          \
85 78
                         goto dc_end;                  \
... ...
@@ -88,36 +81,27 @@
88 88
         }
89 89
 
90 90
 
91
-#define PROX2_CASE                \
92
-        switch(val) {             \
93
-        case _y_Au_:              \
94
-                p += 4;           \
95
-                val = READ(p);    \
96
-                THOR_CASE;        \
97
-                                  \
98
-                val = unify(val); \
99
-                THOR_CASE;        \
100
-                goto other;       \
101
-                                  \
102
-        case _y_Re_:              \
103
-                p += 4;           \
104
-                val = READ(p);    \
105
-                QUIR_CASE;        \
106
-                                  \
107
-                val = unify(val); \
108
-                QUIR_CASE;        \
109
-                goto other;       \
91
+#define PROX2_CASE                 \
92
+        switch(LOWER_DWORD(val)) { \
93
+        case _y_au_:               \
94
+                p += 4;            \
95
+                val = READ(p);     \
96
+                THOR_CASE;         \
97
+                goto other;        \
98
+                                   \
99
+        case _y_re_:               \
100
+                p += 4;            \
101
+                val = READ(p);     \
102
+                QUIR_CASE;         \
103
+                goto other;        \
110 104
         }
111 105
 
112 106
 
113
-#define Prox_CASE         \
107
+#define prox_CASE         \
114 108
         p += 4;           \
115 109
         val = READ(p);    \
116 110
         PROX2_CASE;       \
117
-                          \
118
-        val = unify(val); \
119
-        PROX2_CASE;       \
120
-        goto other;
111
+         goto other;
121 112
 
122 113
 
123 114
 #endif /* CASE_PROX_H */
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Record-Route header field parser macros
4
+ * Record-Route Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,33 +33,27 @@
33 33
 
34 34
 
35 35
 #define OUTE_CASE                            \
36
-        if (val == _oute_) {                 \
36
+        if (LOWER_DWORD(val) == _oute_) {    \
37 37
 	        hdr->type = HDR_RECORDROUTE; \
38 38
 		p += 4;                      \
39 39
 		goto dc_end;                 \
40 40
 	}                                    \
41 41
 
42 42
 
43
-#define RD_R_CASE                 \
44
-        switch(val) {             \
45
-        case _rd_R_:              \
46
-	        p += 4;           \
47
-	        val = READ(p);    \
48
-		OUTE_CASE;        \
49
-                                  \
50
-	        val = unify(val); \
51
-		OUTE_CASE;        \
52
-	        goto other;       \
43
+#define RD_R_CASE                  \
44
+        switch(LOWER_DWORD(val)) { \
45
+        case _rd_r_:               \
46
+	        p += 4;            \
47
+	        val = READ(p);     \
48
+		OUTE_CASE;         \
49
+	        goto other;        \
53 50
         }
54 51
 
55 52
 
56
-#define Reco_CASE         \
53
+#define reco_CASE         \
57 54
         p += 4;           \
58 55
         val = READ(p);    \
59 56
         RD_R_CASE;        \
60
-                          \
61
-        val = unify(val); \
62
-        RD_R_CASE;        \
63 57
         goto other;
64 58
 
65 59
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Require header field parser macros
4
+ * Require Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,7 +33,7 @@
33 33
 
34 34
 
35 35
 #define IRE_CASE                         \
36
-        switch(val) {                    \
36
+        switch(LOWER_DWORD(val)) {       \
37 37
         case _ire1_:                     \
38 38
                 hdr->type = HDR_REQUIRE; \
39 39
                 hdr->name.len = 7;       \
... ...
@@ -47,13 +47,10 @@
47 47
         }
48 48
 
49 49
 
50
-#define Requ_CASE         \
50
+#define requ_CASE         \
51 51
         p += 4;           \
52 52
         val = READ(p);    \
53 53
         IRE_CASE;         \
54
-                          \
55
-        val = unify(val); \
56
-        IRE_CASE;         \
57 54
         goto other;
58 55
 
59 56
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Route header field parser macros
4
+ * Route Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -32,11 +32,10 @@
32 32
 #define CASE_ROUT_H
33 33
 
34 34
 
35
-#define Rout_CASE                   \
35
+#define rout_CASE                   \
36 36
      p += 4;                        \
37
-     switch(*p) {                   \
37
+     switch(LOWER_BYTE(*p)) {       \
38 38
      case 'e':                      \
39
-     case 'E':                      \
40 39
 	     hdr->type = HDR_ROUTE; \
41 40
 	     p++;                   \
42 41
 	     goto dc_end;           \
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Supported header field parser macros
4
+ * Supported Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,10 +33,10 @@
33 33
 
34 34
 
35 35
 #define ORTE_CASE                                  \
36
-        switch(val) {                              \
36
+        switch(LOWER_DWORD(val)) {                 \
37 37
         case _orte_:                               \
38 38
 	        p += 4;                            \
39
-	        if ((*p == 'd') || (*p == 'D')) {  \
39
+	        if (LOWER_BYTE(*p) == 'd') {       \
40 40
 		        hdr->type = HDR_SUPPORTED; \
41 41
                         p++;                       \
42 42
                         goto dc_end;               \
... ...
@@ -45,13 +45,10 @@
45 45
         }
46 46
 
47 47
 
48
-#define Supp_CASE         \
48
+#define supp_CASE         \
49 49
         p += 4;           \
50 50
         val = READ(p);    \
51 51
         ORTE_CASE;        \
52
-                          \
53
-        val = unify(val); \
54
-        ORTE_CASE;        \
55 52
         goto other;
56 53
 
57 54
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * To header field parser macros
4
+ * To Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -32,7 +32,7 @@
32 32
 #define CASE_TO_H
33 33
 
34 34
 
35
-#define To12_CASE           \
35
+#define to12_CASE           \
36 36
         hdr->type = HDR_TO; \
37 37
         hdr->name.len = 2;  \
38 38
         *(p + 2) = '\0';    \
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Unsupported header field parser macros
4
+ * Unsupported Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,7 +33,7 @@
33 33
 
34 34
 
35 35
 #define TED_CASE                             \
36
-        switch(val) {                        \
36
+        switch(LOWER_DWORD(val)) {           \
37 37
         case _ted1_:                         \
38 38
                 hdr->type = HDR_UNSUPPORTED; \
39 39
                 hdr->name.len = 11;          \
... ...
@@ -47,26 +47,20 @@
47 47
         }
48 48
 
49 49
 
50
-#define PPOR_CASE                 \
51
-        switch(val) {             \
52
-        case _ppor_:              \
53
-                p += 4;           \
54
-                val = READ(p);    \
55
-                TED_CASE;         \
56
-                                  \
57
-                val = unify(val); \
58
-                TED_CASE;         \
59
-                goto other;       \
50
+#define PPOR_CASE                  \
51
+        switch(LOWER_DWORD(val)) { \
52
+        case _ppor_:               \
53
+                p += 4;            \
54
+                val = READ(p);     \
55
+                TED_CASE;          \
56
+                goto other;        \
60 57
         }
61 58
 
62 59
 
63
-#define Unsu_CASE         \
60
+#define unsu_CASE         \
64 61
         p += 4;           \
65 62
         val = READ(p);    \
66 63
         PPOR_CASE;        \
67
-                          \
68
-        val = unify(val); \
69
-        PPOR_CASE;        \
70 64
         goto other;       \
71 65
 
72 66
 
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * Via header field parser macros
4
+ * Via Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -32,14 +32,14 @@
32 32
 #define CASE_VIA_H
33 33
 
34 34
 
35
-#define Via1_CASE            \
35
+#define via1_CASE            \
36 36
         hdr->type = HDR_VIA; \
37 37
         hdr->name.len = 3;   \
38 38
         *(p + 3) = '\0';     \
39 39
         return (p + 4)        
40 40
 
41 41
 
42
-#define Via2_CASE            \
42
+#define via2_CASE            \
43 43
         hdr->type = HDR_VIA; \
44 44
         p += 4;              \
45 45
         goto dc_end
... ...
@@ -1,7 +1,7 @@
1
-/*
2
- * $Id$
1
+/* 
2
+ * $Id$ 
3 3
  *
4
- * WWW-Authenticate header field parser macros
4
+ * WWW-Authenticate Header Field Name Parsing Macros
5 5
  *
6 6
  * Copyright (C) 2001-2003 Fhg Fokus
7 7
  *
... ...
@@ -33,7 +33,7 @@
33 33
 
34 34
 
35 35
 #define CATE_CASE                        \
36
-        switch(val) {                    \
36
+        switch(LOWER_DWORD(val)) {       \
37 37
         case _cate_:                     \
38 38
                 hdr->type = HDR_WWWAUTH; \
39 39
                 p += 4;                  \
... ...
@@ -41,40 +41,30 @@
41 41
         }
42 42
 
43 43
 
44
-#define ENTI_CASE                 \
45
-        switch(val) {             \
46
-        case _enti_:              \
47
-                p += 4;           \
48
-                val = READ(p);    \
49
-                CATE_CASE;        \
50
-                                  \
51
-                val = unify(val); \
52
-                CATE_CASE;        \
53
-                goto other;       \
44
+#define ENTI_CASE                  \
45
+        switch(LOWER_DWORD(val)) { \
46
+        case _enti_:               \
47
+                p += 4;            \
48
+                val = READ(p);     \
49
+                CATE_CASE;         \
50
+                goto other;        \
54 51
 } 
55 52
 
56 53
 
57
-#define WWW_AUTH_CASE             \
58
-        switch(val) {             \
59
-        case _Auth_:              \
60
-	        p += 4;           \
61
-                val = READ(p);    \
62
-                ENTI_CASE;        \
63
-                                  \
64
-                val = unify(val); \
65
-                ENTI_CASE;        \
66
-	        goto other;       \
54
+#define WWW_AUTH_CASE              \
55
+        switch(LOWER_DWORD(val)) { \
56
+        case _auth_:               \
57
+	        p += 4;            \
58
+                val = READ(p);     \
59
+                ENTI_CASE;         \
60
+	        goto other;        \
67 61
         }
68 62
 
69 63
 
70
-#define WWW_CASE          \
64
+#define www_CASE          \
71 65
         p += 4;           \
72 66
         val = READ(p);    \
73 67
         WWW_AUTH_CASE;    \
74
-                          \
75
-        val = unify(val); \
76
-                          \
77
-        WWW_AUTH_CASE;    \
78 68
         goto other;
79 69
 
80 70
 
... ...
@@ -1,696 +1,156 @@
1
-/*
2
- * $Id$
3
- *
4
- * parse_hname hash table keys
5
- * This file is automatically generated, do not edit
6
- *
7
- * Copyright (C) 2001-2003 Fhg Fokus
8
- *
9
- * This file is part of ser, a free SIP server.
10
- *
11
- * ser is free software; you can redistribute it and/or modify
12
- * it under the terms of the GNU General Public License as published by
13
- * the Free Software Foundation; either version 2 of the License, or
14
- * (at your option) any later version
15
- *
16
- * For a license to use the ser software under conditions
17
- * other than those described here, or to purchase support for this
18
- * software, please contact iptel.org by e-mail at the following addresses:
19
- *    info@iptel.org
20
- *
21
- * ser is distributed in the hope that it will be useful,
22
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
23
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
- * GNU General Public License for more details.
25
- *
26
- * You should have received a copy of the GNU General Public License 
27
- * along with this program; if not, write to the Free Software 
28
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
29
- */
30
-
31
-
32 1
 #ifndef KEYS_H
33 2
 #define KEYS_H
34 3
 
35 4
 
36 5
 #define _allo_ 0x6f6c6c61   /* "allo" */
37
-#define _allO_ 0x4f6c6c61   /* "allO" */
38
-#define _alLo_ 0x6f4c6c61   /* "alLo" */
39
-#define _alLO_ 0x4f4c6c61   /* "alLO" */
40
-#define _aLlo_ 0x6f6c4c61   /* "aLlo" */
41
-#define _aLlO_ 0x4f6c4c61   /* "aLlO" */
42
-#define _aLLo_ 0x6f4c4c61   /* "aLLo" */
43
-#define _aLLO_ 0x4f4c4c61   /* "aLLO" */
44
-#define _Allo_ 0x6f6c6c41   /* "Allo" */
45
-#define _AllO_ 0x4f6c6c41   /* "AllO" */
46
-#define _AlLo_ 0x6f4c6c41   /* "AlLo" */
47
-#define _AlLO_ 0x4f4c6c41   /* "AlLO" */
48
-#define _ALlo_ 0x6f6c4c41   /* "ALlo" */
49
-#define _ALlO_ 0x4f6c4c41   /* "ALlO" */
50
-#define _ALLo_ 0x6f4c4c41   /* "ALLo" */
51
-#define _ALLO_ 0x4f4c4c41   /* "ALLO" */
6
+#define _allo_hash ((unsigned char)((_allo_ >> 13) ^ _allo_))
52 7
 
53 8
 #define _auth_ 0x68747561   /* "auth" */
54
-#define _autH_ 0x48747561   /* "autH" */
55
-#define _auTh_ 0x68547561   /* "auTh" */
56
-#define _auTH_ 0x48547561   /* "auTH" */
57
-#define _aUth_ 0x68745561   /* "aUth" */
58
-#define _aUtH_ 0x48745561   /* "aUtH" */
59
-#define _aUTh_ 0x68545561   /* "aUTh" */
60
-#define _aUTH_ 0x48545561   /* "aUTH" */
61
-#define _Auth_ 0x68747541   /* "Auth" */
62
-#define _AutH_ 0x48747541   /* "AutH" */
63
-#define _AuTh_ 0x68547541   /* "AuTh" */
64
-#define _AuTH_ 0x48547541   /* "AuTH" */
65
-#define _AUth_ 0x68745541   /* "AUth" */
66
-#define _AUtH_ 0x48745541   /* "AUtH" */
67
-#define _AUTh_ 0x68545541   /* "AUTh" */
68
-#define _AUTH_ 0x48545541   /* "AUTH" */
9
+#define _auth_hash ((unsigned char)((_auth_ >> 13) ^ _allo_))
69 10
 
70 11
 #define _oriz_ 0x7a69726f   /* "oriz" */
71
-#define _oriZ_ 0x5a69726f   /* "oriZ" */
72
-#define _orIz_ 0x7a49726f   /* "orIz" */
73
-#define _orIZ_ 0x5a49726f   /* "orIZ" */
74
-#define _oRiz_ 0x7a69526f   /* "oRiz" */
75
-#define _oRiZ_ 0x5a69526f   /* "oRiZ" */
76
-#define _oRIz_ 0x7a49526f   /* "oRIz" */
77
-#define _oRIZ_ 0x5a49526f   /* "oRIZ" */
78
-#define _Oriz_ 0x7a69724f   /* "Oriz" */
79
-#define _OriZ_ 0x5a69724f   /* "OriZ" */
80
-#define _OrIz_ 0x7a49724f   /* "OrIz" */
81
-#define _OrIZ_ 0x5a49724f   /* "OrIZ" */
82
-#define _ORiz_ 0x7a69524f   /* "ORiz" */
83
-#define _ORiZ_ 0x5a69524f   /* "ORiZ" */
84
-#define _ORIz_ 0x7a49524f   /* "ORIz" */
85
-#define _ORIZ_ 0x5a49524f   /* "ORIZ" */
12
+#define _oriz_hash ((unsigned char)((_oriz_ >> 13) ^ _oriz_))
86 13
 
87 14
 #define _atio_ 0x6f697461   /* "atio" */
88
-#define _atiO_ 0x4f697461   /* "atiO" */
89
-#define _atIo_ 0x6f497461   /* "atIo" */
90
-#define _atIO_ 0x4f497461   /* "atIO" */
91
-#define _aTio_ 0x6f695461   /* "aTio" */
92
-#define _aTiO_ 0x4f695461   /* "aTiO" */
93
-#define _aTIo_ 0x6f495461   /* "aTIo" */
94
-#define _aTIO_ 0x4f495461   /* "aTIO" */
95
-#define _Atio_ 0x6f697441   /* "Atio" */
96
-#define _AtiO_ 0x4f697441   /* "AtiO" */
97
-#define _AtIo_ 0x6f497441   /* "AtIo" */
98
-#define _AtIO_ 0x4f497441   /* "AtIO" */
99
-#define _ATio_ 0x6f695441   /* "ATio" */
100
-#define _ATiO_ 0x4f695441   /* "ATiO" */
101
-#define _ATIo_ 0x6f495441   /* "ATIo" */
102
-#define _ATIO_ 0x4f495441   /* "ATIO" */
15
+#define _atio_hash ((unsigned char)((_atio_ >> 13) ^ _atio_))
103 16
 
104 17
 #define _call_ 0x6c6c6163   /* "call" */
105
-#define _calL_ 0x4c6c6163   /* "calL" */
106
-#define _caLl_ 0x6c4c6163   /* "caLl" */
107
-#define _caLL_ 0x4c4c6163   /* "caLL" */
108
-#define _cAll_ 0x6c6c4163   /* "cAll" */
109
-#define _cAlL_ 0x4c6c4163   /* "cAlL" */
110
-#define _cALl_ 0x6c4c4163   /* "cALl" */
111
-#define _cALL_ 0x4c4c4163   /* "cALL" */
112
-#define _Call_ 0x6c6c6143   /* "Call" */
113
-#define _CalL_ 0x4c6c6143   /* "CalL" */
114
-#define _CaLl_ 0x6c4c6143   /* "CaLl" */
115
-#define _CaLL_ 0x4c4c6143   /* "CaLL" */
116
-#define _CAll_ 0x6c6c4143   /* "CAll" */
117
-#define _CAlL_ 0x4c6c4143   /* "CAlL" */
118
-#define _CALl_ 0x6c4c4143   /* "CALl" */
119
-#define _CALL_ 0x4c4c4143   /* "CALL" */
18
+#define _call_hash ((unsigned char)((_call_ >> 13) ^ _call_))
120 19
 
121 20
 #define __id2_ 0x2064692d   /* "-id " */
122
-#define __iD2_ 0x2044692d   /* "-iD " */
123
-#define __Id2_ 0x2064492d   /* "-Id " */
124
-#define __ID2_ 0x2044492d   /* "-ID " */
21
+#define __id2_hash ((unsigned char)((__id2_ >> 13) ^ __id2_))
125 22
 
126 23
 #define __id1_ 0x3a64692d   /* "-id:" */
127
-#define __iD1_ 0x3a44692d   /* "-iD:" */
128
-#define __Id1_ 0x3a64492d   /* "-Id:" */
129
-#define __ID1_ 0x3a44492d   /* "-ID:" */
24
+#define __id1_hash ((unsigned char)((__id1_ >> 13) ^ __id1_))
130 25
 
131 26
 #define _cont_ 0x746e6f63   /* "cont" */
132
-#define _conT_ 0x546e6f63   /* "conT" */
133
-#define _coNt_ 0x744e6f63   /* "coNt" */
134
-#define _coNT_ 0x544e6f63   /* "coNT" */
135
-#define _cOnt_ 0x746e4f63   /* "cOnt" */
136
-#define _cOnT_ 0x546e4f63   /* "cOnT" */
137
-#define _cONt_ 0x744e4f63   /* "cONt" */
138
-#define _cONT_ 0x544e4f63   /* "cONT" */
139
-#define _Cont_ 0x746e6f43   /* "Cont" */
140
-#define _ConT_ 0x546e6f43   /* "ConT" */
141
-#define _CoNt_ 0x744e6f43   /* "CoNt" */
142
-#define _CoNT_ 0x544e6f43   /* "CoNT" */
143
-#define _COnt_ 0x746e4f43   /* "COnt" */
144
-#define _COnT_ 0x546e4f43   /* "COnT" */
145
-#define _CONt_ 0x744e4f43   /* "CONt" */
146
-#define _CONT_ 0x544e4f43   /* "CONT" */
27
+#define _cont_hash ((unsigned char)((_cont_ >> 13) ^ _cont_))
147 28
 
148 29
 #define _act2_ 0x20746361   /* "act " */
149
-#define _acT2_ 0x20546361   /* "acT " */
150
-#define _aCt2_ 0x20744361   /* "aCt " */
151
-#define _aCT2_ 0x20544361   /* "aCT " */
152
-#define _Act2_ 0x20746341   /* "Act " */
153
-#define _AcT2_ 0x20546341   /* "AcT " */
154
-#define _ACt2_ 0x20744341   /* "ACt " */
155
-#define _ACT2_ 0x20544341   /* "ACT " */
30
+#define _act2_hash ((unsigned char)((_act2_ >> 13) ^ _act2_))
156 31
 
157 32
 #define _act1_ 0x3a746361   /* "act:" */
158
-#define _acT1_ 0x3a546361   /* "acT:" */
159
-#define _aCt1_ 0x3a744361   /* "aCt:" */
160
-#define _aCT1_ 0x3a544361   /* "aCT:" */
161
-#define _Act1_ 0x3a746341   /* "Act:" */
162
-#define _AcT1_ 0x3a546341   /* "AcT:" */
163
-#define _ACt1_ 0x3a744341   /* "ACt:" */
164
-#define _ACT1_ 0x3a544341   /* "ACT:" */
33
+#define _act1_hash ((unsigned char)((_act1_ >> 13) ^ _act1_))
165 34
 
166 35
 #define _ent__ 0x2d746e65   /* "ent-" */
167
-#define _enT__ 0x2d546e65   /* "enT-" */
168
-#define _eNt__ 0x2d744e65   /* "eNt-" */
169
-#define _eNT__ 0x2d544e65   /* "eNT-" */
170
-#define _Ent__ 0x2d746e45   /* "Ent-" */
171
-#define _EnT__ 0x2d546e45   /* "EnT-" */
172
-#define _ENt__ 0x2d744e45   /* "ENt-" */
173
-#define _ENT__ 0x2d544e45   /* "ENT-" */
36
+#define _ent__hash ((unsigned char)((_ent__ >> 13) ^ _ent__))
174 37
 
175 38
 #define _leng_ 0x676e656c   /* "leng" */
176
-#define _lenG_ 0x476e656c   /* "lenG" */
177
-#define _leNg_ 0x674e656c   /* "leNg" */
178
-#define _leNG_ 0x474e656c   /* "leNG" */
179
-#define _lEng_ 0x676e456c   /* "lEng" */
180
-#define _lEnG_ 0x476e456c   /* "lEnG" */
181
-#define _lENg_ 0x674e456c   /* "lENg" */
182
-#define _lENG_ 0x474e456c   /* "lENG" */
183
-#define _Leng_ 0x676e654c   /* "Leng" */
184
-#define _LenG_ 0x476e654c   /* "LenG" */
185
-#define _LeNg_ 0x674e654c   /* "LeNg" */
186
-#define _LeNG_ 0x474e654c   /* "LeNG" */
187
-#define _LEng_ 0x676e454c   /* "LEng" */
188
-#define _LEnG_ 0x476e454c   /* "LEnG" */
189
-#define _LENg_ 0x674e454c   /* "LENg" */
190
-#define _LENG_ 0x474e454c   /* "LENG" */
39
+#define _leng_hash ((unsigned char)((_leng_ >> 13) ^ _leng_))
191 40
 
192 41
 #define _th12_ 0x203a6874   /* "th: " */
193
-#define _tH12_ 0x203a4874   /* "tH: " */
194
-#define _Th12_ 0x203a6854   /* "Th: " */
195
-#define _TH12_ 0x203a4854   /* "TH: " */
42
+#define _th12_hash ((unsigned char)((_th12_ >> 13) ^ _th12_))
196 43
 
197 44
 #define _type_ 0x65707974   /* "type" */
198
-#define _typE_ 0x45707974   /* "typE" */
199
-#define _tyPe_ 0x65507974   /* "tyPe" */
200
-#define _tyPE_ 0x45507974   /* "tyPE" */
201
-#define _tYpe_ 0x65705974   /* "tYpe" */
202
-#define _tYpE_ 0x45705974   /* "tYpE" */
203
-#define _tYPe_ 0x65505974   /* "tYPe" */
204
-#define _tYPE_ 0x45505974   /* "tYPE" */
205
-#define _Type_ 0x65707954   /* "Type" */
206
-#define _TypE_ 0x45707954   /* "TypE" */
207
-#define _TyPe_ 0x65507954   /* "TyPe" */
208
-#define _TyPE_ 0x45507954   /* "TyPE" */
209
-#define _TYpe_ 0x65705954   /* "TYpe" */
210
-#define _TYpE_ 0x45705954   /* "TYpE" */
211
-#define _TYPe_ 0x65505954   /* "TYPe" */
212
-#define _TYPE_ 0x45505954   /* "TYPE" */
45
+#define _type_hash ((unsigned char)((_type_ >> 13) ^ _type_))
213 46
 
214 47
 #define _cseq_ 0x71657363   /* "cseq" */
215
-#define _cseQ_ 0x51657363   /* "cseQ" */
216
-#define _csEq_ 0x71457363   /* "csEq" */
217
-#define _csEQ_ 0x51457363   /* "csEQ" */
218
-#define _cSeq_ 0x71655363   /* "cSeq" */
219
-#define _cSeQ_ 0x51655363   /* "cSeQ" */
220
-#define _cSEq_ 0x71455363   /* "cSEq" */
221
-#define _cSEQ_ 0x51455363   /* "cSEQ" */
222
-#define _Cseq_ 0x71657343   /* "Cseq" */
223
-#define _CseQ_ 0x51657343   /* "CseQ" */
224
-#define _CsEq_ 0x71457343   /* "CsEq" */
225
-#define _CsEQ_ 0x51457343   /* "CsEQ" */
226
-#define _CSeq_ 0x71655343   /* "CSeq" */
227
-#define _CSeQ_ 0x51655343   /* "CSeQ" */
228
-#define _CSEq_ 0x71455343   /* "CSEq" */
229
-#define _CSEQ_ 0x51455343   /* "CSEQ" */
48
+#define _cseq_hash ((unsigned char)((_cseq_ >> 13) ^ _cseq_))
230 49
 
231 50
 #define _expi_ 0x69707865   /* "expi" */
232
-#define _expI_ 0x49707865   /* "expI" */
233
-#define _exPi_ 0x69507865   /* "exPi" */
234
-#define _exPI_ 0x49507865   /* "exPI" */
235
-#define _eXpi_ 0x69705865   /* "eXpi" */
236
-#define _eXpI_ 0x49705865   /* "eXpI" */
237
-#define _eXPi_ 0x69505865   /* "eXPi" */
238
-#define _eXPI_ 0x49505865   /* "eXPI" */
239
-#define _Expi_ 0x69707845   /* "Expi" */
240
-#define _ExpI_ 0x49707845   /* "ExpI" */
241
-#define _ExPi_ 0x69507845   /* "ExPi" */
242
-#define _ExPI_ 0x49507845   /* "ExPI" */
243
-#define _EXpi_ 0x69705845   /* "EXpi" */
244
-#define _EXpI_ 0x49705845   /* "EXpI" */
245
-#define _EXPi_ 0x69505845   /* "EXPi" */
246
-#define _EXPI_ 0x49505845   /* "EXPI" */
51
+#define _expi_hash ((unsigned char)((_expi_ >> 13) ^ _expi_))
247 52
 
248 53
 #define _res2_ 0x20736572   /* "res " */
249
-#define _reS2_ 0x20536572   /* "reS " */
250
-#define _rEs2_ 0x20734572   /* "rEs " */
251
-#define _rES2_ 0x20534572   /* "rES " */
252
-#define _Res2_ 0x20736552   /* "Res " */
253
-#define _ReS2_ 0x20536552   /* "ReS " */
254
-#define _REs2_ 0x20734552   /* "REs " */
255
-#define _RES2_ 0x20534552   /* "RES " */
54
+#define _res2_hash ((unsigned char)((_res2_ >> 13) ^ _res2_))
256 55
 
257 56
 #define _res1_ 0x3a736572   /* "res:" */
258
-#define _reS1_ 0x3a536572   /* "reS:" */
259
-#define _rEs1_ 0x3a734572   /* "rEs:" */
260
-#define _rES1_ 0x3a534572   /* "rES:" */
261
-#define _Res1_ 0x3a736552   /* "Res:" */
262
-#define _ReS1_ 0x3a536552   /* "ReS:" */
263
-#define _REs1_ 0x3a734552   /* "REs:" */
264
-#define _RES1_ 0x3a534552   /* "RES:" */
57
+#define _res1_hash ((unsigned char)((_res1_ >> 13) ^ _res1_))
265 58
 
266 59
 #define _from_ 0x6d6f7266   /* "from" */
267
-#define _froM_ 0x4d6f7266   /* "froM" */
268
-#define _frOm_ 0x6d4f7266   /* "frOm" */
269
-#define _frOM_ 0x4d4f7266   /* "frOM" */
270
-#define _fRom_ 0x6d6f5266   /* "fRom" */
271
-#define _fRoM_ 0x4d6f5266   /* "fRoM" */
272
-#define _fROm_ 0x6d4f5266   /* "fROm" */
273
-#define _fROM_ 0x4d4f5266   /* "fROM" */
274
-#define _From_ 0x6d6f7246   /* "From" */
275
-#define _FroM_ 0x4d6f7246   /* "FroM" */
276
-#define _FrOm_ 0x6d4f7246   /* "FrOm" */
277
-#define _FrOM_ 0x4d4f7246   /* "FrOM" */
278
-#define _FRom_ 0x6d6f5246   /* "FRom" */
279
-#define _FRoM_ 0x4d6f5246   /* "FRoM" */
280
-#define _FROm_ 0x6d4f5246   /* "FROm" */
281
-#define _FROM_ 0x4d4f5246   /* "FROM" */
60
+#define _from_hash ((unsigned char)((_from_ >> 13) ^ _from_))
282 61
 
283 62
 #define _max__ 0x2d78616d   /* "max-" */
284
-#define _maX__ 0x2d58616d   /* "maX-" */
285
-#define _mAx__ 0x2d78416d   /* "mAx-" */
286
-#define _mAX__ 0x2d58416d   /* "mAX-" */
287
-#define _Max__ 0x2d78614d   /* "Max-" */
288
-#define _MaX__ 0x2d58614d   /* "MaX-" */
289
-#define _MAx__ 0x2d78414d   /* "MAx-" */
290
-#define _MAX__ 0x2d58414d   /* "MAX-" */
63
+#define _max__hash ((unsigned char)((_max__ >> 13) ^ _max__))
291 64
 
292 65
 #define _forw_ 0x77726f66   /* "forw" */
293
-#define _forW_ 0x57726f66   /* "forW" */
294
-#define _foRw_ 0x77526f66   /* "foRw" */
295
-#define _foRW_ 0x57526f66   /* "foRW" */
296
-#define _fOrw_ 0x77724f66   /* "fOrw" */
297
-#define _fOrW_ 0x57724f66   /* "fOrW" */
298
-#define _fORw_ 0x77524f66   /* "fORw" */
299
-#define _fORW_ 0x57524f66   /* "fORW" */
300
-#define _Forw_ 0x77726f46   /* "Forw" */
301
-#define _ForW_ 0x57726f46   /* "ForW" */
302
-#define _FoRw_ 0x77526f46   /* "FoRw" */
303
-#define _FoRW_ 0x57526f46   /* "FoRW" */
304
-#define _FOrw_ 0x77724f46   /* "FOrw" */
305
-#define _FOrW_ 0x57724f46   /* "FOrW" */
306
-#define _FORw_ 0x77524f46   /* "FORw" */
307
-#define _FORW_ 0x57524f46   /* "FORW" */
66
+#define _forw_hash ((unsigned char)((_forw_ >> 13) ^ _forw_))
308 67
 
309 68
 #define _ards_ 0x73647261   /* "ards" */
310
-#define _ardS_ 0x53647261   /* "ardS" */
311
-#define _arDs_ 0x73447261   /* "arDs" */
312
-#define _arDS_ 0x53447261   /* "arDS" */
313
-#define _aRds_ 0x73645261   /* "aRds" */
314
-#define _aRdS_ 0x53645261   /* "aRdS" */
315
-#define _aRDs_ 0x73445261   /* "aRDs" */
316
-#define _aRDS_ 0x53445261   /* "aRDS" */
317
-#define _Ards_ 0x73647241   /* "Ards" */
318
-#define _ArdS_ 0x53647241   /* "ArdS" */
319
-#define _ArDs_ 0x73447241   /* "ArDs" */
320
-#define _ArDS_ 0x53447241   /* "ArDS" */
321
-#define _ARds_ 0x73645241   /* "ARds" */
322
-#define _ARdS_ 0x53645241   /* "ARdS" */
323
-#define _ARDs_ 0x73445241   /* "ARDs" */
324
-#define _ARDS_ 0x53445241   /* "ARDS" */
69
+#define _ards_hash ((unsigned char)((_ards_ >> 13) ^ _ards_))
325 70
 
326 71
 #define _prox_ 0x786f7270   /* "prox" */
327
-#define _proX_ 0x586f7270   /* "proX" */
328
-#define _prOx_ 0x784f7270   /* "prOx" */
329
-#define _prOX_ 0x584f7270   /* "prOX" */
330
-#define _pRox_ 0x786f5270   /* "pRox" */
331
-#define _pRoX_ 0x586f5270   /* "pRoX" */
332
-#define _pROx_ 0x784f5270   /* "pROx" */
333
-#define _pROX_ 0x584f5270   /* "pROX" */
334
-#define _Prox_ 0x786f7250   /* "Prox" */
335
-#define _ProX_ 0x586f7250   /* "ProX" */
336
-#define _PrOx_ 0x784f7250   /* "PrOx" */
337
-#define _PrOX_ 0x584f7250   /* "PrOX" */
338
-#define _PRox_ 0x786f5250   /* "PRox" */
339
-#define _PRoX_ 0x586f5250   /* "PRoX" */
340
-#define _PROx_ 0x784f5250   /* "PROx" */
341
-#define _PROX_ 0x584f5250   /* "PROX" */
72
+#define _prox_hash ((unsigned char)((_prox_ >> 13) ^ _prox_))
342 73
 
343 74
 #define _y_au_ 0x75612d79   /* "y-au" */
344
-#define _y_aU_ 0x55612d79   /* "y-aU" */
345
-#define _y_Au_ 0x75412d79   /* "y-Au" */
346
-#define _y_AU_ 0x55412d79   /* "y-AU" */
347
-#define _Y_au_ 0x75612d59   /* "Y-au" */
348
-#define _Y_aU_ 0x55612d59   /* "Y-aU" */
349
-#define _Y_Au_ 0x75412d59   /* "Y-Au" */
350
-#define _Y_AU_ 0x55412d59   /* "Y-AU" */
75
+#define _y_au_hash ((unsigned char)((_y_au_ >> 13) ^ _y_au_))
351 76
 
352 77
 #define _thor_ 0x726f6874   /* "thor" */
353
-#define _thoR_ 0x526f6874   /* "thoR" */
354
-#define _thOr_ 0x724f6874   /* "thOr" */
355
-#define _thOR_ 0x524f6874   /* "thOR" */
356
-#define _tHor_ 0x726f4874   /* "tHor" */
357
-#define _tHoR_ 0x526f4874   /* "tHoR" */
358
-#define _tHOr_ 0x724f4874   /* "tHOr" */
359
-#define _tHOR_ 0x524f4874   /* "tHOR" */
360
-#define _Thor_ 0x726f6854   /* "Thor" */
361
-#define _ThoR_ 0x526f6854   /* "ThoR" */
362
-#define _ThOr_ 0x724f6854   /* "ThOr" */
363
-#define _ThOR_ 0x524f6854   /* "ThOR" */
364
-#define _THor_ 0x726f4854   /* "THor" */
365
-#define _THoR_ 0x526f4854   /* "THoR" */
366
-#define _THOr_ 0x724f4854   /* "THOr" */
367
-#define _THOR_ 0x524f4854   /* "THOR" */
78
+#define _thor_hash ((unsigned char)((_thor_ >> 13) ^ _thor_))
368 79
 
369 80
 #define _izat_ 0x74617a69   /* "izat" */
370
-#define _izaT_ 0x54617a69   /* "izaT" */
371
-#define _izAt_ 0x74417a69   /* "izAt" */
372
-#define _izAT_ 0x54417a69   /* "izAT" */
373
-#define _iZat_ 0x74615a69   /* "iZat" */
374
-#define _iZaT_ 0x54615a69   /* "iZaT" */
375
-#define _iZAt_ 0x74415a69   /* "iZAt" */
376
-#define _iZAT_ 0x54415a69   /* "iZAT" */
377
-#define _Izat_ 0x74617a49   /* "Izat" */
378
-#define _IzaT_ 0x54617a49   /* "IzaT" */
379
-#define _IzAt_ 0x74417a49   /* "IzAt" */
380
-#define _IzAT_ 0x54417a49   /* "IzAT" */
381
-#define _IZat_ 0x74615a49   /* "IZat" */
382
-#define _IZaT_ 0x54615a49   /* "IZaT" */
383
-#define _IZAt_ 0x74415a49   /* "IZAt" */
384
-#define _IZAT_ 0x54415a49   /* "IZAT" */
81
+#define _izat_hash ((unsigned char)((_izat_ >> 13) ^ _izat_))
385 82
 
386 83
 #define _ion2_ 0x206e6f69   /* "ion " */
387
-#define _ioN2_ 0x204e6f69   /* "ioN " */
388
-#define _iOn2_ 0x206e4f69   /* "iOn " */
389
-#define _iON2_ 0x204e4f69   /* "iON " */
390
-#define _Ion2_ 0x206e6f49   /* "Ion " */
391
-#define _IoN2_ 0x204e6f49   /* "IoN " */
392
-#define _IOn2_ 0x206e4f49   /* "IOn " */
393
-#define _ION2_ 0x204e4f49   /* "ION " */
84
+#define _ion2_hash ((unsigned char)((_ion2_ >> 13) ^ _ion2_))
394 85
 
395 86
 #define _ion1_ 0x3a6e6f69   /* "ion:" */
396
-#define _ioN1_ 0x3a4e6f69   /* "ioN:" */
397
-#define _iOn1_ 0x3a6e4f69   /* "iOn:" */
398
-#define _iON1_ 0x3a4e4f69   /* "iON:" */
399
-#define _Ion1_ 0x3a6e6f49   /* "Ion:" */
400
-#define _IoN1_ 0x3a4e6f49   /* "IoN:" */
401
-#define _IOn1_ 0x3a6e4f49   /* "IOn:" */
402
-#define _ION1_ 0x3a4e4f49   /* "ION:" */
87
+#define _ion1_hash ((unsigned char)((_ion1_ >> 13) ^ _ion1_))
403 88
 
404 89
 #define _y_re_ 0x65722d79   /* "y-re" */
405
-#define _y_rE_ 0x45722d79   /* "y-rE" */
406
-#define _y_Re_ 0x65522d79   /* "y-Re" */
407
-#define _y_RE_ 0x45522d79   /* "y-RE" */
408
-#define _Y_re_ 0x65722d59   /* "Y-re" */
409
-#define _Y_rE_ 0x45722d59   /* "Y-rE" */
410
-#define _Y_Re_ 0x65522d59   /* "Y-Re" */
411
-#define _Y_RE_ 0x45522d59   /* "Y-RE" */
90
+#define _y_re_hash ((unsigned char)((_y_re_ >> 13) ^ _y_re_))
412 91
 
413 92
 #define _quir_ 0x72697571   /* "quir" */
414
-#define _quiR_ 0x52697571   /* "quiR" */
415
-#define _quIr_ 0x72497571   /* "quIr" */
416
-#define _quIR_ 0x52497571   /* "quIR" */
417
-#define _qUir_ 0x72695571   /* "qUir" */
418
-#define _qUiR_ 0x52695571   /* "qUiR" */
419
-#define _qUIr_ 0x72495571   /* "qUIr" */
420
-#define _qUIR_ 0x52495571   /* "qUIR" */
421
-#define _Quir_ 0x72697551   /* "Quir" */
422
-#define _QuiR_ 0x52697551   /* "QuiR" */
423
-#define _QuIr_ 0x72497551   /* "QuIr" */
424
-#define _QuIR_ 0x52497551   /* "QuIR" */
425
-#define _QUir_ 0x72695551   /* "QUir" */
426
-#define _QUiR_ 0x52695551   /* "QUiR" */
427
-#define _QUIr_ 0x72495551   /* "QUIr" */
428
-#define _QUIR_ 0x52495551   /* "QUIR" */
93
+#define _quir_hash ((unsigned char)((_quir_ >> 13) ^ _quir_))
429 94
 
430 95
 #define _reco_ 0x6f636572   /* "reco" */
431
-#define _recO_ 0x4f636572   /* "recO" */
432
-#define _reCo_ 0x6f436572   /* "reCo" */
433
-#define _reCO_ 0x4f436572   /* "reCO" */
434
-#define _rEco_ 0x6f634572   /* "rEco" */
435
-#define _rEcO_ 0x4f634572   /* "rEcO" */
436
-#define _rECo_ 0x6f434572   /* "rECo" */
437
-#define _rECO_ 0x4f434572   /* "rECO" */
438
-#define _Reco_ 0x6f636552   /* "Reco" */
439
-#define _RecO_ 0x4f636552   /* "RecO" */
440
-#define _ReCo_ 0x6f436552   /* "ReCo" */
441
-#define _ReCO_ 0x4f436552   /* "ReCO" */
442
-#define _REco_ 0x6f634552   /* "REco" */
443
-#define _REcO_ 0x4f634552   /* "REcO" */
444
-#define _RECo_ 0x6f434552   /* "RECo" */
445
-#define _RECO_ 0x4f434552   /* "RECO" */
96
+#define _reco_hash ((unsigned char)((_reco_ >> 13) ^ _reco_))
446 97
 
447 98
 #define _rd_r_ 0x722d6472   /* "rd-r" */
448
-#define _rd_R_ 0x522d6472   /* "rd-R" */
449
-#define _rD_r_ 0x722d4472   /* "rD-r" */
450
-#define _rD_R_ 0x522d4472   /* "rD-R" */
451
-#define _Rd_r_ 0x722d6452   /* "Rd-r" */
452
-#define _Rd_R_ 0x522d6452   /* "Rd-R" */
453
-#define _RD_r_ 0x722d4452   /* "RD-r" */
454
-#define _RD_R_ 0x522d4452   /* "RD-R" */
99
+#define _rd_r_hash ((unsigned char)((_rd_r_ >> 13) ^ _rd_r_))
455 100
 
456 101
 #define _oute_ 0x6574756f   /* "oute" */
457
-#define _outE_ 0x4574756f   /* "outE" */
458
-#define _ouTe_ 0x6554756f   /* "ouTe" */
459
-#define _ouTE_ 0x4554756f   /* "ouTE" */
460
-#define _oUte_ 0x6574556f   /* "oUte" */
461
-#define _oUtE_ 0x4574556f   /* "oUtE" */
462
-#define _oUTe_ 0x6554556f   /* "oUTe" */
463
-#define _oUTE_ 0x4554556f   /* "oUTE" */
464
-#define _Oute_ 0x6574754f   /* "Oute" */
465
-#define _OutE_ 0x4574754f   /* "OutE" */
466
-#define _OuTe_ 0x6554754f   /* "OuTe" */
467
-#define _OuTE_ 0x4554754f   /* "OuTE" */
468
-#define _OUte_ 0x6574554f   /* "OUte" */
469
-#define _OUtE_ 0x4574554f   /* "OUtE" */
470
-#define _OUTe_ 0x6554554f   /* "OUTe" */
471
-#define _OUTE_ 0x4554554f   /* "OUTE" */
102
+#define _oute_hash ((unsigned char)((_oute_ >> 13) ^ _oute_))
472 103
 
473 104
 #define _requ_ 0x75716572   /* "requ" */
474
-#define _reqU_ 0x55716572   /* "reqU" */
475
-#define _reQu_ 0x75516572   /* "reQu" */
476
-#define _reQU_ 0x55516572   /* "reQU" */
477
-#define _rEqu_ 0x75714572   /* "rEqu" */
478
-#define _rEqU_ 0x55714572   /* "rEqU" */
479
-#define _rEQu_ 0x75514572   /* "rEQu" */
480
-#define _rEQU_ 0x55514572   /* "rEQU" */
481
-#define _Requ_ 0x75716552   /* "Requ" */
482
-#define _ReqU_ 0x55716552   /* "ReqU" */
483
-#define _ReQu_ 0x75516552   /* "ReQu" */
484
-#define _ReQU_ 0x55516552   /* "ReQU" */
485
-#define _REqu_ 0x75714552   /* "REqu" */
486
-#define _REqU_ 0x55714552   /* "REqU" */
487
-#define _REQu_ 0x75514552   /* "REQu" */
488
-#define _REQU_ 0x55514552   /* "REQU" */
105
+#define _requ_hash ((unsigned char)((_requ_ >> 13) ^ _requ_))
489 106
 
490 107
 #define _ire2_ 0x20657269   /* "ire " */
491
-#define _irE2_ 0x20457269   /* "irE " */
492
-#define _iRe2_ 0x20655269   /* "iRe " */
493
-#define _iRE2_ 0x20455269   /* "iRE " */
494
-#define _Ire2_ 0x20657249   /* "Ire " */
495
-#define _IrE2_ 0x20457249   /* "IrE " */
496
-#define _IRe2_ 0x20655249   /* "IRe " */
497
-#define _IRE2_ 0x20455249   /* "IRE " */
108
+#define _ire2_hash ((unsigned char)((_ire2_ >> 13) ^ _ire2_))
498 109
 
499 110
 #define _ire1_ 0x3a657269   /* "ire:" */
500
-#define _irE1_ 0x3a457269   /* "irE:" */
501
-#define _iRe1_ 0x3a655269   /* "iRe:" */
502
-#define _iRE1_ 0x3a455269   /* "iRE:" */
503
-#define _Ire1_ 0x3a657249   /* "Ire:" */
504
-#define _IrE1_ 0x3a457249   /* "IrE:" */
505
-#define _IRe1_ 0x3a655249   /* "IRe:" */
506
-#define _IRE1_ 0x3a455249   /* "IRE:" */
111
+#define _ire1_hash ((unsigned char)((_ire1_ >> 13) ^ _ire1_))
507 112
 
508 113
 #define _rout_ 0x74756f72   /* "rout" */
509
-#define _rouT_ 0x54756f72   /* "rouT" */
510
-#define _roUt_ 0x74556f72   /* "roUt" */
511
-#define _roUT_ 0x54556f72   /* "roUT" */
512
-#define _rOut_ 0x74754f72   /* "rOut" */
513
-#define _rOuT_ 0x54754f72   /* "rOuT" */
514
-#define _rOUt_ 0x74554f72   /* "rOUt" */
515
-#define _rOUT_ 0x54554f72   /* "rOUT" */
516
-#define _Rout_ 0x74756f52   /* "Rout" */
517
-#define _RouT_ 0x54756f52   /* "RouT" */
518
-#define _RoUt_ 0x74556f52   /* "RoUt" */
519
-#define _RoUT_ 0x54556f52   /* "RoUT" */
520
-#define _ROut_ 0x74754f52   /* "ROut" */
521
-#define _ROuT_ 0x54754f52   /* "ROuT" */
522
-#define _ROUt_ 0x74554f52   /* "ROUt" */
523
-#define _ROUT_ 0x54554f52   /* "ROUT" */
114
+#define _rout_hash ((unsigned char)((_rout_ >> 13) ^ _rout_))
524 115
 
525 116
 #define _supp_ 0x70707573   /* "supp" */
526
-#define _supP_ 0x50707573   /* "supP" */
527
-#define _suPp_ 0x70507573   /* "suPp" */
528
-#define _suPP_ 0x50507573   /* "suPP" */
529
-#define _sUpp_ 0x70705573   /* "sUpp" */
530
-#define _sUpP_ 0x50705573   /* "sUpP" */
531
-#define _sUPp_ 0x70505573   /* "sUPp" */
532
-#define _sUPP_ 0x50505573   /* "sUPP" */
533
-#define _Supp_ 0x70707553   /* "Supp" */
534
-#define _SupP_ 0x50707553   /* "SupP" */
535
-#define _SuPp_ 0x70507553   /* "SuPp" */
536
-#define _SuPP_ 0x50507553   /* "SuPP" */
537
-#define _SUpp_ 0x70705553   /* "SUpp" */
538
-#define _SUpP_ 0x50705553   /* "SUpP" */
539
-#define _SUPp_ 0x70505553   /* "SUPp" */
540