if areaId != nil {
area = ctx.AreaId2Area[*areaId]
if area.Prv == nil {
- return nil, errors.New("unknown area id")
+ return nil, errors.New("area has no encryption keys")
}
}
hops := make([]*Node, 0, 1+len(node.Via))
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()