]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cypherpunks.ru/nncp/call.go
Simple rate limiter
[nncp.git] / src / cypherpunks.ru / nncp / call.go
index ab120ad890c69e824db3a66ce8bfcdc3d258db1b..fbdd05b014d2244061ebdab9af65d27f8b26414a 100644 (file)
@@ -21,9 +21,22 @@ package nncp
 import (
        "net"
        "strconv"
+
+       "github.com/gorhill/cronexpr"
 )
 
-func (ctx *Ctx) CallNode(node *Node, addrs []string, nice uint8, xxOnly TRxTx, onlineDeadline, maxOnlineTime uint) (isGood bool) {
+type Call struct {
+       Cron           *cronexpr.Expression
+       Nice           uint8
+       Xx             TRxTx
+       RxRate         int
+       TxRate         int
+       Addr           *string
+       OnlineDeadline uint
+       MaxOnlineTime  uint
+}
+
+func (ctx *Ctx) CallNode(node *Node, addrs []string, nice uint8, xxOnly TRxTx, rxRate, txRate int, onlineDeadline, maxOnlineTime uint) (isGood bool) {
        for _, addr := range addrs {
                sds := SDS{"node": node.Id, "addr": addr}
                ctx.LogD("call", sds, "dialing")
@@ -38,6 +51,8 @@ func (ctx *Ctx) CallNode(node *Node, addrs []string, nice uint8, xxOnly TRxTx, o
                        node.Id,
                        nice,
                        xxOnly,
+                       rxRate,
+                       txRate,
                        onlineDeadline,
                        maxOnlineTime,
                )