public bool IsNotSeenBefore(Message message, out byte[] id, out int cacheHit)
{
cacheHit = -1;
id = PeerNodeImplementation.DefaultId;
if (message is SecurityVerifiedMessage)
{
id = (message as SecurityVerifiedMessage).PrimarySignatureValue;
}
else
{
System.Xml.UniqueId messageId = PeerMessageHelpers.GetHeaderUniqueId(message.Headers, PeerStrings.MessageId, PeerStrings.Namespace);
if (messageId == null)
{
return(false);
}
if (messageId.IsGuid)
{
id = new byte[16];
messageId.TryGetGuid(id, 0);
}
else
{
return(false);
}
}
cacheHit = messageIds.AddForLookup(id);
if (cacheHit == -1)
{
return(true);
}
return(false);
}