diff --git a/loopd/swapclient_server.go b/loopd/swapclient_server.go index 5b12ed9..5536b55 100644 --- a/loopd/swapclient_server.go +++ b/loopd/swapclient_server.go @@ -99,7 +99,8 @@ func (s *swapClientServer) LoopOut(ctx context.Context, SwapPublicationDeadline: time.Unix( int64(in.SwapPublicationDeadline), 0, ), - Label: in.Label, + Label: in.Label, + Initiator: in.Initiator, } switch { @@ -496,6 +497,7 @@ func (s *swapClientServer) LoopIn(ctx context.Context, HtlcConfTarget: htlcConfTarget, ExternalHtlc: in.ExternalHtlc, Label: in.Label, + Initiator: in.Initiator, } if in.LastHop != nil { lastHop, err := route.NewVertexFromBytes(in.LastHop) diff --git a/version.go b/version.go index 09973a7..dc5ad8a 100644 --- a/version.go +++ b/version.go @@ -8,6 +8,7 @@ package loop import ( "bytes" "fmt" + "math" "strings" ) @@ -64,6 +65,13 @@ func UserAgent(initiator string) string { cleanInitiator = fmt.Sprintf(",initiator=%s", cleanInitiator) } + // The whole user agent string is limited to 255 characters server side + // and also consists of the agent name, version and commit. So we only + // want to take up at most 150 characters for the initiator. Anything + // more will just be dropped. + strLen := len(cleanInitiator) + cleanInitiator = cleanInitiator[:int(math.Min(float64(strLen), 150))] + // Assemble full string, including the commit hash of current build. return fmt.Sprintf( "%s/v%s/commit=%s%s", AgentName, semanticVersion(), Commit,