123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- .\" **************************************************************************
- .\" * _ _ ____ _
- .\" * Project ___| | | | _ \| |
- .\" * / __| | | | |_) | |
- .\" * | (__| |_| | _ <| |___
- .\" * \___|\___/|_| \_\_____|
- .\" *
- .\" * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
- .\" *
- .\" * This software is licensed as described in the file COPYING, which
- .\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.se/docs/copyright.html.
- .\" *
- .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- .\" * copies of the Software, and permit persons to whom the Software is
- .\" * furnished to do so, under the terms of the COPYING file.
- .\" *
- .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- .\" * KIND, either express or implied.
- .\" *
- .\" **************************************************************************
- .\"
- .TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
- .SH NAME
- CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding
- .SH SYNOPSIS
- .nf
- #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);
- .SH DESCRIPTION
- Pass a pointer to your callback function, which should match the prototype
- shown above.
- Applies to non-ASCII platforms. \fIcurl_version_info(3)\fP 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 \fIptr\fP parameter.
- The amount of data to convert is indicated by the \fIlength\fP parameter. The
- converted data overlays the input data in the buffer pointed to by the ptr
- parameter. \fICURLE_OK\fP must be returned upon successful conversion. A
- CURLcode return value defined by curl.h, such as \fICURLE_CONV_FAILED\fP,
- should be returned if an error was encountered.
- \fBCURLOPT_CONV_FROM_NETWORK_FUNCTION\fP 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.
- .SH DEFAULT
- NULL
- .SH PROTOCOLS
- FTP, SMTP, IMAP, POP3
- .SH EXAMPLE
- .nf
- 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);
- .fi
- .SH AVAILABILITY
- Not available since 7.82.0
- Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was
- built.
- .SH RETURN VALUE
- Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
- .SH "SEE ALSO"
- .BR CURLOPT_CONV_TO_NETWORK_FUNCTION "(3), " CURLOPT_CONV_FROM_UTF8_FUNCTION "(3), "
|