adc: PID management

--HG--
branch : adc
This commit is contained in:
mappu 2017-11-26 13:29:44 +13:00
parent ee91ca71c4
commit a3963f196a

View File

@ -1,11 +1,30 @@
package libnmdc package libnmdc
import (
"crypto/rand"
)
type HubConnectionOptions struct { type HubConnectionOptions struct {
Address HubAddress Address HubAddress
SkipVerifyTLS bool // using a negative verb, because bools default to false SkipVerifyTLS bool // using a negative verb, because bools default to false
SkipAutoReconnect bool // as above SkipAutoReconnect bool // as above
Self *UserInfo Self *UserInfo
NickPassword string NickPassword string
AdcPID string // blank: autogenerate
}
func NewPID() string {
pidBytes := make([]byte, 24)
n, err := rand.Read(pidBytes)
if err != nil {
panic(err) // Insufficient cryptographic randomness
}
if n != 24 {
panic("Insufficient cryptographic randomness")
}
return Base32(pidBytes)
} }
func (this *HubConnectionOptions) prepareConnection() *HubConnection { func (this *HubConnectionOptions) prepareConnection() *HubConnection {
@ -19,6 +38,10 @@ func (this *HubConnectionOptions) prepareConnection() *HubConnection {
this.Self.ClientVersion = "0" this.Self.ClientVersion = "0"
} }
if this.AdcPID == "" {
this.AdcPID = NewPID()
}
hc := HubConnection{ hc := HubConnection{
Hco: this, Hco: this,
HubName: DEFAULT_HUB_NAME, HubName: DEFAULT_HUB_NAME,