-
Notifications
You must be signed in to change notification settings - Fork 914
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to libb64 for base64 encoding/decoding. #1046
Conversation
@de-vri-es Thanks for taking the time to track this down and the study of alternatives and put together this replacement. |
I am sorry for the late response. The patch looks good to me. The new test could use the ROS code style (rather than tabs etc.) but that is not an important thing. Since the public header |
I updated the test to follow ROS style (atleast, spaces and curly braces on new lines). Let me know if I should do more on it.
Indeed, I considered the base64 encoding to be an internal detail. No need to expose it as a public header. Keeping it internal frees us from having to provide API stability. And if people want to do base64 encoding they're better off finding a dedicated library for that than piggybacking on xmlrpc. But you're right that the old header was public, so an |
Thank you for the quick update! |
* Replace base64.h with libb64. * Add unit test for base64 encoding/decoding. * Add a base64.h with #error explaining why it is removed.
libxmlrpc++
contains an unlicensed base64 implementation (see also #1034). This PR replaces it withlibb64
, a public domain base64 implementation [1]. Benchmarks also indicate that it is significantly faster than the old implementation for large input (more details at #1034).[1] http://libb64.sourceforge.net/