Gracefully handle when firmware image is not found in RequestDownload.
This commit is contained in:
1 parent
8e98b0414e
commit
59193f38ee
1 file changed
+12
-11
+12
-11
@@ -347,14 +347,15 @@ listener = (httpRequest, httpResponse) ->
|
|||||||
res = tr069.response(cwmpRequest.id, cwmpResponse, cookies)
|
res = tr069.response(cwmpRequest.id, cwmpResponse, cookies)
|
||||||
writeResponse(currentRequest, res)
|
writeResponse(currentRequest, res)
|
||||||
else if cwmpRequest.methodRequest.type is 'RequestDownload'
|
else if cwmpRequest.methodRequest.type is 'RequestDownload'
|
||||||
|
requestDownloadResponse = () ->
|
||||||
|
cwmpResponse.methodResponse = {type : 'RequestDownloadResponse'}
|
||||||
|
res = tr069.response(cwmpRequest.id, cwmpResponse, cookies)
|
||||||
|
writeResponse(currentRequest, res)
|
||||||
fileType = cwmpRequest.methodRequest.fileType
|
fileType = cwmpRequest.methodRequest.fileType
|
||||||
util.log("#{currentRequest.deviceId}: RequestDownload (#{fileType})")
|
util.log("#{currentRequest.deviceId}: RequestDownload (#{fileType})")
|
||||||
if fileType isnt '1 Firmware Upgrade Image'
|
if fileType isnt '1 Firmware Upgrade Image'
|
||||||
# Only supporting firmware upgrade for now
|
# Only supporting firmware upgrade for now
|
||||||
cwmpResponse.methodResponse = {type : 'RequestDownloadResponse'}
|
return requestDownloadResponse()
|
||||||
res = tr069.response(cwmpRequest.id, cwmpResponse, cookies)
|
|
||||||
writeResponse(currentRequest, res)
|
|
||||||
return
|
|
||||||
|
|
||||||
db.getPresets((allPresets, allObjects) ->
|
db.getPresets((allPresets, allObjects) ->
|
||||||
presets.getDevicePreset(currentRequest.deviceId, allPresets, allObjects, (devicePreset) ->
|
presets.getDevicePreset(currentRequest.deviceId, allPresets, allObjects, (devicePreset) ->
|
||||||
@@ -368,8 +369,12 @@ listener = (httpRequest, httpResponse) ->
|
|||||||
db.devicesCollection.findOne({'_id' : currentRequest.deviceId}, projection, (err, device) ->
|
db.devicesCollection.findOne({'_id' : currentRequest.deviceId}, projection, (err, device) ->
|
||||||
manufacturer = device.InternetGatewayDevice.DeviceInfo.Manufacturer._value
|
manufacturer = device.InternetGatewayDevice.DeviceInfo.Manufacturer._value
|
||||||
productClass = device.InternetGatewayDevice.DeviceInfo.ProductClass._value
|
productClass = device.InternetGatewayDevice.DeviceInfo.ProductClass._value
|
||||||
db.filesCollection.findOne({'metadata.Manufacturer' : manufacturer, 'metadata.ProductClass' : productClass, 'metadata.SoftwareVersion' : presetSoftwareVersion}, {_id : 1}, (err, file) ->
|
db.filesCollection.findOne({'metadata.FileType' : '1 Firmware Upgrade Image', 'metadata.Manufacturer' : manufacturer, 'metadata.ProductClass' : productClass, 'metadata.SoftwareVersion' : presetSoftwareVersion}, {_id : 1}, (err, file) ->
|
||||||
throw err if err
|
throw err if err
|
||||||
|
if not file?
|
||||||
|
util.error("#{currentRequest.deviceId}: Firmware image not found (#{presetSoftwareVersion})")
|
||||||
|
return requestDownloadResponse()
|
||||||
|
|
||||||
task = {
|
task = {
|
||||||
device : currentRequest.deviceId,
|
device : currentRequest.deviceId,
|
||||||
name : 'download',
|
name : 'download',
|
||||||
@@ -377,16 +382,12 @@ listener = (httpRequest, httpResponse) ->
|
|||||||
}
|
}
|
||||||
apiFunctions.insertTasks(task, (err, tasks) ->
|
apiFunctions.insertTasks(task, (err, tasks) ->
|
||||||
throw err if err
|
throw err if err
|
||||||
cwmpResponse.methodResponse = {type : 'RequestDownloadResponse'}
|
return requestDownloadResponse()
|
||||||
res = tr069.response(cwmpRequest.id, cwmpResponse, cookies)
|
|
||||||
writeResponse(currentRequest, res)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
cwmpResponse.methodResponse = {type : 'RequestDownloadResponse'}
|
return requestDownloadResponse()
|
||||||
res = tr069.response(cwmpRequest.id, cwmpResponse, cookies)
|
|
||||||
writeResponse(currentRequest, res)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in new issue
Block a user