This test uses network namespaces in order to create a virtual network
for two hosts which can send and recieve UDP messages. The test can be
run with 'sudo bash test_two_hosts_announce.sh [MAJOR.MINOR.PATCH]' (eg.
sudo bash test_two_hosts_announce.sh 0.9.2). It automatically sets up a
virtual environment for the specified rns version. There is some
rudimentary version string parsing for ease of use.
The test sets up two network namespaces for two hosts and assigns some
arbitrary IP- and MAC addresses. Then a rnsd instance is started per
namespace, an id (with rnid) is generated and an announce is sent out.
The other side then verifies the announce and the same is repeated in
reverse. The test script exits 1 if any of the announces could not be
verified and 0 if both can be verified.
- StreamDataMessage now packed by struct rather than umsgpack for a more predictable size
- Added protected variable on LocalInterface to allow tests to simulate a low bandwidth connection
- Retry timer now has exponential backoff and a more sane starting value
- Link proves packet _before_ sending contents to Channel; this should help prevent spurious retries especially on half-duplex links
- Prevent Transport packet filter from filtering out duplicate packets for Channel; handle duplicates in Channel to ensure the packet is reproven (in case the original proof packet was lost)
- Fix up other tests broken by these changes
- a message handler can return logical True to prevent subsequent message handlers from running
- Message types >= 0xff00 are reserved for system/framework messages