/*
NNCP -- Node to Node copy, utilities for store-and-forward data exchange
-Copyright (C) 2016-2017 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2016-2018 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
)
const (
- CfgPathEnv = "NNCPCFG"
+ CfgPathEnv = "NNCPCFG"
+ CfgSpoolEnv = "NNCPSPOOL"
+ CfgLogEnv = "NNCPLOG"
)
var (
Id string
ExchPub string
SignPub string
- NoisePub *string `noisepub,omitempty`
- Sendmail []string `sendmail,omitempty`
- Incoming *string `incoming,omitempty`
- Freq *string `freq,omitempty`
- FreqChunked *uint64 `freqchunked,omitempty`
- FreqMinSize *uint64 `freqminsize,omitempty`
- Via []string `via,omitempty`
- Calls []CallYAML `calls,omitempty`
+ NoisePub *string `noisepub,omitempty`
+ Exec map[string][]string `exec,omitempty`
+ Incoming *string `incoming,omitempty`
+ Freq *string `freq,omitempty`
+ FreqChunked *uint64 `freqchunked,omitempty`
+ FreqMinSize *uint64 `freqminsize,omitempty`
+ Via []string `via,omitempty`
+ Calls []CallYAML `calls,omitempty`
Addrs map[string]string `addrs,omitempty`
type CallYAML struct {
Cron string
Nice *int `nice,omitempty`
- Xx *string `xx,omitempty`
+ Xx string `xx,omitempty`
Addr *string `addr,omitempty`
OnlineDeadline *uint `onlinedeadline,omitempty`
MaxOnlineTime *uint `maxonlinetime,omitempty`
nice = uint8(*callYml.Nice)
}
var xx TRxTx
- if callYml.Xx != nil {
- switch *callYml.Xx {
- case "rx":
- xx = TRx
- case "tx":
- xx = TTx
- default:
- return nil, errors.New("xx field must be either \"rx\" or \"tx\"")
- }
+ switch callYml.Xx {
+ case "rx":
+ xx = TRx
+ case "tx":
+ xx = TTx
+ case "":
+ default:
+ return nil, errors.New("xx field must be either \"rx\" or \"tx\"")
}
var addr *string
if callYml.Addr != nil {
calls = append(calls, &Call{
Cron: expr,
Nice: nice,
- Xx: &xx,
+ Xx: xx,
Addr: addr,
OnlineDeadline: onlineDeadline,
MaxOnlineTime: maxOnlineTime,
Id: nodeId,
ExchPub: new([32]byte),
SignPub: ed25519.PublicKey(signPub),
- Sendmail: yml.Sendmail,
+ Exec: yml.Exec,
Incoming: incoming,
Freq: freq,
FreqChunked: freqChunked,
func CfgParse(data []byte) (*Ctx, error) {
var err error
- if bytes.Compare(data[:8], MagicNNCPBv1[:]) == 0 {
+ if bytes.Compare(data[:8], MagicNNCPBv2[:]) == 0 {
os.Stderr.WriteString("Passphrase:")
password, err := terminal.ReadPassword(0)
if err != nil {
}
return &ctx, nil
}
-
-func CfgPathFromEnv(cmdlineFlag *string) (p string) {
- p = os.Getenv(CfgPathEnv)
- if p == "" {
- p = *cmdlineFlag
- }
- return
-}