DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_CONV_FROM_NETWORK_FUNCTION(3)





CURLOPT_CONV_FROM_NETWORK_FUNCTION(3curl_easy_setopt optionCURLOPT_CONV_FROM_NETWORK_FUNCTION(3)



NAME

     CURLOPT_CONV_FROM_NETWORK_FUNCTION - convert data from  net-
     work 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 prototype 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  parameter.   The amount of data to convert is indicated
     by the length parameter.  The converted  data  overlays  the
     input  data  in  the buffer pointed to by the ptr parameter.
     CURLE_OK must be returned  upon  successful  conversion.   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 don't  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

libcurl 7.58.0      Last change: May 31, 2017                   1


CURLOPT_CONV_FROM_NETWORK_FUNCTION(3curl_easy_setopt optionCURLOPT_CONV_FROM_NETWORK_FUNCTION(3)


     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

     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.


SEE ALSO

     CURLOPT_CONV_TO_NETWORK_FUNCTION(3),
     CURLOPT_CONV_FROM_UTF8_FUNCTION(3),

libcurl 7.58.0      Last change: May 31, 2017                   2


Man(1) output converted with man2html