mirror of
https://github.com/go-i2p/go-sam-go.git
synced 2025-07-07 11:12:52 -04:00
41 lines
806 B
Go
41 lines
806 B
Go
package sam3
|
|
|
|
import (
|
|
"math/rand"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/go-i2p/go-sam-go/primary"
|
|
)
|
|
|
|
const (
|
|
session_ADDOK = "SESSION STATUS RESULT=OK"
|
|
)
|
|
|
|
func randport() string {
|
|
s := rand.NewSource(time.Now().UnixNano())
|
|
r := rand.New(s)
|
|
p := r.Intn(55534) + 10000
|
|
port := strconv.Itoa(p)
|
|
log.WithField("port", port).Debug("Generated random port")
|
|
return strconv.Itoa(p)
|
|
}
|
|
|
|
// Represents a primary session.
|
|
type PrimarySession struct {
|
|
*primary.PrimarySession
|
|
}
|
|
|
|
var PrimarySessionSwitch = "MASTER"
|
|
|
|
func (p *PrimarySession) NewStreamSubSession(id string) (*StreamSession, error) {
|
|
log.WithField("id", id).Debug("NewStreamSubSession called")
|
|
session, err := p.PrimarySession.NewStreamSubSession(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &StreamSession{
|
|
StreamSession: session,
|
|
}, nil
|
|
}
|