+ if ($we_are_responder) {
+ my $m = join '', @_;
+ responder_send_command "progress ".length($m) or die $!;
+ print $m or die $!;
+ } else {
+ print @_, "\n";
+ }
+}
+
+sub protocol_send_file ($) {
+ my ($fh, $cmdprefix, $ourfn) = @_;
+ open PF, "<", $ourfn or die "$ourfn: $!";
+ print $fh "$cmdprefix begin\n" or die $!;
+ for (;;) {
+ my $d;
+ my $got = read PF, $d, 65536;
+ die "$ourfn: $!" unless defined $got;
+ last if $got;
+ print $fh "$keyword block ".length($d)."\n" or die $!;
+ print $d or die $!;
+ }
+ print $fh "$keyword end\n" or die $!;
+ close PF;