Browse Source

Move Params into a separate file.

pull/2/head
Justine Alexandra Roberts Tunney 11 years ago
parent
commit
c065eb38b6
3 changed files with 164 additions and 156 deletions
  1. +100
    -100
      sip/msg_parse.go
  2. +64
    -0
      sip/params.go
  3. +0
    -56
      sip/uri.go

+ 100
- 100
sip/msg_parse.go View File

@ -8232,7 +8232,7 @@ tr359:
} }
goto st0 goto st0
tr362: tr362:
//line sip.rl:539
//line sip.rl:545
value=nil value=nil
//line sip.rl:53 //line sip.rl:53
@ -8436,153 +8436,153 @@ tr366:
} }
goto tr368 goto tr368
tr387: tr387:
//line sip.rl:457
//line sip.rl:463
value=&msg.AcceptContact value=&msg.AcceptContact
goto st249 goto st249
tr402: tr402:
//line sip.rl:456
//line sip.rl:462
value=&msg.Accept value=&msg.Accept
goto st249 goto st249
tr421: tr421:
//line sip.rl:458
//line sip.rl:464
value=&msg.AcceptEncoding value=&msg.AcceptEncoding
goto st249 goto st249
tr430: tr430:
//line sip.rl:459
//line sip.rl:465
value=&msg.AcceptLanguage value=&msg.AcceptLanguage
goto st249 goto st249
tr441: tr441:
//line sip.rl:462
//line sip.rl:468
value=&msg.AlertInfo value=&msg.AlertInfo
goto st249 goto st249
tr445: tr445:
//line sip.rl:460
//line sip.rl:466
value=&msg.Allow value=&msg.Allow
goto st249 goto st249
tr454: tr454:
//line sip.rl:461
//line sip.rl:467
value=&msg.AllowEvents value=&msg.AllowEvents
goto st249 goto st249
tr474: tr474:
//line sip.rl:463
//line sip.rl:469
value=&msg.AuthenticationInfo value=&msg.AuthenticationInfo
goto st249 goto st249
tr484: tr484:
//line sip.rl:464
//line sip.rl:470
value=&msg.Authorization value=&msg.Authorization
goto st249 goto st249
tr486: tr486:
//line sip.rl:481
//line sip.rl:487
value=&msg.ReferredBy value=&msg.ReferredBy
goto st249 goto st249
tr532: tr532:
//line sip.rl:468
//line sip.rl:474
value=&msg.CallInfo value=&msg.CallInfo
goto st249 goto st249
tr565: tr565:
//line sip.rl:465
//line sip.rl:471
value=&msg.ContentDisposition value=&msg.ContentDisposition
goto st249 goto st249
tr574: tr574:
//line sip.rl:467
//line sip.rl:473
value=&msg.ContentEncoding value=&msg.ContentEncoding
goto st249 goto st249
tr584: tr584:
//line sip.rl:466
//line sip.rl:472
value=&msg.ContentLanguage value=&msg.ContentLanguage
goto st249 goto st249
tr619: tr619:
//line sip.rl:469
//line sip.rl:475
value=&msg.Date value=&msg.Date
goto st249 goto st249
tr632: tr632:
//line sip.rl:470
//line sip.rl:476
value=&msg.ErrorInfo value=&msg.ErrorInfo
goto st249 goto st249
tr637: tr637:
//line sip.rl:471
//line sip.rl:477
value=&msg.Event value=&msg.Event
goto st249 goto st249
tr666: tr666:
//line sip.rl:472
//line sip.rl:478
value=&msg.InReplyTo value=&msg.InReplyTo
goto st249 goto st249
tr668: tr668:
//line sip.rl:486
//line sip.rl:492
value=&msg.Supported value=&msg.Supported
goto st249 goto st249
tr707: tr707:
//line sip.rl:474
//line sip.rl:480
value=&msg.MIMEVersion value=&msg.MIMEVersion
goto st249 goto st249
tr735: tr735:
//line sip.rl:475
//line sip.rl:481
value=&msg.Organization value=&msg.Organization
goto st249 goto st249
tr765: tr765:
//line sip.rl:476
//line sip.rl:482
value=&msg.Priority value=&msg.Priority
goto st249 goto st249
tr784: tr784:
//line sip.rl:477
//line sip.rl:483
value=&msg.ProxyAuthenticate value=&msg.ProxyAuthenticate
goto st249 goto st249
tr794: tr794:
//line sip.rl:478
//line sip.rl:484
value=&msg.ProxyAuthorization value=&msg.ProxyAuthorization
goto st249 goto st249
tr802: tr802:
//line sip.rl:479
//line sip.rl:485
value=&msg.ProxyRequire value=&msg.ProxyRequire
goto st249 goto st249
tr804: tr804:
//line sip.rl:480
//line sip.rl:486
value=&msg.ReferTo value=&msg.ReferTo
goto st249 goto st249
tr854: tr854:
//line sip.rl:473
//line sip.rl:479
value=&msg.ReplyTo value=&msg.ReplyTo
goto st249 goto st249
tr860: tr860:
//line sip.rl:482
//line sip.rl:488
value=&msg.Require value=&msg.Require
goto st249 goto st249
tr870: tr870:
//line sip.rl:483
//line sip.rl:489
value=&msg.RetryAfter value=&msg.RetryAfter
goto st249 goto st249
tr877: tr877:
//line sip.rl:485
//line sip.rl:491
value=&msg.Subject value=&msg.Subject
goto st249 goto st249
tr885: tr885:
//line sip.rl:484
//line sip.rl:490
value=&msg.Server value=&msg.Server
goto st249 goto st249
tr909: tr909:
//line sip.rl:487
//line sip.rl:493
value=&msg.Timestamp value=&msg.Timestamp
goto st249 goto st249
tr911: tr911:
//line sip.rl:460
//line sip.rl:466
value=&msg.Allow value=&msg.Allow
//line sip.rl:461
//line sip.rl:467
value=&msg.AllowEvents value=&msg.AllowEvents
goto st249 goto st249
tr924: tr924:
//line sip.rl:488
//line sip.rl:494
value=&msg.Unsupported value=&msg.Unsupported
goto st249 goto st249
tr934: tr934:
//line sip.rl:489
//line sip.rl:495
value=&msg.UserAgent value=&msg.UserAgent
goto st249 goto st249
tr951: tr951:
//line sip.rl:490
//line sip.rl:496
value=&msg.Warning value=&msg.Warning
goto st249 goto st249
tr967: tr967:
//line sip.rl:491
//line sip.rl:497
value=&msg.WWWAuthenticate value=&msg.WWWAuthenticate
goto st249 goto st249
st249: st249:
@ -8599,153 +8599,153 @@ value=&msg.WWWAuthenticate
} }
goto st0 goto st0
tr388: tr388:
//line sip.rl:457
//line sip.rl:463
value=&msg.AcceptContact value=&msg.AcceptContact
goto st250 goto st250
tr404: tr404:
//line sip.rl:456
//line sip.rl:462
value=&msg.Accept value=&msg.Accept
goto st250 goto st250
tr422: tr422:
//line sip.rl:458
//line sip.rl:464
value=&msg.AcceptEncoding value=&msg.AcceptEncoding
goto st250 goto st250
tr431: tr431:
//line sip.rl:459
//line sip.rl:465
value=&msg.AcceptLanguage value=&msg.AcceptLanguage
goto st250 goto st250
tr442: tr442:
//line sip.rl:462
//line sip.rl:468
value=&msg.AlertInfo value=&msg.AlertInfo
goto st250 goto st250
tr447: tr447:
//line sip.rl:460
//line sip.rl:466
value=&msg.Allow value=&msg.Allow
goto st250 goto st250
tr455: tr455:
//line sip.rl:461
//line sip.rl:467
value=&msg.AllowEvents value=&msg.AllowEvents
goto st250 goto st250
tr475: tr475:
//line sip.rl:463
//line sip.rl:469
value=&msg.AuthenticationInfo value=&msg.AuthenticationInfo
goto st250 goto st250
tr485: tr485:
//line sip.rl:464
//line sip.rl:470
value=&msg.Authorization value=&msg.Authorization
goto st250 goto st250
tr487: tr487:
//line sip.rl:481
//line sip.rl:487
value=&msg.ReferredBy value=&msg.ReferredBy
goto st250 goto st250
tr533: tr533:
//line sip.rl:468
//line sip.rl:474
value=&msg.CallInfo value=&msg.CallInfo
goto st250 goto st250
tr566: tr566:
//line sip.rl:465
//line sip.rl:471
value=&msg.ContentDisposition value=&msg.ContentDisposition
goto st250 goto st250
tr575: tr575:
//line sip.rl:467
//line sip.rl:473
value=&msg.ContentEncoding value=&msg.ContentEncoding
goto st250 goto st250
tr585: tr585:
//line sip.rl:466
//line sip.rl:472
value=&msg.ContentLanguage value=&msg.ContentLanguage
goto st250 goto st250
tr620: tr620:
//line sip.rl:469
//line sip.rl:475
value=&msg.Date value=&msg.Date
goto st250 goto st250
tr633: tr633:
//line sip.rl:470
//line sip.rl:476
value=&msg.ErrorInfo value=&msg.ErrorInfo
goto st250 goto st250
tr638: tr638:
//line sip.rl:471
//line sip.rl:477
value=&msg.Event value=&msg.Event
goto st250 goto st250
tr667: tr667:
//line sip.rl:472
//line sip.rl:478
value=&msg.InReplyTo value=&msg.InReplyTo
goto st250 goto st250
tr669: tr669:
//line sip.rl:486
//line sip.rl:492
value=&msg.Supported value=&msg.Supported
goto st250 goto st250
tr708: tr708:
//line sip.rl:474
//line sip.rl:480
value=&msg.MIMEVersion value=&msg.MIMEVersion
goto st250 goto st250
tr736: tr736:
//line sip.rl:475
//line sip.rl:481
value=&msg.Organization value=&msg.Organization
goto st250 goto st250
tr766: tr766:
//line sip.rl:476
//line sip.rl:482
value=&msg.Priority value=&msg.Priority
goto st250 goto st250
tr785: tr785:
//line sip.rl:477
//line sip.rl:483
value=&msg.ProxyAuthenticate value=&msg.ProxyAuthenticate
goto st250 goto st250
tr795: tr795:
//line sip.rl:478
//line sip.rl:484
value=&msg.ProxyAuthorization value=&msg.ProxyAuthorization
goto st250 goto st250
tr803: tr803:
//line sip.rl:479
//line sip.rl:485
value=&msg.ProxyRequire value=&msg.ProxyRequire
goto st250 goto st250
tr805: tr805:
//line sip.rl:480
//line sip.rl:486
value=&msg.ReferTo value=&msg.ReferTo
goto st250 goto st250
tr855: tr855:
//line sip.rl:473
//line sip.rl:479
value=&msg.ReplyTo value=&msg.ReplyTo
goto st250 goto st250
tr861: tr861:
//line sip.rl:482
//line sip.rl:488
value=&msg.Require value=&msg.Require
goto st250 goto st250
tr871: tr871:
//line sip.rl:483
//line sip.rl:489
value=&msg.RetryAfter value=&msg.RetryAfter
goto st250 goto st250
tr878: tr878:
//line sip.rl:485
//line sip.rl:491
value=&msg.Subject value=&msg.Subject
goto st250 goto st250
tr886: tr886:
//line sip.rl:484
//line sip.rl:490
value=&msg.Server value=&msg.Server
goto st250 goto st250
tr910: tr910:
//line sip.rl:487
//line sip.rl:493
value=&msg.Timestamp value=&msg.Timestamp
goto st250 goto st250
tr912: tr912:
//line sip.rl:460
//line sip.rl:466
value=&msg.Allow value=&msg.Allow
//line sip.rl:461
//line sip.rl:467
value=&msg.AllowEvents value=&msg.AllowEvents
goto st250 goto st250
tr925: tr925:
//line sip.rl:488
//line sip.rl:494
value=&msg.Unsupported value=&msg.Unsupported
goto st250 goto st250
tr935: tr935:
//line sip.rl:489
//line sip.rl:495
value=&msg.UserAgent value=&msg.UserAgent
goto st250 goto st250
tr952: tr952:
//line sip.rl:490
//line sip.rl:496
value=&msg.Warning value=&msg.Warning
goto st250 goto st250
tr968: tr968:
//line sip.rl:491
//line sip.rl:497
value=&msg.WWWAuthenticate value=&msg.WWWAuthenticate
goto st250 goto st250
st250: st250:
@ -8796,7 +8796,7 @@ tr394:
goto st755 goto st755
tr544: tr544:
//line sip.rl:541
//line sip.rl:547
value=nil value=nil
//line sip.rl:53 //line sip.rl:53
@ -10412,31 +10412,31 @@ tr522:
} }
goto tr368 goto tr368
tr540: tr540:
//line sip.rl:443
//line sip.rl:449
addrp=lastAddr(&msg.Contact) addrp=lastAddr(&msg.Contact)
goto st368 goto st368
tr651: tr651:
//line sip.rl:444
//line sip.rl:450
addrp=lastAddr(&msg.From) addrp=lastAddr(&msg.From)
goto st368 goto st368
tr756: tr756:
//line sip.rl:445
//line sip.rl:451
addrp=lastAddr(&msg.PAssertedIdentity) addrp=lastAddr(&msg.PAssertedIdentity)
goto st368 goto st368
tr823: tr823:
//line sip.rl:446
//line sip.rl:452
addrp=lastAddr(&msg.RecordRoute) addrp=lastAddr(&msg.RecordRoute)
goto st368 goto st368
tr847: tr847:
//line sip.rl:447
//line sip.rl:453
addrp=lastAddr(&msg.RemotePartyID) addrp=lastAddr(&msg.RemotePartyID)
goto st368 goto st368
tr875: tr875:
//line sip.rl:448
//line sip.rl:454
addrp=lastAddr(&msg.Route) addrp=lastAddr(&msg.Route)
goto st368 goto st368
tr898: tr898:
//line sip.rl:449
//line sip.rl:455
addrp=lastAddr(&msg.To) addrp=lastAddr(&msg.To)
goto st368 goto st368
st368: st368:
@ -10453,31 +10453,31 @@ addrp=lastAddr(&msg.To)
} }
goto st0 goto st0
tr541: tr541:
//line sip.rl:443
//line sip.rl:449
addrp=lastAddr(&msg.Contact) addrp=lastAddr(&msg.Contact)
goto st369 goto st369
tr652: tr652:
//line sip.rl:444
//line sip.rl:450
addrp=lastAddr(&msg.From) addrp=lastAddr(&msg.From)
goto st369 goto st369
tr757: tr757:
//line sip.rl:445
//line sip.rl:451
addrp=lastAddr(&msg.PAssertedIdentity) addrp=lastAddr(&msg.PAssertedIdentity)
goto st369 goto st369
tr824: tr824:
//line sip.rl:446
//line sip.rl:452
addrp=lastAddr(&msg.RecordRoute) addrp=lastAddr(&msg.RecordRoute)
goto st369 goto st369
tr848: tr848:
//line sip.rl:447
//line sip.rl:453
addrp=lastAddr(&msg.RemotePartyID) addrp=lastAddr(&msg.RemotePartyID)
goto st369 goto st369
tr876: tr876:
//line sip.rl:448
//line sip.rl:454
addrp=lastAddr(&msg.Route) addrp=lastAddr(&msg.Route)
goto st369 goto st369
tr899: tr899:
//line sip.rl:449
//line sip.rl:455
addrp=lastAddr(&msg.To) addrp=lastAddr(&msg.To)
goto st369 goto st369
st369: st369:
@ -10953,7 +10953,7 @@ addrp=lastAddr(&msg.To)
} }
goto st0 goto st0
tr592: tr592:
//line sip.rl:499
//line sip.rl:505
clen=0 clen=0
//line sip.rl:252 //line sip.rl:252
@ -11633,7 +11633,7 @@ tr609:
} }
goto st0 goto st0
tr646: tr646:
//line sip.rl:502
//line sip.rl:508
msg.Expires=0 msg.Expires=0
//line sip.rl:268 //line sip.rl:268
@ -11913,25 +11913,25 @@ tr648:
} }
goto st0 goto st0
tr672: tr672:
//line sip.rl:499
//line sip.rl:505
clen=0 clen=0
//line sip.rl:252 //line sip.rl:252
clen = clen * 10 + (int(data[p]) - 0x30) clen = clen * 10 + (int(data[p]) - 0x30)
//line sip.rl:502
//line sip.rl:508
msg.Expires=0 msg.Expires=0
//line sip.rl:268 //line sip.rl:268
msg.Expires = msg.Expires * 10 + (int(data[p]) - 0x30) msg.Expires = msg.Expires * 10 + (int(data[p]) - 0x30)
//line sip.rl:503
//line sip.rl:509
msg.MaxForwards=0 msg.MaxForwards=0
//line sip.rl:272 //line sip.rl:272
msg.MaxForwards = msg.MaxForwards * 10 + (int(data[p]) - 0x30) msg.MaxForwards = msg.MaxForwards * 10 + (int(data[p]) - 0x30)
//line sip.rl:504
//line sip.rl:510
msg.MinExpires=0 msg.MinExpires=0
//line sip.rl:276 //line sip.rl:276
@ -12168,7 +12168,7 @@ tr674:
} }
goto st0 goto st0
tr691: tr691:
//line sip.rl:503
//line sip.rl:509
msg.MaxForwards=0 msg.MaxForwards=0
//line sip.rl:272 //line sip.rl:272
@ -12466,7 +12466,7 @@ tr693:
} }
goto st0 goto st0
tr719: tr719:
//line sip.rl:504
//line sip.rl:510
msg.MinExpires=0 msg.MinExpires=0
//line sip.rl:276 //line sip.rl:276


+ 64
- 0
sip/params.go View File

@ -0,0 +1,64 @@
package sip
import (
"bytes"
"github.com/jart/gosip/util"
"sort"
)
type Params map[string]string
func (params Params) Copy() Params {
res := make(Params, len(params))
for k, v := range params {
res[k] = v
}
return res
}
func (params Params) Append(b *bytes.Buffer) {
if params != nil && len(params) > 0 {
keys := make([]string, len(params))
i := 0
for k, _ := range params {
keys[i] = k
i++
}
sort.Strings(keys)
for _, k := range keys {
b.WriteByte(';')
b.WriteString(util.URLEscape(k, false))
v := params[k]
if v != "" {
b.WriteByte('=')
b.WriteString(util.URLEscape(v, false))
}
}
}
}
func (params Params) AppendQuoted(b *bytes.Buffer) {
if params != nil && len(params) > 0 {
keys := make([]string, len(params))
i := 0
for k, _ := range params {
keys[i] = k
i++
}
sort.Strings(keys)
for _, k := range keys {
b.WriteByte(';')
b.Write(tokencify([]byte(k)))
v := params[k]
if v != "" {
b.WriteByte('=')
b.Write(quote([]byte(v)))
}
}
}
}
func (params Params) Has(k string) bool {
_, ok := params["lr"]
return ok
}

+ 0
- 56
sip/uri.go View File

@ -37,7 +37,6 @@ var (
URIBadPort = errors.New("invalid port number") URIBadPort = errors.New("invalid port number")
) )
type Params map[string]string
type URIHeaders map[string]string type URIHeaders map[string]string
type URI struct { type URI struct {
@ -124,61 +123,6 @@ func (uri *URI) GetPort() uint16 {
} }
} }
func (params Params) Copy() Params {
res := make(Params, len(params))
for k, v := range params {
res[k] = v
}
return res
}
func (params Params) Append(b *bytes.Buffer) {
if params != nil && len(params) > 0 {
keys := make([]string, len(params))
i := 0
for k, _ := range params {
keys[i] = k
i++
}
sort.Strings(keys)
for _, k := range keys {
b.WriteByte(';')
b.WriteString(util.URLEscape(k, false))
v := params[k]
if v != "" {
b.WriteByte('=')
b.WriteString(util.URLEscape(v, false))
}
}
}
}
func (params Params) AppendQuoted(b *bytes.Buffer) {
if params != nil && len(params) > 0 {
keys := make([]string, len(params))
i := 0
for k, _ := range params {
keys[i] = k
i++
}
sort.Strings(keys)
for _, k := range keys {
b.WriteByte(';')
b.Write(tokencify([]byte(k)))
v := params[k]
if v != "" {
b.WriteByte('=')
b.Write(quote([]byte(v)))
}
}
}
}
func (params Params) Has(k string) bool {
_, ok := params["lr"]
return ok
}
func (headers URIHeaders) Copy() URIHeaders { func (headers URIHeaders) Copy() URIHeaders {
res := make(URIHeaders, len(headers)) res := make(URIHeaders, len(headers))
for k, v := range headers { for k, v := range headers {


Loading…
Cancel
Save