#!/usr/bin/env ruby # Wait for a sender connection, send a correct hello, wait for a write # request, then disconnect. Simulate a server which crashes after # receiving the write, and before it can send a reply. We then reopen # the server socket to check that the sender retries: since the # command-line has gone away, and can't feed an error back to the # user, we have to keep trying. require 'flexnbd/fake_dest' include FlexNBD addr, port = *ARGV server = FakeDest.new( addr, port ) client = server.accept( "Timed out waiting for a connection" ) client.write_hello client.read_request client.close new_client = server.accept( "Timed out waiting for a reconnection" ) new_client.close server.close exit 0