From ec2dd87693007ea0fccfec32088214e631e5a3c8 Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Thu, 10 Jul 2014 01:08:54 +0300 Subject: [PATCH] Set timeout value for TCP connetion based on CWMP session timeout. Handle expired sessions gracefully. --- lib/cwmp.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/cwmp.coffee b/lib/cwmp.coffee index 2bbd145..328e9f4 100644 --- a/lib/cwmp.coffee +++ b/lib/cwmp.coffee @@ -388,12 +388,17 @@ listener = (httpRequest, httpResponse) -> getSession(httpRequest, (sessionId, session) -> cwmpRequest = soap.request(httpRequest, session?.cwmpVersion) if not session? + if cwmpRequest.methodRequest?.type isnt 'Inform' + httpResponse.writeHead(400) + httpResponse.end('Session is expired') + return session = { deviceId : common.getDeviceId(cwmpRequest.methodRequest.deviceId), cwmpVersion : cwmpRequest.cwmpVersion, sessionTimeout : cwmpRequest.sessionTimeout ? config.SESSION_TIMEOUT } sessionId = crypto.randomBytes(8).toString('hex') + httpRequest.connection.setTimeout(session.sessionTimeout * 1000) currentRequest = { httpRequest : httpRequest,