Set timeout value for TCP connetion based on CWMP session timeout. Handle expired sessions gracefully.

This commit is contained in:
Zaid Abdulla committed 2014-07-10 01:08:54 +03:00
1 parent bb6e963788
commit ec2dd87693
1 file changed
+5
+5
View File
@@ -388,12 +388,17 @@ listener = (httpRequest, httpResponse) ->
getSession(httpRequest, (sessionId, session) -> getSession(httpRequest, (sessionId, session) ->
cwmpRequest = soap.request(httpRequest, session?.cwmpVersion) cwmpRequest = soap.request(httpRequest, session?.cwmpVersion)
if not session? if not session?
if cwmpRequest.methodRequest?.type isnt 'Inform'
httpResponse.writeHead(400)
httpResponse.end('Session is expired')
return
session = { session = {
deviceId : common.getDeviceId(cwmpRequest.methodRequest.deviceId), deviceId : common.getDeviceId(cwmpRequest.methodRequest.deviceId),
cwmpVersion : cwmpRequest.cwmpVersion, cwmpVersion : cwmpRequest.cwmpVersion,
sessionTimeout : cwmpRequest.sessionTimeout ? config.SESSION_TIMEOUT sessionTimeout : cwmpRequest.sessionTimeout ? config.SESSION_TIMEOUT
} }
sessionId = crypto.randomBytes(8).toString('hex') sessionId = crypto.randomBytes(8).toString('hex')
httpRequest.connection.setTimeout(session.sessionTimeout * 1000)
currentRequest = { currentRequest = {
httpRequest : httpRequest, httpRequest : httpRequest,