diff --git a/echosrv.c b/echosrv.c index a6b5528..b85a229 100644 --- a/echosrv.c +++ b/echosrv.c @@ -44,6 +44,7 @@ void start_echo(int fd) int res; char buffer[1 << 20]; int ret, prefix_len; + int first = 1; prefix_len = strlen(cfg.prefix); @@ -56,7 +57,13 @@ void start_echo(int fd) fprintf(stderr, "%s", strerror(errno)); return; } - res = write(fd, buffer, ret + prefix_len); + if (first) { + res = write(fd, buffer, ret + prefix_len); + first = 0; + write(1, buffer, ret + prefix_len); + } else { + res = write(fd, buffer + prefix_len, ret); + } if (res < 0) { fprintf(stderr, "%s", strerror(errno)); return; diff --git a/t b/t index 7fce477..45179c3 100755 --- a/t +++ b/t @@ -224,6 +224,7 @@ for my $binary (@binaries) { exit 0; } warn "spawned $sslh_pid\n"; + sleep 1; # Give everyone some time to start sleep 5 if $valgrind; # valgrind can be heavy -- wait 5 seconds