Hello!

Our Drupal website currently runs core 6.31. I have a test instance that I had upgraded to 6.35, but the upgrade broke our ability to call xmlrpc services on another server.

After some searching I happened upon the release notes for Drupal core 6.33. From the article

As of this release, the XML-RPC system in Drupal core will ignore information in <?xml> declarations contained within XML-RPC messages (for example, XML version or character encoding information). This is not expected to matter for the vast majority of use cases.

I found that if I took the xmlrpc.inc from core 6.32 and copied it into the includes directory of my site installation my issue is resolved.

Has anyone encountered this issue? If so, were you able to find a work around? Is using the older version of xmlrpc.inc a community acceptable solution or should I be digging deeper?

Thanks!

Comments

Stefan Lehmann’s picture

I don't have an answer to your problem and I actually believe only you can answer it anyway - but I have an opinion. :-)

I'd say, it's a bit of a grey area. Drupal 6 is nearing the end of its life cycle anyway. So potentially having a custom core file, which you might have to remember on only the next x updates might not be the end of the world.

But having said that, it just adds cost. You will have to remember that change, and go some extra way on every update. So it might also well be worth to have a clean system and go the extra mile and find out why it's failing and if there is any way around. Maybe by altering the webservice if possible?

Just my 2 cents.

I like cookies!

phanophite’s picture

I just wanted to mention I ended up leaving core intact for this issue.

I worked around this issue by downloading this xmlrpc library from github. I installed this at sites/all/libraries on my server. I used version 3.0.1 but since then 4.0.0 has been released.

I then wrote a wrapper function that functions similar to the _xmlrpc function, and finally changed my code to use my wrapper function instead of core's xmlrpc function.