add header metadata for http2

This commit is contained in:
ginuerzh 2022-04-01 23:44:38 +08:00
parent 066e6b90e6
commit ba2cd11fbe
2 changed files with 12 additions and 13 deletions

View File

@ -65,12 +65,12 @@ func (c *http2Connector) Connect(ctx context.Context, conn net.Conn, network, ad
Host: address, Host: address,
ProtoMajor: 2, ProtoMajor: 2,
ProtoMinor: 0, ProtoMinor: 0,
Header: make(http.Header), Header: c.md.header,
Body: pr, Body: pr,
// ContentLength: -1, // ContentLength: -1,
} }
if c.md.UserAgent != "" { if req.Header == nil {
req.Header.Set("User-Agent", c.md.UserAgent) req.Header = make(http.Header)
} }
if user := c.options.Auth; user != nil { if user := c.options.Auth; user != nil {

View File

@ -1,31 +1,30 @@
package http2 package http2
import ( import (
"net/http"
"time" "time"
mdata "github.com/go-gost/core/metadata" mdata "github.com/go-gost/core/metadata"
) )
const (
defaultUserAgent = "Chrome/78.0.3904.106"
)
type metadata struct { type metadata struct {
connectTimeout time.Duration connectTimeout time.Duration
UserAgent string header http.Header
} }
func (c *http2Connector) parseMetadata(md mdata.Metadata) (err error) { func (c *http2Connector) parseMetadata(md mdata.Metadata) (err error) {
const ( const (
connectTimeout = "timeout" connectTimeout = "timeout"
userAgent = "userAgent" header = "header"
) )
c.md.connectTimeout = mdata.GetDuration(md, connectTimeout) c.md.connectTimeout = mdata.GetDuration(md, connectTimeout)
c.md.UserAgent = mdata.GetString(md, userAgent) if mm := mdata.GetStringMapString(md, header); len(mm) > 0 {
if c.md.UserAgent == "" { hd := http.Header{}
c.md.UserAgent = defaultUserAgent for k, v := range mm {
hd.Add(k, v)
}
c.md.header = hd
} }
return return
} }