From b2c99b3af6122a684c3cf9eaddc7e595ccc7a337 Mon Sep 17 00:00:00 2001 From: Justine Alexandra Roberts Tunney Date: Sat, 11 Apr 2015 11:02:45 -0400 Subject: [PATCH] Improve Content-Type parsing. --- sip/msg_parse.go | 15188 ++++++++++++++++++++++++--------------------- sip/sip.rl | 43 +- 2 files changed, 8034 insertions(+), 7197 deletions(-) diff --git a/sip/msg_parse.go b/sip/msg_parse.go index 02e2d70..b884e21 100644 --- a/sip/msg_parse.go +++ b/sip/msg_parse.go @@ -17,18 +17,19 @@ import ( //line msg_parse.go:19 const msg_start int = 1 -const msg_first_final int = 739 +const msg_first_final int = 765 const msg_error int = 0 -const msg_en_via_param int = 34 -const msg_en_via int = 69 -const msg_en_addr_param int = 119 -const msg_en_addr_angled int = 154 -const msg_en_addr_uri int = 195 -const msg_en_addr int = 222 -const msg_en_value int = 229 -const msg_en_xheader int = 239 -const msg_en_header int = 246 +const msg_en_ctype int = 34 +const msg_en_via_param int = 68 +const msg_en_via int = 103 +const msg_en_addr_param int = 153 +const msg_en_addr_angled int = 188 +const msg_en_addr_uri int = 229 +const msg_en_addr int = 256 +const msg_en_value int = 263 +const msg_en_xheader int = 273 +const msg_en_header int = 280 const msg_en_main int = 1 @@ -68,14 +69,14 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { //line msg_parse.rl:47 -//line msg_parse.go:72 +//line msg_parse.go:73 { cs = msg_start } //line msg_parse.rl:48 -//line msg_parse.go:79 +//line msg_parse.go:80 { var _widec int16 switch cs { @@ -107,8 +108,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_12 case 13: goto st_case_13 - case 739: - goto st_case_739 + case 765: + goto st_case_765 case 14: goto st_case_14 case 15: @@ -157,8 +158,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_36 case 37: goto st_case_37 - case 740: - goto st_case_740 case 38: goto st_case_38 case 39: @@ -173,6 +172,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_43 case 44: goto st_case_44 + case 766: + goto st_case_766 case 45: goto st_case_45 case 46: @@ -227,6 +228,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_70 case 71: goto st_case_71 + case 767: + goto st_case_767 case 72: goto st_case_72 case 73: @@ -245,8 +248,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_79 case 80: goto st_case_80 - case 741: - goto st_case_741 case 81: goto st_case_81 case 82: @@ -315,6 +316,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_113 case 114: goto st_case_114 + case 768: + goto st_case_768 case 115: goto st_case_115 case 116: @@ -331,8 +334,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_121 case 122: goto st_case_122 - case 742: - goto st_case_742 case 123: goto st_case_123 case 124: @@ -401,6 +402,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_155 case 156: goto st_case_156 + case 769: + goto st_case_769 case 157: goto st_case_157 case 158: @@ -411,8 +414,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_160 case 161: goto st_case_161 - case 743: - goto st_case_743 case 162: goto st_case_162 case 163: @@ -481,6 +482,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_194 case 195: goto st_case_195 + case 770: + goto st_case_770 case 196: goto st_case_196 case 197: @@ -491,8 +494,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_199 case 200: goto st_case_200 - case 744: - goto st_case_744 case 201: goto st_case_201 case 202: @@ -517,36 +518,22 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_211 case 212: goto st_case_212 - case 745: - goto st_case_745 case 213: goto st_case_213 case 214: goto st_case_214 case 215: goto st_case_215 - case 746: - goto st_case_746 case 216: goto st_case_216 case 217: goto st_case_217 - case 747: - goto st_case_747 case 218: goto st_case_218 case 219: goto st_case_219 case 220: goto st_case_220 - case 748: - goto st_case_748 - case 749: - goto st_case_749 - case 750: - goto st_case_750 - case 751: - goto st_case_751 case 221: goto st_case_221 case 222: @@ -555,8 +542,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_223 case 224: goto st_case_224 - case 752: - goto st_case_752 case 225: goto st_case_225 case 226: @@ -577,12 +562,12 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_233 case 234: goto st_case_234 + case 771: + goto st_case_771 case 235: goto st_case_235 case 236: goto st_case_236 - case 753: - goto st_case_753 case 237: goto st_case_237 case 238: @@ -595,8 +580,6 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_241 case 242: goto st_case_242 - case 754: - goto st_case_754 case 243: goto st_case_243 case 244: @@ -605,24 +588,36 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_245 case 246: goto st_case_246 + case 772: + goto st_case_772 case 247: goto st_case_247 case 248: goto st_case_248 case 249: goto st_case_249 + case 773: + goto st_case_773 case 250: goto st_case_250 - case 755: - goto st_case_755 case 251: goto st_case_251 + case 774: + goto st_case_774 case 252: goto st_case_252 case 253: goto st_case_253 case 254: goto st_case_254 + case 775: + goto st_case_775 + case 776: + goto st_case_776 + case 777: + goto st_case_777 + case 778: + goto st_case_778 case 255: goto st_case_255 case 256: @@ -631,6 +626,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_257 case 258: goto st_case_258 + case 779: + goto st_case_779 case 259: goto st_case_259 case 260: @@ -655,6 +652,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_269 case 270: goto st_case_270 + case 780: + goto st_case_780 case 271: goto st_case_271 case 272: @@ -667,6 +666,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_275 case 276: goto st_case_276 + case 781: + goto st_case_781 case 277: goto st_case_277 case 278: @@ -683,6 +684,8 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_283 case 284: goto st_case_284 + case 782: + goto st_case_782 case 285: goto st_case_285 case 286: @@ -1591,6 +1594,58 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto st_case_737 case 738: goto st_case_738 + case 739: + goto st_case_739 + case 740: + goto st_case_740 + case 741: + goto st_case_741 + case 742: + goto st_case_742 + case 743: + goto st_case_743 + case 744: + goto st_case_744 + case 745: + goto st_case_745 + case 746: + goto st_case_746 + case 747: + goto st_case_747 + case 748: + goto st_case_748 + case 749: + goto st_case_749 + case 750: + goto st_case_750 + case 751: + goto st_case_751 + case 752: + goto st_case_752 + case 753: + goto st_case_753 + case 754: + goto st_case_754 + case 755: + goto st_case_755 + case 756: + goto st_case_756 + case 757: + goto st_case_757 + case 758: + goto st_case_758 + case 759: + goto st_case_759 + case 760: + goto st_case_760 + case 761: + goto st_case_761 + case 762: + goto st_case_762 + case 763: + goto st_case_763 + case 764: + goto st_case_764 } goto st_out st_case_1: @@ -1629,21 +1684,21 @@ func ParseMsgBytes(data []byte) (msg *Msg, err error) { goto tr0 } goto st0 -tr368: -//line sip.rl:177 +tr416: +//line sip.rl:170 p-- - {goto st239 } + {goto st273 } goto st0 -//line msg_parse.go:1641 +//line msg_parse.go:1696 st_case_0: st0: cs = 0 goto _out tr0: -//line sip.rl:61 +//line sip.rl:62 mark = p @@ -1651,7 +1706,7 @@ tr0: st2: p++ st_case_2: -//line msg_parse.go:1655 +//line msg_parse.go:1710 switch data[p] { case 32: goto tr3 @@ -1688,7 +1743,7 @@ tr0: } goto st0 tr3: -//line sip.rl:101 +//line sip.rl:94 msg.Method = string(data[mark:p]) @@ -1696,13 +1751,13 @@ tr3: st3: p++ st_case_3: -//line msg_parse.go:1700 +//line msg_parse.go:1755 if data[p] == 32 { goto st0 } goto tr5 tr5: -//line sip.rl:61 +//line sip.rl:62 mark = p @@ -1710,13 +1765,13 @@ tr5: st4: p++ st_case_4: -//line msg_parse.go:1714 +//line msg_parse.go:1769 if data[p] == 32 { goto tr7 } goto st4 tr7: -//line sip.rl:113 +//line sip.rl:106 msg.Request, err = ParseURIBytes(data[mark:p]) if err != nil { return nil, err } @@ -1725,7 +1780,7 @@ tr7: st5: p++ st_case_5: -//line msg_parse.go:1729 +//line msg_parse.go:1784 if data[p] == 83 { goto st6 } @@ -1759,7 +1814,7 @@ tr7: } goto st0 tr12: -//line sip.rl:105 +//line sip.rl:98 msg.VersionMajor = msg.VersionMajor * 10 + (data[p] - 0x30) @@ -1767,7 +1822,7 @@ tr12: st10: p++ st_case_10: -//line msg_parse.go:1771 +//line msg_parse.go:1826 if data[p] == 46 { goto st11 } @@ -1783,7 +1838,7 @@ tr12: } goto st0 tr14: -//line sip.rl:109 +//line sip.rl:102 msg.VersionMinor = msg.VersionMinor * 10 + (data[p] - 0x30) @@ -1791,7 +1846,7 @@ tr14: st12: p++ st_case_12: -//line msg_parse.go:1795 +//line msg_parse.go:1850 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -1807,7 +1862,7 @@ tr14: } goto st0 tr42: -//line sip.rl:122 +//line sip.rl:115 msg.Phrase = string(buf[0:amt]) @@ -1815,24 +1870,24 @@ tr42: st13: p++ st_case_13: -//line msg_parse.go:1819 +//line msg_parse.go:1874 if data[p] == 10 { goto tr16 } goto st0 tr16: -//line sip.rl:159 +//line sip.rl:152 - {goto st246 } + {goto st280 } - goto st739 - st739: + goto st765 + st765: p++ - st_case_739: -//line msg_parse.go:1833 + st_case_765: +//line msg_parse.go:1888 goto st0 tr2: -//line sip.rl:61 +//line sip.rl:62 mark = p @@ -1840,7 +1895,7 @@ tr2: st14: p++ st_case_14: -//line msg_parse.go:1844 +//line msg_parse.go:1899 switch data[p] { case 32: goto tr3 @@ -1961,7 +2016,7 @@ tr2: } goto st0 tr20: -//line sip.rl:105 +//line sip.rl:98 msg.VersionMajor = msg.VersionMajor * 10 + (data[p] - 0x30) @@ -1969,7 +2024,7 @@ tr20: st18: p++ st_case_18: -//line msg_parse.go:1973 +//line msg_parse.go:2028 if data[p] == 46 { goto st19 } @@ -1985,7 +2040,7 @@ tr20: } goto st0 tr22: -//line sip.rl:109 +//line sip.rl:102 msg.VersionMinor = msg.VersionMinor * 10 + (data[p] - 0x30) @@ -1993,7 +2048,7 @@ tr22: st20: p++ st_case_20: -//line msg_parse.go:1997 +//line msg_parse.go:2052 if data[p] == 32 { goto st21 } @@ -2009,7 +2064,7 @@ tr22: } goto st0 tr24: -//line sip.rl:118 +//line sip.rl:111 msg.Status = msg.Status * 10 + (int(data[p]) - 0x30) @@ -2017,13 +2072,13 @@ tr24: st22: p++ st_case_22: -//line msg_parse.go:2021 +//line msg_parse.go:2076 if 48 <= data[p] && data[p] <= 57 { goto tr25 } goto st0 tr25: -//line sip.rl:118 +//line sip.rl:111 msg.Status = msg.Status * 10 + (int(data[p]) - 0x30) @@ -2031,13 +2086,13 @@ tr25: st23: p++ st_case_23: -//line msg_parse.go:2035 +//line msg_parse.go:2090 if 48 <= data[p] && data[p] <= 57 { goto tr26 } goto st0 tr26: -//line sip.rl:118 +//line sip.rl:111 msg.Status = msg.Status * 10 + (int(data[p]) - 0x30) @@ -2045,7 +2100,7 @@ tr26: st24: p++ st_case_24: -//line msg_parse.go:2049 +//line msg_parse.go:2104 if data[p] == 32 { goto st25 } @@ -2107,25 +2162,25 @@ tr26: } goto st0 tr28: -//line sip.rl:69 +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st26 tr35: -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st26 tr44: -//line sip.rl:91 +//line sip.rl:88 hex += unhex(data[p]) buf[amt] = hex @@ -2135,7 +2190,7 @@ tr44: st26: p++ st_case_26: -//line msg_parse.go:2139 +//line msg_parse.go:2194 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2199,7 +2254,7 @@ tr44: } goto st0 tr29: -//line sip.rl:69 +//line sip.rl:70 amt = 0 @@ -2207,7 +2262,7 @@ tr29: st27: p++ st_case_27: -//line msg_parse.go:2211 +//line msg_parse.go:2266 switch { case data[p] < 65: if 48 <= data[p] && data[p] <= 57 { @@ -2222,7 +2277,7 @@ tr29: } goto st0 tr43: -//line sip.rl:87 +//line sip.rl:84 hex = unhex(data[p]) * 16 @@ -2230,7 +2285,7 @@ tr43: st28: p++ st_case_28: -//line msg_parse.go:2234 +//line msg_parse.go:2289 switch { case data[p] < 65: if 48 <= data[p] && data[p] <= 57 { @@ -2245,18 +2300,18 @@ tr43: } goto st0 tr30: -//line sip.rl:69 +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st29 tr37: -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ @@ -2265,24 +2320,24 @@ tr37: st29: p++ st_case_29: -//line msg_parse.go:2269 +//line msg_parse.go:2324 if 128 <= data[p] && data[p] <= 191 { goto tr35 } goto st0 tr31: -//line sip.rl:69 +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st30 tr38: -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ @@ -2291,24 +2346,24 @@ tr38: st30: p++ st_case_30: -//line msg_parse.go:2295 +//line msg_parse.go:2350 if 128 <= data[p] && data[p] <= 191 { goto tr37 } goto st0 tr32: -//line sip.rl:69 +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st31 tr39: -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ @@ -2317,24 +2372,24 @@ tr39: st31: p++ st_case_31: -//line msg_parse.go:2321 +//line msg_parse.go:2376 if 128 <= data[p] && data[p] <= 191 { goto tr38 } goto st0 tr33: -//line sip.rl:69 +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st32 tr40: -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ @@ -2343,24 +2398,24 @@ tr40: st32: p++ st_case_32: -//line msg_parse.go:2347 +//line msg_parse.go:2402 if 128 <= data[p] && data[p] <= 191 { goto tr39 } goto st0 tr34: -//line sip.rl:69 +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ goto st33 tr41: -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ @@ -2369,7 +2424,7 @@ tr41: st33: p++ st_case_33: -//line msg_parse.go:2373 +//line msg_parse.go:2428 if 128 <= data[p] && data[p] <= 191 { goto tr40 } @@ -2411,11 +2466,7 @@ tr41: } goto st0 tr45: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:61 +//line sip.rl:62 mark = p @@ -2423,7 +2474,76 @@ tr45: st35: p++ st_case_35: -//line msg_parse.go:2427 +//line msg_parse.go:2478 + switch data[p] { + case 33: + goto st35 + case 37: + goto st35 + case 39: + goto st35 + case 47: + goto st36 + case 126: + goto st35 + } + switch { + case data[p] < 45: + if 42 <= data[p] && data[p] <= 43 { + goto st35 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto st35 + } + case data[p] >= 65: + goto st35 + } + default: + goto st35 + } + goto st0 + st36: + p++ + st_case_36: + switch data[p] { + case 33: + goto st37 + case 37: + goto st37 + case 39: + goto st37 + case 126: + goto st37 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto st37 + } + case data[p] >= 42: + goto st37 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto st37 + } + case data[p] >= 65: + goto st37 + } + default: + goto st37 + } + goto st0 + st37: + p++ + st_case_37: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2433,23 +2553,19 @@ tr45: } switch _widec { case 9: - goto tr46 + goto tr49 case 32: - goto tr46 + goto tr49 case 33: - goto st35 + goto st37 case 37: - goto st35 + goto st37 case 39: - goto st35 - case 44: - goto tr48 + goto st37 case 59: - goto tr49 - case 61: goto tr50 case 126: - goto st35 + goto st37 case 269: goto tr51 case 525: @@ -2457,32 +2573,37 @@ tr45: } switch { case _widec < 48: - if 42 <= _widec && _widec <= 46 { - goto st35 + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st37 + } + case _widec >= 42: + goto st37 } case _widec > 57: switch { case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto st35 + goto st37 } case _widec >= 65: - goto st35 + goto st37 } default: - goto st35 + goto st37 } goto st0 -tr46: -//line sip.rl:182 +tr49: +//line sip.rl:253 - name = string(data[mark:p]) + ctype = string(data[mark:p]) - goto st36 - st36: + goto st38 + st38: p++ - st_case_36: -//line msg_parse.go:2486 + st_case_38: +//line msg_parse.go:2607 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2492,29 +2613,25 @@ tr46: } switch _widec { case 9: - goto st36 + goto st38 case 32: - goto st36 - case 44: - goto st37 + goto st38 case 59: - goto st41 - case 61: - goto st45 + goto st39 case 525: - goto st66 + goto st45 } goto st0 -tr48: -//line sip.rl:182 +tr50: +//line sip.rl:253 - name = string(data[mark:p]) + ctype = string(data[mark:p]) - goto st37 - st37: + goto st39 + st39: p++ - st_case_37: -//line msg_parse.go:2518 + st_case_39: +//line msg_parse.go:2635 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2524,128 +2641,46 @@ tr48: } switch _widec { case 9: - goto st37 + goto st39 case 32: - goto st37 - case 269: - goto tr58 + goto st39 + case 33: + goto st40 + case 37: + goto st40 + case 39: + goto st40 + case 126: + goto st40 case 525: - goto st38 + goto st65 } switch { - case _widec > 12: - if 14 <= _widec { - goto tr58 + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st40 + } + case _widec >= 42: + goto st40 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st40 + } + case _widec >= 65: + goto st40 } default: - goto tr58 - } - goto st0 -tr58: -//line sip.rl:53 - - p-- - - -//line sip.rl:152 - - if via.Params == nil { - via.Params = Params{} - } - via.Params[name] = string(buf[0:amt]) - -//line sip.rl:126 - - *viap = via - viap = &via.Next - via = nil - -//line sip.rl:167 - - via = new(Via) - {goto st69 } - - goto st740 -tr62: -//line sip.rl:53 - - p-- - - -//line sip.rl:152 - - if via.Params == nil { - via.Params = Params{} - } - via.Params[name] = string(buf[0:amt]) - -//line sip.rl:172 - - amt = 0 // Needed so ViaParam action works when there's no value. - {goto st34 } - - goto st740 -tr74: -//line sip.rl:152 - - if via.Params == nil { - via.Params = Params{} - } - via.Params[name] = string(buf[0:amt]) - -//line sip.rl:126 - - *viap = via - viap = &via.Next - via = nil - -//line sip.rl:159 - - {goto st246 } - - goto st740 - st740: - p++ - st_case_740: -//line msg_parse.go:2611 - goto st0 - st38: - p++ - st_case_38: - if data[p] == 10 { - goto st39 - } - goto st0 - st39: - p++ - st_case_39: - switch data[p] { - case 9: - goto st40 - case 32: - goto st40 + goto st40 } goto st0 st40: p++ st_case_40: - switch data[p] { - case 9: - goto st40 - case 32: - goto st40 - } - goto tr58 -tr49: -//line sip.rl:182 - - name = string(data[mark:p]) - - goto st41 - st41: - p++ - st_case_41: -//line msg_parse.go:2649 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2658,57 +2693,66 @@ tr49: goto st41 case 32: goto st41 - case 269: - goto tr62 - case 525: + case 33: + goto st40 + case 37: + goto st40 + case 39: + goto st40 + case 61: goto st42 + case 126: + goto st40 + case 525: + goto st62 } switch { - case _widec > 12: - if 14 <= _widec { - goto tr62 + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st40 + } + case _widec >= 42: + goto st40 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st40 + } + case _widec >= 65: + goto st40 } default: - goto tr62 + goto st40 } goto st0 - st42: + st41: p++ - st_case_42: - if data[p] == 10 { - goto st43 + st_case_41: + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } } - goto st0 - st43: - p++ - st_case_43: - switch data[p] { + switch _widec { case 9: - goto st44 + goto st41 case 32: - goto st44 + goto st41 + case 61: + goto st42 + case 525: + goto st62 } goto st0 - st44: - p++ - st_case_44: - switch data[p] { - case 9: - goto st44 - case 32: - goto st44 - } - goto tr62 -tr50: -//line sip.rl:182 - - name = string(data[mark:p]) - - goto st45 - st45: + st42: p++ - st_case_45: -//line msg_parse.go:2712 + st_case_42: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2718,58 +2762,48 @@ tr50: } switch _widec { case 9: - goto st45 + goto st42 case 32: - goto st45 + goto st42 case 33: - goto tr66 + goto st43 case 34: - goto st52 + goto st48 case 37: - goto tr66 + goto st43 case 39: - goto tr66 - case 93: - goto tr66 + goto st43 case 126: - goto tr66 + goto st43 case 525: - goto st63 + goto st59 } switch { case _widec < 48: switch { case _widec > 43: if 45 <= _widec && _widec <= 46 { - goto tr66 + goto st43 } case _widec >= 42: - goto tr66 + goto st43 } - case _widec > 58: + case _widec > 57: switch { - case _widec > 91: + case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto tr66 + goto st43 } case _widec >= 65: - goto tr66 + goto st43 } default: - goto tr66 + goto st43 } goto st0 -tr66: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st46 - st46: + st43: p++ - st_case_46: -//line msg_parse.go:2773 + st_case_43: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2779,117 +2813,111 @@ tr66: } switch _widec { case 9: - goto st47 + goto st38 case 32: - goto st47 + goto st38 case 33: - goto tr66 + goto st43 case 37: - goto tr66 + goto st43 case 39: - goto tr66 - case 44: - goto st37 + goto st43 case 59: - goto st41 - case 93: - goto tr66 + goto st39 case 126: - goto tr66 + goto st43 case 269: - goto st51 + goto st44 case 525: - goto st48 + goto st45 } switch { case _widec < 48: - if 42 <= _widec && _widec <= 46 { - goto tr66 + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st43 + } + case _widec >= 42: + goto st43 } - case _widec > 58: + case _widec > 57: switch { - case _widec > 91: + case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto tr66 + goto st43 } case _widec >= 65: - goto tr66 + goto st43 } default: - goto tr66 + goto st43 } goto st0 - st47: +tr51: +//line sip.rl:253 + + ctype = string(data[mark:p]) + + goto st44 + st44: p++ - st_case_47: - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st47 - case 32: - goto st47 - case 44: - goto st37 - case 59: - goto st41 - case 525: - goto st48 + st_case_44: +//line msg_parse.go:2867 + if data[p] == 10 { + goto tr65 } goto st0 - st48: +tr65: +//line sip.rl:152 + + {goto st280 } + + goto st766 + st766: p++ - st_case_48: + st_case_766: +//line msg_parse.go:2881 + goto st0 +tr52: +//line sip.rl:253 + + ctype = string(data[mark:p]) + + goto st45 + st45: + p++ + st_case_45: +//line msg_parse.go:2892 if data[p] == 10 { - goto st49 + goto st46 } goto st0 - st49: + st46: p++ - st_case_49: + st_case_46: switch data[p] { case 9: - goto st50 + goto st47 case 32: - goto st50 + goto st47 } goto st0 - st50: + st47: p++ - st_case_50: + st_case_47: switch data[p] { case 9: - goto st50 + goto st47 case 32: - goto st50 - case 44: - goto st37 + goto st47 case 59: - goto st41 - } - goto st0 -tr51: -//line sip.rl:182 - - name = string(data[mark:p]) - - goto st51 - st51: - p++ - st_case_51: -//line msg_parse.go:2886 - if data[p] == 10 { - goto tr74 + goto st39 } goto st0 - st52: + st48: p++ - st_case_52: + st_case_48: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2899,63 +2927,63 @@ tr51: } switch _widec { case 9: - goto tr75 + goto tr68 case 34: - goto tr76 + goto tr69 case 92: - goto tr77 + goto tr70 case 525: - goto tr83 + goto tr76 } switch { case _widec < 224: switch { case _widec > 126: if 192 <= _widec && _widec <= 223 { - goto tr78 + goto tr71 } case _widec >= 32: - goto tr75 + goto tr68 } case _widec > 239: switch { case _widec < 248: if 240 <= _widec && _widec <= 247 { - goto tr80 + goto tr73 } case _widec > 251: if 252 <= _widec && _widec <= 253 { - goto tr82 + goto tr75 } default: - goto tr81 + goto tr74 } default: - goto tr79 + goto tr72 } goto st0 -tr75: -//line sip.rl:69 +tr68: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st53 -tr84: -//line sip.rl:73 + goto st49 +tr77: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st53 - st53: + goto st49 + st49: p++ - st_case_53: -//line msg_parse.go:2959 + st_case_49: +//line msg_parse.go:2987 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -2965,51 +2993,51 @@ tr84: } switch _widec { case 9: - goto tr84 + goto tr77 case 34: - goto st54 + goto st50 case 92: - goto st55 + goto st51 case 525: - goto tr92 + goto tr85 } switch { case _widec < 224: switch { case _widec > 126: if 192 <= _widec && _widec <= 223 { - goto tr87 + goto tr80 } case _widec >= 32: - goto tr84 + goto tr77 } case _widec > 239: switch { case _widec < 248: if 240 <= _widec && _widec <= 247 { - goto tr89 + goto tr82 } case _widec > 251: if 252 <= _widec && _widec <= 253 { - goto tr91 + goto tr84 } default: - goto tr90 + goto tr83 } default: - goto tr88 + goto tr81 } goto st0 -tr76: -//line sip.rl:69 +tr69: +//line sip.rl:70 amt = 0 - goto st54 - st54: + goto st50 + st50: p++ - st_case_54: -//line msg_parse.go:3013 + st_case_50: +//line msg_parse.go:3041 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3019,363 +3047,409 @@ tr76: } switch _widec { case 9: - goto st47 + goto st38 case 32: - goto st47 - case 44: - goto st37 + goto st38 case 59: - goto st41 + goto st39 case 269: - goto st51 + goto st44 case 525: - goto st48 + goto st45 } goto st0 -tr77: -//line sip.rl:69 +tr70: +//line sip.rl:70 amt = 0 - goto st55 - st55: + goto st51 + st51: p++ - st_case_55: -//line msg_parse.go:3045 + st_case_51: +//line msg_parse.go:3071 switch { case data[p] < 11: if data[p] <= 9 { - goto tr84 + goto tr77 } case data[p] > 12: if 14 <= data[p] && data[p] <= 127 { - goto tr84 + goto tr77 } default: - goto tr84 + goto tr77 } goto st0 -tr78: -//line sip.rl:69 +tr71: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st56 -tr87: -//line sip.rl:73 + goto st52 +tr80: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st56 - st56: + goto st52 + st52: p++ - st_case_56: -//line msg_parse.go:3080 + st_case_52: +//line msg_parse.go:3106 if 128 <= data[p] && data[p] <= 191 { - goto tr84 + goto tr77 } goto st0 -tr79: -//line sip.rl:69 +tr72: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st57 -tr88: -//line sip.rl:73 + goto st53 +tr81: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st57 - st57: + goto st53 + st53: p++ - st_case_57: -//line msg_parse.go:3106 + st_case_53: +//line msg_parse.go:3132 if 128 <= data[p] && data[p] <= 191 { - goto tr87 + goto tr80 } goto st0 -tr80: -//line sip.rl:69 +tr73: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st58 -tr89: -//line sip.rl:73 + goto st54 +tr82: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st58 - st58: + goto st54 + st54: p++ - st_case_58: -//line msg_parse.go:3132 + st_case_54: +//line msg_parse.go:3158 if 128 <= data[p] && data[p] <= 191 { - goto tr88 + goto tr81 } goto st0 -tr81: -//line sip.rl:69 +tr74: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st59 -tr90: -//line sip.rl:73 + goto st55 +tr83: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st59 - st59: + goto st55 + st55: p++ - st_case_59: -//line msg_parse.go:3158 + st_case_55: +//line msg_parse.go:3184 if 128 <= data[p] && data[p] <= 191 { - goto tr89 + goto tr82 } goto st0 -tr82: -//line sip.rl:69 +tr75: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st60 -tr91: -//line sip.rl:73 + goto st56 +tr84: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st60 - st60: + goto st56 + st56: p++ - st_case_60: -//line msg_parse.go:3184 + st_case_56: +//line msg_parse.go:3210 if 128 <= data[p] && data[p] <= 191 { - goto tr90 + goto tr83 } goto st0 -tr83: -//line sip.rl:69 +tr76: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st61 -tr92: -//line sip.rl:73 + goto st57 +tr85: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st61 - st61: + goto st57 + st57: p++ - st_case_61: -//line msg_parse.go:3210 + st_case_57: +//line msg_parse.go:3236 if data[p] == 10 { - goto tr93 + goto tr86 } goto st0 -tr93: -//line sip.rl:73 +tr86: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st62 - st62: + goto st58 + st58: p++ - st_case_62: -//line msg_parse.go:3225 + st_case_58: +//line msg_parse.go:3251 switch data[p] { case 9: - goto tr84 + goto tr77 case 32: - goto tr84 + goto tr77 } goto st0 - st63: + st59: p++ - st_case_63: + st_case_59: if data[p] == 10 { - goto st64 + goto st60 } goto st0 - st64: + st60: p++ - st_case_64: + st_case_60: switch data[p] { case 9: - goto st65 + goto st61 case 32: - goto st65 + goto st61 } goto st0 - st65: + st61: p++ - st_case_65: + st_case_61: switch data[p] { case 9: - goto st65 + goto st61 case 32: - goto st65 + goto st61 case 33: - goto tr66 + goto st43 case 34: - goto st52 + goto st48 case 37: - goto tr66 + goto st43 case 39: - goto tr66 - case 93: - goto tr66 + goto st43 case 126: - goto tr66 + goto st43 } switch { case data[p] < 48: switch { case data[p] > 43: if 45 <= data[p] && data[p] <= 46 { - goto tr66 + goto st43 } case data[p] >= 42: - goto tr66 + goto st43 } - case data[p] > 58: + case data[p] > 57: switch { - case data[p] > 91: + case data[p] > 90: if 95 <= data[p] && data[p] <= 122 { - goto tr66 + goto st43 } case data[p] >= 65: - goto tr66 + goto st43 } default: - goto tr66 + goto st43 } goto st0 -tr52: -//line sip.rl:182 - - name = string(data[mark:p]) - - goto st66 - st66: + st62: p++ - st_case_66: -//line msg_parse.go:3303 + st_case_62: if data[p] == 10 { - goto st67 + goto st63 } goto st0 - st67: + st63: p++ - st_case_67: + st_case_63: switch data[p] { case 9: - goto st68 + goto st64 case 32: - goto st68 + goto st64 } goto st0 - st68: + st64: p++ - st_case_68: + st_case_64: switch data[p] { case 9: - goto st68 + goto st64 case 32: - goto st68 - case 44: - goto st37 - case 59: - goto st41 + goto st64 case 61: - goto st45 + goto st42 } goto st0 - st69: + st65: p++ - st_case_69: + st_case_65: + if data[p] == 10 { + goto st66 + } + goto st0 + st66: + p++ + st_case_66: + switch data[p] { + case 9: + goto st67 + case 32: + goto st67 + } + goto st0 + st67: + p++ + st_case_67: switch data[p] { + case 9: + goto st67 + case 32: + goto st67 case 33: - goto tr98 + goto st40 case 37: - goto tr98 + goto st40 case 39: - goto tr98 + goto st40 case 126: - goto tr98 + goto st40 } switch { case data[p] < 48: switch { case data[p] > 43: if 45 <= data[p] && data[p] <= 46 { - goto tr98 + goto st40 } case data[p] >= 42: - goto tr98 + goto st40 } case data[p] > 57: switch { case data[p] > 90: if 95 <= data[p] && data[p] <= 122 { - goto tr98 + goto st40 } case data[p] >= 65: - goto tr98 + goto st40 } default: - goto tr98 + goto st40 } goto st0 -tr98: -//line sip.rl:61 + st68: + p++ + st_case_68: + switch data[p] { + case 33: + goto tr93 + case 37: + goto tr93 + case 39: + goto tr93 + case 126: + goto tr93 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr93 + } + case data[p] >= 42: + goto tr93 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto tr93 + } + case data[p] >= 65: + goto tr93 + } + default: + goto tr93 + } + goto st0 +tr93: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:62 mark = p - goto st70 - st70: + goto st69 + st69: p++ - st_case_70: -//line msg_parse.go:3379 + st_case_69: +//line msg_parse.go:3453 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3385,50 +3459,56 @@ tr98: } switch _widec { case 9: - goto tr99 + goto tr94 case 32: - goto tr99 + goto tr94 case 33: - goto st70 + goto st69 case 37: - goto st70 + goto st69 case 39: - goto st70 - case 47: - goto tr101 + goto st69 + case 44: + goto tr96 + case 59: + goto tr97 + case 61: + goto tr98 case 126: - goto st70 + goto st69 + case 269: + goto tr99 case 525: - goto tr102 + goto tr100 } switch { - case _widec < 45: - if 42 <= _widec && _widec <= 43 { - goto st70 + case _widec < 48: + if 42 <= _widec && _widec <= 46 { + goto st69 } case _widec > 57: switch { case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto st70 + goto st69 } case _widec >= 65: - goto st70 + goto st69 } default: - goto st70 + goto st69 } goto st0 -tr99: -//line sip.rl:132 +tr94: +//line sip.rl:175 - via.Protocol = string(data[mark:p]) + name = string(data[mark:p]) - goto st71 - st71: + goto st70 + st70: p++ - st_case_71: -//line msg_parse.go:3432 + st_case_70: +//line msg_parse.go:3512 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3438,25 +3518,29 @@ tr99: } switch _widec { case 9: - goto st71 + goto st70 case 32: + goto st70 + case 44: goto st71 - case 47: - goto st72 + case 59: + goto st75 + case 61: + goto st79 case 525: - goto st116 + goto st100 } goto st0 -tr101: -//line sip.rl:132 +tr96: +//line sip.rl:175 - via.Protocol = string(data[mark:p]) + name = string(data[mark:p]) - goto st72 - st72: + goto st71 + st71: p++ - st_case_72: -//line msg_parse.go:3460 + st_case_71: +//line msg_parse.go:3544 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3466,37 +3550,17 @@ tr101: } switch _widec { case 9: - goto st72 + goto st71 case 32: - goto st72 - case 33: - goto tr106 - case 37: - goto tr106 - case 39: - goto tr106 - case 126: + goto st71 + case 269: goto tr106 case 525: - goto st113 + goto st72 } switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto tr106 - } - case _widec >= 42: - goto tr106 - } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto tr106 - } - case _widec >= 65: + case _widec > 12: + if 14 <= _widec { goto tr106 } default: @@ -3504,96 +3568,110 @@ tr101: } goto st0 tr106: -//line sip.rl:61 +//line sip.rl:54 - mark = p + p-- + + +//line sip.rl:145 + + if via.Params == nil { + via.Params = Params{} + } + via.Params[name] = string(buf[0:amt]) + +//line sip.rl:119 + + *viap = via + viap = &via.Next + via = nil + +//line sip.rl:160 + + via = new(Via) + {goto st103 } + + goto st767 +tr110: +//line sip.rl:54 + + p-- + + +//line sip.rl:145 + + if via.Params == nil { + via.Params = Params{} + } + via.Params[name] = string(buf[0:amt]) + +//line sip.rl:165 + + amt = 0 // Needed so ViaParam action works when there's no value. + {goto st68 } + + goto st767 +tr122: +//line sip.rl:145 + + if via.Params == nil { + via.Params = Params{} + } + via.Params[name] = string(buf[0:amt]) + +//line sip.rl:119 + + *viap = via + viap = &via.Next + via = nil + +//line sip.rl:152 + + {goto st280 } - goto st73 + goto st767 + st767: + p++ + st_case_767: +//line msg_parse.go:3637 + goto st0 + st72: + p++ + st_case_72: + if data[p] == 10 { + goto st73 + } + goto st0 st73: p++ st_case_73: -//line msg_parse.go:3516 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { + switch data[p] { case 9: - goto tr108 + goto st74 case 32: - goto tr108 - case 33: - goto st73 - case 37: - goto st73 - case 39: - goto st73 - case 47: - goto tr110 - case 126: - goto st73 - case 525: - goto tr111 - } - switch { - case _widec < 45: - if 42 <= _widec && _widec <= 43 { - goto st73 - } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st73 - } - case _widec >= 65: - goto st73 - } - default: - goto st73 + goto st74 } goto st0 -tr108: -//line sip.rl:136 - - via.Version = string(data[mark:p]) - - goto st74 st74: p++ st_case_74: -//line msg_parse.go:3569 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { + switch data[p] { case 9: goto st74 case 32: goto st74 - case 47: - goto st75 - case 525: - goto st110 } - goto st0 -tr110: -//line sip.rl:136 + goto tr106 +tr97: +//line sip.rl:175 - via.Version = string(data[mark:p]) + name = string(data[mark:p]) goto st75 st75: p++ st_case_75: -//line msg_parse.go:3597 +//line msg_parse.go:3675 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3606,50 +3684,57 @@ tr110: goto st75 case 32: goto st75 - case 33: - goto tr115 - case 37: - goto tr115 - case 39: - goto tr115 - case 126: - goto tr115 + case 269: + goto tr110 case 525: - goto st107 + goto st76 } switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto tr115 - } - case _widec >= 42: - goto tr115 - } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto tr115 - } - case _widec >= 65: - goto tr115 + case _widec > 12: + if 14 <= _widec { + goto tr110 } default: - goto tr115 + goto tr110 } goto st0 -tr115: -//line sip.rl:61 - - mark = p - - goto st76 st76: p++ st_case_76: -//line msg_parse.go:3653 + if data[p] == 10 { + goto st77 + } + goto st0 + st77: + p++ + st_case_77: + switch data[p] { + case 9: + goto st78 + case 32: + goto st78 + } + goto st0 + st78: + p++ + st_case_78: + switch data[p] { + case 9: + goto st78 + case 32: + goto st78 + } + goto tr110 +tr98: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st79 + st79: + p++ + st_case_79: +//line msg_parse.go:3738 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3659,53 +3744,58 @@ tr115: } switch _widec { case 9: - goto tr117 + goto st79 case 32: - goto tr117 + goto st79 case 33: - goto st76 + goto tr114 + case 34: + goto st86 case 37: - goto st76 + goto tr114 case 39: - goto st76 + goto tr114 + case 93: + goto tr114 case 126: - goto st76 + goto tr114 case 525: - goto tr119 + goto st97 } switch { case _widec < 48: switch { case _widec > 43: if 45 <= _widec && _widec <= 46 { - goto st76 + goto tr114 } case _widec >= 42: - goto st76 + goto tr114 } - case _widec > 57: + case _widec > 58: switch { - case _widec > 90: + case _widec > 91: if 95 <= _widec && _widec <= 122 { - goto st76 + goto tr114 } case _widec >= 65: - goto st76 + goto tr114 } default: - goto st76 + goto tr114 } goto st0 -tr117: -//line sip.rl:140 +tr114: +//line sip.rl:74 - via.Transport = string(data[mark:p]) + buf[amt] = data[p] + amt++ - goto st77 - st77: + goto st80 + st80: p++ - st_case_77: -//line msg_parse.go:3709 + st_case_80: +//line msg_parse.go:3799 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3715,93 +3805,49 @@ tr117: } switch _widec { case 9: - goto st77 + goto st81 case 32: - goto st77 - case 91: - goto st101 - case 525: - goto st104 - } - switch { - case _widec < 48: - if 45 <= _widec && _widec <= 46 { - goto tr121 - } - case _widec > 57: - switch { - case _widec > 90: - if 97 <= _widec && _widec <= 122 { - goto tr121 - } - case _widec >= 65: - goto tr121 - } - default: - goto tr121 - } - goto st0 -tr121: -//line sip.rl:61 - - mark = p - - goto st78 - st78: - p++ - st_case_78: -//line msg_parse.go:3754 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto tr124 - case 32: - goto tr124 + goto st81 + case 33: + goto tr114 + case 37: + goto tr114 + case 39: + goto tr114 case 44: - goto tr125 - case 58: - goto tr127 + goto st71 case 59: - goto tr128 + goto st75 + case 93: + goto tr114 + case 126: + goto tr114 case 269: - goto tr129 + goto st85 case 525: - goto tr130 + goto st82 } switch { case _widec < 48: - if 45 <= _widec && _widec <= 46 { - goto st78 + if 42 <= _widec && _widec <= 46 { + goto tr114 } - case _widec > 57: + case _widec > 58: switch { - case _widec > 90: - if 97 <= _widec && _widec <= 122 { - goto st78 + case _widec > 91: + if 95 <= _widec && _widec <= 122 { + goto tr114 } case _widec >= 65: - goto st78 + goto tr114 } default: - goto st78 + goto tr114 } goto st0 -tr124: -//line sip.rl:144 - - via.Host = string(data[mark:p]) - - goto st79 - st79: + st81: p++ - st_case_79: -//line msg_parse.go:3805 + st_case_81: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -3811,116 +3857,21 @@ tr124: } switch _widec { case 9: - goto st79 + goto st81 case 32: - goto st79 + goto st81 case 44: - goto st80 - case 58: - goto st84 + goto st71 case 59: - goto st87 - case 525: - goto st98 - } - goto st0 -tr125: -//line sip.rl:144 - - via.Host = string(data[mark:p]) - - goto st80 - st80: - p++ - st_case_80: -//line msg_parse.go:3837 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st80 - case 32: - goto st80 - case 269: - goto tr136 + goto st75 case 525: - goto st81 - } - switch { - case _widec > 12: - if 14 <= _widec { - goto tr136 - } - default: - goto tr136 - } - goto st0 -tr136: -//line sip.rl:53 - - p-- - - -//line sip.rl:126 - - *viap = via - viap = &via.Next - via = nil - -//line sip.rl:167 - - via = new(Via) - {goto st69 } - - goto st741 -tr145: -//line sip.rl:53 - - p-- - - -//line sip.rl:172 - - amt = 0 // Needed so ViaParam action works when there's no value. - {goto st34 } - - goto st741 -tr151: -//line sip.rl:126 - - *viap = via - viap = &via.Next - via = nil - -//line sip.rl:159 - - {goto st246 } - - goto st741 - st741: - p++ - st_case_741: -//line msg_parse.go:3909 - goto st0 - st81: - p++ - st_case_81: - if data[p] == 10 { goto st82 } goto st0 st82: p++ st_case_82: - switch data[p] { - case 9: - goto st83 - case 32: + if data[p] == 10 { goto st83 } goto st0 @@ -3929,73 +3880,37 @@ tr151: st_case_83: switch data[p] { case 9: - goto st83 + goto st84 case 32: - goto st83 + goto st84 } - goto tr136 -tr127: -//line sip.rl:144 - - via.Host = string(data[mark:p]) - - goto st84 + goto st0 st84: p++ st_case_84: -//line msg_parse.go:3947 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { + switch data[p] { case 9: goto st84 case 32: goto st84 - case 525: - goto st95 - } - if 48 <= _widec && _widec <= 57 { - goto tr140 + case 44: + goto st71 + case 59: + goto st75 } goto st0 -tr140: -//line sip.rl:148 +tr99: +//line sip.rl:175 - via.Port = via.Port * 10 + (uint16(data[p]) - 0x30) + name = string(data[mark:p]) goto st85 st85: p++ st_case_85: -//line msg_parse.go:3976 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st86 - case 32: - goto st86 - case 44: - goto st80 - case 59: - goto st87 - case 269: - goto st94 - case 525: - goto st91 - } - if 48 <= _widec && _widec <= 57 { - goto tr140 +//line msg_parse.go:3912 + if data[p] == 10 { + goto tr122 } goto st0 st86: @@ -4010,27 +3925,63 @@ tr140: } switch _widec { case 9: - goto st86 - case 32: - goto st86 - case 44: - goto st80 - case 59: - goto st87 + goto tr123 + case 34: + goto tr124 + case 92: + goto tr125 case 525: - goto st91 + goto tr131 + } + switch { + case _widec < 224: + switch { + case _widec > 126: + if 192 <= _widec && _widec <= 223 { + goto tr126 + } + case _widec >= 32: + goto tr123 + } + case _widec > 239: + switch { + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto tr128 + } + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto tr130 + } + default: + goto tr129 + } + default: + goto tr127 } goto st0 -tr128: -//line sip.rl:144 +tr123: +//line sip.rl:70 - via.Host = string(data[mark:p]) + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st87 +tr132: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ goto st87 st87: p++ st_case_87: -//line msg_parse.go:4034 +//line msg_parse.go:3985 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4040,136 +3991,284 @@ tr128: } switch _widec { case 9: - goto st87 - case 32: - goto st87 - case 269: - goto tr145 - case 525: + goto tr132 + case 34: goto st88 + case 92: + goto st89 + case 525: + goto tr140 } switch { - case _widec > 12: - if 14 <= _widec { - goto tr145 - } - default: - goto tr145 - } + case _widec < 224: + switch { + case _widec > 126: + if 192 <= _widec && _widec <= 223 { + goto tr135 + } + case _widec >= 32: + goto tr132 + } + case _widec > 239: + switch { + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto tr137 + } + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto tr139 + } + default: + goto tr138 + } + default: + goto tr136 + } goto st0 +tr124: +//line sip.rl:70 + + amt = 0 + + goto st88 st88: p++ st_case_88: - if data[p] == 10 { - goto st89 +//line msg_parse.go:4039 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st81 + case 32: + goto st81 + case 44: + goto st71 + case 59: + goto st75 + case 269: + goto st85 + case 525: + goto st82 } goto st0 +tr125: +//line sip.rl:70 + + amt = 0 + + goto st89 st89: p++ st_case_89: - switch data[p] { - case 9: - goto st90 - case 32: - goto st90 +//line msg_parse.go:4071 + switch { + case data[p] < 11: + if data[p] <= 9 { + goto tr132 + } + case data[p] > 12: + if 14 <= data[p] && data[p] <= 127 { + goto tr132 + } + default: + goto tr132 } goto st0 +tr126: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st90 +tr135: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st90 st90: p++ st_case_90: - switch data[p] { - case 9: - goto st90 - case 32: - goto st90 +//line msg_parse.go:4106 + if 128 <= data[p] && data[p] <= 191 { + goto tr132 } - goto tr145 + goto st0 +tr127: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st91 +tr136: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st91 st91: p++ st_case_91: - if data[p] == 10 { - goto st92 +//line msg_parse.go:4132 + if 128 <= data[p] && data[p] <= 191 { + goto tr135 } goto st0 +tr128: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st92 +tr137: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st92 st92: p++ st_case_92: - switch data[p] { - case 9: - goto st93 - case 32: - goto st93 +//line msg_parse.go:4158 + if 128 <= data[p] && data[p] <= 191 { + goto tr136 } goto st0 +tr129: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st93 +tr138: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st93 st93: p++ st_case_93: - switch data[p] { - case 9: - goto st93 - case 32: - goto st93 - case 44: - goto st80 - case 59: - goto st87 +//line msg_parse.go:4184 + if 128 <= data[p] && data[p] <= 191 { + goto tr137 } goto st0 -tr129: -//line sip.rl:144 +tr130: +//line sip.rl:70 - via.Host = string(data[mark:p]) + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st94 +tr139: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ goto st94 st94: p++ st_case_94: -//line msg_parse.go:4128 - if data[p] == 10 { - goto tr151 +//line msg_parse.go:4210 + if 128 <= data[p] && data[p] <= 191 { + goto tr138 } goto st0 +tr131: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st95 +tr140: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st95 st95: p++ st_case_95: +//line msg_parse.go:4236 if data[p] == 10 { - goto st96 + goto tr141 } goto st0 +tr141: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st96 st96: p++ st_case_96: +//line msg_parse.go:4251 switch data[p] { case 9: - goto st97 + goto tr132 case 32: - goto st97 + goto tr132 } goto st0 st97: p++ st_case_97: - switch data[p] { - case 9: - goto st97 - case 32: - goto st97 - } - if 48 <= data[p] && data[p] <= 57 { - goto tr140 + if data[p] == 10 { + goto st98 } goto st0 -tr130: -//line sip.rl:144 - - via.Host = string(data[mark:p]) - - goto st98 st98: p++ st_case_98: -//line msg_parse.go:4172 - if data[p] == 10 { + switch data[p] { + case 9: + goto st99 + case 32: goto st99 } goto st0 @@ -4178,85 +4277,131 @@ tr130: st_case_99: switch data[p] { case 9: - goto st100 + goto st99 case 32: - goto st100 + goto st99 + case 33: + goto tr114 + case 34: + goto st86 + case 37: + goto tr114 + case 39: + goto tr114 + case 93: + goto tr114 + case 126: + goto tr114 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr114 + } + case data[p] >= 42: + goto tr114 + } + case data[p] > 58: + switch { + case data[p] > 91: + if 95 <= data[p] && data[p] <= 122 { + goto tr114 + } + case data[p] >= 65: + goto tr114 + } + default: + goto tr114 } goto st0 +tr100: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st100 st100: p++ st_case_100: - switch data[p] { - case 9: - goto st100 - case 32: - goto st100 - case 44: - goto st80 - case 58: - goto st84 - case 59: - goto st87 +//line msg_parse.go:4329 + if data[p] == 10 { + goto st101 } goto st0 st101: p++ st_case_101: - if data[p] == 46 { - goto tr156 - } - switch { - case data[p] < 65: - if 48 <= data[p] && data[p] <= 58 { - goto tr156 - } - case data[p] > 70: - if 97 <= data[p] && data[p] <= 102 { - goto tr156 - } - default: - goto tr156 + switch data[p] { + case 9: + goto st102 + case 32: + goto st102 } goto st0 -tr156: -//line sip.rl:61 - - mark = p - - goto st102 st102: p++ st_case_102: -//line msg_parse.go:4231 switch data[p] { - case 46: + case 9: goto st102 - case 93: - goto tr158 - } - switch { - case data[p] < 65: - if 48 <= data[p] && data[p] <= 58 { - goto st102 - } - case data[p] > 70: - if 97 <= data[p] && data[p] <= 102 { - goto st102 - } - default: + case 32: goto st102 - } + case 44: + goto st71 + case 59: + goto st75 + case 61: + goto st79 + } goto st0 -tr158: -//line sip.rl:144 - - via.Host = string(data[mark:p]) - - goto st103 st103: p++ st_case_103: -//line msg_parse.go:4260 + switch data[p] { + case 33: + goto tr146 + case 37: + goto tr146 + case 39: + goto tr146 + case 126: + goto tr146 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr146 + } + case data[p] >= 42: + goto tr146 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto tr146 + } + case data[p] >= 65: + goto tr146 + } + default: + goto tr146 + } + goto st0 +tr146: +//line sip.rl:62 + + mark = p + + goto st104 + st104: + p++ + st_case_104: +//line msg_parse.go:4405 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4266,290 +4411,356 @@ tr158: } switch _widec { case 9: - goto st79 + goto tr147 case 32: - goto st79 - case 44: - goto st80 - case 58: - goto st84 - case 59: - goto st87 - case 269: - goto st94 + goto tr147 + case 33: + goto st104 + case 37: + goto st104 + case 39: + goto st104 + case 47: + goto tr149 + case 126: + goto st104 case 525: - goto st98 + goto tr150 + } + switch { + case _widec < 45: + if 42 <= _widec && _widec <= 43 { + goto st104 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st104 + } + case _widec >= 65: + goto st104 + } + default: + goto st104 } goto st0 -tr119: -//line sip.rl:140 +tr147: +//line sip.rl:125 - via.Transport = string(data[mark:p]) + via.Protocol = string(data[mark:p]) - goto st104 - st104: - p++ - st_case_104: -//line msg_parse.go:4294 - if data[p] == 10 { - goto st105 - } - goto st0 + goto st105 st105: p++ st_case_105: - switch data[p] { +//line msg_parse.go:4458 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: - goto st106 + goto st105 case 32: + goto st105 + case 47: goto st106 + case 525: + goto st150 } goto st0 +tr149: +//line sip.rl:125 + + via.Protocol = string(data[mark:p]) + + goto st106 st106: p++ st_case_106: - switch data[p] { +//line msg_parse.go:4486 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: goto st106 case 32: goto st106 - case 91: - goto st101 + case 33: + goto tr154 + case 37: + goto tr154 + case 39: + goto tr154 + case 126: + goto tr154 + case 525: + goto st147 } switch { - case data[p] < 48: - if 45 <= data[p] && data[p] <= 46 { - goto tr121 + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto tr154 + } + case _widec >= 42: + goto tr154 } - case data[p] > 57: + case _widec > 57: switch { - case data[p] > 90: - if 97 <= data[p] && data[p] <= 122 { - goto tr121 + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto tr154 } - case data[p] >= 65: - goto tr121 + case _widec >= 65: + goto tr154 } default: - goto tr121 + goto tr154 } goto st0 +tr154: +//line sip.rl:62 + + mark = p + + goto st107 st107: p++ st_case_107: - if data[p] == 10 { - goto st108 +//line msg_parse.go:4542 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto tr156 + case 32: + goto tr156 + case 33: + goto st107 + case 37: + goto st107 + case 39: + goto st107 + case 47: + goto tr158 + case 126: + goto st107 + case 525: + goto tr159 + } + switch { + case _widec < 45: + if 42 <= _widec && _widec <= 43 { + goto st107 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st107 + } + case _widec >= 65: + goto st107 + } + default: + goto st107 } goto st0 +tr156: +//line sip.rl:129 + + via.Version = string(data[mark:p]) + + goto st108 st108: p++ st_case_108: - switch data[p] { +//line msg_parse.go:4595 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: - goto st109 + goto st108 case 32: + goto st108 + case 47: goto st109 + case 525: + goto st144 } goto st0 +tr158: +//line sip.rl:129 + + via.Version = string(data[mark:p]) + + goto st109 st109: p++ st_case_109: - switch data[p] { +//line msg_parse.go:4623 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: goto st109 case 32: goto st109 case 33: - goto tr115 + goto tr163 case 37: - goto tr115 + goto tr163 case 39: - goto tr115 + goto tr163 case 126: - goto tr115 + goto tr163 + case 525: + goto st141 } switch { - case data[p] < 48: + case _widec < 48: switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto tr115 + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto tr163 } - case data[p] >= 42: - goto tr115 + case _widec >= 42: + goto tr163 } - case data[p] > 57: + case _widec > 57: switch { - case data[p] > 90: - if 95 <= data[p] && data[p] <= 122 { - goto tr115 + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto tr163 } - case data[p] >= 65: - goto tr115 + case _widec >= 65: + goto tr163 } default: - goto tr115 + goto tr163 } goto st0 -tr111: -//line sip.rl:136 +tr163: +//line sip.rl:62 - via.Version = string(data[mark:p]) + mark = p goto st110 st110: p++ st_case_110: -//line msg_parse.go:4404 - if data[p] == 10 { - goto st111 +//line msg_parse.go:4679 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } } - goto st0 - st111: - p++ - st_case_111: - switch data[p] { + switch _widec { case 9: - goto st112 + goto tr165 case 32: - goto st112 - } - goto st0 - st112: - p++ - st_case_112: - switch data[p] { - case 9: - goto st112 - case 32: - goto st112 - case 47: - goto st75 - } - goto st0 - st113: - p++ - st_case_113: - if data[p] == 10 { - goto st114 - } - goto st0 - st114: - p++ - st_case_114: - switch data[p] { - case 9: - goto st115 - case 32: - goto st115 - } - goto st0 - st115: - p++ - st_case_115: - switch data[p] { - case 9: - goto st115 - case 32: - goto st115 - case 33: - goto tr106 - case 37: - goto tr106 - case 39: - goto tr106 - case 126: - goto tr106 + goto tr165 + case 33: + goto st110 + case 37: + goto st110 + case 39: + goto st110 + case 126: + goto st110 + case 525: + goto tr167 } switch { - case data[p] < 48: + case _widec < 48: switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto tr106 + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st110 } - case data[p] >= 42: - goto tr106 + case _widec >= 42: + goto st110 } - case data[p] > 57: + case _widec > 57: switch { - case data[p] > 90: - if 95 <= data[p] && data[p] <= 122 { - goto tr106 + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st110 } - case data[p] >= 65: - goto tr106 + case _widec >= 65: + goto st110 } default: - goto tr106 + goto st110 } goto st0 -tr102: -//line sip.rl:132 +tr165: +//line sip.rl:133 - via.Protocol = string(data[mark:p]) + via.Transport = string(data[mark:p]) - goto st116 - st116: - p++ - st_case_116: -//line msg_parse.go:4497 - if data[p] == 10 { - goto st117 - } - goto st0 - st117: + goto st111 + st111: p++ - st_case_117: - switch data[p] { - case 9: - goto st118 - case 32: - goto st118 + st_case_111: +//line msg_parse.go:4735 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } } - goto st0 - st118: - p++ - st_case_118: - switch data[p] { + switch _widec { case 9: - goto st118 + goto st111 case 32: - goto st118 - case 47: - goto st72 - } - goto st0 - st119: - p++ - st_case_119: - switch data[p] { - case 33: - goto tr169 - case 37: - goto tr169 - case 39: - goto tr169 - case 126: - goto tr169 + goto st111 + case 91: + goto st135 + case 525: + goto st138 } switch { - case data[p] < 48: - switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto tr169 - } - case data[p] >= 42: + case _widec < 48: + if 45 <= _widec && _widec <= 46 { goto tr169 } - case data[p] > 57: + case _widec > 57: switch { - case data[p] > 90: - if 95 <= data[p] && data[p] <= 122 { + case _widec > 90: + if 97 <= _widec && _widec <= 122 { goto tr169 } - case data[p] >= 65: + case _widec >= 65: goto tr169 } default: @@ -4557,19 +4768,15 @@ tr102: } goto st0 tr169: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:61 +//line sip.rl:62 mark = p - goto st120 - st120: + goto st112 + st112: p++ - st_case_120: -//line msg_parse.go:4573 + st_case_112: +//line msg_parse.go:4780 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4579,56 +4786,48 @@ tr169: } switch _widec { case 9: - goto tr170 + goto tr172 case 32: - goto tr170 - case 33: - goto st120 - case 37: - goto st120 - case 39: - goto st120 - case 44: goto tr172 - case 59: + case 44: goto tr173 - case 61: - goto tr174 - case 126: - goto st120 - case 269: + case 58: goto tr175 - case 525: + case 59: goto tr176 + case 269: + goto tr177 + case 525: + goto tr178 } switch { case _widec < 48: - if 42 <= _widec && _widec <= 46 { - goto st120 + if 45 <= _widec && _widec <= 46 { + goto st112 } case _widec > 57: switch { case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st120 + if 97 <= _widec && _widec <= 122 { + goto st112 } case _widec >= 65: - goto st120 + goto st112 } default: - goto st120 + goto st112 } goto st0 -tr170: -//line sip.rl:182 +tr172: +//line sip.rl:137 - name = string(data[mark:p]) + via.Host = string(data[mark:p]) - goto st121 - st121: + goto st113 + st113: p++ - st_case_121: -//line msg_parse.go:4632 + st_case_113: +//line msg_parse.go:4831 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4638,29 +4837,29 @@ tr170: } switch _widec { case 9: - goto st121 + goto st113 case 32: - goto st121 + goto st113 case 44: - goto st122 + goto st114 + case 58: + goto st118 case 59: - goto st126 - case 61: - goto st130 + goto st121 case 525: - goto st151 + goto st132 } goto st0 -tr172: -//line sip.rl:182 +tr173: +//line sip.rl:137 - name = string(data[mark:p]) + via.Host = string(data[mark:p]) - goto st122 - st122: + goto st114 + st114: p++ - st_case_122: -//line msg_parse.go:4664 + st_case_114: +//line msg_parse.go:4863 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4670,126 +4869,107 @@ tr172: } switch _widec { case 9: - goto st122 + goto st114 case 32: - goto st122 + goto st114 case 269: - goto tr182 + goto tr184 case 525: - goto st123 + goto st115 } switch { case _widec > 12: if 14 <= _widec { - goto tr182 + goto tr184 } default: - goto tr182 + goto tr184 } goto st0 -tr182: -//line sip.rl:235 - - if addr.Params == nil { - addr.Params = Params{} - } - addr.Params[name] = string(buf[0:amt]) - -//line sip.rl:242 - - *addrp = addr - addrp = &addr.Next - addr = nil - -//line sip.rl:53 +tr184: +//line sip.rl:54 p-- -//line sip.rl:198 +//line sip.rl:119 - {goto st222 } + *viap = via + viap = &via.Next + via = nil - goto st742 -tr186: -//line sip.rl:235 +//line sip.rl:160 - if addr.Params == nil { - addr.Params = Params{} - } - addr.Params[name] = string(buf[0:amt]) + via = new(Via) + {goto st103 } -//line sip.rl:53 + goto st768 +tr193: +//line sip.rl:54 p-- -//line sip.rl:210 - - {goto st119 } - - goto st742 -tr198: -//line sip.rl:235 +//line sip.rl:165 - if addr.Params == nil { - addr.Params = Params{} - } - addr.Params[name] = string(buf[0:amt]) + amt = 0 // Needed so ViaParam action works when there's no value. + {goto st68 } -//line sip.rl:242 + goto st768 +tr199: +//line sip.rl:119 - *addrp = addr - addrp = &addr.Next - addr = nil + *viap = via + viap = &via.Next + via = nil -//line sip.rl:159 +//line sip.rl:152 - {goto st246 } + {goto st280 } - goto st742 - st742: + goto st768 + st768: p++ - st_case_742: -//line msg_parse.go:4755 + st_case_768: +//line msg_parse.go:4935 goto st0 - st123: + st115: p++ - st_case_123: + st_case_115: if data[p] == 10 { - goto st124 + goto st116 } goto st0 - st124: + st116: p++ - st_case_124: + st_case_116: switch data[p] { case 9: - goto st125 + goto st117 case 32: - goto st125 + goto st117 } goto st0 - st125: + st117: p++ - st_case_125: + st_case_117: switch data[p] { case 9: - goto st125 + goto st117 case 32: - goto st125 + goto st117 } - goto tr182 -tr173: -//line sip.rl:182 + goto tr184 +tr175: +//line sip.rl:137 - name = string(data[mark:p]) + via.Host = string(data[mark:p]) - goto st126 - st126: + goto st118 + st118: p++ - st_case_126: -//line msg_parse.go:4793 + st_case_118: +//line msg_parse.go:4973 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4799,60 +4979,26 @@ tr173: } switch _widec { case 9: - goto st126 + goto st118 case 32: - goto st126 - case 269: - goto tr186 + goto st118 case 525: - goto st127 - } - switch { - case _widec > 12: - if 14 <= _widec { - goto tr186 - } - default: - goto tr186 - } - goto st0 - st127: - p++ - st_case_127: - if data[p] == 10 { - goto st128 - } - goto st0 - st128: - p++ - st_case_128: - switch data[p] { - case 9: - goto st129 - case 32: goto st129 } - goto st0 - st129: - p++ - st_case_129: - switch data[p] { - case 9: - goto st129 - case 32: - goto st129 + if 48 <= _widec && _widec <= 57 { + goto tr188 } - goto tr186 -tr174: -//line sip.rl:182 + goto st0 +tr188: +//line sip.rl:141 - name = string(data[mark:p]) + via.Port = via.Port * 10 + (uint16(data[p]) - 0x30) - goto st130 - st130: + goto st119 + st119: p++ - st_case_130: -//line msg_parse.go:4856 + st_case_119: +//line msg_parse.go:5002 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4862,58 +5008,25 @@ tr174: } switch _widec { case 9: - goto st130 + goto st120 case 32: - goto st130 - case 33: - goto tr190 - case 34: - goto st137 - case 37: - goto tr190 - case 39: - goto tr190 - case 93: - goto tr190 - case 126: - goto tr190 + goto st120 + case 44: + goto st114 + case 59: + goto st121 + case 269: + goto st128 case 525: - goto st148 + goto st125 } - switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto tr190 - } - case _widec >= 42: - goto tr190 - } - case _widec > 58: - switch { - case _widec > 91: - if 95 <= _widec && _widec <= 122 { - goto tr190 - } - case _widec >= 65: - goto tr190 - } - default: - goto tr190 + if 48 <= _widec && _widec <= 57 { + goto tr188 } goto st0 -tr190: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st131 - st131: + st120: p++ - st_case_131: -//line msg_parse.go:4917 + st_case_120: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4923,49 +5036,27 @@ tr190: } switch _widec { case 9: - goto st132 + goto st120 case 32: - goto st132 - case 33: - goto tr190 - case 37: - goto tr190 - case 39: - goto tr190 + goto st120 case 44: - goto st122 + goto st114 case 59: - goto st126 - case 93: - goto tr190 - case 126: - goto tr190 - case 269: - goto st136 + goto st121 case 525: - goto st133 - } - switch { - case _widec < 48: - if 42 <= _widec && _widec <= 46 { - goto tr190 - } - case _widec > 58: - switch { - case _widec > 91: - if 95 <= _widec && _widec <= 122 { - goto tr190 - } - case _widec >= 65: - goto tr190 - } - default: - goto tr190 + goto st125 } goto st0 - st132: +tr176: +//line sip.rl:137 + + via.Host = string(data[mark:p]) + + goto st121 + st121: p++ - st_case_132: + st_case_121: +//line msg_parse.go:5060 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -4975,185 +5066,223 @@ tr190: } switch _widec { case 9: - goto st132 + goto st121 case 32: - goto st132 - case 44: - goto st122 - case 59: - goto st126 + goto st121 + case 269: + goto tr193 case 525: - goto st133 + goto st122 + } + switch { + case _widec > 12: + if 14 <= _widec { + goto tr193 + } + default: + goto tr193 } goto st0 - st133: + st122: p++ - st_case_133: + st_case_122: if data[p] == 10 { - goto st134 + goto st123 } goto st0 - st134: + st123: p++ - st_case_134: + st_case_123: switch data[p] { case 9: - goto st135 + goto st124 case 32: - goto st135 + goto st124 } goto st0 - st135: + st124: p++ - st_case_135: + st_case_124: switch data[p] { case 9: - goto st135 + goto st124 case 32: - goto st135 + goto st124 + } + goto tr193 + st125: + p++ + st_case_125: + if data[p] == 10 { + goto st126 + } + goto st0 + st126: + p++ + st_case_126: + switch data[p] { + case 9: + goto st127 + case 32: + goto st127 + } + goto st0 + st127: + p++ + st_case_127: + switch data[p] { + case 9: + goto st127 + case 32: + goto st127 case 44: - goto st122 + goto st114 case 59: - goto st126 + goto st121 } goto st0 -tr175: -//line sip.rl:182 +tr177: +//line sip.rl:137 - name = string(data[mark:p]) + via.Host = string(data[mark:p]) - goto st136 - st136: + goto st128 + st128: p++ - st_case_136: -//line msg_parse.go:5030 + st_case_128: +//line msg_parse.go:5154 if data[p] == 10 { - goto tr198 + goto tr199 } goto st0 - st137: + st129: p++ - st_case_137: - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } + st_case_129: + if data[p] == 10 { + goto st130 } - switch _widec { + goto st0 + st130: + p++ + st_case_130: + switch data[p] { case 9: - goto tr199 - case 34: - goto tr200 - case 92: - goto tr201 - case 525: - goto tr207 + goto st131 + case 32: + goto st131 } - switch { - case _widec < 224: - switch { - case _widec > 126: - if 192 <= _widec && _widec <= 223 { - goto tr202 - } - case _widec >= 32: - goto tr199 - } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto tr204 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto tr206 - } - default: - goto tr205 - } - default: - goto tr203 + goto st0 + st131: + p++ + st_case_131: + switch data[p] { + case 9: + goto st131 + case 32: + goto st131 + } + if 48 <= data[p] && data[p] <= 57 { + goto tr188 } goto st0 -tr199: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ +tr178: +//line sip.rl:137 - goto st138 -tr208: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ + via.Host = string(data[mark:p]) - goto st138 - st138: + goto st132 + st132: p++ - st_case_138: -//line msg_parse.go:5103 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } + st_case_132: +//line msg_parse.go:5198 + if data[p] == 10 { + goto st133 } - switch _widec { + goto st0 + st133: + p++ + st_case_133: + switch data[p] { case 9: - goto tr208 - case 34: - goto st139 - case 92: - goto st140 - case 525: - goto tr216 + goto st134 + case 32: + goto st134 + } + goto st0 + st134: + p++ + st_case_134: + switch data[p] { + case 9: + goto st134 + case 32: + goto st134 + case 44: + goto st114 + case 58: + goto st118 + case 59: + goto st121 + } + goto st0 + st135: + p++ + st_case_135: + if data[p] == 46 { + goto tr204 } switch { - case _widec < 224: - switch { - case _widec > 126: - if 192 <= _widec && _widec <= 223 { - goto tr211 - } - case _widec >= 32: - goto tr208 + case data[p] < 65: + if 48 <= data[p] && data[p] <= 58 { + goto tr204 } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto tr213 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto tr215 - } - default: - goto tr214 + case data[p] > 70: + if 97 <= data[p] && data[p] <= 102 { + goto tr204 } default: - goto tr212 + goto tr204 } goto st0 -tr200: -//line sip.rl:69 +tr204: +//line sip.rl:62 - amt = 0 + mark = p - goto st139 - st139: + goto st136 + st136: p++ - st_case_139: -//line msg_parse.go:5157 + st_case_136: +//line msg_parse.go:5257 + switch data[p] { + case 46: + goto st136 + case 93: + goto tr206 + } + switch { + case data[p] < 65: + if 48 <= data[p] && data[p] <= 58 { + goto st136 + } + case data[p] > 70: + if 97 <= data[p] && data[p] <= 102 { + goto st136 + } + default: + goto st136 + } + goto st0 +tr206: +//line sip.rl:137 + + via.Host = string(data[mark:p]) + + goto st137 + st137: + p++ + st_case_137: +//line msg_parse.go:5286 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -5163,288 +5292,245 @@ tr200: } switch _widec { case 9: - goto st132 + goto st113 case 32: - goto st132 + goto st113 case 44: - goto st122 + goto st114 + case 58: + goto st118 case 59: - goto st126 + goto st121 case 269: - goto st136 + goto st128 case 525: - goto st133 + goto st132 } goto st0 -tr201: -//line sip.rl:69 +tr167: +//line sip.rl:133 - amt = 0 + via.Transport = string(data[mark:p]) - goto st140 + goto st138 + st138: + p++ + st_case_138: +//line msg_parse.go:5320 + if data[p] == 10 { + goto st139 + } + goto st0 + st139: + p++ + st_case_139: + switch data[p] { + case 9: + goto st140 + case 32: + goto st140 + } + goto st0 st140: p++ st_case_140: -//line msg_parse.go:5189 + switch data[p] { + case 9: + goto st140 + case 32: + goto st140 + case 91: + goto st135 + } switch { - case data[p] < 11: - if data[p] <= 9 { - goto tr208 + case data[p] < 48: + if 45 <= data[p] && data[p] <= 46 { + goto tr169 } - case data[p] > 12: - if 14 <= data[p] && data[p] <= 127 { - goto tr208 + case data[p] > 57: + switch { + case data[p] > 90: + if 97 <= data[p] && data[p] <= 122 { + goto tr169 + } + case data[p] >= 65: + goto tr169 } default: - goto tr208 + goto tr169 } goto st0 -tr202: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st141 -tr211: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st141 st141: p++ st_case_141: -//line msg_parse.go:5224 - if 128 <= data[p] && data[p] <= 191 { - goto tr208 + if data[p] == 10 { + goto st142 } goto st0 -tr203: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st142 -tr212: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st142 st142: p++ st_case_142: -//line msg_parse.go:5250 - if 128 <= data[p] && data[p] <= 191 { - goto tr211 + switch data[p] { + case 9: + goto st143 + case 32: + goto st143 } goto st0 -tr204: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st143 -tr213: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st143 st143: p++ st_case_143: -//line msg_parse.go:5276 - if 128 <= data[p] && data[p] <= 191 { - goto tr212 + switch data[p] { + case 9: + goto st143 + case 32: + goto st143 + case 33: + goto tr163 + case 37: + goto tr163 + case 39: + goto tr163 + case 126: + goto tr163 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr163 + } + case data[p] >= 42: + goto tr163 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto tr163 + } + case data[p] >= 65: + goto tr163 + } + default: + goto tr163 } goto st0 -tr205: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st144 -tr214: -//line sip.rl:73 +tr159: +//line sip.rl:129 - buf[amt] = data[p] - amt++ + via.Version = string(data[mark:p]) goto st144 st144: p++ st_case_144: -//line msg_parse.go:5302 - if 128 <= data[p] && data[p] <= 191 { - goto tr213 +//line msg_parse.go:5430 + if data[p] == 10 { + goto st145 } goto st0 -tr206: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st145 -tr215: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st145 st145: p++ st_case_145: -//line msg_parse.go:5328 - if 128 <= data[p] && data[p] <= 191 { - goto tr214 + switch data[p] { + case 9: + goto st146 + case 32: + goto st146 } goto st0 -tr207: -//line sip.rl:69 - - amt = 0 - -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st146 -tr216: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st146 st146: p++ st_case_146: -//line msg_parse.go:5354 - if data[p] == 10 { - goto tr217 - } - goto st0 -tr217: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st147 - st147: - p++ - st_case_147: -//line msg_parse.go:5369 switch data[p] { case 9: - goto tr208 + goto st146 case 32: - goto tr208 + goto st146 + case 47: + goto st109 } goto st0 - st148: + st147: p++ - st_case_148: + st_case_147: if data[p] == 10 { - goto st149 + goto st148 } goto st0 - st149: + st148: p++ - st_case_149: + st_case_148: switch data[p] { case 9: - goto st150 + goto st149 case 32: - goto st150 + goto st149 } goto st0 - st150: + st149: p++ - st_case_150: + st_case_149: switch data[p] { case 9: - goto st150 + goto st149 case 32: - goto st150 + goto st149 case 33: - goto tr190 - case 34: - goto st137 + goto tr154 case 37: - goto tr190 + goto tr154 case 39: - goto tr190 - case 93: - goto tr190 + goto tr154 case 126: - goto tr190 + goto tr154 } switch { case data[p] < 48: switch { case data[p] > 43: if 45 <= data[p] && data[p] <= 46 { - goto tr190 + goto tr154 } case data[p] >= 42: - goto tr190 + goto tr154 } - case data[p] > 58: + case data[p] > 57: switch { - case data[p] > 91: + case data[p] > 90: if 95 <= data[p] && data[p] <= 122 { - goto tr190 + goto tr154 } case data[p] >= 65: - goto tr190 + goto tr154 } default: - goto tr190 + goto tr154 } goto st0 -tr176: -//line sip.rl:182 +tr150: +//line sip.rl:125 - name = string(data[mark:p]) + via.Protocol = string(data[mark:p]) - goto st151 + goto st150 + st150: + p++ + st_case_150: +//line msg_parse.go:5523 + if data[p] == 10 { + goto st151 + } + goto st0 st151: p++ st_case_151: -//line msg_parse.go:5447 - if data[p] == 10 { + switch data[p] { + case 9: + goto st152 + case 32: goto st152 } goto st0 @@ -5453,30 +5539,63 @@ tr176: st_case_152: switch data[p] { case 9: - goto st153 + goto st152 case 32: - goto st153 + goto st152 + case 47: + goto st106 } goto st0 st153: p++ st_case_153: switch data[p] { - case 9: - goto st153 - case 32: - goto st153 - case 44: - goto st122 - case 59: - goto st126 - case 61: - goto st130 + case 33: + goto tr217 + case 37: + goto tr217 + case 39: + goto tr217 + case 126: + goto tr217 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr217 + } + case data[p] >= 42: + goto tr217 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto tr217 + } + case data[p] >= 65: + goto tr217 + } + default: + goto tr217 } goto st0 +tr217: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:62 + + mark = p + + goto st154 st154: p++ st_case_154: +//line msg_parse.go:5599 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -5486,57 +5605,56 @@ tr176: } switch _widec { case 9: - goto st155 + goto tr218 case 32: - goto st155 + goto tr218 case 33: - goto tr223 - case 34: - goto tr224 + goto st154 case 37: - goto tr223 + goto st154 case 39: - goto tr223 - case 60: - goto st156 + goto st154 + case 44: + goto tr220 + case 59: + goto tr221 + case 61: + goto tr222 case 126: + goto st154 + case 269: goto tr223 case 525: - goto st176 + goto tr224 } switch { case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto tr223 - } - case _widec >= 42: - goto tr223 + if 42 <= _widec && _widec <= 46 { + goto st154 } case _widec > 57: switch { case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto tr223 + goto st154 } case _widec >= 65: - goto tr223 + goto st154 } default: - goto tr223 + goto st154 } goto st0 -tr281: -//line sip.rl:218 +tr218: +//line sip.rl:175 - addr.Display = string(buf[0:amt]) + name = string(data[mark:p]) goto st155 st155: p++ st_case_155: -//line msg_parse.go:5540 +//line msg_parse.go:5658 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -5549,100 +5667,132 @@ tr281: goto st155 case 32: goto st155 - case 60: + case 44: goto st156 + case 59: + goto st160 + case 61: + goto st164 case 525: - goto st176 + goto st185 } goto st0 -tr257: -//line sip.rl:222 -{ - end := p - for end > mark && whitespacec(data[end - 1]) { - end-- - } - addr.Display = string(data[mark:end]) -} - goto st156 -tr282: -//line sip.rl:218 +tr220: +//line sip.rl:175 - addr.Display = string(buf[0:amt]) + name = string(data[mark:p]) goto st156 st156: p++ st_case_156: -//line msg_parse.go:5578 +//line msg_parse.go:5690 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st156 + case 32: + goto st156 + case 269: + goto tr230 + case 525: + goto st157 + } switch { - case data[p] > 90: - if 97 <= data[p] && data[p] <= 122 { - goto tr227 + case _widec > 12: + if 14 <= _widec { + goto tr230 } - case data[p] >= 65: - goto tr227 + default: + goto tr230 } goto st0 -tr227: -//line sip.rl:61 +tr230: +//line sip.rl:232 - mark = p + if addr.Params == nil { + addr.Params = Params{} + } + addr.Params[name] = string(buf[0:amt]) + +//line sip.rl:239 + + *addrp = addr + addrp = &addr.Next + addr = nil + +//line sip.rl:54 + + p-- + + +//line sip.rl:195 + + {goto st256 } + + goto st769 +tr234: +//line sip.rl:232 + + if addr.Params == nil { + addr.Params = Params{} + } + addr.Params[name] = string(buf[0:amt]) + +//line sip.rl:54 + + p-- + + +//line sip.rl:207 + + {goto st153 } + + goto st769 +tr246: +//line sip.rl:232 + + if addr.Params == nil { + addr.Params = Params{} + } + addr.Params[name] = string(buf[0:amt]) - goto st157 +//line sip.rl:239 + + *addrp = addr + addrp = &addr.Next + addr = nil + +//line sip.rl:152 + + {goto st280 } + + goto st769 + st769: + p++ + st_case_769: +//line msg_parse.go:5781 + goto st0 st157: p++ st_case_157: -//line msg_parse.go:5597 - switch data[p] { - case 43: - goto st157 - case 58: + if data[p] == 10 { goto st158 } - switch { - case data[p] < 48: - if 45 <= data[p] && data[p] <= 46 { - goto st157 - } - case data[p] > 57: - switch { - case data[p] > 90: - if 97 <= data[p] && data[p] <= 122 { - goto st157 - } - case data[p] >= 65: - goto st157 - } - default: - goto st157 - } goto st0 st158: p++ st_case_158: switch data[p] { - case 33: + case 9: goto st159 - case 61: - goto st159 - case 93: - goto st159 - case 95: - goto st159 - case 126: - goto st159 - } - switch { - case data[p] < 63: - if 36 <= data[p] && data[p] <= 59 { - goto st159 - } - case data[p] > 91: - if 97 <= data[p] && data[p] <= 122 { - goto st159 - } - default: + case 32: goto st159 } goto st0 @@ -5650,41 +5800,22 @@ tr227: p++ st_case_159: switch data[p] { - case 33: - goto st159 - case 62: - goto tr231 - case 93: - goto st159 - case 95: - goto st159 - case 126: + case 9: goto st159 - } - switch { - case data[p] < 61: - if 36 <= data[p] && data[p] <= 59 { - goto st159 - } - case data[p] > 91: - if 97 <= data[p] && data[p] <= 122 { - goto st159 - } - default: + case 32: goto st159 } - goto st0 -tr231: -//line sip.rl:230 + goto tr230 +tr221: +//line sip.rl:175 - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } + name = string(data[mark:p]) goto st160 st160: p++ st_case_160: -//line msg_parse.go:5688 +//line msg_parse.go:5819 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -5697,94 +5828,34 @@ tr231: goto st160 case 32: goto st160 - case 44: - goto st161 - case 59: - goto st165 case 269: - goto st169 + goto tr234 case 525: - goto st170 - } - goto st0 - st161: - p++ - st_case_161: - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st161 - case 32: goto st161 - case 269: - goto tr237 - case 525: - goto st162 } switch { case _widec > 12: if 14 <= _widec { - goto tr237 + goto tr234 } default: - goto tr237 + goto tr234 } goto st0 -tr237: -//line sip.rl:242 - - *addrp = addr - addrp = &addr.Next - addr = nil - -//line sip.rl:53 - - p-- - - -//line sip.rl:198 - - {goto st222 } - - goto st743 -tr241: -//line sip.rl:53 - - p-- - - -//line sip.rl:210 - - {goto st119 } - - goto st743 -tr245: -//line sip.rl:242 - - *addrp = addr - addrp = &addr.Next - addr = nil - -//line sip.rl:159 - - {goto st246 } - - goto st743 - st743: + st161: p++ - st_case_743: -//line msg_parse.go:5783 + st_case_161: + if data[p] == 10 { + goto st162 + } goto st0 st162: p++ st_case_162: - if data[p] == 10 { + switch data[p] { + case 9: + goto st163 + case 32: goto st163 } goto st0 @@ -5793,24 +5864,82 @@ tr245: st_case_163: switch data[p] { case 9: - goto st164 + goto st163 case 32: - goto st164 + goto st163 } - goto st0 + goto tr234 +tr222: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st164 st164: p++ st_case_164: - switch data[p] { +//line msg_parse.go:5882 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: goto st164 case 32: goto st164 + case 33: + goto tr238 + case 34: + goto st171 + case 37: + goto tr238 + case 39: + goto tr238 + case 93: + goto tr238 + case 126: + goto tr238 + case 525: + goto st182 + } + switch { + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto tr238 + } + case _widec >= 42: + goto tr238 + } + case _widec > 58: + switch { + case _widec > 91: + if 95 <= _widec && _widec <= 122 { + goto tr238 + } + case _widec >= 65: + goto tr238 + } + default: + goto tr238 } - goto tr237 + goto st0 +tr238: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st165 st165: p++ st_case_165: +//line msg_parse.go:5943 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -5820,37 +5949,73 @@ tr245: } switch _widec { case 9: - goto st165 + goto st166 case 32: - goto st165 + goto st166 + case 33: + goto tr238 + case 37: + goto tr238 + case 39: + goto tr238 + case 44: + goto st156 + case 59: + goto st160 + case 93: + goto tr238 + case 126: + goto tr238 case 269: - goto tr241 + goto st170 case 525: - goto st166 + goto st167 } switch { - case _widec > 12: - if 14 <= _widec { - goto tr241 + case _widec < 48: + if 42 <= _widec && _widec <= 46 { + goto tr238 + } + case _widec > 58: + switch { + case _widec > 91: + if 95 <= _widec && _widec <= 122 { + goto tr238 + } + case _widec >= 65: + goto tr238 } default: - goto tr241 + goto tr238 } goto st0 st166: p++ st_case_166: - if data[p] == 10 { + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st166 + case 32: + goto st166 + case 44: + goto st156 + case 59: + goto st160 + case 525: goto st167 } goto st0 st167: p++ st_case_167: - switch data[p] { - case 9: - goto st168 - case 32: + if data[p] == 10 { goto st168 } goto st0 @@ -5859,38 +6024,42 @@ tr245: st_case_168: switch data[p] { case 9: - goto st168 + goto st169 case 32: - goto st168 + goto st169 } - goto tr241 + goto st0 st169: p++ st_case_169: - if data[p] == 10 { - goto tr245 + switch data[p] { + case 9: + goto st169 + case 32: + goto st169 + case 44: + goto st156 + case 59: + goto st160 } goto st0 +tr223: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st170 st170: p++ st_case_170: +//line msg_parse.go:6056 if data[p] == 10 { - goto st171 + goto tr246 } goto st0 st171: p++ st_case_171: - switch data[p] { - case 9: - goto st172 - case 32: - goto st172 - } - goto st0 - st172: - p++ - st_case_172: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -5900,314 +6069,63 @@ tr245: } switch _widec { case 9: - goto st172 - case 32: - goto st172 - case 44: - goto st161 - case 59: - goto st165 - case 269: - goto st169 + goto tr247 + case 34: + goto tr248 + case 92: + goto tr249 case 525: - goto st173 + goto tr255 + } + switch { + case _widec < 224: + switch { + case _widec > 126: + if 192 <= _widec && _widec <= 223 { + goto tr250 + } + case _widec >= 32: + goto tr247 + } + case _widec > 239: + switch { + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto tr252 + } + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto tr254 + } + default: + goto tr253 + } + default: + goto tr251 } goto st0 - st173: - p++ - st_case_173: - if data[p] == 10 { - goto st174 - } - goto st0 - st174: - p++ - st_case_174: - switch data[p] { - case 9: - goto st175 - case 32: - goto st175 - } - goto st0 - st175: - p++ - st_case_175: - switch data[p] { - case 9: - goto st175 - case 32: - goto st175 - case 44: - goto st161 - case 59: - goto st165 - } - goto st0 -tr262: -//line sip.rl:222 -{ - end := p - for end > mark && whitespacec(data[end - 1]) { - end-- - } - addr.Display = string(data[mark:end]) -} - goto st176 -tr283: -//line sip.rl:218 +tr247: +//line sip.rl:70 - addr.Display = string(buf[0:amt]) + amt = 0 - goto st176 - st176: - p++ - st_case_176: -//line msg_parse.go:5967 - if data[p] == 10 { - goto st177 - } - goto st0 - st177: - p++ - st_case_177: - switch data[p] { - case 9: - goto st178 - case 32: - goto st178 - } - goto st0 - st178: - p++ - st_case_178: - switch data[p] { - case 9: - goto st178 - case 32: - goto st178 - case 60: - goto st156 - } - goto st0 -tr223: -//line sip.rl:61 +//line sip.rl:74 - mark = p + buf[amt] = data[p] + amt++ - goto st179 - st179: - p++ - st_case_179: -//line msg_parse.go:6003 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st180 - case 32: - goto st180 - case 33: - goto st179 - case 37: - goto st179 - case 39: - goto st179 - case 126: - goto st179 - case 525: - goto st181 - } - switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto st179 - } - case _widec >= 42: - goto st179 - } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st179 - } - case _widec >= 65: - goto st179 - } - default: - goto st179 - } - goto st0 + goto st172 tr256: -//line sip.rl:222 -{ - end := p - for end > mark && whitespacec(data[end - 1]) { - end-- - } - addr.Display = string(data[mark:end]) -} - goto st180 - st180: - p++ - st_case_180: -//line msg_parse.go:6063 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto tr256 - case 32: - goto tr256 - case 33: - goto st179 - case 37: - goto st179 - case 39: - goto st179 - case 60: - goto tr257 - case 126: - goto st179 - case 525: - goto tr258 - } - switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto st179 - } - case _widec >= 42: - goto st179 - } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st179 - } - case _widec >= 65: - goto st179 - } - default: - goto st179 - } - goto st0 -tr258: -//line sip.rl:222 -{ - end := p - for end > mark && whitespacec(data[end - 1]) { - end-- - } - addr.Display = string(data[mark:end]) -} - goto st181 - st181: - p++ - st_case_181: -//line msg_parse.go:6125 - if data[p] == 10 { - goto st182 - } - goto st0 - st182: - p++ - st_case_182: - switch data[p] { - case 9: - goto st183 - case 32: - goto st183 - } - goto st0 -tr261: -//line sip.rl:222 -{ - end := p - for end > mark && whitespacec(data[end - 1]) { - end-- - } - addr.Display = string(data[mark:end]) -} - goto st183 - st183: - p++ - st_case_183: -//line msg_parse.go:6153 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto tr261 - case 32: - goto tr261 - case 33: - goto st179 - case 37: - goto st179 - case 39: - goto st179 - case 60: - goto tr257 - case 126: - goto st179 - case 525: - goto tr262 - } - switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto st179 - } - case _widec >= 42: - goto st179 - } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st179 - } - case _widec >= 65: - goto st179 - } - default: - goto st179 - } - goto st0 -tr224: -//line sip.rl:69 +//line sip.rl:74 - amt = 0 + buf[amt] = data[p] + amt++ - goto st184 - st184: + goto st172 + st172: p++ - st_case_184: -//line msg_parse.go:6211 + st_case_172: +//line msg_parse.go:6129 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6217,63 +6135,51 @@ tr224: } switch _widec { case 9: - goto tr263 + goto tr256 case 34: - goto tr264 + goto st173 case 92: - goto tr265 + goto st174 case 525: - goto tr271 + goto tr264 } switch { case _widec < 224: switch { case _widec > 126: if 192 <= _widec && _widec <= 223 { - goto tr266 + goto tr259 } case _widec >= 32: - goto tr263 + goto tr256 } case _widec > 239: switch { case _widec < 248: if 240 <= _widec && _widec <= 247 { - goto tr268 + goto tr261 } case _widec > 251: if 252 <= _widec && _widec <= 253 { - goto tr270 + goto tr263 } default: - goto tr269 + goto tr262 } default: - goto tr267 + goto tr260 } goto st0 -tr263: -//line sip.rl:69 +tr248: +//line sip.rl:70 amt = 0 -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st185 -tr272: -//line sip.rl:73 - - buf[amt] = data[p] - amt++ - - goto st185 - st185: + goto st173 + st173: p++ - st_case_185: -//line msg_parse.go:6277 + st_case_173: +//line msg_parse.go:6183 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6283,336 +6189,320 @@ tr272: } switch _widec { case 9: - goto tr272 - case 34: - goto st186 - case 92: - goto st187 - case 525: - goto tr280 - } - switch { - case _widec < 224: - switch { - case _widec > 126: - if 192 <= _widec && _widec <= 223 { - goto tr275 - } - case _widec >= 32: - goto tr272 - } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto tr277 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto tr279 - } - default: - goto tr278 - } - default: - goto tr276 - } - goto st0 -tr264: -//line sip.rl:69 - - amt = 0 - - goto st186 - st186: - p++ - st_case_186: -//line msg_parse.go:6331 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto tr281 + goto st166 case 32: - goto tr281 - case 60: - goto tr282 + goto st166 + case 44: + goto st156 + case 59: + goto st160 + case 269: + goto st170 case 525: - goto tr283 + goto st167 } goto st0 -tr265: -//line sip.rl:69 +tr249: +//line sip.rl:70 amt = 0 - goto st187 - st187: + goto st174 + st174: p++ - st_case_187: -//line msg_parse.go:6359 + st_case_174: +//line msg_parse.go:6215 switch { case data[p] < 11: if data[p] <= 9 { - goto tr272 + goto tr256 } case data[p] > 12: if 14 <= data[p] && data[p] <= 127 { - goto tr272 + goto tr256 } default: - goto tr272 + goto tr256 } goto st0 -tr266: -//line sip.rl:69 +tr250: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st188 -tr275: -//line sip.rl:73 + goto st175 +tr259: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st188 - st188: + goto st175 + st175: p++ - st_case_188: -//line msg_parse.go:6394 + st_case_175: +//line msg_parse.go:6250 if 128 <= data[p] && data[p] <= 191 { - goto tr272 + goto tr256 } goto st0 -tr267: -//line sip.rl:69 +tr251: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st189 -tr276: -//line sip.rl:73 + goto st176 +tr260: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st189 - st189: + goto st176 + st176: p++ - st_case_189: -//line msg_parse.go:6420 + st_case_176: +//line msg_parse.go:6276 if 128 <= data[p] && data[p] <= 191 { - goto tr275 + goto tr259 } goto st0 -tr268: -//line sip.rl:69 +tr252: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st190 -tr277: -//line sip.rl:73 + goto st177 +tr261: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st190 - st190: + goto st177 + st177: p++ - st_case_190: -//line msg_parse.go:6446 + st_case_177: +//line msg_parse.go:6302 if 128 <= data[p] && data[p] <= 191 { - goto tr276 + goto tr260 } goto st0 -tr269: -//line sip.rl:69 +tr253: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st191 -tr278: -//line sip.rl:73 + goto st178 +tr262: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st191 - st191: + goto st178 + st178: p++ - st_case_191: -//line msg_parse.go:6472 + st_case_178: +//line msg_parse.go:6328 if 128 <= data[p] && data[p] <= 191 { - goto tr277 + goto tr261 } goto st0 -tr270: -//line sip.rl:69 +tr254: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st192 -tr279: -//line sip.rl:73 + goto st179 +tr263: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st192 - st192: + goto st179 + st179: p++ - st_case_192: -//line msg_parse.go:6498 + st_case_179: +//line msg_parse.go:6354 if 128 <= data[p] && data[p] <= 191 { - goto tr278 + goto tr262 } goto st0 -tr271: -//line sip.rl:69 +tr255: +//line sip.rl:70 amt = 0 -//line sip.rl:73 +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st193 -tr280: -//line sip.rl:73 + goto st180 +tr264: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st193 - st193: + goto st180 + st180: p++ - st_case_193: -//line msg_parse.go:6524 + st_case_180: +//line msg_parse.go:6380 if data[p] == 10 { - goto tr284 + goto tr265 } goto st0 -tr284: -//line sip.rl:73 +tr265: +//line sip.rl:74 buf[amt] = data[p] amt++ - goto st194 - st194: + goto st181 + st181: p++ - st_case_194: -//line msg_parse.go:6539 + st_case_181: +//line msg_parse.go:6395 switch data[p] { case 9: - goto tr272 + goto tr256 case 32: - goto tr272 + goto tr256 } goto st0 - st195: + st182: p++ - st_case_195: - switch { - case data[p] > 90: - if 97 <= data[p] && data[p] <= 122 { - goto st196 - } - case data[p] >= 65: - goto st196 + st_case_182: + if data[p] == 10 { + goto st183 } goto st0 - st196: + st183: p++ - st_case_196: + st_case_183: switch data[p] { - case 43: - goto st196 - case 58: - goto st197 + case 9: + goto st184 + case 32: + goto st184 + } + goto st0 + st184: + p++ + st_case_184: + switch data[p] { + case 9: + goto st184 + case 32: + goto st184 + case 33: + goto tr238 + case 34: + goto st171 + case 37: + goto tr238 + case 39: + goto tr238 + case 93: + goto tr238 + case 126: + goto tr238 } switch { case data[p] < 48: - if 45 <= data[p] && data[p] <= 46 { - goto st196 + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr238 + } + case data[p] >= 42: + goto tr238 } - case data[p] > 57: + case data[p] > 58: switch { - case data[p] > 90: - if 97 <= data[p] && data[p] <= 122 { - goto st196 + case data[p] > 91: + if 95 <= data[p] && data[p] <= 122 { + goto tr238 } case data[p] >= 65: - goto st196 + goto tr238 } default: - goto st196 + goto tr238 } goto st0 - st197: +tr224: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st185 + st185: p++ - st_case_197: + st_case_185: +//line msg_parse.go:6473 + if data[p] == 10 { + goto st186 + } + goto st0 + st186: + p++ + st_case_186: switch data[p] { - case 33: - goto st198 - case 61: - goto st198 - case 93: - goto st198 - case 95: - goto st198 - case 126: - goto st198 + case 9: + goto st187 + case 32: + goto st187 } - switch { - case data[p] < 63: - if 36 <= data[p] && data[p] <= 59 { - goto st198 - } - case data[p] > 91: - if 97 <= data[p] && data[p] <= 122 { - goto st198 - } - default: - goto st198 + goto st0 + st187: + p++ + st_case_187: + switch data[p] { + case 9: + goto st187 + case 32: + goto st187 + case 44: + goto st156 + case 59: + goto st160 + case 61: + goto st164 } goto st0 - st198: + st188: p++ - st_case_198: + st_case_188: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6622,52 +6512,205 @@ tr284: } switch _widec { case 9: - goto tr288 + goto st189 case 32: - goto tr288 + goto st189 case 33: - goto st198 - case 44: - goto tr289 - case 59: - goto tr290 - case 61: - goto st198 - case 93: - goto st198 - case 95: - goto st198 + goto tr271 + case 34: + goto tr272 + case 37: + goto tr271 + case 39: + goto tr271 + case 60: + goto st190 case 126: - goto st198 - case 269: - goto tr291 + goto tr271 case 525: - goto tr292 + goto st210 } switch { - case _widec < 63: - if 36 <= _widec && _widec <= 58 { - goto st198 - } - case _widec > 91: - if 97 <= _widec && _widec <= 122 { - goto st198 - } - default: - goto st198 + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto tr271 + } + case _widec >= 42: + goto tr271 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto tr271 + } + case _widec >= 65: + goto tr271 + } + default: + goto tr271 + } + goto st0 +tr329: +//line sip.rl:215 + + addr.Display = string(buf[0:amt]) + + goto st189 + st189: + p++ + st_case_189: +//line msg_parse.go:6566 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st189 + case 32: + goto st189 + case 60: + goto st190 + case 525: + goto st210 + } + goto st0 +tr305: +//line sip.rl:219 +{ + end := p + for end > mark && whitespacec(data[end - 1]) { + end-- + } + addr.Display = string(data[mark:end]) +} + goto st190 +tr330: +//line sip.rl:215 + + addr.Display = string(buf[0:amt]) + + goto st190 + st190: + p++ + st_case_190: +//line msg_parse.go:6604 + switch { + case data[p] > 90: + if 97 <= data[p] && data[p] <= 122 { + goto tr275 + } + case data[p] >= 65: + goto tr275 + } + goto st0 +tr275: +//line sip.rl:62 + + mark = p + + goto st191 + st191: + p++ + st_case_191: +//line msg_parse.go:6623 + switch data[p] { + case 43: + goto st191 + case 58: + goto st192 + } + switch { + case data[p] < 48: + if 45 <= data[p] && data[p] <= 46 { + goto st191 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 97 <= data[p] && data[p] <= 122 { + goto st191 + } + case data[p] >= 65: + goto st191 + } + default: + goto st191 + } + goto st0 + st192: + p++ + st_case_192: + switch data[p] { + case 33: + goto st193 + case 61: + goto st193 + case 93: + goto st193 + case 95: + goto st193 + case 126: + goto st193 + } + switch { + case data[p] < 63: + if 36 <= data[p] && data[p] <= 59 { + goto st193 + } + case data[p] > 91: + if 97 <= data[p] && data[p] <= 122 { + goto st193 + } + default: + goto st193 + } + goto st0 + st193: + p++ + st_case_193: + switch data[p] { + case 33: + goto st193 + case 62: + goto tr279 + case 93: + goto st193 + case 95: + goto st193 + case 126: + goto st193 + } + switch { + case data[p] < 61: + if 36 <= data[p] && data[p] <= 59 { + goto st193 + } + case data[p] > 91: + if 97 <= data[p] && data[p] <= 122 { + goto st193 + } + default: + goto st193 } goto st0 -tr288: -//line sip.rl:230 +tr279: +//line sip.rl:227 addr.Uri, err = ParseURIBytes(data[mark:p]) if err != nil { return nil, err } - goto st199 - st199: + goto st194 + st194: p++ - st_case_199: -//line msg_parse.go:6671 + st_case_194: +//line msg_parse.go:6714 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6677,20 +6720,22 @@ tr288: } switch _widec { case 9: - goto st199 + goto st194 case 32: - goto st199 + goto st194 case 44: - goto st200 + goto st195 case 59: - goto st204 + goto st199 + case 269: + goto st203 case 525: - goto st208 + goto st204 } goto st0 - st200: + st195: p++ - st_case_200: + st_case_195: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6700,86 +6745,98 @@ tr288: } switch _widec { case 9: - goto st200 + goto st195 case 32: - goto st200 + goto st195 case 269: - goto tr297 + goto tr285 case 525: - goto st201 + goto st196 } switch { case _widec > 12: if 14 <= _widec { - goto tr297 + goto tr285 } default: - goto tr297 + goto tr285 } goto st0 -tr297: -//line sip.rl:242 +tr285: +//line sip.rl:239 *addrp = addr addrp = &addr.Next addr = nil -//line sip.rl:53 +//line sip.rl:54 p-- -//line sip.rl:198 +//line sip.rl:195 - {goto st222 } + {goto st256 } - goto st744 -tr301: -//line sip.rl:53 + goto st770 +tr289: +//line sip.rl:54 p-- -//line sip.rl:210 +//line sip.rl:207 - {goto st119 } + {goto st153 } - goto st744 - st744: + goto st770 +tr293: +//line sip.rl:239 + + *addrp = addr + addrp = &addr.Next + addr = nil + +//line sip.rl:152 + + {goto st280 } + + goto st770 + st770: p++ - st_case_744: -//line msg_parse.go:6752 + st_case_770: +//line msg_parse.go:6809 goto st0 - st201: + st196: p++ - st_case_201: + st_case_196: if data[p] == 10 { - goto st202 + goto st197 } goto st0 - st202: + st197: p++ - st_case_202: + st_case_197: switch data[p] { case 9: - goto st203 + goto st198 case 32: - goto st203 + goto st198 } goto st0 - st203: + st198: p++ - st_case_203: + st_case_198: switch data[p] { case 9: - goto st203 + goto st198 case 32: - goto st203 + goto st198 } - goto tr297 - st204: + goto tr285 + st199: p++ - st_case_204: + st_case_199: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6789,100 +6846,77 @@ tr301: } switch _widec { case 9: - goto st204 + goto st199 case 32: - goto st204 + goto st199 case 269: - goto tr301 + goto tr289 case 525: - goto st205 + goto st200 } switch { case _widec > 12: if 14 <= _widec { - goto tr301 + goto tr289 } default: - goto tr301 + goto tr289 } goto st0 - st205: + st200: p++ - st_case_205: + st_case_200: if data[p] == 10 { - goto st206 + goto st201 } goto st0 - st206: + st201: p++ - st_case_206: + st_case_201: switch data[p] { case 9: - goto st207 + goto st202 case 32: - goto st207 + goto st202 } goto st0 - st207: + st202: p++ - st_case_207: + st_case_202: switch data[p] { case 9: - goto st207 + goto st202 case 32: - goto st207 + goto st202 } - goto tr301 -tr292: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - - goto st208 - st208: + goto tr289 + st203: p++ - st_case_208: -//line msg_parse.go:6847 + st_case_203: if data[p] == 10 { - goto st209 + goto tr293 } goto st0 - st209: + st204: p++ - st_case_209: - switch data[p] { - case 9: - goto st210 - case 32: - goto st210 + st_case_204: + if data[p] == 10 { + goto st205 } goto st0 - st210: + st205: p++ - st_case_210: + st_case_205: switch data[p] { case 9: - goto st210 + goto st206 case 32: - goto st210 - case 44: - goto st200 - case 59: - goto st204 + goto st206 } goto st0 -tr289: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - - goto st211 - st211: + st206: p++ - st_case_211: -//line msg_parse.go:6886 + st_case_206: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -6892,209 +6926,106 @@ tr289: } switch _widec { case 9: - goto tr307 + goto st206 case 32: - goto tr307 - case 33: - goto tr308 + goto st206 case 44: - goto tr289 + goto st195 case 59: - goto tr309 - case 60: - goto tr297 - case 62: - goto tr297 - case 92: - goto tr297 - case 94: - goto tr297 - case 96: - goto tr297 - case 126: - goto tr308 + goto st199 case 269: - goto tr310 + goto st203 case 525: - goto tr311 - } - switch { - case _widec < 14: - if _widec <= 12 { - goto tr297 - } - case _widec > 35: - switch { - case _widec > 122: - if 123 <= _widec { - goto tr297 - } - case _widec >= 36: - goto tr308 - } - default: - goto tr297 + goto st207 } goto st0 -tr307: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - - goto st212 - st212: + st207: p++ - st_case_212: -//line msg_parse.go:6950 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } + st_case_207: + if data[p] == 10 { + goto st208 } - switch _widec { + goto st0 + st208: + p++ + st_case_208: + switch data[p] { case 9: - goto st212 + goto st209 case 32: - goto st212 - case 44: - goto st200 - case 59: - goto tr313 - case 269: - goto tr297 - case 525: - goto st213 - } - switch { - case _widec > 12: - if 14 <= _widec { - goto tr297 - } - default: - goto tr297 + goto st209 } goto st0 -tr313: -//line sip.rl:242 - - *addrp = addr - addrp = &addr.Next - addr = nil - -//line sip.rl:53 - - p-- - - -//line sip.rl:198 - - {goto st222 } - - goto st745 - st745: + st209: p++ - st_case_745: -//line msg_parse.go:7001 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { + st_case_209: + switch data[p] { case 9: - goto st204 + goto st209 case 32: - goto st204 - case 269: - goto tr301 - case 525: - goto st205 - } - switch { - case _widec > 12: - if 14 <= _widec { - goto tr301 - } - default: - goto tr301 + goto st209 + case 44: + goto st195 + case 59: + goto st199 } goto st0 -tr311: -//line sip.rl:230 +tr310: +//line sip.rl:219 +{ + end := p + for end > mark && whitespacec(data[end - 1]) { + end-- + } + addr.Display = string(data[mark:end]) +} + goto st210 +tr331: +//line sip.rl:215 - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } + addr.Display = string(buf[0:amt]) - goto st213 - st213: + goto st210 + st210: p++ - st_case_213: -//line msg_parse.go:7038 + st_case_210: +//line msg_parse.go:6993 if data[p] == 10 { - goto st214 + goto st211 } goto st0 - st214: + st211: p++ - st_case_214: + st_case_211: switch data[p] { case 9: - goto st215 + goto st212 case 32: - goto st215 + goto st212 } goto st0 - st215: + st212: p++ - st_case_215: + st_case_212: switch data[p] { case 9: - goto st215 + goto st212 case 32: - goto st215 - case 44: - goto st200 - case 59: - goto tr313 + goto st212 + case 60: + goto st190 } - goto tr297 -tr308: -//line sip.rl:242 - - *addrp = addr - addrp = &addr.Next - addr = nil - -//line sip.rl:53 - - p-- - - -//line sip.rl:198 - - {goto st222 } - - goto st746 -tr318: -//line sip.rl:53 - - p-- - - -//line sip.rl:210 + goto st0 +tr271: +//line sip.rl:62 - {goto st119 } + mark = p - goto st746 - st746: + goto st213 + st213: p++ - st_case_746: -//line msg_parse.go:7098 + st_case_213: +//line msg_parse.go:7029 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7104,52 +7035,57 @@ tr318: } switch _widec { case 9: - goto tr288 + goto st214 case 32: - goto tr288 + goto st214 case 33: - goto st198 - case 44: - goto tr289 - case 59: - goto tr290 - case 61: - goto st198 - case 93: - goto st198 - case 95: - goto st198 + goto st213 + case 37: + goto st213 + case 39: + goto st213 case 126: - goto st198 - case 269: - goto tr291 + goto st213 case 525: - goto tr292 + goto st215 } switch { - case _widec < 63: - if 36 <= _widec && _widec <= 58 { - goto st198 + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st213 + } + case _widec >= 42: + goto st213 } - case _widec > 91: - if 97 <= _widec && _widec <= 122 { - goto st198 + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st213 + } + case _widec >= 65: + goto st213 } default: - goto st198 + goto st213 } goto st0 -tr290: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - - goto st216 - st216: +tr304: +//line sip.rl:219 +{ + end := p + for end > mark && whitespacec(data[end - 1]) { + end-- + } + addr.Display = string(data[mark:end]) +} + goto st214 + st214: p++ - st_case_216: -//line msg_parse.go:7153 + st_case_214: +//line msg_parse.go:7089 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7159,61 +7095,87 @@ tr290: } switch _widec { case 9: - goto tr317 + goto tr304 case 32: - goto tr317 + goto tr304 case 33: - goto tr318 - case 44: - goto tr319 - case 59: - goto tr290 + goto st213 + case 37: + goto st213 + case 39: + goto st213 case 60: - goto tr301 - case 62: - goto tr301 - case 92: - goto tr301 - case 94: - goto tr301 - case 96: - goto tr301 + goto tr305 case 126: - goto tr318 - case 269: - goto tr320 + goto st213 case 525: - goto tr321 + goto tr306 } switch { - case _widec < 14: - if _widec <= 12 { - goto tr301 - } - case _widec > 35: + case _widec < 48: switch { - case _widec > 122: - if 123 <= _widec { - goto tr301 + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st213 } - case _widec >= 36: - goto tr318 + case _widec >= 42: + goto st213 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st213 + } + case _widec >= 65: + goto st213 } default: - goto tr301 + goto st213 } goto st0 -tr317: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - +tr306: +//line sip.rl:219 +{ + end := p + for end > mark && whitespacec(data[end - 1]) { + end-- + } + addr.Display = string(data[mark:end]) +} + goto st215 + st215: + p++ + st_case_215: +//line msg_parse.go:7151 + if data[p] == 10 { + goto st216 + } + goto st0 + st216: + p++ + st_case_216: + switch data[p] { + case 9: + goto st217 + case 32: + goto st217 + } + goto st0 +tr309: +//line sip.rl:219 +{ + end := p + for end > mark && whitespacec(data[end - 1]) { + end-- + } + addr.Display = string(data[mark:end]) +} goto st217 st217: p++ st_case_217: -//line msg_parse.go:7217 +//line msg_parse.go:7179 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7223,42 +7185,55 @@ tr317: } switch _widec { case 9: - goto st217 + goto tr309 case 32: - goto st217 - case 44: - goto tr323 - case 59: - goto st204 - case 269: - goto tr301 + goto tr309 + case 33: + goto st213 + case 37: + goto st213 + case 39: + goto st213 + case 60: + goto tr305 + case 126: + goto st213 case 525: - goto st218 + goto tr310 } switch { - case _widec > 12: - if 14 <= _widec { - goto tr301 + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st213 + } + case _widec >= 42: + goto st213 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st213 + } + case _widec >= 65: + goto st213 } default: - goto tr301 + goto st213 } goto st0 -tr323: -//line sip.rl:53 - - p-- - - -//line sip.rl:210 +tr272: +//line sip.rl:70 - {goto st119 } + amt = 0 - goto st747 - st747: + goto st218 + st218: p++ - st_case_747: -//line msg_parse.go:7262 + st_case_218: +//line msg_parse.go:7237 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7268,82 +7243,63 @@ tr323: } switch _widec { case 9: - goto st200 - case 32: - goto st200 - case 269: - goto tr297 + goto tr311 + case 34: + goto tr312 + case 92: + goto tr313 case 525: - goto st201 + goto tr319 } switch { - case _widec > 12: - if 14 <= _widec { - goto tr297 + case _widec < 224: + switch { + case _widec > 126: + if 192 <= _widec && _widec <= 223 { + goto tr314 + } + case _widec >= 32: + goto tr311 + } + case _widec > 239: + switch { + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto tr316 + } + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto tr318 + } + default: + goto tr317 } default: - goto tr297 - } - goto st0 -tr321: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - - goto st218 - st218: - p++ - st_case_218: -//line msg_parse.go:7299 - if data[p] == 10 { - goto st219 - } - goto st0 - st219: - p++ - st_case_219: - switch data[p] { - case 9: - goto st220 - case 32: - goto st220 + goto tr315 } goto st0 - st220: - p++ - st_case_220: - switch data[p] { - case 9: - goto st220 - case 32: - goto st220 - case 44: - goto tr323 - case 59: - goto st204 - } - goto tr301 -tr319: -//line sip.rl:230 - - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } +tr311: +//line sip.rl:70 -//line sip.rl:53 + amt = 0 - p-- +//line sip.rl:74 + buf[amt] = data[p] + amt++ -//line sip.rl:210 + goto st219 +tr320: +//line sip.rl:74 - {goto st119 } + buf[amt] = data[p] + amt++ - goto st748 - st748: + goto st219 + st219: p++ - st_case_748: -//line msg_parse.go:7347 + st_case_219: +//line msg_parse.go:7303 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7353,76 +7309,51 @@ tr319: } switch _widec { case 9: - goto tr307 - case 32: - goto tr307 - case 33: - goto tr308 - case 44: - goto tr289 - case 59: - goto tr309 - case 60: - goto tr297 - case 62: - goto tr297 + goto tr320 + case 34: + goto st220 case 92: - goto tr297 - case 94: - goto tr297 - case 96: - goto tr297 - case 126: - goto tr308 - case 269: - goto tr310 + goto st221 case 525: - goto tr311 + goto tr328 } switch { - case _widec < 14: - if _widec <= 12 { - goto tr297 + case _widec < 224: + switch { + case _widec > 126: + if 192 <= _widec && _widec <= 223 { + goto tr323 + } + case _widec >= 32: + goto tr320 } - case _widec > 35: + case _widec > 239: switch { - case _widec > 122: - if 123 <= _widec { - goto tr297 + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto tr325 } - case _widec >= 36: - goto tr308 + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto tr327 + } + default: + goto tr326 } default: - goto tr297 + goto tr324 } goto st0 -tr309: -//line sip.rl:230 +tr312: +//line sip.rl:70 - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } - -//line sip.rl:242 - - *addrp = addr - addrp = &addr.Next - addr = nil - -//line sip.rl:53 - - p-- - - -//line sip.rl:198 - - {goto st222 } + amt = 0 - goto st749 - st749: + goto st220 + st220: p++ - st_case_749: -//line msg_parse.go:7426 + st_case_220: +//line msg_parse.go:7357 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7432,225 +7363,282 @@ tr309: } switch _widec { case 9: - goto tr317 + goto tr329 case 32: - goto tr317 - case 33: - goto tr318 - case 44: - goto tr319 - case 59: - goto tr290 + goto tr329 case 60: - goto tr301 - case 62: - goto tr301 - case 92: - goto tr301 - case 94: - goto tr301 - case 96: - goto tr301 - case 126: - goto tr318 - case 269: - goto tr320 + goto tr330 case 525: - goto tr321 - } - switch { - case _widec < 14: - if _widec <= 12 { - goto tr301 - } - case _widec > 35: - switch { - case _widec > 122: - if 123 <= _widec { - goto tr301 - } - case _widec >= 36: - goto tr318 - } - default: - goto tr301 + goto tr331 } goto st0 -tr310: -//line sip.rl:230 +tr313: +//line sip.rl:70 - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } + amt = 0 + + goto st221 + st221: + p++ + st_case_221: +//line msg_parse.go:7385 + switch { + case data[p] < 11: + if data[p] <= 9 { + goto tr320 + } + case data[p] > 12: + if 14 <= data[p] && data[p] <= 127 { + goto tr320 + } + default: + goto tr320 + } + goto st0 +tr314: +//line sip.rl:70 -//line sip.rl:242 + amt = 0 - *addrp = addr - addrp = &addr.Next - addr = nil +//line sip.rl:74 -//line sip.rl:53 + buf[amt] = data[p] + amt++ - p-- + goto st222 +tr323: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st222 + st222: + p++ + st_case_222: +//line msg_parse.go:7420 + if 128 <= data[p] && data[p] <= 191 { + goto tr320 + } + goto st0 +tr315: +//line sip.rl:70 + amt = 0 -//line sip.rl:198 +//line sip.rl:74 - {goto st222 } + buf[amt] = data[p] + amt++ - goto st750 -tr320: -//line sip.rl:230 + goto st223 +tr324: +//line sip.rl:74 - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } + buf[amt] = data[p] + amt++ + + goto st223 + st223: + p++ + st_case_223: +//line msg_parse.go:7446 + if 128 <= data[p] && data[p] <= 191 { + goto tr323 + } + goto st0 +tr316: +//line sip.rl:70 -//line sip.rl:53 + amt = 0 - p-- +//line sip.rl:74 + buf[amt] = data[p] + amt++ -//line sip.rl:210 + goto st224 +tr325: +//line sip.rl:74 - {goto st119 } + buf[amt] = data[p] + amt++ - goto st750 - st750: + goto st224 + st224: p++ - st_case_750: -//line msg_parse.go:7521 - if data[p] == 10 { - goto tr327 + st_case_224: +//line msg_parse.go:7472 + if 128 <= data[p] && data[p] <= 191 { + goto tr324 + } + goto st0 +tr317: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st225 +tr326: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st225 + st225: + p++ + st_case_225: +//line msg_parse.go:7498 + if 128 <= data[p] && data[p] <= 191 { + goto tr325 } goto st0 +tr318: +//line sip.rl:70 + + amt = 0 + +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st226 tr327: -//line sip.rl:159 +//line sip.rl:74 - {goto st246 } + buf[amt] = data[p] + amt++ - goto st751 - st751: + goto st226 + st226: p++ - st_case_751: -//line msg_parse.go:7535 + st_case_226: +//line msg_parse.go:7524 + if 128 <= data[p] && data[p] <= 191 { + goto tr326 + } goto st0 -tr291: -//line sip.rl:230 +tr319: +//line sip.rl:70 - addr.Uri, err = ParseURIBytes(data[mark:p]) - if err != nil { return nil, err } + amt = 0 - goto st221 - st221: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st227 +tr328: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st227 + st227: p++ - st_case_221: -//line msg_parse.go:7547 + st_case_227: +//line msg_parse.go:7550 if data[p] == 10 { - goto tr327 + goto tr332 } goto st0 - st222: +tr332: +//line sip.rl:74 + + buf[amt] = data[p] + amt++ + + goto st228 + st228: p++ - st_case_222: + st_case_228: +//line msg_parse.go:7565 switch data[p] { - case 33: - goto tr328 - case 34: - goto tr329 - case 37: - goto tr328 - case 39: - goto tr328 - case 60: - goto tr329 - case 126: - goto tr328 + case 9: + goto tr320 + case 32: + goto tr320 + } + goto st0 + st229: + p++ + st_case_229: + switch { + case data[p] > 90: + if 97 <= data[p] && data[p] <= 122 { + goto st230 + } + case data[p] >= 65: + goto st230 + } + goto st0 + st230: + p++ + st_case_230: + switch data[p] { + case 43: + goto st230 + case 58: + goto st231 } switch { case data[p] < 48: - switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto tr328 - } - case data[p] >= 42: - goto tr328 + if 45 <= data[p] && data[p] <= 46 { + goto st230 } case data[p] > 57: switch { - case data[p] < 95: - if 65 <= data[p] && data[p] <= 90 { - goto tr330 - } - case data[p] > 96: + case data[p] > 90: if 97 <= data[p] && data[p] <= 122 { - goto tr330 + goto st230 } - default: - goto tr328 + case data[p] >= 65: + goto st230 } default: - goto tr328 + goto st230 } goto st0 -tr328: -//line sip.rl:61 - - mark = p - - goto st223 - st223: + st231: p++ - st_case_223: -//line msg_parse.go:7605 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st224 - case 32: - goto st224 + st_case_231: + switch data[p] { case 33: - goto st223 - case 37: - goto st223 - case 39: - goto st223 + goto st232 + case 61: + goto st232 + case 93: + goto st232 + case 95: + goto st232 case 126: - goto st223 - case 525: - goto st225 + goto st232 } switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto st223 - } - case _widec >= 42: - goto st223 + case data[p] < 63: + if 36 <= data[p] && data[p] <= 59 { + goto st232 } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st223 - } - case _widec >= 65: - goto st223 + case data[p] > 91: + if 97 <= data[p] && data[p] <= 122 { + goto st232 } default: - goto st223 + goto st232 } goto st0 - st224: + st232: p++ - st_case_224: + st_case_232: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7660,164 +7648,164 @@ tr328: } switch _widec { case 9: - goto st224 + goto tr336 case 32: - goto st224 + goto tr336 case 33: - goto st223 - case 37: - goto st223 - case 39: - goto st223 - case 60: - goto tr334 + goto st232 + case 44: + goto tr337 + case 59: + goto tr338 + case 61: + goto st232 + case 93: + goto st232 + case 95: + goto st232 case 126: - goto st223 + goto st232 + case 269: + goto tr339 case 525: - goto st225 + goto tr340 } switch { - case _widec < 48: - switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto st223 - } - case _widec >= 42: - goto st223 + case _widec < 63: + if 36 <= _widec && _widec <= 58 { + goto st232 } - case _widec > 57: - switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto st223 - } - case _widec >= 65: - goto st223 + case _widec > 91: + if 97 <= _widec && _widec <= 122 { + goto st232 } default: - goto st223 + goto st232 } goto st0 -tr329: -//line sip.rl:214 - - addr = new(Addr) - -//line sip.rl:53 - - p-- - - -//line sip.rl:206 - - {goto st154 } +tr336: +//line sip.rl:227 - goto st752 -tr334: -//line sip.rl:214 - - addr = new(Addr) + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } -//line sip.rl:65 + goto st233 + st233: + p++ + st_case_233: +//line msg_parse.go:7697 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st233 + case 32: + goto st233 + case 44: + goto st234 + case 59: + goto st238 + case 525: + goto st242 + } + goto st0 + st234: + p++ + st_case_234: + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st234 + case 32: + goto st234 + case 269: + goto tr345 + case 525: + goto st235 + } + switch { + case _widec > 12: + if 14 <= _widec { + goto tr345 + } + default: + goto tr345 + } + goto st0 +tr345: +//line sip.rl:239 - p = ( mark) - 1 + *addrp = addr + addrp = &addr.Next + addr = nil +//line sip.rl:54 -//line sip.rl:206 + p-- - {goto st154 } - goto st752 -tr338: -//line sip.rl:214 +//line sip.rl:195 - addr = new(Addr) + {goto st256 } -//line sip.rl:65 + goto st771 +tr349: +//line sip.rl:54 - p = ( mark) - 1 + p-- -//line sip.rl:202 +//line sip.rl:207 - {goto st195 } + {goto st153 } - goto st752 - st752: + goto st771 + st771: p++ - st_case_752: -//line msg_parse.go:7751 + st_case_771: +//line msg_parse.go:7778 goto st0 - st225: + st235: p++ - st_case_225: + st_case_235: if data[p] == 10 { - goto st226 + goto st236 } goto st0 - st226: + st236: p++ - st_case_226: + st_case_236: switch data[p] { case 9: - goto st227 + goto st237 case 32: - goto st227 + goto st237 } goto st0 - st227: + st237: p++ - st_case_227: + st_case_237: switch data[p] { case 9: - goto st227 + goto st237 case 32: - goto st227 - case 33: - goto st223 - case 37: - goto st223 - case 39: - goto st223 - case 60: - goto tr334 - case 126: - goto st223 - } - switch { - case data[p] < 48: - switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto st223 - } - case data[p] >= 42: - goto st223 - } - case data[p] > 57: - switch { - case data[p] > 90: - if 95 <= data[p] && data[p] <= 122 { - goto st223 - } - case data[p] >= 65: - goto st223 - } - default: - goto st223 + goto st237 } - goto st0 -tr330: -//line sip.rl:61 - - mark = p - - goto st228 - st228: + goto tr345 + st238: p++ - st_case_228: -//line msg_parse.go:7821 + st_case_238: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7827,52 +7815,100 @@ tr330: } switch _widec { case 9: - goto st224 + goto st238 case 32: - goto st224 - case 33: - goto st223 - case 37: - goto st223 - case 39: - goto st223 - case 42: - goto st223 - case 43: - goto st228 - case 58: - goto tr338 - case 126: - goto st223 + goto st238 + case 269: + goto tr349 case 525: - goto st225 + goto st239 } switch { - case _widec < 65: - switch { - case _widec > 46: - if 48 <= _widec && _widec <= 57 { - goto st228 - } - case _widec >= 45: - goto st228 - } - case _widec > 90: - switch { - case _widec > 96: - if 97 <= _widec && _widec <= 122 { - goto st228 - } - case _widec >= 95: - goto st223 + case _widec > 12: + if 14 <= _widec { + goto tr349 } default: - goto st228 + goto tr349 } goto st0 - st229: + st239: p++ - st_case_229: + st_case_239: + if data[p] == 10 { + goto st240 + } + goto st0 + st240: + p++ + st_case_240: + switch data[p] { + case 9: + goto st241 + case 32: + goto st241 + } + goto st0 + st241: + p++ + st_case_241: + switch data[p] { + case 9: + goto st241 + case 32: + goto st241 + } + goto tr349 +tr340: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + + goto st242 + st242: + p++ + st_case_242: +//line msg_parse.go:7873 + if data[p] == 10 { + goto st243 + } + goto st0 + st243: + p++ + st_case_243: + switch data[p] { + case 9: + goto st244 + case 32: + goto st244 + } + goto st0 + st244: + p++ + st_case_244: + switch data[p] { + case 9: + goto st244 + case 32: + goto st244 + case 44: + goto st234 + case 59: + goto st238 + } + goto st0 +tr337: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + + goto st245 + st245: + p++ + st_case_245: +//line msg_parse.go:7912 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7882,49 +7918,61 @@ tr330: } switch _widec { case 9: - goto tr339 - case 269: + goto tr355 + case 32: + goto tr355 + case 33: + goto tr356 + case 44: + goto tr337 + case 59: + goto tr357 + case 60: + goto tr345 + case 62: + goto tr345 + case 92: + goto tr345 + case 94: goto tr345 + case 96: + goto tr345 + case 126: + goto tr356 + case 269: + goto tr358 case 525: - goto tr346 + goto tr359 } switch { - case _widec < 224: - switch { - case _widec > 127: - if 192 <= _widec && _widec <= 223 { - goto tr340 - } - case _widec >= 32: - goto tr339 + case _widec < 14: + if _widec <= 12 { + goto tr345 } - case _widec > 239: + case _widec > 35: switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto tr342 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto tr344 + case _widec > 122: + if 123 <= _widec { + goto tr345 } - default: - goto tr343 + case _widec >= 36: + goto tr356 } default: - goto tr341 + goto tr345 } goto st0 -tr339: -//line sip.rl:61 +tr355: +//line sip.rl:227 - mark = p + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } - goto st230 - st230: + goto st246 + st246: p++ - st_case_230: -//line msg_parse.go:7928 + st_case_246: +//line msg_parse.go:7976 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -7934,277 +7982,309 @@ tr339: } switch _widec { case 9: - goto st230 + goto st246 + case 32: + goto st246 + case 44: + goto st234 + case 59: + goto tr361 case 269: - goto st236 + goto tr345 case 525: - goto st237 + goto st247 } switch { - case _widec < 224: - switch { - case _widec > 127: - if 192 <= _widec && _widec <= 223 { - goto st231 - } - case _widec >= 32: - goto st230 - } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto st233 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto st235 - } - default: - goto st234 + case _widec > 12: + if 14 <= _widec { + goto tr345 } default: - goto st232 + goto tr345 } goto st0 -tr340: -//line sip.rl:61 +tr361: +//line sip.rl:239 - mark = p + *addrp = addr + addrp = &addr.Next + addr = nil - goto st231 - st231: - p++ - st_case_231: -//line msg_parse.go:7980 - if 128 <= data[p] && data[p] <= 191 { - goto st230 - } - goto st0 -tr341: -//line sip.rl:61 +//line sip.rl:54 - mark = p + p-- - goto st232 - st232: + +//line sip.rl:195 + + {goto st256 } + + goto st772 + st772: p++ - st_case_232: -//line msg_parse.go:7994 - if 128 <= data[p] && data[p] <= 191 { - goto st231 + st_case_772: +//line msg_parse.go:8027 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st238 + case 32: + goto st238 + case 269: + goto tr349 + case 525: + goto st239 + } + switch { + case _widec > 12: + if 14 <= _widec { + goto tr349 + } + default: + goto tr349 } goto st0 -tr342: -//line sip.rl:61 +tr359: +//line sip.rl:227 - mark = p + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } - goto st233 - st233: + goto st247 + st247: p++ - st_case_233: -//line msg_parse.go:8008 - if 128 <= data[p] && data[p] <= 191 { - goto st232 + st_case_247: +//line msg_parse.go:8064 + if data[p] == 10 { + goto st248 } goto st0 -tr343: -//line sip.rl:61 - - mark = p - - goto st234 - st234: + st248: p++ - st_case_234: -//line msg_parse.go:8022 - if 128 <= data[p] && data[p] <= 191 { - goto st233 + st_case_248: + switch data[p] { + case 9: + goto st249 + case 32: + goto st249 } goto st0 -tr344: -//line sip.rl:61 - - mark = p - - goto st235 - st235: + st249: p++ - st_case_235: -//line msg_parse.go:8036 - if 128 <= data[p] && data[p] <= 191 { + st_case_249: + switch data[p] { + case 9: + goto st249 + case 32: + goto st249 + case 44: goto st234 + case 59: + goto tr361 } - goto st0 -tr345: -//line sip.rl:61 + goto tr345 +tr356: +//line sip.rl:239 - mark = p + *addrp = addr + addrp = &addr.Next + addr = nil - goto st236 - st236: - p++ - st_case_236: -//line msg_parse.go:8050 - if data[p] == 10 { - goto tr355 - } - goto st0 -tr355: -//line sip.rl:186 -{ - b := data[mark:p - 1] - if value != nil { - *value = string(b) - } else { - if msg.Headers == nil { - msg.Headers = Headers{} - } - msg.Headers[name] = string(b) - } -} -//line sip.rl:159 +//line sip.rl:54 - {goto st246 } + p-- - goto st753 - st753: - p++ - st_case_753: -//line msg_parse.go:8076 - goto st0 -tr346: -//line sip.rl:61 - mark = p +//line sip.rl:195 - goto st237 - st237: + {goto st256 } + + goto st773 +tr366: +//line sip.rl:54 + + p-- + + +//line sip.rl:207 + + {goto st153 } + + goto st773 + st773: p++ - st_case_237: -//line msg_parse.go:8087 - if data[p] == 10 { - goto st238 + st_case_773: +//line msg_parse.go:8124 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } } - goto st0 - st238: - p++ - st_case_238: - switch data[p] { + switch _widec { case 9: - goto st230 + goto tr336 case 32: - goto st230 - } - goto st0 - st239: - p++ - st_case_239: - switch data[p] { + goto tr336 case 33: - goto st240 - case 37: - goto st240 - case 39: - goto st240 + goto st232 + case 44: + goto tr337 + case 59: + goto tr338 + case 61: + goto st232 + case 93: + goto st232 + case 95: + goto st232 case 126: - goto st240 + goto st232 + case 269: + goto tr339 + case 525: + goto tr340 } switch { - case data[p] < 48: - switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto st240 - } - case data[p] >= 42: - goto st240 + case _widec < 63: + if 36 <= _widec && _widec <= 58 { + goto st232 } - case data[p] > 57: - switch { - case data[p] > 90: - if 95 <= data[p] && data[p] <= 122 { - goto st240 - } - case data[p] >= 65: - goto st240 + case _widec > 91: + if 97 <= _widec && _widec <= 122 { + goto st232 } default: - goto st240 + goto st232 } goto st0 - st240: +tr338: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + + goto st250 + st250: p++ - st_case_240: - switch data[p] { - case 9: - goto tr358 - case 32: - goto tr358 - case 33: - goto st240 - case 37: - goto st240 - case 39: - goto st240 - case 58: - goto tr359 + st_case_250: +//line msg_parse.go:8179 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto tr365 + case 32: + goto tr365 + case 33: + goto tr366 + case 44: + goto tr367 + case 59: + goto tr338 + case 60: + goto tr349 + case 62: + goto tr349 + case 92: + goto tr349 + case 94: + goto tr349 + case 96: + goto tr349 case 126: - goto st240 + goto tr366 + case 269: + goto tr368 + case 525: + goto tr369 } switch { - case data[p] < 48: - switch { - case data[p] > 43: - if 45 <= data[p] && data[p] <= 46 { - goto st240 - } - case data[p] >= 42: - goto st240 + case _widec < 14: + if _widec <= 12 { + goto tr349 } - case data[p] > 57: + case _widec > 35: switch { - case data[p] > 90: - if 95 <= data[p] && data[p] <= 122 { - goto st240 + case _widec > 122: + if 123 <= _widec { + goto tr349 } - case data[p] >= 65: - goto st240 + case _widec >= 36: + goto tr366 } default: - goto st240 + goto tr349 } goto st0 -tr358: -//line sip.rl:182 +tr365: +//line sip.rl:227 - name = string(data[mark:p]) + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } - goto st241 - st241: + goto st251 + st251: p++ - st_case_241: -//line msg_parse.go:8189 - switch data[p] { + st_case_251: +//line msg_parse.go:8243 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: - goto st241 + goto st251 case 32: - goto st241 - case 58: - goto st242 + goto st251 + case 44: + goto tr371 + case 59: + goto st238 + case 269: + goto tr349 + case 525: + goto st252 + } + switch { + case _widec > 12: + if 14 <= _widec { + goto tr349 + } + default: + goto tr349 } goto st0 -tr359: -//line sip.rl:182 +tr371: +//line sip.rl:54 - name = string(data[mark:p]) + p-- - goto st242 - st242: + +//line sip.rl:207 + + {goto st153 } + + goto st774 + st774: p++ - st_case_242: -//line msg_parse.go:8208 + st_case_774: +//line msg_parse.go:8288 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -8214,71 +8294,82 @@ tr359: } switch _widec { case 9: - goto st242 + goto st234 case 32: - goto st242 + goto st234 case 269: - goto tr362 + goto tr345 case 525: - goto st243 + goto st235 } switch { case _widec > 12: if 14 <= _widec { - goto tr362 + goto tr345 } default: - goto tr362 + goto tr345 } goto st0 -tr362: -//line sip.rl:545 -value=nil -//line sip.rl:53 - - p-- +tr369: +//line sip.rl:227 + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } -//line sip.rl:163 - - {goto st229 } - - goto st754 - st754: - p++ - st_case_754: -//line msg_parse.go:8251 - goto st0 - st243: + goto st252 + st252: p++ - st_case_243: + st_case_252: +//line msg_parse.go:8325 if data[p] == 10 { - goto st244 + goto st253 } goto st0 - st244: + st253: p++ - st_case_244: + st_case_253: switch data[p] { case 9: - goto st245 + goto st254 case 32: - goto st245 + goto st254 } goto st0 - st245: + st254: p++ - st_case_245: + st_case_254: switch data[p] { case 9: - goto st245 + goto st254 case 32: - goto st245 + goto st254 + case 44: + goto tr371 + case 59: + goto st238 } - goto tr362 - st246: + goto tr349 +tr367: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + +//line sip.rl:54 + + p-- + + +//line sip.rl:207 + + {goto st153 } + + goto st775 + st775: p++ - st_case_246: + st_case_775: +//line msg_parse.go:8373 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -8287,471 +8378,859 @@ value=nil } } switch _widec { + case 9: + goto tr355 + case 32: + goto tr355 case 33: - goto tr366 - case 37: - goto tr366 - case 39: - goto tr366 + goto tr356 + case 44: + goto tr337 + case 59: + goto tr357 + case 60: + goto tr345 + case 62: + goto tr345 + case 92: + goto tr345 + case 94: + goto tr345 + case 96: + goto tr345 case 126: - goto tr366 + goto tr356 case 269: - goto st738 + goto tr358 + case 525: + goto tr359 } switch { - case _widec < 48: + case _widec < 14: + if _widec <= 12 { + goto tr345 + } + case _widec > 35: switch { - case _widec > 43: - if 45 <= _widec && _widec <= 46 { - goto tr366 + case _widec > 122: + if 123 <= _widec { + goto tr345 } - case _widec >= 42: - goto tr366 + case _widec >= 36: + goto tr356 } - case _widec > 57: + default: + goto tr345 + } + goto st0 +tr357: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + +//line sip.rl:239 + + *addrp = addr + addrp = &addr.Next + addr = nil + +//line sip.rl:54 + + p-- + + +//line sip.rl:195 + + {goto st256 } + + goto st776 + st776: + p++ + st_case_776: +//line msg_parse.go:8452 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto tr365 + case 32: + goto tr365 + case 33: + goto tr366 + case 44: + goto tr367 + case 59: + goto tr338 + case 60: + goto tr349 + case 62: + goto tr349 + case 92: + goto tr349 + case 94: + goto tr349 + case 96: + goto tr349 + case 126: + goto tr366 + case 269: + goto tr368 + case 525: + goto tr369 + } + switch { + case _widec < 14: + if _widec <= 12 { + goto tr349 + } + case _widec > 35: switch { - case _widec > 90: - if 95 <= _widec && _widec <= 122 { - goto tr366 + case _widec > 122: + if 123 <= _widec { + goto tr349 } - case _widec >= 65: + case _widec >= 36: goto tr366 } default: - goto tr366 + goto tr349 } goto st0 -tr366: -//line sip.rl:61 +tr358: +//line sip.rl:227 - mark = p + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + +//line sip.rl:239 -//line sip.rl:53 + *addrp = addr + addrp = &addr.Next + addr = nil + +//line sip.rl:54 p-- - goto st247 - st247: - p++ - st_case_247: -//line msg_parse.go:8339 +//line sip.rl:195 + + {goto st256 } + + goto st777 +tr368: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + +//line sip.rl:54 + + p-- + + +//line sip.rl:207 + + {goto st153 } + + goto st777 + st777: + p++ + st_case_777: +//line msg_parse.go:8547 + if data[p] == 10 { + goto tr375 + } + goto st0 +tr375: +//line sip.rl:152 + + {goto st280 } + + goto st778 + st778: + p++ + st_case_778: +//line msg_parse.go:8561 + goto st0 +tr339: +//line sip.rl:227 + + addr.Uri, err = ParseURIBytes(data[mark:p]) + if err != nil { return nil, err } + + goto st255 + st255: + p++ + st_case_255: +//line msg_parse.go:8573 + if data[p] == 10 { + goto tr375 + } + goto st0 + st256: + p++ + st_case_256: switch data[p] { - case 65: - goto st248 - case 66: - goto st329 - case 67: - goto st330 - case 68: - goto st433 - case 69: - goto st437 - case 70: - goto st463 - case 73: - goto st467 - case 75: - goto st478 - case 76: - goto st479 - case 77: - goto st486 - case 79: - goto st530 - case 80: - goto st542 - case 82: - goto st600 - case 83: - goto st660 - case 84: - goto st678 - case 85: - goto st688 - case 86: - goto st708 - case 87: - goto st716 - case 97: - goto st248 - case 98: - goto st329 - case 99: - goto st330 - case 100: - goto st433 - case 101: - goto st437 - case 102: - goto st463 - case 105: - goto st467 - case 107: - goto st478 - case 108: - goto st479 - case 109: - goto st486 - case 111: - goto st530 - case 112: - goto st542 - case 114: - goto st600 - case 115: - goto st660 - case 116: - goto st678 - case 117: - goto st688 - case 118: - goto st708 - case 119: - goto st716 + case 33: + goto tr376 + case 34: + goto tr377 + case 37: + goto tr376 + case 39: + goto tr376 + case 60: + goto tr377 + case 126: + goto tr376 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto tr376 + } + case data[p] >= 42: + goto tr376 + } + case data[p] > 57: + switch { + case data[p] < 95: + if 65 <= data[p] && data[p] <= 90 { + goto tr378 + } + case data[p] > 96: + if 97 <= data[p] && data[p] <= 122 { + goto tr378 + } + default: + goto tr376 + } + default: + goto tr376 + } + goto st0 +tr376: +//line sip.rl:62 + + mark = p + + goto st257 + st257: + p++ + st_case_257: +//line msg_parse.go:8631 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st258 + case 32: + goto st258 + case 33: + goto st257 + case 37: + goto st257 + case 39: + goto st257 + case 126: + goto st257 + case 525: + goto st259 + } + switch { + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st257 + } + case _widec >= 42: + goto st257 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st257 + } + case _widec >= 65: + goto st257 + } + default: + goto st257 + } + goto st0 + st258: + p++ + st_case_258: + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st258 + case 32: + goto st258 + case 33: + goto st257 + case 37: + goto st257 + case 39: + goto st257 + case 60: + goto tr382 + case 126: + goto st257 + case 525: + goto st259 + } + switch { + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto st257 + } + case _widec >= 42: + goto st257 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto st257 + } + case _widec >= 65: + goto st257 + } + default: + goto st257 + } + goto st0 +tr377: +//line sip.rl:211 + + addr = new(Addr) + +//line sip.rl:54 + + p-- + + +//line sip.rl:203 + + {goto st188 } + + goto st779 +tr382: +//line sip.rl:211 + + addr = new(Addr) + +//line sip.rl:66 + + p = ( mark) - 1 + + +//line sip.rl:203 + + {goto st188 } + + goto st779 +tr386: +//line sip.rl:211 + + addr = new(Addr) + +//line sip.rl:66 + + p = ( mark) - 1 + + +//line sip.rl:199 + + {goto st229 } + + goto st779 + st779: + p++ + st_case_779: +//line msg_parse.go:8777 + goto st0 + st259: + p++ + st_case_259: + if data[p] == 10 { + goto st260 + } + goto st0 + st260: + p++ + st_case_260: + switch data[p] { + case 9: + goto st261 + case 32: + goto st261 + } + goto st0 + st261: + p++ + st_case_261: + switch data[p] { + case 9: + goto st261 + case 32: + goto st261 + case 33: + goto st257 + case 37: + goto st257 + case 39: + goto st257 + case 60: + goto tr382 + case 126: + goto st257 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto st257 + } + case data[p] >= 42: + goto st257 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto st257 + } + case data[p] >= 65: + goto st257 + } + default: + goto st257 } - goto tr368 - st248: + goto st0 +tr378: +//line sip.rl:62 + + mark = p + + goto st262 + st262: p++ - st_case_248: - switch data[p] { + st_case_262: +//line msg_parse.go:8847 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { case 9: - goto tr387 + goto st258 case 32: - goto tr387 + goto st258 + case 33: + goto st257 + case 37: + goto st257 + case 39: + goto st257 + case 42: + goto st257 + case 43: + goto st262 case 58: - goto tr388 - case 67: - goto st254 - case 76: - goto st283 - case 85: - goto st302 - case 99: - goto st254 - case 108: - goto st283 - case 117: - goto st302 + goto tr386 + case 126: + goto st257 + case 525: + goto st259 + } + switch { + case _widec < 65: + switch { + case _widec > 46: + if 48 <= _widec && _widec <= 57 { + goto st262 + } + case _widec >= 45: + goto st262 + } + case _widec > 90: + switch { + case _widec > 96: + if 97 <= _widec && _widec <= 122 { + goto st262 + } + case _widec >= 95: + goto st257 + } + default: + goto st262 + } + goto st0 + st263: + p++ + st_case_263: + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto tr387 + case 269: + goto tr393 + case 525: + goto tr394 + } + switch { + case _widec < 224: + switch { + case _widec > 127: + if 192 <= _widec && _widec <= 223 { + goto tr388 + } + case _widec >= 32: + goto tr387 + } + case _widec > 239: + switch { + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto tr390 + } + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto tr392 + } + default: + goto tr391 + } + default: + goto tr389 + } + goto st0 +tr387: +//line sip.rl:62 + + mark = p + + goto st264 + st264: + p++ + st_case_264: +//line msg_parse.go:8954 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } + } + switch _widec { + case 9: + goto st264 + case 269: + goto st270 + case 525: + goto st271 + } + switch { + case _widec < 224: + switch { + case _widec > 127: + if 192 <= _widec && _widec <= 223 { + goto st265 + } + case _widec >= 32: + goto st264 + } + case _widec > 239: + switch { + case _widec < 248: + if 240 <= _widec && _widec <= 247 { + goto st267 + } + case _widec > 251: + if 252 <= _widec && _widec <= 253 { + goto st269 + } + default: + goto st268 + } + default: + goto st266 + } + goto st0 +tr388: +//line sip.rl:62 + + mark = p + + goto st265 + st265: + p++ + st_case_265: +//line msg_parse.go:9006 + if 128 <= data[p] && data[p] <= 191 { + goto st264 + } + goto st0 +tr389: +//line sip.rl:62 + + mark = p + + goto st266 + st266: + p++ + st_case_266: +//line msg_parse.go:9020 + if 128 <= data[p] && data[p] <= 191 { + goto st265 + } + goto st0 +tr390: +//line sip.rl:62 + + mark = p + + goto st267 + st267: + p++ + st_case_267: +//line msg_parse.go:9034 + if 128 <= data[p] && data[p] <= 191 { + goto st266 + } + goto st0 +tr391: +//line sip.rl:62 + + mark = p + + goto st268 + st268: + p++ + st_case_268: +//line msg_parse.go:9048 + if 128 <= data[p] && data[p] <= 191 { + goto st267 + } + goto st0 +tr392: +//line sip.rl:62 + + mark = p + + goto st269 + st269: + p++ + st_case_269: +//line msg_parse.go:9062 + if 128 <= data[p] && data[p] <= 191 { + goto st268 + } + goto st0 +tr393: +//line sip.rl:62 + + mark = p + + goto st270 + st270: + p++ + st_case_270: +//line msg_parse.go:9076 + if data[p] == 10 { + goto tr403 + } + goto st0 +tr403: +//line sip.rl:179 +{ + b := data[mark:p - 1] + if value != nil { + *value = string(b) + } else { + if msg.Headers == nil { + msg.Headers = Headers{} + } + msg.Headers[name] = string(b) + } +} +//line sip.rl:152 + + {goto st280 } + + goto st780 + st780: + p++ + st_case_780: +//line msg_parse.go:9102 + goto st0 +tr394: +//line sip.rl:62 + + mark = p + + goto st271 + st271: + p++ + st_case_271: +//line msg_parse.go:9113 + if data[p] == 10 { + goto st272 + } + goto st0 + st272: + p++ + st_case_272: + switch data[p] { + case 9: + goto st264 + case 32: + goto st264 } - goto tr368 -tr387: -//line sip.rl:463 -value=&msg.AcceptContact - goto st249 -tr402: -//line sip.rl:462 -value=&msg.Accept - goto st249 -tr421: -//line sip.rl:464 -value=&msg.AcceptEncoding - goto st249 -tr430: -//line sip.rl:465 -value=&msg.AcceptLanguage - goto st249 -tr441: -//line sip.rl:468 -value=&msg.AlertInfo - goto st249 -tr445: -//line sip.rl:466 -value=&msg.Allow - goto st249 -tr454: -//line sip.rl:467 -value=&msg.AllowEvents - goto st249 -tr474: -//line sip.rl:469 -value=&msg.AuthenticationInfo - goto st249 -tr484: -//line sip.rl:470 -value=&msg.Authorization - goto st249 -tr486: -//line sip.rl:487 -value=&msg.ReferredBy - goto st249 -tr532: -//line sip.rl:474 -value=&msg.CallInfo - goto st249 -tr565: -//line sip.rl:471 -value=&msg.ContentDisposition - goto st249 -tr574: -//line sip.rl:473 -value=&msg.ContentEncoding - goto st249 -tr584: -//line sip.rl:472 -value=&msg.ContentLanguage - goto st249 -tr619: -//line sip.rl:475 -value=&msg.Date - goto st249 -tr632: -//line sip.rl:476 -value=&msg.ErrorInfo - goto st249 -tr637: -//line sip.rl:477 -value=&msg.Event - goto st249 -tr666: -//line sip.rl:478 -value=&msg.InReplyTo - goto st249 -tr668: -//line sip.rl:492 -value=&msg.Supported - goto st249 -tr707: -//line sip.rl:480 -value=&msg.MIMEVersion - goto st249 -tr735: -//line sip.rl:481 -value=&msg.Organization - goto st249 -tr765: -//line sip.rl:482 -value=&msg.Priority - goto st249 -tr784: -//line sip.rl:483 -value=&msg.ProxyAuthenticate - goto st249 -tr794: -//line sip.rl:484 -value=&msg.ProxyAuthorization - goto st249 -tr802: -//line sip.rl:485 -value=&msg.ProxyRequire - goto st249 -tr804: -//line sip.rl:486 -value=&msg.ReferTo - goto st249 -tr854: -//line sip.rl:479 -value=&msg.ReplyTo - goto st249 -tr860: -//line sip.rl:488 -value=&msg.Require - goto st249 -tr870: -//line sip.rl:489 -value=&msg.RetryAfter - goto st249 -tr877: -//line sip.rl:491 -value=&msg.Subject - goto st249 -tr885: -//line sip.rl:490 -value=&msg.Server - goto st249 -tr909: -//line sip.rl:493 -value=&msg.Timestamp - goto st249 -tr911: -//line sip.rl:466 -value=&msg.Allow -//line sip.rl:467 -value=&msg.AllowEvents - goto st249 -tr924: -//line sip.rl:494 -value=&msg.Unsupported - goto st249 -tr934: -//line sip.rl:495 -value=&msg.UserAgent - goto st249 -tr951: -//line sip.rl:496 -value=&msg.Warning - goto st249 -tr967: -//line sip.rl:497 -value=&msg.WWWAuthenticate - goto st249 - st249: + goto st0 + st273: p++ - st_case_249: -//line msg_parse.go:8592 + st_case_273: + switch data[p] { + case 33: + goto st274 + case 37: + goto st274 + case 39: + goto st274 + case 126: + goto st274 + } + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto st274 + } + case data[p] >= 42: + goto st274 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto st274 + } + case data[p] >= 65: + goto st274 + } + default: + goto st274 + } + goto st0 + st274: + p++ + st_case_274: switch data[p] { case 9: - goto st249 + goto tr406 case 32: - goto st249 + goto tr406 + case 33: + goto st274 + case 37: + goto st274 + case 39: + goto st274 case 58: - goto st250 + goto tr407 + case 126: + goto st274 } - goto st0 -tr388: -//line sip.rl:463 -value=&msg.AcceptContact - goto st250 -tr404: -//line sip.rl:462 -value=&msg.Accept - goto st250 -tr422: -//line sip.rl:464 -value=&msg.AcceptEncoding - goto st250 -tr431: -//line sip.rl:465 -value=&msg.AcceptLanguage - goto st250 -tr442: -//line sip.rl:468 -value=&msg.AlertInfo - goto st250 -tr447: -//line sip.rl:466 -value=&msg.Allow - goto st250 -tr455: -//line sip.rl:467 -value=&msg.AllowEvents - goto st250 -tr475: -//line sip.rl:469 -value=&msg.AuthenticationInfo - goto st250 -tr485: -//line sip.rl:470 -value=&msg.Authorization - goto st250 -tr487: -//line sip.rl:487 -value=&msg.ReferredBy - goto st250 -tr533: -//line sip.rl:474 -value=&msg.CallInfo - goto st250 -tr566: -//line sip.rl:471 -value=&msg.ContentDisposition - goto st250 -tr575: -//line sip.rl:473 -value=&msg.ContentEncoding - goto st250 -tr585: -//line sip.rl:472 -value=&msg.ContentLanguage - goto st250 -tr620: -//line sip.rl:475 -value=&msg.Date - goto st250 -tr633: -//line sip.rl:476 -value=&msg.ErrorInfo - goto st250 -tr638: -//line sip.rl:477 -value=&msg.Event - goto st250 -tr667: -//line sip.rl:478 -value=&msg.InReplyTo - goto st250 -tr669: -//line sip.rl:492 -value=&msg.Supported - goto st250 -tr708: -//line sip.rl:480 -value=&msg.MIMEVersion - goto st250 -tr736: -//line sip.rl:481 -value=&msg.Organization - goto st250 -tr766: -//line sip.rl:482 -value=&msg.Priority - goto st250 -tr785: -//line sip.rl:483 -value=&msg.ProxyAuthenticate - goto st250 -tr795: -//line sip.rl:484 -value=&msg.ProxyAuthorization - goto st250 -tr803: -//line sip.rl:485 -value=&msg.ProxyRequire - goto st250 -tr805: -//line sip.rl:486 -value=&msg.ReferTo - goto st250 -tr855: -//line sip.rl:479 -value=&msg.ReplyTo - goto st250 -tr861: -//line sip.rl:488 -value=&msg.Require - goto st250 -tr871: -//line sip.rl:489 -value=&msg.RetryAfter - goto st250 -tr878: -//line sip.rl:491 -value=&msg.Subject - goto st250 -tr886: -//line sip.rl:490 -value=&msg.Server - goto st250 -tr910: -//line sip.rl:493 -value=&msg.Timestamp - goto st250 -tr912: -//line sip.rl:466 -value=&msg.Allow -//line sip.rl:467 -value=&msg.AllowEvents - goto st250 -tr925: -//line sip.rl:494 -value=&msg.Unsupported - goto st250 -tr935: -//line sip.rl:495 -value=&msg.UserAgent - goto st250 -tr952: -//line sip.rl:496 -value=&msg.Warning - goto st250 -tr968: -//line sip.rl:497 -value=&msg.WWWAuthenticate - goto st250 - st250: + switch { + case data[p] < 48: + switch { + case data[p] > 43: + if 45 <= data[p] && data[p] <= 46 { + goto st274 + } + case data[p] >= 42: + goto st274 + } + case data[p] > 57: + switch { + case data[p] > 90: + if 95 <= data[p] && data[p] <= 122 { + goto st274 + } + case data[p] >= 65: + goto st274 + } + default: + goto st274 + } + goto st0 +tr406: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st275 + st275: p++ - st_case_250: -//line msg_parse.go:8755 + st_case_275: +//line msg_parse.go:9215 + switch data[p] { + case 9: + goto st275 + case 32: + goto st275 + case 58: + goto st276 + } + goto st0 +tr407: +//line sip.rl:175 + + name = string(data[mark:p]) + + goto st276 + st276: + p++ + st_case_276: +//line msg_parse.go:9234 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -8761,578 +9240,783 @@ value=&msg.WWWAuthenticate } switch _widec { case 9: - goto st250 + goto st276 case 32: - goto st250 + goto st276 case 269: - goto tr394 + goto tr410 case 525: - goto st251 + goto st277 } switch { case _widec > 12: if 14 <= _widec { - goto tr394 + goto tr410 } default: - goto tr394 + goto tr410 } goto st0 -tr509: -//line sip.rl:159 - - {goto st246 } - - goto st755 -tr394: -//line sip.rl:53 - - p-- - - -//line sip.rl:163 - - {goto st229 } - - goto st755 -tr544: +tr410: //line sip.rl:547 value=nil -//line sip.rl:53 +//line sip.rl:54 p-- -//line sip.rl:198 +//line sip.rl:156 - {goto st222 } + {goto st263 } - goto st755 -tr939: -//line sip.rl:53 - - p-- - - -//line sip.rl:167 - - via = new(Via) - {goto st69 } - - goto st755 -tr969: -//line sip.rl:57 - - {p++; cs = 755; goto _out } - - goto st755 - st755: + goto st781 + st781: p++ - st_case_755: -//line msg_parse.go:8833 + st_case_781: +//line msg_parse.go:9277 goto st0 - st251: + st277: p++ - st_case_251: + st_case_277: if data[p] == 10 { - goto st252 + goto st278 } goto st0 - st252: + st278: p++ - st_case_252: + st_case_278: switch data[p] { case 9: - goto st253 + goto st279 case 32: - goto st253 + goto st279 } goto st0 - st253: + st279: p++ - st_case_253: + st_case_279: switch data[p] { case 9: - goto st253 + goto st279 case 32: - goto st253 - } - goto tr394 - st254: - p++ - st_case_254: - switch data[p] { - case 67: - goto st255 - case 99: - goto st255 - } - goto tr368 - st255: - p++ - st_case_255: - switch data[p] { - case 69: - goto st256 - case 101: - goto st256 + goto st279 } - goto tr368 - st256: + goto tr410 + st280: p++ - st_case_256: - switch data[p] { - case 80: - goto st257 - case 112: - goto st257 + st_case_280: + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } } - goto tr368 - st257: - p++ - st_case_257: - switch data[p] { - case 84: - goto st258 - case 116: - goto st258 + switch _widec { + case 33: + goto tr414 + case 37: + goto tr414 + case 39: + goto tr414 + case 126: + goto tr414 + case 269: + goto st764 } - goto tr368 - st258: - p++ - st_case_258: - switch data[p] { - case 9: - goto tr402 - case 32: - goto tr402 - case 45: - goto st259 - case 58: - goto tr404 + switch { + case _widec < 48: + switch { + case _widec > 43: + if 45 <= _widec && _widec <= 46 { + goto tr414 + } + case _widec >= 42: + goto tr414 + } + case _widec > 57: + switch { + case _widec > 90: + if 95 <= _widec && _widec <= 122 { + goto tr414 + } + case _widec >= 65: + goto tr414 + } + default: + goto tr414 } - goto tr368 - st259: + goto st0 +tr414: +//line sip.rl:62 + + mark = p + +//line sip.rl:54 + + p-- + + + goto st281 + st281: p++ - st_case_259: + st_case_281: +//line msg_parse.go:9365 switch data[p] { + case 65: + goto st282 + case 66: + goto st363 case 67: - goto st260 + goto st364 + case 68: + goto st459 case 69: - goto st267 + goto st463 + case 70: + goto st489 + case 73: + goto st493 + case 75: + goto st504 case 76: - goto st275 - case 99: - goto st260 - case 101: - goto st267 - case 108: - goto st275 - } - goto tr368 - st260: - p++ - st_case_260: - switch data[p] { + goto st505 + case 77: + goto st512 case 79: - goto st261 - case 111: - goto st261 - } - goto tr368 - st261: - p++ - st_case_261: - switch data[p] { - case 78: - goto st262 - case 110: - goto st262 - } - goto tr368 - st262: - p++ - st_case_262: - switch data[p] { + goto st556 + case 80: + goto st568 + case 82: + goto st626 + case 83: + goto st686 case 84: - goto st263 - case 116: - goto st263 - } - goto tr368 - st263: - p++ - st_case_263: - switch data[p] { - case 65: - goto st264 + goto st704 + case 85: + goto st714 + case 86: + goto st734 + case 87: + goto st742 case 97: - goto st264 - } - goto tr368 - st264: - p++ - st_case_264: - switch data[p] { - case 67: - goto st265 + goto st282 + case 98: + goto st363 case 99: - goto st265 - } - goto tr368 - st265: - p++ - st_case_265: - switch data[p] { - case 84: - goto st266 + goto st364 + case 100: + goto st459 + case 101: + goto st463 + case 102: + goto st489 + case 105: + goto st493 + case 107: + goto st504 + case 108: + goto st505 + case 109: + goto st512 + case 111: + goto st556 + case 112: + goto st568 + case 114: + goto st626 + case 115: + goto st686 case 116: - goto st266 + goto st704 + case 117: + goto st714 + case 118: + goto st734 + case 119: + goto st742 } - goto tr368 - st266: + goto tr416 + st282: p++ - st_case_266: + st_case_282: switch data[p] { case 9: - goto tr387 + goto tr435 case 32: - goto tr387 + goto tr435 case 58: - goto tr388 - } - goto tr368 - st267: - p++ - st_case_267: - switch data[p] { - case 78: - goto st268 - case 110: - goto st268 - } - goto tr368 - st268: - p++ - st_case_268: - switch data[p] { + goto tr436 case 67: - goto st269 + goto st288 + case 76: + goto st317 + case 85: + goto st336 case 99: - goto st269 - } - goto tr368 - st269: - p++ - st_case_269: - switch data[p] { - case 79: - goto st270 - case 111: - goto st270 - } - goto tr368 - st270: - p++ - st_case_270: - switch data[p] { - case 68: - goto st271 - case 100: - goto st271 - } - goto tr368 - st271: - p++ - st_case_271: - switch data[p] { - case 73: - goto st272 - case 105: - goto st272 - } - goto tr368 - st272: - p++ - st_case_272: - switch data[p] { - case 78: - goto st273 - case 110: - goto st273 - } - goto tr368 - st273: - p++ - st_case_273: - switch data[p] { - case 71: - goto st274 - case 103: - goto st274 + goto st288 + case 108: + goto st317 + case 117: + goto st336 } - goto tr368 - st274: + goto tr416 +tr435: +//line sip.rl:466 +value=&msg.AcceptContact + goto st283 +tr450: +//line sip.rl:465 +value=&msg.Accept + goto st283 +tr469: +//line sip.rl:467 +value=&msg.AcceptEncoding + goto st283 +tr478: +//line sip.rl:468 +value=&msg.AcceptLanguage + goto st283 +tr489: +//line sip.rl:471 +value=&msg.AlertInfo + goto st283 +tr493: +//line sip.rl:469 +value=&msg.Allow + goto st283 +tr502: +//line sip.rl:470 +value=&msg.AllowEvents + goto st283 +tr522: +//line sip.rl:472 +value=&msg.AuthenticationInfo + goto st283 +tr532: +//line sip.rl:473 +value=&msg.Authorization + goto st283 +tr534: +//line sip.rl:490 +value=&msg.ReferredBy + goto st283 +tr564: +//line sip.rl:477 +value=&msg.CallInfo + goto st283 +tr597: +//line sip.rl:474 +value=&msg.ContentDisposition + goto st283 +tr606: +//line sip.rl:476 +value=&msg.ContentEncoding + goto st283 +tr616: +//line sip.rl:475 +value=&msg.ContentLanguage + goto st283 +tr651: +//line sip.rl:478 +value=&msg.Date + goto st283 +tr664: +//line sip.rl:479 +value=&msg.ErrorInfo + goto st283 +tr669: +//line sip.rl:480 +value=&msg.Event + goto st283 +tr698: +//line sip.rl:481 +value=&msg.InReplyTo + goto st283 +tr700: +//line sip.rl:495 +value=&msg.Supported + goto st283 +tr739: +//line sip.rl:483 +value=&msg.MIMEVersion + goto st283 +tr767: +//line sip.rl:484 +value=&msg.Organization + goto st283 +tr797: +//line sip.rl:485 +value=&msg.Priority + goto st283 +tr816: +//line sip.rl:486 +value=&msg.ProxyAuthenticate + goto st283 +tr826: +//line sip.rl:487 +value=&msg.ProxyAuthorization + goto st283 +tr834: +//line sip.rl:488 +value=&msg.ProxyRequire + goto st283 +tr836: +//line sip.rl:489 +value=&msg.ReferTo + goto st283 +tr886: +//line sip.rl:482 +value=&msg.ReplyTo + goto st283 +tr892: +//line sip.rl:491 +value=&msg.Require + goto st283 +tr902: +//line sip.rl:492 +value=&msg.RetryAfter + goto st283 +tr909: +//line sip.rl:494 +value=&msg.Subject + goto st283 +tr917: +//line sip.rl:493 +value=&msg.Server + goto st283 +tr941: +//line sip.rl:496 +value=&msg.Timestamp + goto st283 +tr943: +//line sip.rl:469 +value=&msg.Allow +//line sip.rl:470 +value=&msg.AllowEvents + goto st283 +tr956: +//line sip.rl:497 +value=&msg.Unsupported + goto st283 +tr966: +//line sip.rl:498 +value=&msg.UserAgent + goto st283 +tr983: +//line sip.rl:499 +value=&msg.Warning + goto st283 +tr999: +//line sip.rl:500 +value=&msg.WWWAuthenticate + goto st283 + st283: p++ - st_case_274: + st_case_283: +//line msg_parse.go:9618 switch data[p] { case 9: - goto tr421 + goto st283 case 32: - goto tr421 + goto st283 case 58: - goto tr422 - } - goto tr368 - st275: - p++ - st_case_275: - switch data[p] { - case 65: - goto st276 - case 97: - goto st276 - } - goto tr368 - st276: - p++ - st_case_276: - switch data[p] { - case 78: - goto st277 - case 110: - goto st277 - } - goto tr368 - st277: - p++ - st_case_277: - switch data[p] { - case 71: - goto st278 - case 103: - goto st278 - } - goto tr368 - st278: - p++ - st_case_278: - switch data[p] { - case 85: - goto st279 - case 117: - goto st279 - } - goto tr368 - st279: - p++ - st_case_279: - switch data[p] { - case 65: - goto st280 - case 97: - goto st280 - } - goto tr368 - st280: - p++ - st_case_280: - switch data[p] { - case 71: - goto st281 - case 103: - goto st281 + goto st284 } - goto tr368 - st281: + goto st0 +tr436: +//line sip.rl:466 +value=&msg.AcceptContact + goto st284 +tr452: +//line sip.rl:465 +value=&msg.Accept + goto st284 +tr470: +//line sip.rl:467 +value=&msg.AcceptEncoding + goto st284 +tr479: +//line sip.rl:468 +value=&msg.AcceptLanguage + goto st284 +tr490: +//line sip.rl:471 +value=&msg.AlertInfo + goto st284 +tr495: +//line sip.rl:469 +value=&msg.Allow + goto st284 +tr503: +//line sip.rl:470 +value=&msg.AllowEvents + goto st284 +tr523: +//line sip.rl:472 +value=&msg.AuthenticationInfo + goto st284 +tr533: +//line sip.rl:473 +value=&msg.Authorization + goto st284 +tr535: +//line sip.rl:490 +value=&msg.ReferredBy + goto st284 +tr565: +//line sip.rl:477 +value=&msg.CallInfo + goto st284 +tr598: +//line sip.rl:474 +value=&msg.ContentDisposition + goto st284 +tr607: +//line sip.rl:476 +value=&msg.ContentEncoding + goto st284 +tr617: +//line sip.rl:475 +value=&msg.ContentLanguage + goto st284 +tr652: +//line sip.rl:478 +value=&msg.Date + goto st284 +tr665: +//line sip.rl:479 +value=&msg.ErrorInfo + goto st284 +tr670: +//line sip.rl:480 +value=&msg.Event + goto st284 +tr699: +//line sip.rl:481 +value=&msg.InReplyTo + goto st284 +tr701: +//line sip.rl:495 +value=&msg.Supported + goto st284 +tr740: +//line sip.rl:483 +value=&msg.MIMEVersion + goto st284 +tr768: +//line sip.rl:484 +value=&msg.Organization + goto st284 +tr798: +//line sip.rl:485 +value=&msg.Priority + goto st284 +tr817: +//line sip.rl:486 +value=&msg.ProxyAuthenticate + goto st284 +tr827: +//line sip.rl:487 +value=&msg.ProxyAuthorization + goto st284 +tr835: +//line sip.rl:488 +value=&msg.ProxyRequire + goto st284 +tr837: +//line sip.rl:489 +value=&msg.ReferTo + goto st284 +tr887: +//line sip.rl:482 +value=&msg.ReplyTo + goto st284 +tr893: +//line sip.rl:491 +value=&msg.Require + goto st284 +tr903: +//line sip.rl:492 +value=&msg.RetryAfter + goto st284 +tr910: +//line sip.rl:494 +value=&msg.Subject + goto st284 +tr918: +//line sip.rl:493 +value=&msg.Server + goto st284 +tr942: +//line sip.rl:496 +value=&msg.Timestamp + goto st284 +tr944: +//line sip.rl:469 +value=&msg.Allow +//line sip.rl:470 +value=&msg.AllowEvents + goto st284 +tr957: +//line sip.rl:497 +value=&msg.Unsupported + goto st284 +tr967: +//line sip.rl:498 +value=&msg.UserAgent + goto st284 +tr984: +//line sip.rl:499 +value=&msg.Warning + goto st284 +tr1000: +//line sip.rl:500 +value=&msg.WWWAuthenticate + goto st284 + st284: p++ - st_case_281: - switch data[p] { - case 69: - goto st282 - case 101: - goto st282 + st_case_284: +//line msg_parse.go:9781 + _widec = int16(data[p]) + if 13 <= data[p] && data[p] <= 13 { + _widec = 256 + (int16(data[p]) - 0) + if lookAheadWSP(data, p, pe) { + _widec += 256 + } } - goto tr368 - st282: - p++ - st_case_282: - switch data[p] { + switch _widec { case 9: - goto tr430 - case 32: - goto tr430 - case 58: - goto tr431 - } - goto tr368 - st283: - p++ - st_case_283: - switch data[p] { - case 69: goto st284 - case 76: - goto st292 - case 101: + case 32: goto st284 - case 108: - goto st292 - } - goto tr368 - st284: - p++ - st_case_284: - switch data[p] { - case 82: - goto st285 - case 114: + case 269: + goto tr442 + case 525: goto st285 } - goto tr368 + switch { + case _widec > 12: + if 14 <= _widec { + goto tr442 + } + default: + goto tr442 + } + goto st0 +tr559: +//line sip.rl:152 + + {goto st280 } + + goto st782 +tr442: +//line sip.rl:54 + + p-- + + +//line sip.rl:156 + + {goto st263 } + + goto st782 +tr541: +//line sip.rl:54 + + p-- + + +//line sip.rl:191 + + {goto st34 } + + goto st782 +tr576: +//line sip.rl:549 +value=nil +//line sip.rl:54 + + p-- + + +//line sip.rl:195 + + {goto st256 } + + goto st782 +tr971: +//line sip.rl:54 + + p-- + + +//line sip.rl:160 + + via = new(Via) + {goto st103 } + + goto st782 +tr1001: +//line sip.rl:58 + + {p++; cs = 782; goto _out } + + goto st782 + st782: + p++ + st_case_782: +//line msg_parse.go:9870 + goto st0 st285: p++ st_case_285: - switch data[p] { - case 84: - goto st286 - case 116: + if data[p] == 10 { goto st286 } - goto tr368 + goto st0 st286: p++ st_case_286: - if data[p] == 45 { + switch data[p] { + case 9: + goto st287 + case 32: goto st287 } - goto tr368 + goto st0 st287: p++ st_case_287: switch data[p] { - case 73: - goto st288 - case 105: - goto st288 + case 9: + goto st287 + case 32: + goto st287 } - goto tr368 + goto tr442 st288: p++ st_case_288: switch data[p] { - case 78: + case 67: goto st289 - case 110: + case 99: goto st289 } - goto tr368 + goto tr416 st289: p++ st_case_289: switch data[p] { - case 70: + case 69: goto st290 - case 102: + case 101: goto st290 } - goto tr368 + goto tr416 st290: p++ st_case_290: switch data[p] { - case 79: + case 80: goto st291 - case 111: + case 112: goto st291 } - goto tr368 + goto tr416 st291: p++ st_case_291: switch data[p] { - case 9: - goto tr441 - case 32: - goto tr441 - case 58: - goto tr442 + case 84: + goto st292 + case 116: + goto st292 } - goto tr368 + goto tr416 st292: p++ st_case_292: switch data[p] { - case 79: - goto st293 - case 111: + case 9: + goto tr450 + case 32: + goto tr450 + case 45: goto st293 + case 58: + goto tr452 } - goto tr368 + goto tr416 st293: p++ st_case_293: switch data[p] { - case 87: + case 67: goto st294 - case 119: + case 69: + goto st301 + case 76: + goto st309 + case 99: goto st294 + case 101: + goto st301 + case 108: + goto st309 } - goto tr368 + goto tr416 st294: p++ st_case_294: switch data[p] { - case 9: - goto tr445 - case 32: - goto tr445 - case 45: + case 79: + goto st295 + case 111: goto st295 - case 58: - goto tr447 } - goto tr368 + goto tr416 st295: p++ st_case_295: switch data[p] { - case 69: + case 78: goto st296 - case 101: + case 110: goto st296 } - goto tr368 + goto tr416 st296: p++ st_case_296: switch data[p] { - case 86: + case 84: goto st297 - case 118: + case 116: goto st297 } - goto tr368 + goto tr416 st297: p++ st_case_297: switch data[p] { - case 69: + case 65: goto st298 - case 101: + case 97: goto st298 } - goto tr368 + goto tr416 st298: p++ st_case_298: switch data[p] { - case 78: + case 67: goto st299 - case 110: + case 99: goto st299 } - goto tr368 + goto tr416 st299: p++ st_case_299: @@ -9342,103 +10026,101 @@ tr969: case 116: goto st300 } - goto tr368 + goto tr416 st300: p++ st_case_300: switch data[p] { - case 83: - goto st301 - case 115: - goto st301 + case 9: + goto tr435 + case 32: + goto tr435 + case 58: + goto tr436 } - goto tr368 + goto tr416 st301: p++ st_case_301: switch data[p] { - case 9: - goto tr454 - case 32: - goto tr454 - case 58: - goto tr455 + case 78: + goto st302 + case 110: + goto st302 } - goto tr368 + goto tr416 st302: p++ st_case_302: switch data[p] { - case 84: + case 67: goto st303 - case 116: + case 99: goto st303 } - goto tr368 + goto tr416 st303: p++ st_case_303: switch data[p] { - case 72: + case 79: goto st304 - case 104: + case 111: goto st304 } - goto tr368 + goto tr416 st304: p++ st_case_304: switch data[p] { - case 69: + case 68: goto st305 - case 79: - goto st320 - case 101: + case 100: goto st305 - case 111: - goto st320 } - goto tr368 + goto tr416 st305: p++ st_case_305: switch data[p] { - case 78: + case 73: goto st306 - case 110: + case 105: goto st306 } - goto tr368 + goto tr416 st306: p++ st_case_306: switch data[p] { - case 84: + case 78: goto st307 - case 116: + case 110: goto st307 } - goto tr368 + goto tr416 st307: p++ st_case_307: switch data[p] { - case 73: + case 71: goto st308 - case 105: + case 103: goto st308 } - goto tr368 + goto tr416 st308: p++ st_case_308: switch data[p] { - case 67: - goto st309 - case 99: - goto st309 + case 9: + goto tr469 + case 32: + goto tr469 + case 58: + goto tr470 } - goto tr368 + goto tr416 st309: p++ st_case_309: @@ -9448,116 +10130,120 @@ tr969: case 97: goto st310 } - goto tr368 + goto tr416 st310: p++ st_case_310: switch data[p] { - case 84: + case 78: goto st311 - case 116: + case 110: goto st311 } - goto tr368 + goto tr416 st311: p++ st_case_311: switch data[p] { - case 73: + case 71: goto st312 - case 105: + case 103: goto st312 } - goto tr368 + goto tr416 st312: p++ st_case_312: switch data[p] { - case 79: + case 85: goto st313 - case 111: + case 117: goto st313 } - goto tr368 + goto tr416 st313: p++ st_case_313: switch data[p] { - case 78: + case 65: goto st314 - case 110: + case 97: goto st314 } - goto tr368 + goto tr416 st314: p++ st_case_314: - if data[p] == 45 { + switch data[p] { + case 71: + goto st315 + case 103: goto st315 } - goto tr368 + goto tr416 st315: p++ st_case_315: switch data[p] { - case 73: + case 69: goto st316 - case 105: + case 101: goto st316 } - goto tr368 + goto tr416 st316: p++ st_case_316: switch data[p] { - case 78: - goto st317 - case 110: - goto st317 + case 9: + goto tr478 + case 32: + goto tr478 + case 58: + goto tr479 } - goto tr368 + goto tr416 st317: p++ st_case_317: switch data[p] { - case 70: + case 69: goto st318 - case 102: + case 76: + goto st326 + case 101: goto st318 + case 108: + goto st326 } - goto tr368 + goto tr416 st318: p++ st_case_318: switch data[p] { - case 79: + case 82: goto st319 - case 111: + case 114: goto st319 } - goto tr368 + goto tr416 st319: p++ st_case_319: switch data[p] { - case 9: - goto tr474 - case 32: - goto tr474 - case 58: - goto tr475 + case 84: + goto st320 + case 116: + goto st320 } - goto tr368 + goto tr416 st320: p++ st_case_320: - switch data[p] { - case 82: - goto st321 - case 114: + if data[p] == 45 { goto st321 } - goto tr368 + goto tr416 st321: p++ st_case_321: @@ -9567,376 +10253,481 @@ tr969: case 105: goto st322 } - goto tr368 - st322: + goto tr416 + st322: + p++ + st_case_322: + switch data[p] { + case 78: + goto st323 + case 110: + goto st323 + } + goto tr416 + st323: + p++ + st_case_323: + switch data[p] { + case 70: + goto st324 + case 102: + goto st324 + } + goto tr416 + st324: + p++ + st_case_324: + switch data[p] { + case 79: + goto st325 + case 111: + goto st325 + } + goto tr416 + st325: + p++ + st_case_325: + switch data[p] { + case 9: + goto tr489 + case 32: + goto tr489 + case 58: + goto tr490 + } + goto tr416 + st326: + p++ + st_case_326: + switch data[p] { + case 79: + goto st327 + case 111: + goto st327 + } + goto tr416 + st327: + p++ + st_case_327: + switch data[p] { + case 87: + goto st328 + case 119: + goto st328 + } + goto tr416 + st328: + p++ + st_case_328: + switch data[p] { + case 9: + goto tr493 + case 32: + goto tr493 + case 45: + goto st329 + case 58: + goto tr495 + } + goto tr416 + st329: + p++ + st_case_329: + switch data[p] { + case 69: + goto st330 + case 101: + goto st330 + } + goto tr416 + st330: + p++ + st_case_330: + switch data[p] { + case 86: + goto st331 + case 118: + goto st331 + } + goto tr416 + st331: + p++ + st_case_331: + switch data[p] { + case 69: + goto st332 + case 101: + goto st332 + } + goto tr416 + st332: + p++ + st_case_332: + switch data[p] { + case 78: + goto st333 + case 110: + goto st333 + } + goto tr416 + st333: + p++ + st_case_333: + switch data[p] { + case 84: + goto st334 + case 116: + goto st334 + } + goto tr416 + st334: + p++ + st_case_334: + switch data[p] { + case 83: + goto st335 + case 115: + goto st335 + } + goto tr416 + st335: + p++ + st_case_335: + switch data[p] { + case 9: + goto tr502 + case 32: + goto tr502 + case 58: + goto tr503 + } + goto tr416 + st336: + p++ + st_case_336: + switch data[p] { + case 84: + goto st337 + case 116: + goto st337 + } + goto tr416 + st337: + p++ + st_case_337: + switch data[p] { + case 72: + goto st338 + case 104: + goto st338 + } + goto tr416 + st338: + p++ + st_case_338: + switch data[p] { + case 69: + goto st339 + case 79: + goto st354 + case 101: + goto st339 + case 111: + goto st354 + } + goto tr416 + st339: + p++ + st_case_339: + switch data[p] { + case 78: + goto st340 + case 110: + goto st340 + } + goto tr416 + st340: + p++ + st_case_340: + switch data[p] { + case 84: + goto st341 + case 116: + goto st341 + } + goto tr416 + st341: + p++ + st_case_341: + switch data[p] { + case 73: + goto st342 + case 105: + goto st342 + } + goto tr416 + st342: p++ - st_case_322: + st_case_342: switch data[p] { - case 90: - goto st323 - case 122: - goto st323 + case 67: + goto st343 + case 99: + goto st343 } - goto tr368 - st323: + goto tr416 + st343: p++ - st_case_323: + st_case_343: switch data[p] { case 65: - goto st324 + goto st344 case 97: - goto st324 + goto st344 } - goto tr368 - st324: + goto tr416 + st344: p++ - st_case_324: + st_case_344: switch data[p] { case 84: - goto st325 + goto st345 case 116: - goto st325 + goto st345 } - goto tr368 - st325: + goto tr416 + st345: p++ - st_case_325: + st_case_345: switch data[p] { case 73: - goto st326 + goto st346 case 105: - goto st326 + goto st346 } - goto tr368 - st326: + goto tr416 + st346: p++ - st_case_326: + st_case_346: switch data[p] { case 79: - goto st327 + goto st347 case 111: - goto st327 + goto st347 } - goto tr368 - st327: + goto tr416 + st347: p++ - st_case_327: + st_case_347: switch data[p] { case 78: - goto st328 + goto st348 case 110: - goto st328 + goto st348 } - goto tr368 - st328: + goto tr416 + st348: p++ - st_case_328: + st_case_348: + if data[p] == 45 { + goto st349 + } + goto tr416 + st349: + p++ + st_case_349: switch data[p] { - case 9: - goto tr484 - case 32: - goto tr484 - case 58: - goto tr485 + case 73: + goto st350 + case 105: + goto st350 } - goto tr368 - st329: + goto tr416 + st350: p++ - st_case_329: + st_case_350: switch data[p] { - case 9: - goto tr486 - case 32: - goto tr486 - case 58: - goto tr487 + case 78: + goto st351 + case 110: + goto st351 } - goto tr368 - st330: + goto tr416 + st351: p++ - st_case_330: + st_case_351: + switch data[p] { + case 70: + goto st352 + case 102: + goto st352 + } + goto tr416 + st352: + p++ + st_case_352: switch data[p] { - case 9: - goto st331 - case 32: - goto st331 - case 58: - goto st332 - case 65: - goto st345 case 79: - goto st362 - case 83: - goto st419 - case 97: - goto st345 + goto st353 case 111: - goto st362 - case 115: - goto st419 + goto st353 } - goto tr368 - st331: + goto tr416 + st353: p++ - st_case_331: + st_case_353: switch data[p] { case 9: - goto st331 + goto tr522 case 32: - goto st331 + goto tr522 case 58: - goto st332 + goto tr523 } - goto st0 - st332: + goto tr416 + st354: p++ - st_case_332: - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st332 - case 32: - goto st332 - case 269: - goto tr499 - case 525: - goto st342 - } - switch { - case _widec < 224: - switch { - case _widec > 127: - if 192 <= _widec && _widec <= 223 { - goto tr494 - } - case _widec >= 33: - goto tr493 - } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto tr496 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto tr498 - } - default: - goto tr497 - } - default: - goto tr495 + st_case_354: + switch data[p] { + case 82: + goto st355 + case 114: + goto st355 } - goto st0 -tr493: -//line sip.rl:61 - - mark = p - - goto st333 - st333: + goto tr416 + st355: p++ - st_case_333: -//line msg_parse.go:9748 - _widec = int16(data[p]) - if 13 <= data[p] && data[p] <= 13 { - _widec = 256 + (int16(data[p]) - 0) - if lookAheadWSP(data, p, pe) { - _widec += 256 - } - } - switch _widec { - case 9: - goto st333 - case 269: - goto tr507 - case 525: - goto st340 - } - switch { - case _widec < 224: - switch { - case _widec > 127: - if 192 <= _widec && _widec <= 223 { - goto st334 - } - case _widec >= 32: - goto st333 - } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto st336 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto st338 - } - default: - goto st337 - } - default: - goto st335 + st_case_355: + switch data[p] { + case 73: + goto st356 + case 105: + goto st356 } - goto st0 -tr494: -//line sip.rl:61 - - mark = p - - goto st334 - st334: + goto tr416 + st356: p++ - st_case_334: -//line msg_parse.go:9800 - if 128 <= data[p] && data[p] <= 191 { - goto st333 + st_case_356: + switch data[p] { + case 90: + goto st357 + case 122: + goto st357 } - goto st0 -tr495: -//line sip.rl:61 - - mark = p - - goto st335 - st335: + goto tr416 + st357: p++ - st_case_335: -//line msg_parse.go:9814 - if 128 <= data[p] && data[p] <= 191 { - goto st334 + st_case_357: + switch data[p] { + case 65: + goto st358 + case 97: + goto st358 } - goto st0 -tr496: -//line sip.rl:61 - - mark = p - - goto st336 - st336: + goto tr416 + st358: p++ - st_case_336: -//line msg_parse.go:9828 - if 128 <= data[p] && data[p] <= 191 { - goto st335 + st_case_358: + switch data[p] { + case 84: + goto st359 + case 116: + goto st359 } - goto st0 -tr497: -//line sip.rl:61 - - mark = p - - goto st337 - st337: + goto tr416 + st359: p++ - st_case_337: -//line msg_parse.go:9842 - if 128 <= data[p] && data[p] <= 191 { - goto st336 + st_case_359: + switch data[p] { + case 73: + goto st360 + case 105: + goto st360 } - goto st0 -tr498: -//line sip.rl:61 - - mark = p - - goto st338 - st338: + goto tr416 + st360: p++ - st_case_338: -//line msg_parse.go:9856 - if 128 <= data[p] && data[p] <= 191 { - goto st337 + st_case_360: + switch data[p] { + case 79: + goto st361 + case 111: + goto st361 } - goto st0 -tr499: -//line sip.rl:61 - - mark = p - -//line sip.rl:256 - - ctype = string(data[mark:p]) - - goto st339 -tr507: -//line sip.rl:256 - - ctype = string(data[mark:p]) - - goto st339 -tr526: -//line sip.rl:248 - - msg.CallID = string(data[mark:p]) - - goto st339 -tr611: -//line sip.rl:264 - - msg.CSeqMethod = string(data[mark:p]) - - goto st339 - st339: + goto tr416 + st361: p++ - st_case_339: -//line msg_parse.go:9892 - if data[p] == 10 { - goto tr509 + st_case_361: + switch data[p] { + case 78: + goto st362 + case 110: + goto st362 } - goto st0 -tr513: -//line sip.rl:61 - - mark = p - - goto st340 - st340: + goto tr416 + st362: p++ - st_case_340: -//line msg_parse.go:9906 - if data[p] == 10 { - goto st341 + st_case_362: + switch data[p] { + case 9: + goto tr532 + case 32: + goto tr532 + case 58: + goto tr533 } - goto st0 - st341: + goto tr416 + st363: p++ - st_case_341: + st_case_363: switch data[p] { case 9: - goto st333 + goto tr534 case 32: - goto st333 + goto tr534 + case 58: + goto tr535 } - goto st0 - st342: + goto tr416 + st364: p++ - st_case_342: - if data[p] == 10 { - goto st343 + st_case_364: + switch data[p] { + case 9: + goto st365 + case 32: + goto st365 + case 58: + goto st366 + case 65: + goto st370 + case 79: + goto st388 + case 83: + goto st445 + case 97: + goto st370 + case 111: + goto st388 + case 115: + goto st445 } - goto st0 - st343: + goto tr416 + st365: p++ - st_case_343: + st_case_365: switch data[p] { case 9: - goto st344 + goto st365 case 32: - goto st344 + goto st365 + case 58: + goto st366 } goto st0 - st344: + st366: p++ - st_case_344: + st_case_366: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -9946,119 +10737,128 @@ tr513: } switch _widec { case 9: - goto st344 + goto st366 case 32: - goto st344 + goto st366 case 269: - goto tr499 + goto tr541 case 525: - goto tr513 + goto st367 } switch { - case _widec < 224: - switch { - case _widec > 127: - if 192 <= _widec && _widec <= 223 { - goto tr494 - } - case _widec >= 33: - goto tr493 - } - case _widec > 239: - switch { - case _widec < 248: - if 240 <= _widec && _widec <= 247 { - goto tr496 - } - case _widec > 251: - if 252 <= _widec && _widec <= 253 { - goto tr498 - } - default: - goto tr497 + case _widec > 12: + if 14 <= _widec { + goto tr541 } default: - goto tr495 + goto tr541 } goto st0 - st345: + st367: p++ - st_case_345: + st_case_367: + if data[p] == 10 { + goto st368 + } + goto st0 + st368: + p++ + st_case_368: + switch data[p] { + case 9: + goto st369 + case 32: + goto st369 + } + goto st0 + st369: + p++ + st_case_369: + switch data[p] { + case 9: + goto st369 + case 32: + goto st369 + } + goto tr541 + st370: + p++ + st_case_370: switch data[p] { case 76: - goto st346 + goto st371 case 108: - goto st346 + goto st371 } - goto tr368 - st346: + goto tr416 + st371: p++ - st_case_346: + st_case_371: switch data[p] { case 76: - goto st347 + goto st372 case 108: - goto st347 + goto st372 } - goto tr368 - st347: + goto tr416 + st372: p++ - st_case_347: + st_case_372: if data[p] == 45 { - goto st348 + goto st373 } - goto tr368 - st348: + goto tr416 + st373: p++ - st_case_348: + st_case_373: switch data[p] { case 73: - goto st349 + goto st374 case 105: - goto st349 + goto st374 } - goto tr368 - st349: + goto tr416 + st374: p++ - st_case_349: + st_case_374: switch data[p] { case 68: - goto st350 + goto st375 case 78: - goto st359 + goto st385 case 100: - goto st350 + goto st375 case 110: - goto st359 + goto st385 } - goto tr368 - st350: + goto tr416 + st375: p++ - st_case_350: + st_case_375: switch data[p] { case 9: - goto st351 + goto st376 case 32: - goto st351 + goto st376 case 58: - goto st352 + goto st377 } - goto tr368 - st351: + goto tr416 + st376: p++ - st_case_351: + st_case_376: switch data[p] { case 9: - goto st351 + goto st376 case 32: - goto st351 + goto st376 case 58: - goto st352 + goto st377 } goto st0 - st352: + st377: p++ - st_case_352: + st_case_377: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -10068,57 +10868,57 @@ tr513: } switch _widec { case 9: - goto st352 + goto st377 case 32: - goto st352 + goto st377 case 37: - goto tr522 + goto tr553 case 60: - goto tr522 + goto tr553 case 525: - goto st356 + goto st382 } switch { case _widec < 62: switch { case _widec < 39: if 33 <= _widec && _widec <= 34 { - goto tr522 + goto tr553 } case _widec > 43: if 45 <= _widec && _widec <= 58 { - goto tr522 + goto tr553 } default: - goto tr522 + goto tr553 } case _widec > 63: switch { case _widec < 95: if 65 <= _widec && _widec <= 93 { - goto tr522 + goto tr553 } case _widec > 123: if 125 <= _widec && _widec <= 126 { - goto tr522 + goto tr553 } default: - goto tr522 + goto tr553 } default: - goto tr522 + goto tr553 } goto st0 -tr522: -//line sip.rl:61 +tr553: +//line sip.rl:62 mark = p - goto st353 - st353: + goto st378 + st378: p++ - st_case_353: -//line msg_parse.go:10122 + st_case_378: +//line msg_parse.go:10922 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -10128,84 +10928,84 @@ tr522: } switch _widec { case 37: - goto st353 + goto st378 case 60: - goto st353 + goto st378 case 64: - goto st354 + goto st379 case 269: - goto tr526 + goto tr557 } switch { case _widec < 45: switch { case _widec > 34: if 39 <= _widec && _widec <= 43 { - goto st353 + goto st378 } case _widec >= 33: - goto st353 + goto st378 } case _widec > 58: switch { case _widec < 95: if 62 <= _widec && _widec <= 93 { - goto st353 + goto st378 } case _widec > 123: if 125 <= _widec && _widec <= 126 { - goto st353 + goto st378 } default: - goto st353 + goto st378 } default: - goto st353 + goto st378 } goto st0 - st354: + st379: p++ - st_case_354: + st_case_379: switch data[p] { case 37: - goto st355 + goto st380 case 60: - goto st355 + goto st380 } switch { case data[p] < 62: switch { case data[p] < 39: if 33 <= data[p] && data[p] <= 34 { - goto st355 + goto st380 } case data[p] > 43: if 45 <= data[p] && data[p] <= 58 { - goto st355 + goto st380 } default: - goto st355 + goto st380 } case data[p] > 63: switch { case data[p] < 95: if 65 <= data[p] && data[p] <= 93 { - goto st355 + goto st380 } case data[p] > 123: if 125 <= data[p] && data[p] <= 126 { - goto st355 + goto st380 } default: - goto st355 + goto st380 } default: - goto st355 + goto st380 } goto st0 - st355: + st380: p++ - st_case_355: + st_case_380: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -10215,275 +11015,295 @@ tr522: } switch _widec { case 37: - goto st355 + goto st380 case 60: - goto st355 + goto st380 case 269: - goto tr526 + goto tr557 } switch { case _widec < 62: switch { case _widec < 39: if 33 <= _widec && _widec <= 34 { - goto st355 + goto st380 } case _widec > 43: if 45 <= _widec && _widec <= 58 { - goto st355 + goto st380 } default: - goto st355 + goto st380 } case _widec > 63: switch { case _widec < 95: if 65 <= _widec && _widec <= 93 { - goto st355 + goto st380 } case _widec > 123: if 125 <= _widec && _widec <= 126 { - goto st355 + goto st380 } default: - goto st355 + goto st380 } default: - goto st355 + goto st380 } goto st0 - st356: +tr557: +//line sip.rl:245 + + msg.CallID = string(data[mark:p]) + + goto st381 +tr643: +//line sip.rl:261 + + msg.CSeqMethod = string(data[mark:p]) + + goto st381 + st381: p++ - st_case_356: + st_case_381: +//line msg_parse.go:11071 if data[p] == 10 { - goto st357 + goto tr559 } goto st0 - st357: + st382: p++ - st_case_357: + st_case_382: + if data[p] == 10 { + goto st383 + } + goto st0 + st383: + p++ + st_case_383: switch data[p] { case 9: - goto st358 + goto st384 case 32: - goto st358 + goto st384 } goto st0 - st358: + st384: p++ - st_case_358: + st_case_384: switch data[p] { case 9: - goto st358 + goto st384 case 32: - goto st358 + goto st384 case 37: - goto tr522 + goto tr553 case 60: - goto tr522 + goto tr553 } switch { case data[p] < 62: switch { case data[p] < 39: if 33 <= data[p] && data[p] <= 34 { - goto tr522 + goto tr553 } case data[p] > 43: if 45 <= data[p] && data[p] <= 58 { - goto tr522 + goto tr553 } default: - goto tr522 + goto tr553 } case data[p] > 63: switch { case data[p] < 95: if 65 <= data[p] && data[p] <= 93 { - goto tr522 + goto tr553 } case data[p] > 123: if 125 <= data[p] && data[p] <= 126 { - goto tr522 + goto tr553 } default: - goto tr522 + goto tr553 } default: - goto tr522 + goto tr553 } goto st0 - st359: + st385: p++ - st_case_359: + st_case_385: switch data[p] { case 70: - goto st360 + goto st386 case 102: - goto st360 + goto st386 } - goto tr368 - st360: + goto tr416 + st386: p++ - st_case_360: + st_case_386: switch data[p] { case 79: - goto st361 + goto st387 case 111: - goto st361 + goto st387 } - goto tr368 - st361: + goto tr416 + st387: p++ - st_case_361: + st_case_387: switch data[p] { case 9: - goto tr532 + goto tr564 case 32: - goto tr532 + goto tr564 case 58: - goto tr533 + goto tr565 } - goto tr368 - st362: + goto tr416 + st388: p++ - st_case_362: + st_case_388: switch data[p] { case 78: - goto st363 + goto st389 case 110: - goto st363 + goto st389 } - goto tr368 - st363: + goto tr416 + st389: p++ - st_case_363: + st_case_389: switch data[p] { case 84: - goto st364 + goto st390 case 116: - goto st364 + goto st390 } - goto tr368 - st364: + goto tr416 + st390: p++ - st_case_364: + st_case_390: switch data[p] { case 65: - goto st365 + goto st391 case 69: - goto st373 + goto st399 case 97: - goto st365 + goto st391 case 101: - goto st373 + goto st399 } - goto tr368 - st365: + goto tr416 + st391: p++ - st_case_365: + st_case_391: switch data[p] { case 67: - goto st366 + goto st392 case 99: - goto st366 + goto st392 } - goto tr368 - st366: + goto tr416 + st392: p++ - st_case_366: + st_case_392: switch data[p] { case 84: - goto st367 + goto st393 case 116: - goto st367 + goto st393 } - goto tr368 - st367: + goto tr416 + st393: p++ - st_case_367: + st_case_393: switch data[p] { case 9: - goto tr540 + goto tr572 case 32: - goto tr540 + goto tr572 case 58: - goto tr541 + goto tr573 } - goto tr368 -tr540: -//line sip.rl:449 + goto tr416 +tr572: +//line sip.rl:452 addrp=lastAddr(&msg.Contact) - goto st368 -tr651: -//line sip.rl:450 + goto st394 +tr683: +//line sip.rl:453 addrp=lastAddr(&msg.From) - goto st368 -tr756: -//line sip.rl:451 + goto st394 +tr788: +//line sip.rl:454 addrp=lastAddr(&msg.PAssertedIdentity) - goto st368 -tr823: -//line sip.rl:452 + goto st394 +tr855: +//line sip.rl:455 addrp=lastAddr(&msg.RecordRoute) - goto st368 -tr847: -//line sip.rl:453 + goto st394 +tr879: +//line sip.rl:456 addrp=lastAddr(&msg.RemotePartyID) - goto st368 -tr875: -//line sip.rl:454 + goto st394 +tr907: +//line sip.rl:457 addrp=lastAddr(&msg.Route) - goto st368 -tr898: -//line sip.rl:455 + goto st394 +tr930: +//line sip.rl:458 addrp=lastAddr(&msg.To) - goto st368 - st368: + goto st394 + st394: p++ - st_case_368: -//line msg_parse.go:10446 + st_case_394: +//line msg_parse.go:11266 switch data[p] { case 9: - goto st368 + goto st394 case 32: - goto st368 + goto st394 case 58: - goto st369 + goto st395 } goto st0 -tr541: -//line sip.rl:449 +tr573: +//line sip.rl:452 addrp=lastAddr(&msg.Contact) - goto st369 -tr652: -//line sip.rl:450 + goto st395 +tr684: +//line sip.rl:453 addrp=lastAddr(&msg.From) - goto st369 -tr757: -//line sip.rl:451 + goto st395 +tr789: +//line sip.rl:454 addrp=lastAddr(&msg.PAssertedIdentity) - goto st369 -tr824: -//line sip.rl:452 + goto st395 +tr856: +//line sip.rl:455 addrp=lastAddr(&msg.RecordRoute) - goto st369 -tr848: -//line sip.rl:453 + goto st395 +tr880: +//line sip.rl:456 addrp=lastAddr(&msg.RemotePartyID) - goto st369 -tr876: -//line sip.rl:454 + goto st395 +tr908: +//line sip.rl:457 addrp=lastAddr(&msg.Route) - goto st369 -tr899: -//line sip.rl:455 + goto st395 +tr931: +//line sip.rl:458 addrp=lastAddr(&msg.To) - goto st369 - st369: + goto st395 + st395: p++ - st_case_369: -//line msg_parse.go:10487 + st_case_395: +//line msg_parse.go:11307 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -10493,446 +11313,446 @@ addrp=lastAddr(&msg.To) } switch _widec { case 9: - goto st369 + goto st395 case 32: - goto st369 + goto st395 case 269: - goto tr544 + goto tr576 case 525: - goto st370 + goto st396 } switch { case _widec > 12: if 14 <= _widec { - goto tr544 + goto tr576 } default: - goto tr544 + goto tr576 } goto st0 - st370: + st396: p++ - st_case_370: + st_case_396: if data[p] == 10 { - goto st371 + goto st397 } goto st0 - st371: + st397: p++ - st_case_371: + st_case_397: switch data[p] { case 9: - goto st372 + goto st398 case 32: - goto st372 + goto st398 } goto st0 - st372: + st398: p++ - st_case_372: + st_case_398: switch data[p] { case 9: - goto st372 + goto st398 case 32: - goto st372 + goto st398 } - goto tr544 - st373: + goto tr576 + st399: p++ - st_case_373: + st_case_399: switch data[p] { case 78: - goto st374 + goto st400 case 110: - goto st374 + goto st400 } - goto tr368 - st374: + goto tr416 + st400: p++ - st_case_374: + st_case_400: switch data[p] { case 84: - goto st375 + goto st401 case 116: - goto st375 + goto st401 } - goto tr368 - st375: + goto tr416 + st401: p++ - st_case_375: + st_case_401: if data[p] == 45 { - goto st376 + goto st402 } - goto tr368 - st376: + goto tr416 + st402: p++ - st_case_376: + st_case_402: switch data[p] { case 68: - goto st377 + goto st403 case 69: - goto st388 + goto st414 case 76: - goto st396 + goto st422 case 84: - goto st415 + goto st441 case 100: - goto st377 + goto st403 case 101: - goto st388 + goto st414 case 108: - goto st396 + goto st422 case 116: - goto st415 + goto st441 } - goto tr368 - st377: + goto tr416 + st403: p++ - st_case_377: + st_case_403: switch data[p] { case 73: - goto st378 + goto st404 case 105: - goto st378 + goto st404 } - goto tr368 - st378: + goto tr416 + st404: p++ - st_case_378: + st_case_404: switch data[p] { case 83: - goto st379 + goto st405 case 115: - goto st379 + goto st405 } - goto tr368 - st379: + goto tr416 + st405: p++ - st_case_379: + st_case_405: switch data[p] { case 80: - goto st380 + goto st406 case 112: - goto st380 + goto st406 } - goto tr368 - st380: + goto tr416 + st406: p++ - st_case_380: + st_case_406: switch data[p] { case 79: - goto st381 + goto st407 case 111: - goto st381 + goto st407 } - goto tr368 - st381: + goto tr416 + st407: p++ - st_case_381: + st_case_407: switch data[p] { case 83: - goto st382 + goto st408 case 115: - goto st382 + goto st408 } - goto tr368 - st382: + goto tr416 + st408: p++ - st_case_382: + st_case_408: switch data[p] { case 73: - goto st383 + goto st409 case 105: - goto st383 + goto st409 } - goto tr368 - st383: + goto tr416 + st409: p++ - st_case_383: + st_case_409: switch data[p] { case 84: - goto st384 + goto st410 case 116: - goto st384 + goto st410 } - goto tr368 - st384: + goto tr416 + st410: p++ - st_case_384: + st_case_410: switch data[p] { case 73: - goto st385 + goto st411 case 105: - goto st385 + goto st411 } - goto tr368 - st385: + goto tr416 + st411: p++ - st_case_385: + st_case_411: switch data[p] { case 79: - goto st386 + goto st412 case 111: - goto st386 + goto st412 } - goto tr368 - st386: + goto tr416 + st412: p++ - st_case_386: + st_case_412: switch data[p] { case 78: - goto st387 + goto st413 case 110: - goto st387 + goto st413 } - goto tr368 - st387: + goto tr416 + st413: p++ - st_case_387: + st_case_413: switch data[p] { case 9: - goto tr565 + goto tr597 case 32: - goto tr565 + goto tr597 case 58: - goto tr566 + goto tr598 } - goto tr368 - st388: + goto tr416 + st414: p++ - st_case_388: + st_case_414: switch data[p] { case 78: - goto st389 + goto st415 case 110: - goto st389 + goto st415 } - goto tr368 - st389: + goto tr416 + st415: p++ - st_case_389: + st_case_415: switch data[p] { case 67: - goto st390 + goto st416 case 99: - goto st390 + goto st416 } - goto tr368 - st390: + goto tr416 + st416: p++ - st_case_390: + st_case_416: switch data[p] { case 79: - goto st391 + goto st417 case 111: - goto st391 + goto st417 } - goto tr368 - st391: + goto tr416 + st417: p++ - st_case_391: + st_case_417: switch data[p] { case 68: - goto st392 + goto st418 case 100: - goto st392 + goto st418 } - goto tr368 - st392: + goto tr416 + st418: p++ - st_case_392: + st_case_418: switch data[p] { case 73: - goto st393 + goto st419 case 105: - goto st393 + goto st419 } - goto tr368 - st393: + goto tr416 + st419: p++ - st_case_393: + st_case_419: switch data[p] { case 78: - goto st394 + goto st420 case 110: - goto st394 + goto st420 } - goto tr368 - st394: + goto tr416 + st420: p++ - st_case_394: + st_case_420: switch data[p] { case 71: - goto st395 + goto st421 case 103: - goto st395 + goto st421 } - goto tr368 - st395: + goto tr416 + st421: p++ - st_case_395: + st_case_421: switch data[p] { case 9: - goto tr574 + goto tr606 case 32: - goto tr574 + goto tr606 case 58: - goto tr575 + goto tr607 } - goto tr368 - st396: + goto tr416 + st422: p++ - st_case_396: + st_case_422: switch data[p] { case 65: - goto st397 + goto st423 case 69: - goto st404 + goto st430 case 97: - goto st397 + goto st423 case 101: - goto st404 + goto st430 } - goto tr368 - st397: + goto tr416 + st423: p++ - st_case_397: + st_case_423: switch data[p] { case 78: - goto st398 + goto st424 case 110: - goto st398 + goto st424 } - goto tr368 - st398: + goto tr416 + st424: p++ - st_case_398: + st_case_424: switch data[p] { case 71: - goto st399 + goto st425 case 103: - goto st399 + goto st425 } - goto tr368 - st399: + goto tr416 + st425: p++ - st_case_399: + st_case_425: switch data[p] { case 85: - goto st400 + goto st426 case 117: - goto st400 + goto st426 } - goto tr368 - st400: + goto tr416 + st426: p++ - st_case_400: + st_case_426: switch data[p] { case 65: - goto st401 + goto st427 case 97: - goto st401 + goto st427 } - goto tr368 - st401: + goto tr416 + st427: p++ - st_case_401: + st_case_427: switch data[p] { case 71: - goto st402 + goto st428 case 103: - goto st402 + goto st428 } - goto tr368 - st402: + goto tr416 + st428: p++ - st_case_402: + st_case_428: switch data[p] { case 69: - goto st403 + goto st429 case 101: - goto st403 + goto st429 } - goto tr368 - st403: + goto tr416 + st429: p++ - st_case_403: + st_case_429: switch data[p] { case 9: - goto tr584 + goto tr616 case 32: - goto tr584 + goto tr616 case 58: - goto tr585 + goto tr617 } - goto tr368 - st404: + goto tr416 + st430: p++ - st_case_404: + st_case_430: switch data[p] { case 78: - goto st405 + goto st431 case 110: - goto st405 + goto st431 } - goto tr368 - st405: + goto tr416 + st431: p++ - st_case_405: + st_case_431: switch data[p] { case 71: - goto st406 + goto st432 case 103: - goto st406 + goto st432 } - goto tr368 - st406: + goto tr416 + st432: p++ - st_case_406: + st_case_432: switch data[p] { case 84: - goto st407 + goto st433 case 116: - goto st407 + goto st433 } - goto tr368 - st407: + goto tr416 + st433: p++ - st_case_407: + st_case_433: switch data[p] { case 72: - goto st408 + goto st434 case 104: - goto st408 + goto st434 } - goto tr368 - st408: + goto tr416 + st434: p++ - st_case_408: + st_case_434: switch data[p] { case 9: - goto st409 + goto st435 case 32: - goto st409 + goto st435 case 58: - goto st410 + goto st436 } - goto tr368 - st409: + goto tr416 + st435: p++ - st_case_409: + st_case_435: switch data[p] { case 9: - goto st409 + goto st435 case 32: - goto st409 + goto st435 case 58: - goto st410 + goto st436 } goto st0 - st410: + st436: p++ - st_case_410: + st_case_436: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -10942,34 +11762,34 @@ addrp=lastAddr(&msg.To) } switch _widec { case 9: - goto st410 + goto st436 case 32: - goto st410 + goto st436 case 525: - goto st412 + goto st438 } if 48 <= _widec && _widec <= 57 { - goto tr592 + goto tr624 } goto st0 -tr592: -//line sip.rl:505 +tr624: +//line sip.rl:508 clen=0 -//line sip.rl:252 +//line sip.rl:249 clen = clen * 10 + (int(data[p]) - 0x30) - goto st411 -tr594: -//line sip.rl:252 + goto st437 +tr626: +//line sip.rl:249 clen = clen * 10 + (int(data[p]) - 0x30) - goto st411 - st411: + goto st437 + st437: p++ - st_case_411: -//line msg_parse.go:10973 + st_case_437: +//line msg_parse.go:11793 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -10978,131 +11798,131 @@ tr594: } } if _widec == 269 { - goto st339 + goto st381 } if 48 <= _widec && _widec <= 57 { - goto tr594 + goto tr626 } goto st0 - st412: + st438: p++ - st_case_412: + st_case_438: if data[p] == 10 { - goto st413 + goto st439 } goto st0 - st413: + st439: p++ - st_case_413: + st_case_439: switch data[p] { case 9: - goto st414 + goto st440 case 32: - goto st414 + goto st440 } goto st0 - st414: + st440: p++ - st_case_414: + st_case_440: switch data[p] { case 9: - goto st414 + goto st440 case 32: - goto st414 + goto st440 } if 48 <= data[p] && data[p] <= 57 { - goto tr592 + goto tr624 } goto st0 - st415: + st441: p++ - st_case_415: + st_case_441: switch data[p] { case 89: - goto st416 + goto st442 case 121: - goto st416 + goto st442 } - goto tr368 - st416: + goto tr416 + st442: p++ - st_case_416: + st_case_442: switch data[p] { case 80: - goto st417 + goto st443 case 112: - goto st417 + goto st443 } - goto tr368 - st417: + goto tr416 + st443: p++ - st_case_417: + st_case_443: switch data[p] { case 69: - goto st418 + goto st444 case 101: - goto st418 + goto st444 } - goto tr368 - st418: + goto tr416 + st444: p++ - st_case_418: + st_case_444: switch data[p] { case 9: - goto st331 + goto st365 case 32: - goto st331 + goto st365 case 58: - goto st332 + goto st366 } - goto tr368 - st419: + goto tr416 + st445: p++ - st_case_419: + st_case_445: switch data[p] { case 69: - goto st420 + goto st446 case 101: - goto st420 + goto st446 } - goto tr368 - st420: + goto tr416 + st446: p++ - st_case_420: + st_case_446: switch data[p] { case 81: - goto st421 + goto st447 case 113: - goto st421 + goto st447 } - goto tr368 - st421: + goto tr416 + st447: p++ - st_case_421: + st_case_447: switch data[p] { case 9: - goto st422 + goto st448 case 32: - goto st422 + goto st448 case 58: - goto st423 + goto st449 } - goto tr368 - st422: + goto tr416 + st448: p++ - st_case_422: + st_case_448: switch data[p] { case 9: - goto st422 + goto st448 case 32: - goto st422 + goto st448 case 58: - goto st423 + goto st449 } goto st0 - st423: + st449: p++ - st_case_423: + st_case_449: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11112,26 +11932,26 @@ tr594: } switch _widec { case 9: - goto st423 + goto st449 case 32: - goto st423 + goto st449 case 525: - goto st430 + goto st456 } if 48 <= _widec && _widec <= 57 { - goto tr605 + goto tr637 } goto st0 -tr605: -//line sip.rl:260 +tr637: +//line sip.rl:257 msg.CSeq = msg.CSeq * 10 + (int(data[p]) - 0x30) - goto st424 - st424: + goto st450 + st450: p++ - st_case_424: -//line msg_parse.go:11135 + st_case_450: +//line msg_parse.go:11955 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11141,19 +11961,19 @@ tr605: } switch _widec { case 9: - goto st425 + goto st451 case 32: - goto st425 + goto st451 case 525: - goto st427 + goto st453 } if 48 <= _widec && _widec <= 57 { - goto tr605 + goto tr637 } goto st0 - st425: + st451: p++ - st_case_425: + st_case_451: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11163,53 +11983,53 @@ tr605: } switch _widec { case 9: - goto st425 + goto st451 case 32: - goto st425 + goto st451 case 33: - goto tr609 + goto tr641 case 37: - goto tr609 + goto tr641 case 39: - goto tr609 + goto tr641 case 126: - goto tr609 + goto tr641 case 525: - goto st427 + goto st453 } switch { case _widec < 48: switch { case _widec > 43: if 45 <= _widec && _widec <= 46 { - goto tr609 + goto tr641 } case _widec >= 42: - goto tr609 + goto tr641 } case _widec > 57: switch { case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto tr609 + goto tr641 } case _widec >= 65: - goto tr609 + goto tr641 } default: - goto tr609 + goto tr641 } goto st0 -tr609: -//line sip.rl:61 +tr641: +//line sip.rl:62 mark = p - goto st426 - st426: + goto st452 + st452: p++ - st_case_426: -//line msg_parse.go:11213 + st_case_452: +//line msg_parse.go:12033 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11219,400 +12039,400 @@ tr609: } switch _widec { case 33: - goto st426 + goto st452 case 37: - goto st426 + goto st452 case 39: - goto st426 + goto st452 case 126: - goto st426 + goto st452 case 269: - goto tr611 + goto tr643 } switch { case _widec < 48: switch { case _widec > 43: if 45 <= _widec && _widec <= 46 { - goto st426 + goto st452 } case _widec >= 42: - goto st426 + goto st452 } case _widec > 57: switch { case _widec > 90: if 95 <= _widec && _widec <= 122 { - goto st426 + goto st452 } case _widec >= 65: - goto st426 + goto st452 } default: - goto st426 + goto st452 } goto st0 - st427: + st453: p++ - st_case_427: + st_case_453: if data[p] == 10 { - goto st428 + goto st454 } goto st0 - st428: + st454: p++ - st_case_428: + st_case_454: switch data[p] { case 9: - goto st429 + goto st455 case 32: - goto st429 + goto st455 } goto st0 - st429: + st455: p++ - st_case_429: + st_case_455: switch data[p] { case 9: - goto st429 + goto st455 case 32: - goto st429 + goto st455 case 33: - goto tr609 + goto tr641 case 37: - goto tr609 + goto tr641 case 39: - goto tr609 + goto tr641 case 126: - goto tr609 + goto tr641 } switch { case data[p] < 48: switch { case data[p] > 43: if 45 <= data[p] && data[p] <= 46 { - goto tr609 + goto tr641 } case data[p] >= 42: - goto tr609 + goto tr641 } case data[p] > 57: switch { case data[p] > 90: if 95 <= data[p] && data[p] <= 122 { - goto tr609 + goto tr641 } case data[p] >= 65: - goto tr609 + goto tr641 } default: - goto tr609 + goto tr641 } goto st0 - st430: + st456: p++ - st_case_430: + st_case_456: if data[p] == 10 { - goto st431 + goto st457 } goto st0 - st431: + st457: p++ - st_case_431: + st_case_457: switch data[p] { case 9: - goto st432 + goto st458 case 32: - goto st432 + goto st458 } goto st0 - st432: + st458: p++ - st_case_432: + st_case_458: switch data[p] { case 9: - goto st432 + goto st458 case 32: - goto st432 + goto st458 } if 48 <= data[p] && data[p] <= 57 { - goto tr605 + goto tr637 } goto st0 - st433: + st459: p++ - st_case_433: + st_case_459: switch data[p] { case 65: - goto st434 + goto st460 case 97: - goto st434 + goto st460 } - goto tr368 - st434: + goto tr416 + st460: p++ - st_case_434: + st_case_460: switch data[p] { case 84: - goto st435 + goto st461 case 116: - goto st435 + goto st461 } - goto tr368 - st435: + goto tr416 + st461: p++ - st_case_435: + st_case_461: switch data[p] { case 69: - goto st436 + goto st462 case 101: - goto st436 + goto st462 } - goto tr368 - st436: + goto tr416 + st462: p++ - st_case_436: + st_case_462: switch data[p] { case 9: - goto tr619 + goto tr651 case 32: - goto tr619 + goto tr651 case 58: - goto tr620 + goto tr652 } - goto tr368 - st437: + goto tr416 + st463: p++ - st_case_437: + st_case_463: switch data[p] { case 9: - goto tr574 + goto tr606 case 32: - goto tr574 + goto tr606 case 58: - goto tr575 + goto tr607 case 82: - goto st438 + goto st464 case 86: - goto st447 + goto st473 case 88: - goto st451 + goto st477 case 114: - goto st438 + goto st464 case 118: - goto st447 + goto st473 case 120: - goto st451 + goto st477 } - goto tr368 - st438: + goto tr416 + st464: p++ - st_case_438: + st_case_464: switch data[p] { case 82: - goto st439 + goto st465 case 114: - goto st439 + goto st465 } - goto tr368 - st439: + goto tr416 + st465: p++ - st_case_439: + st_case_465: switch data[p] { case 79: - goto st440 + goto st466 case 111: - goto st440 + goto st466 } - goto tr368 - st440: + goto tr416 + st466: p++ - st_case_440: + st_case_466: switch data[p] { case 82: - goto st441 + goto st467 case 114: - goto st441 + goto st467 } - goto tr368 - st441: + goto tr416 + st467: p++ - st_case_441: + st_case_467: if data[p] == 45 { - goto st442 + goto st468 } - goto tr368 - st442: + goto tr416 + st468: p++ - st_case_442: + st_case_468: switch data[p] { case 73: - goto st443 + goto st469 case 105: - goto st443 + goto st469 } - goto tr368 - st443: + goto tr416 + st469: p++ - st_case_443: + st_case_469: switch data[p] { case 78: - goto st444 + goto st470 case 110: - goto st444 + goto st470 } - goto tr368 - st444: + goto tr416 + st470: p++ - st_case_444: + st_case_470: switch data[p] { case 70: - goto st445 + goto st471 case 102: - goto st445 + goto st471 } - goto tr368 - st445: + goto tr416 + st471: p++ - st_case_445: + st_case_471: switch data[p] { case 79: - goto st446 + goto st472 case 111: - goto st446 + goto st472 } - goto tr368 - st446: + goto tr416 + st472: p++ - st_case_446: + st_case_472: switch data[p] { case 9: - goto tr632 + goto tr664 case 32: - goto tr632 + goto tr664 case 58: - goto tr633 + goto tr665 } - goto tr368 - st447: + goto tr416 + st473: p++ - st_case_447: + st_case_473: switch data[p] { case 69: - goto st448 + goto st474 case 101: - goto st448 + goto st474 } - goto tr368 - st448: + goto tr416 + st474: p++ - st_case_448: + st_case_474: switch data[p] { case 78: - goto st449 + goto st475 case 110: - goto st449 + goto st475 } - goto tr368 - st449: + goto tr416 + st475: p++ - st_case_449: + st_case_475: switch data[p] { case 84: - goto st450 + goto st476 case 116: - goto st450 + goto st476 } - goto tr368 - st450: + goto tr416 + st476: p++ - st_case_450: + st_case_476: switch data[p] { case 9: - goto tr637 + goto tr669 case 32: - goto tr637 + goto tr669 case 58: - goto tr638 + goto tr670 } - goto tr368 - st451: + goto tr416 + st477: p++ - st_case_451: + st_case_477: switch data[p] { case 80: - goto st452 + goto st478 case 112: - goto st452 + goto st478 } - goto tr368 - st452: + goto tr416 + st478: p++ - st_case_452: + st_case_478: switch data[p] { case 73: - goto st453 + goto st479 case 105: - goto st453 + goto st479 } - goto tr368 - st453: + goto tr416 + st479: p++ - st_case_453: + st_case_479: switch data[p] { case 82: - goto st454 + goto st480 case 114: - goto st454 + goto st480 } - goto tr368 - st454: + goto tr416 + st480: p++ - st_case_454: + st_case_480: switch data[p] { case 69: - goto st455 + goto st481 case 101: - goto st455 + goto st481 } - goto tr368 - st455: + goto tr416 + st481: p++ - st_case_455: + st_case_481: switch data[p] { case 83: - goto st456 + goto st482 case 115: - goto st456 + goto st482 } - goto tr368 - st456: + goto tr416 + st482: p++ - st_case_456: + st_case_482: switch data[p] { case 9: - goto st457 + goto st483 case 32: - goto st457 + goto st483 case 58: - goto st458 + goto st484 } - goto tr368 - st457: + goto tr416 + st483: p++ - st_case_457: + st_case_483: switch data[p] { case 9: - goto st457 + goto st483 case 32: - goto st457 + goto st483 case 58: - goto st458 + goto st484 } goto st0 - st458: + st484: p++ - st_case_458: + st_case_484: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11622,34 +12442,34 @@ tr609: } switch _widec { case 9: - goto st458 + goto st484 case 32: - goto st458 + goto st484 case 525: - goto st460 + goto st486 } if 48 <= _widec && _widec <= 57 { - goto tr646 + goto tr678 } goto st0 -tr646: -//line sip.rl:508 +tr678: +//line sip.rl:510 msg.Expires=0 -//line sip.rl:268 +//line sip.rl:265 msg.Expires = msg.Expires * 10 + (int(data[p]) - 0x30) - goto st459 -tr648: -//line sip.rl:268 + goto st485 +tr680: +//line sip.rl:265 msg.Expires = msg.Expires * 10 + (int(data[p]) - 0x30) - goto st459 - st459: + goto st485 + st485: p++ - st_case_459: -//line msg_parse.go:11653 + st_case_485: +//line msg_parse.go:12473 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11658,241 +12478,241 @@ tr648: } } if _widec == 269 { - goto st339 + goto st381 } if 48 <= _widec && _widec <= 57 { - goto tr648 + goto tr680 } goto st0 - st460: + st486: p++ - st_case_460: + st_case_486: if data[p] == 10 { - goto st461 + goto st487 } goto st0 - st461: + st487: p++ - st_case_461: + st_case_487: switch data[p] { case 9: - goto st462 + goto st488 case 32: - goto st462 + goto st488 } goto st0 - st462: + st488: p++ - st_case_462: + st_case_488: switch data[p] { case 9: - goto st462 + goto st488 case 32: - goto st462 + goto st488 } if 48 <= data[p] && data[p] <= 57 { - goto tr646 + goto tr678 } goto st0 - st463: + st489: p++ - st_case_463: + st_case_489: switch data[p] { case 9: - goto tr651 + goto tr683 case 32: - goto tr651 + goto tr683 case 58: - goto tr652 + goto tr684 case 82: - goto st464 + goto st490 case 114: - goto st464 + goto st490 } - goto tr368 - st464: + goto tr416 + st490: p++ - st_case_464: + st_case_490: switch data[p] { case 79: - goto st465 + goto st491 case 111: - goto st465 + goto st491 } - goto tr368 - st465: + goto tr416 + st491: p++ - st_case_465: + st_case_491: switch data[p] { case 77: - goto st466 + goto st492 case 109: - goto st466 + goto st492 } - goto tr368 - st466: + goto tr416 + st492: p++ - st_case_466: + st_case_492: switch data[p] { case 9: - goto tr651 + goto tr683 case 32: - goto tr651 + goto tr683 case 58: - goto tr652 + goto tr684 } - goto tr368 - st467: + goto tr416 + st493: p++ - st_case_467: + st_case_493: switch data[p] { case 9: - goto st351 + goto st376 case 32: - goto st351 + goto st376 case 58: - goto st352 + goto st377 case 78: - goto st468 + goto st494 case 110: - goto st468 + goto st494 } - goto tr368 - st468: + goto tr416 + st494: p++ - st_case_468: + st_case_494: if data[p] == 45 { - goto st469 + goto st495 } - goto tr368 - st469: + goto tr416 + st495: p++ - st_case_469: + st_case_495: switch data[p] { case 82: - goto st470 + goto st496 case 114: - goto st470 + goto st496 } - goto tr368 - st470: + goto tr416 + st496: p++ - st_case_470: + st_case_496: switch data[p] { case 69: - goto st471 + goto st497 case 101: - goto st471 + goto st497 } - goto tr368 - st471: + goto tr416 + st497: p++ - st_case_471: + st_case_497: switch data[p] { case 80: - goto st472 + goto st498 case 112: - goto st472 + goto st498 } - goto tr368 - st472: + goto tr416 + st498: p++ - st_case_472: + st_case_498: switch data[p] { case 76: - goto st473 + goto st499 case 108: - goto st473 + goto st499 } - goto tr368 - st473: + goto tr416 + st499: p++ - st_case_473: + st_case_499: switch data[p] { case 89: - goto st474 + goto st500 case 121: - goto st474 + goto st500 } - goto tr368 - st474: + goto tr416 + st500: p++ - st_case_474: + st_case_500: if data[p] == 45 { - goto st475 + goto st501 } - goto tr368 - st475: + goto tr416 + st501: p++ - st_case_475: + st_case_501: switch data[p] { case 84: - goto st476 + goto st502 case 116: - goto st476 + goto st502 } - goto tr368 - st476: + goto tr416 + st502: p++ - st_case_476: + st_case_502: switch data[p] { case 79: - goto st477 + goto st503 case 111: - goto st477 + goto st503 } - goto tr368 - st477: + goto tr416 + st503: p++ - st_case_477: + st_case_503: switch data[p] { case 9: - goto tr666 + goto tr698 case 32: - goto tr666 + goto tr698 case 58: - goto tr667 + goto tr699 } - goto tr368 - st478: + goto tr416 + st504: p++ - st_case_478: + st_case_504: switch data[p] { case 9: - goto tr668 + goto tr700 case 32: - goto tr668 + goto tr700 case 58: - goto tr669 + goto tr701 } - goto tr368 - st479: + goto tr416 + st505: p++ - st_case_479: + st_case_505: switch data[p] { case 9: - goto st480 + goto st506 case 32: - goto st480 + goto st506 case 58: - goto st481 + goto st507 } - goto tr368 - st480: + goto tr416 + st506: p++ - st_case_480: + st_case_506: switch data[p] { case 9: - goto st480 + goto st506 case 32: - goto st480 + goto st506 case 58: - goto st481 + goto st507 } goto st0 - st481: + st507: p++ - st_case_481: + st_case_507: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11902,64 +12722,64 @@ tr648: } switch _widec { case 9: - goto st481 + goto st507 case 32: - goto st481 + goto st507 case 525: - goto st483 + goto st509 } if 48 <= _widec && _widec <= 57 { - goto tr672 + goto tr704 } goto st0 -tr672: -//line sip.rl:505 +tr704: +//line sip.rl:508 clen=0 -//line sip.rl:252 +//line sip.rl:249 clen = clen * 10 + (int(data[p]) - 0x30) -//line sip.rl:508 +//line sip.rl:510 msg.Expires=0 -//line sip.rl:268 +//line sip.rl:265 msg.Expires = msg.Expires * 10 + (int(data[p]) - 0x30) -//line sip.rl:509 +//line sip.rl:511 msg.MaxForwards=0 -//line sip.rl:272 +//line sip.rl:269 msg.MaxForwards = msg.MaxForwards * 10 + (int(data[p]) - 0x30) -//line sip.rl:510 +//line sip.rl:512 msg.MinExpires=0 -//line sip.rl:276 +//line sip.rl:273 msg.MinExpires = msg.MinExpires * 10 + (int(data[p]) - 0x30) - goto st482 -tr674: -//line sip.rl:252 + goto st508 +tr706: +//line sip.rl:249 clen = clen * 10 + (int(data[p]) - 0x30) -//line sip.rl:268 +//line sip.rl:265 msg.Expires = msg.Expires * 10 + (int(data[p]) - 0x30) -//line sip.rl:272 +//line sip.rl:269 msg.MaxForwards = msg.MaxForwards * 10 + (int(data[p]) - 0x30) -//line sip.rl:276 +//line sip.rl:273 msg.MinExpires = msg.MinExpires * 10 + (int(data[p]) - 0x30) - goto st482 - st482: + goto st508 + st508: p++ - st_case_482: -//line msg_parse.go:11963 + st_case_508: +//line msg_parse.go:12783 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -11968,186 +12788,186 @@ tr674: } } if _widec == 269 { - goto st339 + goto st381 } if 48 <= _widec && _widec <= 57 { - goto tr674 + goto tr706 } goto st0 - st483: + st509: p++ - st_case_483: + st_case_509: if data[p] == 10 { - goto st484 + goto st510 } goto st0 - st484: + st510: p++ - st_case_484: + st_case_510: switch data[p] { case 9: - goto st485 + goto st511 case 32: - goto st485 + goto st511 } goto st0 - st485: + st511: p++ - st_case_485: + st_case_511: switch data[p] { case 9: - goto st485 + goto st511 case 32: - goto st485 + goto st511 } if 48 <= data[p] && data[p] <= 57 { - goto tr672 + goto tr704 } goto st0 - st486: + st512: p++ - st_case_486: + st_case_512: switch data[p] { case 9: - goto tr540 + goto tr572 case 32: - goto tr540 + goto tr572 case 58: - goto tr541 + goto tr573 case 65: - goto st487 + goto st513 case 73: - goto st504 + goto st530 case 97: - goto st487 + goto st513 case 105: - goto st504 + goto st530 } - goto tr368 - st487: + goto tr416 + st513: p++ - st_case_487: + st_case_513: switch data[p] { case 88: - goto st488 + goto st514 case 120: - goto st488 + goto st514 } - goto tr368 - st488: + goto tr416 + st514: p++ - st_case_488: + st_case_514: if data[p] == 45 { - goto st489 + goto st515 } - goto tr368 - st489: + goto tr416 + st515: p++ - st_case_489: + st_case_515: switch data[p] { case 70: - goto st490 + goto st516 case 102: - goto st490 + goto st516 } - goto tr368 - st490: + goto tr416 + st516: p++ - st_case_490: + st_case_516: switch data[p] { case 79: - goto st491 + goto st517 case 111: - goto st491 + goto st517 } - goto tr368 - st491: + goto tr416 + st517: p++ - st_case_491: + st_case_517: switch data[p] { case 82: - goto st492 + goto st518 case 114: - goto st492 + goto st518 } - goto tr368 - st492: + goto tr416 + st518: p++ - st_case_492: + st_case_518: switch data[p] { case 87: - goto st493 + goto st519 case 119: - goto st493 + goto st519 } - goto tr368 - st493: + goto tr416 + st519: p++ - st_case_493: + st_case_519: switch data[p] { case 65: - goto st494 + goto st520 case 97: - goto st494 + goto st520 } - goto tr368 - st494: + goto tr416 + st520: p++ - st_case_494: + st_case_520: switch data[p] { case 82: - goto st495 + goto st521 case 114: - goto st495 + goto st521 } - goto tr368 - st495: + goto tr416 + st521: p++ - st_case_495: + st_case_521: switch data[p] { case 68: - goto st496 + goto st522 case 100: - goto st496 + goto st522 } - goto tr368 - st496: + goto tr416 + st522: p++ - st_case_496: + st_case_522: switch data[p] { case 83: - goto st497 + goto st523 case 115: - goto st497 + goto st523 } - goto tr368 - st497: + goto tr416 + st523: p++ - st_case_497: + st_case_523: switch data[p] { case 9: - goto st498 + goto st524 case 32: - goto st498 + goto st524 case 58: - goto st499 + goto st525 } - goto tr368 - st498: + goto tr416 + st524: p++ - st_case_498: + st_case_524: switch data[p] { case 9: - goto st498 + goto st524 case 32: - goto st498 + goto st524 case 58: - goto st499 + goto st525 } goto st0 - st499: + st525: p++ - st_case_499: + st_case_525: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -12157,34 +12977,34 @@ tr674: } switch _widec { case 9: - goto st499 + goto st525 case 32: - goto st499 + goto st525 case 525: - goto st501 + goto st527 } if 48 <= _widec && _widec <= 57 { - goto tr691 + goto tr723 } goto st0 -tr691: -//line sip.rl:509 +tr723: +//line sip.rl:511 msg.MaxForwards=0 -//line sip.rl:272 +//line sip.rl:269 msg.MaxForwards = msg.MaxForwards * 10 + (int(data[p]) - 0x30) - goto st500 -tr693: -//line sip.rl:272 + goto st526 +tr725: +//line sip.rl:269 msg.MaxForwards = msg.MaxForwards * 10 + (int(data[p]) - 0x30) - goto st500 - st500: + goto st526 + st526: p++ - st_case_500: -//line msg_parse.go:12188 + st_case_526: +//line msg_parse.go:13008 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -12193,259 +13013,259 @@ tr693: } } if _widec == 269 { - goto st339 + goto st381 } if 48 <= _widec && _widec <= 57 { - goto tr693 + goto tr725 } goto st0 - st501: + st527: p++ - st_case_501: + st_case_527: if data[p] == 10 { - goto st502 + goto st528 } goto st0 - st502: + st528: p++ - st_case_502: + st_case_528: switch data[p] { case 9: - goto st503 + goto st529 case 32: - goto st503 + goto st529 } goto st0 - st503: + st529: p++ - st_case_503: + st_case_529: switch data[p] { case 9: - goto st503 + goto st529 case 32: - goto st503 + goto st529 } if 48 <= data[p] && data[p] <= 57 { - goto tr691 + goto tr723 } goto st0 - st504: + st530: p++ - st_case_504: + st_case_530: switch data[p] { case 77: - goto st505 + goto st531 case 78: - goto st515 + goto st541 case 109: - goto st505 + goto st531 case 110: - goto st515 + goto st541 } - goto tr368 - st505: + goto tr416 + st531: p++ - st_case_505: + st_case_531: switch data[p] { case 69: - goto st506 + goto st532 case 101: - goto st506 + goto st532 } - goto tr368 - st506: + goto tr416 + st532: p++ - st_case_506: + st_case_532: if data[p] == 45 { - goto st507 + goto st533 } - goto tr368 - st507: + goto tr416 + st533: p++ - st_case_507: + st_case_533: switch data[p] { case 86: - goto st508 + goto st534 case 118: - goto st508 + goto st534 } - goto tr368 - st508: + goto tr416 + st534: p++ - st_case_508: + st_case_534: switch data[p] { case 69: - goto st509 + goto st535 case 101: - goto st509 + goto st535 } - goto tr368 - st509: + goto tr416 + st535: p++ - st_case_509: + st_case_535: switch data[p] { case 82: - goto st510 + goto st536 case 114: - goto st510 + goto st536 } - goto tr368 - st510: + goto tr416 + st536: p++ - st_case_510: + st_case_536: switch data[p] { case 83: - goto st511 + goto st537 case 115: - goto st511 + goto st537 } - goto tr368 - st511: + goto tr416 + st537: p++ - st_case_511: + st_case_537: switch data[p] { case 73: - goto st512 + goto st538 case 105: - goto st512 + goto st538 } - goto tr368 - st512: + goto tr416 + st538: p++ - st_case_512: + st_case_538: switch data[p] { case 79: - goto st513 + goto st539 case 111: - goto st513 + goto st539 } - goto tr368 - st513: + goto tr416 + st539: p++ - st_case_513: + st_case_539: switch data[p] { case 78: - goto st514 + goto st540 case 110: - goto st514 + goto st540 } - goto tr368 - st514: + goto tr416 + st540: p++ - st_case_514: + st_case_540: switch data[p] { case 9: - goto tr707 + goto tr739 case 32: - goto tr707 + goto tr739 case 58: - goto tr708 + goto tr740 } - goto tr368 - st515: + goto tr416 + st541: p++ - st_case_515: + st_case_541: if data[p] == 45 { - goto st516 + goto st542 } - goto tr368 - st516: + goto tr416 + st542: p++ - st_case_516: + st_case_542: switch data[p] { case 69: - goto st517 + goto st543 case 101: - goto st517 + goto st543 } - goto tr368 - st517: + goto tr416 + st543: p++ - st_case_517: + st_case_543: switch data[p] { case 88: - goto st518 + goto st544 case 120: - goto st518 + goto st544 } - goto tr368 - st518: + goto tr416 + st544: p++ - st_case_518: + st_case_544: switch data[p] { case 80: - goto st519 + goto st545 case 112: - goto st519 + goto st545 } - goto tr368 - st519: + goto tr416 + st545: p++ - st_case_519: + st_case_545: switch data[p] { case 73: - goto st520 + goto st546 case 105: - goto st520 + goto st546 } - goto tr368 - st520: + goto tr416 + st546: p++ - st_case_520: + st_case_546: switch data[p] { case 82: - goto st521 + goto st547 case 114: - goto st521 + goto st547 } - goto tr368 - st521: + goto tr416 + st547: p++ - st_case_521: + st_case_547: switch data[p] { case 69: - goto st522 + goto st548 case 101: - goto st522 + goto st548 } - goto tr368 - st522: + goto tr416 + st548: p++ - st_case_522: + st_case_548: switch data[p] { case 83: - goto st523 + goto st549 case 115: - goto st523 + goto st549 } - goto tr368 - st523: + goto tr416 + st549: p++ - st_case_523: + st_case_549: switch data[p] { case 9: - goto st524 + goto st550 case 32: - goto st524 + goto st550 case 58: - goto st525 + goto st551 } - goto tr368 - st524: + goto tr416 + st550: p++ - st_case_524: + st_case_550: switch data[p] { case 9: - goto st524 + goto st550 case 32: - goto st524 + goto st550 case 58: - goto st525 + goto st551 } goto st0 - st525: + st551: p++ - st_case_525: + st_case_551: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -12455,34 +13275,34 @@ tr693: } switch _widec { case 9: - goto st525 + goto st551 case 32: - goto st525 + goto st551 case 525: - goto st527 + goto st553 } if 48 <= _widec && _widec <= 57 { - goto tr719 + goto tr751 } goto st0 -tr719: -//line sip.rl:510 +tr751: +//line sip.rl:512 msg.MinExpires=0 -//line sip.rl:276 +//line sip.rl:273 msg.MinExpires = msg.MinExpires * 10 + (int(data[p]) - 0x30) - goto st526 -tr721: -//line sip.rl:276 + goto st552 +tr753: +//line sip.rl:273 msg.MinExpires = msg.MinExpires * 10 + (int(data[p]) - 0x30) - goto st526 - st526: + goto st552 + st552: p++ - st_case_526: -//line msg_parse.go:12486 + st_case_552: +//line msg_parse.go:13306 _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -12491,1950 +13311,1950 @@ tr721: } } if _widec == 269 { - goto st339 + goto st381 } if 48 <= _widec && _widec <= 57 { - goto tr721 + goto tr753 } goto st0 - st527: + st553: p++ - st_case_527: + st_case_553: if data[p] == 10 { - goto st528 + goto st554 } goto st0 - st528: + st554: p++ - st_case_528: + st_case_554: switch data[p] { case 9: - goto st529 + goto st555 case 32: - goto st529 + goto st555 } goto st0 - st529: + st555: p++ - st_case_529: + st_case_555: switch data[p] { case 9: - goto st529 + goto st555 case 32: - goto st529 + goto st555 } if 48 <= data[p] && data[p] <= 57 { - goto tr719 + goto tr751 } goto st0 - st530: + st556: p++ - st_case_530: + st_case_556: switch data[p] { case 9: - goto tr637 + goto tr669 case 32: - goto tr637 + goto tr669 case 58: - goto tr638 + goto tr670 case 82: - goto st531 + goto st557 case 114: - goto st531 + goto st557 } - goto tr368 - st531: + goto tr416 + st557: p++ - st_case_531: + st_case_557: switch data[p] { case 71: - goto st532 + goto st558 case 103: - goto st532 + goto st558 } - goto tr368 - st532: + goto tr416 + st558: p++ - st_case_532: + st_case_558: switch data[p] { case 65: - goto st533 + goto st559 case 97: - goto st533 + goto st559 } - goto tr368 - st533: + goto tr416 + st559: p++ - st_case_533: + st_case_559: switch data[p] { case 78: - goto st534 + goto st560 case 110: - goto st534 + goto st560 } - goto tr368 - st534: + goto tr416 + st560: p++ - st_case_534: + st_case_560: switch data[p] { case 73: - goto st535 + goto st561 case 105: - goto st535 + goto st561 } - goto tr368 - st535: + goto tr416 + st561: p++ - st_case_535: + st_case_561: switch data[p] { case 90: - goto st536 + goto st562 case 122: - goto st536 + goto st562 } - goto tr368 - st536: + goto tr416 + st562: p++ - st_case_536: + st_case_562: switch data[p] { case 65: - goto st537 + goto st563 case 97: - goto st537 + goto st563 } - goto tr368 - st537: + goto tr416 + st563: p++ - st_case_537: + st_case_563: switch data[p] { case 84: - goto st538 + goto st564 case 116: - goto st538 + goto st564 } - goto tr368 - st538: + goto tr416 + st564: p++ - st_case_538: + st_case_564: switch data[p] { case 73: - goto st539 + goto st565 case 105: - goto st539 + goto st565 } - goto tr368 - st539: + goto tr416 + st565: p++ - st_case_539: + st_case_565: switch data[p] { case 79: - goto st540 + goto st566 case 111: - goto st540 + goto st566 } - goto tr368 - st540: + goto tr416 + st566: p++ - st_case_540: + st_case_566: switch data[p] { case 78: - goto st541 + goto st567 case 110: - goto st541 + goto st567 } - goto tr368 - st541: + goto tr416 + st567: p++ - st_case_541: + st_case_567: switch data[p] { case 9: - goto tr735 + goto tr767 case 32: - goto tr735 + goto tr767 case 58: - goto tr736 + goto tr768 } - goto tr368 - st542: + goto tr416 + st568: p++ - st_case_542: + st_case_568: switch data[p] { case 45: - goto st543 + goto st569 case 82: - goto st561 + goto st587 case 114: - goto st561 + goto st587 } - goto tr368 - st543: + goto tr416 + st569: p++ - st_case_543: + st_case_569: switch data[p] { case 65: - goto st544 + goto st570 case 97: - goto st544 + goto st570 } - goto tr368 - st544: + goto tr416 + st570: p++ - st_case_544: + st_case_570: switch data[p] { case 83: - goto st545 + goto st571 case 115: - goto st545 + goto st571 } - goto tr368 - st545: + goto tr416 + st571: p++ - st_case_545: + st_case_571: switch data[p] { case 83: - goto st546 + goto st572 case 115: - goto st546 + goto st572 } - goto tr368 - st546: + goto tr416 + st572: p++ - st_case_546: + st_case_572: switch data[p] { case 69: - goto st547 + goto st573 case 101: - goto st547 + goto st573 } - goto tr368 - st547: + goto tr416 + st573: p++ - st_case_547: + st_case_573: switch data[p] { case 82: - goto st548 + goto st574 case 114: - goto st548 + goto st574 } - goto tr368 - st548: + goto tr416 + st574: p++ - st_case_548: + st_case_574: switch data[p] { case 84: - goto st549 + goto st575 case 116: - goto st549 + goto st575 } - goto tr368 - st549: + goto tr416 + st575: p++ - st_case_549: + st_case_575: switch data[p] { case 69: - goto st550 + goto st576 case 101: - goto st550 + goto st576 } - goto tr368 - st550: + goto tr416 + st576: p++ - st_case_550: + st_case_576: switch data[p] { case 68: - goto st551 + goto st577 case 100: - goto st551 + goto st577 } - goto tr368 - st551: + goto tr416 + st577: p++ - st_case_551: + st_case_577: if data[p] == 45 { - goto st552 + goto st578 } - goto tr368 - st552: + goto tr416 + st578: p++ - st_case_552: + st_case_578: switch data[p] { case 73: - goto st553 + goto st579 case 105: - goto st553 + goto st579 } - goto tr368 - st553: + goto tr416 + st579: p++ - st_case_553: + st_case_579: switch data[p] { case 68: - goto st554 + goto st580 case 100: - goto st554 + goto st580 } - goto tr368 - st554: + goto tr416 + st580: p++ - st_case_554: + st_case_580: switch data[p] { case 69: - goto st555 + goto st581 case 101: - goto st555 + goto st581 } - goto tr368 - st555: + goto tr416 + st581: p++ - st_case_555: + st_case_581: switch data[p] { case 78: - goto st556 + goto st582 case 110: - goto st556 + goto st582 } - goto tr368 - st556: + goto tr416 + st582: p++ - st_case_556: + st_case_582: switch data[p] { case 84: - goto st557 + goto st583 case 116: - goto st557 + goto st583 } - goto tr368 - st557: + goto tr416 + st583: p++ - st_case_557: + st_case_583: switch data[p] { case 73: - goto st558 + goto st584 case 105: - goto st558 + goto st584 } - goto tr368 - st558: + goto tr416 + st584: p++ - st_case_558: + st_case_584: switch data[p] { case 84: - goto st559 + goto st585 case 116: - goto st559 + goto st585 } - goto tr368 - st559: + goto tr416 + st585: p++ - st_case_559: + st_case_585: switch data[p] { case 89: - goto st560 + goto st586 case 121: - goto st560 + goto st586 } - goto tr368 - st560: + goto tr416 + st586: p++ - st_case_560: + st_case_586: switch data[p] { case 9: - goto tr756 + goto tr788 case 32: - goto tr756 + goto tr788 case 58: - goto tr757 + goto tr789 } - goto tr368 - st561: + goto tr416 + st587: p++ - st_case_561: + st_case_587: switch data[p] { case 73: - goto st562 + goto st588 case 79: - goto st568 + goto st594 case 105: - goto st562 + goto st588 case 111: - goto st568 + goto st594 } - goto tr368 - st562: + goto tr416 + st588: p++ - st_case_562: + st_case_588: switch data[p] { case 79: - goto st563 + goto st589 case 111: - goto st563 + goto st589 } - goto tr368 - st563: + goto tr416 + st589: p++ - st_case_563: + st_case_589: switch data[p] { case 82: - goto st564 + goto st590 case 114: - goto st564 + goto st590 } - goto tr368 - st564: + goto tr416 + st590: p++ - st_case_564: + st_case_590: switch data[p] { case 73: - goto st565 + goto st591 case 105: - goto st565 + goto st591 } - goto tr368 - st565: + goto tr416 + st591: p++ - st_case_565: + st_case_591: switch data[p] { case 84: - goto st566 + goto st592 case 116: - goto st566 + goto st592 } - goto tr368 - st566: + goto tr416 + st592: p++ - st_case_566: + st_case_592: switch data[p] { case 89: - goto st567 + goto st593 case 121: - goto st567 + goto st593 } - goto tr368 - st567: + goto tr416 + st593: p++ - st_case_567: + st_case_593: switch data[p] { case 9: - goto tr765 + goto tr797 case 32: - goto tr765 + goto tr797 case 58: - goto tr766 + goto tr798 } - goto tr368 - st568: + goto tr416 + st594: p++ - st_case_568: + st_case_594: switch data[p] { case 88: - goto st569 + goto st595 case 120: - goto st569 + goto st595 } - goto tr368 - st569: + goto tr416 + st595: p++ - st_case_569: + st_case_595: switch data[p] { case 89: - goto st570 + goto st596 case 121: - goto st570 + goto st596 } - goto tr368 - st570: + goto tr416 + st596: p++ - st_case_570: + st_case_596: if data[p] == 45 { - goto st571 + goto st597 } - goto tr368 - st571: + goto tr416 + st597: p++ - st_case_571: + st_case_597: switch data[p] { case 65: - goto st572 + goto st598 case 82: - goto st593 + goto st619 case 97: - goto st572 + goto st598 case 114: - goto st593 + goto st619 } - goto tr368 - st572: + goto tr416 + st598: p++ - st_case_572: + st_case_598: switch data[p] { case 85: - goto st573 + goto st599 case 117: - goto st573 + goto st599 } - goto tr368 - st573: + goto tr416 + st599: p++ - st_case_573: + st_case_599: switch data[p] { case 84: - goto st574 + goto st600 case 116: - goto st574 + goto st600 } - goto tr368 - st574: + goto tr416 + st600: p++ - st_case_574: + st_case_600: switch data[p] { case 72: - goto st575 + goto st601 case 104: - goto st575 + goto st601 } - goto tr368 - st575: + goto tr416 + st601: p++ - st_case_575: + st_case_601: switch data[p] { case 69: - goto st576 + goto st602 case 79: - goto st584 + goto st610 case 101: - goto st576 + goto st602 case 111: - goto st584 + goto st610 } - goto tr368 - st576: + goto tr416 + st602: p++ - st_case_576: + st_case_602: switch data[p] { case 78: - goto st577 + goto st603 case 110: - goto st577 + goto st603 } - goto tr368 - st577: + goto tr416 + st603: p++ - st_case_577: + st_case_603: switch data[p] { case 84: - goto st578 + goto st604 case 116: - goto st578 + goto st604 } - goto tr368 - st578: + goto tr416 + st604: p++ - st_case_578: + st_case_604: switch data[p] { case 73: - goto st579 + goto st605 case 105: - goto st579 + goto st605 } - goto tr368 - st579: + goto tr416 + st605: p++ - st_case_579: + st_case_605: switch data[p] { case 67: - goto st580 + goto st606 case 99: - goto st580 + goto st606 } - goto tr368 - st580: + goto tr416 + st606: p++ - st_case_580: + st_case_606: switch data[p] { case 65: - goto st581 + goto st607 case 97: - goto st581 + goto st607 } - goto tr368 - st581: + goto tr416 + st607: p++ - st_case_581: + st_case_607: switch data[p] { case 84: - goto st582 + goto st608 case 116: - goto st582 + goto st608 } - goto tr368 - st582: + goto tr416 + st608: p++ - st_case_582: + st_case_608: switch data[p] { case 69: - goto st583 + goto st609 case 101: - goto st583 + goto st609 } - goto tr368 - st583: + goto tr416 + st609: p++ - st_case_583: + st_case_609: switch data[p] { case 9: - goto tr784 + goto tr816 case 32: - goto tr784 + goto tr816 case 58: - goto tr785 + goto tr817 } - goto tr368 - st584: + goto tr416 + st610: p++ - st_case_584: + st_case_610: switch data[p] { case 82: - goto st585 + goto st611 case 114: - goto st585 + goto st611 } - goto tr368 - st585: + goto tr416 + st611: p++ - st_case_585: + st_case_611: switch data[p] { case 73: - goto st586 + goto st612 case 105: - goto st586 + goto st612 } - goto tr368 - st586: + goto tr416 + st612: p++ - st_case_586: + st_case_612: switch data[p] { case 90: - goto st587 + goto st613 case 122: - goto st587 + goto st613 } - goto tr368 - st587: + goto tr416 + st613: p++ - st_case_587: + st_case_613: switch data[p] { case 65: - goto st588 + goto st614 case 97: - goto st588 + goto st614 } - goto tr368 - st588: + goto tr416 + st614: p++ - st_case_588: + st_case_614: switch data[p] { case 84: - goto st589 + goto st615 case 116: - goto st589 + goto st615 } - goto tr368 - st589: + goto tr416 + st615: p++ - st_case_589: + st_case_615: switch data[p] { case 73: - goto st590 + goto st616 case 105: - goto st590 + goto st616 } - goto tr368 - st590: + goto tr416 + st616: p++ - st_case_590: + st_case_616: switch data[p] { case 79: - goto st591 + goto st617 case 111: - goto st591 + goto st617 } - goto tr368 - st591: + goto tr416 + st617: p++ - st_case_591: + st_case_617: switch data[p] { case 78: - goto st592 + goto st618 case 110: - goto st592 + goto st618 } - goto tr368 - st592: + goto tr416 + st618: p++ - st_case_592: + st_case_618: switch data[p] { case 9: - goto tr794 + goto tr826 case 32: - goto tr794 + goto tr826 case 58: - goto tr795 + goto tr827 } - goto tr368 - st593: + goto tr416 + st619: p++ - st_case_593: + st_case_619: switch data[p] { case 69: - goto st594 + goto st620 case 101: - goto st594 + goto st620 } - goto tr368 - st594: + goto tr416 + st620: p++ - st_case_594: + st_case_620: switch data[p] { case 81: - goto st595 + goto st621 case 113: - goto st595 + goto st621 } - goto tr368 - st595: + goto tr416 + st621: p++ - st_case_595: + st_case_621: switch data[p] { case 85: - goto st596 + goto st622 case 117: - goto st596 + goto st622 } - goto tr368 - st596: + goto tr416 + st622: p++ - st_case_596: + st_case_622: switch data[p] { case 73: - goto st597 + goto st623 case 105: - goto st597 + goto st623 } - goto tr368 - st597: + goto tr416 + st623: p++ - st_case_597: + st_case_623: switch data[p] { case 82: - goto st598 + goto st624 case 114: - goto st598 + goto st624 } - goto tr368 - st598: + goto tr416 + st624: p++ - st_case_598: + st_case_624: switch data[p] { case 69: - goto st599 + goto st625 case 101: - goto st599 + goto st625 } - goto tr368 - st599: + goto tr416 + st625: p++ - st_case_599: + st_case_625: switch data[p] { case 9: - goto tr802 + goto tr834 case 32: - goto tr802 + goto tr834 case 58: - goto tr803 + goto tr835 } - goto tr368 - st600: + goto tr416 + st626: p++ - st_case_600: + st_case_626: switch data[p] { case 9: - goto tr804 + goto tr836 case 32: - goto tr804 + goto tr836 case 58: - goto tr805 + goto tr837 case 69: - goto st601 + goto st627 case 79: - goto st656 + goto st682 case 101: - goto st601 + goto st627 case 111: - goto st656 + goto st682 } - goto tr368 - st601: + goto tr416 + st627: p++ - st_case_601: + st_case_627: switch data[p] { case 67: - goto st602 + goto st628 case 70: - goto st612 + goto st638 case 77: - goto st623 + goto st649 case 80: - goto st636 + goto st662 case 81: - goto st642 + goto st668 case 84: - goto st647 + goto st673 case 99: - goto st602 + goto st628 case 102: - goto st612 + goto st638 case 109: - goto st623 + goto st649 case 112: - goto st636 + goto st662 case 113: - goto st642 + goto st668 case 116: - goto st647 + goto st673 } - goto tr368 - st602: + goto tr416 + st628: p++ - st_case_602: + st_case_628: switch data[p] { case 79: - goto st603 + goto st629 case 111: - goto st603 + goto st629 } - goto tr368 - st603: + goto tr416 + st629: p++ - st_case_603: + st_case_629: switch data[p] { case 82: - goto st604 + goto st630 case 114: - goto st604 + goto st630 } - goto tr368 - st604: + goto tr416 + st630: p++ - st_case_604: + st_case_630: switch data[p] { case 68: - goto st605 + goto st631 case 100: - goto st605 + goto st631 } - goto tr368 - st605: + goto tr416 + st631: p++ - st_case_605: + st_case_631: if data[p] == 45 { - goto st606 + goto st632 } - goto tr368 - st606: + goto tr416 + st632: p++ - st_case_606: + st_case_632: switch data[p] { case 82: - goto st607 + goto st633 case 114: - goto st607 + goto st633 } - goto tr368 - st607: + goto tr416 + st633: p++ - st_case_607: + st_case_633: switch data[p] { case 79: - goto st608 + goto st634 case 111: - goto st608 + goto st634 } - goto tr368 - st608: + goto tr416 + st634: p++ - st_case_608: + st_case_634: switch data[p] { case 85: - goto st609 + goto st635 case 117: - goto st609 + goto st635 } - goto tr368 - st609: + goto tr416 + st635: p++ - st_case_609: + st_case_635: switch data[p] { case 84: - goto st610 + goto st636 case 116: - goto st610 + goto st636 } - goto tr368 - st610: + goto tr416 + st636: p++ - st_case_610: + st_case_636: switch data[p] { case 69: - goto st611 + goto st637 case 101: - goto st611 + goto st637 } - goto tr368 - st611: + goto tr416 + st637: p++ - st_case_611: + st_case_637: switch data[p] { case 9: - goto tr823 + goto tr855 case 32: - goto tr823 + goto tr855 case 58: - goto tr824 + goto tr856 } - goto tr368 - st612: + goto tr416 + st638: p++ - st_case_612: + st_case_638: switch data[p] { case 69: - goto st613 + goto st639 case 101: - goto st613 + goto st639 } - goto tr368 - st613: + goto tr416 + st639: p++ - st_case_613: + st_case_639: switch data[p] { case 82: - goto st614 + goto st640 case 114: - goto st614 + goto st640 } - goto tr368 - st614: + goto tr416 + st640: p++ - st_case_614: + st_case_640: switch data[p] { case 45: - goto st615 + goto st641 case 82: - goto st618 + goto st644 case 114: - goto st618 + goto st644 } - goto tr368 - st615: + goto tr416 + st641: p++ - st_case_615: + st_case_641: switch data[p] { case 84: - goto st616 + goto st642 case 116: - goto st616 + goto st642 } - goto tr368 - st616: + goto tr416 + st642: p++ - st_case_616: + st_case_642: switch data[p] { case 79: - goto st617 + goto st643 case 111: - goto st617 + goto st643 } - goto tr368 - st617: + goto tr416 + st643: p++ - st_case_617: + st_case_643: switch data[p] { case 9: - goto tr804 + goto tr836 case 32: - goto tr804 + goto tr836 case 58: - goto tr805 + goto tr837 } - goto tr368 - st618: + goto tr416 + st644: p++ - st_case_618: + st_case_644: switch data[p] { case 69: - goto st619 + goto st645 case 101: - goto st619 + goto st645 } - goto tr368 - st619: + goto tr416 + st645: p++ - st_case_619: + st_case_645: switch data[p] { case 68: - goto st620 + goto st646 case 100: - goto st620 + goto st646 } - goto tr368 - st620: + goto tr416 + st646: p++ - st_case_620: + st_case_646: if data[p] == 45 { - goto st621 + goto st647 } - goto tr368 - st621: + goto tr416 + st647: p++ - st_case_621: + st_case_647: switch data[p] { case 66: - goto st622 + goto st648 case 98: - goto st622 + goto st648 } - goto tr368 - st622: + goto tr416 + st648: p++ - st_case_622: + st_case_648: switch data[p] { case 89: - goto st329 + goto st363 case 121: - goto st329 + goto st363 } - goto tr368 - st623: + goto tr416 + st649: p++ - st_case_623: + st_case_649: switch data[p] { case 79: - goto st624 + goto st650 case 111: - goto st624 + goto st650 } - goto tr368 - st624: + goto tr416 + st650: p++ - st_case_624: + st_case_650: switch data[p] { case 84: - goto st625 + goto st651 case 116: - goto st625 + goto st651 } - goto tr368 - st625: + goto tr416 + st651: p++ - st_case_625: + st_case_651: switch data[p] { case 69: - goto st626 + goto st652 case 101: - goto st626 + goto st652 } - goto tr368 - st626: + goto tr416 + st652: p++ - st_case_626: + st_case_652: if data[p] == 45 { - goto st627 + goto st653 } - goto tr368 - st627: + goto tr416 + st653: p++ - st_case_627: + st_case_653: switch data[p] { case 80: - goto st628 + goto st654 case 112: - goto st628 + goto st654 } - goto tr368 - st628: + goto tr416 + st654: p++ - st_case_628: + st_case_654: switch data[p] { case 65: - goto st629 + goto st655 case 97: - goto st629 + goto st655 } - goto tr368 - st629: + goto tr416 + st655: p++ - st_case_629: + st_case_655: switch data[p] { case 82: - goto st630 + goto st656 case 114: - goto st630 + goto st656 } - goto tr368 - st630: + goto tr416 + st656: p++ - st_case_630: + st_case_656: switch data[p] { case 84: - goto st631 + goto st657 case 116: - goto st631 + goto st657 } - goto tr368 - st631: + goto tr416 + st657: p++ - st_case_631: + st_case_657: switch data[p] { case 89: - goto st632 + goto st658 case 121: - goto st632 + goto st658 } - goto tr368 - st632: + goto tr416 + st658: p++ - st_case_632: + st_case_658: if data[p] == 45 { - goto st633 + goto st659 } - goto tr368 - st633: + goto tr416 + st659: p++ - st_case_633: + st_case_659: switch data[p] { case 73: - goto st634 + goto st660 case 105: - goto st634 + goto st660 } - goto tr368 - st634: + goto tr416 + st660: p++ - st_case_634: + st_case_660: switch data[p] { case 68: - goto st635 + goto st661 case 100: - goto st635 + goto st661 } - goto tr368 - st635: + goto tr416 + st661: p++ - st_case_635: + st_case_661: switch data[p] { case 9: - goto tr847 + goto tr879 case 32: - goto tr847 + goto tr879 case 58: - goto tr848 + goto tr880 } - goto tr368 - st636: + goto tr416 + st662: p++ - st_case_636: + st_case_662: switch data[p] { case 76: - goto st637 + goto st663 case 108: - goto st637 + goto st663 } - goto tr368 - st637: + goto tr416 + st663: p++ - st_case_637: + st_case_663: switch data[p] { case 89: - goto st638 + goto st664 case 121: - goto st638 + goto st664 } - goto tr368 - st638: + goto tr416 + st664: p++ - st_case_638: + st_case_664: if data[p] == 45 { - goto st639 + goto st665 } - goto tr368 - st639: + goto tr416 + st665: p++ - st_case_639: + st_case_665: switch data[p] { case 84: - goto st640 + goto st666 case 116: - goto st640 + goto st666 } - goto tr368 - st640: + goto tr416 + st666: p++ - st_case_640: + st_case_666: switch data[p] { case 79: - goto st641 + goto st667 case 111: - goto st641 + goto st667 } - goto tr368 - st641: + goto tr416 + st667: p++ - st_case_641: + st_case_667: switch data[p] { case 9: - goto tr854 + goto tr886 case 32: - goto tr854 + goto tr886 case 58: - goto tr855 + goto tr887 } - goto tr368 - st642: + goto tr416 + st668: p++ - st_case_642: + st_case_668: switch data[p] { case 85: - goto st643 + goto st669 case 117: - goto st643 + goto st669 } - goto tr368 - st643: + goto tr416 + st669: p++ - st_case_643: + st_case_669: switch data[p] { case 73: - goto st644 + goto st670 case 105: - goto st644 + goto st670 } - goto tr368 - st644: + goto tr416 + st670: p++ - st_case_644: + st_case_670: switch data[p] { case 82: - goto st645 + goto st671 case 114: - goto st645 + goto st671 } - goto tr368 - st645: + goto tr416 + st671: p++ - st_case_645: + st_case_671: switch data[p] { case 69: - goto st646 + goto st672 case 101: - goto st646 + goto st672 } - goto tr368 - st646: + goto tr416 + st672: p++ - st_case_646: + st_case_672: switch data[p] { case 9: - goto tr860 + goto tr892 case 32: - goto tr860 + goto tr892 case 58: - goto tr861 + goto tr893 } - goto tr368 - st647: + goto tr416 + st673: p++ - st_case_647: + st_case_673: switch data[p] { case 82: - goto st648 + goto st674 case 114: - goto st648 + goto st674 } - goto tr368 - st648: + goto tr416 + st674: p++ - st_case_648: + st_case_674: switch data[p] { case 89: - goto st649 + goto st675 case 121: - goto st649 + goto st675 } - goto tr368 - st649: + goto tr416 + st675: p++ - st_case_649: + st_case_675: if data[p] == 45 { - goto st650 + goto st676 } - goto tr368 - st650: + goto tr416 + st676: p++ - st_case_650: + st_case_676: switch data[p] { case 65: - goto st651 + goto st677 case 97: - goto st651 + goto st677 } - goto tr368 - st651: + goto tr416 + st677: p++ - st_case_651: + st_case_677: switch data[p] { case 70: - goto st652 + goto st678 case 102: - goto st652 + goto st678 } - goto tr368 - st652: + goto tr416 + st678: p++ - st_case_652: + st_case_678: switch data[p] { case 84: - goto st653 + goto st679 case 116: - goto st653 + goto st679 } - goto tr368 - st653: + goto tr416 + st679: p++ - st_case_653: + st_case_679: switch data[p] { case 69: - goto st654 + goto st680 case 101: - goto st654 + goto st680 } - goto tr368 - st654: + goto tr416 + st680: p++ - st_case_654: + st_case_680: switch data[p] { case 82: - goto st655 + goto st681 case 114: - goto st655 + goto st681 } - goto tr368 - st655: + goto tr416 + st681: p++ - st_case_655: + st_case_681: switch data[p] { case 9: - goto tr870 + goto tr902 case 32: - goto tr870 + goto tr902 case 58: - goto tr871 + goto tr903 } - goto tr368 - st656: + goto tr416 + st682: p++ - st_case_656: + st_case_682: switch data[p] { case 85: - goto st657 + goto st683 case 117: - goto st657 + goto st683 } - goto tr368 - st657: + goto tr416 + st683: p++ - st_case_657: + st_case_683: switch data[p] { case 84: - goto st658 + goto st684 case 116: - goto st658 + goto st684 } - goto tr368 - st658: + goto tr416 + st684: p++ - st_case_658: + st_case_684: switch data[p] { case 69: - goto st659 + goto st685 case 101: - goto st659 + goto st685 } - goto tr368 - st659: + goto tr416 + st685: p++ - st_case_659: + st_case_685: switch data[p] { case 9: - goto tr875 + goto tr907 case 32: - goto tr875 + goto tr907 case 58: - goto tr876 + goto tr908 } - goto tr368 - st660: + goto tr416 + st686: p++ - st_case_660: + st_case_686: switch data[p] { case 9: - goto tr877 + goto tr909 case 32: - goto tr877 + goto tr909 case 58: - goto tr878 + goto tr910 case 69: - goto st661 + goto st687 case 85: - goto st666 + goto st692 case 101: - goto st661 + goto st687 case 117: - goto st666 + goto st692 } - goto tr368 - st661: + goto tr416 + st687: p++ - st_case_661: + st_case_687: switch data[p] { case 82: - goto st662 + goto st688 case 114: - goto st662 + goto st688 } - goto tr368 - st662: + goto tr416 + st688: p++ - st_case_662: + st_case_688: switch data[p] { case 86: - goto st663 + goto st689 case 118: - goto st663 + goto st689 } - goto tr368 - st663: + goto tr416 + st689: p++ - st_case_663: + st_case_689: switch data[p] { case 69: - goto st664 + goto st690 case 101: - goto st664 + goto st690 } - goto tr368 - st664: + goto tr416 + st690: p++ - st_case_664: + st_case_690: switch data[p] { case 82: - goto st665 + goto st691 case 114: - goto st665 + goto st691 } - goto tr368 - st665: + goto tr416 + st691: p++ - st_case_665: + st_case_691: switch data[p] { case 9: - goto tr885 + goto tr917 case 32: - goto tr885 + goto tr917 case 58: - goto tr886 + goto tr918 } - goto tr368 - st666: + goto tr416 + st692: p++ - st_case_666: + st_case_692: switch data[p] { case 66: - goto st667 + goto st693 case 80: - goto st672 + goto st698 case 98: - goto st667 + goto st693 case 112: - goto st672 + goto st698 } - goto tr368 - st667: + goto tr416 + st693: p++ - st_case_667: + st_case_693: switch data[p] { case 74: - goto st668 + goto st694 case 106: - goto st668 + goto st694 } - goto tr368 - st668: + goto tr416 + st694: p++ - st_case_668: + st_case_694: switch data[p] { case 69: - goto st669 + goto st695 case 101: - goto st669 + goto st695 } - goto tr368 - st669: + goto tr416 + st695: p++ - st_case_669: + st_case_695: switch data[p] { case 67: - goto st670 + goto st696 case 99: - goto st670 + goto st696 } - goto tr368 - st670: + goto tr416 + st696: p++ - st_case_670: + st_case_696: switch data[p] { case 84: - goto st671 + goto st697 case 116: - goto st671 + goto st697 } - goto tr368 - st671: + goto tr416 + st697: p++ - st_case_671: + st_case_697: switch data[p] { case 9: - goto tr877 + goto tr909 case 32: - goto tr877 + goto tr909 case 58: - goto tr878 + goto tr910 } - goto tr368 - st672: + goto tr416 + st698: p++ - st_case_672: + st_case_698: switch data[p] { case 80: - goto st673 + goto st699 case 112: - goto st673 + goto st699 } - goto tr368 - st673: + goto tr416 + st699: p++ - st_case_673: + st_case_699: switch data[p] { case 79: - goto st674 + goto st700 case 111: - goto st674 + goto st700 } - goto tr368 - st674: + goto tr416 + st700: p++ - st_case_674: + st_case_700: switch data[p] { case 82: - goto st675 + goto st701 case 114: - goto st675 + goto st701 } - goto tr368 - st675: + goto tr416 + st701: p++ - st_case_675: + st_case_701: switch data[p] { case 84: - goto st676 + goto st702 case 116: - goto st676 + goto st702 } - goto tr368 - st676: + goto tr416 + st702: p++ - st_case_676: + st_case_702: switch data[p] { case 69: - goto st677 + goto st703 case 101: - goto st677 + goto st703 } - goto tr368 - st677: + goto tr416 + st703: p++ - st_case_677: + st_case_703: switch data[p] { case 68: - goto st478 + goto st504 case 100: - goto st478 + goto st504 } - goto tr368 - st678: + goto tr416 + st704: p++ - st_case_678: + st_case_704: switch data[p] { case 9: - goto tr898 + goto tr930 case 32: - goto tr898 + goto tr930 case 58: - goto tr899 + goto tr931 case 73: - goto st679 + goto st705 case 79: - goto st687 + goto st713 case 105: - goto st679 + goto st705 case 111: - goto st687 + goto st713 } - goto tr368 - st679: + goto tr416 + st705: p++ - st_case_679: + st_case_705: switch data[p] { case 77: - goto st680 + goto st706 case 109: - goto st680 + goto st706 } - goto tr368 - st680: + goto tr416 + st706: p++ - st_case_680: + st_case_706: switch data[p] { case 69: - goto st681 + goto st707 case 101: - goto st681 + goto st707 } - goto tr368 - st681: + goto tr416 + st707: p++ - st_case_681: + st_case_707: switch data[p] { case 83: - goto st682 + goto st708 case 115: - goto st682 + goto st708 } - goto tr368 - st682: + goto tr416 + st708: p++ - st_case_682: + st_case_708: switch data[p] { case 84: - goto st683 + goto st709 case 116: - goto st683 + goto st709 } - goto tr368 - st683: + goto tr416 + st709: p++ - st_case_683: + st_case_709: switch data[p] { case 65: - goto st684 + goto st710 case 97: - goto st684 + goto st710 } - goto tr368 - st684: + goto tr416 + st710: p++ - st_case_684: + st_case_710: switch data[p] { case 77: - goto st685 + goto st711 case 109: - goto st685 + goto st711 } - goto tr368 - st685: + goto tr416 + st711: p++ - st_case_685: + st_case_711: switch data[p] { case 80: - goto st686 + goto st712 case 112: - goto st686 + goto st712 } - goto tr368 - st686: + goto tr416 + st712: p++ - st_case_686: + st_case_712: switch data[p] { case 9: - goto tr909 + goto tr941 case 32: - goto tr909 + goto tr941 case 58: - goto tr910 + goto tr942 } - goto tr368 - st687: + goto tr416 + st713: p++ - st_case_687: + st_case_713: switch data[p] { case 9: - goto tr898 + goto tr930 case 32: - goto tr898 + goto tr930 case 58: - goto tr899 + goto tr931 } - goto tr368 - st688: + goto tr416 + st714: p++ - st_case_688: + st_case_714: switch data[p] { case 9: - goto tr911 + goto tr943 case 32: - goto tr911 + goto tr943 case 58: - goto tr912 + goto tr944 case 78: - goto st689 + goto st715 case 83: - goto st699 + goto st725 case 110: - goto st689 + goto st715 case 115: - goto st699 + goto st725 } - goto tr368 - st689: + goto tr416 + st715: p++ - st_case_689: + st_case_715: switch data[p] { case 83: - goto st690 + goto st716 case 115: - goto st690 + goto st716 } - goto tr368 - st690: + goto tr416 + st716: p++ - st_case_690: + st_case_716: switch data[p] { case 85: - goto st691 + goto st717 case 117: - goto st691 + goto st717 } - goto tr368 - st691: + goto tr416 + st717: p++ - st_case_691: + st_case_717: switch data[p] { case 80: - goto st692 + goto st718 case 112: - goto st692 + goto st718 } - goto tr368 - st692: + goto tr416 + st718: p++ - st_case_692: + st_case_718: switch data[p] { case 80: - goto st693 + goto st719 case 112: - goto st693 + goto st719 } - goto tr368 - st693: + goto tr416 + st719: p++ - st_case_693: + st_case_719: switch data[p] { case 79: - goto st694 + goto st720 case 111: - goto st694 + goto st720 } - goto tr368 - st694: + goto tr416 + st720: p++ - st_case_694: + st_case_720: switch data[p] { case 82: - goto st695 + goto st721 case 114: - goto st695 + goto st721 } - goto tr368 - st695: + goto tr416 + st721: p++ - st_case_695: + st_case_721: switch data[p] { case 84: - goto st696 + goto st722 case 116: - goto st696 + goto st722 } - goto tr368 - st696: + goto tr416 + st722: p++ - st_case_696: + st_case_722: switch data[p] { case 69: - goto st697 + goto st723 case 101: - goto st697 + goto st723 } - goto tr368 - st697: + goto tr416 + st723: p++ - st_case_697: + st_case_723: switch data[p] { case 68: - goto st698 + goto st724 case 100: - goto st698 + goto st724 } - goto tr368 - st698: + goto tr416 + st724: p++ - st_case_698: + st_case_724: switch data[p] { case 9: - goto tr924 + goto tr956 case 32: - goto tr924 + goto tr956 case 58: - goto tr925 + goto tr957 } - goto tr368 - st699: + goto tr416 + st725: p++ - st_case_699: + st_case_725: switch data[p] { case 69: - goto st700 + goto st726 case 101: - goto st700 + goto st726 } - goto tr368 - st700: + goto tr416 + st726: p++ - st_case_700: + st_case_726: switch data[p] { case 82: - goto st701 + goto st727 case 114: - goto st701 + goto st727 } - goto tr368 - st701: + goto tr416 + st727: p++ - st_case_701: + st_case_727: if data[p] == 45 { - goto st702 + goto st728 } - goto tr368 - st702: + goto tr416 + st728: p++ - st_case_702: + st_case_728: switch data[p] { case 65: - goto st703 + goto st729 case 97: - goto st703 + goto st729 } - goto tr368 - st703: + goto tr416 + st729: p++ - st_case_703: + st_case_729: switch data[p] { case 71: - goto st704 + goto st730 case 103: - goto st704 + goto st730 } - goto tr368 - st704: + goto tr416 + st730: p++ - st_case_704: + st_case_730: switch data[p] { case 69: - goto st705 + goto st731 case 101: - goto st705 + goto st731 } - goto tr368 - st705: + goto tr416 + st731: p++ - st_case_705: + st_case_731: switch data[p] { case 78: - goto st706 + goto st732 case 110: - goto st706 + goto st732 } - goto tr368 - st706: + goto tr416 + st732: p++ - st_case_706: + st_case_732: switch data[p] { case 84: - goto st707 + goto st733 case 116: - goto st707 + goto st733 } - goto tr368 - st707: + goto tr416 + st733: p++ - st_case_707: + st_case_733: switch data[p] { case 9: - goto tr934 + goto tr966 case 32: - goto tr934 + goto tr966 case 58: - goto tr935 + goto tr967 } - goto tr368 - st708: + goto tr416 + st734: p++ - st_case_708: + st_case_734: switch data[p] { case 9: - goto st709 + goto st735 case 32: - goto st709 + goto st735 case 58: - goto st710 + goto st736 case 73: - goto st714 + goto st740 case 105: - goto st714 + goto st740 } - goto tr368 - st709: + goto tr416 + st735: p++ - st_case_709: + st_case_735: switch data[p] { case 9: - goto st709 + goto st735 case 32: - goto st709 + goto st735 case 58: - goto st710 + goto st736 } goto st0 - st710: + st736: p++ - st_case_710: + st_case_736: _widec = int16(data[p]) if 13 <= data[p] && data[p] <= 13 { _widec = 256 + (int16(data[p]) - 0) @@ -14444,323 +15264,323 @@ tr721: } switch _widec { case 9: - goto st710 + goto st736 case 32: - goto st710 + goto st736 case 269: - goto tr939 + goto tr971 case 525: - goto st711 + goto st737 } switch { case _widec > 12: if 14 <= _widec { - goto tr939 + goto tr971 } default: - goto tr939 + goto tr971 } goto st0 - st711: + st737: p++ - st_case_711: + st_case_737: if data[p] == 10 { - goto st712 + goto st738 } goto st0 - st712: + st738: p++ - st_case_712: + st_case_738: switch data[p] { case 9: - goto st713 + goto st739 case 32: - goto st713 + goto st739 } goto st0 - st713: + st739: p++ - st_case_713: + st_case_739: switch data[p] { case 9: - goto st713 + goto st739 case 32: - goto st713 + goto st739 } - goto tr939 - st714: + goto tr971 + st740: p++ - st_case_714: + st_case_740: switch data[p] { case 65: - goto st715 + goto st741 case 97: - goto st715 + goto st741 } - goto tr368 - st715: + goto tr416 + st741: p++ - st_case_715: + st_case_741: switch data[p] { case 9: - goto st709 + goto st735 case 32: - goto st709 + goto st735 case 58: - goto st710 + goto st736 } - goto tr368 - st716: + goto tr416 + st742: p++ - st_case_716: + st_case_742: switch data[p] { case 65: - goto st717 + goto st743 case 87: - goto st723 + goto st749 case 97: - goto st717 + goto st743 case 119: - goto st723 + goto st749 } - goto tr368 - st717: + goto tr416 + st743: p++ - st_case_717: + st_case_743: switch data[p] { case 82: - goto st718 + goto st744 case 114: - goto st718 + goto st744 } - goto tr368 - st718: + goto tr416 + st744: p++ - st_case_718: + st_case_744: switch data[p] { case 78: - goto st719 + goto st745 case 110: - goto st719 + goto st745 } - goto tr368 - st719: + goto tr416 + st745: p++ - st_case_719: + st_case_745: switch data[p] { case 73: - goto st720 + goto st746 case 105: - goto st720 + goto st746 } - goto tr368 - st720: + goto tr416 + st746: p++ - st_case_720: + st_case_746: switch data[p] { case 78: - goto st721 + goto st747 case 110: - goto st721 + goto st747 } - goto tr368 - st721: + goto tr416 + st747: p++ - st_case_721: + st_case_747: switch data[p] { case 71: - goto st722 + goto st748 case 103: - goto st722 + goto st748 } - goto tr368 - st722: + goto tr416 + st748: p++ - st_case_722: + st_case_748: switch data[p] { case 9: - goto tr951 + goto tr983 case 32: - goto tr951 + goto tr983 case 58: - goto tr952 + goto tr984 } - goto tr368 - st723: + goto tr416 + st749: p++ - st_case_723: + st_case_749: switch data[p] { case 87: - goto st724 + goto st750 case 119: - goto st724 + goto st750 } - goto tr368 - st724: + goto tr416 + st750: p++ - st_case_724: + st_case_750: if data[p] == 45 { - goto st725 + goto st751 } - goto tr368 - st725: + goto tr416 + st751: p++ - st_case_725: + st_case_751: switch data[p] { case 65: - goto st726 + goto st752 case 97: - goto st726 + goto st752 } - goto tr368 - st726: + goto tr416 + st752: p++ - st_case_726: + st_case_752: switch data[p] { case 85: - goto st727 + goto st753 case 117: - goto st727 + goto st753 } - goto tr368 - st727: + goto tr416 + st753: p++ - st_case_727: + st_case_753: switch data[p] { case 84: - goto st728 + goto st754 case 116: - goto st728 + goto st754 } - goto tr368 - st728: + goto tr416 + st754: p++ - st_case_728: + st_case_754: switch data[p] { case 72: - goto st729 + goto st755 case 104: - goto st729 + goto st755 } - goto tr368 - st729: + goto tr416 + st755: p++ - st_case_729: + st_case_755: switch data[p] { case 69: - goto st730 + goto st756 case 101: - goto st730 + goto st756 } - goto tr368 - st730: + goto tr416 + st756: p++ - st_case_730: + st_case_756: switch data[p] { case 78: - goto st731 + goto st757 case 110: - goto st731 + goto st757 } - goto tr368 - st731: + goto tr416 + st757: p++ - st_case_731: + st_case_757: switch data[p] { case 84: - goto st732 + goto st758 case 116: - goto st732 + goto st758 } - goto tr368 - st732: + goto tr416 + st758: p++ - st_case_732: + st_case_758: switch data[p] { case 73: - goto st733 + goto st759 case 105: - goto st733 + goto st759 } - goto tr368 - st733: + goto tr416 + st759: p++ - st_case_733: + st_case_759: switch data[p] { case 67: - goto st734 + goto st760 case 99: - goto st734 + goto st760 } - goto tr368 - st734: + goto tr416 + st760: p++ - st_case_734: + st_case_760: switch data[p] { case 65: - goto st735 + goto st761 case 97: - goto st735 + goto st761 } - goto tr368 - st735: + goto tr416 + st761: p++ - st_case_735: + st_case_761: switch data[p] { case 84: - goto st736 + goto st762 case 116: - goto st736 + goto st762 } - goto tr368 - st736: + goto tr416 + st762: p++ - st_case_736: + st_case_762: switch data[p] { case 69: - goto st737 + goto st763 case 101: - goto st737 + goto st763 } - goto tr368 - st737: + goto tr416 + st763: p++ - st_case_737: + st_case_763: switch data[p] { case 9: - goto tr967 + goto tr999 case 32: - goto tr967 + goto tr999 case 58: - goto tr968 + goto tr1000 } - goto tr368 - st738: + goto tr416 + st764: p++ - st_case_738: + st_case_764: if data[p] == 10 { - goto tr969 + goto tr1001 } goto st0 st_out: if p == eof { switch cs { - case 247, 248, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 345, 346, 347, 348, 349, 350, 359, 360, 361, 362, 363, 364, 365, 366, 367, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 415, 416, 417, 418, 419, 420, 421, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737: -//line sip.rl:177 + case 281, 282, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 370, 371, 372, 373, 374, 375, 385, 386, 387, 388, 389, 390, 391, 392, 393, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 441, 442, 443, 444, 445, 446, 447, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763: +//line sip.rl:170 p-- - {goto st239 } + {goto st273 } - case 751: -//line sip.rl:242 + case 778: +//line sip.rl:239 *addrp = addr addrp = &addr.Next addr = nil -//line msg_parse.go:14764 +//line msg_parse.go:15584 } } diff --git a/sip/sip.rl b/sip/sip.rl index 00431d1..bbbe3bb 100644 --- a/sip/sip.rl +++ b/sip/sip.rl @@ -188,6 +188,10 @@ action value {{ } }} +action goto_ctype { + fgoto ctype; +} + action goto_addr { fgoto addr; } @@ -337,12 +341,6 @@ tokenhost = ( tokenc | "[" | "]" | ":" )+; reasonc = UTF8_NONASCII | ( reserved | unreserved | SP | HTAB ) @append; reasonmc = escaped | reasonc; cid = word ( "@" word )?; - -Method = token >mark %Method; -SIPVersionNo = digit+ @VersionMajor "." digit+ @VersionMinor; -RequestURI = ^SP+ >mark %RequestURI; -StatusCode = ( digit @StatusCode ) {3}; -ReasonPhrase = reasonmc+ >start %ReasonPhrase; hval = ( mUTF8 | LWS )* >mark; schemec = alnum | "+" | "-" | "."; @@ -359,7 +357,20 @@ quoted_content = ( qdtext | quoted_pair )* >start; quoted_string = DQUOTE quoted_content DQUOTE; unquoted_string = ( token LWS )+; -# Parameters can be used by vias and addresses, but not URIs. +# Content Type Parsing +# +# This is easy-peasy. It almost always contains the value "application/sdp". +# We're going to ignore the parameters, because this information is actually +# stored in Msg by way of type interface and we don't support any types that +# take parameters. +ctype_param = SEMI token EQUAL ( token | quoted_string ); +ctype_mime = ( token "/" token ) >mark %ContentType; +ctype := ctype_mime ctype_param* CRLF @goto_header; + +# Parameter Parsing +# +# Parameters can be used by vias and addresses, but not URIs. They can look +# like=this or like="this". The =value part is optional. param_name = token >mark %name; param_content = tokenhost @append; param_value = param_content | quoted_string; @@ -495,7 +506,6 @@ sname = "Accept"i %{value=&msg.Accept} # their own special type of parsing. cheader = ("Call-ID"i | "i"i) $!gxh HCOLON cid >mark %CallID | ("Content-Length"i | "l"i) $!gxh HCOLON digit+ >{clen=0} @ContentLength - | ("Content-Type"i | "c"i) $!gxh HCOLON <: hval %ContentType | "CSeq"i $!gxh HCOLON (digit+ @CSeq) LWS token >mark %CSeqMethod | ("Expires"i | "l"i) $!gxh HCOLON digit+ >{msg.Expires=0} @Expires | ("Max-Forwards"i | "l"i) $!gxh HCOLON digit+ >{msg.MaxForwards=0} @MaxForwards @@ -538,7 +548,8 @@ xheader := token %name HCOLON <: any @{value=nil} @hold @goto_value; sheader = cheader <: CRLF @goto_header | aname $!gxh HCOLON <: any @{value=nil} @hold @goto_addr | sname $!gxh HCOLON <: any @hold @goto_value - | ("Via"i | "v"i) $!gxh HCOLON <: any @hold @goto_via; + | ("Via"i | "v"i) $!gxh HCOLON <: any @hold @goto_via + | ("Content-Type"i | "c"i) $!gxh HCOLON <: any @hold @goto_ctype; header := CRLF @break | tokenc @mark @hold sheader; @@ -547,9 +558,15 @@ header := CRLF @break # The Request and Response definitions are very straightforward, and the # main machine is the union of the two. Once the line feed character has # been observed, we then jump to the header machine. -SIPVersion = "SIP/" SIPVersionNo; -Request = Method SP RequestURI SP SIPVersion CRLF @goto_header; -Response = SIPVersion SP StatusCode SP ReasonPhrase CRLF @goto_header; -Message = Request | Response; +# SIP Message Parsing +Method = token >mark %Method; +SIPVersionNo = digit+ @VersionMajor "." digit+ @VersionMinor; +RequestURI = ^SP+ >mark %RequestURI; +StatusCode = ( digit @StatusCode ) {3}; +ReasonPhrase = reasonmc+ >start %ReasonPhrase; +SIPVersion = "SIP/" SIPVersionNo; +Request = Method SP RequestURI SP SIPVersion CRLF @goto_header; +Response = SIPVersion SP StatusCode SP ReasonPhrase CRLF @goto_header; +Message = Request | Response; }%%