Id string
ExchPub string
SignPub string
- NoisePub *string `noisepub,omitempty`
- Sendmail []string
+ NoisePub *string `noisepub,omitempty`
+ Sendmail []string `sendmail,omitempty`
Incoming *string `incoming,omitempty`
Freq *string `freq,omitempty`
Via []string `via,omitempty`
}
type CfgYAML struct {
- Self NodeOurYAML
+ Self *NodeOurYAML `self,omitempty`
Neigh map[string]NodeYAML
Spool string
return &node, nil
}
-func NewNodeOur(yml NodeOurYAML) (*NodeOur, error) {
+func NewNodeOur(yml *NodeOurYAML) (*NodeOur, error) {
id, err := NodeIdFromString(yml.Id)
if err != nil {
return nil, err
if err != nil {
return nil, err
}
- self, err := NewNodeOur(cfgYAML.Self)
- if err != nil {
- return nil, err
+ if _, exists := cfgYAML.Neigh["self"]; !exists {
+ return nil, errors.New("self neighbour missing")
+ }
+ var self *NodeOur
+ if cfgYAML.Self != nil {
+ self, err = NewNodeOur(cfgYAML.Self)
+ if err != nil {
+ return nil, err
+ }
}
spoolPath := path.Clean(cfgYAML.Spool)
if !path.IsAbs(spoolPath) {
ctx.Alias[name] = neigh.Id
vias[*neigh.Id] = neighYAML.Via
}
+ ctx.SelfId = ctx.Alias["self"]
for neighId, viasRaw := range vias {
for _, viaRaw := range viasRaw {
foundNodeId, err := ctx.FindNode(viaRaw)