feat: add custom header support to PHT protocol
- Add Header field to PHT Client and clientConn structs - Support custom headers in authorize, push, and pull requests - Add metadata parsing for header configuration as map[string]string - Enables PHT usage with header-based authentication (e.g., Cloudflare Access) Backwards compatible - headers are optional.
This commit is contained in:
committed by
ginuerzh
parent
cd7bf9521f
commit
96f35bd7aa
@@ -17,6 +17,7 @@ import (
|
||||
|
||||
type clientConn struct {
|
||||
client *http.Client
|
||||
header http.Header
|
||||
pushURL string
|
||||
pullURL string
|
||||
buf []byte
|
||||
@@ -69,6 +70,15 @@ func (c *clientConn) write(b []byte) (n int, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// Add custom headers
|
||||
if c.header != nil {
|
||||
for k, values := range c.header {
|
||||
for _, v := range values {
|
||||
req.Header.Add(k, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if c.logger.IsLevelEnabled(logger.TraceLevel) {
|
||||
dump, _ := httputil.DumpRequest(req, false)
|
||||
c.logger.Trace(string(dump))
|
||||
@@ -109,6 +119,15 @@ func (c *clientConn) readLoop() {
|
||||
return err
|
||||
}
|
||||
|
||||
// Add custom headers
|
||||
if c.header != nil {
|
||||
for k, values := range c.header {
|
||||
for _, v := range values {
|
||||
r.Header.Add(k, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if c.logger.IsLevelEnabled(logger.TraceLevel) {
|
||||
dump, _ := httputil.DumpRequest(r, false)
|
||||
c.logger.Trace(string(dump))
|
||||
|
||||
Reference in New Issue
Block a user