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.
|
||||
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 {
|
||||
//Create a bucket
|
||||
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.
|
||||
func pushKeys(proc process, message Message, nodes []Node) error {
|
||||
er := fmt.Errorf("info: beginning of pushKeys, nodes=%v", nodes)
|
||||
var knh []byte
|
||||
proc.errorKernel.logDebug(er)
|
||||
|
||||
err := func() error {
|
||||
proc.centralAuth.pki.nodesAcked.mu.Lock()
|
||||
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
|
||||
}()
|
||||
proc.centralAuth.pki.nodesAcked.mu.Lock()
|
||||
defer proc.centralAuth.pki.nodesAcked.mu.Unlock()
|
||||
|
||||
// Create the data payload of the current allowed keys.
|
||||
b, err := json.Marshal(proc.centralAuth.pki.nodesAcked.keysAndHash)
|
||||
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()
|
||||
|
@ -358,7 +348,7 @@ func pushKeys(proc process, message Message, nodes []Node) error {
|
|||
msg := Message{
|
||||
ToNode: n,
|
||||
Method: KeysUpdateReceive,
|
||||
Data: knh,
|
||||
Data: b,
|
||||
ReplyMethod: None,
|
||||
ACKTimeout: 0,
|
||||
}
|
||||
|
@ -369,9 +359,6 @@ func pushKeys(proc process, message Message, nodes []Node) error {
|
|||
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
|
||||
// we got from the function argument when this function was called.
|
||||
nodeMap := make(map[Node]struct{})
|
||||
|
@ -390,7 +377,7 @@ func pushKeys(proc process, message Message, nodes []Node) error {
|
|||
msg := Message{
|
||||
ToNode: n,
|
||||
Method: KeysUpdateReceive,
|
||||
Data: knh,
|
||||
Data: b,
|
||||
ReplyMethod: None,
|
||||
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
|
||||
//if configuration.EnableSignatureCheck {
|
||||
nodeAuth := newNodeAuth(configuration, errorKernel)
|
||||
|
@ -258,7 +267,7 @@ func NewServer(configuration *Configuration, version string) (*server, error) {
|
|||
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)
|
||||
}
|
||||
err := os.Mkdir(configuration.SubscribersDataFolder, 0770)
|
||||
err := os.MkdirAll(configuration.SubscribersDataFolder, 0770)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error: failed to create data folder directory %v: %v", configuration.SubscribersDataFolder, err)
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue