You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
648 B

package mtproto
import "github.com/gotd/td/internal/crypto"
// Session represents connection state.
type Session struct {
ID int64
Key crypto.AuthKey
Salt int64
}
// Session returns current connection session info.
func (c *Conn) session() Session {
c.updateSalt()
c.sessionMux.RLock()
defer c.sessionMux.RUnlock()
return Session{
Key: c.authKey,
Salt: c.salt,
ID: c.sessionID,
}
}
// newSessionID sets session id to random value.
func (c *Conn) newSessionID() error {
id, err := crypto.RandInt64(c.rand)
if err != nil {
return err
}
c.sessionMux.Lock()
defer c.sessionMux.Unlock()
c.sessionID = id
return nil
}