Set timeout value for TCP connetion based on CWMP session timeout. Handle expired sessions gracefully.
This commit is contained in:
1 parent
bb6e963788
commit
ec2dd87693
1 file changed
+5
@@ -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,
|
||||||
|
|||||||
Reference in new issue
Block a user