Handle invalid xml chars gracefully

This commit is contained in:
Zaid Abdulla committed 2012-12-20 15:34:24 +03:00
1 parent 0ac2bdf656
commit 95ee9ffd0e
2 files changed
+15 -14

No files matched your search

+11 -12
View File
@@ -117,16 +117,19 @@ setParameterValuesResponse = (xml) ->
return undefined
exports.request = (headers, data) ->
#console.log '<<< REQUEST'
#console.dir [headers, data]
#console.log data
exports.request = (request) ->
req = {cookies: {}}
req.cookies = cookiesToObj(headers.cookie) if headers.cookie
req.cookies = cookiesToObj(request.headers.cookie) if request.headers.cookie
data = request.getBody()
if +request.headers['Content-Length'] > 0 || data.length > 0
try
xml = libxmljs.parseXml data
catch err
# some devices send invalid utf8 characters
xml = libxmljs.parseXml request.getBody('binary')
if +headers['Content-Length'] > 0 || data.length > 0
xml = libxmljs.parseXml data
req.sessionId = sessionId xml
req.inform = true if xml.get('//soap-env:Envelope/soap-env:Body/cwmp:Inform', NAMESPACES)
req.informParameterValues = informParameterValues xml
@@ -195,8 +198,4 @@ exports.response = (sessionId, params, cookies = null) ->
data = xml.toString()
headers['Content-Length'] = data.length
#console.log '>>> RESPONSE'
#console.dir headers
#console.log data
return {code: 200, headers: headers, data: data}