Sanitization for number values such as RSSI and CINR
This commit is contained in:
1 parent
52aa4696d7
commit
a4b30357e7
2 files changed
+28
-5
No files matched your search
+9
-5
@@ -7,6 +7,7 @@ tr069 = require './tr-069'
|
|||||||
tasks = require './tasks'
|
tasks = require './tasks'
|
||||||
Memcached = require 'memcached'
|
Memcached = require 'memcached'
|
||||||
memcached = new Memcached(config.MEMCACHED_SOCKET)
|
memcached = new Memcached(config.MEMCACHED_SOCKET)
|
||||||
|
sanitize = require('./sanitize').sanitize
|
||||||
|
|
||||||
|
|
||||||
# Create MongoDB connections
|
# Create MongoDB connections
|
||||||
@@ -34,10 +35,13 @@ updateDevice = (deviceId, actions, callback) ->
|
|||||||
updates = {}
|
updates = {}
|
||||||
if actions.parameterValues?
|
if actions.parameterValues?
|
||||||
for p in actions.parameterValues
|
for p in actions.parameterValues
|
||||||
if common.endsWith(p[0], '.')
|
v = sanitize(p[0], p[1])
|
||||||
updates["#{p[0]}_value"] = p[1]
|
path = if common.endsWith(p[0], '.') then p[0] else "#{p[0]}."
|
||||||
|
if v is undefined
|
||||||
|
updates["#{path}_value"] = p[1]
|
||||||
else
|
else
|
||||||
updates["#{p[0]}._value"] = p[1]
|
updates["#{path}_value"] = v
|
||||||
|
updates["#{path}_orig"] = p[1]
|
||||||
|
|
||||||
if actions.parameterNames?
|
if actions.parameterNames?
|
||||||
for p in actions.parameterNames
|
for p in actions.parameterNames
|
||||||
@@ -77,7 +81,7 @@ runTask = (sessionId, deviceId, task, reqParams, response) ->
|
|||||||
|
|
||||||
|
|
||||||
nextTask = (sessionId, deviceId, response, cookies) ->
|
nextTask = (sessionId, deviceId, response, cookies) ->
|
||||||
cur = tasksCollection.find({'device' : deviceId, 'status' : 0}).sort(['timestamp']).limit(1)
|
cur = tasksCollection.find({'device' : deviceId}).sort(['timestamp']).limit(1)
|
||||||
cur.nextObject( (err, task) ->
|
cur.nextObject( (err, task) ->
|
||||||
reqParams = {}
|
reqParams = {}
|
||||||
resParams = {}
|
resParams = {}
|
||||||
@@ -133,7 +137,7 @@ else
|
|||||||
devicesCollection.count({'_id' : deviceId}, (err, count) ->
|
devicesCollection.count({'_id' : deviceId}, (err, count) ->
|
||||||
if not count
|
if not count
|
||||||
util.log("#{deviceId}: new device detected")
|
util.log("#{deviceId}: new device detected")
|
||||||
task = {device : deviceId, name : 'init', timestamp : mongo.Timestamp(), status: 0}
|
task = {device : deviceId, name : 'init', timestamp : mongo.Timestamp()}
|
||||||
tasksCollection.save(task, (err) ->
|
tasksCollection.save(task, (err) ->
|
||||||
util.log("#{deviceId}: Added init task #{task._id}")
|
util.log("#{deviceId}: Added init task #{task._id}")
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
FLOAT_REGEX = /^([\-\+]?[0-9\.]+)/
|
||||||
|
|
||||||
|
extractFloat = (numStr) ->
|
||||||
|
res = FLOAT_REGEX.exec(numStr)
|
||||||
|
if res != null
|
||||||
|
parseFloat(res[1])
|
||||||
|
else
|
||||||
|
null
|
||||||
|
|
||||||
|
exports.sanitize = (path, value) ->
|
||||||
|
switch path
|
||||||
|
when 'InternetGatewayDevice.WiMAX.Status.RSSI'
|
||||||
|
extractFloat(value)
|
||||||
|
when 'InternetGatewayDevice.WiMAX.Status.CINR1'
|
||||||
|
extractFloat(value)
|
||||||
|
when 'InternetGatewayDevice.WiMAX.Status.CINR2'
|
||||||
|
extractFloat(value)
|
||||||
|
else
|
||||||
|
undefined
|
||||||
Reference in new issue
Block a user