mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-22 20:00:27 +00:00
37 lines
880 B
Go
37 lines
880 B
Go
package admin
|
|
|
|
import (
|
|
"encoding/hex"
|
|
|
|
"github.com/yggdrasil-network/yggdrasil-go/src/version"
|
|
)
|
|
|
|
type GetSelfRequest struct{}
|
|
|
|
type GetSelfResponse struct {
|
|
Self map[string]SelfEntry `json:"self"`
|
|
}
|
|
|
|
type SelfEntry struct {
|
|
BuildName string `json:"build_name"`
|
|
BuildVersion string `json:"build_version"`
|
|
PublicKey string `json:"key"`
|
|
Coords []uint64 `json:"coords"`
|
|
Subnet string `json:"subnet"`
|
|
}
|
|
|
|
func (a *AdminSocket) getSelfHandler(req *GetSelfRequest, res *GetSelfResponse) error {
|
|
res.Self = make(map[string]SelfEntry)
|
|
self := a.core.GetSelf()
|
|
addr := a.core.Address().String()
|
|
snet := a.core.Subnet()
|
|
res.Self[addr] = SelfEntry{
|
|
BuildName: version.BuildName(),
|
|
BuildVersion: version.BuildVersion(),
|
|
PublicKey: hex.EncodeToString(self.Key[:]),
|
|
Subnet: snet.String(),
|
|
Coords: self.Coords,
|
|
}
|
|
return nil
|
|
}
|