From 0254e4b365153855748f59f234d4f7cc29396704 Mon Sep 17 00:00:00 2001 From: lanzafame Date: Fri, 28 Aug 2020 16:53:59 +1000 Subject: [PATCH] reduce code duplication --- chain/sub/incoming.go | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/chain/sub/incoming.go b/chain/sub/incoming.go index 52b03c755..5dd9d58e7 100644 --- a/chain/sub/incoming.go +++ b/chain/sub/incoming.go @@ -576,51 +576,31 @@ func (mv *MessageValidator) validateLocalMessage(ctx context.Context, msg *pubsu m, err := types.DecodeSignedMessage(msg.Message.GetData()) if err != nil { log.Warnf("failed to decode local message: %s", err) - ctx, _ = tag.New( - ctx, - tag.Upsert(metrics.FailureType, "decode"), - ) - stats.Record(ctx, metrics.MessageValidationFailure.M(1)) + recordFailure(ctx, metrics.MessageValidationFailure, "decode") return pubsub.ValidationIgnore } if m.Size() > 32*1024 { log.Warnf("local message is too large! (%dB)", m.Size()) - ctx, _ = tag.New( - ctx, - tag.Upsert(metrics.FailureType, "oversize"), - ) - stats.Record(ctx, metrics.MessageValidationFailure.M(1)) + recordFailure(ctx, metrics.MessageValidationFailure, "oversize") return pubsub.ValidationIgnore } if m.Message.To == address.Undef { log.Warn("local message has invalid destination address") - ctx, _ = tag.New( - ctx, - tag.Upsert(metrics.FailureType, "undef-addr"), - ) - stats.Record(ctx, metrics.MessageValidationFailure.M(1)) + recordFailure(ctx, metrics.MessageValidationFailure, "undef-addr") return pubsub.ValidationIgnore } if !m.Message.Value.LessThan(types.TotalFilecoinInt) { log.Warnf("local messages has too high value: %s", m.Message.Value) - ctx, _ = tag.New( - ctx, - tag.Upsert(metrics.FailureType, "value-too-high"), - ) - stats.Record(ctx, metrics.MessageValidationFailure.M(1)) + recordFailure(ctx, metrics.MessageValidationFailure, "value-too-high") return pubsub.ValidationIgnore } if err := mv.mpool.VerifyMsgSig(m); err != nil { log.Warnf("signature verification failed for local message: %s", err) - ctx, _ = tag.New( - ctx, - tag.Upsert(metrics.FailureType, "verify-sig"), - ) - stats.Record(ctx, metrics.MessageValidationFailure.M(1)) + recordFailure(ctx, metrics.MessageValidationFailure, "verify-sig") return pubsub.ValidationIgnore } @@ -643,3 +623,11 @@ func HandleIncomingMessages(ctx context.Context, mpool *messagepool.MessagePool, // Do nothing... everything happens in validate } } + +func recordFailure(ctx context.Context, metric *stats.Int64Measure, failureType string) { + ctx, _ = tag.New( + ctx, + tag.Upsert(metrics.FailureType, failureType), + ) + stats.Record(ctx, metric.M(1)) +} \ No newline at end of file