From 13a09dec6c029e01e8d959b0bf0feb94d72ae32d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 2 Nov 2013 01:00:00 +0000 Subject: account for truncated/expanded static files When running a static file server, we must account for filesystem activity outside of our control where files may grow/shrink as they're being served. For truncated files, we must abort any persistent connections downloading a truncated file to avoid confusing clients because the Content-Length header was already set to the big value. We also must ensure (we already did so before this commit, this just adds a test for it) we do not send additional data when a file grows on us after we've started sending the response. --- test/server_helper.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/server_helper.rb') diff --git a/test/server_helper.rb b/test/server_helper.rb index 52b08c7..2f9266a 100644 --- a/test/server_helper.rb +++ b/test/server_helper.rb @@ -78,6 +78,20 @@ module ServerHelper Yahns::Server.new(cfg).start.join end end + + def wait_for_full(c) + prev = 0 + prev_time = Time.now + begin + nr = c.nread + break if nr > 0 && nr == prev && (Time.now - prev_time) > 0.5 + if nr != prev + prev = nr + prev_time = Time.now + end + Thread.pass + end while sleep(0.1) + end end module TrywriteBlocked -- cgit v1.2.3-24-ge0c7