mirror of
https://github.com/yusing/godoxy.git
synced 2026-03-18 07:13:50 +01:00
fix(stream): update ToHeader function to accept pointer to header buffer and return copy
This commit is contained in:
@@ -72,8 +72,9 @@ func NewStreamHealthCheckHeader() *StreamRequestHeader {
|
||||
return header
|
||||
}
|
||||
|
||||
func ToHeader(buf [headerSize]byte) *StreamRequestHeader {
|
||||
return (*StreamRequestHeader)(unsafe.Pointer(&buf[0]))
|
||||
// ToHeader converts header byte array to a copy of itself as a StreamRequestHeader.
|
||||
func ToHeader(buf *[headerSize]byte) StreamRequestHeader {
|
||||
return *(*StreamRequestHeader)(unsafe.Pointer(buf))
|
||||
}
|
||||
|
||||
func (h *StreamRequestHeader) GetHostPort() (string, string) {
|
||||
|
||||
@@ -15,7 +15,7 @@ func TestStreamRequestHeader_RoundTripAndChecksum(t *testing.T) {
|
||||
|
||||
var buf [headerSize]byte
|
||||
copy(buf[:], h.Bytes())
|
||||
h2 := ToHeader(buf)
|
||||
h2 := ToHeader(&buf)
|
||||
if !h2.Validate() {
|
||||
t.Fatalf("expected round-tripped header to validate")
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ func (s *TCPServer) redirect(conn net.Conn) (net.Conn, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
header := ToHeader(headerBuf)
|
||||
header := ToHeader(&headerBuf)
|
||||
if !header.Validate() {
|
||||
return nil, ErrInvalidHeader
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ func (s *UDPServer) handleDTLSConnection(clientConn net.Conn) {
|
||||
s.logger(clientConn).Err(err).Msg("failed to read stream header")
|
||||
return
|
||||
}
|
||||
header := ToHeader(headerBuf)
|
||||
header := ToHeader(&headerBuf)
|
||||
if !header.Validate() {
|
||||
s.logger(clientConn).Error().Bytes("header", headerBuf[:]).Msg("invalid stream header received")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user