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 /* _call_ is already defined */ 212 #define __inf_ 0x666e692d /* "-inf" */ 213 214 /*!} */ 215 216 #endif /* KEYS_H */ 217