server: rename session id into secretID

This commit is contained in:
aler9
2021-08-04 17:21:25 +02:00
parent 15425ca26e
commit 2914af3fda
3 changed files with 16 additions and 16 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -119,9 +119,9 @@ 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
author *ServerConn
s *Server
secretID string // must not be shared, allows to take ownership of the session
author *ServerConn
ctx context.Context
ctxCancel func()
@@ -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 {