Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

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

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 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  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.


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
       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source   was    downloaded    from     https://github.com/curl/curl/ar-
       chive/curl-7_64_0.zip

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.37.0                    19 Jun 2014
                                         CURLOPT_CONV_FROM_NETWORK_FUNCTION(3)