Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion test/modules/post/test/socket_channels.rb
Original file line number Diff line number Diff line change
Expand Up @@ -264,11 +264,29 @@ def test_udp_channel
end

it '[UDP] Receives data from the peer' do
print_status("[UDP] Monitoring 'Receives data from the peer' test...")
client, server_client = udp_socket_pair
data = Random.new.bytes(rand(10..100))
print_status("[UDP] Sending data to #{Rex::Socket.to_authority(client.localhost, client.localport)}")
server_client.send(data, 0, client.localhost, client.localport)
received, _ = client.recvfrom(data.length)
received = ''
remaining = 20 # seconds
while remaining > 0
chunk, elapsed_time = Rex::Stopwatch.elapsed_time do
chunk, _ = client.recvfrom(data.length)
chunk
end
received << chunk
remaining -= elapsed_time
end
ret = received == data
unless ret
print_warning("[UDP] Receives data from the peer failed in #{20} seconds")
print_warning("[UDP] expected: #{data.unpack1('H*')}")
if received
print_warning("[UDP] received: #{received.unpack1('H*')}")
end
end
client.close
server_client.close
ret
Expand Down
Loading