diff --git a/src/MulticastService.cs b/src/MulticastService.cs index afae2cb..023dd27 100644 --- a/src/MulticastService.cs +++ b/src/MulticastService.cs @@ -132,6 +132,7 @@ public MulticastService(Func, IEnumerable @@ -150,6 +151,18 @@ public MulticastService(Func, IEnumerable public bool UseIpv6 { get; set; } + /// + /// Determines if received messages are checked for duplicates. + /// + /// + /// true to ignore duplicate messages. Defaults to true. + /// + /// + /// When set, a message that has been received within the last minute + /// will be ignored. + /// + public bool IgnoreDuplicateMessages { get; set; } + /// /// The interval for discovering network interfaces. /// diff --git a/test/MulticastServiceTest.cs b/test/MulticastServiceTest.cs index 9c25936..93e3a15 100644 --- a/test/MulticastServiceTest.cs +++ b/test/MulticastServiceTest.cs @@ -19,6 +19,7 @@ public void Can_Create() { var mdns = new MulticastService(); Assert.IsNotNull(mdns); + Assert.IsTrue(mdns.IgnoreDuplicateMessages); } [TestMethod] diff --git a/test/ServiceDiscoveryTest.cs b/test/ServiceDiscoveryTest.cs index 92279ab..f1cf84b 100644 --- a/test/ServiceDiscoveryTest.cs +++ b/test/ServiceDiscoveryTest.cs @@ -524,7 +524,10 @@ public void Announce_SentTwice() var service = new ServiceProfile("z", "_sdtest-4._udp", 1024, new[] { IPAddress.Loopback }); var done = new ManualResetEvent(false); var nanswers = 0; - var mdns = new MulticastService(); + var mdns = new MulticastService + { + IgnoreDuplicateMessages = false + }; mdns.AnswerReceived += (s, e) => { var msg = e.Message;