Index: devserver.py |
diff --git a/devserver.py b/devserver.py |
index 0dfe559b5e0940e0c7a8d74a0489601f4a522567..3737cc08924481f9f89a2d8643b68b4c0add41d6 100644 |
--- a/devserver.py |
+++ b/devserver.py |
@@ -38,6 +38,20 @@ class build: |
if err != 0: |
raise Exception('failed to execute %s' % emerge_command) |
+def OverrideWSGIServer(server_address, wsgi_app): |
+ """Creates a CherryPyWSGIServer instance. |
+ |
+ Overrides web.py's WSGIServer routine (web.httpserver.WSGIServer) to |
+ increase the accepted connection socket timeout from the default 10 |
+ seconds to 10 minutes. The extra time is necessary to serve delta |
+ updates as well as update requests from a low priority update_engine |
+ process running on a heavily loaded Chrome OS device. |
+ """ |
+ web.debug('using local OverrideWSGIServer routine') |
+ from web.wsgiserver import CherryPyWSGIServer |
+ return CherryPyWSGIServer(server_address, wsgi_app, server_name="localhost", |
+ timeout=600) |
+ |
if __name__ == '__main__': |
usage = 'usage: %prog [options]' |
parser = optparse.OptionParser(usage) |
@@ -102,6 +116,8 @@ if __name__ == '__main__': |
'/update/(.+)', 'update', |
'/build', 'build') |
+ # Overrides the default WSGIServer routine -- see OverrideWSGIServer. |
+ web.httpserver.WSGIServer = OverrideWSGIServer |
app = web.application(urls, globals(), autoreload=True) |
render = web.template.render('templates/') |
app.run() |