-
-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
os400: additional support for options metadata #6574
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for making these updates, they look good to me and can approve as-is. The only question I would have is about freeing the pointer returned by curl_easy_option_by_name_ccsid(), presumably this is just a regular heap free().
I think it may be nicer to have a 'free' routine (curl_easy_option_free), like there is for curl_slist to ensure that the storage is freed using the correct runtime/same used in malloc. I realise this wouldn't be required on other platforms where the pointer returned by curl_easy_option_by_name() is to a static string so maybe a free routine could no-op there.
Many thanks for review.
No, this one should not be freed: The pointer returned by
Yes, it is and should be freed with the
If you pass a IMHO, the C interface is OK because we can easily include the |
Sorry, your are right, the pointer from LIBCURL *SRVPGM uses *CALLER activation group so an application should be using the same heap as the service program. I was concerned that the caller might be using a different storage model to the LIBCURL *SRVPGM (teraspace vs single level) so without performing the free() inside the library, an application could attempt to free the pointer from a different heap. Whilst I agree it is not essential, having a free routine inside the library provides symmetry.
|
You're right: this cannot be a simple alias since the effective I can then implement |
Commit 6faa8ee implements curl_memory_free(). In any case, the ILE/RPG binding will not work with a teraspace version of libcurl. I don't know how RPG evolved during the last 4 years, but at this time there was no support for teraspace pointers in it, you had to cheat with |
bb1885a
to
b0fb16a
Compare
afd6700
to
2ed25b6
Compare
@jonrumsey : I removed the |
930eebf
to
85100a3
Compare
New functions curl_easy_option_by_name_ccsid() and curl_easy_option_get_name_ccsid() allows accessing metadata in alternate character encoding. This commit also updates curl_version_info_ccsid() to handle info version 9 and adds recent definitions to the ILE/RPG include file. Documentation updated accordingly.
Thanks! |
This is a blind attempt to support recent changes on OS/400.
A review and tests from @jonrumsey would be more than valuable.