mirror of
https://github.com/aler9/gortsplib
synced 2025-10-04 23:02:45 +08:00
server: rename session id into secretID
This commit is contained in:
12
server.go
12
server.go
@@ -29,7 +29,7 @@ func extractPort(address string) (int, error) {
|
||||
return int(tmp2), nil
|
||||
}
|
||||
|
||||
func newSessionID(sessions map[string]*ServerSession) (string, error) {
|
||||
func newSessionSecretID(sessions map[string]*ServerSession) (string, error) {
|
||||
for {
|
||||
b := make([]byte, 4)
|
||||
_, err := rand.Read(b)
|
||||
@@ -372,7 +372,7 @@ outer:
|
||||
continue
|
||||
}
|
||||
|
||||
id, err := newSessionID(s.sessions)
|
||||
secretID, err := newSessionSecretID(s.sessions)
|
||||
if err != nil {
|
||||
req.res <- sessionRequestRes{
|
||||
res: &base.Response{
|
||||
@@ -383,8 +383,8 @@ outer:
|
||||
continue
|
||||
}
|
||||
|
||||
ss := newServerSession(s, id, req.sc)
|
||||
s.sessions[id] = ss
|
||||
ss := newServerSession(s, secretID, req.sc)
|
||||
s.sessions[secretID] = ss
|
||||
|
||||
select {
|
||||
case ss.request <- req:
|
||||
@@ -399,10 +399,10 @@ outer:
|
||||
}
|
||||
|
||||
case ss := <-s.sessionClose:
|
||||
if sss, ok := s.sessions[ss.id]; !ok || sss != ss {
|
||||
if sss, ok := s.sessions[ss.secretID]; !ok || sss != ss {
|
||||
continue
|
||||
}
|
||||
delete(s.sessions, ss.id)
|
||||
delete(s.sessions, ss.secretID)
|
||||
ss.Close()
|
||||
|
||||
case st := <-s.streamAdd:
|
||||
|
@@ -227,8 +227,8 @@ func (sc *ServerConn) run() {
|
||||
return err
|
||||
|
||||
case ss := <-sc.sessionRemove:
|
||||
if _, ok := sc.sessions[ss.id]; ok {
|
||||
delete(sc.sessions, ss.id)
|
||||
if _, ok := sc.sessions[ss.secretID]; ok {
|
||||
delete(sc.sessions, ss.secretID)
|
||||
|
||||
select {
|
||||
case ss.connRemove <- sc:
|
||||
@@ -285,7 +285,7 @@ func (sc *ServerConn) handleRequest(req *base.Request) (*base.Response, error) {
|
||||
// the connection can't communicate with another session
|
||||
// if it's receiving or sending TCP frames.
|
||||
if sc.tcpSession != nil &&
|
||||
sxID != sc.tcpSession.id {
|
||||
sxID != sc.tcpSession.secretID {
|
||||
return &base.Response{
|
||||
StatusCode: base.StatusBadRequest,
|
||||
}, liberrors.ErrServerLinkedToOtherSession{}
|
||||
@@ -589,7 +589,7 @@ func (sc *ServerConn) handleRequestInSession(
|
||||
case sc.s.sessionRequest <- sreq:
|
||||
res := <-cres
|
||||
if res.ss != nil {
|
||||
sc.sessions[res.ss.id] = res.ss
|
||||
sc.sessions[res.ss.secretID] = res.ss
|
||||
}
|
||||
|
||||
return res.ss, res.res, res.err
|
||||
|
@@ -120,7 +120,7 @@ type ServerSessionAnnouncedTrack struct {
|
||||
// ServerSession is a server-side RTSP session.
|
||||
type ServerSession struct {
|
||||
s *Server
|
||||
id string // do not export, allows to take ownership of the session
|
||||
secretID string // must not be shared, allows to take ownership of the session
|
||||
author *ServerConn
|
||||
|
||||
ctx context.Context
|
||||
@@ -149,14 +149,14 @@ type ServerSession struct {
|
||||
|
||||
func newServerSession(
|
||||
s *Server,
|
||||
id string,
|
||||
secretID string,
|
||||
author *ServerConn,
|
||||
) *ServerSession {
|
||||
ctx, ctxCancel := context.WithCancel(s.ctx)
|
||||
|
||||
ss := &ServerSession{
|
||||
s: s,
|
||||
id: id,
|
||||
secretID: secretID,
|
||||
author: author,
|
||||
ctx: ctx,
|
||||
ctxCancel: ctxCancel,
|
||||
@@ -250,7 +250,7 @@ func (ss *ServerSession) run() {
|
||||
if res.Header == nil {
|
||||
res.Header = make(base.Header)
|
||||
}
|
||||
res.Header["Session"] = base.HeaderValue{ss.id}
|
||||
res.Header["Session"] = base.HeaderValue{ss.secretID}
|
||||
}
|
||||
|
||||
if _, ok := err.(liberrors.ErrServerSessionTeardown); ok {
|
||||
|
Reference in New Issue
Block a user