Fixed some generated SOAP messages not following the TR-069 XML schema. Fixes #3.
This commit is contained in:
1 parent
2e262c7c54
commit
4a28e61cd0
2 files changed
+20
-21
No files matched your search
+3
-3
@@ -45,8 +45,8 @@ exports.inform = (device, xmlOut, callback) ->
|
|||||||
|
|
||||||
exports.GetParameterNames = (device, xmlIn, xmlOut, callback) ->
|
exports.GetParameterNames = (device, xmlIn, xmlOut, callback) ->
|
||||||
parameterNames = Object.keys(device).sort()
|
parameterNames = Object.keys(device).sort()
|
||||||
parameterPath = xmlIn.get('/soap-env:Envelope/soap-env:Body/cwmp:GetParameterNames/cwmp:ParameterPath', NAMESPACES).text()
|
parameterPath = xmlIn.get('/soap-env:Envelope/soap-env:Body/cwmp:GetParameterNames/ParameterPath', NAMESPACES).text()
|
||||||
nextLevel = !!eval(xmlIn.get('/soap-env:Envelope/soap-env:Body/cwmp:GetParameterNames/cwmp:NextLevel', NAMESPACES).text())
|
nextLevel = !!eval(xmlIn.get('/soap-env:Envelope/soap-env:Body/cwmp:GetParameterNames/NextLevel', NAMESPACES).text())
|
||||||
|
|
||||||
parameterList = []
|
parameterList = []
|
||||||
if nextLevel
|
if nextLevel
|
||||||
@@ -72,7 +72,7 @@ exports.GetParameterNames = (device, xmlIn, xmlOut, callback) ->
|
|||||||
|
|
||||||
|
|
||||||
exports.GetParameterValues = (device, xmlIn, xmlOut, callback) ->
|
exports.GetParameterValues = (device, xmlIn, xmlOut, callback) ->
|
||||||
parameterNames = xmlIn.find('/soap-env:Envelope/soap-env:Body/cwmp:GetParameterValues/cwmp:ParameterNames/*', NAMESPACES)
|
parameterNames = xmlIn.find('/soap-env:Envelope/soap-env:Body/cwmp:GetParameterValues/ParameterNames/*', NAMESPACES)
|
||||||
|
|
||||||
parameterList = xmlOut.root().childNodes()[1].node('cwmp:GetParameterValuesResponse').node('ParameterList')
|
parameterList = xmlOut.root().childNodes()[1].node('cwmp:GetParameterValuesResponse').node('ParameterList')
|
||||||
parameterList.attr({'soap-enc:arrayType' : "cwmp:ParameterValueStruct[#{parameterNames.length}]"})
|
parameterList.attr({'soap-enc:arrayType' : "cwmp:ParameterValueStruct[#{parameterNames.length}]"})
|
||||||
|
|||||||
+17
-18
@@ -62,8 +62,8 @@ parameterValueList = (xml) ->
|
|||||||
|
|
||||||
cpeGetParameterNames = (xml, methodRequest) ->
|
cpeGetParameterNames = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:GetParameterNames')
|
el = xml.node('cwmp:GetParameterNames')
|
||||||
el.node('cwmp:ParameterPath').text(methodRequest.parameterPath)
|
el.node('ParameterPath').text(methodRequest.parameterPath)
|
||||||
el.node('cwmp:NextLevel').text(+methodRequest.nextLevel)
|
el.node('NextLevel').text(+methodRequest.nextLevel)
|
||||||
|
|
||||||
|
|
||||||
cpeGetParameterNamesResponse = (xml) ->
|
cpeGetParameterNamesResponse = (xml) ->
|
||||||
@@ -71,7 +71,8 @@ cpeGetParameterNamesResponse = (xml) ->
|
|||||||
|
|
||||||
|
|
||||||
cpeGetParameterValues = (xml, methodRequest) ->
|
cpeGetParameterValues = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:GetParameterValues').node('cwmp:ParameterNames')
|
el = xml.node('cwmp:GetParameterValues').node('ParameterNames')
|
||||||
|
el.attr({'soap-enc:arrayType' : "xsd:string[#{methodRequest.parameterNames.length}]"})
|
||||||
for p in methodRequest.parameterNames
|
for p in methodRequest.parameterNames
|
||||||
el.node('xsd:string').text(p)
|
el.node('xsd:string').text(p)
|
||||||
|
|
||||||
@@ -83,14 +84,14 @@ cpeGetParameterValuesResponse = (xml) ->
|
|||||||
cpeSetParameterValues = (xml, methodRequest) ->
|
cpeSetParameterValues = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:SetParameterValues')
|
el = xml.node('cwmp:SetParameterValues')
|
||||||
paramList = el.node('ParameterList')
|
paramList = el.node('ParameterList')
|
||||||
|
paramList.attr({'soap-enc:arrayType' : "cwmp:ParameterValueStruct[#{methodRequest.parameterList.length}]"})
|
||||||
for i in methodRequest.parameterList
|
for i in methodRequest.parameterList
|
||||||
pvs = paramList.node('ParameterValueStruct')
|
pvs = paramList.node('ParameterValueStruct')
|
||||||
pvs.node('Name').text(i[0])
|
pvs.node('Name').text(i[0])
|
||||||
v = pvs.node('Value')
|
v = pvs.node('Value')
|
||||||
v.text(i[1])
|
v.text(i[1])
|
||||||
v.attr({'xsi:type' : i[2]}) if i[2]?
|
v.attr({'xsi:type' : i[2]}) if i[2]?
|
||||||
# Huawei CPEs need this element present otherwise won't respond
|
el.node('ParameterKey').text(methodRequest.parameterKey ? '')
|
||||||
el.node('ParameterKey').text(if methodRequest.parameterKey? then methodRequest.parameterKey else '')
|
|
||||||
|
|
||||||
|
|
||||||
cpeSetParameterValuesResponse = (xml) ->
|
cpeSetParameterValuesResponse = (xml) ->
|
||||||
@@ -100,7 +101,7 @@ cpeSetParameterValuesResponse = (xml) ->
|
|||||||
cpeAddObject = (xml, methodRequest) ->
|
cpeAddObject = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:AddObject')
|
el = xml.node('cwmp:AddObject')
|
||||||
el.node('ObjectName').text(methodRequest.objectName)
|
el.node('ObjectName').text(methodRequest.objectName)
|
||||||
el.node('ParameterKey').text(if methodRequest.parameterKey? then methodRequest.parameterKey else '')
|
el.node('ParameterKey').text(methodRequest.parameterKey ? '')
|
||||||
|
|
||||||
|
|
||||||
cpeAddObjectResponse = (xml) ->
|
cpeAddObjectResponse = (xml) ->
|
||||||
@@ -113,7 +114,7 @@ cpeAddObjectResponse = (xml) ->
|
|||||||
cpeDeleteObject = (xml, methodRequest) ->
|
cpeDeleteObject = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:DeleteObject')
|
el = xml.node('cwmp:DeleteObject')
|
||||||
el.node('ObjectName').text(methodRequest.objectName)
|
el.node('ObjectName').text(methodRequest.objectName)
|
||||||
el.node('ParameterKey').text(if methodRequest.parameterKey? then methodRequest.parameterKey else '')
|
el.node('ParameterKey').text(methodRequest.parameterKey ? '')
|
||||||
|
|
||||||
|
|
||||||
cpeDeleteObjectResponse = (xml) ->
|
cpeDeleteObjectResponse = (xml) ->
|
||||||
@@ -150,8 +151,7 @@ acsInformResponse = (xml) ->
|
|||||||
|
|
||||||
cpeReboot = (xml, methodRequest) ->
|
cpeReboot = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:Reboot')
|
el = xml.node('cwmp:Reboot')
|
||||||
# Huawei CPEs need this element present otherwise won't respond
|
el.node('CommandKey').text(methodRequest.commandKey ? '')
|
||||||
el.node('CommandKey').text(if methodRequest.commandKey then methodRequest.commandKey else '')
|
|
||||||
|
|
||||||
|
|
||||||
cpeRebootResponse = (xml) ->
|
cpeRebootResponse = (xml) ->
|
||||||
@@ -160,7 +160,6 @@ cpeRebootResponse = (xml) ->
|
|||||||
|
|
||||||
cpeFactoryReset = (xml, methodRequest) ->
|
cpeFactoryReset = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:FactoryReset')
|
el = xml.node('cwmp:FactoryReset')
|
||||||
el.node('CommandKey').text(if methodRequest.commandKey then methodRequest.commandKey else '')
|
|
||||||
|
|
||||||
|
|
||||||
cpeFactoryResetResponse = (xml, methodRequest) ->
|
cpeFactoryResetResponse = (xml, methodRequest) ->
|
||||||
@@ -169,16 +168,16 @@ cpeFactoryResetResponse = (xml, methodRequest) ->
|
|||||||
|
|
||||||
cpeDownload = (xml, methodRequest) ->
|
cpeDownload = (xml, methodRequest) ->
|
||||||
el = xml.node('cwmp:Download')
|
el = xml.node('cwmp:Download')
|
||||||
el.node('CommandKey').text(methodRequest.commandKey or '')
|
el.node('CommandKey').text(methodRequest.commandKey ? '')
|
||||||
el.node('FileType').text(methodRequest.fileType)
|
el.node('FileType').text(methodRequest.fileType)
|
||||||
el.node('URL').text(methodRequest.url)
|
el.node('URL').text(methodRequest.url)
|
||||||
el.node('Username').text(methodRequest.username or '')
|
el.node('Username').text(methodRequest.username ? '')
|
||||||
el.node('Password').text(methodRequest.password or '')
|
el.node('Password').text(methodRequest.password ? '')
|
||||||
el.node('FileSize').text(methodRequest.fileSize or '0')
|
el.node('FileSize').text(methodRequest.fileSize ? '0')
|
||||||
el.node('TargetFileName').text(methodRequest.TargetFileName or '')
|
el.node('TargetFileName').text(methodRequest.TargetFileName ? '')
|
||||||
el.node('DelaySeconds').text(methodRequest.delaySeconds or '0')
|
el.node('DelaySeconds').text(methodRequest.delaySeconds ? '0')
|
||||||
el.node('SuccessURL').text(methodRequest.successUrl or '')
|
el.node('SuccessURL').text(methodRequest.successUrl ? '')
|
||||||
el.node('FailureURL').text(methodRequest.failureUrl or '')
|
el.node('FailureURL').text(methodRequest.failureUrl ? '')
|
||||||
|
|
||||||
|
|
||||||
cpeDownloadResponse = (xml) ->
|
cpeDownloadResponse = (xml) ->
|
||||||
|
|||||||
Reference in new issue
Block a user