mirror of
https://github.com/postmannen/ctrl.git
synced 2025-03-31 01:24:31 +00:00
fixed error with missing database folder, also added sending all keys to to acked and not acked nodes
This commit is contained in:
parent
13feea1bfe
commit
9a0fe9ae7a
3 changed files with 19 additions and 22 deletions
|
@ -199,6 +199,7 @@ func (c *centralAuth) deletePublicKeys(proc process, msg Message, nodes []string
|
||||||
|
|
||||||
// dbUpdatePublicKey will update the public key for a node in the db.
|
// dbUpdatePublicKey will update the public key for a node in the db.
|
||||||
func (p *pki) dbUpdatePublicKey(node string, value []byte) error {
|
func (p *pki) dbUpdatePublicKey(node string, value []byte) error {
|
||||||
|
fmt.Printf("\n ***** DEBUG: %v\n\n", p.db)
|
||||||
err := p.db.Update(func(tx *bolt.Tx) error {
|
err := p.db.Update(func(tx *bolt.Tx) error {
|
||||||
//Create a bucket
|
//Create a bucket
|
||||||
bu, err := tx.CreateBucketIfNotExists([]byte(p.bucketNamePublicKeys))
|
bu, err := tx.CreateBucketIfNotExists([]byte(p.bucketNamePublicKeys))
|
||||||
|
|
|
@ -326,26 +326,16 @@ func methodKeysAllow(proc process, message Message, node string) ([]byte, error)
|
||||||
// also able to send an update to them as well.
|
// also able to send an update to them as well.
|
||||||
func pushKeys(proc process, message Message, nodes []Node) error {
|
func pushKeys(proc process, message Message, nodes []Node) error {
|
||||||
er := fmt.Errorf("info: beginning of pushKeys, nodes=%v", nodes)
|
er := fmt.Errorf("info: beginning of pushKeys, nodes=%v", nodes)
|
||||||
var knh []byte
|
|
||||||
proc.errorKernel.logDebug(er)
|
proc.errorKernel.logDebug(er)
|
||||||
|
|
||||||
err := func() error {
|
proc.centralAuth.pki.nodesAcked.mu.Lock()
|
||||||
proc.centralAuth.pki.nodesAcked.mu.Lock()
|
defer proc.centralAuth.pki.nodesAcked.mu.Unlock()
|
||||||
defer proc.centralAuth.pki.nodesAcked.mu.Unlock()
|
|
||||||
|
|
||||||
b, err := json.Marshal(proc.centralAuth.pki.nodesAcked.keysAndHash)
|
|
||||||
if err != nil {
|
|
||||||
er := fmt.Errorf("error: methodKeysAllow, failed to marshal keys map: %v", err)
|
|
||||||
return er
|
|
||||||
}
|
|
||||||
|
|
||||||
copy(knh, b)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}()
|
|
||||||
|
|
||||||
|
// Create the data payload of the current allowed keys.
|
||||||
|
b, err := json.Marshal(proc.centralAuth.pki.nodesAcked.keysAndHash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
er := fmt.Errorf("error: methodKeysAllow, failed to marshal keys map: %v", err)
|
||||||
|
proc.errorKernel.errSend(proc, message, er, logWarning)
|
||||||
}
|
}
|
||||||
|
|
||||||
// proc.centralAuth.pki.nodeNotAckedPublicKeys.mu.Lock()
|
// proc.centralAuth.pki.nodeNotAckedPublicKeys.mu.Lock()
|
||||||
|
@ -358,7 +348,7 @@ func pushKeys(proc process, message Message, nodes []Node) error {
|
||||||
msg := Message{
|
msg := Message{
|
||||||
ToNode: n,
|
ToNode: n,
|
||||||
Method: KeysUpdateReceive,
|
Method: KeysUpdateReceive,
|
||||||
Data: knh,
|
Data: b,
|
||||||
ReplyMethod: None,
|
ReplyMethod: None,
|
||||||
ACKTimeout: 0,
|
ACKTimeout: 0,
|
||||||
}
|
}
|
||||||
|
@ -369,9 +359,6 @@ func pushKeys(proc process, message Message, nodes []Node) error {
|
||||||
proc.errorKernel.logDebug(er)
|
proc.errorKernel.logDebug(er)
|
||||||
}
|
}
|
||||||
|
|
||||||
proc.centralAuth.pki.nodesAcked.mu.Lock()
|
|
||||||
defer proc.centralAuth.pki.nodesAcked.mu.Unlock()
|
|
||||||
|
|
||||||
// Concatenate the current nodes in the keysAndHash map and the nodes
|
// Concatenate the current nodes in the keysAndHash map and the nodes
|
||||||
// we got from the function argument when this function was called.
|
// we got from the function argument when this function was called.
|
||||||
nodeMap := make(map[Node]struct{})
|
nodeMap := make(map[Node]struct{})
|
||||||
|
@ -390,7 +377,7 @@ func pushKeys(proc process, message Message, nodes []Node) error {
|
||||||
msg := Message{
|
msg := Message{
|
||||||
ToNode: n,
|
ToNode: n,
|
||||||
Method: KeysUpdateReceive,
|
Method: KeysUpdateReceive,
|
||||||
Data: knh,
|
Data: b,
|
||||||
ReplyMethod: None,
|
ReplyMethod: None,
|
||||||
ACKTimeout: 0,
|
ACKTimeout: 0,
|
||||||
}
|
}
|
||||||
|
|
11
server.go
11
server.go
|
@ -207,6 +207,15 @@ func NewServer(configuration *Configuration, version string) (*server, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if tmp folder for socket exists, if not create it
|
||||||
|
if _, err := os.Stat(configuration.DatabaseFolder); os.IsNotExist(err) {
|
||||||
|
err := os.MkdirAll(configuration.DatabaseFolder, 0770)
|
||||||
|
if err != nil {
|
||||||
|
cancel()
|
||||||
|
return nil, fmt.Errorf("error: failed to create database folder directory %v: %v", configuration.DatabaseFolder, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//var nodeAuth *nodeAuth
|
//var nodeAuth *nodeAuth
|
||||||
//if configuration.EnableSignatureCheck {
|
//if configuration.EnableSignatureCheck {
|
||||||
nodeAuth := newNodeAuth(configuration, errorKernel)
|
nodeAuth := newNodeAuth(configuration, errorKernel)
|
||||||
|
@ -258,7 +267,7 @@ func NewServer(configuration *Configuration, version string) (*server, error) {
|
||||||
if configuration.SubscribersDataFolder == "" {
|
if configuration.SubscribersDataFolder == "" {
|
||||||
return nil, fmt.Errorf("error: subscribersDataFolder value is empty, you need to provide the config or the flag value at startup %v: %v", configuration.SubscribersDataFolder, err)
|
return nil, fmt.Errorf("error: subscribersDataFolder value is empty, you need to provide the config or the flag value at startup %v: %v", configuration.SubscribersDataFolder, err)
|
||||||
}
|
}
|
||||||
err := os.Mkdir(configuration.SubscribersDataFolder, 0770)
|
err := os.MkdirAll(configuration.SubscribersDataFolder, 0770)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error: failed to create data folder directory %v: %v", configuration.SubscribersDataFolder, err)
|
return nil, fmt.Errorf("error: failed to create data folder directory %v: %v", configuration.SubscribersDataFolder, err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue