X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fnncp%2Fcfg.go;h=0c7de2f0f5e03270de8cca9366c8fc17ae93d1cb;hb=646ff4cddf6370748e2a7e2d1e06535685329a62;hp=10dd46b917a430174b17ac3bb8801d705917bd4f;hpb=919345b4dbaba2fc8f543efb8e0ec99330a775fc;p=nncp.git diff --git a/src/cypherpunks.ru/nncp/cfg.go b/src/cypherpunks.ru/nncp/cfg.go index 10dd46b..0c7de2f 100644 --- a/src/cypherpunks.ru/nncp/cfg.go +++ b/src/cypherpunks.ru/nncp/cfg.go @@ -50,7 +50,8 @@ type NodeYAML struct { Addrs map[string]string `addrs,omitempty` - OnlineDeadline *int `onlinedeadline,omitempty` + OnlineDeadline *uint `onlinedeadline,omitempty` + MaxOnlineTime *uint `maxonlinetime,omitempty` } type CallYAML struct { @@ -58,7 +59,8 @@ type CallYAML struct { Nice *int `nice,omitempty` Xx *string `xx,omitempty` Addr *string `addr,omitempty` - OnlineDeadline *int `onlinedeadline,omitempty` + OnlineDeadline *uint `onlinedeadline,omitempty` + MaxOnlineTime *uint `maxonlinetime,omitempty` } type NodeOurYAML struct { @@ -141,13 +143,17 @@ func NewNode(name string, yml NodeYAML) (*Node, error) { freq = &fr } - defOnlineDeadline := int(DefaultDeadline) + defOnlineDeadline := uint(DefaultDeadline) if yml.OnlineDeadline != nil { if *yml.OnlineDeadline <= 0 { return nil, errors.New("OnlineDeadline must be at least 1 second") } defOnlineDeadline = *yml.OnlineDeadline } + var defMaxOnlineTime uint + if yml.MaxOnlineTime != nil { + defMaxOnlineTime = *yml.MaxOnlineTime + } var calls []*Call for _, callYml := range yml.Calls { @@ -188,12 +194,17 @@ func NewNode(name string, yml NodeYAML) (*Node, error) { } onlineDeadline = *callYml.OnlineDeadline } + var maxOnlineTime uint + if callYml.MaxOnlineTime != nil { + maxOnlineTime = *callYml.MaxOnlineTime + } calls = append(calls, &Call{ Cron: expr, Nice: nice, Xx: &xx, Addr: addr, OnlineDeadline: onlineDeadline, + MaxOnlineTime: maxOnlineTime, }) } @@ -208,6 +219,7 @@ func NewNode(name string, yml NodeYAML) (*Node, error) { Calls: calls, Addrs: yml.Addrs, OnlineDeadline: defOnlineDeadline, + MaxOnlineTime: defMaxOnlineTime, } copy(node.ExchPub[:], exchPub) if len(noisePub) > 0 {