1# test relay closes stdin after relaying some data 2 3use strict; 4use warnings; 5 6our %args = ( 7 client => { 8 func => sub { errignore(@_); write_stream(@_); }, 9 len => 2**30, # not reached 10 sndbuf => 2**10, # small buffer triggers error during write 11 # the error message seems to be timing dependent 12 down => "Client print failed: (Broken pipe|Connection reset by peer)", 13 nocheck => 1, 14 error => 54, 15 }, 16 relay => { 17 func => sub { errignore(@_); $SIG{ALRM} = sub { close STDIN }; 18 alarm(3); relay(@_); }, 19 rcvbuf => 2**10, 20 sndbuf => 2**10, 21 down => "Bad file descriptor", 22 nocheck => 1, 23 errorin => "", 24 }, 25 server => { 26 rcvbuf => 2**10, 27 nocheck => 1, 28 }, 29); 30