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 @@ -coverage: 45%coverage45% \ No newline at end of file +coverage: 46%coverage46% \ 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