/*
NNCP -- Node to Node copy, utilities for store-and-forward data exchange
-Copyright (C) 2016-2022 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2016-2023 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
"crypto/rand"
"fmt"
"io"
- "io/ioutil"
"os"
"path/filepath"
"strconv"
for i, recipient := range recipients {
recipients[i] = recipient % 8
}
- spool, err := ioutil.TempDir("", "testtoss")
+ spool, err := os.MkdirTemp("", "testtoss")
if err != nil {
panic(err)
}
if len(dirFiles(rxPath)) == 0 {
continue
}
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceExec-1,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceExec - 1})
if len(dirFiles(rxPath)) == 0 {
return false
}
ctx.Neigh[*nodeOur.Id].Exec = make(map[string][]string)
ctx.Neigh[*nodeOur.Id].Exec[handle] = []string{"/bin/sh", "-c", "false"}
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceExec,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceExec})
if len(dirFiles(rxPath)) == 0 {
return false
}
filepath.Join(spool, "mbox"),
),
}
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceExec,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceExec})
if len(dirFiles(rxPath)) != 0 {
return false
}
}
- mbox, err := ioutil.ReadFile(filepath.Join(spool, "mbox"))
+ mbox, err := os.ReadFile(filepath.Join(spool, "mbox"))
if err != nil {
return false
}
)
expected = append(expected, []byte("BODY\n")...)
}
- return bytes.Compare(mbox, expected) == 0
+ return bytes.Equal(mbox, expected)
}
if err := quick.Check(f, nil); err != nil {
t.Error(err)
}
files[strconv.Itoa(i)] = data
}
- spool, err := ioutil.TempDir("", "testtoss")
+ spool, err := os.MkdirTemp("", "testtoss")
if err != nil {
panic(err)
}
hasher.Write(fileData)
fileName := Base32Codec.EncodeToString(hasher.Sum(nil))
src := filepath.Join(spool, fileName)
- if err := ioutil.WriteFile(src, fileData, os.FileMode(0600)); err != nil {
+ if err := os.WriteFile(src, fileData, os.FileMode(0600)); err != nil {
panic(err)
}
if err := ctx.TxFile(
}
rxPath := filepath.Join(spool, ctx.Self.Id.String(), string(TRx))
os.Rename(filepath.Join(spool, ctx.Self.Id.String(), string(TTx)), rxPath)
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceFile,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceFile})
if len(dirFiles(rxPath)) == 0 {
return false
}
ctx.Neigh[*nodeOur.Id].Incoming = &incomingPath
- if ctx.Toss(ctx.Self.Id, TRx, DefaultNiceFile,
- false, false, false, false, false, false, false, false) {
+ if ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceFile}) {
return false
}
if len(dirFiles(rxPath)) != 0 {
hasher := MTHNew(0, 0)
hasher.Write(fileData)
fileName := Base32Codec.EncodeToString(hasher.Sum(nil))
- data, err := ioutil.ReadFile(filepath.Join(incomingPath, fileName))
+ data, err := os.ReadFile(filepath.Join(incomingPath, fileName))
if err != nil {
panic(err)
}
- if bytes.Compare(data, fileData) != 0 {
+ if !bytes.Equal(data, fileData) {
return false
}
}
func TestTossFileSameName(t *testing.T) {
f := func(filesRaw uint8) bool {
files := int(filesRaw)%8 + 1
- spool, err := ioutil.TempDir("", "testtoss")
+ spool, err := os.MkdirTemp("", "testtoss")
if err != nil {
panic(err)
}
}
ctx.Neigh[*nodeOur.Id] = nodeOur.Their()
srcPath := filepath.Join(spool, "junk")
- if err = ioutil.WriteFile(
+ if err = os.WriteFile(
srcPath,
[]byte("doesnotmatter"),
os.FileMode(0600),
rxPath := filepath.Join(spool, ctx.Self.Id.String(), string(TRx))
os.Rename(filepath.Join(spool, ctx.Self.Id.String(), string(TTx)), rxPath)
ctx.Neigh[*nodeOur.Id].Incoming = &incomingPath
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceFile,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceFile})
expected := make(map[string]struct{})
expected["samefile"] = struct{}{}
for i := 0; i < files-1; i++ {
}
delete(expected, filename)
}
- if len(expected) != 0 {
- return false
- }
- return true
+ return len(expected) == 0
}
if err := quick.Check(f, nil); err != nil {
t.Error(err)
if len(fileSizes) == 0 {
return true
}
- spool, err := ioutil.TempDir("", "testtoss")
+ spool, err := os.MkdirTemp("", "testtoss")
if err != nil {
panic(err)
}
txPath := filepath.Join(spool, ctx.Self.Id.String(), string(TTx))
os.Rename(txPath, rxPath)
os.MkdirAll(txPath, os.FileMode(0700))
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceFreq,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceFreq})
if len(dirFiles(txPath)) != 0 || len(dirFiles(rxPath)) == 0 {
return false
}
ctx.Neigh[*nodeOur.Id].FreqPath = &spool
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceFreq,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceFreq})
if len(dirFiles(txPath)) != 0 || len(dirFiles(rxPath)) == 0 {
return false
}
for fileName, fileData := range files {
- if err := ioutil.WriteFile(
+ if err := os.WriteFile(
filepath.Join(spool, fileName),
fileData,
os.FileMode(0600),
panic(err)
}
}
- ctx.Toss(ctx.Self.Id, TRx, DefaultNiceFreq,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: DefaultNiceFreq})
if len(dirFiles(txPath)) == 0 || len(dirFiles(rxPath)) != 0 {
return false
}
if pkt.Nice != replyNice {
return false
}
- dst := string(pkt.Path[:int(pkt.PathLen)])
- if bytes.Compare(buf.Bytes(), files[dst]) != 0 {
+ if !bytes.Equal(buf.Bytes(), files[string(pkt.Path[:int(pkt.PathLen)])]) {
return false
}
}
}
datum[i] = data
}
- spool, err := ioutil.TempDir("", "testtoss")
+ spool, err := os.MkdirTemp("", "testtoss")
if err != nil {
panic(err)
}
}
hasher := MTHNew(0, 0)
hasher.Write(dst.Bytes())
- if err := ioutil.WriteFile(
+ if err := os.WriteFile(
filepath.Join(rxPath, Base32Codec.EncodeToString(hasher.Sum(nil))),
dst.Bytes(),
os.FileMode(0600),
panic(err)
}
}
- ctx.Toss(ctx.Self.Id, TRx, 123,
- false, false, false, false, false, false, false, false)
+ ctx.Toss(ctx.Self.Id, TRx, &TossOpts{Nice: 123})
if len(dirFiles(rxPath)) != 0 {
return false
}
for _, filename := range dirFiles(txPath) {
- dataRead, err := ioutil.ReadFile(filepath.Join(txPath, filename))
+ dataRead, err := os.ReadFile(filepath.Join(txPath, filename))
if err != nil {
panic(err)
}
for k, data := range datum {
- if bytes.Compare(dataRead, data) == 0 {
+ if bytes.Equal(dataRead, data) {
delete(datum, k)
}
}
}
- if len(datum) > 0 {
- return false
- }
- return true
+ return len(datum) == 0
}
if err := quick.Check(f, nil); err != nil {
t.Error(err)