Update - modify hub to support multiple networks. (#4)
Co-authored-by: jdl <jdl@desktop> Reviewed-on: #4
This commit is contained in:
@@ -54,17 +54,11 @@ func (a *API) ensurePassword() error {
|
||||
log.Printf("Setting password: %s", pwd)
|
||||
|
||||
hashed, err := bcrypt.GenerateFromPassword([]byte(pwd), bcrypt.DefaultCost)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
conf := &Config{
|
||||
ConfigID: 1,
|
||||
VPNNetwork: []byte{10, 1, 1, 0},
|
||||
Password: hashed,
|
||||
}
|
||||
|
||||
conf := &Config{ConfigID: 1, Password: hashed}
|
||||
return db.Config_Insert(a.db, conf)
|
||||
}
|
||||
|
||||
@@ -80,10 +74,6 @@ func (a *API) Config_Update(conf *Config) error {
|
||||
return db.Config_Update(a.db, conf)
|
||||
}
|
||||
|
||||
func (a *API) Config_UpdatePassword(pwdHash []byte) error {
|
||||
return db.Config_UpdatePassword(a.db, pwdHash)
|
||||
}
|
||||
|
||||
func (a *API) Session_Delete(sessionID string) error {
|
||||
return db.Session_Delete(a.db, sessionID)
|
||||
}
|
||||
@@ -137,6 +127,24 @@ func (a *API) Session_SignIn(s *Session, pwd string) error {
|
||||
return db.Session_SetSignedIn(a.db, s.SessionID)
|
||||
}
|
||||
|
||||
func (a *API) Network_Create(n *Network) error {
|
||||
n.NetworkID = idgen.NextID(0)
|
||||
return db.Network_Insert(a.db, n)
|
||||
}
|
||||
|
||||
func (a *API) Network_Delete(n *Network) error {
|
||||
return db.Network_Delete(a.db, n.NetworkID)
|
||||
}
|
||||
|
||||
func (a *API) Network_Get(id int64) (*Network, error) {
|
||||
return db.Network_Get(a.db, id)
|
||||
}
|
||||
|
||||
func (a *API) Network_List() ([]*Network, error) {
|
||||
const query = db.Network_SelectQuery + ` ORDER BY Name ASC`
|
||||
return db.Network_List(a.db, query)
|
||||
}
|
||||
|
||||
func (a *API) Peer_CreateNew(p *Peer) error {
|
||||
p.Version = idgen.NextID(0)
|
||||
p.PubKey = []byte{}
|
||||
@@ -146,7 +154,7 @@ func (a *API) Peer_CreateNew(p *Peer) error {
|
||||
return db.Peer_Insert(a.db, p)
|
||||
}
|
||||
|
||||
func (a *API) Peer_Init(peer *Peer, args m.PeerInitArgs) (*m.PeerConfig, error) {
|
||||
func (a *API) Peer_Init(peer *Peer, args m.PeerInitArgs) error {
|
||||
a.lock.Lock()
|
||||
defer a.lock.Unlock()
|
||||
|
||||
@@ -154,19 +162,7 @@ func (a *API) Peer_Init(peer *Peer, args m.PeerInitArgs) (*m.PeerConfig, error)
|
||||
peer.PubKey = args.EncPubKey
|
||||
peer.PubSignKey = args.PubSignKey
|
||||
|
||||
if err := db.Peer_UpdateFull(a.db, peer); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
conf := a.Config_Get()
|
||||
|
||||
return &m.PeerConfig{
|
||||
PeerIP: peer.PeerIP,
|
||||
Network: conf.VPNNetwork,
|
||||
PublicIP: peer.PublicIP,
|
||||
Port: peer.Port,
|
||||
Relay: peer.Relay,
|
||||
}, nil
|
||||
return db.Peer_UpdateFull(a.db, peer)
|
||||
}
|
||||
|
||||
func (a *API) Peer_Update(p *Peer) error {
|
||||
@@ -177,16 +173,16 @@ func (a *API) Peer_Update(p *Peer) error {
|
||||
return db.Peer_Update(a.db, p)
|
||||
}
|
||||
|
||||
func (a *API) Peer_Delete(ip byte) error {
|
||||
return db.Peer_Delete(a.db, ip)
|
||||
func (a *API) Peer_Delete(networkID int64, peerIP byte) error {
|
||||
return db.Peer_Delete(a.db, networkID, peerIP)
|
||||
}
|
||||
|
||||
func (a *API) Peer_List() ([]*Peer, error) {
|
||||
return db.Peer_ListAll(a.db)
|
||||
func (a *API) Peer_List(networkID int64) ([]*Peer, error) {
|
||||
return db.Peer_ListAll(a.db, networkID)
|
||||
}
|
||||
|
||||
func (a *API) Peer_Get(ip byte) (*Peer, error) {
|
||||
return db.Peer_Get(a.db, ip)
|
||||
func (a *API) Peer_Get(networkID int64, ip byte) (*Peer, error) {
|
||||
return db.Peer_Get(a.db, networkID, ip)
|
||||
}
|
||||
|
||||
func (a *API) Peer_GetByAPIKey(key string) (*Peer, error) {
|
||||
|
||||
Reference in New Issue
Block a user