From 8c778afdbeba195464bceca2c6519498f6c2bbdd Mon Sep 17 00:00:00 2001
From: Erick Hitter <services@ethitter.com>
Date: Tue, 30 Aug 2016 21:00:27 -0700
Subject: [PATCH] Restore timeout

---
 package.json |  1 +
 server.js    | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/package.json b/package.json
index 8bd48b4..acba66a 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
     "apicache": "*",
     "asyncawait": "^0.7.4",
     "bluebird": "^2.9.34",
+    "connect-timeout": "*",
     "debug": "^2.2.0",
     "express": "^4.13.3",
     "morgan": "^1.6.1",
diff --git a/server.js b/server.js
index 8f9826a..f3bf379 100755
--- a/server.js
+++ b/server.js
@@ -11,6 +11,7 @@ var await     = require( 'asyncawait/await' );
 var async     = require( 'asyncawait/async' );
 var apicache  = require( 'apicache' ).options( { defaultDuration: 15000 } );
 var cache     = apicache.middleware;
+var timeout   = require( 'connect-timeout' );
 var request   = require( 'request' );
 
 /**
@@ -26,6 +27,8 @@ var port    = serverConfig.port || 3000;
 
 var app = express();
 app.use( morgan( DEBUG ? 'dev' : 'combined' ) );
+app.use( timeout( '10s' ) );
+app.use( haltOnTimeout );
 
 // Parse lock configurations
 Object.keys( config ).forEach( function( lockName ) {
@@ -84,6 +87,13 @@ function statusStringtoInt( status ) {
     return statusInt;
 }
 
+// Timeout callback
+function haltOnTimeout( req, res, next ) {
+    if ( ! req.timedout ) {
+        next();
+    }
+}
+
 /**
  * ROUTES
  */
-- 
GitLab