From fd378d138a8abbfb0cadf97c7d05d45c4c03692a Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Mon, 28 Oct 2013 11:58:36 +0300 Subject: [PATCH] Support for task expiry. --- acs.coffee | 6 ++---- api-functions.coffee | 5 +++++ common.coffee | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/acs.coffee b/acs.coffee index dfe9779..037c0c3 100644 --- a/acs.coffee +++ b/acs.coffee @@ -193,10 +193,7 @@ runTask = (currentRequest, task, methodResponse) -> isTaskExpired = (task) -> - now = Date.now() - if task.expires and (now - task.timestamp.getTime()) > config.DEVICE_ONLINE_THRESHOLD - return true - return false + task.expiry <= new Date() assertPresets = (currentRequest) -> @@ -265,6 +262,7 @@ nextTask = (currentRequest) -> res = tr069.response(null, cwmpResponse) writeResponse(currentRequest, res) else if isTaskExpired(task) + util.log("#{currentRequest.deviceId}: Task is expired #{task.name}(#{task._id})") db.tasksCollection.remove({'_id' : mongodb.ObjectID(String(task._id))}, {safe: true}, (err, removed) -> throw new Error(err) if err? nextTask(currentRequest) diff --git a/api-functions.coffee b/api-functions.coffee index b4c5eaf..6fc41bd 100644 --- a/api-functions.coffee +++ b/api-functions.coffee @@ -85,6 +85,11 @@ expandParam = (param) -> sanitizeTask = (task, callback) -> task.timestamp = new Date(task.timestamp ? Date.now()) + if task.expiry? + if common.typeOf(task.expiry) is common.DATE_TYPE or isNaN(task.expiry) + task.expiry = new Date(task.expiry) + else + task.expiry = new Date(task.timestamp.getTime() + +task.expiry * 1000) switch task.name when 'getParameterValues' diff --git a/common.coffee b/common.coffee index c679045..4bfd3d4 100644 --- a/common.coffee +++ b/common.coffee @@ -6,6 +6,7 @@ STRING_TYPE = '[object String]' ARRAY_TYPE = '[object Array]' OBJECT_TYPE = '[object Object]' REGEXP_TYPE = '[object RegExp]' +DATE_TYPE = '[object Date]' typeOf = (obj) ->