Files
gortsplib/headerauth.go
2020-01-26 11:06:25 +01:00

39 lines
596 B
Go

package gortsplib
import (
"fmt"
"regexp"
"strings"
)
type HeaderAuth struct {
Prefix string
Values map[string]string
}
func ReadHeaderAuth(in string) (*HeaderAuth, error) {
a := &HeaderAuth{
Values: make(map[string]string),
}
i := strings.IndexByte(in, ' ')
if i < 0 {
return nil, fmt.Errorf("parse error")
}
a.Prefix, in = in[:i], in[i+1:]
r := regexp.MustCompile("^([a-z]+)=\"(.+?)\"(, )?")
for len(in) > 0 {
m := r.FindStringSubmatch(in)
if m == nil {
return nil, fmt.Errorf("parse error")
}
in = in[len(m[0]):]
a.Values[m[1]] = m[2]
}
return a, nil
}