Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_CONV_TO_NETWORK_FUNCTION (3)

Name

CURLOPT_CONV_TO_NETWORK_FUNCTION - convert data to network from host encoding

Synopsis

#include <curl/curl.h>

CURLcode conv_callback(char *ptr, size_t length);

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_TO_NETWORK_FUNCTION,
conv_callback);

Description

curl_easy_setopt options                   CURLOPT_CONV_TO_NETWORK_FUNCTION(3)



NAME
       CURLOPT_CONV_TO_NETWORK_FUNCTION  -  convert  data to network from host
       encoding

SYNOPSIS
       #include <curl/curl.h>

       CURLcode conv_callback(char *ptr, size_t length);

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_TO_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_TO_NETWORK_FUNCTION  converts  from  host  encoding to the
       network encoding.  It is used when commands or ASCII data are sent 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_ebcdic_to_ascii(char *buffer, size_t length)
       {
         char *tempptrin, *tempptrout;
         size_t bytes = length;
         int rc;
         tempptrin = tempptrout = buffer;
         rc = platform_e2a(&tempptrin, &bytes, &tempptrout, &bytes);
         if(rc == PLATFORM_CONV_OK) {
           return CURLE_OK;
         }
         else {
           return CURLE_CONV_FAILED;
         }
       }

       curl_easy_setopt(curl, CURLOPT_CONV_TO_NETWORK_FUNCTION,
                        my_conv_from_ebcdic_to_ascii);

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_FROM_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_TO_NETWORK_FUNCTION(3)