]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/ctx.go
Merge branch 'develop'
[nncp.git] / src / ctx.go
index 28c9b38de1bfcaa5083a9b1ad82c28ac91c0f136..3793bbba6b6808b3c3b9d0630a788682b54e615b 100644 (file)
@@ -25,6 +25,7 @@ import (
        "path/filepath"
 
        "golang.org/x/sys/unix"
+       "syscall"
 )
 
 type Ctx struct {
@@ -35,10 +36,11 @@ type Ctx struct {
 
        Spool      string
        LogPath    string
+       UmaskForce *int
        Quiet      bool
        Debug      bool
-       NotifyFile *FromToYAML
-       NotifyFreq *FromToYAML
+       NotifyFile *FromToJSON
+       NotifyFreq *FromToJSON
 }
 
 func (ctx *Ctx) FindNode(id string) (*Node, error) {
@@ -59,7 +61,7 @@ func (ctx *Ctx) FindNode(id string) (*Node, error) {
 
 func (ctx *Ctx) ensureRxDir(nodeId *NodeId) error {
        dirPath := filepath.Join(ctx.Spool, nodeId.String(), string(TRx))
-       if err := os.MkdirAll(dirPath, os.FileMode(0700)); err != nil {
+       if err := os.MkdirAll(dirPath, os.FileMode(0777)); err != nil {
                ctx.LogE("dir-ensure", SDS{"dir": dirPath, "err": err}, "")
                return err
        }
@@ -113,3 +115,9 @@ func (ctx *Ctx) IsEnoughSpace(want int64) bool {
        }
        return int64(s.Bavail)*int64(s.Bsize) > want
 }
+
+func (ctx *Ctx) Umask() {
+       if ctx.UmaskForce != nil {
+               syscall.Umask(*ctx.UmaskForce)
+       }
+}