Browse Source

Fix parsing of naked URIs in headers (#33)

We were never running the Addr action in the addr_uri_end production.
master
Juliusz Chroboczek 6 months ago
committed by GitHub
parent
commit
cc9b65637a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
3 changed files with 233 additions and 225 deletions
  1. +213
    -224
      sip/msg_parse.go
  2. +19
    -0
      sip/msg_test.go
  3. +1
    -1
      sip/sip.rl

+ 213
- 224
sip/msg_parse.go
File diff suppressed because it is too large
View File


+ 19
- 0
sip/msg_test.go View File

@ -130,6 +130,25 @@ var msgTests = []msgTest{
},
},
{
name: "Naked URI",
s: "SIP/2.0 200 OK\r\n" +
"From: sip:127.0.0.1:1234\r\n" +
"\r\n",
msg: sip.Msg{
VersionMajor: 2,
Status: 200,
Phrase: "OK",
From: &sip.Addr{
Uri: &sip.URI{
Scheme: "sip",
Host: "127.0.0.1",
Port: 1234,
},
},
},
},
{
name: "Line Continuation Warning",
s: "SIP/2.0 200 OK\r\n" +


+ 1
- 1
sip/sip.rl View File

@ -422,7 +422,7 @@ addr_angled_end = CRLF @Addr @goto_header
| SEMI <: any @hold @goto_addr_param
| COMMA <: any @Addr @hold @goto_addr;
addr_angled := addr_display? addr_spec addr_angled_end;
addr_uri_end = CRLF %Addr @goto_header
addr_uri_end = CRLF @Addr @goto_header
| SEMI <: any @hold @goto_addr_param
| COMMA <: any @Addr @hold @goto_addr;
addr_uri := ( uri - ";" ) %AddrUri addr_uri_end;


Loading…
Cancel
Save