]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/tx.go
Do Mkdir syscall only if directory does not exist
[nncp.git] / src / tx.go
index 0ddbd510db5411e62ae4abbe2d8db79b2ca41b08..95801d50b542000759b1a6ee787a388fd3ddc575 100644 (file)
--- a/src/tx.go
+++ b/src/tx.go
@@ -257,9 +257,15 @@ func (ctx *Ctx) Tx(
                                msgHash,
                        )
                }
-               if err = os.MkdirAll(seenDir, os.FileMode(0777)); err != nil {
-                       ctx.LogE("tx-mkdir", les, err, logMsg)
-                       return lastNode, err
+               if _, err = os.Stat(seenDir); err != nil {
+                       if !os.IsNotExist(err) {
+                               ctx.LogE("tx-mkdir", les, err, logMsg)
+                               return lastNode, err
+                       }
+                       if err = os.MkdirAll(seenDir, os.FileMode(0777)); err != nil {
+                               ctx.LogE("tx-mkdir", les, err, logMsg)
+                               return lastNode, err
+                       }
                }
                if fd, err := os.Create(seenPath); err == nil {
                        fd.Close()