fix: support rootless ICMP and verify SELinux deployment [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
ci/woodpecker/push/main-amd64-build Pipeline was successful
This commit is contained in:
8 files changed
+134
-24
No files matched your search
@@ -0,0 +1,31 @@
|
||||
using System.Buffers.Binary;
|
||||
|
||||
namespace MoShiro.Measurement.Tests;
|
||||
|
||||
public sealed class IcmpReplyTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData((byte)0)]
|
||||
[InlineData((byte)129)]
|
||||
public void ReplyMustMatchTypeCodeSequenceAndPayload(byte replyType)
|
||||
{
|
||||
byte[] request = new byte[44];
|
||||
request[8] = 71;
|
||||
byte[] reply = (byte[])request.Clone();
|
||||
reply[0] = replyType;
|
||||
BinaryPrimitives.WriteUInt16BigEndian(reply.AsSpan(6), 123);
|
||||
// Linux changes the identifier; it is not the request's zero identifier.
|
||||
reply[4] = 42;
|
||||
Assert.True(LinuxIcmpEcho.IsReply(reply, request, replyType, 123));
|
||||
Assert.False(LinuxIcmpEcho.IsReply(reply, request, replyType, 124));
|
||||
Assert.False(LinuxIcmpEcho.IsReply(reply.AsSpan(0, 7), request, replyType, 123));
|
||||
reply[1] = 1;
|
||||
Assert.False(LinuxIcmpEcho.IsReply(reply, request, replyType, 123));
|
||||
reply[1] = 0;
|
||||
reply[0]++;
|
||||
Assert.False(LinuxIcmpEcho.IsReply(reply, request, replyType, 123));
|
||||
reply[0] = replyType;
|
||||
reply[8]++;
|
||||
Assert.False(LinuxIcmpEcho.IsReply(reply, request, replyType, 123));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user