Git Product home page Git Product logo

Comments (11)

blaenk avatar blaenk commented on August 11, 2024

I think this is because the error only returns when there is an XML-RPC based error, a fault. There needs to be a way to see if the response is an XML-RPC response and if not, fire the error.

from node-xmlrpc.

ProjectMoon avatar ProjectMoon commented on August 11, 2024

You can probably run the response through an XML validator. Does the XML parsing library not throw errors (events or otherwise) when parsing invalid XML?

from node-xmlrpc.

baalexander avatar baalexander commented on August 11, 2024

Sorry @ProjectMoon, I missed your comment. I'll investigate this issue later this week and see how the parser is handling invalid XML.

from node-xmlrpc.

blaenk avatar blaenk commented on August 11, 2024

@ProjectMoon: I think the sample response you provided is valid XML.

I guess something we can do is verify that the root node is methodResponse? That would properly fail on the sample response above.

from node-xmlrpc.

baalexander avatar baalexander commented on August 11, 2024

Yeah, the XML validated, I was thrown off from the html tag.

@blaenk - I'm currently thinking some sort of logic around the end of document check. Like if it reaches the end of document and did not receive a methodResponse (or methodCall) then return a fault about invalid method response.

I don't have an idea for a clean way of implementing that just yet.

from node-xmlrpc.

ProjectMoon avatar ProjectMoon commented on August 11, 2024

It's valid XML, but I'm pretty sure it's not valid XMLRPC.

from node-xmlrpc.

blaenk avatar blaenk commented on August 11, 2024

@ProjectMoon: Correct on both accounts.

@baalexander: Maybe I just haven't worked with the source for a while, but would there be any difference from checking the first node (root node) to see if it's methodResponse or methodCall, that way you can 'fail early' so to speak, without having to try and shoe-horn the parsing process through the invalid response? That's what would happen on proper XML responses at least. All other cases I think might be handled by node-xml's onError callback, at least, that is my impression from these lines in the source. I take it those handle errors for cases ranging from outright non-XML responses to invalid XML.

from node-xmlrpc.

ProjectMoon avatar ProjectMoon commented on August 11, 2024

Maybe a schema is a good idea. Apparently, there's no official schema, but this should do.

from node-xmlrpc.

mardiros avatar mardiros commented on August 11, 2024

The library does not send an error if it's not good xml too...
No callback, errors passed silently...

from node-xmlrpc.

baalexander avatar baalexander commented on August 11, 2024

I'll add @ProjectMoon's code as a test case. @mardiros - If you have an example of invalid XML, I'll be happy to add that too to the test cases. I'll write up a couple too, but having real world examples is always nice.

@blaenk - I think onError will definitely be useful. As for the methodCall/methodResponse check, fail early sounds good. I just wanted avoid any seeking ahead in the SAX parser.

I'll try to get a patch for this out by Wednesday.

from node-xmlrpc.

baalexander avatar baalexander commented on August 11, 2024

Fixed in v0.9.1.

from node-xmlrpc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.