CURLOPT_CONV_FROM_NETWORK_FUNCTION - convert data from network to host encoding
#include <curl/curl.h> CURLcode conv_callback(char *ptr, size_t length); CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_NETWORK_FUNCTION, conv_callback);
curl_easy_setopt options CURLOPT_CONV_FROM_NETWORK_FUNCTION(3)
NAME
CURLOPT_CONV_FROM_NETWORK_FUNCTION - convert data from network to host
encoding
SYNOPSIS
#include <curl/curl.h>
CURLcode conv_callback(char *ptr, size_t length);
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_NETWORK_FUNCTION,
conv_callback);
DESCRIPTION
Pass a pointer to your callback function, which should match the proto-
type shown above.
Applies to non-ASCII platforms. curl_version_info(3) will return the
CURL_VERSION_CONV feature bit set if this option is provided.
The data to be converted is in a buffer pointed to by the ptr parame-
ter. The amount of data to convert is indicated by the length parame-
ter. The converted data overlays the input data in the buffer pointed
to by the ptr parameter. CURLE_OK must be returned upon successful con-
version. A CURLcode return value defined by curl.h, such as
CURLE_CONV_FAILED, should be returned if an error was encountered.
CURLOPT_CONV_FROM_NETWORK_FUNCTION converts to host encoding from the
network encoding. It is used when commands or ASCII data are received
over the network.
If you set a callback pointer to NULL, or do not set it at all, the
built-in libcurl iconv functions will be used. If HAVE_ICONV was not
defined when libcurl was built, and no callback has been established,
conversion will return the CURLE_CONV_REQD error code.
If HAVE_ICONV is defined, CURL_ICONV_CODESET_OF_HOST must also be
defined. For example:
#define CURL_ICONV_CODESET_OF_HOST "IBM-1047"
The iconv code in libcurl will default the network and UTF8 codeset
names as follows:
#define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1"
#define CURL_ICONV_CODESET_FOR_UTF8 "UTF-8"
You will need to override these definitions if they are different on
your system.
DEFAULT
NULL
PROTOCOLS
FTP, SMTP, IMAP, POP3
EXAMPLE
static CURLcode my_conv_from_ascii_to_ebcdic(char *buffer, size_t length)
{
char *tempptrin, *tempptrout;
size_t bytes = length;
int rc;
tempptrin = tempptrout = buffer;
rc = platform_a2e(&tempptrin, &bytes, &tempptrout, &bytes);
if(rc == PLATFORM_CONV_OK) {
return CURLE_OK;
}
else {
return CURLE_CONV_FAILED;
}
}
/* use platform-specific functions for codeset conversions */
curl_easy_setopt(curl, CURLOPT_CONV_FROM_NETWORK_FUNCTION,
my_conv_from_ascii_to_ebcdic);
AVAILABILITY
Not available since 7.82.0
Available only if CURL_DOES_CONVERSIONS was defined when libcurl was
built.
RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION
if not.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | web/curl |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
CURLOPT_CONV_TO_NETWORK_FUNCTION(3), CURLOPT_CONV_FROM_UTF8_FUNC-
TION(3),
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://curl.se/down-
load/curl-7.83.1.tar.bz2.
Further information about this software can be found on the open source
community website at http://curl.haxx.se/.
libcurl 7.83.1 February 03, 2022
CURLOPT_CONV_FROM_NETWORK_FUNCTION(3)