[feat]使用官方 http.Header 替换原来http的头

pull/95/head
joestarzxh 4 years ago
parent a224057363
commit 264a53f667

@ -12,6 +12,7 @@ import (
"context" "context"
"fmt" "fmt"
"net" "net"
"net/http"
"time" "time"
"github.com/q191201771/lal/pkg/base" "github.com/q191201771/lal/pkg/base"
@ -225,7 +226,7 @@ func (session *PullSession) writeHttpRequest() error {
return err return err
} }
func (session *PullSession) readHttpRespHeader() (statusLine string, headers nazahttp.HttpHeaders, err error) { func (session *PullSession) readHttpRespHeader() (statusLine string, headers http.Header, err error) {
// TODO chef: timeout // TODO chef: timeout
if statusLine, headers, err = nazahttp.ReadHttpHeader(session.conn); err != nil { if statusLine, headers, err = nazahttp.ReadHttpHeader(session.conn); err != nil {
return return

@ -341,7 +341,7 @@ func (session *ClientCommandSession) writeOptions() error {
return err return err
} }
method := ctx.Headers.Value(HeaderPublic) method := ctx.Headers.Get(HeaderPublic)
if method== "" { if method== "" {
return nil return nil
@ -429,9 +429,9 @@ func (session *ClientCommandSession) writeOneSetup(setupUri string) error {
return err return err
} }
session.sessionId = strings.Split(ctx.Headers.Value(HeaderSession), ";")[0] session.sessionId = strings.Split(ctx.Headers.Get(HeaderSession), ";")[0]
rRtpPort, rRtcpPort, err := parseServerPort(ctx.Headers.Value(HeaderTransport)) rRtpPort, rRtcpPort, err := parseServerPort(ctx.Headers.Get(HeaderTransport))
if err != nil { if err != nil {
return err return err
} }
@ -481,7 +481,7 @@ func (session *ClientCommandSession) writeOneSetupTcp(setupUri string) error {
return err return err
} }
session.sessionId = strings.Split(ctx.Headers.Value(HeaderSession), ";")[0] session.sessionId = strings.Split(ctx.Headers.Get(HeaderSession), ";")[0]
// TODO chef: 这里没有解析回传的channel id了因为我假定了它和request中的是一致的 // TODO chef: 这里没有解析回传的channel id了因为我假定了它和request中的是一致的
session.observer.OnSetupWithChannel(setupUri, rtpChannel, rtcpChannel) session.observer.OnSetupWithChannel(setupUri, rtpChannel, rtcpChannel)
@ -551,7 +551,7 @@ func (session *ClientCommandSession) writeCmdReadResp(method, uri string, header
return return
} }
//目前只处理第一个 //目前只处理第一个
session.auth.FeedWwwAuthenticate(ctx.Headers.Value(HeaderWwwAuthenticate), session.urlCtx.Username, session.urlCtx.Password) session.auth.FeedWwwAuthenticate(ctx.Headers.Get(HeaderWwwAuthenticate), session.urlCtx.Username, session.urlCtx.Password)
} }
err = ErrRtsp err = ErrRtsp

@ -189,7 +189,7 @@ Loop:
func (session *ServerCommandSession) handleOptions(requestCtx nazahttp.HttpReqMsgCtx) error { func (session *ServerCommandSession) handleOptions(requestCtx nazahttp.HttpReqMsgCtx) error {
nazalog.Infof("[%s] < R OPTIONS", session.uniqueKey) nazalog.Infof("[%s] < R OPTIONS", session.uniqueKey)
resp := PackResponseOptions(requestCtx.Headers.Value(HeaderCSeq)) resp := PackResponseOptions(requestCtx.Headers.Get(HeaderCSeq))
_, err := session.conn.Write([]byte(resp)) _, err := session.conn.Write([]byte(resp))
return err return err
} }
@ -218,7 +218,7 @@ func (session *ServerCommandSession) handleAnnounce(requestCtx nazahttp.HttpReqM
return ErrRtsp return ErrRtsp
} }
resp := PackResponseAnnounce(requestCtx.Headers.Value(HeaderCSeq)) resp := PackResponseAnnounce(requestCtx.Headers.Get(HeaderCSeq))
_, err = session.conn.Write([]byte(resp)) _, err = session.conn.Write([]byte(resp))
return err return err
} }
@ -243,7 +243,7 @@ func (session *ServerCommandSession) handleDescribe(requestCtx nazahttp.HttpReqM
sdpLogicCtx, _ := sdp.ParseSdp2LogicContext(rawSdp) sdpLogicCtx, _ := sdp.ParseSdp2LogicContext(rawSdp)
session.subSession.InitWithSdp(rawSdp, sdpLogicCtx) session.subSession.InitWithSdp(rawSdp, sdpLogicCtx)
resp := PackResponseDescribe(requestCtx.Headers.Value(HeaderCSeq), string(rawSdp)) resp := PackResponseDescribe(requestCtx.Headers.Get(HeaderCSeq), string(rawSdp))
_, err = session.conn.Write([]byte(resp)) _, err = session.conn.Write([]byte(resp))
return err return err
} }
@ -256,7 +256,7 @@ func (session *ServerCommandSession) handleSetup(requestCtx nazahttp.HttpReqMsgC
host, _, _ := net.SplitHostPort(remoteAddr) host, _, _ := net.SplitHostPort(remoteAddr)
// 是否为interleaved模式 // 是否为interleaved模式
htv := requestCtx.Headers.Value(HeaderTransport) htv := requestCtx.Headers.Get(HeaderTransport)
if strings.Contains(htv, TransportFieldInterleaved) { if strings.Contains(htv, TransportFieldInterleaved) {
rtpChannel, rtcpChannel, err := parseRtpRtcpChannel(htv) rtpChannel, rtcpChannel, err := parseRtpRtcpChannel(htv)
if err != nil { if err != nil {
@ -278,12 +278,12 @@ func (session *ServerCommandSession) handleSetup(requestCtx nazahttp.HttpReqMsgC
return ErrRtsp return ErrRtsp
} }
resp := PackResponseSetup(requestCtx.Headers.Value(HeaderCSeq), htv) resp := PackResponseSetup(requestCtx.Headers.Get(HeaderCSeq), htv)
_, err = session.conn.Write([]byte(resp)) _, err = session.conn.Write([]byte(resp))
return err return err
} }
rRtpPort, rRtcpPort, err := parseClientPort(requestCtx.Headers.Value(HeaderTransport)) rRtpPort, rRtcpPort, err := parseClientPort(requestCtx.Headers.Get(HeaderTransport))
if err != nil { if err != nil {
nazalog.Errorf("[%s] parseClientPort failed. err=%+v", session.uniqueKey, err) nazalog.Errorf("[%s] parseClientPort failed. err=%+v", session.uniqueKey, err)
return err return err
@ -313,14 +313,14 @@ func (session *ServerCommandSession) handleSetup(requestCtx nazahttp.HttpReqMsgC
return ErrRtsp return ErrRtsp
} }
resp := PackResponseSetup(requestCtx.Headers.Value(HeaderCSeq), htv) resp := PackResponseSetup(requestCtx.Headers.Get(HeaderCSeq), htv)
_, err = session.conn.Write([]byte(resp)) _, err = session.conn.Write([]byte(resp))
return err return err
} }
func (session *ServerCommandSession) handleRecord(requestCtx nazahttp.HttpReqMsgCtx) error { func (session *ServerCommandSession) handleRecord(requestCtx nazahttp.HttpReqMsgCtx) error {
nazalog.Infof("[%s] < R RECORD", session.uniqueKey) nazalog.Infof("[%s] < R RECORD", session.uniqueKey)
resp := PackResponseRecord(requestCtx.Headers.Value(HeaderCSeq)) resp := PackResponseRecord(requestCtx.Headers.Get(HeaderCSeq))
_, err := session.conn.Write([]byte(resp)) _, err := session.conn.Write([]byte(resp))
return err return err
} }
@ -330,14 +330,14 @@ func (session *ServerCommandSession) handlePlay(requestCtx nazahttp.HttpReqMsgCt
if ok := session.observer.OnNewRtspSubSessionPlay(session.subSession); !ok { if ok := session.observer.OnNewRtspSubSessionPlay(session.subSession); !ok {
return ErrRtsp return ErrRtsp
} }
resp := PackResponsePlay(requestCtx.Headers.Value(HeaderCSeq)) resp := PackResponsePlay(requestCtx.Headers.Get(HeaderCSeq))
_, err := session.conn.Write([]byte(resp)) _, err := session.conn.Write([]byte(resp))
return err return err
} }
func (session *ServerCommandSession) handleTeardown(requestCtx nazahttp.HttpReqMsgCtx) error { func (session *ServerCommandSession) handleTeardown(requestCtx nazahttp.HttpReqMsgCtx) error {
nazalog.Infof("[%s] < R TEARDOWN", session.uniqueKey) nazalog.Infof("[%s] < R TEARDOWN", session.uniqueKey)
resp := PackResponseTeardown(requestCtx.Headers.Value(HeaderCSeq)) resp := PackResponseTeardown(requestCtx.Headers.Get(HeaderCSeq))
_, err := session.conn.Write([]byte(resp)) _, err := session.conn.Write([]byte(resp))
return err return err
} }

Loading…
Cancel
Save