diff --git a/lib/nanoserve.rb b/lib/nanoserve.rb index c464766..cbc098b 100644 --- a/lib/nanoserve.rb +++ b/lib/nanoserve.rb @@ -11,14 +11,15 @@ module NanoServe @port = port @block = block @thr = nil + @srv = nil end def start(y) - server = TCPServer.new(@port) + @srv = TCPServer.new(@port) @thr = Thread.new do Thread.abort_on_exception = true - conn = server.accept + conn = @srv.accept port, host = conn.peeraddr[1, 2] client = "#{host}:#{port}" logger.debug "#{client}: connected" @@ -38,12 +39,12 @@ module NanoServe yield @thr.join - server.close y end def stop + @srv.close @thr.kill end diff --git a/test/test_nanoserve.rb b/test/test_nanoserve.rb index f5bf694..9bbded2 100644 --- a/test/test_nanoserve.rb +++ b/test/test_nanoserve.rb @@ -24,6 +24,8 @@ class TestNanoServe < MiniTest::Test s.close end + r.stop + assert_equal(uuid, buf) end @@ -50,6 +52,8 @@ class TestNanoServe < MiniTest::Test Net::HTTP.get(uri + "test?uuid=#{uuid}") end + r.stop + assert_equal(uuid, req.first.params['uuid']) end end