2 NNCP -- Node to Node copy, utilities for store-and-forward data exchange
3 Copyright (C) 2016-2018 Sergey Matveev <stargrave@stargrave.org>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
25 "github.com/gorhill/cronexpr"
29 Cron *cronexpr.Expression
39 func (ctx *Ctx) CallNode(node *Node, addrs []string, nice uint8, xxOnly TRxTx, rxRate, txRate int, onlineDeadline, maxOnlineTime uint) (isGood bool) {
40 for _, addr := range addrs {
41 sds := SDS{"node": node.Id, "addr": addr}
42 ctx.LogD("call", sds, "dialing")
43 conn, err := net.Dial("tcp", addr)
45 ctx.LogD("call", SdsAdd(sds, SDS{"err": err}), "dialing")
48 ctx.LogD("call", sds, "connected")
49 state, err := ctx.StartI(
60 ctx.LogI("call-start", sds, "connected")
62 ctx.LogI("call-finish", SDS{
63 "node": state.Node.Id,
64 "duration": strconv.FormatInt(int64(state.Duration.Seconds()), 10),
65 "rxbytes": strconv.FormatInt(state.RxBytes, 10),
66 "txbytes": strconv.FormatInt(state.TxBytes, 10),
67 "rxspeed": strconv.FormatInt(state.RxSpeed, 10),
68 "txspeed": strconv.FormatInt(state.TxSpeed, 10),
74 ctx.LogE("call-start", SdsAdd(sds, SDS{"err": err}), "")