os400: additional support for options metadata#6574
os400: additional support for options metadata#6574monnerat wants to merge 1 commit intocurl:masterfrom
Conversation
jonrumsey
left a comment
There was a problem hiding this comment.
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.