lib: feature deprecation warnings in gcc >= 4.3
—
$ git checkout -f 6967571bf20624bc4cfa68fb8f90cbc53a87c6f2
Previous HEAD position was a8e6351e12 proxy: refactor haproxy protocol handling as connection filter
HEAD is now at 6967571bf2 lib: feature deprecation warnings in gcc >= 4.3
$ git clean -fdx
Removing Makefile
Removing Makefile.in
Removing aclocal.m4
Removing autom4te.cache/
Removing compile
Removing config.guess
Removing config.log
Removing config.status
Removing config.sub
Removing configure
Removing curl-config
Removing depcomp
Removing docs/Makefile
Removing docs/Makefile.in
Removing docs/cmdline-opts/Makefile
Removing docs/cmdline-opts/Makefile.in
Removing docs/curl.1
Removing docs/examples/.deps/
Removing docs/examples/Makefile
Removing docs/examples/Makefile.in
Removing docs/libcurl/Makefile
Removing docs/libcurl/Makefile.in
Removing docs/libcurl/opts/Makefile
Removing docs/libcurl/opts/Makefile.in
Removing include/Makefile
Removing include/Makefile.in
Removing include/curl/Makefile
Removing include/curl/Makefile.in
Removing install-sh
Removing lib/.deps/
Removing lib/.dirstamp
Removing lib/.libs/
Removing lib/Makefile
Removing lib/Makefile.in
Removing lib/curl_config.h
Removing lib/curl_config.h.in
Removing lib/curl_multibyte.o
Removing lib/dynbuf.o
Removing lib/libcurl.la
Removing lib/libcurl.plist
Removing lib/libcurl.vers
Removing lib/libcurl_la-altsvc.lo
Removing lib/libcurl_la-altsvc.o
Removing lib/libcurl_la-amigaos.lo
Removing lib/libcurl_la-amigaos.o
Removing lib/libcurl_la-asyn-ares.lo
Removing lib/libcurl_la-asyn-ares.o
Removing lib/libcurl_la-asyn-thread.lo
Removing lib/libcurl_la-asyn-thread.o
Removing lib/libcurl_la-base64.lo
Removing lib/libcurl_la-base64.o
Removing lib/libcurl_la-bufref.lo
Removing lib/libcurl_la-bufref.o
Removing lib/libcurl_la-c-hyper.lo
Removing lib/libcurl_la-c-hyper.o
Removing lib/libcurl_la-cfilters.lo
Removing lib/libcurl_la-cfilters.o
Removing lib/libcurl_la-conncache.lo
Removing lib/libcurl_la-conncache.o
Removing lib/libcurl_la-connect.lo
Removing lib/libcurl_la-connect.o
Removing lib/libcurl_la-content_encoding.lo
Removing lib/libcurl_la-content_encoding.o
Removing lib/libcurl_la-cookie.lo
Removing lib/libcurl_la-cookie.o
Removing lib/libcurl_la-curl_addrinfo.lo
Removing lib/libcurl_la-curl_addrinfo.o
Removing lib/libcurl_la-curl_des.lo
Removing lib/libcurl_la-curl_des.o
Removing lib/libcurl_la-curl_endian.lo
Removing lib/libcurl_la-curl_endian.o
Removing lib/libcurl_la-curl_fnmatch.lo
Removing lib/libcurl_la-curl_fnmatch.o
Removing lib/libcurl_la-curl_get_line.lo
Removing lib/libcurl_la-curl_get_line.o
Removing lib/libcurl_la-curl_gethostname.lo
Removing lib/libcurl_la-curl_gethostname.o
Removing lib/libcurl_la-curl_gssapi.lo
Removing lib/libcurl_la-curl_gssapi.o
Removing lib/libcurl_la-curl_memrchr.lo
Removing lib/libcurl_la-curl_memrchr.o
Removing lib/libcurl_la-curl_multibyte.lo
Removing lib/libcurl_la-curl_multibyte.o
Removing lib/libcurl_la-curl_ntlm_core.lo
Removing lib/libcurl_la-curl_ntlm_core.o
Removing lib/libcurl_la-curl_ntlm_wb.lo
Removing lib/libcurl_la-curl_ntlm_wb.o
Removing lib/libcurl_la-curl_path.lo
Removing lib/libcurl_la-curl_path.o
Removing lib/libcurl_la-curl_range.lo
Removing lib/libcurl_la-curl_range.o
Removing lib/libcurl_la-curl_rtmp.lo
Removing lib/libcurl_la-curl_rtmp.o
Removing lib/libcurl_la-curl_sasl.lo
Removing lib/libcurl_la-curl_sasl.o
Removing lib/libcurl_la-curl_sspi.lo
Removing lib/libcurl_la-curl_sspi.o
Removing lib/libcurl_la-curl_threads.lo
Removing lib/libcurl_la-curl_threads.o
Removing lib/libcurl_la-dict.lo
Removing lib/libcurl_la-dict.o
Removing lib/libcurl_la-doh.lo
Removing lib/libcurl_la-doh.o
Removing lib/libcurl_la-dynbuf.lo
Removing lib/libcurl_la-dynbuf.o
Removing lib/libcurl_la-easy.lo
Removing lib/libcurl_la-easy.o
Removing lib/libcurl_la-easygetopt.lo
Removing lib/libcurl_la-easygetopt.o
Removing lib/libcurl_la-easyoptions.lo
Removing lib/libcurl_la-easyoptions.o
Removing lib/libcurl_la-escape.lo
Removing lib/libcurl_la-escape.o
Removing lib/libcurl_la-file.lo
Removing lib/libcurl_la-file.o
Removing lib/libcurl_la-fileinfo.lo
Removing lib/libcurl_la-fileinfo.o
Removing lib/libcurl_la-fopen.lo
Removing lib/libcurl_la-fopen.o
Removing lib/libcurl_la-formdata.lo
Removing lib/libcurl_la-formdata.o
Removing lib/libcurl_la-ftp.lo
Removing lib/libcurl_la-ftp.o
Removing lib/libcurl_la-ftplistparser.lo
Removing lib/libcurl_la-ftplistparser.o
Removing lib/libcurl_la-getenv.lo
Removing lib/libcurl_la-getenv.o
Removing lib/libcurl_la-getinfo.lo
Removing lib/libcurl_la-getinfo.o
Removing lib/libcurl_la-gopher.lo
Removing lib/libcurl_la-gopher.o
Removing lib/libcurl_la-h2h3.lo
Removing lib/libcurl_la-h2h3.o
Removing lib/libcurl_la-hash.lo
Removing lib/libcurl_la-hash.o
Removing lib/libcurl_la-headers.lo
Removing lib/libcurl_la-headers.o
Removing lib/libcurl_la-hmac.lo
Removing lib/libcurl_la-hmac.o
Removing lib/libcurl_la-hostasyn.lo
Removing lib/libcurl_la-hostasyn.o
Removing lib/libcurl_la-hostip.lo
Removing lib/libcurl_la-hostip.o
Removing lib/libcurl_la-hostip4.lo
Removing lib/libcurl_la-hostip4.o
Removing lib/libcurl_la-hostip6.lo
Removing lib/libcurl_la-hostip6.o
Removing lib/libcurl_la-hostsyn.lo
Removing lib/libcurl_la-hostsyn.o
Removing lib/libcurl_la-hsts.lo
Removing lib/libcurl_la-hsts.o
Removing lib/libcurl_la-http.lo
Removing lib/libcurl_la-http.o
Removing lib/libcurl_la-http2.lo
Removing lib/libcurl_la-http2.o
Removing lib/libcurl_la-http_aws_sigv4.lo
Removing lib/libcurl_la-http_aws_sigv4.o
Removing lib/libcurl_la-http_chunks.lo
Removing lib/libcurl_la-http_chunks.o
Removing lib/libcurl_la-http_digest.lo
Removing lib/libcurl_la-http_digest.o
Removing lib/libcurl_la-http_negotiate.lo
Removing lib/libcurl_la-http_negotiate.o
Removing lib/libcurl_la-http_ntlm.lo
Removing lib/libcurl_la-http_ntlm.o
Removing lib/libcurl_la-http_proxy.lo
Removing lib/libcurl_la-http_proxy.o
Removing lib/libcurl_la-idn_win32.lo
Removing lib/libcurl_la-idn_win32.o
Removing lib/libcurl_la-if2ip.lo
Removing lib/libcurl_la-if2ip.o
Removing lib/libcurl_la-imap.lo
Removing lib/libcurl_la-imap.o
Removing lib/libcurl_la-inet_ntop.lo
Removing lib/libcurl_la-inet_ntop.o
Removing lib/libcurl_la-inet_pton.lo
Removing lib/libcurl_la-inet_pton.o
Removing lib/libcurl_la-krb5.lo
Removing lib/libcurl_la-krb5.o
Removing lib/libcurl_la-ldap.lo
Removing lib/libcurl_la-ldap.o
Removing lib/libcurl_la-llist.lo
Removing lib/libcurl_la-llist.o
Removing lib/libcurl_la-md4.lo
Removing lib/libcurl_la-md4.o
Removing lib/libcurl_la-md5.lo
Removing lib/libcurl_la-md5.o
Removing lib/libcurl_la-memdebug.lo
Removing lib/libcurl_la-memdebug.o
Removing lib/libcurl_la-mime.lo
Removing lib/libcurl_la-mime.o
Removing lib/libcurl_la-mprintf.lo
Removing lib/libcurl_la-mprintf.o
Removing lib/libcurl_la-mqtt.lo
Removing lib/libcurl_la-mqtt.o
Removing lib/libcurl_la-multi.lo
Removing lib/libcurl_la-multi.o
Removing lib/libcurl_la-netrc.lo
Removing lib/libcurl_la-netrc.o
Removing lib/libcurl_la-nonblock.lo
Removing lib/libcurl_la-nonblock.o
Removing lib/libcurl_la-noproxy.lo
Removing lib/libcurl_la-noproxy.o
Removing lib/libcurl_la-openldap.lo
Removing lib/libcurl_la-openldap.o
Removing lib/libcurl_la-parsedate.lo
Removing lib/libcurl_la-parsedate.o
Removing lib/libcurl_la-pingpong.lo
Removing lib/libcurl_la-pingpong.o
Removing lib/libcurl_la-pop3.lo
Removing lib/libcurl_la-pop3.o
Removing lib/libcurl_la-progress.lo
Removing lib/libcurl_la-progress.o
Removing lib/libcurl_la-psl.lo
Removing lib/libcurl_la-psl.o
Removing lib/libcurl_la-rand.lo
Removing lib/libcurl_la-rand.o
Removing lib/libcurl_la-rename.lo
Removing lib/libcurl_la-rename.o
Removing lib/libcurl_la-rtsp.lo
Removing lib/libcurl_la-rtsp.o
Removing lib/libcurl_la-select.lo
Removing lib/libcurl_la-select.o
Removing lib/libcurl_la-sendf.lo
Removing lib/libcurl_la-sendf.o
Removing lib/libcurl_la-setopt.lo
Removing lib/libcurl_la-setopt.o
Removing lib/libcurl_la-sha256.lo
Removing lib/libcurl_la-sha256.o
Removing lib/libcurl_la-share.lo
Removing lib/libcurl_la-share.o
Removing lib/libcurl_la-slist.lo
Removing lib/libcurl_la-slist.o
Removing lib/libcurl_la-smb.lo
Removing lib/libcurl_la-smb.o
Removing lib/libcurl_la-smtp.lo
Removing lib/libcurl_la-smtp.o
Removing lib/libcurl_la-socketpair.lo
Removing lib/libcurl_la-socketpair.o
Removing lib/libcurl_la-socks.lo
Removing lib/libcurl_la-socks.o
Removing lib/libcurl_la-socks_gssapi.lo
Removing lib/libcurl_la-socks_gssapi.o
Removing lib/libcurl_la-socks_sspi.lo
Removing lib/libcurl_la-socks_sspi.o
Removing lib/libcurl_la-speedcheck.lo
Removing lib/libcurl_la-speedcheck.o
Removing lib/libcurl_la-splay.lo
Removing lib/libcurl_la-splay.o
Removing lib/libcurl_la-strcase.lo
Removing lib/libcurl_la-strcase.o
Removing lib/libcurl_la-strdup.lo
Removing lib/libcurl_la-strdup.o
Removing lib/libcurl_la-strerror.lo
Removing lib/libcurl_la-strerror.o
Removing lib/libcurl_la-strtok.lo
Removing lib/libcurl_la-strtok.o
Removing lib/libcurl_la-strtoofft.lo
Removing lib/libcurl_la-strtoofft.o
Removing lib/libcurl_la-system_win32.lo
Removing lib/libcurl_la-system_win32.o
Removing lib/libcurl_la-telnet.lo
Removing lib/libcurl_la-telnet.o
Removing lib/libcurl_la-tftp.lo
Removing lib/libcurl_la-tftp.o
Removing lib/libcurl_la-timediff.lo
Removing lib/libcurl_la-timediff.o
Removing lib/libcurl_la-timeval.lo
Removing lib/libcurl_la-timeval.o
Removing lib/libcurl_la-transfer.lo
Removing lib/libcurl_la-transfer.o
Removing lib/libcurl_la-url.lo
Removing lib/libcurl_la-url.o
Removing lib/libcurl_la-urlapi.lo
Removing lib/libcurl_la-urlapi.o
Removing lib/libcurl_la-version.lo
Removing lib/libcurl_la-version.o
Removing lib/libcurl_la-version_win32.lo
Removing lib/libcurl_la-version_win32.o
Removing lib/libcurl_la-warnless.lo
Removing lib/libcurl_la-warnless.o
Removing lib/libcurl_la-wildcard.lo
Removing lib/libcurl_la-wildcard.o
Removing lib/libcurl_la-ws.lo
Removing lib/libcurl_la-ws.o
Removing lib/nonblock.o
Removing lib/stamp-h1
Removing lib/strtoofft.o
Removing lib/timediff.o
Removing lib/vauth/.deps/
Removing lib/vauth/.dirstamp
Removing lib/vauth/libcurl_la-cleartext.lo
Removing lib/vauth/libcurl_la-cleartext.o
Removing lib/vauth/libcurl_la-cram.lo
Removing lib/vauth/libcurl_la-cram.o
Removing lib/vauth/libcurl_la-digest.lo
Removing lib/vauth/libcurl_la-digest.o
Removing lib/vauth/libcurl_la-digest_sspi.lo
Removing lib/vauth/libcurl_la-digest_sspi.o
Removing lib/vauth/libcurl_la-gsasl.lo
Removing lib/vauth/libcurl_la-gsasl.o
Removing lib/vauth/libcurl_la-krb5_gssapi.lo
Removing lib/vauth/libcurl_la-krb5_gssapi.o
Removing lib/vauth/libcurl_la-krb5_sspi.lo
Removing lib/vauth/libcurl_la-krb5_sspi.o
Removing lib/vauth/libcurl_la-ntlm.lo
Removing lib/vauth/libcurl_la-ntlm.o
Removing lib/vauth/libcurl_la-ntlm_sspi.lo
Removing lib/vauth/libcurl_la-ntlm_sspi.o
Removing lib/vauth/libcurl_la-oauth2.lo
Removing lib/vauth/libcurl_la-oauth2.o
Removing lib/vauth/libcurl_la-spnego_gssapi.lo
Removing lib/vauth/libcurl_la-spnego_gssapi.o
Removing lib/vauth/libcurl_la-spnego_sspi.lo
Removing lib/vauth/libcurl_la-spnego_sspi.o
Removing lib/vauth/libcurl_la-vauth.lo
Removing lib/vauth/libcurl_la-vauth.o
Removing lib/version_win32.o
Removing lib/vquic/.deps/
Removing lib/vquic/.dirstamp
Removing lib/vquic/libcurl_la-msh3.lo
Removing lib/vquic/libcurl_la-msh3.o
Removing lib/vquic/libcurl_la-ngtcp2.lo
Removing lib/vquic/libcurl_la-ngtcp2.o
Removing lib/vquic/libcurl_la-quiche.lo
Removing lib/vquic/libcurl_la-quiche.o
Removing lib/vquic/libcurl_la-vquic.lo
Removing lib/vquic/libcurl_la-vquic.o
Removing lib/vssh/.deps/
Removing lib/vssh/.dirstamp
Removing lib/vssh/libcurl_la-libssh.lo
Removing lib/vssh/libcurl_la-libssh.o
Removing lib/vssh/libcurl_la-libssh2.lo
Removing lib/vssh/libcurl_la-libssh2.o
Removing lib/vssh/libcurl_la-wolfssh.lo
Removing lib/vssh/libcurl_la-wolfssh.o
Removing lib/vtls/.deps/
Removing lib/vtls/.dirstamp
Removing lib/vtls/libcurl_la-bearssl.lo
Removing lib/vtls/libcurl_la-bearssl.o
Removing lib/vtls/libcurl_la-gskit.lo
Removing lib/vtls/libcurl_la-gskit.o
Removing lib/vtls/libcurl_la-gtls.lo
Removing lib/vtls/libcurl_la-gtls.o
Removing lib/vtls/libcurl_la-hostcheck.lo
Removing lib/vtls/libcurl_la-hostcheck.o
Removing lib/vtls/libcurl_la-keylog.lo
Removing lib/vtls/libcurl_la-keylog.o
Removing lib/vtls/libcurl_la-mbedtls.lo
Removing lib/vtls/libcurl_la-mbedtls.o
Removing lib/vtls/libcurl_la-mbedtls_threadlock.lo
Removing lib/vtls/libcurl_la-mbedtls_threadlock.o
Removing lib/vtls/libcurl_la-nss.lo
Removing lib/vtls/libcurl_la-nss.o
Removing lib/vtls/libcurl_la-openssl.lo
Removing lib/vtls/libcurl_la-openssl.o
Removing lib/vtls/libcurl_la-rustls.lo
Removing lib/vtls/libcurl_la-rustls.o
Removing lib/vtls/libcurl_la-schannel.lo
Removing lib/vtls/libcurl_la-schannel.o
Removing lib/vtls/libcurl_la-schannel_verify.lo
Removing lib/vtls/libcurl_la-schannel_verify.o
Removing lib/vtls/libcurl_la-sectransp.lo
Removing lib/vtls/libcurl_la-sectransp.o
Removing lib/vtls/libcurl_la-vtls.lo
Removing lib/vtls/libcurl_la-vtls.o
Removing lib/vtls/libcurl_la-wolfssl.lo
Removing lib/vtls/libcurl_la-wolfssl.o
Removing lib/vtls/libcurl_la-x509asn1.lo
Removing lib/vtls/libcurl_la-x509asn1.o
Removing lib/warnless.o
Removing libcurl.pc
Removing libtool
Removing ltmain.sh
Removing m4/libtool.m4
Removing m4/ltoptions.m4
Removing m4/ltsugar.m4
Removing m4/ltversion.m4
Removing m4/lt~obsolete.m4
Removing missing
Removing packages/Makefile
Removing packages/Makefile.in
Removing packages/vms/Makefile
Removing packages/vms/Makefile.in
Removing scripts/Makefile
Removing scripts/Makefile.in
Removing src/.deps/
Removing src/.libs/
Removing src/Makefile
Removing src/Makefile.in
Removing src/curl
Removing src/slist_wc.o
Removing src/tool_binmode.o
Removing src/tool_bname.o
Removing src/tool_cb_dbg.o
Removing src/tool_cb_hdr.o
Removing src/tool_cb_prg.o
Removing src/tool_cb_rea.o
Removing src/tool_cb_see.o
Removing src/tool_cb_wrt.o
Removing src/tool_cfgable.o
Removing src/tool_dirhie.o
Removing src/tool_doswin.o
Removing src/tool_easysrc.o
Removing src/tool_filetime.o
Removing src/tool_findfile.o
Removing src/tool_formparse.o
Removing src/tool_getparam.o
Removing src/tool_getpass.o
Removing src/tool_help.o
Removing src/tool_helpers.o
Removing src/tool_hugehelp.c
Removing src/tool_hugehelp.o
Removing src/tool_libinfo.o
Removing src/tool_listhelp.o
Removing src/tool_main.o
Removing src/tool_msgs.o
Removing src/tool_operate.o
Removing src/tool_operhlp.o
Removing src/tool_panykey.o
Removing src/tool_paramhlp.o
Removing src/tool_parsecfg.o
Removing src/tool_progress.o
Removing src/tool_setopt.o
Removing src/tool_sleep.o
Removing src/tool_strdup.o
Removing src/tool_urlglob.o
Removing src/tool_util.o
Removing src/tool_vms.o
Removing src/tool_writeout.o
Removing src/tool_writeout_json.o
Removing src/tool_xattr.o
Removing test-driver
Removing tests/Makefile
Removing tests/Makefile.in
Removing tests/certs/Makefile
Removing tests/certs/Makefile.in
Removing tests/certs/scripts/Makefile
Removing tests/certs/scripts/Makefile.in
Removing tests/configurehelp.pm
Removing tests/data/Makefile
Removing tests/data/Makefile.in
Removing tests/libtest/.deps/
Removing tests/libtest/Makefile
Removing tests/libtest/Makefile.in
Removing tests/server/.deps/
Removing tests/server/Makefile
Removing tests/server/Makefile.in
Removing tests/unit/.deps/
Removing tests/unit/Makefile
Removing tests/unit/Makefile.in
$ autoreconf -fi
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Remember to add 'LT_INIT' to configure.ac.
configure.ac:123: installing './compile'
configure.ac:333: installing './config.guess'
configure.ac:333: installing './config.sub'
configure.ac:123: installing './install-sh'
configure.ac:129: installing './missing'
docs/examples/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
$ bash -c find . -name config.guess -exec cp /usr/share/misc/config.guess {} \;
$ bash -c find . -name config.sub -exec cp /usr/share/misc/config.sub {} \;
$ chmod +x configure
$ ./configure --disable-shared --without-ssl --disable-docs
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... yes
checking whether to enable debug build options... no
checking whether to enable compiler optimizer... (assumed) yes
checking whether to enable strict compiler warnings... no
checking whether to enable compiler warnings as errors... no
checking whether to enable curl debug memory tracking... no
checking whether to enable hiding of library internal symbols... yes
checking whether to enable c-ares for DNS lookups... no
checking whether to disable dependency on -lrt... (assumed no)
checking whether to enable ECH support... no
checking for path separator... :
checking for sed... /usr/bin/sed
checking for grep... /usr/bin/grep
checking that grep -E works... yes
checking for ar... /usr/bin/ar
checking for a BSD-compatible install... /usr/bin/install -c
checking for gcc... ccache gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether ccache gcc accepts -g... yes
checking for ccache gcc option to enable C11 features... none needed
checking whether ccache gcc understands -c and -o together... yes
checking how to run the C preprocessor... ccache gcc -E
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for stdatomic.h... yes
checking if _Atomic is available... yes
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for code coverage support... no
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of ccache gcc... gcc3
checking curl version... 7.87.0-DEV
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking if OS is AIX (to define _ALL_SOURCE)... no
checking if _THREAD_SAFE is already defined... no
checking if _THREAD_SAFE is actually needed... no
checking if _THREAD_SAFE is onwards defined... no
checking if _REENTRANT is already defined... no
checking if _REENTRANT is actually needed... no
checking if _REENTRANT is onwards defined... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by ccache gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from ccache gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if ccache gcc supports -fno-rtti -fno-exceptions... no
checking for ccache gcc option to produce PIC... -fPIC -DPIC
checking if ccache gcc PIC flag -fPIC -DPIC works... yes
checking if ccache gcc static flag -static works... yes
checking if ccache gcc supports -c -o file.o... yes
checking if ccache gcc supports -c -o file.o... (cached) yes
checking whether the ccache gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking whether to build shared libraries with -version-info... yes
checking whether to build shared libraries with -no-undefined... no
checking whether to build shared libraries with -mimpure-text... no
checking whether to build shared libraries with PIC... yes
checking whether to build static libraries with PIC... yes
checking whether to build shared libraries only... no
checking whether to build static libraries only... yes
checking for windres... no
checking for inline... inline
checking if cpp -P is needed... yes
checking if cpp -P works... yes
checking if compiler is DEC/Compaq/HP C... no
checking if compiler is HP-UX C... no
checking if compiler is IBM C... no
checking if compiler is Intel C... no
checking if compiler is clang... no
checking if compiler is GNU C... yes
checking if compiler is LCC... no
checking if compiler is SGI MIPSpro C... no
checking if compiler is SGI MIPS C... no
checking if compiler is SunPro C... no
checking if compiler is Tiny C... no
checking if compiler accepts some basic options... yes
configure: compiler options added: -Werror-implicit-function-declaration
checking if compiler optimizer assumed setting might be used... yes
checking if compiler accepts optimizer enabling options... yes
configure: compiler options added: -O2
checking if compiler accepts strict warning options... yes
configure: compiler options added: -Wno-system-headers
checking if compiler halts on compilation errors... yes
checking if compiler halts on negative sized arrays... yes
checking if compiler halts on function prototype mismatch... yes
checking if compiler supports hiding library internal symbols... yes
checking for windows.h... no
checking whether build target is a native Windows one... no
checking whether build target supports WIN32 file API... no
checking whether build target supports WIN32 crypto API... no
checking for good-to-use Darwin CFLAGS... no
checking whether to link macOS CoreFoundation and SystemConfiguration framework... no
checking to see if the compiler supports __builtin_available()... no
checking whether to support http... yes
checking whether to support ftp... yes
checking whether to support file... yes
checking whether to support ldap... yes
checking whether to support ldaps... yes
checking whether to support rtsp... yes
checking whether to support proxies... yes
checking whether to support dict... yes
checking whether to support telnet... yes
checking whether to support tftp... yes
checking whether to support pop3... yes
checking whether to support imap... yes
checking whether to support smb... yes
checking whether to support smtp... yes
checking whether to support gopher... yes
checking whether to support mqtt... no
checking whether to provide built-in manual... yes
checking whether to enable generation of C code... yes
checking whether to use libgcc... no
checking if X/Open network library is required... no
checking for gethostbyname... yes
checking for windows.h... (cached) no
checking for winsock2.h... (cached) no
checking for proto/bsdsocket.h... no
checking for connect in libraries... yes
checking for sys/types.h... (cached) yes
checking for sys/time.h... yes
checking for monotonic clock_gettime... yes
checking for clock_gettime in libraries... no additional lib required
checking if monotonic clock_gettime works... yes
checking for pkg-config... /usr/bin/pkg-config
checking for zlib options with pkg-config... found
checking for zlib.h... yes
configure: found both libz and libz.h header
checking for BrotliDecoderDecompress in -lbrotlidec... no
checking for brotli/decode.h... no
checking for ZSTD_createDStream in -lzstd... no
checking for zstd.h... no
checking for lber.h... no
checking for ldap.h... no
checking for ldap_ssl.h... no
checking for LDAP libraries... cannot find LDAP libraries
checking whether to enable IPv6... yes
checking if struct sockaddr_in6 has sin6_scope_id member... yes
checking if argv can be written to... yes
checking if GSS-API support is requested... no
checking whether to enable Windows native SSL/TLS... no
checking whether to enable Secure Transport... no
checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no
checking for library containing psl_builtin... -lpsl
checking for library containing gsasl_init... no
checking for RTMP_Init in -lrtmp... no
checking whether versioned symbols are wanted... no
checking whether to enable Windows native IDN (Windows native builds only)... no
checking whether to build with libidn2... (assumed) yes
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for libidn2 options with pkg-config... no
configure: IDN_LIBS: "-lidn2"
configure: IDN_LDFLAGS: ""
configure: IDN_CPPFLAGS: ""
configure: IDN_DIR: ""
checking if idn2_lookup_ul can be linked... no
checking for idn2.h... no
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for libnghttp2 options with pkg-config... no
checking for nghttp2_session_set_local_window_size in -lnghttp2... no
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for fish options with pkg-config... no
checking for sys/types.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for sys/select.h... yes
checking for sys/socket.h... yes
checking for sys/ioctl.h... yes
checking for sys/uio.h... yes
checking for assert.h... yes
checking for unistd.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for arpa/inet.h... yes
checking for net/if.h... yes
checking for netinet/in.h... yes
checking for netinet/in6.h... no
checking for sys/un.h... yes
checking for linux/tcp.h... yes
checking for netinet/tcp.h... yes
checking for netinet/udp.h... yes
checking for netdb.h... yes
checking for sys/sockio.h... no
checking for sys/stat.h... (cached) yes
checking for sys/param.h... yes
checking for termios.h... yes
checking for termio.h... yes
checking for fcntl.h... yes
checking for io.h... no
checking for pwd.h... yes
checking for utime.h... yes
checking for sys/utime.h... no
checking for sys/poll.h... yes
checking for poll.h... yes
checking for socket.h... no
checking for sys/resource.h... yes
checking for libgen.h... yes
checking for locale.h... yes
checking for errno.h... yes
checking for stdbool.h... yes
checking for arpa/tftp.h... yes
checking for sys/filio.h... no
checking for sys/wait.h... yes
checking for setjmp.h... yes
checking for an ANSI C-conforming const... yes
checking for compiler support of C99 variadic macro style... yes
checking for compiler support of old gcc variadic macro style... yes
checking for size_t... yes
checking for sys/types.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for struct timeval... yes
checking run-time libs availability... fine
checking size of size_t... 8
checking size of long... 8
checking size of int... 4
checking size of time_t... 8
checking size of off_t... 8
checking size of curl_off_t... 8
checking for long long... yes
checking for ssize_t... yes
checking for bool... yes
checking for sa_family_t... yes
checking for suseconds_t... yes
checking if time_t is unsigned... no
checking for sys/types.h... (cached) yes
checking for poll.h... (cached) yes
checking for sys/poll.h... (cached) yes
checking for in_addr_t... yes
checking for struct sockaddr_storage... yes
checking for sys/select.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for select... yes
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for recv... yes
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for send... yes
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for MSG_NOSIGNAL... yes
checking for sys/types.h... (cached) yes
checking for unistd.h... (cached) yes
checking if alarm can be linked... yes
checking if alarm is prototyped... yes
checking if alarm is compilable... yes
checking if alarm usage allowed... yes
checking if alarm might be used... yes
checking for sys/types.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for libgen.h... (cached) yes
checking if basename can be linked... yes
checking if basename is prototyped... yes
checking if basename is compilable... yes
checking if basename usage allowed... yes
checking if basename might be used... yes
checking for sys/types.h... (cached) yes
checking for socket.h... (cached) no
checking if closesocket can be linked... no
checking if closesocket might be used... no
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking if CloseSocket can be linked... no
checking if CloseSocket might be used... no
checking if connect can be linked... yes
checking if connect is prototyped... yes
checking if connect is compilable... yes
checking if connect usage allowed... yes
checking if connect might be used... yes
checking for sys/types.h... (cached) yes
checking for unistd.h... (cached) yes
checking for fcntl.h... (cached) yes
checking if fcntl can be linked... yes
checking if fcntl is prototyped... yes
checking if fcntl is compilable... yes
checking if fcntl usage allowed... yes
checking if fcntl might be used... yes
checking if fcntl O_NONBLOCK is compilable... yes
checking if fcntl O_NONBLOCK usage allowed... yes
checking if fcntl O_NONBLOCK might be used... yes
checking for windows.h... (cached) no
checking for winsock2.h... (cached) no
checking for ws2tcpip.h... (cached) no
checking for sys/types.h... (cached) yes
checking for netdb.h... (cached) yes
checking if freeaddrinfo can be linked... yes
checking if freeaddrinfo is prototyped... yes
checking if freeaddrinfo is compilable... yes
checking if freeaddrinfo usage allowed... yes
checking if freeaddrinfo might be used... yes
checking for sys/types.h... (cached) yes
checking for sys/xattr.h... yes
checking if fsetxattr can be linked... yes
checking if fsetxattr is prototyped... yes
checking if fsetxattr takes 5 args.... yes
checking if fsetxattr is compilable... yes
checking if fsetxattr usage allowed... yes
checking if fsetxattr might be used... yes
checking if ftruncate can be linked... yes
checking if ftruncate is prototyped... yes
checking if ftruncate is compilable... yes
checking if ftruncate usage allowed... yes
checking if ftruncate might be used... yes
checking for sys/types.h... (cached) yes
checking for stdlib.h... (cached) yes
checking if getaddrinfo can be linked... yes
checking if getaddrinfo is prototyped... yes
checking if getaddrinfo is compilable... yes
checking if getaddrinfo seems to work... yes
checking if getaddrinfo usage allowed... yes
checking if getaddrinfo might be used... yes
checking if getaddrinfo is threadsafe... yes
checking if gethostbyname can be linked... yes
checking if gethostbyname is prototyped... yes
checking if gethostbyname is compilable... yes
checking if gethostbyname usage allowed... yes
checking if gethostbyname might be used... yes
checking if gethostbyname_r can be linked... yes
checking if gethostbyname_r is prototyped... yes
checking if gethostbyname_r takes 3 args.... no
checking if gethostbyname_r takes 5 args.... no
checking if gethostbyname_r takes 6 args.... yes
checking if gethostbyname_r is compilable... yes
checking if gethostbyname_r usage allowed... yes
checking if gethostbyname_r might be used... yes
checking if gethostname can be linked... yes
checking if gethostname is prototyped... yes
checking if gethostname is compilable... yes
checking for gethostname arg 2 data type... size_t
checking if gethostname usage allowed... yes
checking if gethostname might be used... yes
checking if getpeername can be linked... yes
checking if getpeername is prototyped... yes
checking if getpeername is compilable... yes
checking if getpeername usage allowed... yes
checking if getpeername might be used... yes
checking if getsockname can be linked... yes
checking if getsockname is prototyped... yes
checking if getsockname is compilable... yes
checking if getsockname usage allowed... yes
checking if getsockname might be used... yes
checking for net/if.h... (cached) yes
checking if if_nametoindex can be linked... yes
checking if if_nametoindex is prototyped... yes
checking if if_nametoindex is compilable... yes
checking if if_nametoindex usage allowed... yes
checking if if_nametoindex might be used... yes
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for netinet/in.h... (cached) yes
checking for ifaddrs.h... yes
checking if getifaddrs can be linked... yes
checking if getifaddrs is prototyped... yes
checking if getifaddrs is compilable... yes
checking if getifaddrs seems to work... yes
checking if getifaddrs usage allowed... yes
checking if getifaddrs might be used... yes
checking for sys/types.h... (cached) yes
checking for sys/time.h... (cached) yes
checking if gmtime_r can be linked... yes
checking if gmtime_r is prototyped... yes
checking if gmtime_r is compilable... yes
checking if gmtime_r seems to work... yes
checking if gmtime_r usage allowed... yes
checking if gmtime_r might be used... yes
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking for netinet/in.h... (cached) yes
checking for arpa/inet.h... (cached) yes
checking if inet_ntop can be linked... yes
checking if inet_ntop is prototyped... yes
checking if inet_ntop is compilable... yes
checking if inet_ntop seems to work... yes
checking if inet_ntop usage allowed... yes
checking if inet_ntop might be used... yes
checking if inet_pton can be linked... yes
checking if inet_pton is prototyped... yes
checking if inet_pton is compilable... yes
checking if inet_pton seems to work... yes
checking if inet_pton usage allowed... yes
checking if inet_pton might be used... yes
checking if ioctlsocket can be linked... no
checking if ioctlsocket might be used... no
checking if IoctlSocket can be linked... no
checking if IoctlSocket might be used... no
checking if memrchr can be linked... yes
checking if memrchr is prototyped... no
checking if memrchr might be used... no
checking if poll can be linked... yes
checking if poll is prototyped... yes
checking if poll is compilable... yes
checking if poll seems to work... yes
checking if poll usage allowed... yes
checking if poll might be used... yes
checking for sys/types.h... (cached) yes
checking for signal.h... yes
checking if sigaction can be linked... yes
checking if sigaction is prototyped... yes
checking if sigaction is compilable... yes
checking if sigaction usage allowed... yes
checking if sigaction might be used... yes
checking if siginterrupt can be linked... yes
checking if siginterrupt is prototyped... yes
checking if siginterrupt is compilable... yes
checking if siginterrupt usage allowed... yes
checking if siginterrupt might be used... yes
checking if signal can be linked... yes
checking if signal is prototyped... yes
checking if signal is compilable... yes
checking if signal usage allowed... yes
checking if signal might be used... yes
checking for sys/types.h... (cached) yes
checking for setjmp.h... (cached) yes
checking if sigsetjmp can be linked... no
checking if sigsetjmp seems a macro... yes
checking if sigsetjmp is compilable... yes
checking if sigsetjmp usage allowed... yes
checking if sigsetjmp might be used... yes
checking if socket can be linked... yes
checking if socket is prototyped... yes
checking if socket is compilable... yes
checking if socket usage allowed... yes
checking if socket might be used... yes
checking if socketpair can be linked... yes
checking if socketpair is prototyped... yes
checking if socketpair is compilable... yes
checking if socketpair usage allowed... yes
checking if socketpair might be used... yes
checking if strcasecmp can be linked... yes
checking if strcasecmp is prototyped... yes
checking if strcasecmp is compilable... yes
checking if strcasecmp usage allowed... yes
checking if strcasecmp might be used... yes
checking if strcmpi can be linked... no
checking if strcmpi might be used... no
checking if strdup can be linked... yes
checking if strdup is prototyped... yes
checking if strdup is compilable... yes
checking if strdup usage allowed... yes
checking if strdup might be used... yes
checking if strerror_r can be linked... yes
checking if strerror_r is prototyped... yes
checking if strerror_r is compilable... yes
checking if strerror_r is glibc like... no
checking if strerror_r is POSIX like... yes
checking if strerror_r seems to work... yes
checking if strerror_r usage allowed... yes
checking if strerror_r might be used... yes
checking if stricmp can be linked... no
checking if stricmp might be used... no
checking if strtok_r can be linked... yes
checking if strtok_r is prototyped... yes
checking if strtok_r is compilable... yes
checking if strtok_r usage allowed... yes
checking if strtok_r might be used... yes
checking if strtoll can be linked... yes
checking if strtoll is prototyped... yes
checking if strtoll is compilable... yes
checking if strtoll usage allowed... yes
checking if strtoll might be used... yes
checking for ccache gcc options needed to detect all undeclared functions... none needed
checking whether getpwuid_r is declared... yes
checking for fnmatch... yes
checking for fchmod... yes
checking for fork... yes
checking for geteuid... yes
checking for getpass_r... no
checking deeper for getpass_r... but still no
checking for getppid... yes
checking for getpwuid... yes
checking for getpwuid_r... yes
checking for getrlimit... yes
checking for gettimeofday... yes
checking for if_nametoindex... yes
checking for mach_absolute_time... no
checking deeper for mach_absolute_time... but still no
checking for pipe... yes
checking for sched_yield... yes
checking for sendmsg... yes
checking for setlocale... yes
checking for setmode... no
checking deeper for setmode... but still no
checking for setrlimit... yes
checking for snprintf... yes
checking for utime... yes
checking for utimes... yes
checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK
checking for perl... /usr/bin/perl
checking for gnroff... no
checking for nroff... /usr/bin/nroff
checking how to use *nroff to get plain text from man pages... -man
checking whether to enable the threaded resolver... yes
checking whether to use POSIX threads for threaded resolver... auto
checking for pthread.h... yes
checking for pthread_create... yes
checking convert -I options to -isystem... yes
checking whether to enable verbose strings... yes
checking whether to enable SSPI support (Windows native builds only)... no
checking whether to enable cryptographic authentication methods... yes
checking whether to support NTLM... yes
checking whether to enable NTLM delegation to winbind's helper... no
checking whether to enable TLS-SRP authentication... yes
checking whether to enable Unix domain sockets... auto
checking for struct sockaddr_un.sun_path... yes
checking whether to support cookies... yes
checking whether to support socketpair... yes
checking whether to support HTTP authentication... yes
checking whether to support DoH... yes
checking whether to support the MIME API... yes
checking whether to support date parsing... yes
checking whether to support netrc parsing... yes
checking whether to support progress-meter... yes
checking whether to support DNS shuffling... yes
checking whether to support curl_easy_option*... yes
checking whether to support alt-svc... yes
checking whether to support headers-api... yes
configure: disables HSTS due to lack of SSL
checking whether to support WebSockets... no
checking whether hiding of library internal symbols will actually happen... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating docs/Makefile
config.status: creating docs/examples/Makefile
config.status: creating docs/libcurl/Makefile
config.status: creating docs/libcurl/opts/Makefile
config.status: creating docs/cmdline-opts/Makefile
config.status: creating include/Makefile
config.status: creating include/curl/Makefile
config.status: creating src/Makefile
config.status: creating lib/Makefile
config.status: creating scripts/Makefile
config.status: creating lib/libcurl.vers
config.status: creating lib/libcurl.plist
config.status: creating tests/Makefile
config.status: creating tests/certs/Makefile
config.status: creating tests/certs/scripts/Makefile
config.status: creating tests/data/Makefile
config.status: creating tests/server/Makefile
config.status: creating tests/libtest/Makefile
config.status: creating tests/unit/Makefile
config.status: creating packages/Makefile
config.status: creating packages/vms/Makefile
config.status: creating curl-config
config.status: creating libcurl.pc
config.status: creating lib/curl_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: amending lib/Makefile
configure: amending src/Makefile
configure: amending tests/unit/Makefile
configure: amending tests/server/Makefile
configure: amending tests/libtest/Makefile
configure: amending docs/examples/Makefile
configure: Configured to build curl/libcurl:
Host setup: x86_64-pc-linux-gnu
Install prefix: /usr/local
Compiler: ccache gcc
CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers
CPPFLAGS:
LDFLAGS:
LIBS: -lpsl -lz
curl version: 7.87.0-DEV
SSL: no (--with-{openssl,gnutls,nss,mbedtls,wolfssl,schannel,secure-transport,amissl,bearssl,rustls} )
SSH: no (--with-{libssh,libssh2})
zlib: enabled
brotli: no (--with-brotli)
zstd: no (--with-zstd)
GSS-API: no (--with-gssapi)
GSASL: no (libgsasl not found)
TLS-SRP: no (--enable-tls-srp)
resolver: POSIX threaded
IPv6: enabled
Unix sockets: enabled
IDN: no (--with-{libidn2,winidn})
Build libcurl: Shared=no, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
Code coverage: disabled
SSPI: no (--enable-sspi)
ca cert bundle: no
ca cert path:
ca fallback:
LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS: no (--enable-ldaps)
RTSP: enabled
RTMP: no (--with-librtmp)
PSL: enabled
Alt-svc: enabled (--disable-alt-svc)
Headers API: enabled (--disable-headers-api)
HSTS: no (--enable-hsts)
HTTP1: enabled (internal)
HTTP2: no (--with-nghttp2, --with-hyper)
HTTP3: no (--with-ngtcp2, --with-quiche --with-msh3)
ECH: no (--enable-ech)
WebSockets: no (--enable-websockets)
Protocols: DICT FILE FTP GOPHER HTTP IMAP MQTT POP3 RTSP SMTP TELNET TFTP
Features: AsynchDNS IPv6 Largefile PSL UnixSockets alt-svc libz threadsafe
configure: WARNING: unrecognized options: --disable-docs
configure: WARNING: Cannot find libraries for LDAP support: LDAP disabled
configure: WARNING: libgsasl was not found
configure: WARNING: Cannot find libraries for IDN support: IDN disabled
configure: WARNING: unrecognized options: --disable-docs
$ make -j3
Making all in lib
make[1]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/lib'
make all-am
make[2]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/lib'
CC libcurl_la-amigaos.lo
CC libcurl_la-altsvc.lo
CC libcurl_la-asyn-ares.lo
CC libcurl_la-asyn-thread.lo
CC libcurl_la-base64.lo
CC libcurl_la-bufref.lo
CC libcurl_la-c-hyper.lo
CC libcurl_la-cfilters.lo
CC libcurl_la-conncache.lo
CC libcurl_la-connect.lo
CC libcurl_la-content_encoding.lo
CC libcurl_la-cookie.lo
CC libcurl_la-curl_addrinfo.lo
CC libcurl_la-curl_des.lo
CC libcurl_la-curl_endian.lo
CC libcurl_la-curl_fnmatch.lo
CC libcurl_la-curl_get_line.lo
CC libcurl_la-curl_gethostname.lo
CC libcurl_la-curl_gssapi.lo
CC libcurl_la-curl_memrchr.lo
CC libcurl_la-curl_multibyte.lo
CC libcurl_la-curl_ntlm_core.lo
CC libcurl_la-curl_ntlm_wb.lo
CC libcurl_la-curl_path.lo
CC libcurl_la-curl_range.lo
CC libcurl_la-curl_rtmp.lo
CC libcurl_la-curl_sasl.lo
CC libcurl_la-curl_sspi.lo
CC libcurl_la-curl_threads.lo
CC libcurl_la-dict.lo
CC libcurl_la-doh.lo
CC libcurl_la-dynbuf.lo
CC libcurl_la-easy.lo
CC libcurl_la-easygetopt.lo
CC libcurl_la-easyoptions.lo
CC libcurl_la-escape.lo
CC libcurl_la-file.lo
CC libcurl_la-fileinfo.lo
CC libcurl_la-fopen.lo
CC libcurl_la-formdata.lo
CC libcurl_la-ftp.lo
CC libcurl_la-ftplistparser.lo
CC libcurl_la-getenv.lo
CC libcurl_la-getinfo.lo
CC libcurl_la-gopher.lo
CC libcurl_la-h2h3.lo
CC libcurl_la-hash.lo
CC libcurl_la-headers.lo
CC libcurl_la-hmac.lo
CC libcurl_la-hostasyn.lo
CC libcurl_la-hostip.lo
CC libcurl_la-hostip4.lo
CC libcurl_la-hostip6.lo
CC libcurl_la-hostsyn.lo
CC libcurl_la-hsts.lo
CC libcurl_la-http.lo
CC libcurl_la-http2.lo
CC libcurl_la-http_chunks.lo
CC libcurl_la-http_digest.lo
CC libcurl_la-http_negotiate.lo
CC libcurl_la-http_ntlm.lo
CC libcurl_la-http_proxy.lo
CC libcurl_la-http_aws_sigv4.lo
CC libcurl_la-idn_win32.lo
CC libcurl_la-if2ip.lo
CC libcurl_la-imap.lo
CC libcurl_la-inet_ntop.lo
CC libcurl_la-inet_pton.lo
CC libcurl_la-krb5.lo
CC libcurl_la-ldap.lo
CC libcurl_la-llist.lo
CC libcurl_la-md4.lo
CC libcurl_la-md5.lo
CC libcurl_la-memdebug.lo
CC libcurl_la-mime.lo
CC libcurl_la-mprintf.lo
CC libcurl_la-mqtt.lo
CC libcurl_la-multi.lo
CC libcurl_la-netrc.lo
CC libcurl_la-nonblock.lo
CC libcurl_la-noproxy.lo
CC libcurl_la-openldap.lo
CC libcurl_la-parsedate.lo
CC libcurl_la-pingpong.lo
CC libcurl_la-pop3.lo
CC libcurl_la-progress.lo
CC libcurl_la-psl.lo
CC libcurl_la-rand.lo
CC libcurl_la-rename.lo
CC libcurl_la-rtsp.lo
CC libcurl_la-select.lo
CC libcurl_la-sendf.lo
CC libcurl_la-setopt.lo
CC libcurl_la-sha256.lo
CC libcurl_la-share.lo
CC libcurl_la-slist.lo
CC libcurl_la-smb.lo
CC libcurl_la-smtp.lo
CC libcurl_la-socketpair.lo
CC libcurl_la-socks.lo
CC libcurl_la-socks_gssapi.lo
CC libcurl_la-socks_sspi.lo
CC libcurl_la-speedcheck.lo
CC libcurl_la-splay.lo
CC libcurl_la-strcase.lo
CC libcurl_la-strdup.lo
CC libcurl_la-strerror.lo
CC libcurl_la-strtok.lo
CC libcurl_la-strtoofft.lo
CC libcurl_la-system_win32.lo
CC libcurl_la-telnet.lo
CC libcurl_la-tftp.lo
CC libcurl_la-timediff.lo
CC libcurl_la-timeval.lo
CC libcurl_la-transfer.lo
CC libcurl_la-url.lo
CC libcurl_la-urlapi.lo
CC libcurl_la-version.lo
CC libcurl_la-version_win32.lo
CC libcurl_la-warnless.lo
CC libcurl_la-wildcard.lo
CC libcurl_la-ws.lo
CC vauth/libcurl_la-cleartext.lo
CC vauth/libcurl_la-cram.lo
CC vauth/libcurl_la-digest.lo
CC vauth/libcurl_la-digest_sspi.lo
CC vauth/libcurl_la-gsasl.lo
CC vauth/libcurl_la-krb5_gssapi.lo
CC vauth/libcurl_la-krb5_sspi.lo
CC vauth/libcurl_la-ntlm.lo
CC vauth/libcurl_la-ntlm_sspi.lo
CC vauth/libcurl_la-oauth2.lo
CC vauth/libcurl_la-spnego_gssapi.lo
CC vauth/libcurl_la-spnego_sspi.lo
CC vauth/libcurl_la-vauth.lo
CC vtls/libcurl_la-bearssl.lo
CC vtls/libcurl_la-gskit.lo
CC vtls/libcurl_la-gtls.lo
CC vtls/libcurl_la-hostcheck.lo
CC vtls/libcurl_la-keylog.lo
CC vtls/libcurl_la-mbedtls.lo
CC vtls/libcurl_la-mbedtls_threadlock.lo
CC vtls/libcurl_la-nss.lo
CC vtls/libcurl_la-openssl.lo
CC vtls/libcurl_la-rustls.lo
CC vtls/libcurl_la-schannel.lo
CC vtls/libcurl_la-schannel_verify.lo
CC vtls/libcurl_la-sectransp.lo
CC vtls/libcurl_la-vtls.lo
CC vtls/libcurl_la-wolfssl.lo
CC vtls/libcurl_la-x509asn1.lo
CC vquic/libcurl_la-msh3.lo
CC vquic/libcurl_la-ngtcp2.lo
CC vquic/libcurl_la-quiche.lo
CC vquic/libcurl_la-vquic.lo
CC vssh/libcurl_la-libssh.lo
CC vssh/libcurl_la-libssh2.lo
CC vssh/libcurl_la-wolfssh.lo
CCLD libcurl.la
make[2]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/lib'
make[1]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/lib'
Making all in src
make[1]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/src'
Making all in ../docs
make[2]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/docs'
Making all in .
make[3]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/docs'
if test "..x" != "..x" -a -e "./curl.1"; then \
/usr/bin/install -c -m 644 "./curl.1" /root/asi_db/builds/curl/_worktrees/w0/docs/curl.1; fi
cd cmdline-opts && make
make[4]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/docs/cmdline-opts'
generate ../../docs/curl.1
make[4]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/docs/cmdline-opts'
make[3]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/docs'
Making all in cmdline-opts
make[3]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/docs/cmdline-opts'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/docs/cmdline-opts'
make[2]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/docs'
make[2]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0/src'
CC slist_wc.o
CC tool_bname.o
CC tool_binmode.o
CC tool_cb_dbg.o
CC tool_cb_hdr.o
CC tool_cb_prg.o
CC tool_cb_rea.o
CC tool_cb_see.o
CC tool_cb_wrt.o
CC tool_cfgable.o
CC tool_dirhie.o
CC tool_doswin.o
CC tool_easysrc.o
CC tool_filetime.o
CC tool_findfile.o
CC tool_formparse.o
CC tool_getparam.o
CC tool_getpass.o
CC tool_help.o
CC tool_helpers.o
HUGE tool_hugehelp.c
CC tool_libinfo.o
CC tool_listhelp.o
CC tool_main.o
CC tool_msgs.o
CC tool_operate.o
CC tool_operhlp.o
CC tool_panykey.o
CC tool_paramhlp.o
CC tool_progress.o
CC tool_parsecfg.o
CC tool_strdup.o
CC tool_setopt.o
CC tool_sleep.o
CC tool_urlglob.o
CC tool_util.o
CC tool_vms.o
CC tool_writeout.o
CC tool_writeout_json.o
CC tool_xattr.o
CC ../lib/strtoofft.o
CC ../lib/timediff.o
CC ../lib/nonblock.o
CC ../lib/warnless.o
CC ../lib/curl_multibyte.o
CC ../lib/version_win32.o
CC ../lib/dynbuf.o
CC tool_hugehelp.o
CCLD curl
make[2]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/src'
make[1]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0/src'
make[1]: Entering directory '/root/asi_db/builds/curl/_worktrees/w0'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/root/asi_db/builds/curl/_worktrees/w0'
| @@ -34,7 +34,8 @@ EXTRA_DIST = README.md Makefile.example Makefile.inc Makefile.m32 \ | |
| # | |
| # $(top_srcdir)/include is for libcurl's external include files | |
| - | AM_CPPFLAGS = -I$(top_srcdir)/include |
| + | AM_CPPFLAGS = -I$(top_srcdir)/include \ |
| + | -DCURL_DISABLE_DEPRECATION |
| LIBDIR = $(top_builddir)/lib | |
| @@ -126,11 +126,14 @@ Callback for SSL context logic. See \fICURLOPT_SSL_CTX_FUNCTION(3)\fP | |
| .IP CURLOPT_SSL_CTX_DATA | |
| Data pointer to pass to the SSL context callback. See \fICURLOPT_SSL_CTX_DATA(3)\fP | |
| .IP CURLOPT_CONV_TO_NETWORK_FUNCTION | |
| - | Callback for code base conversion. See \fICURLOPT_CONV_TO_NETWORK_FUNCTION(3)\fP |
| + | \fBOBSOLETE\fP Callback for code base conversion. |
| + | See \fICURLOPT_CONV_TO_NETWORK_FUNCTION(3)\fP |
| .IP CURLOPT_CONV_FROM_NETWORK_FUNCTION | |
| - | Callback for code base conversion. See \fICURLOPT_CONV_FROM_NETWORK_FUNCTION(3)\fP |
| + | \fBOBSOLETE\fP Callback for code base conversion. |
| + | See \fICURLOPT_CONV_FROM_NETWORK_FUNCTION(3)\fP |
| .IP CURLOPT_CONV_FROM_UTF8_FUNCTION | |
| - | Callback for code base conversion. See \fICURLOPT_CONV_FROM_UTF8_FUNCTION(3)\fP |
| + | \fBOBSOLETE\fP Callback for code base conversion. |
| + | See \fICURLOPT_CONV_FROM_UTF8_FUNCTION(3)\fP |
| .IP CURLOPT_INTERLEAVEFUNCTION | |
| Callback for RTSP interleaved data. See \fICURLOPT_INTERLEAVEFUNCTION(3)\fP | |
| .IP CURLOPT_INTERLEAVEDATA | |
| @@ -96,7 +96,7 @@ curl_easy_setopt(curl, CURLOPT_CONV_FROM_NETWORK_FUNCTION, | |
| my_conv_from_ascii_to_ebcdic); | |
| .fi | |
| .SH AVAILABILITY | |
| - | Not available since 7.82.0 |
| + | Not available and deprecated since 7.82.0. |
| Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was | |
| built. | |
| @@ -94,7 +94,7 @@ curl_easy_setopt(curl, CURLOPT_CONV_FROM_UTF8_FUNCTION, | |
| my_conv_from_utf8_to_ebcdic); | |
| .fi | |
| .SH AVAILABILITY | |
| - | Not available since 7.82.0 |
| + | Not available and deprecated since 7.82.0. |
| Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was | |
| built. | |
| @@ -95,7 +95,7 @@ curl_easy_setopt(curl, CURLOPT_CONV_TO_NETWORK_FUNCTION, | |
| my_conv_from_ebcdic_to_ascii); | |
| .fi | |
| .SH AVAILABILITY | |
| - | Not available since 7.82.0 |
| + | Not available and deprecated since 7.82.0. |
| Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was | |
| built. | |
| @@ -110,8 +110,9 @@ All | |
| curl_easy_setopt(curl_handle, CURLOPT_PROGRESSFUNCTION, progress_callback); | |
| .fi | |
| .SH AVAILABILITY | |
| - | Deprecated in 7.32.0. |
| + | Deprecated since 7.32.0. |
| .SH RETURN VALUE | |
| Returns CURLE_OK. | |
| .SH "SEE ALSO" | |
| .BR CURLOPT_VERBOSE "(3), " CURLOPT_NOPROGRESS "(3), " | |
| + | .BR CURLOPT_XFERINFOFUNCTION "(3)" |
| @@ -23,6 +23,7 @@ CURL_CHUNK_END_FUNC_OK 7.21.0 | |
| CURL_CSELECT_ERR 7.16.3 | |
| CURL_CSELECT_IN 7.16.3 | |
| CURL_CSELECT_OUT 7.16.3 | |
| + | CURL_DEPRECATED 7.87.0 |
| CURL_DID_MEMORY_FUNC_TYPEDEFS 7.49.0 | |
| CURL_EASY_NONE 7.14.0 - 7.15.4 | |
| CURL_EASY_TIMEOUT 7.14.0 - 7.15.4 | |
| @@ -61,6 +62,7 @@ CURL_HTTPPOST_PTRBUFFER 7.46.0 | |
| CURL_HTTPPOST_PTRCONTENTS 7.46.0 | |
| CURL_HTTPPOST_PTRNAME 7.46.0 | |
| CURL_HTTPPOST_READFILE 7.46.0 | |
| + | CURL_IGNORE_DEPRECATION 7.87.0 |
| CURL_IPRESOLVE_V4 7.10.8 | |
| CURL_IPRESOLVE_V6 7.10.8 | |
| CURL_IPRESOLVE_WHATEVER 7.10.8 | |
| @@ -886,6 +888,7 @@ CURLOPT_WS_OPTIONS 7.86.0 | |
| CURLOPT_XFERINFODATA 7.32.0 | |
| CURLOPT_XFERINFOFUNCTION 7.32.0 | |
| CURLOPT_XOAUTH2_BEARER 7.33.0 | |
| + | CURLOPTDEPRECATED 7.87.0 |
| CURLOPTTYPE_BLOB 7.71.0 | |
| CURLOPTTYPE_CBPOINT 7.73.0 | |
| CURLOPTTYPE_FUNCTIONPOINT 7.1 | |
| @@ -33,6 +33,23 @@ | |
| #define CURL_STRICTER | |
| #endif | |
| + | /* Compile-time deprecation macros. */ |
| + | #if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ |
| + | ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ |
| + | !defined(__INTEL_COMPILER) && \ |
| + | !defined(CURL_DISABLE_DEPRECATION) && !defined(BUILDING_LIBCURL) |
| + | #define CURL_DEPRECATED(version, message) \ |
| + | __attribute__((deprecated("since " # version ". " message))) |
| + | #define CURL_IGNORE_DEPRECATION(statements) \ |
| + | _Pragma("GCC diagnostic push") \ |
| + | _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ |
| + | statements \ |
| + | _Pragma("GCC diagnostic pop") |
| + | #else |
| + | #define CURL_DEPRECATED(version, message) |
| + | #define CURL_IGNORE_DEPRECATION(statements) statements |
| + | #endif |
| + | |
| #include "curlver.h" /* libcurl version defines */ | |
| #include "system.h" /* determine things run-time */ | |
| @@ -145,11 +162,11 @@ typedef enum { | |
| CURLSSLBACKEND_NSS = 3, | |
| CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ | |
| CURLSSLBACKEND_GSKIT = 5, | |
| - | CURLSSLBACKEND_POLARSSL = 6, |
| + | CURLSSLBACKEND_POLARSSL CURL_DEPRECATED(7.69.0, "") = 6, |
| CURLSSLBACKEND_WOLFSSL = 7, | |
| CURLSSLBACKEND_SCHANNEL = 8, | |
| CURLSSLBACKEND_SECURETRANSPORT = 9, | |
| - | CURLSSLBACKEND_AXTLS = 10, /* never used since 7.63.0 */ |
| + | CURLSSLBACKEND_AXTLS CURL_DEPRECATED(7.61.0, "") = 10, |
| CURLSSLBACKEND_MBEDTLS = 11, | |
| CURLSSLBACKEND_MESALINK = 12, | |
| CURLSSLBACKEND_BEARSSL = 13, | |
| @@ -1062,6 +1079,7 @@ typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy, | |
| #define CURLOPT(na,t,nu) na = t + nu | |
| + | #define CURLOPTDEPRECATED(na,t,nu,v,m) na CURL_DEPRECATED(v,m) = t + nu |
| /* CURLOPT aliases that make no run-time difference */ | |
| @@ -1175,7 +1193,8 @@ typedef enum { | |
| CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23), | |
| /* This points to a linked list of post entries, struct curl_httppost */ | |
| - | CURLOPT(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24), |
| + | CURLOPTDEPRECATED(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24, |
| + | 7.56.0, "Use CURLOPT_MIMEPOST"), |
| /* name of the file keeping your private SSL-certificate */ | |
| CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25), | |
| @@ -1265,7 +1284,8 @@ typedef enum { | |
| CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53), | |
| /* HTTP PUT */ | |
| - | CURLOPT(CURLOPT_PUT, CURLOPTTYPE_LONG, 54), |
| + | CURLOPTDEPRECATED(CURLOPT_PUT, CURLOPTTYPE_LONG, 54, |
| + | 7.12.1, "Use CURLOPT_UPLOAD"), |
| /* 55 = OBSOLETE */ | |
| @@ -1273,7 +1293,8 @@ typedef enum { | |
| * Function that will be called instead of the internal progress display | |
| * function. This function should be defined as the curl_progress_callback | |
| * prototype defines. */ | |
| - | CURLOPT(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56), |
| + | CURLOPTDEPRECATED(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56, |
| + | 7.32.0, "Use CURLOPT_XFERINFOFUNCTION"), |
| /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION | |
| callbacks */ | |
| @@ -1341,10 +1362,12 @@ typedef enum { | |
| /* Set to a file name that contains random data for libcurl to use to | |
| seed the random engine when doing SSL connects. */ | |
| - | CURLOPT(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76), |
| + | CURLOPTDEPRECATED(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76, |
| + | 7.84.0, "Serves no purpose anymore"), |
| /* Set to the Entropy Gathering Daemon socket pathname */ | |
| - | CURLOPT(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77), |
| + | CURLOPTDEPRECATED(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77, |
| + | 7.84.0, "Serves no purpose anymore"), |
| /* Time-out connect operations after this amount of seconds, if connects are | |
| OK within this time, then fine... This only aborts the connect phase. */ | |
| @@ -1399,7 +1422,8 @@ typedef enum { | |
| /* Non-zero value means to use the global dns cache */ | |
| /* DEPRECATED, do not use! */ | |
| - | CURLOPT(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91), |
| + | CURLOPTDEPRECATED(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91, |
| + | 7.11.1, "Use CURLOPT_SHARE"), |
| /* DNS cache timeout */ | |
| CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92), | |
| @@ -1554,8 +1578,10 @@ typedef enum { | |
| */ | |
| CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129), | |
| - | CURLOPT(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130), |
| - | CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131), |
| + | CURLOPTDEPRECATED(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130, |
| + | 7.18.0, "Use CURLOPT_SEEKFUNCTION"), |
| + | CURLOPTDEPRECATED(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131, |
| + | 7.18.0, "Use CURLOPT_SEEKDATA"), |
| /* 132 OBSOLETE. Gone in 7.16.0 */ | |
| /* 133 OBSOLETE. Gone in 7.16.0 */ | |
| @@ -1594,16 +1620,22 @@ typedef enum { | |
| /* Function that will be called to convert from the | |
| network encoding (instead of using the iconv calls in libcurl) */ | |
| - | CURLOPT(CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 142), |
| + | CURLOPTDEPRECATED(CURLOPT_CONV_FROM_NETWORK_FUNCTION, |
| + | CURLOPTTYPE_FUNCTIONPOINT, 142, |
| + | 7.82.0, "Serves no purpose anymore"), |
| /* Function that will be called to convert to the | |
| network encoding (instead of using the iconv calls in libcurl) */ | |
| - | CURLOPT(CURLOPT_CONV_TO_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 143), |
| + | CURLOPTDEPRECATED(CURLOPT_CONV_TO_NETWORK_FUNCTION, |
| + | CURLOPTTYPE_FUNCTIONPOINT, 143, |
| + | 7.82.0, "Serves no purpose anymore"), |
| /* Function that will be called to convert from UTF8 | |
| (instead of using the iconv calls in libcurl) | |
| Note that this is used only for SSL certificate processing */ | |
| - | CURLOPT(CURLOPT_CONV_FROM_UTF8_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 144), |
| + | CURLOPTDEPRECATED(CURLOPT_CONV_FROM_UTF8_FUNCTION, |
| + | CURLOPTTYPE_FUNCTIONPOINT, 144, |
| + | 7.82.0, "Serves no purpose anymore"), |
| /* if the connection proceeds too quickly then need to slow it down */ | |
| /* limit-rate: maximum number of bytes per second to send or receive */ | |
| @@ -1704,7 +1736,9 @@ typedef enum { | |
| /* Socks Service */ | |
| /* DEPRECATED, do not use! */ | |
| - | CURLOPT(CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPTTYPE_STRINGPOINT, 179), |
| + | CURLOPTDEPRECATED(CURLOPT_SOCKS5_GSSAPI_SERVICE, |
| + | CURLOPTTYPE_STRINGPOINT, 179, |
| + | 7.49.0, "Use CURLOPT_PROXY_SERVICE_NAME"), |
| /* Socks Service */ | |
| CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180), | |
| @@ -1713,12 +1747,14 @@ typedef enum { | |
| transfer, which thus helps the app which takes URLs from users or other | |
| external inputs and want to restrict what protocol(s) to deal | |
| with. Defaults to CURLPROTO_ALL. */ | |
| - | CURLOPT(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181), |
| + | CURLOPTDEPRECATED(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181, |
| + | 7.85.0, "Use CURLOPT_PROTOCOLS_STR"), |
| /* set the bitmask for the protocols that libcurl is allowed to follow to, | |
| as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs | |
| to be set in both bitmasks to be allowed to get redirected to. */ | |
| - | CURLOPT(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182), |
| + | CURLOPTDEPRECATED(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182, |
| + | 7.85.0, "Use CURLOPT_REDIR_PROTOCOLS_STR"), |
| /* set the SSH knownhost file name to use */ | |
| CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183), | |
| @@ -1863,7 +1899,8 @@ typedef enum { | |
| CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224), | |
| /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ | |
| - | CURLOPT(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225), |
| + | CURLOPTDEPRECATED(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225, |
| + | 7.86.0, "Has no function"), |
| /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ | |
| CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226), | |
| @@ -2451,30 +2488,32 @@ CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, | |
| int take_ownership); | |
| typedef enum { | |
| - | CURLFORM_NOTHING, /********* the first one is unused ************/ |
| - | CURLFORM_COPYNAME, |
| - | CURLFORM_PTRNAME, |
| - | CURLFORM_NAMELENGTH, |
| - | CURLFORM_COPYCONTENTS, |
| - | CURLFORM_PTRCONTENTS, |
| - | CURLFORM_CONTENTSLENGTH, |
| - | CURLFORM_FILECONTENT, |
| - | CURLFORM_ARRAY, |
| + | /********* the first one is unused ************/ |
| + | CURLFORM_NOTHING CURL_DEPRECATED(7.56.0, ""), |
| + | CURLFORM_COPYNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"), |
| + | CURLFORM_PTRNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"), |
| + | CURLFORM_NAMELENGTH CURL_DEPRECATED(7.56.0, ""), |
| + | CURLFORM_COPYCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), |
| + | CURLFORM_PTRCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), |
| + | CURLFORM_CONTENTSLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), |
| + | CURLFORM_FILECONTENT CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"), |
| + | CURLFORM_ARRAY CURL_DEPRECATED(7.56.0, ""), |
| CURLFORM_OBSOLETE, | |
| - | CURLFORM_FILE, |
| + | CURLFORM_FILE CURL_DEPRECATED(7.56.0, "Use curl_mime_filedata()"), |
| - | CURLFORM_BUFFER, |
| - | CURLFORM_BUFFERPTR, |
| - | CURLFORM_BUFFERLENGTH, |
| + | CURLFORM_BUFFER CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"), |
| + | CURLFORM_BUFFERPTR CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), |
| + | CURLFORM_BUFFERLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), |
| - | CURLFORM_CONTENTTYPE, |
| - | CURLFORM_CONTENTHEADER, |
| - | CURLFORM_FILENAME, |
| + | CURLFORM_CONTENTTYPE CURL_DEPRECATED(7.56.0, "Use curl_mime_type()"), |
| + | CURLFORM_CONTENTHEADER CURL_DEPRECATED(7.56.0, "Use curl_mime_headers()"), |
| + | CURLFORM_FILENAME CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"), |
| CURLFORM_END, | |
| CURLFORM_OBSOLETE2, | |
| - | CURLFORM_STREAM, |
| - | CURLFORM_CONTENTLEN, /* added in 7.46.0, provide a curl_off_t length */ |
| + | CURLFORM_STREAM CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"), |
| + | CURLFORM_CONTENTLEN /* added in 7.46.0, provide a curl_off_t length */ |
| + | CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), |
| CURLFORM_LASTENTRY /* the last unused */ | |
| } CURLformoption; | |
| @@ -2502,15 +2541,16 @@ struct curl_forms { | |
| * | |
| ***************************************************************************/ | |
| typedef enum { | |
| - | CURL_FORMADD_OK, /* first, no error */ |
| + | CURL_FORMADD_OK CURL_DEPRECATED(7.56.0, ""), /* 1st, no error */ |
| - | CURL_FORMADD_MEMORY, |
| - | CURL_FORMADD_OPTION_TWICE, |
| - | CURL_FORMADD_NULL, |
| - | CURL_FORMADD_UNKNOWN_OPTION, |
| - | CURL_FORMADD_INCOMPLETE, |
| - | CURL_FORMADD_ILLEGAL_ARRAY, |
| - | CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ |
| + | CURL_FORMADD_MEMORY CURL_DEPRECATED(7.56.0, ""), |
| + | CURL_FORMADD_OPTION_TWICE CURL_DEPRECATED(7.56.0, ""), |
| + | CURL_FORMADD_NULL CURL_DEPRECATED(7.56.0, ""), |
| + | CURL_FORMADD_UNKNOWN_OPTION CURL_DEPRECATED(7.56.0, ""), |
| + | CURL_FORMADD_INCOMPLETE CURL_DEPRECATED(7.56.0, ""), |
| + | CURL_FORMADD_ILLEGAL_ARRAY CURL_DEPRECATED(7.56.0, ""), |
| + | /* libcurl was built with form api disabled */ |
| + | CURL_FORMADD_DISABLED CURL_DEPRECATED(7.56.0, ""), |
| CURL_FORMADD_LAST /* last */ | |
| } CURLFORMcode; | |
| @@ -2524,9 +2564,10 @@ typedef enum { | |
| * adds one part that together construct a full post. Then use | |
| * CURLOPT_HTTPPOST to send it off to libcurl. | |
| */ | |
| - | CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, |
| - | struct curl_httppost **last_post, |
| - | ...); |
| + | CURL_EXTERN CURLFORMcode CURL_DEPRECATED(7.56.0, "Use curl_mime_init()") |
| + | curl_formadd(struct curl_httppost **httppost, |
| + | struct curl_httppost **last_post, |
| + | ...); |
| /* | |
| * callback function for curl_formget() | |
| @@ -2549,8 +2590,9 @@ typedef size_t (*curl_formget_callback)(void *arg, const char *buf, | |
| * the curl_formget_callback function. | |
| * Returns 0 on success. | |
| */ | |
| - | CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, |
| - | curl_formget_callback append); |
| + | CURL_EXTERN int CURL_DEPRECATED(7.56.0, "") |
| + | curl_formget(struct curl_httppost *form, void *arg, |
| + | curl_formget_callback append); |
| /* | |
| * NAME curl_formfree() | |
| * | |
| @@ -2558,7 +2600,8 @@ CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, | |
| * | |
| * Free a multipart formpost previously built with curl_formadd(). | |
| */ | |
| - | CURL_EXTERN void curl_formfree(struct curl_httppost *form); |
| + | CURL_EXTERN void CURL_DEPRECATED(7.56.0, "Use curl_mime_free()") |
| + | curl_formfree(struct curl_httppost *form); |
| /* | |
| * NAME curl_getenv() | |
| @@ -2785,22 +2828,35 @@ typedef enum { | |
| CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, | |
| CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, | |
| CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, | |
| - | CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, |
| + | CURLINFO_SIZE_UPLOAD CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_UPLOAD_T") |
| + | = CURLINFO_DOUBLE + 7, |
| CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7, | |
| - | CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, |
| + | CURLINFO_SIZE_DOWNLOAD |
| + | CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_DOWNLOAD_T") |
| + | = CURLINFO_DOUBLE + 8, |
| CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8, | |
| - | CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, |
| + | CURLINFO_SPEED_DOWNLOAD |
| + | CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_DOWNLOAD_T") |
| + | = CURLINFO_DOUBLE + 9, |
| CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9, | |
| - | CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, |
| + | CURLINFO_SPEED_UPLOAD |
| + | CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_UPLOAD_T") |
| + | = CURLINFO_DOUBLE + 10, |
| CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10, | |
| CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, | |
| CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, | |
| CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, | |
| CURLINFO_FILETIME = CURLINFO_LONG + 14, | |
| CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14, | |
| - | CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, |
| + | CURLINFO_CONTENT_LENGTH_DOWNLOAD |
| + | CURL_DEPRECATED(7.55.0, |
| + | "Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T") |
| + | = CURLINFO_DOUBLE + 15, |
| CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15, | |
| - | CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, |
| + | CURLINFO_CONTENT_LENGTH_UPLOAD |
| + | CURL_DEPRECATED(7.55.0, |
| + | "Use CURLINFO_CONTENT_LENGTH_UPLOAD_T") |
| + | = CURLINFO_DOUBLE + 16, |
| CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16, | |
| CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, | |
| CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, | |
| @@ -2814,7 +2870,8 @@ typedef enum { | |
| CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, | |
| CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, | |
| CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, | |
| - | CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, |
| + | CURLINFO_LASTSOCKET CURL_DEPRECATED(7.45.0, "Use CURLINFO_ACTIVESOCKET") |
| + | = CURLINFO_LONG + 29, |
| CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, | |
| CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, | |
| CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, | |
| @@ -2828,12 +2885,14 @@ typedef enum { | |
| CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, | |
| CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, | |
| CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, | |
| - | CURLINFO_TLS_SESSION = CURLINFO_PTR + 43, |
| + | CURLINFO_TLS_SESSION CURL_DEPRECATED(7.48.0, "Use CURLINFO_TLS_SSL_PTR") |
| + | = CURLINFO_PTR + 43, |
| CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44, | |
| CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45, | |
| CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46, | |
| CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47, | |
| - | CURLINFO_PROTOCOL = CURLINFO_LONG + 48, |
| + | CURLINFO_PROTOCOL CURL_DEPRECATED(7.85.0, "Use CURLINFO_SCHEME") |
| + | = CURLINFO_LONG + 48, |
| CURLINFO_SCHEME = CURLINFO_STRING + 49, | |
| CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50, | |
| CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51, | |
| @@ -318,16 +318,16 @@ typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ | |
| void *userp); /* private callback | |
| pointer */ | |
| - | CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, |
| - | int *running_handles); |
| + | CURL_EXTERN CURLMcode CURL_DEPRECATED(7.19.5, "Use curl_multi_socket_action()") |
| + | curl_multi_socket(CURLM *multi_handle, curl_socket_t s, int *running_handles); |
| CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, | |
| curl_socket_t s, | |
| int ev_bitmask, | |
| int *running_handles); | |
| - | CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, |
| - | int *running_handles); |
| + | CURL_EXTERN CURLMcode CURL_DEPRECATED(7.19.5, "Use curl_multi_socket_action()") |
| + | curl_multi_socket_all(CURLM *multi_handle, int *running_handles); |
| #ifndef CURL_ALLOW_OLD_MULTI_SOCKET | |
| /* This macro below was added in 7.16.3 to push users who recompile to use | |
| @@ -42,107 +42,113 @@ | |
| */ | |
| #define curl_easy_setopt(handle, option, value) \ | |
| __extension__({ \ | |
| - | __typeof__(option) _curl_opt = option; \ |
| + | CURL_IGNORE_DEPRECATION(__typeof__(option) _curl_opt = option;) \ |
| if(__builtin_constant_p(_curl_opt)) { \ | |
| - | if(curlcheck_long_option(_curl_opt)) \ |
| - | if(!curlcheck_long(value)) \ |
| - | _curl_easy_setopt_err_long(); \ |
| - | if(curlcheck_off_t_option(_curl_opt)) \ |
| - | if(!curlcheck_off_t(value)) \ |
| - | _curl_easy_setopt_err_curl_off_t(); \ |
| - | if(curlcheck_string_option(_curl_opt)) \ |
| - | if(!curlcheck_string(value)) \ |
| - | _curl_easy_setopt_err_string(); \ |
| - | if(curlcheck_write_cb_option(_curl_opt)) \ |
| - | if(!curlcheck_write_cb(value)) \ |
| - | _curl_easy_setopt_err_write_callback(); \ |
| - | if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \ |
| - | if(!curlcheck_resolver_start_callback(value)) \ |
| - | _curl_easy_setopt_err_resolver_start_callback(); \ |
| - | if((_curl_opt) == CURLOPT_READFUNCTION) \ |
| - | if(!curlcheck_read_cb(value)) \ |
| - | _curl_easy_setopt_err_read_cb(); \ |
| - | if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ |
| - | if(!curlcheck_ioctl_cb(value)) \ |
| - | _curl_easy_setopt_err_ioctl_cb(); \ |
| - | if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ |
| - | if(!curlcheck_sockopt_cb(value)) \ |
| - | _curl_easy_setopt_err_sockopt_cb(); \ |
| - | if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ |
| - | if(!curlcheck_opensocket_cb(value)) \ |
| - | _curl_easy_setopt_err_opensocket_cb(); \ |
| - | if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ |
| - | if(!curlcheck_progress_cb(value)) \ |
| - | _curl_easy_setopt_err_progress_cb(); \ |
| - | if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ |
| - | if(!curlcheck_debug_cb(value)) \ |
| - | _curl_easy_setopt_err_debug_cb(); \ |
| - | if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ |
| - | if(!curlcheck_ssl_ctx_cb(value)) \ |
| - | _curl_easy_setopt_err_ssl_ctx_cb(); \ |
| - | if(curlcheck_conv_cb_option(_curl_opt)) \ |
| - | if(!curlcheck_conv_cb(value)) \ |
| - | _curl_easy_setopt_err_conv_cb(); \ |
| - | if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ |
| - | if(!curlcheck_seek_cb(value)) \ |
| - | _curl_easy_setopt_err_seek_cb(); \ |
| - | if(curlcheck_cb_data_option(_curl_opt)) \ |
| - | if(!curlcheck_cb_data(value)) \ |
| - | _curl_easy_setopt_err_cb_data(); \ |
| - | if((_curl_opt) == CURLOPT_ERRORBUFFER) \ |
| - | if(!curlcheck_error_buffer(value)) \ |
| - | _curl_easy_setopt_err_error_buffer(); \ |
| - | if((_curl_opt) == CURLOPT_STDERR) \ |
| - | if(!curlcheck_FILE(value)) \ |
| - | _curl_easy_setopt_err_FILE(); \ |
| - | if(curlcheck_postfields_option(_curl_opt)) \ |
| - | if(!curlcheck_postfields(value)) \ |
| - | _curl_easy_setopt_err_postfields(); \ |
| - | if((_curl_opt) == CURLOPT_HTTPPOST) \ |
| - | if(!curlcheck_arr((value), struct curl_httppost)) \ |
| - | _curl_easy_setopt_err_curl_httpost(); \ |
| - | if((_curl_opt) == CURLOPT_MIMEPOST) \ |
| - | if(!curlcheck_ptr((value), curl_mime)) \ |
| - | _curl_easy_setopt_err_curl_mimepost(); \ |
| - | if(curlcheck_slist_option(_curl_opt)) \ |
| - | if(!curlcheck_arr((value), struct curl_slist)) \ |
| - | _curl_easy_setopt_err_curl_slist(); \ |
| - | if((_curl_opt) == CURLOPT_SHARE) \ |
| - | if(!curlcheck_ptr((value), CURLSH)) \ |
| - | _curl_easy_setopt_err_CURLSH(); \ |
| + | (void) option; \ |
| + | CURL_IGNORE_DEPRECATION( \ |
| + | if(curlcheck_long_option(_curl_opt)) \ |
| + | if(!curlcheck_long(value)) \ |
| + | _curl_easy_setopt_err_long(); \ |
| + | if(curlcheck_off_t_option(_curl_opt)) \ |
| + | if(!curlcheck_off_t(value)) \ |
| + | _curl_easy_setopt_err_curl_off_t(); \ |
| + | if(curlcheck_string_option(_curl_opt)) \ |
| + | if(!curlcheck_string(value)) \ |
| + | _curl_easy_setopt_err_string(); \ |
| + | if(curlcheck_write_cb_option(_curl_opt)) \ |
| + | if(!curlcheck_write_cb(value)) \ |
| + | _curl_easy_setopt_err_write_callback(); \ |
| + | if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \ |
| + | if(!curlcheck_resolver_start_callback(value)) \ |
| + | _curl_easy_setopt_err_resolver_start_callback(); \ |
| + | if((_curl_opt) == CURLOPT_READFUNCTION) \ |
| + | if(!curlcheck_read_cb(value)) \ |
| + | _curl_easy_setopt_err_read_cb(); \ |
| + | if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ |
| + | if(!curlcheck_ioctl_cb(value)) \ |
| + | _curl_easy_setopt_err_ioctl_cb(); \ |
| + | if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ |
| + | if(!curlcheck_sockopt_cb(value)) \ |
| + | _curl_easy_setopt_err_sockopt_cb(); \ |
| + | if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ |
| + | if(!curlcheck_opensocket_cb(value)) \ |
| + | _curl_easy_setopt_err_opensocket_cb(); \ |
| + | if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ |
| + | if(!curlcheck_progress_cb(value)) \ |
| + | _curl_easy_setopt_err_progress_cb(); \ |
| + | if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ |
| + | if(!curlcheck_debug_cb(value)) \ |
| + | _curl_easy_setopt_err_debug_cb(); \ |
| + | if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ |
| + | if(!curlcheck_ssl_ctx_cb(value)) \ |
| + | _curl_easy_setopt_err_ssl_ctx_cb(); \ |
| + | if(curlcheck_conv_cb_option(_curl_opt)) \ |
| + | if(!curlcheck_conv_cb(value)) \ |
| + | _curl_easy_setopt_err_conv_cb(); \ |
| + | if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ |
| + | if(!curlcheck_seek_cb(value)) \ |
| + | _curl_easy_setopt_err_seek_cb(); \ |
| + | if(curlcheck_cb_data_option(_curl_opt)) \ |
| + | if(!curlcheck_cb_data(value)) \ |
| + | _curl_easy_setopt_err_cb_data(); \ |
| + | if((_curl_opt) == CURLOPT_ERRORBUFFER) \ |
| + | if(!curlcheck_error_buffer(value)) \ |
| + | _curl_easy_setopt_err_error_buffer(); \ |
| + | if((_curl_opt) == CURLOPT_STDERR) \ |
| + | if(!curlcheck_FILE(value)) \ |
| + | _curl_easy_setopt_err_FILE(); \ |
| + | if(curlcheck_postfields_option(_curl_opt)) \ |
| + | if(!curlcheck_postfields(value)) \ |
| + | _curl_easy_setopt_err_postfields(); \ |
| + | if((_curl_opt) == CURLOPT_HTTPPOST) \ |
| + | if(!curlcheck_arr((value), struct curl_httppost)) \ |
| + | _curl_easy_setopt_err_curl_httpost(); \ |
| + | if((_curl_opt) == CURLOPT_MIMEPOST) \ |
| + | if(!curlcheck_ptr((value), curl_mime)) \ |
| + | _curl_easy_setopt_err_curl_mimepost(); \ |
| + | if(curlcheck_slist_option(_curl_opt)) \ |
| + | if(!curlcheck_arr((value), struct curl_slist)) \ |
| + | _curl_easy_setopt_err_curl_slist(); \ |
| + | if((_curl_opt) == CURLOPT_SHARE) \ |
| + | if(!curlcheck_ptr((value), CURLSH)) \ |
| + | _curl_easy_setopt_err_CURLSH(); \ |
| + | ) \ |
| } \ | |
| curl_easy_setopt(handle, _curl_opt, value); \ | |
| }) | |
| /* wraps curl_easy_getinfo() with typechecking */ | |
| #define curl_easy_getinfo(handle, info, arg) \ | |
| - | __extension__({ \ |
| - | __typeof__(info) _curl_info = info; \ |
| + | __extension__({ \ |
| + | CURL_IGNORE_DEPRECATION(__typeof__(info) _curl_info = info;) \ |
| if(__builtin_constant_p(_curl_info)) { \ | |
| - | if(curlcheck_string_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), char *)) \ |
| - | _curl_easy_getinfo_err_string(); \ |
| - | if(curlcheck_long_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), long)) \ |
| - | _curl_easy_getinfo_err_long(); \ |
| - | if(curlcheck_double_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), double)) \ |
| - | _curl_easy_getinfo_err_double(); \ |
| - | if(curlcheck_slist_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), struct curl_slist *)) \ |
| - | _curl_easy_getinfo_err_curl_slist(); \ |
| - | if(curlcheck_tlssessioninfo_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), struct curl_tlssessioninfo *)) \ |
| - | _curl_easy_getinfo_err_curl_tlssesssioninfo(); \ |
| - | if(curlcheck_certinfo_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), struct curl_certinfo *)) \ |
| - | _curl_easy_getinfo_err_curl_certinfo(); \ |
| - | if(curlcheck_socket_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), curl_socket_t)) \ |
| - | _curl_easy_getinfo_err_curl_socket(); \ |
| - | if(curlcheck_off_t_info(_curl_info)) \ |
| - | if(!curlcheck_arr((arg), curl_off_t)) \ |
| - | _curl_easy_getinfo_err_curl_off_t(); \ |
| + | (void) info; \ |
| + | CURL_IGNORE_DEPRECATION( \ |
| + | if(curlcheck_string_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), char *)) \ |
| + | _curl_easy_getinfo_err_string(); \ |
| + | if(curlcheck_long_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), long)) \ |
| + | _curl_easy_getinfo_err_long(); \ |
| + | if(curlcheck_double_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), double)) \ |
| + | _curl_easy_getinfo_err_double(); \ |
| + | if(curlcheck_slist_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), struct curl_slist *)) \ |
| + | _curl_easy_getinfo_err_curl_slist(); \ |
| + | if(curlcheck_tlssessioninfo_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), struct curl_tlssessioninfo *)) \ |
| + | _curl_easy_getinfo_err_curl_tlssesssioninfo(); \ |
| + | if(curlcheck_certinfo_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), struct curl_certinfo *)) \ |
| + | _curl_easy_getinfo_err_curl_certinfo(); \ |
| + | if(curlcheck_socket_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), curl_socket_t)) \ |
| + | _curl_easy_getinfo_err_curl_socket(); \ |
| + | if(curlcheck_off_t_info(_curl_info)) \ |
| + | if(!curlcheck_arr((arg), curl_off_t)) \ |
| + | _curl_easy_getinfo_err_curl_off_t(); \ |
| + | ) \ |
| } \ | |
| curl_easy_getinfo(handle, _curl_info, arg); \ | |
| }) | |
| @@ -34,7 +34,8 @@ EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl runtests.pl \ | |
| manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py \ | |
| negtelnetserver.py smbserver.py util.py \ | |
| disable-scan.pl manpage-syntax.pl error-codes.pl badsymbols.pl \ | |
| - | azure.pm appveyor.pm version-scan.pl options-scan.pl markdown-uppercase.pl |
| + | azure.pm appveyor.pm version-scan.pl options-scan.pl markdown-uppercase.pl \ |
| + | check-deprecated.pl |
| DISTCLEANFILES = configurehelp.pm | |
| @@ -74,7 +74,8 @@ sub scanenums { | |
| my ($file)=@_; | |
| my $skipit = 0; | |
| - | open H_IN, "-|", "$Cpreprocessor $i$file" || die "Cannot preprocess $file"; |
| + | open H_IN, "-|", "$Cpreprocessor -DCURL_DISABLE_DEPRECATION $i$file" || |
| + | die "Cannot preprocess $file"; |
| while ( <H_IN> ) { | |
| my ($line, $linenum) = ($_, $.); | |
| if( /^#(line|) (\d+) \"(.*)\"/) { | |
| @@ -102,6 +103,7 @@ sub scanenums { | |
| if(($_ !~ /\}(;|)/) && | |
| ($_ ne "typedef") && | |
| ($_ ne "enum") && | |
| + | ($_ ne "=") && |
| ($_ !~ /^[ \t]*$/)) { | |
| if($verbose) { | |
| print "Source: $Cpreprocessor $i$file\n"; | |
| @@ -0,0 +1,330 @@ | |
| + | #!/usr/bin/env perl |
| + | #*************************************************************************** |
| + | # _ _ ____ _ |
| + | # Project ___| | | | _ \| | |
| + | # / __| | | | |_) | | |
| + | # | (__| |_| | _ <| |___ |
| + | # \___|\___/|_| \_\_____| |
| + | # |
| + | # Copyright (C) 2016 - 2022, Daniel Stenberg, <[email protected]>, 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. |
| + | # |
| + | # SPDX-License-Identifier: curl |
| + | # |
| + | # |
| + | ########################################################################### |
| + | # |
| + | # Check that the deprecated statuses of functions and enum values in header |
| + | # files, man pages and symbols-in-versions are in sync. |
| + | |
| + | use strict; |
| + | use warnings; |
| + | |
| + | use File::Basename; |
| + | |
| + | my $root=$ARGV[0] || "."; |
| + | my $incdir = "$root/include/curl"; |
| + | my $docdir = "$root/docs"; |
| + | my $libdocdir = "$docdir/libcurl"; |
| + | my $errcode = 0; |
| + | |
| + | # Symbol-indexed hashes. |
| + | # Values are: |
| + | # X Not deprecated |
| + | # ? Deprecated in unknown version |
| + | # x.yy.z Deprecated in version x.yy.z |
| + | my %syminver; # Symbols-in-versions deprecations. |
| + | my %hdr; # Public header files deprecations. |
| + | my %funcman; # Function man pages deprecations. |
| + | my %optman; # Option man pages deprecations. |
| + | |
| + | |
| + | # Scan header file for public function and enum values. Flag them with |
| + | # the version they are deprecated in, if some. |
| + | sub scan_header { |
| + | my ($f)=@_; |
| + | my $line = ""; |
| + | my $incomment = 0; |
| + | my $inenum = 0; |
| + | |
| + | open H, "<$f"; |
| + | while(<H>) { |
| + | s/^\s*(.*?)\s*$/$1/; # Trim. |
| + | # Remove multi-line comment trail. |
| + | if($incomment) { |
| + | if($_ !~ /.*?\*\/\s*(.*)$/) { |
| + | next; |
| + | } |
| + | $_ = $1; |
| + | $incomment = 0; |
| + | } |
| + | if($line ne "") { |
| + | # Unfold line. |
| + | $_ = "$line $1"; |
| + | $line = ""; |
| + | } |
| + | # Remove comments. |
| + | while($_ =~ /^(.*?)\/\*.*?\*\/(.*)$/) { |
| + | $_ = "$1 $2"; |
| + | } |
| + | if($_ =~ /^(.*)\/\*/) { |
| + | $_ = "$1 "; |
| + | $incomment = 1; |
| + | } |
| + | s/^\s*(.*?)\s*$/$1/; # Trim again. |
| + | # Ignore preprocessor directives and blank lines. |
| + | if($_ =~ /^(?:#|$)/) { |
| + | next; |
| + | } |
| + | # Handle lines that may be continued as if they were folded. |
| + | if($_ !~ /[;,{}]$/) { |
| + | # Folded line. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | if($_ =~ /CURLOPTDEPRECATED\(/) { |
| + | # Handle deprecated CURLOPT_* option. |
| + | if($_ !~ /CURLOPTDEPRECATED\(\s*(\S+)\s*,(?:.*?,){2}\s*(.*?)\s*,.*"\)/) { |
| + | # Folded line. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | $hdr{$1} = $2; |
| + | } |
| + | elsif($_ =~ /CURLOPT\(/) { |
| + | # Handle non-deprecated CURLOPT_* option. |
| + | if($_ !~ /CURLOPT\(\s*(\S+)\s*(?:,.*?){2}\)/) { |
| + | # Folded line. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | $hdr{$1} = "X"; |
| + | } |
| + | else { |
| + | my $version = "X"; |
| + | |
| + | # Get other kind of deprecation from this line. |
| + | if($_ =~ /CURL_DEPRECATED\(/) { |
| + | if($_ !~ /^(.*)CURL_DEPRECATED\(\s*(\S+?)\s*,.*?"\)(.*)$/) { |
| + | # Folded line. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | $version = $2; |
| + | $_ = "$1 $3"; |
| + | } |
| + | if($_ =~ /^CURL_EXTERN\s+.*\s+(\S+?)\s*\(/) { |
| + | # Flag public function. |
| + | $hdr{$1} = $version; |
| + | } |
| + | elsif($inenum && $_ =~ /(\w+)\s*[,=}]/) { |
| + | # Flag enum value. |
| + | $hdr{$1} = $version; |
| + | } |
| + | } |
| + | # Remember if we are in an enum definition. |
| + | $inenum |= ($_ =~ /\benum\b/); |
| + | if($_ =~ /}/) { |
| + | $inenum = 0; |
| + | } |
| + | } |
| + | close H; |
| + | } |
| + | |
| + | # Scan function man page for options. |
| + | # Each option has to be declared as ".IP <option>" where <option> starts with |
| + | # the prefix. Flag each option with its deprecation version, if some. |
| + | sub scan_man_for_opts { |
| + | my ($f, $prefix)=@_; |
| + | my $opt = ""; |
| + | my $line = ""; |
| + | |
| + | open M, "<$f"; |
| + | while(<M>) { |
| + | if($_ =~ /^\./) { |
| + | # roff directive found: end current option paragraph. |
| + | my $o = $opt; |
| + | $opt = ""; |
| + | if($_ =~ /^\.IP\s+((?:$prefix)_\w+)/) { |
| + | # A new option has been found. |
| + | $opt = $1; |
| + | } |
| + | $_ = $line; # Get full paragraph. |
| + | $line = ""; |
| + | s/\\f.//g; # Remove font formatting. |
| + | s/\s+/ /g; # One line with single space only. |
| + | if($o) { |
| + | $funcman{$o} = "X"; |
| + | # Check if paragraph is mentioning deprecation. |
| + | while($_ =~ /(?:deprecated|obsoleted?)\b\s*(?:in\b|since\b)?\s*(?:version\b|curl\b|libcurl\b)?\s*(\d[0-9.]*\d)?\b\s*(.*)$/i) { |
| + | $funcman{$o} = $1 || "?"; |
| + | $_ = $2; |
| + | } |
| + | } |
| + | } |
| + | else { |
| + | # Text line: accumulate. |
| + | $line .= $_; |
| + | } |
| + | } |
| + | close M; |
| + | } |
| + | |
| + | # Scan man page for deprecation in DESCRIPTION and/or AVAILABILITY sections. |
| + | sub scan_man_page { |
| + | my ($path, $sym, $table)=@_; |
| + | my $version = "X"; |
| + | my $fh; |
| + | |
| + | if(open $fh, "<$path") { |
| + | my $section = ""; |
| + | my $line = ""; |
| + | |
| + | while(<$fh>) { |
| + | if($_ =~ /\.so\s+man3\/(.*\.3\b)/) { |
| + | # Handle man page inclusion. |
| + | scan_man_page(dirname($path) . "/$1", $sym, $table); |
| + | $version = exists($$table{$sym})? $$table{$sym}: $version; |
| + | } |
| + | elsif($_ =~ /^\./) { |
| + | # Line is a roff directive. |
| + | if($_ =~ /^\.SH\b\s*(\w*)/) { |
| + | # Section starts. End previous one. |
| + | my $sh = $section; |
| + | |
| + | $section = $1; |
| + | $_ = $line; # Previous section text. |
| + | $line = ""; |
| + | s/\\f.//g; |
| + | s/\s+/ /g; |
| + | s/\\f.//g; # Remove font formatting. |
| + | s/\s+/ /g; # One line with single space only. |
| + | if($sh =~ /DESCRIPTION|AVAILABILITY/) { |
| + | while($_ =~ /(?:deprecated|obsoleted?)\b\s*(?:in\b|since\b)?\s*(?:version\b|curl\b|libcurl\b)?\s*(\d[0-9.]*\d)?\b\s*(.*)$/i) { |
| + | # Flag deprecation status. |
| + | if($version ne "X" && $version ne "?") { |
| + | if($1 && $1 ne $version) { |
| + | print "error: $sym man page lists unmatching deprecation versions $version and $1\n"; |
| + | $errcode++; |
| + | } |
| + | } |
| + | else { |
| + | $version = $1 || "?"; |
| + | } |
| + | $_ = $2; |
| + | } |
| + | } |
| + | } |
| + | } |
| + | else { |
| + | # Text line: accumulate. |
| + | $line .= $_; |
| + | } |
| + | } |
| + | close $fh; |
| + | $$table{$sym} = $version; |
| + | } |
| + | } |
| + | |
| + | |
| + | # Read symbols-in-versions. |
| + | open(F, "<$libdocdir/symbols-in-versions") || |
| + | die "$libdocdir/symbols-in-versions"; |
| + | while(<F>) { |
| + | if($_ =~ /^((?:CURL|LIBCURL)\S+)\s+\S+\s*(\S*)\s*(\S*)$/) { |
| + | if($3 eq "") { |
| + | $syminver{$1} = "X"; |
| + | if($2 ne "" && $2 ne ".") { |
| + | $syminver{$1} = $2; |
| + | } |
| + | } |
| + | } |
| + | } |
| + | close(F); |
| + | |
| + | # Get header file names, |
| + | opendir(my $dh, $incdir) || die "Can't opendir $incdir"; |
| + | my @hfiles = grep { /\.h$/ } readdir($dh); |
| + | closedir $dh; |
| + | |
| + | # Get functions and enum symbols from header files. |
| + | for(@hfiles) { |
| + | scan_header("$incdir/$_"); |
| + | } |
| + | |
| + | # Get function statuses from man pages. |
| + | foreach my $sym (keys %hdr) { |
| + | if($sym =~/^(?:curl|curlx)_\w/) { |
| + | scan_man_page("$libdocdir/$sym.3", $sym, \%funcman); |
| + | } |
| + | } |
| + | |
| + | # Get options from function man pages. |
| + | scan_man_for_opts("$libdocdir/curl_easy_setopt.3", "CURLOPT"); |
| + | scan_man_for_opts("$libdocdir/curl_easy_getinfo.3", "CURLINFO"); |
| + | |
| + | # Get deprecation status from option man pages. |
| + | foreach my $sym (keys %syminver) { |
| + | if($sym =~ /^(?:CURLOPT|CURLINFO)_\w+$/) { |
| + | scan_man_page("$libdocdir/opts/$sym.3", $sym, \%optman); |
| + | } |
| + | } |
| + | |
| + | # Print results. |
| + | my %keys = (%syminver, %funcman, %optman, %hdr); |
| + | my $leader = <<HEADER |
| + | Legend: |
| + | <empty> Not listed |
| + | X Not deprecated |
| + | ? Deprecated in unknown version |
| + | x.yy.z Deprecated in version x.yy.z |
| + | |
| + | Symbol symbols-in func man opt man .h |
| + | -versions |
| + | HEADER |
| + | ; |
| + | foreach my $sym (sort {$a cmp $b} keys %keys) { |
| + | if($sym =~ /^(?:CURLOPT|CURLINFO|curl|curlx)_\w/) { |
| + | my $s = exists($syminver{$sym})? $syminver{$sym}: " "; |
| + | my $f = exists($funcman{$sym})? $funcman{$sym}: " "; |
| + | my $o = exists($optman{$sym})? $optman{$sym}: " "; |
| + | my $h = exists($hdr{$sym})? $hdr{$sym}: " "; |
| + | my $r = " "; |
| + | |
| + | # There are deprecated symbols in symbols-in-versions that are aliases |
| + | # and thus not listed anywhere else. Ignore them. |
| + | "$f$o$h" =~ /[X ]{3}/ && next; |
| + | |
| + | # Check for inconsistencies between deprecations from the different sources. |
| + | foreach my $k ($s, $f, $o, $h) { |
| + | $r = $r eq " "? $k: $r; |
| + | if($k ne " " && $r ne $k) { |
| + | if($r eq "?") { |
| + | $r = $k ne "X"? $k: "!"; |
| + | } |
| + | elsif($r eq "X" || $k ne "?") { |
| + | $r = "!"; |
| + | } |
| + | } |
| + | } |
| + | |
| + | if($r eq "!") { |
| + | print $leader; |
| + | $leader = ""; |
| + | printf("%-38s %-11s %-9s %-9s %s\n", $sym, $s, $f, $o, $h); |
| + | $errcode++; |
| + | } |
| + | } |
| + | } |
| + | |
| + | exit $errcode; |
| @@ -152,7 +152,7 @@ test1184 test1185 test1186 test1187 test1188 test1189 test1190 test1190 \ | |
| test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 \ | |
| test1199 test1200 test1201 test1202 test1203 test1204 test1205 test1206 \ | |
| test1207 test1208 test1209 test1210 test1211 test1212 test1213 test1214 \ | |
| - | test1215 test1216 test1217 test1218 test1219 test1220 test1221 \ |
| + | test1215 test1216 test1217 test1218 test1219 test1220 test1221 test1222 \ |
| test1223 \ | |
| test1224 test1225 test1226 test1227 test1228 test1229 test1230 test1231 \ | |
| test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 \ | |
| @@ -0,0 +1,24 @@ | |
| + | <testcase> |
| + | <info> |
| + | <keywords> |
| + | source analysis |
| + | </keywords> |
| + | </info> |
| + | |
| + | # |
| + | # Client-side |
| + | <client> |
| + | <server> |
| + | none |
| + | </server> |
| + | |
| + | <name> |
| + | Verify deprecation statuses and versions |
| + | </name> |
| + | |
| + | <command type="perl"> |
| + | %SRCDIR/check-deprecated.pl %SRCDIR/.. |
| + | </command> |
| + | </client> |
| + | |
| + | </testcase> |
| @@ -54,6 +54,8 @@ sub scanheader { | |
| open H, "<$f" || die; | |
| my $first = ""; | |
| while(<H>) { | |
| + | s/CURL_DEPRECATED\(.*"\)//; |
| + | s/ */ /g; |
| if (/^(^CURL_EXTERN .*)\(/) { | |
| my $decl = $1; | |
| $decl =~ s/\r$//; | |
| @@ -66,7 +68,7 @@ sub scanheader { | |
| $first = $decl; | |
| } | |
| elsif($first) { | |
| - | if (/^(.*)\(/) { |
| + | if (/^ *(.*)\(/) { |
| my $decl = $1; | |
| $decl =~ s/\r$//; | |
| $first .= $decl; | |
| @@ -71,7 +71,9 @@ int test(char *URL) | |
| /* include headers */ | |
| easy_setopt(curl[i], CURLOPT_HEADER, 1L); | |
| - | easy_setopt(curl[i], CURLOPT_DNS_USE_GLOBAL_CACHE, 1L); |
| + | CURL_IGNORE_DEPRECATION( |
| + | easy_setopt(curl[i], CURLOPT_DNS_USE_GLOBAL_CACHE, 1L); |
| + | ) |
| } | |
| /* make the first one populate the GLOBAL cache */ | |
| @@ -59,8 +59,10 @@ int test(char *URL) | |
| easy_setopt(curl, CURLOPT_URL, URL); | |
| easy_setopt(curl, CURLOPT_TIMEOUT, (long)7); | |
| easy_setopt(curl, CURLOPT_NOSIGNAL, (long)1); | |
| - | easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progressKiller); |
| - | easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); |
| + | CURL_IGNORE_DEPRECATION( |
| + | easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progressKiller); |
| + | easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); |
| + | ) |
| easy_setopt(curl, CURLOPT_NOPROGRESS, (long)0); | |
| res = curl_easy_perform(curl); | |
| @@ -40,7 +40,9 @@ int test(char *URL) | |
| /* Test that protocol is properly initialized on curl_easy_init. | |
| */ | |
| - | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | ) |
| if(res) { | |
| fprintf(stderr, "%s:%d curl_easy_getinfo() failed with code %d (%s)\n", | |
| __FILE__, __LINE__, res, curl_easy_strerror(res)); | |
| @@ -65,7 +67,9 @@ int test(char *URL) | |
| /* Test that a protocol is properly set after receiving an HTTP resource. | |
| */ | |
| - | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | ) |
| if(res) { | |
| fprintf(stderr, "%s:%d curl_easy_getinfo() failed with code %d (%s)\n", | |
| __FILE__, __LINE__, res, curl_easy_strerror(res)); | |
| @@ -90,7 +94,9 @@ int test(char *URL) | |
| goto test_cleanup; | |
| } | |
| - | res = curl_easy_getinfo(dupe, CURLINFO_PROTOCOL, &protocol); |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(dupe, CURLINFO_PROTOCOL, &protocol); |
| + | ) |
| if(res) { | |
| fprintf(stderr, "%s:%d curl_easy_getinfo() failed with code %d (%s)\n", | |
| __FILE__, __LINE__, res, curl_easy_strerror(res)); | |
| @@ -109,7 +115,9 @@ int test(char *URL) | |
| curl_easy_reset(curl); | |
| - | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | ) |
| if(res) { | |
| fprintf(stderr, "%s:%d curl_easy_getinfo() failed with code %d (%s)\n", | |
| __FILE__, __LINE__, res, curl_easy_strerror(res)); | |
| @@ -64,8 +64,10 @@ int test(char *URL) | |
| easy_setopt(curl, CURLOPT_URL, URL); | |
| easy_setopt(curl, CURLOPT_TIMEOUT, (long)7); | |
| easy_setopt(curl, CURLOPT_NOSIGNAL, (long)1); | |
| - | easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progressCallback); |
| - | easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); |
| + | CURL_IGNORE_DEPRECATION( |
| + | easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progressCallback); |
| + | easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); |
| + | ) |
| easy_setopt(curl, CURLOPT_NOPROGRESS, (long)0); | |
| res = curl_easy_perform(curl); | |
| @@ -44,7 +44,9 @@ int test(char *URL) | |
| goto test_cleanup; | |
| } | |
| - | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
| + | ) |
| if(res) { | |
| fprintf(stderr, "curl_easy_getinfo() returned %d (%s)\n", | |
| res, curl_easy_strerror(res)); | |
| @@ -101,7 +101,7 @@ int test(char *URL) | |
| test_setopt(curl, CURLOPT_URL, URL); | |
| test_setopt(curl, CURLOPT_HTTPHEADER, hhl); | |
| - | test_setopt(curl, CURLOPT_PUT, 1L); |
| + | test_setopt(curl, CURLOPT_UPLOAD, 1L); |
| test_setopt(curl, CURLOPT_READFUNCTION, read_callback); | |
| test_setopt(curl, CURLOPT_TRAILERFUNCTION, trailers_callback); | |
| test_setopt(curl, CURLOPT_TRAILERDATA, NULL); | |
| @@ -61,16 +61,18 @@ int test(char *URL) | |
| /* | |
| * Whitelist string options that are safe for abuse | |
| */ | |
| - | switch(o->id) { |
| - | case CURLOPT_PROXY_TLSAUTH_TYPE: |
| - | case CURLOPT_TLSAUTH_TYPE: |
| - | case CURLOPT_RANDOM_FILE: |
| - | case CURLOPT_EGDSOCKET: |
| - | continue; |
| - | default: |
| - | /* check this */ |
| - | break; |
| - | } |
| + | CURL_IGNORE_DEPRECATION( |
| + | switch(o->id) { |
| + | case CURLOPT_PROXY_TLSAUTH_TYPE: |
| + | case CURLOPT_TLSAUTH_TYPE: |
| + | case CURLOPT_RANDOM_FILE: |
| + | case CURLOPT_EGDSOCKET: |
| + | continue; |
| + | default: |
| + | /* check this */ |
| + | break; |
| + | } |
| + | ) |
| /* This is a string. Make sure that passing in a string longer | |
| CURL_MAX_INPUT_LENGTH returns an error */ | |
| @@ -39,42 +39,44 @@ int test(char *URL) | |
| for(o = curl_easy_option_next(NULL); | |
| o; | |
| o = curl_easy_option_next(o)) { | |
| - | /* Test for mismatch OR missing typecheck macros */ |
| - | if(curlcheck_long_option(o->id) != |
| - | (o->type == CURLOT_LONG || o->type == CURLOT_VALUES)) { |
| - | print_err(o->name, "CURLOT_LONG or CURLOT_VALUES"); |
| - | error++; |
| - | } |
| - | if(curlcheck_off_t_option(o->id) != (o->type == CURLOT_OFF_T)) { |
| - | print_err(o->name, "CURLOT_OFF_T"); |
| - | error++; |
| - | } |
| - | if(curlcheck_string_option(o->id) != (o->type == CURLOT_STRING)) { |
| - | print_err(o->name, "CURLOT_STRING"); |
| - | error++; |
| - | } |
| - | if(curlcheck_slist_option(o->id) != (o->type == CURLOT_SLIST)) { |
| - | print_err(o->name, "CURLOT_SLIST"); |
| - | error++; |
| - | } |
| - | if(curlcheck_cb_data_option(o->id) != (o->type == CURLOT_CBPTR)) { |
| - | print_err(o->name, "CURLOT_CBPTR"); |
| - | error++; |
| - | } |
| - | /* From here: only test that the type matches if macro is known */ |
| - | if(curlcheck_write_cb_option(o->id) && (o->type != CURLOT_FUNCTION)) { |
| - | print_err(o->name, "CURLOT_FUNCTION"); |
| - | error++; |
| - | } |
| - | if(curlcheck_conv_cb_option(o->id) && (o->type != CURLOT_FUNCTION)) { |
| - | print_err(o->name, "CURLOT_FUNCTION"); |
| - | error++; |
| - | } |
| - | if(curlcheck_postfields_option(o->id) && (o->type != CURLOT_OBJECT)) { |
| - | print_err(o->name, "CURLOT_OBJECT"); |
| - | error++; |
| - | } |
| - | /* Todo: no gcc typecheck for CURLOPTTYPE_BLOB types? */ |
| + | CURL_IGNORE_DEPRECATION( |
| + | /* Test for mismatch OR missing typecheck macros */ |
| + | if(curlcheck_long_option(o->id) != |
| + | (o->type == CURLOT_LONG || o->type == CURLOT_VALUES)) { |
| + | print_err(o->name, "CURLOT_LONG or CURLOT_VALUES"); |
| + | error++; |
| + | } |
| + | if(curlcheck_off_t_option(o->id) != (o->type == CURLOT_OFF_T)) { |
| + | print_err(o->name, "CURLOT_OFF_T"); |
| + | error++; |
| + | } |
| + | if(curlcheck_string_option(o->id) != (o->type == CURLOT_STRING)) { |
| + | print_err(o->name, "CURLOT_STRING"); |
| + | error++; |
| + | } |
| + | if(curlcheck_slist_option(o->id) != (o->type == CURLOT_SLIST)) { |
| + | print_err(o->name, "CURLOT_SLIST"); |
| + | error++; |
| + | } |
| + | if(curlcheck_cb_data_option(o->id) != (o->type == CURLOT_CBPTR)) { |
| + | print_err(o->name, "CURLOT_CBPTR"); |
| + | error++; |
| + | } |
| + | /* From here: only test that the type matches if macro is known */ |
| + | if(curlcheck_write_cb_option(o->id) && (o->type != CURLOT_FUNCTION)) { |
| + | print_err(o->name, "CURLOT_FUNCTION"); |
| + | error++; |
| + | } |
| + | if(curlcheck_conv_cb_option(o->id) && (o->type != CURLOT_FUNCTION)) { |
| + | print_err(o->name, "CURLOT_FUNCTION"); |
| + | error++; |
| + | } |
| + | if(curlcheck_postfields_option(o->id) && (o->type != CURLOT_OBJECT)) { |
| + | print_err(o->name, "CURLOT_OBJECT"); |
| + | error++; |
| + | } |
| + | /* Todo: no gcc typecheck for CURLOPTTYPE_BLOB types? */ |
| + | ) |
| } | |
| #endif | |
| (void)URL; | |
| @@ -44,7 +44,9 @@ int test(char *URL) | |
| /* First set the URL that is about to receive our POST. */ | |
| test_setopt(curl, CURLOPT_URL, URL); | |
| - | test_setopt(curl, CURLOPT_HTTPPOST, NULL); |
| + | CURL_IGNORE_DEPRECATION( |
| + | test_setopt(curl, CURLOPT_HTTPPOST, NULL); |
| + | ) |
| test_setopt(curl, CURLOPT_VERBOSE, 1L); /* show verbose for debug */ | |
| test_setopt(curl, CURLOPT_HEADER, 1L); /* include header */ | |
| @@ -100,8 +100,10 @@ int test(char *URL) | |
| test_setopt(curl, CURLOPT_POSTFIELDS, UPLOADTHIS); | |
| #else | |
| /* 547 style, which means reading the POST data from a callback */ | |
| - | test_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctlcallback); |
| - | test_setopt(curl, CURLOPT_IOCTLDATA, &counter); |
| + | CURL_IGNORE_DEPRECATION( |
| + | test_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctlcallback); |
| + | test_setopt(curl, CURLOPT_IOCTLDATA, &counter); |
| + | ) |
| test_setopt(curl, CURLOPT_READFUNCTION, readcallback); | |
| test_setopt(curl, CURLOPT_READDATA, &counter); | |
| /* We CANNOT do the POST fine without setting the size (or choose | |
| @@ -200,7 +200,9 @@ int test(char *URL) | |
| test_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); | |
| /* Ioctl function */ | |
| - | test_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctl_callback); |
| + | CURL_IGNORE_DEPRECATION( |
| + | test_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctl_callback); |
| + | ) |
| test_setopt(curl, CURLOPT_PROXY, libtest_arg2); | |
| @@ -21,6 +21,7 @@ | |
| * SPDX-License-Identifier: curl | |
| * | |
| ***************************************************************************/ | |
| + | #define CURL_DISABLE_DEPRECATION /* Using and testing the form api */ |
| #include "test.h" | |
| #include "memdebug.h" | |
| @@ -95,8 +95,10 @@ int test(char *URL) | |
| easy_setopt(curl, CURLOPT_HEADER, 1L); | |
| /* read the POST data from a callback */ | |
| - | easy_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctlcallback); |
| - | easy_setopt(curl, CURLOPT_IOCTLDATA, &counter); |
| + | CURL_IGNORE_DEPRECATION( |
| + | easy_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctlcallback); |
| + | easy_setopt(curl, CURLOPT_IOCTLDATA, &counter); |
| + | ) |
| easy_setopt(curl, CURLOPT_READFUNCTION, readcallback); | |
| easy_setopt(curl, CURLOPT_READDATA, &counter); | |
| /* We CANNOT do the POST fine without setting the size (or choose | |
| @@ -51,8 +51,10 @@ int test(char *URL) | |
| if(!res) { | |
| FILE *moo; | |
| - | res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, |
| - | &content_length); |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, |
| + | &content_length); |
| + | ) |
| moo = fopen(libtest_arg2, "wb"); | |
| if(moo) { | |
| fprintf(moo, "CL %.0f\n", content_length); | |
| @@ -78,10 +78,10 @@ int test(char *URL) | |
| test_setopt(curl, CURLOPT_POSTFIELDS, data); | |
| /* we want to use our own progress function */ | |
| - | test_setopt(curl, CURLOPT_NOPROGRESS, 0L); |
| - | test_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); |
| - | |
| - | /* pointer to pass to our read function */ |
| + | CURL_IGNORE_DEPRECATION( |
| + | test_setopt(curl, CURLOPT_NOPROGRESS, 0L); |
| + | test_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); |
| + | ) |
| /* get verbose debug output please */ | |
| test_setopt(curl, CURLOPT_VERBOSE, 1L); | |
| @@ -139,7 +139,9 @@ int test(char *URL) | |
| /* we want to use our own progress function */ | |
| test_setopt(curl, CURLOPT_NOPROGRESS, 0L); | |
| - | test_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); |
| + | CURL_IGNORE_DEPRECATION( |
| + | test_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); |
| + | ) |
| /* Perform the request, res will get the return code */ | |
| res = curl_easy_perform(curl); | |
| @@ -64,7 +64,9 @@ int test(char *URL) | |
| /* we want to use our own progress function */ | |
| test_setopt(curl, CURLOPT_NOPROGRESS, 0L); | |
| - | test_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); |
| + | CURL_IGNORE_DEPRECATION( |
| + | test_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback); |
| + | ) |
| /* get verbose debug output please */ | |
| test_setopt(curl, CURLOPT_VERBOSE, 1L); | |
| @@ -80,8 +82,10 @@ int test(char *URL) | |
| if(!res) { | |
| FILE *moo; | |
| - | res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, |
| + | CURL_IGNORE_DEPRECATION( |
| + | res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, |
| &content_length); | |
| + | ) |
| moo = fopen(libtest_arg2, "wb"); | |
| if(moo) { | |
| fprintf(moo, "CL %.0f\n", content_length); | |
| @@ -21,6 +21,7 @@ | |
| * SPDX-License-Identifier: curl | |
| * | |
| ***************************************************************************/ | |
| + | #define CURL_DISABLE_DEPRECATION /* Using and testing the form api */ |
| #include "test.h" | |
| #include "memdebug.h" | |
| @@ -21,6 +21,7 @@ | |
| * SPDX-License-Identifier: curl | |
| * | |
| ***************************************************************************/ | |
| + | #define CURL_DISABLE_DEPRECATION /* Using and testing the form api */ |
| #include "test.h" | |
| #include "memdebug.h" | |
| @@ -24,6 +24,10 @@ | |
| #include <time.h> | |
| + | #if !defined(LIB670) && !defined(LIB671) |
| + | #define CURL_DISABLE_DEPRECATION /* Using and testing the form api */ |
| + | #endif |
| + | |
| #include "test.h" | |
| #include "memdebug.h" | |
| @@ -50,7 +50,9 @@ static size_t callback(char *ptr, size_t size, size_t nmemb, void *data) | |
| counter[idx] += (int)(size * nmemb); | |
| /* Get socket being used for this easy handle, otherwise CURL_SOCKET_BAD */ | |
| - | code = curl_easy_getinfo(easy[idx], CURLINFO_LASTSOCKET, &longdata); |
| + | CURL_IGNORE_DEPRECATION( |
| + | code = curl_easy_getinfo(easy[idx], CURLINFO_LASTSOCKET, &longdata); |
| + | ) |
| if(CURLE_OK != code) { | |
| fprintf(stderr, "%s:%d curl_easy_getinfo() failed, " | |
| "with code %d (%s)\n", | |
| @@ -31,6 +31,8 @@ my $minlong = "LONG_MIN"; | |
| my $maxlong = "LONG_MAX"; | |
| # maximum long unsigned value | |
| my $maxulong = "ULONG_MAX"; | |
| + | my $line = ""; |
| + | my $incomment = 0; |
| print <<HEADER | |
| /*************************************************************************** | |
| @@ -56,6 +58,7 @@ print <<HEADER | |
| * SPDX-License-Identifier: curl | |
| * | |
| ***************************************************************************/ | |
| + | #define CURL_DISABLE_DEPRECATION /* Deprecated options are tested too */ |
| #include "test.h" | |
| #include "memdebug.h" | |
| #include <limits.h> | |
| @@ -182,7 +185,54 @@ HEADER | |
| ; | |
| while(<STDIN>) { | |
| - | if($_ =~ /^ CURLOPT\(([^ ]*), ([^ ]*), (\d*)\)/) { |
| + | s/^\s*(.*?)\s*$/$1/; # Trim. |
| + | # Remove multi-line comment trail. |
| + | if($incomment) { |
| + | if($_ !~ /.*?\*\/\s*(.*)$/) { |
| + | next; |
| + | } |
| + | $_ = $1; |
| + | $incomment = 0; |
| + | } |
| + | if($line ne "") { |
| + | # Unfold line. |
| + | $_ = "$line $1"; |
| + | $line = ""; |
| + | } |
| + | # Remove comments. |
| + | while($_ =~ /^(.*?)\/\*.*?\*\/(.*)$/) { |
| + | $_ = "$1 $2"; |
| + | } |
| + | s/^\s*(.*?)\s*$/$1/; # Trim again. |
| + | if($_ =~ /^(.*)\/\*/) { |
| + | $_ = $1; |
| + | $incomment = 1; |
| + | } |
| + | # Ignore preprocessor directives and blank lines. |
| + | if($_ =~ /^(?:#|$)/) { |
| + | next; |
| + | } |
| + | # Handle lines that may be continued as if they were folded. |
| + | if($_ !~ /[;,{}]$/) { |
| + | # Folded line. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | if($_ =~ / CURL_DEPRECATED\(/) { |
| + | # Drop deprecation info. |
| + | if($_ !~ /^(.*?) CURL_DEPRECATED\(.*?"\)(.*)$/) { |
| + | # Needs unfolding. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | $_ = $1 . $2; |
| + | } |
| + | if($_ =~ /^CURLOPT(?:DEPRECATED)?\(/ && $_ !~ /\),$/) { |
| + | # Multi-line CURLOPTs need unfolding. |
| + | $line = $_; |
| + | next; |
| + | } |
| + | if($_ =~ /^CURLOPT(?:DEPRECATED)?\(([^ ]*), ([^ ]*), (\d*)[,)]/) { |
| my ($name, $type, $val)=($1, $2, $3); | |
| my $w=" "; | |
| my $pref = "${w}res = curl_easy_setopt(curl, $name,"; | |
| @@ -258,11 +308,11 @@ while(<STDIN>) { | |
| exit 22; # exit to make this noticed! | |
| } | |
| } | |
| - | elsif($_ =~ /^ CURLINFO_NONE/) { |
| + | elsif($_ =~ /^CURLINFO_NONE/) { |
| $infomode = 1; | |
| } | |
| elsif($infomode && | |
| - | ($_ =~ /^ CURLINFO_([^ ]*) *= *CURLINFO_([^ ]*)/)) { |
| + | ($_ =~ /^CURLINFO_([^ ]*) *= *CURLINFO_([^ ]*)/)) { |
| my ($info, $type)=($1, $2); | |
| my $c = " res = curl_easy_getinfo(curl, CURLINFO_$info,"; | |
| my $check = " if(UNEX(res)) {\n geterr(\"$info\", res, __LINE__);\n goto test_cleanup;\n }\n"; | |
| @@ -21,6 +21,7 @@ | |
| * SPDX-License-Identifier: curl | |
| * | |
| ***************************************************************************/ | |
| + | #define CURL_DISABLE_DEPRECATION /* Testing the form api */ |
| #include "curlcheck.h" | |
| #include <curl/curl.h> | |