diff --git a/CHANGELOG.md b/CHANGELOG.md
index 856c041b..f810aeda 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,7 +12,7 @@
### CHANGES
-- Update `pkg/types`: Run method of Runner now contains context.Context parameter
+- Update `pkg`: Change functions / methods to context.Context implementation
### BUG FIXES
diff --git a/TODO.md b/TODO.md
index bd1f6c85..eb6d4594 100644
--- a/TODO.md
+++ b/TODO.md
@@ -9,8 +9,6 @@
7. Append example of use functions (godoc)
8. Append errors (as traffic/database) for all interface methods
9. Append Batch's to database
-10. Think about append void bytes into network.IMessage
-11. Some methods to context.Context implementation
### Tests
diff --git a/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go b/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go
index dfb1d245..557e26fd 100644
--- a/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go
+++ b/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -25,7 +26,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go b/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go
index dfb1d245..557e26fd 100644
--- a/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go
+++ b/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -25,7 +26,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go b/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go
index dfb1d245..557e26fd 100644
--- a/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go
+++ b/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -25,7 +26,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/loader/cmd/hll/main.go b/cmd/hidden_lake/loader/cmd/hll/main.go
index b1d4e757..304c7e54 100644
--- a/cmd/hidden_lake/loader/cmd/hll/main.go
+++ b/cmd/hidden_lake/loader/cmd/hll/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -27,7 +28,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/loader/pkg/app/app.go b/cmd/hidden_lake/loader/pkg/app/app.go
index 26cae155..59f1475b 100644
--- a/cmd/hidden_lake/loader/pkg/app/app.go
+++ b/cmd/hidden_lake/loader/pkg/app/app.go
@@ -99,7 +99,7 @@ func (p *sApp) Run(pCtx context.Context) error {
select {
case <-pCtx.Done():
- return nil
+ return pCtx.Err()
case err := <-chErr:
return fmt.Errorf("got run error: %w", err)
}
diff --git a/cmd/hidden_lake/messenger/cmd/hlm/main.go b/cmd/hidden_lake/messenger/cmd/hlm/main.go
index ddf14d62..b01e2f53 100644
--- a/cmd/hidden_lake/messenger/cmd/hlm/main.go
+++ b/cmd/hidden_lake/messenger/cmd/hlm/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -27,7 +28,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/messenger/pkg/app/app.go b/cmd/hidden_lake/messenger/pkg/app/app.go
index e820b2a7..52345528 100644
--- a/cmd/hidden_lake/messenger/pkg/app/app.go
+++ b/cmd/hidden_lake/messenger/pkg/app/app.go
@@ -109,7 +109,7 @@ func (p *sApp) Run(pCtx context.Context) error {
select {
case <-pCtx.Done():
- return nil
+ return pCtx.Err()
case err := <-chErr:
return fmt.Errorf("got run error: %w", err)
}
diff --git a/cmd/hidden_lake/service/cmd/hls/main.go b/cmd/hidden_lake/service/cmd/hls/main.go
index d09ad6d0..b3874efe 100644
--- a/cmd/hidden_lake/service/cmd/hls/main.go
+++ b/cmd/hidden_lake/service/cmd/hls/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -27,7 +28,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/service/internal/handler/config_connects.go b/cmd/hidden_lake/service/internal/handler/config_connects.go
index f7f9f69e..26eb2327 100644
--- a/cmd/hidden_lake/service/internal/handler/config_connects.go
+++ b/cmd/hidden_lake/service/internal/handler/config_connects.go
@@ -1,6 +1,7 @@
package handler
import (
+ "context"
"io"
"net/http"
"strings"
@@ -14,7 +15,7 @@ import (
"github.com/number571/go-peer/pkg/network/anonymity"
)
-func HandleConfigConnectsAPI(pWrapper config.IWrapper, pLogger logger.ILogger, pNode anonymity.INode) http.HandlerFunc {
+func HandleConfigConnectsAPI(pCtx context.Context, pWrapper config.IWrapper, pLogger logger.ILogger, pNode anonymity.INode) http.HandlerFunc {
return func(pW http.ResponseWriter, pR *http.Request) {
logBuilder := http_logger.NewLogBuilder(pkg_settings.CServiceName, pR)
@@ -57,7 +58,7 @@ func HandleConfigConnectsAPI(pWrapper config.IWrapper, pLogger logger.ILogger, p
return
}
- _ = pNode.GetNetworkNode().AddConnection(connect) // connection may be refused (closed)
+ _ = pNode.GetNetworkNode().AddConnection(pCtx, connect) // connection may be refused (closed)
pLogger.PushInfo(logBuilder.WithMessage(http_logger.CLogSuccess))
api.Response(pW, http.StatusOK, "success: update connections")
diff --git a/cmd/hidden_lake/service/internal/handler/config_connects_test.go b/cmd/hidden_lake/service/internal/handler/config_connects_test.go
index db89b92b..68de1a6f 100644
--- a/cmd/hidden_lake/service/internal/handler/config_connects_test.go
+++ b/cmd/hidden_lake/service/internal/handler/config_connects_test.go
@@ -17,7 +17,7 @@ func TestHandleConnectsAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 0)
pathDB := fmt.Sprintf(tcPathDBTemplate, 0)
- wcfg, node, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[6])
+ wcfg, node, _, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[6])
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
client := hls_client.NewClient(
diff --git a/cmd/hidden_lake/service/internal/handler/config_friends_test.go b/cmd/hidden_lake/service/internal/handler/config_friends_test.go
index f12b9694..ddd52c4f 100644
--- a/cmd/hidden_lake/service/internal/handler/config_friends_test.go
+++ b/cmd/hidden_lake/service/internal/handler/config_friends_test.go
@@ -18,7 +18,7 @@ func TestHandleFriendsAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 1)
pathDB := fmt.Sprintf(tcPathDBTemplate, 1)
- wcfg, node, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[7])
+ wcfg, node, _, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[7])
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
client := hls_client.NewClient(
diff --git a/cmd/hidden_lake/service/internal/handler/config_settings_test.go b/cmd/hidden_lake/service/internal/handler/config_settings_test.go
index dfc85238..720783f6 100644
--- a/cmd/hidden_lake/service/internal/handler/config_settings_test.go
+++ b/cmd/hidden_lake/service/internal/handler/config_settings_test.go
@@ -17,7 +17,7 @@ func TestHandleConfigSettingsAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 2)
pathDB := fmt.Sprintf(tcPathDBTemplate, 2)
- _, node, cancel, srv := testAllCreate(pathCfg, pathDB, addr)
+ _, node, _, cancel, srv := testAllCreate(pathCfg, pathDB, addr)
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
client := hls_client.NewClient(
diff --git a/cmd/hidden_lake/service/internal/handler/handler_test.go b/cmd/hidden_lake/service/internal/handler/handler_test.go
index 254ad807..cc55ad27 100644
--- a/cmd/hidden_lake/service/internal/handler/handler_test.go
+++ b/cmd/hidden_lake/service/internal/handler/handler_test.go
@@ -103,12 +103,12 @@ func testEchoPage(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(resp)
}
-func testAllCreate(cfgPath, dbPath, srvAddr string) (config.IWrapper, anonymity.INode, context.CancelFunc, *http.Server) {
+func testAllCreate(cfgPath, dbPath, srvAddr string) (config.IWrapper, anonymity.INode, context.Context, context.CancelFunc, *http.Server) {
wcfg := testNewWrapper(cfgPath)
- node, cancel := testRunNewNode(dbPath, "")
- srvc := testRunService(wcfg, node, srvAddr)
+ node, ctx, cancel := testRunNewNode(dbPath, "")
+ srvc := testRunService(ctx, wcfg, node, srvAddr)
time.Sleep(200 * time.Millisecond)
- return wcfg, node, cancel, srvc
+ return wcfg, node, ctx, cancel, srvc
}
func testAllFree(node anonymity.INode, cancel context.CancelFunc, srv *http.Server, pathCfg, pathDB string) {
@@ -124,7 +124,7 @@ func testAllFree(node anonymity.INode, cancel context.CancelFunc, srv *http.Serv
})
}
-func testRunService(wcfg config.IWrapper, node anonymity.INode, addr string) *http.Server {
+func testRunService(ctx context.Context, wcfg config.IWrapper, node anonymity.INode, addr string) *http.Server {
mux := http.NewServeMux()
logger := logger.NewLogger(
@@ -134,10 +134,10 @@ func testRunService(wcfg config.IWrapper, node anonymity.INode, addr string) *ht
mux.HandleFunc(pkg_settings.CHandleIndexPath, HandleIndexAPI(logger))
mux.HandleFunc(pkg_settings.CHandleConfigSettingsPath, HandleConfigSettingsAPI(wcfg, logger))
- mux.HandleFunc(pkg_settings.CHandleConfigConnectsPath, HandleConfigConnectsAPI(wcfg, logger, node))
+ mux.HandleFunc(pkg_settings.CHandleConfigConnectsPath, HandleConfigConnectsAPI(ctx, wcfg, logger, node))
mux.HandleFunc(pkg_settings.CHandleConfigFriendsPath, HandleConfigFriendsAPI(wcfg, logger, node))
mux.HandleFunc(pkg_settings.CHandleNetworkOnlinePath, HandleNetworkOnlineAPI(logger, node))
- mux.HandleFunc(pkg_settings.CHandleNetworkRequestPath, HandleNetworkRequestAPI(wcfg, logger, node))
+ mux.HandleFunc(pkg_settings.CHandleNetworkRequestPath, HandleNetworkRequestAPI(ctx, wcfg, logger, node))
mux.HandleFunc(pkg_settings.CHandleNetworkKeyPath, HandleNetworkKeyAPI(wcfg, logger, node))
mux.HandleFunc(pkg_settings.CHandleNodeKeyPath, HandleNodeKeyAPI(wcfg, logger, node))
@@ -162,11 +162,11 @@ func testNewWrapper(cfgPath string) config.IWrapper {
return config.NewWrapper(cfg)
}
-func testRunNewNode(dbPath, addr string) (anonymity.INode, context.CancelFunc) {
+func testRunNewNode(dbPath, addr string) (anonymity.INode, context.Context, context.CancelFunc) {
node := testNewNode(dbPath, addr).HandleFunc(pkg_settings.CServiceMask, nil)
ctx, cancel := context.WithCancel(context.Background())
go func() { _ = node.Run(ctx) }()
- return node, cancel
+ return node, ctx, cancel
}
func testNewNode(dbPath, addr string) anonymity.INode {
diff --git a/cmd/hidden_lake/service/internal/handler/index_test.go b/cmd/hidden_lake/service/internal/handler/index_test.go
index 782cd0a9..a838c1d8 100644
--- a/cmd/hidden_lake/service/internal/handler/index_test.go
+++ b/cmd/hidden_lake/service/internal/handler/index_test.go
@@ -18,7 +18,7 @@ func TestHandleIndexAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 3)
pathDB := fmt.Sprintf(tcPathDBTemplate, 3)
- _, node, cancel, srv := testAllCreate(pathCfg, pathDB, addr)
+ _, node, _, cancel, srv := testAllCreate(pathCfg, pathDB, addr)
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
client := hls_client.NewClient(
diff --git a/cmd/hidden_lake/service/internal/handler/network_key_test.go b/cmd/hidden_lake/service/internal/handler/network_key_test.go
index 18f75256..9b0433e3 100644
--- a/cmd/hidden_lake/service/internal/handler/network_key_test.go
+++ b/cmd/hidden_lake/service/internal/handler/network_key_test.go
@@ -17,7 +17,7 @@ func TestHandleNetworkKeyAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 4)
pathDB := fmt.Sprintf(tcPathDBTemplate, 4)
- wcfg, node, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[25])
+ wcfg, node, _, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[25])
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
client := hls_client.NewClient(
diff --git a/cmd/hidden_lake/service/internal/handler/network_online_test.go b/cmd/hidden_lake/service/internal/handler/network_online_test.go
index fd677c33..629ef1a6 100644
--- a/cmd/hidden_lake/service/internal/handler/network_online_test.go
+++ b/cmd/hidden_lake/service/internal/handler/network_online_test.go
@@ -25,7 +25,7 @@ func TestHandleOnlineAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 6)
pathDB := fmt.Sprintf(tcPathDBTemplate, 6)
- _, node, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[12])
+ _, node, ctx, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[12])
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
pushNode, pushCancel := testAllOnlineCreate(pathCfg, pathDB)
@@ -39,7 +39,7 @@ func TestHandleOnlineAPI(t *testing.T) {
),
)
- node.GetNetworkNode().AddConnection(testutils.TgAddrs[13])
+ node.GetNetworkNode().AddConnection(ctx, testutils.TgAddrs[13])
node.GetListPubKeys().AddPubKey(asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey())
testGetOnlines(t, client, node)
@@ -109,7 +109,7 @@ func testAllOnlineFree(node anonymity.INode, cancel context.CancelFunc, pathCfg,
}
func testOnlinePushNode(cfgPath, dbPath string) (anonymity.INode, context.CancelFunc) {
- node, cancel := testRunNewNode(dbPath, testutils.TgAddrs[13])
+ node, ctx, cancel := testRunNewNode(dbPath, testutils.TgAddrs[13])
cfg, err := config.BuildConfig(cfgPath, &config.SConfig{
FSettings: &config.SConfigSettings{
@@ -135,9 +135,7 @@ func testOnlinePushNode(cfgPath, dbPath string) (anonymity.INode, context.Cancel
)
node.GetListPubKeys().AddPubKey(asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey())
- if err := node.GetNetworkNode().Listen(); err != nil {
- return nil, cancel
- }
+ go func() { _ = node.GetNetworkNode().Listen(ctx) }()
return node, cancel
}
diff --git a/cmd/hidden_lake/service/internal/handler/network_request.go b/cmd/hidden_lake/service/internal/handler/network_request.go
index e947d0ad..8038d533 100644
--- a/cmd/hidden_lake/service/internal/handler/network_request.go
+++ b/cmd/hidden_lake/service/internal/handler/network_request.go
@@ -1,6 +1,7 @@
package handler
import (
+ "context"
"encoding/json"
"net/http"
@@ -23,7 +24,7 @@ const (
cErrorLoadRequest
)
-func HandleNetworkRequestAPI(pWrapper config.IWrapper, pLogger logger.ILogger, pNode anonymity.INode) http.HandlerFunc {
+func HandleNetworkRequestAPI(pCtx context.Context, pWrapper config.IWrapper, pLogger logger.ILogger, pNode anonymity.INode) http.HandlerFunc {
return func(pW http.ResponseWriter, pR *http.Request) {
logBuilder := http_logger.NewLogBuilder(pkg_settings.CServiceName, pR)
@@ -64,6 +65,7 @@ func HandleNetworkRequestAPI(pWrapper config.IWrapper, pLogger logger.ILogger, p
switch pR.Method {
case http.MethodPut:
err := pNode.BroadcastPayload(
+ pCtx,
pubKey,
adapters.NewPayload(pkg_settings.CServiceMask, data),
)
@@ -80,6 +82,7 @@ func HandleNetworkRequestAPI(pWrapper config.IWrapper, pLogger logger.ILogger, p
case http.MethodPost:
respBytes, err := pNode.FetchPayload(
+ pCtx,
pubKey,
adapters.NewPayload(pkg_settings.CServiceMask, data),
)
diff --git a/cmd/hidden_lake/service/internal/handler/network_request_test.go b/cmd/hidden_lake/service/internal/handler/network_request_test.go
index b4d469d9..aec27b63 100644
--- a/cmd/hidden_lake/service/internal/handler/network_request_test.go
+++ b/cmd/hidden_lake/service/internal/handler/network_request_test.go
@@ -26,7 +26,7 @@ func TestHandleRequestAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 7)
pathDB := fmt.Sprintf(tcPathDBTemplate, 7)
- _, node, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[9])
+ _, node, ctx, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[9])
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
pushNode, pushCancel, pushSrv := testAllPushCreate(pathCfg, pathDB)
@@ -40,7 +40,7 @@ func TestHandleRequestAPI(t *testing.T) {
),
)
- node.GetNetworkNode().AddConnection(testutils.TgAddrs[11])
+ node.GetNetworkNode().AddConnection(ctx, testutils.TgAddrs[11])
node.GetListPubKeys().AddPubKey(asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey())
testBroadcast(t, client)
@@ -111,7 +111,7 @@ func testAllPushFree(node anonymity.INode, cancel context.CancelFunc, srv *http.
}
func testNewPushNode(cfgPath, dbPath string) (anonymity.INode, context.CancelFunc) {
- node, cancel := testRunNewNode(dbPath, testutils.TgAddrs[11])
+ node, ctx, cancel := testRunNewNode(dbPath, testutils.TgAddrs[11])
rawCFG := &config.SConfig{
FSettings: &config.SConfigSettings{
FMessageSizeBytes: testutils.TCMessageSize,
@@ -141,9 +141,7 @@ func testNewPushNode(cfgPath, dbPath string) (anonymity.INode, context.CancelFun
)
node.GetListPubKeys().AddPubKey(asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey())
- if err := node.GetNetworkNode().Listen(); err != nil {
- return nil, cancel
- }
+ go func() { _ = node.GetNetworkNode().Listen(ctx) }()
return node, cancel
}
diff --git a/cmd/hidden_lake/service/internal/handler/node_key_test.go b/cmd/hidden_lake/service/internal/handler/node_key_test.go
index 69b90c81..fcdeafef 100644
--- a/cmd/hidden_lake/service/internal/handler/node_key_test.go
+++ b/cmd/hidden_lake/service/internal/handler/node_key_test.go
@@ -16,7 +16,7 @@ func TestHandlePubKeyAPI(t *testing.T) {
pathCfg := fmt.Sprintf(tcPathConfigTemplate, 8)
pathDB := fmt.Sprintf(tcPathDBTemplate, 8)
- _, node, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[8])
+ _, node, _, cancel, srv := testAllCreate(pathCfg, pathDB, testutils.TgAddrs[8])
defer testAllFree(node, cancel, srv, pathCfg, pathDB)
client := hls_client.NewClient(
diff --git a/cmd/hidden_lake/service/internal/handler/service_tcp.go b/cmd/hidden_lake/service/internal/handler/service_tcp.go
index ae7a5f92..947f882f 100644
--- a/cmd/hidden_lake/service/internal/handler/service_tcp.go
+++ b/cmd/hidden_lake/service/internal/handler/service_tcp.go
@@ -2,6 +2,7 @@ package handler
import (
"bytes"
+ "context"
"fmt"
"io"
"net/http"
@@ -20,7 +21,7 @@ import (
)
func HandleServiceTCP(pCfg config.IConfig, pLogger logger.ILogger) anonymity.IHandlerF {
- return func(_ anonymity.INode, sender asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
+ return func(pCtx context.Context, _ anonymity.INode, sender asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
logBuilder := anon_logger.NewLogBuilder(pkg_settings.CServiceName)
// enrich logger
diff --git a/cmd/hidden_lake/service/internal/handler/service_tcp_test.go b/cmd/hidden_lake/service/internal/handler/service_tcp_test.go
index 47190220..0bfab812 100644
--- a/cmd/hidden_lake/service/internal/handler/service_tcp_test.go
+++ b/cmd/hidden_lake/service/internal/handler/service_tcp_test.go
@@ -90,7 +90,7 @@ func testStartNodeHLS(t *testing.T) (anonymity.INode, context.CancelFunc, error)
return nil, nil, err
}
- node, cancel := testRunNewNode(fmt.Sprintf(tcPathDBTemplate, 9), testutils.TgAddrs[4])
+ node, ctx, cancel := testRunNewNode(fmt.Sprintf(tcPathDBTemplate, 9), testutils.TgAddrs[4])
if node == nil {
return nil, nil, fmt.Errorf("node is not running")
}
@@ -107,10 +107,10 @@ func testStartNodeHLS(t *testing.T) (anonymity.INode, context.CancelFunc, error)
)
node.GetListPubKeys().AddPubKey(asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey())
- if err := node.GetNetworkNode().Listen(); err != nil {
- t.Error(err)
- return nil, cancel, nil
- }
+ go func() {
+ _ = node.GetNetworkNode().Listen(ctx)
+ }()
+
return node, cancel, nil
}
@@ -119,13 +119,13 @@ func testStartNodeHLS(t *testing.T) (anonymity.INode, context.CancelFunc, error)
func testStartClientHLS() (anonymity.INode, context.CancelFunc, error) {
time.Sleep(time.Second)
- node, cancel := testRunNewNode(fmt.Sprintf(tcPathDBTemplate, 10), "")
+ node, ctx, cancel := testRunNewNode(fmt.Sprintf(tcPathDBTemplate, 10), "")
if node == nil {
return nil, cancel, fmt.Errorf("node is not running")
}
node.GetListPubKeys().AddPubKey(asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey())
- if err := node.GetNetworkNode().AddConnection(testutils.TgAddrs[4]); err != nil {
+ if err := node.GetNetworkNode().AddConnection(ctx, testutils.TgAddrs[4]); err != nil {
return nil, cancel, err
}
@@ -140,7 +140,7 @@ func testStartClientHLS() (anonymity.INode, context.CancelFunc, error) {
)
pubKey := asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024).GetPubKey()
- respBytes, err := node.FetchPayload(pubKey, pld)
+ respBytes, err := node.FetchPayload(ctx, pubKey, pld)
if err != nil {
return node, cancel, err
}
diff --git a/cmd/hidden_lake/service/pkg/app/app.go b/cmd/hidden_lake/service/pkg/app/app.go
index 0a7f6ee3..a1931ff8 100644
--- a/cmd/hidden_lake/service/pkg/app/app.go
+++ b/cmd/hidden_lake/service/pkg/app/app.go
@@ -91,7 +91,7 @@ func (p *sApp) Run(pCtx context.Context) error {
_ = p.fState.Disable(disableFunc)
}()
- p.initServiceHTTP()
+ p.initServiceHTTP(pCtx)
p.initServicePPROF()
chErr := make(chan error)
@@ -128,7 +128,7 @@ func (p *sApp) Run(pCtx context.Context) error {
}
// run node in server mode
- err := p.fNode.GetNetworkNode().Listen()
+ err := p.fNode.GetNetworkNode().Listen(pCtx)
if err != nil && !errors.Is(err, net.ErrClosed) {
chErr <- err
return
@@ -151,7 +151,7 @@ func (p *sApp) Run(pCtx context.Context) error {
select {
case <-pCtx.Done():
- return nil
+ return pCtx.Err()
case err := <-chErr:
return fmt.Errorf("got run error: %w", err)
}
diff --git a/cmd/hidden_lake/service/pkg/app/app_test.go b/cmd/hidden_lake/service/pkg/app/app_test.go
index 85652064..06c037f8 100644
--- a/cmd/hidden_lake/service/pkg/app/app_test.go
+++ b/cmd/hidden_lake/service/pkg/app/app_test.go
@@ -2,6 +2,7 @@ package app
import (
"context"
+ "errors"
"fmt"
"net/http"
"os"
@@ -57,7 +58,7 @@ func TestApp(t *testing.T) {
defer cancel()
go func() {
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
t.Error(err)
return
}
@@ -100,7 +101,7 @@ func TestApp(t *testing.T) {
// try twice running
go func() {
- if err := app.Run(ctx1); err != nil {
+ if err := app.Run(ctx1); err != nil && !errors.Is(err, context.Canceled) {
t.Error(err)
return
}
diff --git a/cmd/hidden_lake/service/pkg/app/init_service.go b/cmd/hidden_lake/service/pkg/app/init_service.go
index 48eeaf6e..a3bd4912 100644
--- a/cmd/hidden_lake/service/pkg/app/init_service.go
+++ b/cmd/hidden_lake/service/pkg/app/init_service.go
@@ -1,21 +1,22 @@
package app
import (
+ "context"
"net/http"
"github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler"
pkg_settings "github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings"
)
-func (p *sApp) initServiceHTTP() {
+func (p *sApp) initServiceHTTP(pCtx context.Context) {
mux := http.NewServeMux()
mux.HandleFunc(pkg_settings.CHandleIndexPath, handler.HandleIndexAPI(p.fHTTPLogger))
mux.HandleFunc(pkg_settings.CHandleConfigSettingsPath, handler.HandleConfigSettingsAPI(p.fWrapper, p.fHTTPLogger))
- mux.HandleFunc(pkg_settings.CHandleConfigConnectsPath, handler.HandleConfigConnectsAPI(p.fWrapper, p.fHTTPLogger, p.fNode))
+ mux.HandleFunc(pkg_settings.CHandleConfigConnectsPath, handler.HandleConfigConnectsAPI(pCtx, p.fWrapper, p.fHTTPLogger, p.fNode))
mux.HandleFunc(pkg_settings.CHandleConfigFriendsPath, handler.HandleConfigFriendsAPI(p.fWrapper, p.fHTTPLogger, p.fNode))
mux.HandleFunc(pkg_settings.CHandleNetworkOnlinePath, handler.HandleNetworkOnlineAPI(p.fHTTPLogger, p.fNode))
- mux.HandleFunc(pkg_settings.CHandleNetworkRequestPath, handler.HandleNetworkRequestAPI(p.fWrapper, p.fHTTPLogger, p.fNode))
+ mux.HandleFunc(pkg_settings.CHandleNetworkRequestPath, handler.HandleNetworkRequestAPI(pCtx, p.fWrapper, p.fHTTPLogger, p.fNode))
mux.HandleFunc(pkg_settings.CHandleNetworkKeyPath, handler.HandleNetworkKeyAPI(p.fWrapper, p.fHTTPLogger, p.fNode))
mux.HandleFunc(pkg_settings.CHandleNodeKeyPath, handler.HandleNodeKeyAPI(p.fWrapper, p.fHTTPLogger, p.fNode))
diff --git a/cmd/hidden_lake/traffic/cmd/hlt/main.go b/cmd/hidden_lake/traffic/cmd/hlt/main.go
index fcd584a9..1d1a20f0 100644
--- a/cmd/hidden_lake/traffic/cmd/hlt/main.go
+++ b/cmd/hidden_lake/traffic/cmd/hlt/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"os"
"os/signal"
"syscall"
@@ -27,7 +28,7 @@ func main() {
go func() {
defer func() { closed <- struct{}{} }()
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/cmd/hidden_lake/traffic/internal/handler/handler_test.go b/cmd/hidden_lake/traffic/internal/handler/handler_test.go
index 6c276ca0..ce3149fb 100644
--- a/cmd/hidden_lake/traffic/internal/handler/handler_test.go
+++ b/cmd/hidden_lake/traffic/internal/handler/handler_test.go
@@ -95,7 +95,7 @@ func testRunService(wDB database.IWrapperDB, addr string, addrNode string) (*htt
conn_keeper.NewSettings(connKeeperSettings),
testNewNetworkNode("").HandleFunc(
1, // default value
- func(_ network.INode, _ conn.IConn, _ net_message.IMessage) error {
+ func(_ context.Context, _ network.INode, _ conn.IConn, _ net_message.IMessage) error {
// pass response actions
return nil
},
@@ -143,7 +143,7 @@ func testRunService(wDB database.IWrapperDB, addr string, addrNode string) (*htt
mux.HandleFunc(pkg_settings.CHandleIndexPath, HandleIndexAPI(logger))
mux.HandleFunc(pkg_settings.CHandleHashesPath, HandleHashesAPI(wDB, logger))
- mux.HandleFunc(pkg_settings.CHandleMessagePath, HandleMessageAPI(cfg, wDB, logger, logger, node))
+ mux.HandleFunc(pkg_settings.CHandleMessagePath, HandleMessageAPI(ctx, cfg, wDB, logger, logger, node))
srv := &http.Server{
Addr: addr,
diff --git a/cmd/hidden_lake/traffic/internal/handler/message.go b/cmd/hidden_lake/traffic/internal/handler/message.go
index 9d022e6b..22b30fb5 100644
--- a/cmd/hidden_lake/traffic/internal/handler/message.go
+++ b/cmd/hidden_lake/traffic/internal/handler/message.go
@@ -1,6 +1,7 @@
package handler
import (
+ "context"
"io"
"net/http"
@@ -16,7 +17,7 @@ import (
net_message "github.com/number571/go-peer/pkg/network/message"
)
-func HandleMessageAPI(pCfg config.IConfig, pWrapperDB database.IWrapperDB, pHTTPLogger, pAnonLogger logger.ILogger, pNode network.INode) http.HandlerFunc {
+func HandleMessageAPI(pCtx context.Context, pCfg config.IConfig, pWrapperDB database.IWrapperDB, pHTTPLogger, pAnonLogger logger.ILogger, pNode network.INode) http.HandlerFunc {
tcpHandler := HandleServiceTCP(pCfg, pWrapperDB, pAnonLogger)
return func(pW http.ResponseWriter, pR *http.Request) {
@@ -81,7 +82,7 @@ func HandleMessageAPI(pCfg config.IConfig, pWrapperDB database.IWrapperDB, pHTTP
return
}
- if err := tcpHandler(pNode, nil, netMsg); err != nil {
+ if err := tcpHandler(pCtx, pNode, nil, netMsg); err != nil {
// internal logger
api.Response(pW, http.StatusBadRequest, "failed: handle message")
return
diff --git a/cmd/hidden_lake/traffic/internal/handler/service_tcp.go b/cmd/hidden_lake/traffic/internal/handler/service_tcp.go
index 2fd70e4c..8681b8ef 100644
--- a/cmd/hidden_lake/traffic/internal/handler/service_tcp.go
+++ b/cmd/hidden_lake/traffic/internal/handler/service_tcp.go
@@ -1,6 +1,7 @@
package handler
import (
+ "context"
"errors"
"fmt"
"net/http"
@@ -22,7 +23,7 @@ import (
func HandleServiceTCP(pCfg config.IConfig, pWrapperDB database.IWrapperDB, pLogger logger.ILogger) network.IHandlerF {
httpClient := &http.Client{Timeout: time.Minute}
- return func(pNode network.INode, pConn conn.IConn, pNetMsg net_message.IMessage) error {
+ return func(pCtx context.Context, pNode network.INode, pConn conn.IConn, pNetMsg net_message.IMessage) error {
logBuilder := anon_logger.NewLogBuilder(hlt_settings.CServiceName)
// enrich logger
@@ -55,7 +56,7 @@ func HandleServiceTCP(pCfg config.IConfig, pWrapperDB database.IWrapperDB, pLogg
return fmt.Errorf("put message to database: %w", err)
}
- if err := pNode.BroadcastMessage(pNetMsg); err != nil {
+ if err := pNode.BroadcastMessage(pCtx, pNetMsg); err != nil {
pLogger.PushWarn(logBuilder.WithType(anon_logger.CLogBaseBroadcast))
// need pass error (some of connections may be closed)
}
diff --git a/cmd/hidden_lake/traffic/pkg/app/app.go b/cmd/hidden_lake/traffic/pkg/app/app.go
index f1dd12e1..06558980 100644
--- a/cmd/hidden_lake/traffic/pkg/app/app.go
+++ b/cmd/hidden_lake/traffic/pkg/app/app.go
@@ -98,7 +98,7 @@ func (p *sApp) Run(pCtx context.Context) error {
_ = p.fState.Disable(disableFunc)
}()
- p.initServiceHTTP()
+ p.initServiceHTTP(pCtx)
p.initServicePPROF()
chErr := make(chan error)
@@ -141,7 +141,7 @@ func (p *sApp) Run(pCtx context.Context) error {
return
}
- if err := p.fNode.Listen(); err != nil {
+ if err := p.fNode.Listen(pCtx); err != nil {
chErr <- err
return
}
@@ -149,7 +149,7 @@ func (p *sApp) Run(pCtx context.Context) error {
select {
case <-pCtx.Done():
- return nil
+ return pCtx.Err()
case err := <-chErr:
return fmt.Errorf("got run error: %w", err)
}
diff --git a/cmd/hidden_lake/traffic/pkg/app/app_test.go b/cmd/hidden_lake/traffic/pkg/app/app_test.go
index 2f9a1885..71df0dd9 100644
--- a/cmd/hidden_lake/traffic/pkg/app/app_test.go
+++ b/cmd/hidden_lake/traffic/pkg/app/app_test.go
@@ -2,6 +2,7 @@ package app
import (
"context"
+ "errors"
"fmt"
"net/http"
"os"
@@ -60,7 +61,7 @@ func TestApp(t *testing.T) {
app := NewApp(cfg, ".")
go func() {
- if err := app.Run(ctx); err != nil {
+ if err := app.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
t.Error(err)
return
}
@@ -107,7 +108,7 @@ func TestApp(t *testing.T) {
// try twice running
go func() {
- if err := app.Run(ctx1); err != nil {
+ if err := app.Run(ctx1); err != nil && !errors.Is(err, context.Canceled) {
t.Error(err)
return
}
diff --git a/cmd/hidden_lake/traffic/pkg/app/init_service.go b/cmd/hidden_lake/traffic/pkg/app/init_service.go
index 309c1c1f..dcc470b9 100644
--- a/cmd/hidden_lake/traffic/pkg/app/init_service.go
+++ b/cmd/hidden_lake/traffic/pkg/app/init_service.go
@@ -1,18 +1,19 @@
package app
import (
+ "context"
"net/http"
"github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler"
pkg_settings "github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/settings"
)
-func (p *sApp) initServiceHTTP() {
+func (p *sApp) initServiceHTTP(pCtx context.Context) {
mux := http.NewServeMux()
mux.HandleFunc(pkg_settings.CHandleIndexPath, handler.HandleIndexAPI(p.fHTTPLogger))
mux.HandleFunc(pkg_settings.CHandleHashesPath, handler.HandleHashesAPI(p.fWrapperDB, p.fHTTPLogger))
- mux.HandleFunc(pkg_settings.CHandleMessagePath, handler.HandleMessageAPI(p.fConfig, p.fWrapperDB, p.fHTTPLogger, p.fAnonLogger, p.fNode))
+ mux.HandleFunc(pkg_settings.CHandleMessagePath, handler.HandleMessageAPI(pCtx, p.fConfig, p.fWrapperDB, p.fHTTPLogger, p.fAnonLogger, p.fNode))
p.fServiceHTTP = &http.Server{
Addr: p.fConfig.GetAddress().GetHTTP(),
diff --git a/pkg/network/anonymity/anonymity.go b/pkg/network/anonymity/anonymity.go
index 848b14f9..110d5777 100644
--- a/pkg/network/anonymity/anonymity.go
+++ b/pkg/network/anonymity/anonymity.go
@@ -84,12 +84,7 @@ func (p *sNode) Run(pCtx context.Context) error {
}()
chErr := make(chan error)
- go func() {
- if err := p.fQueue.Run(pCtx); err != nil {
- chErr <- fmt.Errorf("run queue: %w", err)
- }
- chErr <- nil
- }()
+ go func() { chErr <- p.fQueue.Run(pCtx) }()
for {
select {
@@ -102,7 +97,7 @@ func (p *sNode) Run(pCtx context.Context) error {
}
logBuilder := anon_logger.NewLogBuilder(p.fSettings.GetServiceName())
- if ok, _ := p.storeHashWithBroadcast(logBuilder, msg); !ok {
+ if ok, _ := p.storeHashWithBroadcast(pCtx, logBuilder, msg); !ok {
// internal logger
break
}
@@ -148,9 +143,9 @@ func (p *sNode) HandleFunc(pHead uint32, pHandle IHandlerF) INode {
}
// Send message without response waiting.
-func (p *sNode) BroadcastPayload(pRecv asymmetric.IPubKey, pPld adapters.IPayload) error {
+func (p *sNode) BroadcastPayload(pCtx context.Context, pRecv asymmetric.IPubKey, pPld adapters.IPayload) error {
// internal logger
- if err := p.enqueuePayload(cIsRequest, pRecv, pPld.ToOrigin()); err != nil {
+ if err := p.enqueuePayload(pCtx, cIsRequest, pRecv, pPld.ToOrigin()); err != nil {
return fmt.Errorf("broadcast payload: %w", err)
}
return nil
@@ -158,7 +153,7 @@ func (p *sNode) BroadcastPayload(pRecv asymmetric.IPubKey, pPld adapters.IPayloa
// Send message with response waiting.
// Payload head must be uint32.
-func (p *sNode) FetchPayload(pRecv asymmetric.IPubKey, pPld adapters.IPayload) ([]byte, error) {
+func (p *sNode) FetchPayload(pCtx context.Context, pRecv asymmetric.IPubKey, pPld adapters.IPayload) ([]byte, error) {
headAction := uint32(random.NewStdPRNG().GetUint64())
newPld := payload.NewPayload(
joinHead(headAction, pPld.GetHead()).uint64(),
@@ -171,7 +166,7 @@ func (p *sNode) FetchPayload(pRecv asymmetric.IPubKey, pPld adapters.IPayload) (
defer p.delAction(actionKey)
// internal logger
- if err := p.enqueuePayload(cIsRequest, pRecv, newPld); err != nil {
+ if err := p.enqueuePayload(pCtx, cIsRequest, pRecv, newPld); err != nil {
return nil, fmt.Errorf("fetch payload: %w", err)
}
@@ -183,13 +178,17 @@ func (p *sNode) FetchPayload(pRecv asymmetric.IPubKey, pPld adapters.IPayload) (
return resp, nil
}
-func (p *sNode) send(pMsg message.IMessage) error {
+func (p *sNode) send(pCtx context.Context, pMsg message.IMessage) error {
for i := uint64(0); i <= p.fSettings.GetRetryEnqueue(); i++ {
- if err := p.fQueue.EnqueueMessage(pMsg); err != nil {
- time.Sleep(p.fQueue.GetSettings().GetDuration())
- continue
+ if err := p.fQueue.EnqueueMessage(pMsg); err == nil {
+ return nil
+ }
+ select {
+ case <-pCtx.Done():
+ return pCtx.Err()
+ case <-time.After(p.fQueue.GetSettings().GetDuration()):
+ // next iter
}
- return nil
}
return errors.New("enqueue message as send")
}
@@ -211,14 +210,14 @@ func (p *sNode) recv(pActionKey string) ([]byte, error) {
}
func (p *sNode) handleWrapper() network.IHandlerF {
- return func(_ network.INode, pConn conn.IConn, pMsg net_message.IMessage) error {
+ return func(pCtx context.Context, _ network.INode, pConn conn.IConn, pMsg net_message.IMessage) error {
logBuilder := anon_logger.NewLogBuilder(p.fSettings.GetServiceName())
// enrich logger
logBuilder.WithConn(pConn)
// try store hash of message
- if ok, err := p.storeHashWithBroadcast(logBuilder, pMsg); !ok {
+ if ok, err := p.storeHashWithBroadcast(pCtx, logBuilder, pMsg); !ok {
// internal logger
if err != nil {
return fmt.Errorf("store hash with broadcast: %w", err)
@@ -278,7 +277,7 @@ func (p *sNode) handleWrapper() network.IHandlerF {
}
// response can be nil
- resp, err := f(p, sender, unwrapBytes(body))
+ resp, err := f(pCtx, p, sender, unwrapBytes(body))
if err != nil {
p.fLogger.PushWarn(logBuilder.WithType(anon_logger.CLogWarnIncorrectResponse))
return nil
@@ -289,8 +288,8 @@ func (p *sNode) handleWrapper() network.IHandlerF {
}
// create the message and put this to the queue
+ _ = p.enqueuePayload(pCtx, cIsResponse, sender, payload.NewPayload(pld.GetHead(), resp))
// internal logger
- _ = p.enqueuePayload(cIsResponse, sender, payload.NewPayload(pld.GetHead(), resp))
return nil
// undefined type of message (not request/response)
@@ -301,7 +300,7 @@ func (p *sNode) handleWrapper() network.IHandlerF {
}
}
-func (p *sNode) enqueuePayload(pType iDataType, pRecv asymmetric.IPubKey, pPld payload.IPayload) error {
+func (p *sNode) enqueuePayload(pCtx context.Context, pType iDataType, pRecv asymmetric.IPubKey, pPld payload.IPayload) error {
logBuilder := anon_logger.NewLogBuilder(p.fSettings.GetServiceName())
// enrich logger
@@ -347,7 +346,7 @@ func (p *sNode) enqueuePayload(pType iDataType, pRecv asymmetric.IPubKey, pPld p
WithSize(size).
WithType(logType)
- if err := p.send(msg); err != nil {
+ if err := p.send(pCtx, msg); err != nil {
p.fLogger.PushErro(logBuilder)
return fmt.Errorf("send message: %w", err)
}
@@ -356,7 +355,7 @@ func (p *sNode) enqueuePayload(pType iDataType, pRecv asymmetric.IPubKey, pPld p
return nil
}
-func (p *sNode) storeHashWithBroadcast(pLogBuilder anon_logger.ILogBuilder, pNetMsg net_message.IMessage) (bool, error) {
+func (p *sNode) storeHashWithBroadcast(pCtx context.Context, pLogBuilder anon_logger.ILogBuilder, pNetMsg net_message.IMessage) (bool, error) {
var (
size = len(pNetMsg.GetPayload().GetBody())
hash = pNetMsg.GetHash()
@@ -400,7 +399,7 @@ func (p *sNode) storeHashWithBroadcast(pLogBuilder anon_logger.ILogBuilder, pNet
// do not send data if than already received
if !hashIsExist {
// broadcast message to network
- if err := p.networkBroadcast(pNetMsg); err != nil {
+ if err := p.networkBroadcast(pCtx, pNetMsg); err != nil {
p.fLogger.PushWarn(pLogBuilder.WithType(anon_logger.CLogBaseBroadcast))
// need pass error (some of connections may be closed)
}
@@ -409,9 +408,9 @@ func (p *sNode) storeHashWithBroadcast(pLogBuilder anon_logger.ILogBuilder, pNet
return true, nil
}
-func (p *sNode) networkBroadcast(pMsg net_message.IMessage) error {
+func (p *sNode) networkBroadcast(pCtx context.Context, pMsg net_message.IMessage) error {
// redirect message to another nodes
- if err := p.fNetwork.BroadcastMessage(pMsg); err != nil {
+ if err := p.fNetwork.BroadcastMessage(pCtx, pMsg); err != nil {
return fmt.Errorf("network broadcast message: %w", err)
}
return nil
diff --git a/pkg/network/anonymity/anonymity_test.go b/pkg/network/anonymity/anonymity_test.go
index 56cc94cc..91e80b23 100644
--- a/pkg/network/anonymity/anonymity_test.go
+++ b/pkg/network/anonymity/anonymity_test.go
@@ -97,6 +97,8 @@ func TestComplexFetchPayload(t *testing.T) {
wg := sync.WaitGroup{}
wg.Add(tcIter)
+ ctx := context.Background()
+
for i := 0; i < tcIter; i++ {
go func(i int) {
defer wg.Done()
@@ -104,6 +106,7 @@ func TestComplexFetchPayload(t *testing.T) {
// nodes[1] -> nodes[0] -> nodes[2]
resp, err := nodes[0].FetchPayload(
+ ctx,
nodes[1].GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(testutils.TcHead, []byte(reqBody)),
)
@@ -137,8 +140,11 @@ func TestF2FWithoutFriends(t *testing.T) {
nodes[0].GetListPubKeys().DelPubKey(nodes[1].GetMessageQueue().GetClient().GetPubKey())
nodes[1].GetListPubKeys().DelPubKey(nodes[0].GetMessageQueue().GetClient().GetPubKey())
+ ctx := context.Background()
+
// nodes[1] -> nodes[0] -> nodes[2]
_, err := nodes[0].FetchPayload(
+ ctx,
nodes[1].GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(testutils.TcHead, []byte(testutils.TcBody)),
)
@@ -196,13 +202,16 @@ func TestFetchPayload(t *testing.T) {
nodes[1].HandleFunc(
testutils.TcHead,
- func(_ INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
+ func(_ context.Context, _ INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
return []byte(fmt.Sprintf("echo: '%s'", string(reqBytes))), nil
},
)
+ ctx := context.Background()
+
msgBody := "hello, world!"
result, err := nodes[0].FetchPayload(
+ ctx,
nodes[1].GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(testutils.TcHead, []byte(msgBody)),
)
@@ -222,6 +231,7 @@ func TestFetchPayload(t *testing.T) {
}
_, err2 := nodes[0].FetchPayload(
+ ctx,
nodes[1].GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(testutils.TcHead, []byte(msgBody)),
)
@@ -245,15 +255,18 @@ func TestBroadcastPayload(t *testing.T) {
chResult := make(chan string)
nodes[1].HandleFunc(
testutils.TcHead,
- func(_ INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
+ func(_ context.Context, _ INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
res := fmt.Sprintf("echo: '%s'", string(reqBytes))
go func() { chResult <- res }()
return nil, nil
},
)
+ ctx := context.Background()
+
msgBody := "hello, world!"
err := nodes[0].BroadcastPayload(
+ ctx,
nodes[1].GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(testutils.TcHead, []byte(msgBody)),
)
@@ -280,6 +293,7 @@ func TestBroadcastPayload(t *testing.T) {
}
err2 := nodes[0].BroadcastPayload(
+ ctx,
nodes[1].GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(testutils.TcHead, []byte(msgBody)),
)
@@ -377,21 +391,23 @@ func TestHandleWrapper(t *testing.T) {
return
}
+ ctx := context.Background()
+
sett := net_message.NewSettings(&net_message.SSettings{})
netMsg := node.testNewNetworkMessage(sett, msg)
- if err := handler(nil, nil, netMsg); err != nil {
+ if err := handler(ctx, nil, nil, netMsg); err != nil {
t.Error(err)
return
}
- if err := handler(nil, nil, netMsg); err != nil {
+ if err := handler(ctx, nil, nil, netMsg); err != nil {
t.Error("repeated message:", err.Error())
return
}
node.HandleFunc(
111,
- func(_ INode, _ asymmetric.IPubKey, _ []byte) ([]byte, error) {
+ func(_ context.Context, _ INode, _ asymmetric.IPubKey, _ []byte) ([]byte, error) {
return nil, errors.New("some error")
},
)
@@ -409,7 +425,7 @@ func TestHandleWrapper(t *testing.T) {
}
netMsg2 := node.testNewNetworkMessage(sett, msg2)
- if err := handler(nil, nil, netMsg2); err != nil {
+ if err := handler(ctx, nil, nil, netMsg2); err != nil {
t.Error(err) // works only logger
return
}
@@ -427,7 +443,7 @@ func TestHandleWrapper(t *testing.T) {
}
netMsg3 := node.testNewNetworkMessage(sett, msg3)
- if err := handler(nil, nil, netMsg3); err != nil {
+ if err := handler(ctx, nil, nil, netMsg3); err != nil {
t.Error(err) // works only logger
return
}
@@ -445,7 +461,7 @@ func TestHandleWrapper(t *testing.T) {
}
netMsg4 := node.testNewNetworkMessage(sett, msg4)
- if err := handler(nil, nil, netMsg4); err != nil {
+ if err := handler(ctx, nil, nil, netMsg4); err != nil {
t.Error(err) // works only logger
return
}
@@ -477,12 +493,13 @@ func TestStoreHashWithBroadcastMessage(t *testing.T) {
netMsg := node.testNewNetworkMessage(sett, msg)
logBuilder := anon_logger.NewLogBuilder("_")
- if ok, err := node.storeHashWithBroadcast(logBuilder, netMsg); !ok || err != nil {
+ ctx := context.Background()
+ if ok, err := node.storeHashWithBroadcast(ctx, logBuilder, netMsg); !ok || err != nil {
t.Error(err)
return
}
- if ok, err := node.storeHashWithBroadcast(logBuilder, netMsg); ok || err != nil {
+ if ok, err := node.storeHashWithBroadcast(ctx, logBuilder, netMsg); ok || err != nil {
switch {
case ok:
t.Error("success store one message again")
@@ -493,7 +510,7 @@ func TestStoreHashWithBroadcastMessage(t *testing.T) {
}
node.GetWrapperDB().Set(nil)
- if ok, err := node.storeHashWithBroadcast(logBuilder, netMsg); ok || err == nil {
+ if ok, err := node.storeHashWithBroadcast(ctx, logBuilder, netMsg); ok || err == nil {
t.Error("success use store function with null database")
return
}
@@ -544,8 +561,10 @@ func TestRecvSendMessage(t *testing.T) {
return
}
+ ctx := context.Background()
+
for i := 0; i < testutils.TCQueueCapacity; i++ {
- if err := node.send(msg); err != nil {
+ if err := node.send(ctx, msg); err != nil {
t.Error("failed send message (push to queue)")
return
}
@@ -553,7 +572,7 @@ func TestRecvSendMessage(t *testing.T) {
for i := 0; i < 3; i++ {
// message can be dequeued in the send's call time
- if err := node.send(msg); err != nil {
+ if err := node.send(ctx, msg); err != nil {
return
}
}
@@ -584,40 +603,43 @@ func testNewNodes(t *testing.T, timeWait time.Duration, addresses [2]string, typ
for _, node := range nodes {
node.HandleFunc(
testutils.TcHead,
- func(_ INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
+ func(_ context.Context, _ INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
// send response
return []byte(fmt.Sprintf("%s (response)", string(reqBytes))), nil
},
)
}
- if err := nodes[2].GetNetworkNode().Listen(); err != nil {
- t.Error(err)
- return [5]INode{}, [5]context.CancelFunc{}
- }
- if err := nodes[4].GetNetworkNode().Listen(); err != nil {
- t.Error(err)
- return [5]INode{}, [5]context.CancelFunc{}
- }
+ ctx := context.Background()
+ go func() {
+ if err := nodes[2].GetNetworkNode().Listen(ctx); err != nil {
+ t.Error(err)
+ }
+ }()
+ go func() {
+ if err := nodes[4].GetNetworkNode().Listen(ctx); err != nil {
+ t.Error(err)
+ }
+ }()
time.Sleep(200 * time.Millisecond)
// nodes to routes (nodes[0] -> nodes[2], nodes[1] -> nodes[4])
- if err := nodes[0].GetNetworkNode().AddConnection(addresses[0]); err != nil {
+ if err := nodes[0].GetNetworkNode().AddConnection(ctx, addresses[0]); err != nil {
t.Error(err)
return [5]INode{}, [5]context.CancelFunc{}
}
- if err := nodes[1].GetNetworkNode().AddConnection(addresses[1]); err != nil {
+ if err := nodes[1].GetNetworkNode().AddConnection(ctx, addresses[1]); err != nil {
t.Error(err)
return [5]INode{}, [5]context.CancelFunc{}
}
// routes to routes (nodes[3] -> nodes[2], nodes[3] -> nodes[4])
- if err := nodes[3].GetNetworkNode().AddConnection(addresses[0]); err != nil {
+ if err := nodes[3].GetNetworkNode().AddConnection(ctx, addresses[0]); err != nil {
t.Error(err)
return [5]INode{}, [5]context.CancelFunc{}
}
- if err := nodes[3].GetNetworkNode().AddConnection(addresses[1]); err != nil {
+ if err := nodes[3].GetNetworkNode().AddConnection(ctx, addresses[1]); err != nil {
t.Error(err)
return [5]INode{}, [5]context.CancelFunc{}
}
diff --git a/pkg/network/anonymity/examples/echo/main.go b/pkg/network/anonymity/examples/echo/main.go
index 525af114..8430c8de 100644
--- a/pkg/network/anonymity/examples/echo/main.go
+++ b/pkg/network/anonymity/examples/echo/main.go
@@ -59,7 +59,7 @@ func main() {
}
}()
- service.HandleFunc(serviceHeader, func(_ anonymity.INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
+ service.HandleFunc(serviceHeader, func(_ context.Context, _ anonymity.INode, _ asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
return []byte(fmt.Sprintf("echo: [%s]", string(reqBytes))), nil
})
@@ -70,7 +70,7 @@ func main() {
defer cancel1()
go func() { _ = service.Run(ctx1) }()
- if err := service.GetNetworkNode().Listen(); err != nil {
+ if err := service.GetNetworkNode().Listen(ctx1); err != nil {
panic(err)
}
time.Sleep(time.Second) // wait
@@ -79,11 +79,12 @@ func main() {
defer cancel2()
go func() { _ = client.Run(ctx2) }()
- if err := client.GetNetworkNode().AddConnection(serviceAddress); err != nil {
+ if err := client.GetNetworkNode().AddConnection(ctx2, serviceAddress); err != nil {
panic(err)
}
res, err := client.FetchPayload(
+ ctx2,
service.GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(serviceHeader, []byte("hello, world!")),
)
diff --git a/pkg/network/anonymity/examples/ping-ping/main.go b/pkg/network/anonymity/examples/ping-ping/main.go
index 23df889f..3144e3a6 100644
--- a/pkg/network/anonymity/examples/ping-ping/main.go
+++ b/pkg/network/anonymity/examples/ping-ping/main.go
@@ -75,7 +75,7 @@ func main() {
defer cancel1()
go func() { _ = service1.Run(ctx1) }()
- if err := service1.GetNetworkNode().Listen(); err != nil {
+ if err := service1.GetNetworkNode().Listen(ctx1); err != nil {
panic(err)
}
time.Sleep(time.Second)
@@ -84,11 +84,12 @@ func main() {
defer cancel2()
go func() { _ = service2.Run(ctx2) }()
- if err := service2.GetNetworkNode().AddConnection(serviceAddress); err != nil {
+ if err := service2.GetNetworkNode().AddConnection(ctx2, serviceAddress); err != nil {
panic(err)
}
err := service2.BroadcastPayload(
+ ctx2,
service1.GetMessageQueue().GetClient().GetPubKey(),
adapters.NewPayload(
serviceHeader,
@@ -103,7 +104,7 @@ func main() {
}
func handler(serviceName string) anonymity.IHandlerF {
- return func(node anonymity.INode, pubKey asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
+ return func(ctx context.Context, node anonymity.INode, pubKey asymmetric.IPubKey, reqBytes []byte) ([]byte, error) {
num, err := strconv.Atoi(string(reqBytes))
if err != nil {
panic(err)
@@ -117,6 +118,7 @@ func handler(serviceName string) anonymity.IHandlerF {
fmt.Printf("service '%s' got '%s#%d'\n", serviceName, val, num)
err = node.BroadcastPayload(
+ ctx,
pubKey,
adapters.NewPayload(
serviceHeader,
diff --git a/pkg/network/anonymity/queue/examples/main.go b/pkg/network/anonymity/queue/examples/main.go
index 85681a4f..cd230b49 100644
--- a/pkg/network/anonymity/queue/examples/main.go
+++ b/pkg/network/anonymity/queue/examples/main.go
@@ -2,6 +2,7 @@ package main
import (
"context"
+ "errors"
"fmt"
"time"
@@ -37,7 +38,7 @@ func main() {
defer cancel()
go func() {
- if err := q.Run(ctx); err != nil {
+ if err := q.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
panic(err)
}
}()
diff --git a/pkg/network/anonymity/queue/queue.go b/pkg/network/anonymity/queue/queue.go
index 22c58c7c..a030c6cb 100644
--- a/pkg/network/anonymity/queue/queue.go
+++ b/pkg/network/anonymity/queue/queue.go
@@ -72,7 +72,7 @@ func (p *sMessageQueue) Run(pCtx context.Context) error {
for {
select {
case <-pCtx.Done():
- return nil
+ return pCtx.Err()
case <-time.After(p.fSettings.GetDuration() / 2):
if p.poolHasLimit() {
continue
@@ -118,35 +118,19 @@ func (p *sMessageQueue) EnqueueMessage(pMsg message.IMessage) error {
}
func (p *sMessageQueue) DequeueMessage(pCtx context.Context) net_message.IMessage {
- var (
- result net_message.IMessage
- closed = make(chan bool)
- )
+ select {
+ case <-pCtx.Done():
+ return nil
+ case <-time.After(p.fSettings.GetDuration()):
+ p.fMutex.Lock()
+ queueLen := len(p.fQueue)
+ p.fMutex.Unlock()
- go func() {
- select {
- case <-pCtx.Done():
- closed <- true
- return
- case <-time.After(p.fSettings.GetDuration()):
- defer func() { closed <- false }()
-
- p.fMutex.Lock()
- queueLen := len(p.fQueue)
- p.fMutex.Unlock()
-
- if queueLen == 0 {
- result = <-p.fMsgPool.fQueue
- return
- }
-
- result = <-p.fQueue
- return
+ if queueLen == 0 {
+ return <-p.fMsgPool.fQueue
}
- }()
-
- <-closed
- return result
+ return <-p.fQueue
+ }
}
func (p *sMessageQueue) newPseudoNetworkMessage() net_message.IMessage {
diff --git a/pkg/network/anonymity/queue/queue_test.go b/pkg/network/anonymity/queue/queue_test.go
index 2c431a5b..bd8cd27e 100644
--- a/pkg/network/anonymity/queue/queue_test.go
+++ b/pkg/network/anonymity/queue/queue_test.go
@@ -3,6 +3,7 @@ package queue
import (
"bytes"
"context"
+ "errors"
"fmt"
"testing"
"time"
@@ -72,7 +73,7 @@ func TestRunStopQueue(t *testing.T) {
defer cancel1()
go func() {
- if err := queue.Run(ctx1); err != nil {
+ if err := queue.Run(ctx1); err != nil && !errors.Is(err, context.Canceled) {
t.Error(err)
return
}
@@ -156,7 +157,7 @@ func testQueue(queue IMessageQueue) error {
defer cancel()
go func() {
- if err := queue.Run(ctx); err != nil {
+ if err := queue.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
return
}
}()
diff --git a/pkg/network/anonymity/types.go b/pkg/network/anonymity/types.go
index a79c4d04..b09e9063 100644
--- a/pkg/network/anonymity/types.go
+++ b/pkg/network/anonymity/types.go
@@ -1,6 +1,7 @@
package anonymity
import (
+ "context"
"time"
"github.com/number571/go-peer/pkg/crypto/asymmetric"
@@ -13,11 +14,12 @@ import (
)
type (
- IHandlerF func(INode, asymmetric.IPubKey, []byte) ([]byte, error)
+ IHandlerF func(context.Context, INode, asymmetric.IPubKey, []byte) ([]byte, error)
)
type INode interface {
types.IRunner
+ HandleFunc(uint32, IHandlerF) INode
GetSettings() ISettings
GetWrapperDB() IWrapperDB
@@ -26,10 +28,8 @@ type INode interface {
GetListPubKeys() asymmetric.IListPubKeys
GetLogger() logger.ILogger
- HandleFunc(uint32, IHandlerF) INode
-
- BroadcastPayload(asymmetric.IPubKey, adapters.IPayload) error
- FetchPayload(asymmetric.IPubKey, adapters.IPayload) ([]byte, error)
+ BroadcastPayload(context.Context, asymmetric.IPubKey, adapters.IPayload) error
+ FetchPayload(context.Context, asymmetric.IPubKey, adapters.IPayload) ([]byte, error)
}
type ISettings interface {
diff --git a/pkg/network/conn/conn.go b/pkg/network/conn/conn.go
index 0d5367a8..e7091457 100644
--- a/pkg/network/conn/conn.go
+++ b/pkg/network/conn/conn.go
@@ -2,6 +2,7 @@ package conn
import (
"bytes"
+ "context"
"errors"
"fmt"
"net"
@@ -83,7 +84,7 @@ func (p *sConn) Close() error {
return p.fSocket.Close()
}
-func (p *sConn) WriteMessage(pMsg message.IMessage) error {
+func (p *sConn) WriteMessage(pCtx context.Context, pMsg message.IMessage) error {
p.fMutex.Lock()
defer p.fMutex.Unlock()
@@ -93,7 +94,7 @@ func (p *sConn) WriteMessage(pMsg message.IMessage) error {
voidBytes := prng.GetBytes(randVoidSize)
encMsgBytes := p.getCipher().EncryptBytes(pMsg.ToBytes())
- err := p.sendBytes(bytes.Join(
+ err := p.sendBytes(pCtx, bytes.Join(
[][]byte{
p.getHeadBytes(encMsgBytes, voidBytes),
bytes.Join(
@@ -113,14 +114,14 @@ func (p *sConn) WriteMessage(pMsg message.IMessage) error {
return nil
}
-func (p *sConn) ReadMessage(pChRead chan struct{}) (message.IMessage, error) {
+func (p *sConn) ReadMessage(pCtx context.Context, pChRead chan struct{}) (message.IMessage, error) {
// large wait read deadline => the connection has not sent anything yet
- encMsgSize, voidSize, gotHash, err := p.recvHeadBytes(pChRead, p.fSettings.GetWaitReadDeadline())
+ encMsgSize, voidSize, gotHash, err := p.recvHeadBytes(pCtx, pChRead, p.fSettings.GetWaitReadDeadline())
if err != nil {
return nil, fmt.Errorf("receive head bytes: %w", err)
}
- dataBytes, err := p.recvDataBytes(encMsgSize + voidSize)
+ dataBytes, err := p.recvDataBytes(pCtx, encMsgSize+voidSize)
if err != nil {
return nil, fmt.Errorf("receive data bytes: %w", err)
}
@@ -147,18 +148,23 @@ func (p *sConn) ReadMessage(pChRead chan struct{}) (message.IMessage, error) {
return msg, nil
}
-func (p *sConn) sendBytes(pBytes []byte) error {
+func (p *sConn) sendBytes(pCtx context.Context, pBytes []byte) error {
bytesPtr := uint64(len(pBytes))
for bytesPtr != 0 {
- p.fSocket.SetWriteDeadline(time.Now().Add(p.fSettings.GetWriteDeadline()))
+ select {
+ case <-pCtx.Done():
+ return pCtx.Err()
+ default:
+ p.fSocket.SetWriteDeadline(time.Now().Add(p.fSettings.GetWriteDeadline()))
- n, err := p.fSocket.Write(pBytes[:bytesPtr])
- if err != nil {
- return fmt.Errorf("write tcp bytes: %w", err)
+ n, err := p.fSocket.Write(pBytes[:bytesPtr])
+ if err != nil {
+ return fmt.Errorf("write tcp bytes: %w", err)
+ }
+
+ bytesPtr = bytesPtr - uint64(n)
+ pBytes = pBytes[:bytesPtr]
}
-
- bytesPtr = bytesPtr - uint64(n)
- pBytes = pBytes[:bytesPtr]
}
return nil
}
@@ -190,10 +196,8 @@ func (p *sConn) getHeadBytes(pEncMsgBytes, pVoidBytes []byte) []byte {
))
}
-func (p *sConn) recvHeadBytes(pChRead chan struct{}, deadline time.Duration) (uint64, uint64, []byte, error) {
- defer func() {
- pChRead <- struct{}{}
- }()
+func (p *sConn) recvHeadBytes(pCtx context.Context, pChRead chan<- struct{}, deadline time.Duration) (uint64, uint64, []byte, error) {
+ defer func() { pChRead <- struct{}{} }()
const (
firstSizeIndex = encoding.CSizeUint64
@@ -203,15 +207,28 @@ func (p *sConn) recvHeadBytes(pChRead chan struct{}, deadline time.Duration) (ui
)
p.fSocket.SetReadDeadline(time.Now().Add(deadline))
-
encRecvHead := make([]byte, cEncryptRecvHeadSize)
- n, err := p.fSocket.Read(encRecvHead)
- if err != nil {
- return 0, 0, nil, fmt.Errorf("read tcp header block: %w", err)
- }
- if n != cEncryptRecvHeadSize {
- return 0, 0, nil, errors.New("invalid header block")
+ chErr := make(chan error)
+ go func() {
+ n, err := p.fSocket.Read(encRecvHead)
+ if err != nil {
+ chErr <- fmt.Errorf("read tcp header block: %w", err)
+ }
+ if n != cEncryptRecvHeadSize {
+ chErr <- errors.New("invalid header block")
+ }
+ chErr <- nil
+ }()
+
+ select {
+ case <-pCtx.Done():
+ return 0, 0, nil, pCtx.Err()
+ case err := <-chErr:
+ if err != nil {
+ return 0, 0, nil, err
+ }
+ break
}
recvHead := p.getCipher().DecryptBytes(encRecvHead)
@@ -251,28 +268,33 @@ func (p *sConn) recvHeadBytes(pChRead chan struct{}, deadline time.Duration) (ui
return encMsgSize, voidSize, recvHead[firstHashIndex:secondHashIndex], nil
}
-func (p *sConn) recvDataBytes(pMustLen uint64) ([]byte, error) {
+func (p *sConn) recvDataBytes(pCtx context.Context, pMustLen uint64) ([]byte, error) {
dataRaw := make([]byte, 0, pMustLen)
mustLen := pMustLen
for mustLen != 0 {
- p.fSocket.SetReadDeadline(time.Now().Add(p.fSettings.GetReadDeadline()))
+ select {
+ case <-pCtx.Done():
+ return nil, pCtx.Err()
+ default:
+ p.fSocket.SetReadDeadline(time.Now().Add(p.fSettings.GetReadDeadline()))
- buffer := make([]byte, mustLen)
- n, err := p.fSocket.Read(buffer)
- if err != nil {
- return nil, err
+ buffer := make([]byte, mustLen)
+ n, err := p.fSocket.Read(buffer)
+ if err != nil {
+ return nil, err
+ }
+
+ dataRaw = bytes.Join(
+ [][]byte{
+ dataRaw,
+ buffer[:n],
+ },
+ []byte{},
+ )
+
+ mustLen -= uint64(n)
}
-
- dataRaw = bytes.Join(
- [][]byte{
- dataRaw,
- buffer[:n],
- },
- []byte{},
- )
-
- mustLen -= uint64(n)
}
return dataRaw, nil
diff --git a/pkg/network/conn/conn_test.go b/pkg/network/conn/conn_test.go
index 610f855a..497ba590 100644
--- a/pkg/network/conn/conn_test.go
+++ b/pkg/network/conn/conn_test.go
@@ -2,6 +2,7 @@ package conn
import (
"bytes"
+ "context"
"net"
"strings"
"testing"
@@ -108,7 +109,9 @@ func TestClosedConn(t *testing.T) {
pld := payload.NewPayload(1, []byte("aaa"))
msg := message.NewMessage(conn.GetSettings(), pld)
- if err := conn.WriteMessage(msg); err == nil {
+
+ ctx := context.Background()
+ if err := conn.WriteMessage(ctx, msg); err == nil {
t.Error("success write payload to closed connection")
return
}
@@ -116,18 +119,18 @@ func TestClosedConn(t *testing.T) {
readCh := make(chan struct{})
go func() { <-readCh }()
- if _, err := conn.ReadMessage(readCh); err == nil {
+ if _, err := conn.ReadMessage(ctx, readCh); err == nil {
t.Error("success read payload from closed connection")
return
}
sconn := conn.(*sConn)
- if err := sconn.sendBytes([]byte("hello, world!")); err == nil {
+ if err := sconn.sendBytes(ctx, []byte("hello, world!")); err == nil {
t.Error("success send bytes to closed connection")
return
}
- if _, err := sconn.recvDataBytes(128); err == nil {
+ if _, err := sconn.recvDataBytes(ctx, 128); err == nil {
t.Error("success recv data bytes from closed connection")
return
}
@@ -135,7 +138,7 @@ func TestClosedConn(t *testing.T) {
readCh2 := make(chan struct{})
go func() { <-readCh2 }()
- if _, _, _, err := sconn.recvHeadBytes(readCh2, time.Minute); err == nil {
+ if _, _, _, err := sconn.recvHeadBytes(ctx, readCh2, time.Minute); err == nil {
t.Error("success recv head bytes from closed connection")
return
}
@@ -197,7 +200,8 @@ func testConn(t *testing.T, pAddr, pNetworkKey string) {
pld := payload.NewPayload(tcHead, []byte(tcBody))
msg := message.NewMessage(conn.GetSettings(), pld)
- if err := conn.WriteMessage(msg); err != nil {
+ ctx := context.Background()
+ if err := conn.WriteMessage(ctx, msg); err != nil {
t.Error(err)
return
}
@@ -205,7 +209,7 @@ func testConn(t *testing.T, pAddr, pNetworkKey string) {
readCh := make(chan struct{})
go func() { <-readCh }()
- msgRecv, err := conn.ReadMessage(readCh)
+ msgRecv, err := conn.ReadMessage(ctx, readCh)
if err != nil {
t.Error(err)
return
@@ -247,14 +251,16 @@ func testNewService(t *testing.T, pAddr, pNetworkKey string) net.Listener {
readCh := make(chan struct{})
go func() { <-readCh }()
- msg, err := conn.ReadMessage(readCh)
+ ctx := context.Background()
+
+ msg, err := conn.ReadMessage(ctx, readCh)
if err != nil {
break
}
ok := func() bool {
defer conn.Close()
- return conn.WriteMessage(msg) == nil
+ return conn.WriteMessage(ctx, msg) == nil
}()
if !ok {
diff --git a/pkg/network/conn/types.go b/pkg/network/conn/types.go
index 15264762..26c01ca8 100644
--- a/pkg/network/conn/types.go
+++ b/pkg/network/conn/types.go
@@ -1,6 +1,7 @@
package conn
import (
+ "context"
"net"
"time"
@@ -14,8 +15,8 @@ type IConn interface {
GetSettings() ISettings
GetSocket() net.Conn
- WriteMessage(net_message.IMessage) error
- ReadMessage(chan struct{}) (net_message.IMessage, error)
+ WriteMessage(context.Context, net_message.IMessage) error
+ ReadMessage(context.Context, chan struct{}) (net_message.IMessage, error)
}
type ISettings interface {
diff --git a/pkg/network/conn_keeper/conn_keeper.go b/pkg/network/conn_keeper/conn_keeper.go
index 5fb77f55..b32c54b8 100644
--- a/pkg/network/conn_keeper/conn_keeper.go
+++ b/pkg/network/conn_keeper/conn_keeper.go
@@ -47,17 +47,17 @@ func (p *sConnKeeper) Run(pCtx context.Context) error {
}()
for {
- p.tryConnectToAll()
+ p.tryConnectToAll(pCtx)
select {
case <-pCtx.Done():
- return nil
+ return pCtx.Err()
case <-time.After(p.fSettings.GetDuration()):
// next iter
}
}
}
-func (p *sConnKeeper) tryConnectToAll() {
+func (p *sConnKeeper) tryConnectToAll(pCtx context.Context) {
connList := p.fSettings.GetConnections()
wg := sync.WaitGroup{}
@@ -72,7 +72,7 @@ func (p *sConnKeeper) tryConnectToAll() {
return
}
- p.fNode.AddConnection(addr)
+ p.fNode.AddConnection(pCtx, addr)
}(addr)
}
diff --git a/pkg/network/conn_keeper/conn_keeper_test.go b/pkg/network/conn_keeper/conn_keeper_test.go
index 6ec5e953..7302cfa6 100644
--- a/pkg/network/conn_keeper/conn_keeper_test.go
+++ b/pkg/network/conn_keeper/conn_keeper_test.go
@@ -2,6 +2,7 @@ package conn_keeper
import (
"context"
+ "errors"
"net"
"testing"
"time"
@@ -68,7 +69,7 @@ func TestConnKeeper(t *testing.T) {
defer cancel1()
go func() {
- if err := connKeeper.Run(ctx1); err != nil {
+ if err := connKeeper.Run(ctx1); err != nil && !errors.Is(err, context.Canceled) {
t.Error(err)
return
}
diff --git a/pkg/network/examples/broadcast/main.go b/pkg/network/examples/broadcast/main.go
index 1785da1d..d1100fd3 100644
--- a/pkg/network/examples/broadcast/main.go
+++ b/pkg/network/examples/broadcast/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "context"
"fmt"
"time"
@@ -34,12 +35,13 @@ func main() {
service1.HandleFunc(serviceHeader, handler("#1"))
service2.HandleFunc(serviceHeader, handler("#2"))
- if err := service1.Listen(); err != nil {
+ ctx := context.Background()
+ if err := service1.Listen(ctx); err != nil {
panic(err)
}
time.Sleep(time.Second) // wait
- if err := service2.AddConnection(serviceAddress); err != nil {
+ if err := service2.AddConnection(ctx, serviceAddress); err != nil {
panic(err)
}
@@ -53,7 +55,7 @@ func main() {
}
}()
- err = conn.WriteMessage(message.NewMessage(
+ err = conn.WriteMessage(ctx, message.NewMessage(
conn.GetSettings(),
payload.NewPayload(
serviceHeader,
@@ -68,8 +70,8 @@ func main() {
}
func handler(serviceName string) network.IHandlerF {
- return func(n network.INode, _ conn.IConn, msg message.IMessage) error {
- defer n.BroadcastMessage(msg)
+ return func(ctx context.Context, n network.INode, _ conn.IConn, msg message.IMessage) error {
+ defer n.BroadcastMessage(ctx, msg)
fmt.Printf("service '%s' got '%s'\n", serviceName, string(msg.GetPayload().GetBody()))
return nil
}
diff --git a/pkg/network/examples/echo/main.go b/pkg/network/examples/echo/main.go
index 6d6ed630..2e729765 100644
--- a/pkg/network/examples/echo/main.go
+++ b/pkg/network/examples/echo/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "context"
"fmt"
"time"
@@ -29,7 +30,8 @@ func main() {
service.HandleFunc(serviceHeader, handler())
- if err := service.Listen(); err != nil {
+ ctx := context.Background()
+ if err := service.Listen(ctx); err != nil {
panic(err)
}
time.Sleep(time.Second) // wait
@@ -48,14 +50,14 @@ func main() {
conn.GetSettings(),
payload.NewPayload(serviceHeader, []byte("hello, world!")),
)
- if err := conn.WriteMessage(sendMsg); err != nil {
+ if err := conn.WriteMessage(ctx, sendMsg); err != nil {
panic(err)
}
readCh := make(chan struct{})
go func() { <-readCh }()
- recvMsg, err := conn.ReadMessage(readCh)
+ recvMsg, err := conn.ReadMessage(ctx, readCh)
if err != nil {
panic(err)
}
@@ -64,8 +66,8 @@ func main() {
}
func handler() network.IHandlerF {
- return func(node network.INode, c conn.IConn, msg message.IMessage) error {
- c.WriteMessage(message.NewMessage(
+ return func(ctx context.Context, node network.INode, c conn.IConn, msg message.IMessage) error {
+ c.WriteMessage(ctx, message.NewMessage(
node.GetSettings().GetConnSettings(),
payload.NewPayload(
serviceHeader,
diff --git a/pkg/network/examples/ping-pong/main.go b/pkg/network/examples/ping-pong/main.go
index f715e0e2..8e94636e 100644
--- a/pkg/network/examples/ping-pong/main.go
+++ b/pkg/network/examples/ping-pong/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "context"
"fmt"
"strconv"
"time"
@@ -34,13 +35,14 @@ func main() {
service1.HandleFunc(serviceHeader, handler("#1"))
service2.HandleFunc(serviceHeader, handler("#2"))
- if err := service1.Listen(); err != nil {
+ ctx := context.Background()
+ if err := service1.Listen(ctx); err != nil {
panic(err)
}
time.Sleep(time.Second) // wait
- if err := service2.AddConnection(serviceAddress); err != nil {
+ if err := service2.AddConnection(ctx, serviceAddress); err != nil {
panic(err)
}
@@ -51,13 +53,13 @@ func main() {
[]byte("0"),
),
)
- service2.BroadcastMessage(msg)
+ service2.BroadcastMessage(ctx, msg)
select {}
}
func handler(serviceName string) network.IHandlerF {
- return func(n network.INode, _ conn.IConn, msg message.IMessage) error {
+ return func(ctx context.Context, n network.INode, _ conn.IConn, msg message.IMessage) error {
time.Sleep(time.Second) // delay for view "ping-pong" game
num, err := strconv.Atoi(string(msg.GetPayload().GetBody()))
@@ -71,7 +73,7 @@ func handler(serviceName string) network.IHandlerF {
}
fmt.Printf("service '%s' got '%s#%d'\n", serviceName, val, num)
- n.BroadcastMessage(message.NewMessage(
+ n.BroadcastMessage(ctx, message.NewMessage(
n.GetSettings().GetConnSettings(),
payload.NewPayload(
serviceHeader,
diff --git a/pkg/network/network.go b/pkg/network/network.go
index 2cb75d9e..ef121ca1 100644
--- a/pkg/network/network.go
+++ b/pkg/network/network.go
@@ -1,6 +1,7 @@
package network
import (
+ "context"
"errors"
"fmt"
"net"
@@ -48,7 +49,7 @@ func (p *sNode) GetSettings() ISettings {
}
// Puts the hash of the message in the buffer and sends the message to all connections of the node.
-func (p *sNode) BroadcastMessage(pMsg message.IMessage) error {
+func (p *sNode) BroadcastMessage(pCtx context.Context, pMsg message.IMessage) error {
// node can redirect received message
_ = p.fQueuePusher.Push(pMsg.GetHash(), []byte{})
@@ -61,7 +62,7 @@ func (p *sNode) BroadcastMessage(pMsg message.IMessage) error {
chErr := make(chan error)
go func(c conn.IConn) {
- chErr <- c.WriteMessage(pMsg)
+ chErr <- c.WriteMessage(pCtx, pMsg)
}(c)
go func(a string, c conn.IConn) {
@@ -95,17 +96,19 @@ func (p *sNode) BroadcastMessage(pMsg message.IMessage) error {
// Opens a tcp connection to receive data from outside.
// Checks the number of valid connections.
// Redirects connections to the handle router.
-func (p *sNode) Listen() error {
+func (p *sNode) Listen(pCtx context.Context) error {
listener, err := net.Listen("tcp", p.fSettings.GetAddress())
if err != nil {
return fmt.Errorf("run node: %w", err)
}
+ defer listener.Close()
- go func(pListener net.Listener) {
- defer pListener.Close()
- p.setListener(pListener)
-
- for {
+ p.setListener(listener)
+ for {
+ select {
+ case <-pCtx.Done():
+ return pCtx.Err()
+ default:
tconn, err := p.getListener().Accept()
if err != nil {
break
@@ -121,11 +124,9 @@ func (p *sNode) Listen() error {
address := tconn.RemoteAddr().String()
p.setConnection(address, conn)
- go p.handleConn(address, conn)
+ go p.handleConn(pCtx, address, conn)
}
- }(listener)
-
- return nil
+ }
}
// Closes the listener and all connections.
@@ -170,7 +171,7 @@ func (p *sNode) GetConnections() map[string]conn.IConn {
// Connects to the node at the specified address and automatically starts reading all incoming messages.
// Checks the number of connections.
-func (p *sNode) AddConnection(pAddress string) error {
+func (p *sNode) AddConnection(pCtx context.Context, pAddress string) error {
if p.hasMaxConnSize() {
return errors.New("has max connections size")
}
@@ -186,7 +187,7 @@ func (p *sNode) AddConnection(pAddress string) error {
}
p.setConnection(pAddress, conn)
- go p.handleConn(pAddress, conn)
+ go p.handleConn(pCtx, pAddress, conn)
return nil
}
@@ -211,7 +212,7 @@ func (p *sNode) DelConnection(pAddress string) error {
}
// Processes the received data from the connection.
-func (p *sNode) handleConn(pAddress string, pConn conn.IConn) {
+func (p *sNode) handleConn(pCtx context.Context, pAddress string, pConn conn.IConn) {
defer p.DelConnection(pAddress)
for {
var (
@@ -220,23 +221,30 @@ func (p *sNode) handleConn(pAddress string, pConn conn.IConn) {
)
go func() {
- msg, err := pConn.ReadMessage(readerCh)
+ msg, err := pConn.ReadMessage(pCtx, readerCh)
if err != nil {
returnCh <- false
return
}
- returnCh <- p.handleMessage(pConn, msg)
+ returnCh <- p.handleMessage(pCtx, pConn, msg)
}()
- <-readerCh
select {
+ case <-pCtx.Done():
+ return
+ case <-readerCh:
+ // pass
+ }
+
+ select {
+ case <-pCtx.Done():
+ return
+ case <-time.After(p.fSettings.GetReadTimeout()):
+ return
case ok := <-returnCh:
if !ok {
return
}
- case <-time.After(p.fSettings.GetReadTimeout()):
- <-returnCh
- return
}
}
}
@@ -244,7 +252,7 @@ func (p *sNode) handleConn(pAddress string, pConn conn.IConn) {
// Processes the message for correctness and redirects it to the handler function.
// Returns true if the message was successfully redirected to the handler function
// > or if the message already existed in the hash value store.
-func (p *sNode) handleMessage(pConn conn.IConn, pMsg message.IMessage) bool {
+func (p *sNode) handleMessage(pCtx context.Context, pConn conn.IConn, pMsg message.IMessage) bool {
// hash of message already in queue
if !p.fQueuePusher.Push(pMsg.GetHash(), []byte{}) {
return true
@@ -258,7 +266,7 @@ func (p *sNode) handleMessage(pConn conn.IConn, pMsg message.IMessage) bool {
return false
}
- if err := f(p, pConn, pMsg); err != nil {
+ if err := f(pCtx, p, pConn, pMsg); err != nil {
// function error = protocol error
return false
}
diff --git a/pkg/network/network_test.go b/pkg/network/network_test.go
index ddbda75c..f32240ca 100644
--- a/pkg/network/network_test.go
+++ b/pkg/network/network_test.go
@@ -1,6 +1,7 @@
package network
import (
+ "context"
"errors"
"fmt"
"sync"
@@ -97,9 +98,9 @@ func TestBroadcast(t *testing.T) {
wg.Add(4 * tcIter)
headHandle := uint64(testutils.TcHead)
- handleF := func(node INode, conn conn.IConn, pMsg message.IMessage) error {
+ handleF := func(pCtx context.Context, node INode, conn conn.IConn, pMsg message.IMessage) error {
defer wg.Done()
- defer node.BroadcastMessage(pMsg)
+ defer node.BroadcastMessage(pCtx, pMsg)
tcMutex.Lock()
defer tcMutex.Unlock()
@@ -127,6 +128,7 @@ func TestBroadcast(t *testing.T) {
}
// nodes[0] -> nodes[1:]
+ ctx := context.Background()
for i := 0; i < tcIter; i++ {
go func(i int) {
pld := payload.NewPayload(
@@ -134,7 +136,7 @@ func TestBroadcast(t *testing.T) {
[]byte(fmt.Sprintf(testutils.TcBodyTemplate, i)),
)
sett := nodes[0].GetSettings().GetConnSettings()
- nodes[0].BroadcastMessage(message.NewMessage(sett, pld))
+ nodes[0].BroadcastMessage(ctx, message.NewMessage(sett, pld))
}(i)
}
@@ -228,49 +230,60 @@ func TestNodeConnection(t *testing.T) {
)
defer testFreeNodes([]INode{node1, node2, node3})
- if err := node2.Listen(); err != nil {
- t.Error(err)
- return
- }
+ ctx := context.Background()
+ go func() {
+ if err := node2.Listen(ctx); err != nil {
+ t.Error(err)
+ return
+ }
+ }()
defer node2.Close()
- if err := node2.Listen(); err == nil {
- t.Error("success second run node")
- return
- }
+ time.Sleep(200 * time.Millisecond)
- if err := node3.Listen(); err != nil {
- t.Error(err)
- return
- }
+ go func() {
+ if err := node2.Listen(ctx); err == nil {
+ t.Error("success second run node")
+ return
+ }
+ }()
+
+ go func() {
+ if err := node3.Listen(ctx); err != nil {
+ t.Error(err)
+ return
+ }
+ }()
defer node3.Close()
- if err := node1.AddConnection("unknown_connection_address"); err == nil {
+ time.Sleep(200 * time.Millisecond)
+
+ if err := node1.AddConnection(ctx, "unknown_connection_address"); err == nil {
t.Error("success add incorrect connection address")
return
}
- if err := node1.AddConnection(testutils.TgAddrs[27]); err != nil {
+ if err := node1.AddConnection(ctx, testutils.TgAddrs[27]); err != nil {
t.Error(err)
return
}
- if err := node1.AddConnection(testutils.TgAddrs[27]); err == nil {
+ if err := node1.AddConnection(ctx, testutils.TgAddrs[27]); err == nil {
t.Error("success add already exist connection")
return
}
- if err := node1.AddConnection(testutils.TgAddrs[28]); err != nil {
+ if err := node1.AddConnection(ctx, testutils.TgAddrs[28]); err != nil {
t.Error(err)
return
}
- if err := node1.AddConnection(testutils.TgAddrs[28]); err == nil {
+ if err := node1.AddConnection(ctx, testutils.TgAddrs[28]); err == nil {
t.Error("success add second connection with limit = 1")
return
}
- if err := node3.AddConnection(testutils.TgAddrs[27]); err != nil {
+ if err := node3.AddConnection(ctx, testutils.TgAddrs[27]); err != nil {
t.Error(err)
return
}
@@ -295,11 +308,6 @@ func TestNodeConnection(t *testing.T) {
t.Error(err)
return
}
-
- if err := node2.Close(); err == nil {
- t.Error("success stop already stopped process")
- return
- }
}
func TestHandleMessage(t *testing.T) {
@@ -309,28 +317,29 @@ func TestHandleMessage(t *testing.T) {
defer testFreeNodes([]INode{node})
sett := node.GetSettings().GetConnSettings()
+ ctx := context.Background()
node.HandleFunc(1, nil)
msg1 := message.NewMessage(sett, payload.NewPayload(1, []byte{1}))
- if ok := node.handleMessage(nil, msg1); ok {
+ if ok := node.handleMessage(ctx, nil, msg1); ok {
t.Error("success handle message with nil function")
return
}
- node.HandleFunc(1, func(i1 INode, i2 conn.IConn, b message.IMessage) error {
+ node.HandleFunc(1, func(ctx context.Context, i1 INode, i2 conn.IConn, b message.IMessage) error {
return errors.New("some error")
})
msg2 := message.NewMessage(sett, payload.NewPayload(1, []byte{2}))
- if ok := node.handleMessage(nil, msg2); ok {
+ if ok := node.handleMessage(ctx, nil, msg2); ok {
t.Error("success handle message with got error from function")
return
}
- node.HandleFunc(1, func(i1 INode, i2 conn.IConn, b message.IMessage) error {
+ node.HandleFunc(1, func(ctx context.Context, i1 INode, i2 conn.IConn, b message.IMessage) error {
return nil
})
msg3 := message.NewMessage(sett, payload.NewPayload(1, []byte{3}))
- if ok := node.handleMessage(nil, msg3); !ok {
+ if ok := node.handleMessage(ctx, nil, msg3); !ok {
t.Error("failed handle message with correct function")
return
}
@@ -353,20 +362,18 @@ func testNodes() ([5]INode, map[INode]map[string]bool, error) {
nodes[i] = newTestNode(addrs[i], testutils.TCMaxConnects, time.Minute)
}
- if err := nodes[2].Listen(); err != nil {
- return nodes, nil, err
- }
- if err := nodes[4].Listen(); err != nil {
- return nodes, nil, err
- }
+ ctx := context.Background()
+
+ go func() { _ = nodes[2].Listen(ctx) }()
+ go func() { _ = nodes[4].Listen(ctx) }()
time.Sleep(500 * time.Millisecond)
- nodes[0].AddConnection(testutils.TgAddrs[0])
- nodes[1].AddConnection(testutils.TgAddrs[1])
+ nodes[0].AddConnection(ctx, testutils.TgAddrs[0])
+ nodes[1].AddConnection(ctx, testutils.TgAddrs[1])
- nodes[3].AddConnection(testutils.TgAddrs[0])
- nodes[3].AddConnection(testutils.TgAddrs[1])
+ nodes[3].AddConnection(ctx, testutils.TgAddrs[0])
+ nodes[3].AddConnection(ctx, testutils.TgAddrs[1])
mapp := make(map[INode]map[string]bool)
for _, node := range nodes {
diff --git a/pkg/network/types.go b/pkg/network/types.go
index 6915d630..2883010a 100644
--- a/pkg/network/types.go
+++ b/pkg/network/types.go
@@ -1,6 +1,7 @@
package network
import (
+ "context"
"time"
"github.com/number571/go-peer/pkg/network/conn"
@@ -9,21 +10,21 @@ import (
)
type (
- IHandlerF func(INode, conn.IConn, message.IMessage) error
+ IHandlerF func(context.Context, INode, conn.IConn, message.IMessage) error
)
type INode interface {
types.ICloser
- Listen() error
+ Listen(context.Context) error
GetSettings() ISettings
GetConnections() map[string]conn.IConn
- AddConnection(string) error
+ AddConnection(context.Context, string) error
DelConnection(string) error
HandleFunc(uint64, IHandlerF) INode
- BroadcastMessage(message.IMessage) error
+ BroadcastMessage(context.Context, message.IMessage) error
}
type ISettings interface {
diff --git a/test/result/badge.svg b/test/result/badge.svg
index 349a55b2..1b1ce301 100644
--- a/test/result/badge.svg
+++ b/test/result/badge.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/test/result/coverage.out b/test/result/coverage.out
index dfccd940..03305c3c 100644
--- a/test/result/coverage.out
+++ b/test/result/coverage.out
@@ -1,4 +1,80 @@
mode: set
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:28.36,35.16 3 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:35.16,36.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:38.2,38.56 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:38.56,40.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:41.2,41.66 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:41.66,42.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:44.2,44.11 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:47.13,51.23 3 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:51.23,52.37 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:55.2,56.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:56.16,57.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:60.2,61.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:61.16,62.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:65.2,71.52 5 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:74.55,75.15 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:75.15,77.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:79.2,79.33 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:79.33,82.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:84.2,85.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:85.16,88.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:90.2,90.42 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:90.42,93.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:95.2,95.20 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:98.55,99.15 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:99.15,101.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:103.2,103.32 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:103.32,106.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:108.2,109.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:109.16,112.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:114.2,114.30 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:117.55,118.15 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:118.15,120.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:122.2,122.32 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:122.32,125.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:127.2,131.16 4 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:131.16,134.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:136.2,137.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:137.16,140.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:142.2,142.60 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:145.40,147.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:147.16,149.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:151.2,152.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:152.16,154.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:156.2,156.19 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:159.52,161.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:161.16,163.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:165.2,165.18 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:168.38,173.16 4 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:173.16,175.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:177.2,177.71 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:177.71,179.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:181.2,181.89 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:181.89,183.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:185.2,185.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:15.13,16.23 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:16.23,17.51 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:20.2,21.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:21.16,22.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:25.2,26.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:26.16,27.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:30.2,31.60 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:34.80,35.54 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:35.54,36.34 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:36.34,39.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:42.3,43.17 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:43.17,46.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:48.3,49.28 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:53.83,60.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:60.16,62.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:65.2,66.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:66.16,68.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:69.2,73.16 3 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:73.16,75.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:78.2,78.36 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:78.36,80.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:82.2,82.50 1 0
github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:29.36,36.16 3 0
github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:36.16,37.13 1 0
github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:39.2,39.56 1 0
@@ -61,82 +137,6 @@ github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:221.2,
github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:221.89,223.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:225.2,225.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/adapters/common/recv/main.go:228.49,232.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:15.13,16.23 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:16.23,17.51 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:20.2,21.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:21.16,22.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:25.2,26.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:26.16,27.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:30.2,31.60 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:34.80,35.54 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:35.54,36.34 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:36.34,39.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:42.3,43.17 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:43.17,46.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:48.3,49.28 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:53.83,60.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:60.16,62.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:65.2,66.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:66.16,68.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:69.2,73.16 3 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:73.16,75.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:78.2,78.36 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:78.36,80.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/send/main.go:82.2,82.50 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:28.36,35.16 3 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:35.16,36.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:38.2,38.56 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:38.56,40.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:41.2,41.66 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:41.66,42.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:44.2,44.11 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:47.13,51.23 3 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:51.23,52.37 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:55.2,56.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:56.16,57.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:60.2,61.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:61.16,62.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:65.2,71.52 5 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:74.55,75.15 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:75.15,77.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:79.2,79.33 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:79.33,82.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:84.2,85.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:85.16,88.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:90.2,90.42 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:90.42,93.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:95.2,95.20 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:98.55,99.15 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:99.15,101.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:103.2,103.32 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:103.32,106.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:108.2,109.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:109.16,112.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:114.2,114.30 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:117.55,118.15 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:118.15,120.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:122.2,122.32 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:122.32,125.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:127.2,131.16 4 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:131.16,134.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:136.2,137.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:137.16,140.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:142.2,142.60 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:145.40,147.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:147.16,149.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:151.2,152.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:152.16,154.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:156.2,156.19 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:159.52,161.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:161.16,163.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:165.2,165.18 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:168.38,173.16 4 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:173.16,175.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:177.2,177.71 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:177.71,179.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:181.2,181.89 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:181.89,183.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/adapters/common/service/main.go:185.2,185.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/init_app.go:24.57,26.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/init_app.go:26.16,28.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/init_app.go:30.2,31.16 2 0
@@ -152,16 +152,16 @@ github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_s
github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/init_app.go:60.2,60.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/init_app.go:60.12,62.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/init_app.go:64.2,64.46 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:10.13,12.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:12.16,13.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:16.2,21.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:21.15,24.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:26.2,26.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:26.12,27.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:27.16,27.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:28.3,28.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:28.38,29.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:33.2,33.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:11.13,13.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:13.16,14.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:17.2,22.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:22.15,25.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:27.2,27.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:27.12,28.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:28.16,28.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:29.3,29.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:29.75,30.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic/cmd/hlc_st/main.go:34.2,34.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/init_app.go:24.57,26.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/init_app.go:26.16,28.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/init_app.go:30.2,31.16 2 0
@@ -177,16 +177,16 @@ github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc
github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/init_app.go:60.2,60.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/init_app.go:60.12,62.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/init_app.go:64.2,64.46 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:10.13,12.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:12.16,13.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:16.2,21.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:21.15,24.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:26.2,26.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:26.12,27.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:27.16,27.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:28.3,28.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:28.38,29.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:33.2,33.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:11.13,13.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:13.16,14.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:17.2,22.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:22.15,25.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:27.2,27.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:27.12,28.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:28.16,28.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:29.3,29.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:29.75,30.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_messenger/cmd/hlc_sm/main.go:34.2,34.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/config.go:41.68,42.55 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/config.go:42.55,44.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/config.go:46.2,46.42 1 0
@@ -236,45 +236,16 @@ github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/init.go:13.5
github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/init.go:16.2,16.20 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/init.go:16.20,27.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/internal/config/init.go:28.2,28.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:12.13,14.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:14.16,15.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:18.2,23.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:23.15,26.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:28.2,28.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:28.12,29.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:29.16,29.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:30.3,30.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:30.38,31.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:35.2,35.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:26.57,28.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:28.16,30.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:32.2,33.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:33.16,35.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:37.2,38.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:38.16,40.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:42.2,47.8 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:50.48,51.45 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:51.45,53.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:54.2,54.15 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:54.15,55.47 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:55.47,56.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:60.2,66.12 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:66.12,68.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:69.2,69.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:69.12,71.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:72.2,72.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:72.12,74.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:76.2,76.56 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:10.13,12.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:12.16,13.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:16.2,21.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:21.15,24.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:26.2,26.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:26.12,27.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:27.16,27.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:28.3,28.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:28.38,29.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:33.2,33.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:13.13,15.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:15.16,16.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:19.2,24.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:24.15,27.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:29.2,29.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:29.12,30.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:30.16,30.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:31.3,31.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:31.75,32.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/cmd/hll/main.go:36.2,36.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:38.17,52.2 3 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:54.48,55.29 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:55.29,58.3 2 0
@@ -295,7 +266,7 @@ github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:89.45,91.4 1
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:93.3,94.58 2 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:94.58,97.4 2 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:100.2,100.9 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:101.21,102.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:101.21,102.20 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:103.22,104.46 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:108.29,113.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/app/app.go:113.16,115.3 1 0
@@ -327,6 +298,35 @@ github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client/requester.go:62.2
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client/requester.go:65.43,72.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client/requester.go:72.16,74.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client/requester.go:75.2,75.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:26.57,28.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:28.16,30.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:32.2,33.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:33.16,35.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:37.2,38.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:38.16,40.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:42.2,47.8 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:50.48,51.45 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:51.45,53.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:54.2,54.15 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:54.15,55.47 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:55.47,56.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:60.2,66.12 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:66.12,68.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:69.2,69.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:69.12,71.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:72.2,72.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:72.12,74.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/init_app.go:76.2,76.56 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:11.13,13.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:13.16,14.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:17.2,22.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:22.15,25.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:27.2,27.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:27.12,28.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:28.16,28.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:29.3,29.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:29.75,30.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/composite/service_traffic_messenger/cmd/hlc_stm/main.go:34.2,34.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:19.41,24.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:26.29,34.2 5 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:36.58,37.15 1 0
@@ -337,59 +337,16 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:60.2,60.30 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:60.30,62.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/chat_queue/chat_queue.go:64.2,64.17 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:18.70,20.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:20.16,22.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:23.2,25.8 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:28.49,33.2 3 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:35.83,39.19 3 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:39.19,41.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:43.2,44.17 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:44.17,46.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:48.2,49.33 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:49.33,51.17 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:51.17,53.4 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:54.3,55.17 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:55.17,57.4 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:58.3,58.25 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:61.2,61.17 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:64.63,70.66 5 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:70.66,72.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:74.2,74.84 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:74.84,76.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:78.2,78.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:81.37,85.41 3 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:85.41,87.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:88.2,88.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:91.52,93.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:93.16,95.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:97.2,99.36 3 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:12.38,18.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:20.58,27.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:25.61,31.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:33.45,34.57 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:34.57,36.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:38.2,39.23 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:39.23,41.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:43.2,50.3 3 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:53.38,55.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:57.40,59.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:61.42,63.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:65.37,67.19 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:67.19,69.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:70.2,78.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:14.62,19.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:21.46,23.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:25.49,27.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:12.13,14.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:14.16,15.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:18.2,23.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:23.15,26.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:28.2,28.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:28.12,29.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:29.16,29.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:30.3,30.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:30.38,31.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:35.2,35.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:13.13,15.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:15.16,16.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:19.2,24.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:24.15,27.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:29.2,29.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:29.12,30.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:30.16,30.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:31.3,31.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:31.75,32.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/cmd/hlm/main.go:36.2,36.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go:48.68,49.55 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go:49.55,51.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/config.go:53.2,54.42 2 0
@@ -458,6 +415,91 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/init.go:3
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/wrapper.go:12.40,17.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/wrapper.go:19.40,21.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/config/wrapper.go:23.40,25.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/index.go:13.62,14.56 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/index.go:14.56,19.3 3 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:29.89,32.56 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:32.56,35.69 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:35.69,39.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:41.3,41.20 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:42.24,43.41 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:43.41,47.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:49.4,51.10 3 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:53.26,54.42 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:54.42,58.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:60.4,62.10 3 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:67.33,68.45 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:68.45,70.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:72.2,78.12 5 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:81.34,82.46 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:82.46,84.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:85.2,86.12 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:89.60,93.46 3 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:93.46,95.3 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:97.2,100.43 3 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:100.43,101.33 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:101.33,104.4 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:107.2,108.14 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:111.99,113.40 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:113.40,115.3 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:117.2,118.16 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:118.16,120.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:122.2,122.30 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:122.30,123.10 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:124.22,125.10 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:126.11,127.61 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:127.61,128.10 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:131.4,132.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:132.18,133.13 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:136.4,137.46 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:137.46,138.10 1 0
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:141.4,143.45 3 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:143.45,144.35 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:144.35,147.6 2 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:149.4,149.13 1 1
+github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:154.74,167.2 2 1
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:18.70,20.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:20.16,22.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:23.2,25.8 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:28.49,33.2 3 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:35.83,39.19 3 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:39.19,41.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:43.2,44.17 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:44.17,46.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:48.2,49.33 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:49.33,51.17 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:51.17,53.4 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:54.3,55.17 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:55.17,57.4 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:58.3,58.25 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:61.2,61.17 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:64.63,70.66 5 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:70.66,72.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:74.2,74.84 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:74.84,76.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:78.2,78.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:81.37,85.41 3 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:85.41,87.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:88.2,88.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:91.52,93.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:93.16,95.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/database.go:97.2,99.36 3 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:12.38,18.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/keys.go:20.58,27.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:25.61,31.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:33.45,34.57 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:34.57,36.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:38.2,39.23 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:39.23,41.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:43.2,50.3 3 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:53.38,55.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:57.40,59.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:61.42,63.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:65.37,67.19 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:67.19,69.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/message.go:70.2,78.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:14.62,19.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:21.46,23.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/database/relation.go:25.49,27.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/utils/utils.go:24.13,26.74 2 1
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/utils/utils.go:26.74,27.13 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/utils/utils.go:30.2,31.62 2 1
@@ -707,48 +749,6 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/handler/settings
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/handler/settings.go:175.28,176.13 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/handler/settings.go:176.13,178.4 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/internal/handler/settings.go:180.2,180.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/index.go:13.62,14.56 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/index.go:14.56,19.3 3 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:29.89,32.56 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:32.56,35.69 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:35.69,39.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:41.3,41.20 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:42.24,43.41 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:43.41,47.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:49.4,51.10 3 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:53.26,54.42 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:54.42,58.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:60.4,62.10 3 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:67.33,68.45 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:68.45,70.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:72.2,78.12 5 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:81.34,82.46 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:82.46,84.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:85.2,86.12 2 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:89.60,93.46 3 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:93.46,95.3 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:97.2,100.43 3 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:100.43,101.33 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:101.33,104.4 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:107.2,108.14 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:111.99,113.40 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:113.40,115.3 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:117.2,118.16 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:118.16,120.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:122.2,122.30 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:122.30,123.10 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:124.22,125.10 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:126.11,127.61 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:127.61,128.10 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:131.4,132.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:132.18,133.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:136.4,137.46 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:137.46,138.10 1 0
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:141.4,143.45 3 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:143.45,144.35 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:144.35,147.6 2 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:149.4,149.13 1 1
-github.com/number571/go-peer/cmd/hidden_lake/loader/internal/handler/transfer.go:154.74,167.2 2 1
github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:34.28,35.19 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:35.19,37.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:38.2,39.16 2 0
@@ -759,16 +759,16 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:46.19,48.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:49.2,50.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:50.16,51.13 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/web/web.go:53.2,53.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:12.13,14.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:14.16,15.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:18.2,23.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:23.15,26.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:28.2,28.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:28.12,29.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:29.16,29.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:30.3,30.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:30.38,31.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:35.2,35.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:13.13,15.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:15.16,16.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:19.2,24.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:24.15,27.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:29.2,29.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:29.12,30.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:30.16,30.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:31.3,31.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:31.75,32.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/cmd/hls/main.go:36.2,36.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/internal/config/config.go:54.68,55.55 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/config/config.go:55.55,57.3 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/config/config.go:59.2,60.42 2 1
@@ -904,7 +904,7 @@ github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:102.2,102.
github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:102.12,104.58 2 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:104.58,107.4 2 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:110.2,110.9 1 0
-github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:111.21,112.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:111.21,112.20 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:113.22,114.46 1 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:118.29,125.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/messenger/pkg/app/app.go:125.16,127.3 1 0
@@ -937,27 +937,6 @@ github.com/number571/go-peer/cmd/hidden_lake/service/pkg/response/response.go:58
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/response/response.go:60.28,62.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/response/response.go:63.2,63.16 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/response/response.go:66.38,68.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:21.56,27.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:29.55,31.27 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:32.14,33.62 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:33.62,35.4 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:36.3,36.22 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:37.14,38.32 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:39.10,40.30 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:44.37,46.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:48.38,50.2 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:52.63,54.26 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:54.26,56.3 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:57.2,57.10 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:60.52,63.2 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:65.37,67.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:69.37,71.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:73.39,75.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:77.48,79.28 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:79.28,81.3 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:82.2,82.16 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:85.37,87.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings/settings.go:81.64,83.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/builder.go:16.28,18.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/builder.go:20.96,21.20 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/builder.go:21.20,25.3 1 0
@@ -1071,16 +1050,27 @@ github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:275
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:279.2,280.19 2 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:280.19,282.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/client/requester.go:284.2,284.20 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:12.13,14.16 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:14.16,15.13 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:18.2,23.15 5 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:23.15,26.3 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:28.2,28.12 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:28.12,29.16 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:29.16,29.40 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:30.3,30.38 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:30.38,31.14 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:35.2,35.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:21.56,27.2 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:29.55,31.27 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:32.14,33.62 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:33.62,35.4 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:36.3,36.22 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:37.14,38.32 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:39.10,40.30 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:44.37,46.2 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:48.38,50.2 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:52.63,54.26 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:54.26,56.3 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:57.2,57.10 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:60.52,63.2 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:65.37,67.2 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:69.37,71.2 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:73.39,75.2 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:77.48,79.28 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:79.28,81.3 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:82.2,82.16 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/request/request.go:85.37,87.2 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings/settings.go:81.64,83.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:50.68,51.55 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:51.55,53.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/config.go:55.2,55.42 1 1
@@ -1141,6 +1131,16 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/init.go:21.
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/init.go:42.2,43.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/init.go:43.16,45.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/config/init.go:46.2,46.17 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:13.13,15.16 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:15.16,16.13 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:19.2,24.15 5 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:24.15,27.3 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:29.2,29.12 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:29.12,30.16 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:30.16,30.40 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:31.3,31.75 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:31.75,32.14 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/cmd/hlt/main.go:36.2,36.12 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database/database.go:27.54,33.16 2 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database/database.go:33.16,35.3 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/database/database.go:37.2,42.16 3 1
@@ -1252,15 +1252,15 @@ github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:123.2,123.12
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:123.12,126.23 2 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:126.23,128.4 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:131.3,132.51 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:132.51,135.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:132.51,135.4 2 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:138.2,138.12 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:138.12,139.49 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:139.49,142.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:139.49,142.4 2 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:145.2,145.12 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:145.12,146.43 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:146.43,149.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:146.43,149.4 2 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:152.2,152.9 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:153.21,154.13 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:153.21,154.20 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:155.22,156.46 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:160.29,169.16 2 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/app.go:169.16,171.3 1 0
@@ -1291,7 +1291,7 @@ github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/init_node.go:81.34,
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/init_node.go:83.45,85.5 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/init_node.go:86.4,86.14 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/init_pprof.go:5.35,7.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/init_service.go:10.34,26.2 10 1
+github.com/number571/go-peer/cmd/hidden_lake/service/pkg/app/init_service.go:11.54,27.2 10 1
github.com/number571/go-peer/cmd/tools/pmanager/main.go:17.13,18.23 1 0
github.com/number571/go-peer/cmd/tools/pmanager/main.go:18.23,23.5 1 0
github.com/number571/go-peer/cmd/tools/pmanager/main.go:26.2,35.59 5 0
@@ -1321,33 +1321,15 @@ github.com/number571/go-peer/cmd/tools/storage/main.go:77.2,77.13 1 0
github.com/number571/go-peer/cmd/tools/storage/main.go:80.36,83.16 3 0
github.com/number571/go-peer/cmd/tools/storage/main.go:83.16,84.13 1 0
github.com/number571/go-peer/cmd/tools/storage/main.go:86.2,86.12 1 0
-github.com/number571/go-peer/cmd/micro_anon/keygen/main.go:11.13,13.16 2 0
-github.com/number571/go-peer/cmd/micro_anon/keygen/main.go:13.16,14.13 1 0
-github.com/number571/go-peer/cmd/micro_anon/keygen/main.go:16.2,26.71 4 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:17.13,18.23 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:18.23,23.5 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:26.2,34.16 3 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:34.16,35.13 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:38.2,38.13 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:39.11,41.20 2 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:41.20,42.33 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:44.3,44.17 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:45.11,47.21 2 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:47.21,48.34 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:50.3,50.18 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:53.2,59.13 3 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:60.11,63.17 3 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:63.17,64.14 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:66.3,66.37 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:67.11,70.17 3 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:70.17,71.14 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:73.3,74.17 2 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:74.17,75.14 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:77.3,77.53 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:81.28,83.16 2 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:83.16,84.13 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:86.2,86.12 1 0
-github.com/number571/go-peer/cmd/tools/encryptor/main.go:89.71,92.2 2 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:11.13,12.23 1 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:12.23,16.5 1 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:19.2,20.16 2 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:20.16,21.13 1 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:24.2,24.17 1 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:24.17,25.32 1 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:28.2,29.17 2 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:29.17,30.30 1 0
+github.com/number571/go-peer/cmd/tools/keygen/main.go:33.2,34.69 2 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/builder.go:12.28,14.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/builder.go:16.65,18.2 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/client.go:18.66,23.2 1 0
@@ -1384,15 +1366,33 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:96.
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:99.56,106.16 2 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:106.16,108.3 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client/requester.go:109.2,109.12 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:11.13,12.23 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:12.23,16.5 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:19.2,20.16 2 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:20.16,21.13 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:24.2,24.17 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:24.17,25.32 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:28.2,29.17 2 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:29.17,30.30 1 0
-github.com/number571/go-peer/cmd/tools/keygen/main.go:33.2,34.69 2 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:17.13,18.23 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:18.23,23.5 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:26.2,34.16 3 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:34.16,35.13 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:38.2,38.13 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:39.11,41.20 2 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:41.20,42.33 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:44.3,44.17 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:45.11,47.21 2 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:47.21,48.34 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:50.3,50.18 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:53.2,59.13 3 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:60.11,63.17 3 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:63.17,64.14 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:66.3,66.37 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:67.11,70.17 3 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:70.17,71.14 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:73.3,74.17 2 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:74.17,75.14 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:77.3,77.53 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:81.28,83.16 2 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:83.16,84.13 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:86.2,86.12 1 0
+github.com/number571/go-peer/cmd/tools/encryptor/main.go:89.71,92.2 2 0
+github.com/number571/go-peer/cmd/micro_anon/keygen/main.go:11.13,13.16 2 0
+github.com/number571/go-peer/cmd/micro_anon/keygen/main.go:13.16,14.13 1 0
+github.com/number571/go-peer/cmd/micro_anon/keygen/main.go:16.2,26.71 4 0
github.com/number571/go-peer/cmd/micro_anon/main.go:38.16,39.23 1 0
github.com/number571/go-peer/cmd/micro_anon/main.go:39.23,40.54 1 0
github.com/number571/go-peer/cmd/micro_anon/main.go:43.2,46.29 4 0
@@ -1473,41 +1473,48 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/hashes.go:
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/hashes.go:43.3,44.45 2 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/index.go:12.62,13.56 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/index.go:13.56,17.3 3 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:19.155,22.56 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:22.56,25.66 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:25.66,29.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:31.3,32.22 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:32.22,36.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:38.3,38.20 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:39.23,43.19 3 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:43.19,47.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:49.4,50.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:50.18,54.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:56.4,58.10 3 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:60.24,62.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:62.18,66.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:68.4,72.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:72.18,76.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:78.4,78.66 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:78.66,82.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:84.4,84.57 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:84.57,88.5 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:90.4,92.10 3 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:22.118,25.89 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:25.89,36.83 4 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:36.83,39.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:42.3,43.19 2 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:43.19,46.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:49.3,49.45 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:49.45,50.51 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:50.51,53.5 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:54.4,55.57 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:58.3,58.57 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:58.57,61.4 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:63.3,63.45 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:63.45,70.18 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:70.18,72.13 2 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:76.3,77.13 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:20.177,23.56 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:23.56,26.66 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:26.66,30.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:32.3,33.22 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:33.22,37.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:39.3,39.20 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:40.23,44.19 3 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:44.19,48.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:50.4,51.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:51.18,55.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:57.4,59.10 3 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:61.24,63.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:63.18,67.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:69.4,73.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:73.18,77.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:79.4,79.66 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:79.66,83.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:85.4,85.63 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:85.63,89.5 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/message.go:91.4,93.10 3 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:23.118,26.111 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:26.111,37.83 4 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:37.83,40.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:43.3,44.19 2 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:44.19,47.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:50.3,50.45 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:50.45,51.51 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:51.51,54.5 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:55.4,56.57 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:59.3,59.63 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:59.63,62.4 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:64.3,64.45 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:64.45,71.18 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:71.18,73.13 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/internal/handler/service_tcp.go:77.3,78.13 2 1
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:14.13,17.2 2 0
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:19.55,20.33 1 0
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:20.33,23.3 2 0
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:24.2,25.16 2 0
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:25.16,28.3 2 0
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:29.2,29.29 1 0
+github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:32.59,38.2 2 0
github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:26.22,27.23 1 0
github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:27.23,29.3 1 0
github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:31.2,31.20 1 0
@@ -1529,13 +1536,6 @@ github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:78
github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:84.47,110.2 1 0
github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:112.47,138.2 1 0
github.com/number571/go-peer/examples/echo_service/prod_test/gen_cfgs/main.go:140.56,168.2 1 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:14.13,17.2 2 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:19.55,20.33 1 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:20.33,23.3 2 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:24.2,25.16 2 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:25.16,28.3 2 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:29.2,29.29 1 0
-github.com/number571/go-peer/examples/echo_service/default/recv_hls/service/main.go:32.59,38.2 2 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:49.17,79.2 6 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:81.48,82.29 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:82.29,83.42 1 1
@@ -1549,7 +1549,7 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:94.31,97.4 2
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:98.3,98.36 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:101.2,106.12 4 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:106.12,107.49 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:107.49,110.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:107.49,110.4 2 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:113.2,113.12 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:113.12,114.46 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:114.46,116.4 1 1
@@ -1563,10 +1563,10 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:131.58,134.4
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:137.2,137.12 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:137.12,140.23 2 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:140.23,142.4 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:144.3,144.42 1 0
-github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:144.42,147.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:144.3,144.46 1 0
+github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:144.46,147.4 2 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:150.2,150.9 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:151.21,152.13 1 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:151.21,152.20 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:153.22,154.46 1 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:158.29,167.16 2 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/app.go:167.16,169.3 1 0
@@ -1586,7 +1586,7 @@ github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/init_node.go:17.106
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/init_node.go:24.24,27.3 2 0
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/init_node.go:29.2,53.3 1 1
github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/init_pprof.go:5.35,7.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/init_service.go:10.34,21.2 5 1
+github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app/init_service.go:11.54,22.2 5 1
github.com/number571/go-peer/examples/echo_service/prod_test/recv_hls/service/main.go:14.13,17.2 2 0
github.com/number571/go-peer/examples/echo_service/prod_test/recv_hls/service/main.go:19.55,20.33 1 0
github.com/number571/go-peer/examples/echo_service/prod_test/recv_hls/service/main.go:20.33,23.3 2 0
@@ -1682,10 +1682,6 @@ github.com/number571/go-peer/examples/traffic_actions/loader/client_hll/main.go:
github.com/number571/go-peer/examples/traffic_actions/loader/client_hll/main.go:180.31,181.19 1 0
github.com/number571/go-peer/examples/traffic_actions/loader/client_hll/main.go:181.19,183.4 1 0
github.com/number571/go-peer/examples/traffic_actions/loader/client_hll/main.go:185.2,185.14 1 0
-github.com/number571/go-peer/internal/interrupt/closer.go:9.47,11.29 2 1
-github.com/number571/go-peer/internal/interrupt/closer.go:11.29,12.35 1 1
-github.com/number571/go-peer/internal/interrupt/closer.go:12.35,14.4 1 1
-github.com/number571/go-peer/internal/interrupt/closer.go:16.2,16.38 1 1
github.com/number571/go-peer/internal/flag/flag.go:8.49,10.2 1 0
github.com/number571/go-peer/internal/flag/flag.go:12.71,14.27 2 1
github.com/number571/go-peer/internal/flag/flag.go:14.27,15.18 1 1
@@ -1698,6 +1694,10 @@ github.com/number571/go-peer/internal/flag/flag.go:27.3,27.40 1 1
github.com/number571/go-peer/internal/flag/flag.go:29.2,29.17 1 1
github.com/number571/go-peer/internal/flag/flag.go:29.17,30.47 1 1
github.com/number571/go-peer/internal/flag/flag.go:32.2,32.17 1 1
+github.com/number571/go-peer/internal/interrupt/closer.go:9.47,11.29 2 1
+github.com/number571/go-peer/internal/interrupt/closer.go:11.29,12.35 1 1
+github.com/number571/go-peer/internal/interrupt/closer.go:12.35,14.4 1 1
+github.com/number571/go-peer/internal/interrupt/closer.go:16.2,16.38 1 1
github.com/number571/go-peer/internal/logger/anon/log_func.go:16.35,17.45 1 1
github.com/number571/go-peer/internal/logger/anon/log_func.go:17.45,19.10 2 1
github.com/number571/go-peer/internal/logger/anon/log_func.go:19.10,20.32 1 1
@@ -1713,18 +1713,6 @@ github.com/number571/go-peer/internal/logger/anon/log_func.go:45.43,47.3 1 1
github.com/number571/go-peer/internal/logger/anon/log_func.go:49.2,50.41 2 1
github.com/number571/go-peer/internal/logger/anon/log_func.go:50.41,52.3 1 1
github.com/number571/go-peer/internal/logger/anon/log_func.go:54.2,63.3 1 1
-github.com/number571/go-peer/internal/logger/std/log_func.go:7.35,8.45 1 1
-github.com/number571/go-peer/internal/logger/std/log_func.go:8.45,10.10 2 1
-github.com/number571/go-peer/internal/logger/std/log_func.go:10.10,11.32 1 1
-github.com/number571/go-peer/internal/logger/std/log_func.go:14.3,14.13 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:15.79,20.2 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:22.54,24.24 2 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:24.24,26.3 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:27.2,27.24 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:27.24,29.3 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:30.2,30.24 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:30.24,32.3 1 1
-github.com/number571/go-peer/internal/logger/std/std_logger.go:33.2,33.33 1 1
github.com/number571/go-peer/internal/msgconv/msgconv.go:12.44,14.23 2 1
github.com/number571/go-peer/internal/msgconv/msgconv.go:14.23,16.3 1 1
github.com/number571/go-peer/internal/msgconv/msgconv.go:17.2,18.21 2 1
@@ -1748,6 +1736,18 @@ github.com/number571/go-peer/internal/logger/http/log_getter.go:17.39,19.2 1 1
github.com/number571/go-peer/internal/logger/http/log_getter.go:21.41,23.2 1 1
github.com/number571/go-peer/internal/logger/http/log_getter.go:25.39,27.2 1 1
github.com/number571/go-peer/internal/logger/http/log_getter.go:29.42,31.2 1 1
+github.com/number571/go-peer/internal/logger/std/log_func.go:7.35,8.45 1 1
+github.com/number571/go-peer/internal/logger/std/log_func.go:8.45,10.10 2 1
+github.com/number571/go-peer/internal/logger/std/log_func.go:10.10,11.32 1 1
+github.com/number571/go-peer/internal/logger/std/log_func.go:14.3,14.13 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:15.79,20.2 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:22.54,24.24 2 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:24.24,26.3 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:27.2,27.24 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:27.24,29.3 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:30.2,30.24 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:30.24,32.3 1 1
+github.com/number571/go-peer/internal/logger/std/std_logger.go:33.2,33.33 1 1
github.com/number571/go-peer/internal/api/request.go:12.93,18.27 2 1
github.com/number571/go-peer/internal/api/request.go:19.14,21.15 2 1
github.com/number571/go-peer/internal/api/request.go:22.14,24.23 2 1
@@ -1781,13 +1781,6 @@ github.com/number571/go-peer/internal/slices/slices.go:21.52,22.27 1 1
github.com/number571/go-peer/internal/slices/slices.go:22.27,23.16 1 1
github.com/number571/go-peer/internal/slices/slices.go:23.16,25.4 1 1
github.com/number571/go-peer/internal/slices/slices.go:27.2,27.14 1 1
-github.com/number571/go-peer/pkg/client/examples/main.go:16.13,26.16 3 0
-github.com/number571/go-peer/pkg/client/examples/main.go:26.16,27.13 1 0
-github.com/number571/go-peer/pkg/client/examples/main.go:30.2,31.16 2 0
-github.com/number571/go-peer/pkg/client/examples/main.go:31.16,32.13 1 0
-github.com/number571/go-peer/pkg/client/examples/main.go:35.2,36.57 2 0
-github.com/number571/go-peer/pkg/client/examples/main.go:39.33,47.2 1 0
-github.com/number571/go-peer/internal/pprof/pprof.go:9.50,24.2 8 1
github.com/number571/go-peer/pkg/client/message/message.go:37.71,41.26 3 1
github.com/number571/go-peer/pkg/client/message/message.go:42.14,43.14 1 1
github.com/number571/go-peer/pkg/client/message/message.go:44.14,45.22 1 1
@@ -1823,6 +1816,13 @@ github.com/number571/go-peer/pkg/client/message/settings.go:24.30,25.36 1 1
github.com/number571/go-peer/pkg/client/message/settings.go:27.2,27.10 1 1
github.com/number571/go-peer/pkg/client/message/settings.go:30.45,32.2 1 1
github.com/number571/go-peer/pkg/client/message/settings.go:34.50,36.2 1 1
+github.com/number571/go-peer/pkg/client/examples/main.go:16.13,26.16 3 0
+github.com/number571/go-peer/pkg/client/examples/main.go:26.16,27.13 1 0
+github.com/number571/go-peer/pkg/client/examples/main.go:30.2,31.16 2 0
+github.com/number571/go-peer/pkg/client/examples/main.go:31.16,32.13 1 0
+github.com/number571/go-peer/pkg/client/examples/main.go:35.2,36.57 2 0
+github.com/number571/go-peer/pkg/client/examples/main.go:39.33,47.2 1 0
+github.com/number571/go-peer/internal/pprof/pprof.go:9.50,24.2 8 1
github.com/number571/go-peer/pkg/client/client.go:30.79,31.50 1 1
github.com/number571/go-peer/pkg/client/client.go:31.50,32.45 1 1
github.com/number571/go-peer/pkg/client/client.go:35.2,47.51 4 1
@@ -1869,6 +1869,26 @@ github.com/number571/go-peer/pkg/client/client.go:220.52,222.3 1 0
github.com/number571/go-peer/pkg/client/client.go:223.2,224.16 2 1
github.com/number571/go-peer/pkg/client/client.go:224.16,226.3 1 0
github.com/number571/go-peer/pkg/client/client.go:229.2,229.25 1 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:24.41,25.28 1 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:25.28,26.23 1 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:28.2,30.3 1 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:35.57,43.29 3 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:43.29,53.32 4 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:53.32,55.4 1 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:56.3,56.10 1 1
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:58.2,58.10 1 0
+github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:62.70,76.2 7 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:15.13,16.35 1 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:16.35,17.41 1 0
+github.com/number571/go-peer/pkg/crypto/random/random.go:28.25,30.2 1 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:33.46,36.16 3 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:36.16,38.13 1 0
+github.com/number571/go-peer/pkg/crypto/random/random.go:40.2,40.14 1 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:44.47,49.30 4 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:49.30,51.3 1 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:53.2,53.24 1 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:57.39,61.2 3 1
+github.com/number571/go-peer/pkg/crypto/random/random.go:64.35,66.2 1 1
github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:26.44,32.2 3 1
github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:34.43,36.2 1 1
github.com/number571/go-peer/pkg/crypto/hashing/hashing.go:38.42,40.2 1 1
@@ -1881,15 +1901,55 @@ github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:37.46,39.2 1 1
github.com/number571/go-peer/pkg/crypto/hashing/hmac.go:41.46,43.2 1 1
github.com/number571/go-peer/pkg/crypto/keybuilder/keybuilder.go:19.60,24.2 1 1
github.com/number571/go-peer/pkg/crypto/keybuilder/keybuilder.go:26.54,34.2 1 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:24.41,25.28 1 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:25.28,26.23 1 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:28.2,30.3 1 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:35.57,43.29 3 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:43.29,53.32 4 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:53.32,55.4 1 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:56.3,56.10 1 1
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:58.2,58.10 1 0
-github.com/number571/go-peer/pkg/crypto/puzzle/puzzle.go:62.70,76.2 7 1
+github.com/number571/go-peer/pkg/encoding/bytes.go:17.51,22.16 4 1
+github.com/number571/go-peer/pkg/encoding/bytes.go:22.16,23.13 1 0
+github.com/number571/go-peer/pkg/encoding/bytes.go:26.2,27.12 2 1
+github.com/number571/go-peer/pkg/encoding/bytes.go:31.53,33.2 1 1
+github.com/number571/go-peer/pkg/encoding/hex.go:5.37,7.2 1 1
+github.com/number571/go-peer/pkg/encoding/hex.go:9.37,11.16 2 1
+github.com/number571/go-peer/pkg/encoding/hex.go:11.16,13.3 1 1
+github.com/number571/go-peer/pkg/encoding/hex.go:14.2,14.15 1 1
+github.com/number571/go-peer/pkg/encoding/serialize_json.go:7.46,9.16 2 1
+github.com/number571/go-peer/pkg/encoding/serialize_json.go:9.16,11.3 1 0
+github.com/number571/go-peer/pkg/encoding/serialize_json.go:12.2,12.12 1 1
+github.com/number571/go-peer/pkg/encoding/serialize_json.go:15.60,17.2 1 1
+github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:7.46,9.16 2 1
+github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:9.16,11.3 1 0
+github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:12.2,12.12 1 1
+github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:15.60,17.2 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:28.60,35.23 3 1
+github.com/number571/go-peer/pkg/logger/logger.go:35.23,37.3 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:39.2,40.23 2 1
+github.com/number571/go-peer/pkg/logger/logger.go:40.23,42.3 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:44.2,45.23 2 1
+github.com/number571/go-peer/pkg/logger/logger.go:45.23,47.3 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:49.2,49.15 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:52.43,54.2 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:56.42,57.23 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:57.23,59.3 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:60.2,60.38 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:63.42,64.23 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:64.23,66.3 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:67.2,67.38 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:70.42,71.23 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:71.23,73.3 1 1
+github.com/number571/go-peer/pkg/logger/logger.go:74.2,74.38 1 1
+github.com/number571/go-peer/pkg/logger/settings.go:18.46,24.2 1 1
+github.com/number571/go-peer/pkg/logger/settings.go:26.45,29.2 1 1
+github.com/number571/go-peer/pkg/logger/settings.go:31.46,33.2 1 1
+github.com/number571/go-peer/pkg/logger/settings.go:35.46,37.2 1 1
+github.com/number571/go-peer/pkg/logger/settings.go:39.46,41.2 1 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:24.40,25.30 1 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:25.30,26.36 1 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:28.2,29.16 2 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:29.16,31.3 1 0
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:32.2,34.3 1 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:37.55,47.2 7 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:49.55,51.27 2 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:51.27,53.3 1 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:55.2,59.15 4 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:62.39,64.2 1 1
+github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:66.39,68.2 1 1
github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:41.55,46.2 1 1
github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:49.43,51.16 2 1
github.com/number571/go-peer/pkg/crypto/asymmetric/asymmetric.go:51.16,52.13 1 0
@@ -1964,82 +2024,22 @@ github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:38.33,40.3 1
github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:42.2,42.13 1 1
github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:46.51,51.2 3 1
github.com/number571/go-peer/pkg/crypto/asymmetric/list_pubkeys.go:54.47,59.2 3 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:24.40,25.30 1 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:25.30,26.36 1 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:28.2,29.16 2 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:29.16,31.3 1 0
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:32.2,34.3 1 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:37.55,47.2 7 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:49.55,51.27 2 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:51.27,53.3 1 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:55.2,59.15 4 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:62.39,64.2 1 1
-github.com/number571/go-peer/pkg/crypto/symmetric/symmetric.go:66.39,68.2 1 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:15.13,16.35 1 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:16.35,17.41 1 0
-github.com/number571/go-peer/pkg/crypto/random/random.go:28.25,30.2 1 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:33.46,36.16 3 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:36.16,38.13 1 0
-github.com/number571/go-peer/pkg/crypto/random/random.go:40.2,40.14 1 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:44.47,49.30 4 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:49.30,51.3 1 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:53.2,53.24 1 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:57.39,61.2 3 1
-github.com/number571/go-peer/pkg/crypto/random/random.go:64.35,66.2 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:28.60,35.23 3 1
-github.com/number571/go-peer/pkg/logger/logger.go:35.23,37.3 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:39.2,40.23 2 1
-github.com/number571/go-peer/pkg/logger/logger.go:40.23,42.3 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:44.2,45.23 2 1
-github.com/number571/go-peer/pkg/logger/logger.go:45.23,47.3 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:49.2,49.15 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:52.43,54.2 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:56.42,57.23 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:57.23,59.3 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:60.2,60.38 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:63.42,64.23 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:64.23,66.3 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:67.2,67.38 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:70.42,71.23 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:71.23,73.3 1 1
-github.com/number571/go-peer/pkg/logger/logger.go:74.2,74.38 1 1
-github.com/number571/go-peer/pkg/logger/settings.go:18.46,24.2 1 1
-github.com/number571/go-peer/pkg/logger/settings.go:26.45,29.2 1 1
-github.com/number571/go-peer/pkg/logger/settings.go:31.46,33.2 1 1
-github.com/number571/go-peer/pkg/logger/settings.go:35.46,37.2 1 1
-github.com/number571/go-peer/pkg/logger/settings.go:39.46,41.2 1 1
-github.com/number571/go-peer/pkg/encoding/bytes.go:17.51,22.16 4 1
-github.com/number571/go-peer/pkg/encoding/bytes.go:22.16,23.13 1 0
-github.com/number571/go-peer/pkg/encoding/bytes.go:26.2,27.12 2 1
-github.com/number571/go-peer/pkg/encoding/bytes.go:31.53,33.2 1 1
-github.com/number571/go-peer/pkg/encoding/hex.go:5.37,7.2 1 1
-github.com/number571/go-peer/pkg/encoding/hex.go:9.37,11.16 2 1
-github.com/number571/go-peer/pkg/encoding/hex.go:11.16,13.3 1 1
-github.com/number571/go-peer/pkg/encoding/hex.go:14.2,14.15 1 1
-github.com/number571/go-peer/pkg/encoding/serialize_json.go:7.46,9.16 2 1
-github.com/number571/go-peer/pkg/encoding/serialize_json.go:9.16,11.3 1 0
-github.com/number571/go-peer/pkg/encoding/serialize_json.go:12.2,12.12 1 1
-github.com/number571/go-peer/pkg/encoding/serialize_json.go:15.60,17.2 1 1
-github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:7.46,9.16 2 1
-github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:9.16,11.3 1 0
-github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:12.2,12.12 1 1
-github.com/number571/go-peer/pkg/encoding/serialize_yaml.go:15.60,17.2 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:17.120,18.56 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:18.56,21.100 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:21.100,25.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:27.3,27.20 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:28.23,31.10 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:34.3,35.17 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:35.17,39.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:41.3,42.20 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:42.20,46.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:48.3,48.20 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:49.24,54.75 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:54.75,58.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:60.4,64.10 4 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:66.26,68.75 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:68.75,72.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:74.4,77.65 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:18.142,19.56 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:19.56,22.100 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:22.100,26.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:28.3,28.20 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:29.23,32.10 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:35.3,36.17 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:36.17,40.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:42.3,43.20 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:43.20,47.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:49.3,49.20 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:50.24,55.75 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:55.75,59.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:61.4,65.10 4 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:67.26,69.75 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:69.75,73.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_connects.go:75.4,78.65 3 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_friends.go:17.119,18.56 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_friends.go:18.56,23.100 3 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/config_friends.go:23.100,27.4 3 0
@@ -2092,58 +2092,58 @@ github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_on
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_online.go:47.4,47.85 1 0
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_online.go:47.85,51.5 3 0
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_online.go:53.4,54.72 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:26.120,27.56 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:27.56,32.66 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:32.66,36.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:38.3,38.68 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:38.68,42.4 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:44.3,45.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:46.19,46.19 0 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:48.25,51.10 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:52.25,55.10 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:56.26,59.10 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:60.11,61.33 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:64.3,64.20 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:65.23,71.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:71.18,75.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:77.4,79.10 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:81.24,87.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:87.18,91.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:93.4,94.18 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:94.18,98.5 3 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:100.4,102.10 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:107.110,111.9 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:111.9,113.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:115.2,115.66 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:115.66,117.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:119.2,119.54 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:27.142,28.56 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:28.56,33.66 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:33.66,37.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:39.3,39.68 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:39.68,43.4 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:45.3,46.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:47.19,47.19 0 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:49.25,52.10 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:53.25,56.10 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:57.26,60.10 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:61.11,62.33 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:65.3,65.20 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:66.23,73.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:73.18,77.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:79.4,81.10 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:83.24,90.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:90.18,94.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:96.4,97.18 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:97.18,101.5 3 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:103.4,105.10 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:110.110,114.9 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:114.9,116.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:118.2,118.66 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:118.66,120.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/network_request.go:122.2,122.54 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/node_key.go:15.113,16.56 1 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/node_key.go:16.56,19.34 2 1
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/node_key.go:19.34,23.4 3 0
github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/node_key.go:25.3,26.94 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:22.88,23.93 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:23.93,33.17 4 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:33.17,36.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:39.3,40.10 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:40.10,43.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:46.3,51.17 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:51.17,54.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:57.3,57.43 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:57.43,59.4 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:60.3,65.17 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:65.17,68.4 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:69.3,73.19 3 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:74.47,81.8 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:82.44,85.19 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:86.11,89.81 2 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:94.54,96.30 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:96.30,97.29 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:98.33,99.12 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:100.11,101.36 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:104.2,104.16 1 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:107.43,109.16 2 1
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:109.16,111.3 1 0
-github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:112.2,112.13 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:23.88,24.115 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:24.115,34.17 4 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:34.17,37.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:40.3,41.10 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:41.10,44.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:47.3,52.17 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:52.17,55.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:58.3,58.43 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:58.43,60.4 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:61.3,66.17 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:66.17,69.4 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:70.3,74.19 3 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:75.47,82.8 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:83.44,86.19 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:87.11,90.81 2 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:95.54,97.30 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:97.30,98.29 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:99.33,100.12 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:101.11,102.36 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:105.2,105.16 1 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:108.43,110.16 2 1
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:110.16,112.3 1 0
+github.com/number571/go-peer/cmd/hidden_lake/service/internal/handler/service_tcp.go:113.2,113.13 1 1
github.com/number571/go-peer/pkg/network/anonymity/adapters/payload.go:15.54,19.2 1 1
github.com/number571/go-peer/pkg/network/anonymity/adapters/payload.go:21.37,23.2 1 1
github.com/number571/go-peer/pkg/network/anonymity/adapters/payload.go:25.37,27.2 1 1
@@ -2154,28 +2154,44 @@ github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:53.15,5
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:54.43,55.14 1 0
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:57.3,57.44 1 0
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:57.44,58.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:62.2,62.115 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:62.115,64.3 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:62.2,62.134 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:62.134,64.3 1 0
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:66.2,72.12 5 0
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:72.12,72.37 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:73.2,73.58 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:73.58,74.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:73.2,73.62 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:73.62,74.13 1 0
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:76.2,81.12 4 0
github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:81.12,81.36 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:82.2,82.78 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:82.78,83.13 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:86.2,90.16 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:90.16,91.13 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:93.2,93.26 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:96.44,101.2 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:103.67,109.16 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:109.16,111.3 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:112.2,125.36 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:125.36,127.12 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:127.12,128.34 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:130.5,138.6 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:173.60,181.2 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:183.36,191.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:82.2,82.84 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:82.84,83.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:86.2,91.16 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:91.16,92.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:94.2,94.26 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:97.44,102.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:104.67,110.16 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:110.16,112.3 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:113.2,126.36 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:126.36,128.12 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:128.12,129.34 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:131.5,139.6 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:174.60,182.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/echo/main.go:184.36,192.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:24.49,30.2 3 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:32.40,34.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:36.60,39.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:41.58,44.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:46.60,49.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:51.74,54.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:56.62,59.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:61.55,64.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:16.57,20.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:22.42,24.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:26.41,28.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:30.43,32.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:34.39,36.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:38.39,40.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:42.53,44.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:46.40,48.2 1 1
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:42.18,45.2 2 0
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:47.13,59.15 6 0
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:59.15,60.45 1 0
@@ -2184,83 +2200,135 @@ github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:63
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:63.45,64.14 1 0
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:68.2,77.12 7 0
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:77.12,77.38 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:78.2,78.59 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:78.59,79.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:78.2,78.63 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:78.63,79.13 1 0
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:81.2,86.12 4 0
github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:86.12,86.38 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:87.2,87.80 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:87.80,88.13 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:91.2,98.16 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:98.16,99.13 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:102.2,102.12 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:105.54,106.96 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:106.96,108.17 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:108.17,109.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:112.3,113.17 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:113.17,115.4 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:117.3,126.17 3 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:126.17,127.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:130.3,130.18 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:134.44,139.2 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:141.67,147.16 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:147.16,149.3 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:150.2,163.36 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:163.36,165.12 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:165.12,166.34 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:168.5,176.6 2 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:211.60,219.2 1 0
-github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:221.36,229.2 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:53.60,55.16 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:55.16,57.3 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:58.2,58.35 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:61.54,72.2 3 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:74.41,76.2 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:78.38,80.2 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:82.31,84.2 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:86.59,109.16 8 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:109.16,111.3 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:113.2,113.12 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:116.78,119.16 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:119.16,121.3 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:123.2,124.16 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:124.16,126.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:129.2,136.36 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:136.36,138.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:141.2,143.16 3 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:143.16,145.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:147.2,147.17 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:150.48,152.20 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:152.20,156.17 3 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:156.17,158.4 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:160.3,161.29 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:163.2,163.12 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:166.70,191.2 3 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:193.110,194.15 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:194.15,196.3 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:198.2,209.16 5 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:209.16,211.3 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:213.2,213.31 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:213.31,215.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:217.2,218.21 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:218.21,220.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:222.2,229.77 6 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:229.77,231.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:233.2,234.47 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:234.47,236.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:239.2,247.36 3 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:247.36,249.3 1 0
-github.com/number571/go-peer/pkg/network/conn/conn.go:251.2,251.76 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:254.64,258.19 3 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:258.19,263.17 4 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:263.17,265.4 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:267.3,275.23 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:278.2,278.21 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:281.47,284.2 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:286.50,289.2 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:291.35,297.33 4 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:297.33,299.3 1 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:302.2,303.51 2 1
-github.com/number571/go-peer/pkg/network/conn/conn.go:306.65,310.2 3 1
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:87.2,87.86 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:87.86,88.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:91.2,99.16 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:99.16,100.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:103.2,103.12 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:106.54,107.117 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:107.117,109.17 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:109.17,110.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:113.3,114.17 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:114.17,116.4 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:118.3,128.17 3 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:128.17,129.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:132.3,132.18 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:136.44,141.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:143.67,149.16 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:149.16,151.3 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:152.2,165.36 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:165.36,167.12 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:167.12,168.34 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:170.5,178.6 2 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:213.60,221.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/examples/ping-ping/main.go:223.36,231.2 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:21.13,40.12 4 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:40.12,41.73 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:41.73,42.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:46.2,46.25 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:46.25,51.17 2 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:51.17,52.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:54.3,54.47 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:54.47,55.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:59.2,59.25 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:59.25,61.20 2 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:61.20,62.31 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:64.3,65.17 2 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:65.17,66.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:68.3,69.17 2 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:69.17,70.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:72.3,72.35 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:72.35,73.36 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:75.3,75.90 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:75.90,76.34 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:78.3,78.37 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:21.13,26.15 2 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:26.15,27.42 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:27.42,28.14 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:30.3,30.42 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:30.42,31.14 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:35.2,39.45 4 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:39.45,40.13 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:42.2,44.68 2 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:44.68,45.13 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:48.2,49.16 2 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:49.16,50.13 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:52.2,52.15 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:52.15,53.38 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:53.38,54.14 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:58.2,65.16 2 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:65.16,66.13 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:69.2,69.25 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:72.52,73.94 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:73.94,77.3 3 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:80.51,95.2 1 0
+github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:97.36,105.2 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:54.60,56.16 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:56.16,58.3 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:59.2,59.35 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:62.54,73.2 3 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:75.41,77.2 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:79.38,81.2 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:83.31,85.2 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:87.81,110.16 8 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:110.16,112.3 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:114.2,114.12 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:117.100,120.16 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:120.16,122.3 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:124.2,125.16 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:125.16,127.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:130.2,137.36 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:137.36,139.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:142.2,144.16 3 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:144.16,146.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:148.2,148.17 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:151.70,153.20 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:153.20,154.10 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:155.22,156.21 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:157.11,161.18 3 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:161.18,163.5 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:165.4,166.30 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:169.2,169.12 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:172.70,197.2 3 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:199.134,200.15 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:200.15,200.40 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:202.2,213.12 5 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:213.12,215.17 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:215.17,217.4 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:218.3,218.32 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:218.32,220.4 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:221.3,221.15 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:224.2,224.9 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:225.21,226.31 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:227.22,228.17 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:228.17,230.4 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:231.3,231.8 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:234.2,235.21 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:235.21,237.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:239.2,246.77 6 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:246.77,248.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:250.2,251.47 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:251.47,253.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:256.2,264.36 3 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:264.36,266.3 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:268.2,268.76 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:271.86,275.19 3 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:275.19,276.10 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:277.22,278.26 1 0
+github.com/number571/go-peer/pkg/network/conn/conn.go:279.11,284.18 4 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:284.18,286.5 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:288.4,296.24 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:300.2,300.21 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:303.47,306.2 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:308.50,311.2 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:313.35,319.33 4 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:319.33,321.3 1 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:324.2,325.51 2 1
+github.com/number571/go-peer/pkg/network/conn/conn.go:328.65,332.2 3 1
github.com/number571/go-peer/pkg/network/conn/settings.go:25.46,35.2 1 1
github.com/number571/go-peer/pkg/network/conn/settings.go:37.45,38.30 1 1
github.com/number571/go-peer/pkg/network/conn/settings.go:38.30,39.36 1 1
@@ -2279,216 +2347,98 @@ github.com/number571/go-peer/pkg/network/conn/settings.go:75.47,77.2 1 1
github.com/number571/go-peer/pkg/network/conn/settings.go:79.57,81.2 1 1
github.com/number571/go-peer/pkg/network/conn/settings.go:83.53,85.2 1 1
github.com/number571/go-peer/pkg/network/conn/settings.go:87.54,89.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:24.49,30.2 3 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:32.40,34.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:36.60,39.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:41.58,44.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:46.60,49.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:51.74,54.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:56.62,59.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_builder.go:61.55,64.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:16.57,20.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:22.42,24.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:26.41,28.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:30.43,32.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:34.39,36.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:38.39,40.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:42.53,44.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/logger/log_getter.go:46.40,48.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:20.13,39.12 4 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:39.12,40.36 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:40.36,41.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:45.2,45.25 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:45.25,50.17 2 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:50.17,51.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:53.3,53.47 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:53.47,54.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:58.2,58.25 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:58.25,60.20 2 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:60.20,61.31 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:63.3,64.17 2 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:64.17,65.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:67.3,68.17 2 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:68.17,69.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:71.3,71.35 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:71.35,72.36 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:74.3,74.90 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:74.90,75.34 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/examples/main.go:77.3,77.37 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:20.13,25.15 2 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:25.15,26.42 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:26.42,27.14 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:29.3,29.42 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:29.42,30.14 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:34.2,37.42 3 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:37.42,38.13 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:40.2,42.63 2 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:42.63,43.13 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:46.2,47.16 2 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:47.16,48.13 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:50.2,50.15 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:50.15,51.38 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:51.38,52.14 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:56.2,63.16 2 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:63.16,64.13 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:67.2,67.25 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:70.52,71.73 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:71.73,75.3 3 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:78.51,93.2 1 0
-github.com/number571/go-peer/pkg/network/examples/broadcast/main.go:95.36,103.2 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:20.13,24.15 2 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:24.15,25.41 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:25.41,26.14 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:30.2,32.41 2 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:32.41,33.13 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:35.2,38.16 3 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:38.16,39.13 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:41.2,41.15 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:41.15,42.38 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:42.38,43.14 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:47.2,51.51 2 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:51.51,52.13 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:55.2,56.12 2 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:56.12,56.24 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:58.2,59.16 2 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:59.16,60.13 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:63.2,63.53 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:66.34,67.76 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:67.76,76.3 2 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:79.51,94.2 1 0
-github.com/number571/go-peer/pkg/network/examples/echo/main.go:96.36,104.2 1 0
-github.com/number571/go-peer/pkg/payload/payload.go:15.54,21.2 2 1
-github.com/number571/go-peer/pkg/payload/payload.go:23.49,24.47 1 1
-github.com/number571/go-peer/pkg/payload/payload.go:24.47,26.3 1 1
-github.com/number571/go-peer/pkg/payload/payload.go:27.2,27.32 1 1
-github.com/number571/go-peer/pkg/payload/payload.go:30.36,34.2 3 1
-github.com/number571/go-peer/pkg/payload/payload.go:36.36,38.2 1 1
-github.com/number571/go-peer/pkg/payload/payload.go:40.36,42.2 1 1
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:20.13,25.15 2 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:25.15,26.42 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:26.42,27.14 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:29.3,29.42 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:29.42,30.14 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:34.2,37.42 3 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:37.42,38.13 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:41.2,43.63 2 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:43.63,44.13 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:47.2,56.9 3 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:59.52,60.73 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:60.73,64.17 3 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:64.17,66.4 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:68.3,69.17 2 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:69.17,71.4 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:73.3,82.13 3 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:86.51,101.2 1 0
-github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:103.36,111.2 1 0
-github.com/number571/go-peer/pkg/network/message/message.go:31.66,40.2 3 1
-github.com/number571/go-peer/pkg/network/message/message.go:42.72,45.27 2 1
-github.com/number571/go-peer/pkg/network/message/message.go:46.14,47.15 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:48.14,49.51 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:50.10,51.52 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:54.2,54.62 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:54.62,56.3 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:58.2,67.41 8 1
-github.com/number571/go-peer/pkg/network/message/message.go:67.41,69.3 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:71.2,71.69 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:71.69,73.3 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:76.2,77.16 2 1
-github.com/number571/go-peer/pkg/network/message/message.go:77.16,79.3 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:81.2,85.8 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:88.38,90.2 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:92.37,94.2 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:96.50,98.2 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:100.37,110.2 2 1
-github.com/number571/go-peer/pkg/network/message/message.go:112.38,114.2 1 1
-github.com/number571/go-peer/pkg/network/message/message.go:116.55,122.2 2 1
-github.com/number571/go-peer/pkg/network/message/settings.go:13.46,18.2 1 1
-github.com/number571/go-peer/pkg/network/message/settings.go:20.45,22.2 1 1
-github.com/number571/go-peer/pkg/network/message/settings.go:24.46,26.2 1 1
-github.com/number571/go-peer/pkg/network/message/settings.go:28.44,30.2 1 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:21.49,27.2 1 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:29.45,31.2 1 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:33.45,39.31 5 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:39.31,41.15 2 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:41.15,42.33 1 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:44.3,44.25 1 0
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:47.2,47.13 1 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:50.52,56.32 4 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:56.32,58.3 1 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:61.2,69.13 5 1
-github.com/number571/go-peer/pkg/queue_set/queue_set.go:72.54,78.2 4 1
-github.com/number571/go-peer/pkg/queue_set/settings.go:12.46,16.2 1 1
-github.com/number571/go-peer/pkg/queue_set/settings.go:18.45,19.22 1 1
-github.com/number571/go-peer/pkg/queue_set/settings.go:19.22,20.28 1 1
-github.com/number571/go-peer/pkg/queue_set/settings.go:22.2,22.10 1 1
-github.com/number571/go-peer/pkg/queue_set/settings.go:25.42,27.2 1 1
-github.com/number571/go-peer/pkg/network/network.go:36.74,43.2 1 1
-github.com/number571/go-peer/pkg/network/network.go:46.41,48.2 1 1
-github.com/number571/go-peer/pkg/network/network.go:51.63,59.39 5 1
-github.com/number571/go-peer/pkg/network/network.go:59.39,63.25 3 1
-github.com/number571/go-peer/pkg/network/network.go:63.25,65.4 1 1
-github.com/number571/go-peer/pkg/network/network.go:67.3,67.35 1 1
-github.com/number571/go-peer/pkg/network/network.go:67.35,71.17 3 1
-github.com/number571/go-peer/pkg/network/network.go:71.17,72.22 1 1
-github.com/number571/go-peer/pkg/network/network.go:72.22,74.6 1 0
-github.com/number571/go-peer/pkg/network/network.go:76.5,78.19 3 1
-github.com/number571/go-peer/pkg/network/network.go:81.4,81.11 1 1
-github.com/number571/go-peer/pkg/network/network.go:82.24,83.17 1 1
-github.com/number571/go-peer/pkg/network/network.go:84.53,86.81 2 0
-github.com/number571/go-peer/pkg/network/network.go:91.2,92.38 2 1
-github.com/number571/go-peer/pkg/network/network.go:98.32,100.16 2 1
-github.com/number571/go-peer/pkg/network/network.go:100.16,102.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:104.2,104.34 1 1
-github.com/number571/go-peer/pkg/network/network.go:104.34,108.7 3 1
-github.com/number571/go-peer/pkg/network/network.go:108.7,110.18 2 1
-github.com/number571/go-peer/pkg/network/network.go:110.18,111.10 1 1
-github.com/number571/go-peer/pkg/network/network.go:114.4,114.26 1 1
-github.com/number571/go-peer/pkg/network/network.go:114.26,116.13 2 1
-github.com/number571/go-peer/pkg/network/network.go:119.4,124.34 5 1
-github.com/number571/go-peer/pkg/network/network.go:128.2,128.12 1 1
-github.com/number571/go-peer/pkg/network/network.go:132.31,137.24 4 1
-github.com/number571/go-peer/pkg/network/network.go:137.24,139.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:141.2,141.39 1 1
-github.com/number571/go-peer/pkg/network/network.go:141.39,144.3 2 1
-github.com/number571/go-peer/pkg/network/network.go:146.2,146.38 1 1
-github.com/number571/go-peer/pkg/network/network.go:150.67,156.2 4 1
-github.com/number571/go-peer/pkg/network/network.go:159.56,164.41 4 1
-github.com/number571/go-peer/pkg/network/network.go:164.41,166.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:168.2,168.16 1 1
-github.com/number571/go-peer/pkg/network/network.go:173.54,174.24 1 1
-github.com/number571/go-peer/pkg/network/network.go:174.24,176.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:178.2,178.44 1 1
-github.com/number571/go-peer/pkg/network/network.go:178.44,180.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:182.2,184.16 3 1
-github.com/number571/go-peer/pkg/network/network.go:184.16,186.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:188.2,191.12 3 1
-github.com/number571/go-peer/pkg/network/network.go:195.54,200.9 4 1
-github.com/number571/go-peer/pkg/network/network.go:200.9,202.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:204.2,206.37 2 1
-github.com/number571/go-peer/pkg/network/network.go:206.37,208.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:210.2,210.12 1 1
-github.com/number571/go-peer/pkg/network/network.go:214.63,216.6 2 1
-github.com/number571/go-peer/pkg/network/network.go:216.6,222.13 2 1
-github.com/number571/go-peer/pkg/network/network.go:222.13,224.18 2 1
-github.com/number571/go-peer/pkg/network/network.go:224.18,227.5 2 1
-github.com/number571/go-peer/pkg/network/network.go:228.4,228.43 1 1
-github.com/number571/go-peer/pkg/network/network.go:231.3,232.10 2 1
-github.com/number571/go-peer/pkg/network/network.go:233.25,234.11 1 1
-github.com/number571/go-peer/pkg/network/network.go:234.11,236.5 1 1
-github.com/number571/go-peer/pkg/network/network.go:237.51,239.10 2 0
-github.com/number571/go-peer/pkg/network/network.go:247.77,249.52 1 1
-github.com/number571/go-peer/pkg/network/network.go:249.52,251.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:254.2,256.21 3 1
-github.com/number571/go-peer/pkg/network/network.go:256.21,259.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:261.2,261.42 1 1
-github.com/number571/go-peer/pkg/network/network.go:261.42,264.3 1 1
-github.com/number571/go-peer/pkg/network/network.go:266.2,266.13 1 1
-github.com/number571/go-peer/pkg/network/network.go:270.39,276.2 4 1
-github.com/number571/go-peer/pkg/network/network.go:279.67,285.2 4 1
-github.com/number571/go-peer/pkg/network/network.go:288.66,293.2 3 1
-github.com/number571/go-peer/pkg/network/network.go:296.61,302.2 4 1
-github.com/number571/go-peer/pkg/network/network.go:305.53,310.2 3 1
-github.com/number571/go-peer/pkg/network/network.go:313.44,318.2 3 1
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:21.13,25.15 2 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:25.15,26.41 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:26.41,27.14 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:31.2,34.44 3 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:34.44,35.13 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:37.2,40.16 3 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:40.16,41.13 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:43.2,43.15 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:43.15,44.38 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:44.38,45.14 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:49.2,53.56 2 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:53.56,54.13 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:57.2,58.12 2 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:58.12,58.24 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:60.2,61.16 2 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:61.16,62.13 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:65.2,65.53 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:68.34,69.97 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:69.97,78.3 2 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:81.51,96.2 1 0
+github.com/number571/go-peer/pkg/network/examples/echo/main.go:98.36,106.2 1 0
+github.com/number571/go-peer/pkg/network/network.go:37.74,44.2 1 1
+github.com/number571/go-peer/pkg/network/network.go:47.41,49.2 1 1
+github.com/number571/go-peer/pkg/network/network.go:52.85,60.39 5 1
+github.com/number571/go-peer/pkg/network/network.go:60.39,64.25 3 1
+github.com/number571/go-peer/pkg/network/network.go:64.25,66.4 1 1
+github.com/number571/go-peer/pkg/network/network.go:68.3,68.35 1 1
+github.com/number571/go-peer/pkg/network/network.go:68.35,72.17 3 1
+github.com/number571/go-peer/pkg/network/network.go:72.17,73.22 1 1
+github.com/number571/go-peer/pkg/network/network.go:73.22,75.6 1 0
+github.com/number571/go-peer/pkg/network/network.go:77.5,79.19 3 1
+github.com/number571/go-peer/pkg/network/network.go:82.4,82.11 1 1
+github.com/number571/go-peer/pkg/network/network.go:83.24,84.17 1 1
+github.com/number571/go-peer/pkg/network/network.go:85.53,87.81 2 0
+github.com/number571/go-peer/pkg/network/network.go:92.2,93.38 2 1
+github.com/number571/go-peer/pkg/network/network.go:99.52,101.16 2 1
+github.com/number571/go-peer/pkg/network/network.go:101.16,103.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:104.2,107.6 3 1
+github.com/number571/go-peer/pkg/network/network.go:107.6,108.10 1 1
+github.com/number571/go-peer/pkg/network/network.go:109.22,110.21 1 0
+github.com/number571/go-peer/pkg/network/network.go:111.11,113.18 2 1
+github.com/number571/go-peer/pkg/network/network.go:113.18,114.10 1 1
+github.com/number571/go-peer/pkg/network/network.go:117.4,117.26 1 1
+github.com/number571/go-peer/pkg/network/network.go:117.26,119.13 2 1
+github.com/number571/go-peer/pkg/network/network.go:122.4,127.40 5 1
+github.com/number571/go-peer/pkg/network/network.go:133.31,138.24 4 1
+github.com/number571/go-peer/pkg/network/network.go:138.24,140.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:142.2,142.39 1 1
+github.com/number571/go-peer/pkg/network/network.go:142.39,145.3 2 1
+github.com/number571/go-peer/pkg/network/network.go:147.2,147.38 1 1
+github.com/number571/go-peer/pkg/network/network.go:151.67,157.2 4 1
+github.com/number571/go-peer/pkg/network/network.go:160.56,165.41 4 1
+github.com/number571/go-peer/pkg/network/network.go:165.41,167.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:169.2,169.16 1 1
+github.com/number571/go-peer/pkg/network/network.go:174.76,175.24 1 1
+github.com/number571/go-peer/pkg/network/network.go:175.24,177.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:179.2,179.44 1 1
+github.com/number571/go-peer/pkg/network/network.go:179.44,181.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:183.2,185.16 3 1
+github.com/number571/go-peer/pkg/network/network.go:185.16,187.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:189.2,192.12 3 1
+github.com/number571/go-peer/pkg/network/network.go:196.54,201.9 4 1
+github.com/number571/go-peer/pkg/network/network.go:201.9,203.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:205.2,207.37 2 1
+github.com/number571/go-peer/pkg/network/network.go:207.37,209.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:211.2,211.12 1 1
+github.com/number571/go-peer/pkg/network/network.go:215.85,217.6 2 1
+github.com/number571/go-peer/pkg/network/network.go:217.6,223.13 2 1
+github.com/number571/go-peer/pkg/network/network.go:223.13,225.18 2 1
+github.com/number571/go-peer/pkg/network/network.go:225.18,228.5 2 1
+github.com/number571/go-peer/pkg/network/network.go:229.4,229.49 1 1
+github.com/number571/go-peer/pkg/network/network.go:232.3,232.10 1 1
+github.com/number571/go-peer/pkg/network/network.go:233.22,234.10 1 0
+github.com/number571/go-peer/pkg/network/network.go:235.19,235.19 0 1
+github.com/number571/go-peer/pkg/network/network.go:239.3,239.10 1 1
+github.com/number571/go-peer/pkg/network/network.go:240.22,241.10 1 0
+github.com/number571/go-peer/pkg/network/network.go:242.51,243.10 1 0
+github.com/number571/go-peer/pkg/network/network.go:244.25,245.11 1 1
+github.com/number571/go-peer/pkg/network/network.go:245.11,247.5 1 1
+github.com/number571/go-peer/pkg/network/network.go:255.99,257.52 1 1
+github.com/number571/go-peer/pkg/network/network.go:257.52,259.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:262.2,264.21 3 1
+github.com/number571/go-peer/pkg/network/network.go:264.21,267.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:269.2,269.48 1 1
+github.com/number571/go-peer/pkg/network/network.go:269.48,272.3 1 1
+github.com/number571/go-peer/pkg/network/network.go:274.2,274.13 1 1
+github.com/number571/go-peer/pkg/network/network.go:278.39,284.2 4 1
+github.com/number571/go-peer/pkg/network/network.go:287.67,293.2 4 1
+github.com/number571/go-peer/pkg/network/network.go:296.66,301.2 3 1
+github.com/number571/go-peer/pkg/network/network.go:304.61,310.2 4 1
+github.com/number571/go-peer/pkg/network/network.go:313.53,318.2 3 1
+github.com/number571/go-peer/pkg/network/network.go:321.44,326.2 3 1
github.com/number571/go-peer/pkg/network/settings.go:22.46,30.2 1 1
github.com/number571/go-peer/pkg/network/settings.go:32.45,33.25 1 1
github.com/number571/go-peer/pkg/network/settings.go:33.25,34.31 1 1
@@ -2517,6 +2467,71 @@ github.com/number571/go-peer/pkg/state/state.go:48.2,48.14 1 0
github.com/number571/go-peer/pkg/state/state.go:48.14,49.29 1 0
github.com/number571/go-peer/pkg/state/state.go:49.29,51.4 1 0
github.com/number571/go-peer/pkg/state/state.go:54.2,55.12 2 0
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:21.49,27.2 1 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:29.45,31.2 1 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:33.45,39.31 5 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:39.31,41.15 2 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:41.15,42.33 1 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:44.3,44.25 1 0
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:47.2,47.13 1 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:50.52,56.32 4 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:56.32,58.3 1 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:61.2,69.13 5 1
+github.com/number571/go-peer/pkg/queue_set/queue_set.go:72.54,78.2 4 1
+github.com/number571/go-peer/pkg/queue_set/settings.go:12.46,16.2 1 1
+github.com/number571/go-peer/pkg/queue_set/settings.go:18.45,19.22 1 1
+github.com/number571/go-peer/pkg/queue_set/settings.go:19.22,20.28 1 1
+github.com/number571/go-peer/pkg/queue_set/settings.go:22.2,22.10 1 1
+github.com/number571/go-peer/pkg/queue_set/settings.go:25.42,27.2 1 1
+github.com/number571/go-peer/pkg/payload/payload.go:15.54,21.2 2 1
+github.com/number571/go-peer/pkg/payload/payload.go:23.49,24.47 1 1
+github.com/number571/go-peer/pkg/payload/payload.go:24.47,26.3 1 1
+github.com/number571/go-peer/pkg/payload/payload.go:27.2,27.32 1 1
+github.com/number571/go-peer/pkg/payload/payload.go:30.36,34.2 3 1
+github.com/number571/go-peer/pkg/payload/payload.go:36.36,38.2 1 1
+github.com/number571/go-peer/pkg/payload/payload.go:40.36,42.2 1 1
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:21.13,26.15 2 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:26.15,27.42 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:27.42,28.14 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:30.3,30.42 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:30.42,31.14 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:35.2,39.45 4 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:39.45,40.13 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:43.2,45.68 2 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:45.68,46.13 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:49.2,58.9 3 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:61.52,62.94 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:62.94,66.17 3 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:66.17,68.4 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:70.3,71.17 2 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:71.17,73.4 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:75.3,84.13 3 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:88.51,103.2 1 0
+github.com/number571/go-peer/pkg/network/examples/ping-pong/main.go:105.36,113.2 1 0
+github.com/number571/go-peer/pkg/network/message/message.go:31.66,40.2 3 1
+github.com/number571/go-peer/pkg/network/message/message.go:42.72,45.27 2 1
+github.com/number571/go-peer/pkg/network/message/message.go:46.14,47.15 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:48.14,49.51 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:50.10,51.52 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:54.2,54.62 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:54.62,56.3 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:58.2,67.41 8 1
+github.com/number571/go-peer/pkg/network/message/message.go:67.41,69.3 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:71.2,71.69 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:71.69,73.3 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:76.2,77.16 2 1
+github.com/number571/go-peer/pkg/network/message/message.go:77.16,79.3 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:81.2,85.8 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:88.38,90.2 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:92.37,94.2 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:96.50,98.2 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:100.37,110.2 2 1
+github.com/number571/go-peer/pkg/network/message/message.go:112.38,114.2 1 1
+github.com/number571/go-peer/pkg/network/message/message.go:116.55,122.2 2 1
+github.com/number571/go-peer/pkg/network/message/settings.go:13.46,18.2 1 1
+github.com/number571/go-peer/pkg/network/message/settings.go:20.45,22.2 1 1
+github.com/number571/go-peer/pkg/network/message/settings.go:24.46,26.2 1 1
+github.com/number571/go-peer/pkg/network/message/settings.go:28.44,30.2 1 1
github.com/number571/go-peer/pkg/storage/settings.go:14.46,20.2 1 1
github.com/number571/go-peer/pkg/storage/settings.go:22.45,23.19 1 1
github.com/number571/go-peer/pkg/storage/settings.go:23.19,24.25 1 1
@@ -2565,9 +2580,48 @@ github.com/number571/go-peer/pkg/storage/storage.go:182.2,184.16 3 1
github.com/number571/go-peer/pkg/storage/storage.go:184.16,186.3 1 1
github.com/number571/go-peer/pkg/storage/storage.go:188.2,188.22 1 1
github.com/number571/go-peer/pkg/storage/storage.go:191.87,195.2 3 1
-github.com/number571/go-peer/pkg/wrapper/wrapper.go:17.28,19.2 1 1
-github.com/number571/go-peer/pkg/wrapper/wrapper.go:21.38,26.2 3 1
-github.com/number571/go-peer/pkg/wrapper/wrapper.go:28.53,34.2 4 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:40.77,52.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:54.49,56.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:58.52,60.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:62.57,63.45 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:63.45,65.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:66.2,66.15 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:66.15,67.47 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:67.47,68.14 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:72.2,72.6 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:72.6,73.10 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:74.22,75.21 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:76.52,77.24 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:77.24,78.13 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:80.4,80.52 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:85.116,89.24 3 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:89.24,91.3 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:92.2,92.33 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:92.33,94.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:96.2,99.10 3 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:102.69,106.60 3 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:106.60,108.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:110.2,117.12 2 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:120.83,121.9 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:122.21,123.13 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:124.47,129.20 4 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:129.20,131.4 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:132.3,132.20 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:136.72,141.16 2 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:141.16,142.13 1 0
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:145.2,156.3 5 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:159.45,165.2 4 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:18.46,24.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:26.45,27.26 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:27.26,28.32 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:30.2,30.26 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:30.26,31.32 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:33.2,33.22 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:33.22,34.28 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:36.2,36.10 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:39.46,41.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:43.46,45.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:47.49,49.2 1 1
github.com/number571/go-peer/pkg/utils/errors.go:5.41,7.29 2 1
github.com/number571/go-peer/pkg/utils/errors.go:7.29,8.17 1 1
github.com/number571/go-peer/pkg/utils/errors.go:8.17,9.12 1 1
@@ -2619,52 +2673,9 @@ github.com/number571/go-peer/pkg/storage/database/encrypt.go:26.66,28.3 1 1
github.com/number571/go-peer/pkg/storage/database/encrypt.go:30.2,38.36 4 1
github.com/number571/go-peer/pkg/storage/database/encrypt.go:38.36,40.3 1 1
github.com/number571/go-peer/pkg/storage/database/encrypt.go:42.2,42.48 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:40.77,52.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:54.49,56.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:58.52,60.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:62.57,63.45 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:63.45,65.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:66.2,66.15 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:66.15,67.47 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:67.47,68.14 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:72.2,72.6 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:72.6,73.10 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:74.22,75.14 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:76.52,77.24 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:77.24,78.13 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:80.4,80.52 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:85.116,89.24 3 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:89.24,91.3 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:92.2,92.33 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:92.33,94.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:96.2,99.10 3 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:102.69,106.60 3 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:106.60,108.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:110.2,117.12 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:120.83,126.12 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:126.12,127.10 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:128.22,130.10 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:131.48,132.17 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:132.17,132.36 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:134.4,138.21 4 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:138.21,141.5 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:143.4,144.10 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:148.2,149.15 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:152.72,157.16 2 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:157.16,158.13 1 0
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:161.2,172.3 5 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/queue.go:175.45,181.2 4 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:18.46,24.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:26.45,27.26 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:27.26,28.32 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:30.2,30.26 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:30.26,31.32 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:33.2,33.22 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:33.22,34.28 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:36.2,36.10 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:39.46,41.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:43.46,45.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/queue/settings.go:47.49,49.2 1 1
+github.com/number571/go-peer/pkg/wrapper/wrapper.go:17.28,19.2 1 1
+github.com/number571/go-peer/pkg/wrapper/wrapper.go:21.38,26.2 3 1
+github.com/number571/go-peer/pkg/wrapper/wrapper.go:28.53,34.2 4 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:23.70,29.2 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:31.54,33.2 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:35.47,37.2 1 1
@@ -2675,13 +2686,13 @@ github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:43.15,44.47
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:44.47,45.14 1 0
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:49.2,49.6 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:49.6,51.10 2 1
-github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:52.22,53.14 1 1
+github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:52.22,53.21 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:54.48,54.48 0 1
-github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:60.41,66.32 4 1
+github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:60.61,66.32 4 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:66.32,67.24 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:67.24,71.35 3 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:71.35,73.5 1 1
-github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:75.4,75.31 1 1
+github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:75.4,75.37 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/conn_keeper.go:79.2,79.11 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:15.46,20.2 1 1
github.com/number571/go-peer/pkg/network/conn_keeper/settings.go:22.45,23.22 1 1
@@ -2702,97 +2713,97 @@ github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:77.31,80.4 2 1
github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:81.3,81.55 1 1
github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:81.55,82.14 1 0
github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:86.2,87.12 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:87.12,88.44 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:88.44,90.4 1 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:91.3,91.15 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:94.2,94.6 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:94.6,95.10 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:96.22,97.18 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:98.11,100.18 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:100.18,101.10 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:104.4,105.63 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:105.63,107.10 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:111.4,115.34 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:120.44,122.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:124.41,126.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:128.43,130.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:132.48,134.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:136.55,138.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:141.58,143.2 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:145.67,148.2 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:151.90,153.77 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:153.77,155.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:156.2,156.12 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:161.96,174.68 6 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:174.68,176.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:178.2,179.16 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:179.16,181.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:183.2,183.18 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:186.51,187.62 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:187.62,188.55 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:188.55,190.12 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:192.3,192.13 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:194.2,194.46 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:197.57,199.9 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:199.9,201.3 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:202.2,202.9 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:203.34,204.14 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:204.14,206.4 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:207.3,207.21 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:208.52,209.46 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:213.51,214.82 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:214.82,221.65 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:221.65,223.18 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:223.18,225.5 1 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:226.4,226.14 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:230.3,232.17 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:232.17,234.4 1 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:237.3,238.17 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:238.17,241.4 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:244.3,247.36 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:247.36,250.4 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:253.3,256.10 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:258.25,262.11 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:262.11,265.5 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:267.4,269.14 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:272.24,275.23 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:275.23,278.5 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:281.4,282.18 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:282.18,285.5 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:286.4,286.19 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:286.19,289.5 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:293.4,294.14 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:297.11,299.14 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:304.104,310.43 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:310.43,313.3 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:315.2,320.15 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:321.18,323.47 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:324.19,326.48 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:327.10,329.43 2 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:332.2,334.16 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:334.16,337.3 2 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:339.2,350.36 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:350.36,353.3 2 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:355.2,356.12 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:359.121,374.21 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:374.21,377.3 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:380.2,382.60 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:382.60,385.3 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:388.2,395.60 2 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:395.60,398.3 2 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:401.2,401.18 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:401.18,403.53 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:403.53,406.4 1 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:409.2,409.18 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:412.67,414.58 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:414.58,416.3 1 0
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:417.2,417.12 1 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:420.59,425.2 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:427.58,433.2 4 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:435.66,441.2 4 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:443.46,448.2 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:450.46,455.2 3 1
-github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:457.68,460.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:87.12,87.43 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:89.2,89.6 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:89.6,90.10 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:91.22,92.18 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:93.11,95.18 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:95.18,96.10 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:99.4,100.69 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:100.69,102.10 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:106.4,110.34 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:115.44,117.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:119.41,121.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:123.43,125.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:127.48,129.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:131.55,133.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:136.58,138.2 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:140.67,143.2 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:146.112,148.83 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:148.83,150.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:151.2,151.12 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:156.118,169.74 6 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:169.74,171.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:173.2,174.16 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:174.16,176.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:178.2,178.18 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:181.73,182.62 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:182.62,183.55 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:183.55,185.4 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:186.3,186.10 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:187.22,188.21 1 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:189.59,189.59 0 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:193.2,193.46 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:196.57,198.9 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:198.9,200.3 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:201.2,201.9 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:202.34,203.14 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:203.14,205.4 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:206.3,206.21 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:207.52,208.46 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:212.51,213.104 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:213.104,220.71 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:220.71,222.18 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:222.18,224.5 1 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:225.4,225.14 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:229.3,231.17 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:231.17,233.4 1 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:236.3,237.17 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:237.17,240.4 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:243.3,246.36 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:246.36,249.4 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:252.3,255.10 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:257.25,261.11 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:261.11,264.5 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:266.4,268.14 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:271.24,274.23 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:274.23,277.5 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:280.4,281.18 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:281.18,284.5 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:285.4,285.19 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:285.19,288.5 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:291.4,293.14 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:296.11,298.14 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:303.126,309.43 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:309.43,312.3 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:314.2,319.15 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:320.18,322.47 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:323.19,325.48 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:326.10,328.43 2 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:331.2,333.16 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:333.16,336.3 2 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:338.2,349.42 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:349.42,352.3 2 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:354.2,355.12 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:358.143,373.21 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:373.21,376.3 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:379.2,381.60 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:381.60,384.3 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:387.2,394.60 2 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:394.60,397.3 2 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:400.2,400.18 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:400.18,402.59 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:402.59,405.4 1 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:408.2,408.18 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:411.89,413.64 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:413.64,415.3 1 0
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:416.2,416.12 1 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:419.59,424.2 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:426.58,432.2 4 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:434.66,440.2 4 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:442.46,447.2 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:449.46,454.2 3 1
+github.com/number571/go-peer/pkg/network/anonymity/anonymity.go:456.68,459.2 2 1
github.com/number571/go-peer/pkg/network/anonymity/data_type.go:12.36,13.22 1 1
github.com/number571/go-peer/pkg/network/anonymity/data_type.go:13.22,15.3 1 1
github.com/number571/go-peer/pkg/network/anonymity/data_type.go:16.2,16.43 1 1