From 511f2a666276f74e7bea2faf9f21dae0fa33b22c Mon Sep 17 00:00:00 2001 From: "jk7744.park" Date: Tue, 8 Sep 2015 21:49:16 +0900 Subject: [PATCH] tizen 2.3.1 release --- Android.mk | 106 - CHANGES | 4708 +-- CHANGES.0 | 18002 +++++++++ CMake/CheckTypeSize.c.in | 44 - CMake/CheckTypeSize.cmake | 57 - CMake/CurlCheckCSourceCompiles.cmake | 75 - CMake/CurlCheckCSourceRuns.cmake | 83 - CMake/CurlTests.c | 335 +- CMake/FindCARES.cmake | 42 + CMake/FindGSS.cmake | 289 + CMake/FindLibSSH2.cmake | 35 + CMake/FindOpenSSL.cmake | 19 - CMake/FindZLIB.cmake | 8 - CMake/Macros.cmake | 95 + CMake/OtherTests.cmake | 207 +- CMake/Platforms/WindowsCache.cmake | 8 +- CMakeLists.txt | 737 +- COPYING | 2 +- CTestConfig.cmake | 13 + GIT-INFO | 67 + MacOSX-Framework | 54 +- Makefile | 309 - Makefile.am | 405 +- Makefile.dist | 575 + Makefile.in | 893 - RELEASE-NOTES | 80 +- acinclude.m4 | 344 +- aclocal.m4 | 903 - buildconf | 195 +- buildconf.bat | 38 + compile | 142 - config.guess | 1502 - config.sub | 1714 - configure | 37624 ------------------- configure.ac | 1860 +- contributors.sh | 87 + curl-config.in | 107 +- curl-style.el | 50 - curl.manifest | 5 + debian/changelog | 1366 - debian/changelog.old-ssl | 335 - debian/compat | 1 - debian/control | 74 - debian/copyright | 66 - debian/libcurl3-dbg.dirs | 1 - debian/libcurl3.dirs | 2 - debian/libcurl3.install | 1 - debian/libcurl3.links | 1 - debian/libcurl3.lintian-overrides | 1 - debian/libcurl4-openssl-dev.dirs | 3 - debian/libcurl4-openssl-dev.install | 6 - debian/rules | 181 - debian/source/format | 1 - debian/watch | 2 - depcomp | 530 - docs/.gitignore | 2 + docs/BINDINGS | 33 +- docs/BUGS | 89 +- docs/CONTRIBUTE | 109 +- docs/DISTRO-DILEMMA | 8 +- docs/FAQ | 510 +- docs/FEATURES | 114 +- docs/HISTORY | 250 +- docs/HTTP-COOKIES | 123 + docs/INSTALL | 367 +- docs/INSTALL.cmake | 100 + docs/INSTALL.devcpp | 2 +- docs/INTERNALS | 226 +- docs/KNOWN_BUGS | 122 +- docs/LIBCURL-STRUCTS | 245 + docs/LICENSE-MIXING | 22 +- docs/MAIL-ETIQUETTE | 265 + docs/MANUAL | 189 +- docs/Makefile.am | 28 +- docs/Makefile.in | 649 - docs/README.cmake | 16 + docs/README.netware | 2 +- docs/RELEASE-PROCEDURE | 94 + docs/ROADMAP.md | 85 + docs/SECURITY | 107 + docs/SSL-PROBLEMS | 67 + docs/SSLCERTS | 137 +- docs/THANKS | 458 +- docs/THANKS-filter | 48 + docs/TODO | 563 +- docs/TheArtOfHttpScripting | 376 +- docs/VERSIONS | 29 +- docs/curl-config.1 | 5 +- docs/curl-config.html | 90 - docs/curl-config.pdf | Bin 5991 -> 0 bytes docs/curl.1 | 1775 +- docs/curl.html | 848 - docs/curl.pdf | Bin 83314 -> 0 bytes docs/examples/.gitignore | 75 + docs/examples/10-at-a-time.c | 18 +- docs/examples/Makefile.am | 46 +- docs/examples/Makefile.example | 15 +- docs/examples/Makefile.in | 832 - docs/examples/Makefile.inc | 38 +- docs/examples/Makefile.m32 | 231 +- docs/examples/Makefile.netware | 434 + docs/examples/README | 6 + docs/examples/adddocsref.pl | 35 + docs/examples/anyauthput.c | 37 +- docs/examples/asiohiper.cpp | 467 + docs/examples/cacertinmem.c | 23 +- docs/examples/certinfo.c | 50 +- docs/examples/chkspeed.c | 37 +- docs/examples/cookie_interface.c | 21 +- docs/examples/curlgtk.c | 2 - docs/examples/curlx.c | 3 +- docs/examples/debug.c | 29 +- docs/examples/evhiperfifo.c | 22 +- docs/examples/externalsocket.c | 153 + docs/examples/fileupload.c | 35 +- docs/examples/fopen.c | 55 +- docs/examples/ftp-wildcard.c | 37 +- docs/examples/ftpget.c | 20 +- docs/examples/ftpgetinfo.c | 34 +- docs/examples/ftpgetresp.c | 28 +- docs/examples/ftpsget.c | 101 + docs/examples/ftpupload.c | 30 +- docs/examples/ftpuploadresume.c | 19 +- docs/examples/getinfo.c | 18 +- docs/examples/getinmemory.c | 61 +- docs/examples/ghiper.c | 18 +- docs/examples/hiperfifo.c | 88 +- docs/examples/href_extractor.c | 86 + docs/examples/htmltidy.c | 17 +- docs/examples/htmltitle.cc | 301 - docs/examples/htmltitle.cpp | 313 + docs/examples/http-post.c | 27 +- docs/examples/httpcustomheader.c | 44 +- docs/examples/httpput.c | 35 +- docs/examples/https.c | 30 +- docs/examples/imap-append.c | 116 + docs/examples/imap-copy.c | 65 + docs/examples/imap-create.c | 61 + docs/examples/imap-delete.c | 61 + docs/examples/imap-examine.c | 61 + docs/examples/imap-fetch.c | 58 + docs/examples/imap-list.c | 60 + docs/examples/imap-lsub.c | 62 + docs/examples/imap-multi.c | 167 + docs/examples/imap-noop.c | 61 + docs/examples/imap-search.c | 65 + docs/examples/imap-ssl.c | 85 + docs/examples/imap-store.c | 76 + docs/examples/imap-tls.c | 84 + docs/examples/makefile.dj | 23 +- docs/examples/multi-app.c | 59 +- docs/examples/multi-debugcallback.c | 65 +- docs/examples/multi-double.c | 59 +- docs/examples/multi-post.c | 61 +- docs/examples/multi-single.c | 103 +- docs/examples/multi-uv.c | 230 + docs/examples/multithread.c | 18 +- docs/examples/opensslthreadlock.c | 17 +- docs/examples/persistant.c | 32 +- docs/examples/pop3-dele.c | 64 + docs/examples/pop3-list.c | 58 + docs/examples/pop3-multi.c | 167 + docs/examples/pop3-noop.c | 64 + docs/examples/pop3-retr.c | 58 + docs/examples/pop3-ssl.c | 85 + docs/examples/pop3-stat.c | 64 + docs/examples/pop3-tls.c | 84 + docs/examples/pop3-top.c | 61 + docs/examples/pop3-uidl.c | 61 + docs/examples/post-callback.c | 39 +- docs/examples/postinmemory.c | 111 + docs/examples/postit2.c | 25 +- docs/examples/progressfunc.c | 119 + docs/examples/resolve.c | 51 + docs/examples/rtsp.c | 271 + docs/examples/sampleconv.c | 17 +- docs/examples/sendrecv.c | 38 +- docs/examples/sepheaders.c | 47 +- docs/examples/sessioninfo.c | 105 + docs/examples/sftpget.c | 106 + docs/examples/simple.c | 26 +- docs/examples/simplepost.c | 23 +- docs/examples/simplessl.c | 38 +- docs/examples/smooth-gtk-thread.c | 19 +- docs/examples/smtp-expn.c | 73 + docs/examples/smtp-mail.c | 137 + docs/examples/smtp-multi.c | 229 +- docs/examples/smtp-ssl.c | 161 + docs/examples/smtp-tls.c | 163 + docs/examples/smtp-vrfy.c | 73 + docs/examples/synctime.c | 36 +- docs/examples/threaded-ssl.c | 17 +- docs/examples/url2file.c | 80 + docs/examples/usercertinmem.c | 224 + docs/examples/version-check.pl | 2 +- docs/examples/xmlstream.c | 158 + docs/index.html | 2 +- docs/libcurl/.gitignore | 2 + docs/libcurl/ABI | 19 +- docs/libcurl/Makefile.am | 36 +- docs/libcurl/Makefile.in | 539 - docs/libcurl/curl_easy_cleanup.3 | 41 +- docs/libcurl/curl_easy_cleanup.html | 59 - docs/libcurl/curl_easy_cleanup.pdf | Bin 3895 -> 0 bytes docs/libcurl/curl_easy_duphandle.3 | 29 +- docs/libcurl/curl_easy_duphandle.html | 59 - docs/libcurl/curl_easy_duphandle.pdf | Bin 4005 -> 0 bytes docs/libcurl/curl_easy_escape.3 | 25 +- docs/libcurl/curl_easy_escape.html | 58 - docs/libcurl/curl_easy_escape.pdf | Bin 3985 -> 0 bytes docs/libcurl/curl_easy_getinfo.3 | 100 +- docs/libcurl/curl_easy_getinfo.html | 173 - docs/libcurl/curl_easy_getinfo.pdf | Bin 16489 -> 0 bytes docs/libcurl/curl_easy_init.3 | 58 +- docs/libcurl/curl_easy_init.html | 58 - docs/libcurl/curl_easy_init.pdf | Bin 4041 -> 0 bytes docs/libcurl/curl_easy_pause.3 | 52 +- docs/libcurl/curl_easy_pause.html | 71 - docs/libcurl/curl_easy_pause.pdf | Bin 6260 -> 0 bytes docs/libcurl/curl_easy_perform.3 | 82 +- docs/libcurl/curl_easy_perform.html | 58 - docs/libcurl/curl_easy_perform.pdf | Bin 4373 -> 0 bytes docs/libcurl/curl_easy_recv.3 | 13 +- docs/libcurl/curl_easy_recv.html | 62 - docs/libcurl/curl_easy_recv.pdf | Bin 5209 -> 0 bytes docs/libcurl/curl_easy_reset.3 | 25 +- docs/libcurl/curl_easy_reset.html | 58 - docs/libcurl/curl_easy_reset.pdf | Bin 3659 -> 0 bytes docs/libcurl/curl_easy_send.3 | 7 +- docs/libcurl/curl_easy_send.html | 61 - docs/libcurl/curl_easy_send.pdf | Bin 4966 -> 0 bytes docs/libcurl/curl_easy_setopt.3 | 2156 +- docs/libcurl/curl_easy_setopt.html | 807 - docs/libcurl/curl_easy_setopt.pdf | Bin 119264 -> 0 bytes docs/libcurl/curl_easy_strerror.3 | 37 +- docs/libcurl/curl_easy_strerror.html | 58 - docs/libcurl/curl_easy_strerror.pdf | 108 - docs/libcurl/curl_easy_unescape.3 | 4 +- docs/libcurl/curl_easy_unescape.html | 59 - docs/libcurl/curl_easy_unescape.pdf | Bin 4116 -> 0 bytes docs/libcurl/curl_escape.3 | 24 +- docs/libcurl/curl_escape.html | 59 - docs/libcurl/curl_escape.pdf | Bin 3991 -> 0 bytes docs/libcurl/curl_formadd.3 | 62 +- docs/libcurl/curl_formadd.html | 161 - docs/libcurl/curl_formadd.pdf | Bin 12118 -> 0 bytes docs/libcurl/curl_formfree.3 | 31 +- docs/libcurl/curl_formfree.html | 55 - docs/libcurl/curl_formfree.pdf | Bin 3391 -> 0 bytes docs/libcurl/curl_formget.3 | 48 +- docs/libcurl/curl_formget.html | 80 - docs/libcurl/curl_formget.pdf | Bin 4058 -> 0 bytes docs/libcurl/curl_free.3 | 28 +- docs/libcurl/curl_free.html | 54 - docs/libcurl/curl_free.pdf | Bin 3260 -> 0 bytes docs/libcurl/curl_getdate.3 | 51 +- docs/libcurl/curl_getdate.html | 93 - docs/libcurl/curl_getdate.pdf | Bin 6912 -> 0 bytes docs/libcurl/curl_getenv.3 | 22 +- docs/libcurl/curl_getenv.html | 57 - docs/libcurl/curl_getenv.pdf | Bin 4165 -> 0 bytes docs/libcurl/curl_global_cleanup.3 | 24 +- docs/libcurl/curl_global_cleanup.html | 59 - docs/libcurl/curl_global_cleanup.pdf | Bin 3836 -> 0 bytes docs/libcurl/curl_global_init.3 | 44 +- docs/libcurl/curl_global_init.html | 65 - docs/libcurl/curl_global_init.pdf | Bin 4721 -> 0 bytes docs/libcurl/curl_global_init_mem.3 | 26 +- docs/libcurl/curl_global_init_mem.html | 74 - docs/libcurl/curl_global_init_mem.pdf | Bin 4050 -> 0 bytes docs/libcurl/curl_mprintf.3 | 22 +- docs/libcurl/curl_mprintf.html | 70 - docs/libcurl/curl_mprintf.pdf | Bin 5902 -> 0 bytes docs/libcurl/curl_multi_add_handle.3 | 62 +- docs/libcurl/curl_multi_add_handle.html | 61 - docs/libcurl/curl_multi_add_handle.pdf | Bin 4074 -> 0 bytes docs/libcurl/curl_multi_assign.3 | 36 +- docs/libcurl/curl_multi_assign.html | 61 - docs/libcurl/curl_multi_assign.pdf | 117 - docs/libcurl/curl_multi_cleanup.3 | 25 +- docs/libcurl/curl_multi_cleanup.html | 58 - docs/libcurl/curl_multi_cleanup.pdf | Bin 3766 -> 0 bytes docs/libcurl/curl_multi_fdset.3 | 70 +- docs/libcurl/curl_multi_fdset.html | 64 - docs/libcurl/curl_multi_fdset.pdf | Bin 4472 -> 0 bytes docs/libcurl/curl_multi_info_read.3 | 22 +- docs/libcurl/curl_multi_info_read.html | 72 - docs/libcurl/curl_multi_info_read.pdf | Bin 4892 -> 0 bytes docs/libcurl/curl_multi_init.3 | 22 +- docs/libcurl/curl_multi_init.html | 56 - docs/libcurl/curl_multi_init.pdf | Bin 3400 -> 0 bytes docs/libcurl/curl_multi_perform.3 | 58 +- docs/libcurl/curl_multi_perform.html | 60 - docs/libcurl/curl_multi_perform.pdf | Bin 5412 -> 0 bytes docs/libcurl/curl_multi_remove_handle.3 | 37 +- docs/libcurl/curl_multi_remove_handle.html | 57 - docs/libcurl/curl_multi_remove_handle.pdf | Bin 3852 -> 0 bytes docs/libcurl/curl_multi_setopt.3 | 109 +- docs/libcurl/curl_multi_setopt.html | 73 - docs/libcurl/curl_multi_setopt.pdf | Bin 7292 -> 0 bytes docs/libcurl/curl_multi_socket.3 | 22 +- docs/libcurl/curl_multi_socket.html | 106 - docs/libcurl/curl_multi_socket.pdf | Bin 9379 -> 0 bytes docs/libcurl/curl_multi_socket_action.3 | 39 +- docs/libcurl/curl_multi_socket_action.html | 101 - docs/libcurl/curl_multi_socket_action.pdf | Bin 8732 -> 0 bytes docs/libcurl/curl_multi_socket_all.3 | 1 + docs/libcurl/curl_multi_strerror.3 | 24 +- docs/libcurl/curl_multi_strerror.html | 58 - docs/libcurl/curl_multi_strerror.pdf | Bin 3410 -> 0 bytes docs/libcurl/curl_multi_timeout.3 | 24 +- docs/libcurl/curl_multi_timeout.html | 62 - docs/libcurl/curl_multi_timeout.pdf | Bin 4586 -> 0 bytes docs/libcurl/curl_multi_wait.3 | 80 + docs/libcurl/curl_share_cleanup.3 | 22 +- docs/libcurl/curl_share_cleanup.html | 56 - docs/libcurl/curl_share_cleanup.pdf | Bin 3604 -> 0 bytes docs/libcurl/curl_share_init.3 | 28 +- docs/libcurl/curl_share_init.html | 57 - docs/libcurl/curl_share_init.pdf | Bin 3796 -> 0 bytes docs/libcurl/curl_share_setopt.3 | 27 +- docs/libcurl/curl_share_setopt.html | 79 - docs/libcurl/curl_share_setopt.pdf | Bin 4687 -> 0 bytes docs/libcurl/curl_share_strerror.3 | 24 +- docs/libcurl/curl_share_strerror.html | 58 - docs/libcurl/curl_share_strerror.pdf | Bin 3410 -> 0 bytes docs/libcurl/curl_slist_append.3 | 24 +- docs/libcurl/curl_slist_append.html | 66 - docs/libcurl/curl_slist_append.pdf | Bin 3794 -> 0 bytes docs/libcurl/curl_slist_free_all.3 | 24 +- docs/libcurl/curl_slist_free_all.html | 56 - docs/libcurl/curl_slist_free_all.pdf | 107 - docs/libcurl/curl_strequal.3 | 22 +- docs/libcurl/curl_strequal.html | 58 - docs/libcurl/curl_strequal.pdf | Bin 4125 -> 0 bytes docs/libcurl/curl_strnequal.3 | 1 + docs/libcurl/curl_unescape.3 | 28 +- docs/libcurl/curl_unescape.html | 59 - docs/libcurl/curl_unescape.pdf | Bin 3954 -> 0 bytes docs/libcurl/curl_version.3 | 29 +- docs/libcurl/curl_version.html | 55 - docs/libcurl/curl_version.pdf | Bin 3200 -> 0 bytes docs/libcurl/curl_version_info.3 | 50 +- docs/libcurl/curl_version_info.html | 121 - docs/libcurl/curl_version_info.pdf | Bin 8204 -> 0 bytes docs/libcurl/getinfo-times | 27 + docs/libcurl/index.html | 21 +- docs/libcurl/libcurl-easy.3 | 41 +- docs/libcurl/libcurl-easy.html | 54 - docs/libcurl/libcurl-easy.pdf | Bin 4207 -> 0 bytes docs/libcurl/libcurl-errors.3 | 76 +- docs/libcurl/libcurl-errors.html | 236 - docs/libcurl/libcurl-errors.pdf | Bin 15530 -> 0 bytes docs/libcurl/libcurl-multi.3 | 98 +- docs/libcurl/libcurl-multi.html | 82 - docs/libcurl/libcurl-multi.pdf | Bin 9163 -> 0 bytes docs/libcurl/libcurl-share.3 | 41 +- docs/libcurl/libcurl-share.html | 61 - docs/libcurl/libcurl-share.pdf | Bin 4828 -> 0 bytes docs/libcurl/libcurl-tutorial.3 | 541 +- docs/libcurl/libcurl-tutorial.html | 547 - docs/libcurl/libcurl-tutorial.pdf | Bin 69734 -> 0 bytes docs/libcurl/libcurl.3 | 173 +- docs/libcurl/libcurl.html | 103 - docs/libcurl/libcurl.m4 | 28 +- docs/libcurl/libcurl.pdf | Bin 12665 -> 0 bytes .../opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 | 48 + .../opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 | 47 + docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3 | 62 + docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3 | 54 + docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3 | 51 + docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3 | 50 + docs/libcurl/opts/CURLMOPT_PIPELINING.3 | 57 + docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3 | 60 + docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3 | 56 + docs/libcurl/opts/CURLMOPT_SOCKETDATA.3 | 49 + docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3 | 62 + docs/libcurl/opts/CURLMOPT_TIMERDATA.3 | 48 + docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3 | 63 + docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3 | 44 + docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3 | 63 + docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3 | 44 + docs/libcurl/opts/CURLOPT_APPEND.3 | 44 + docs/libcurl/opts/CURLOPT_AUTOREFERER.3 | 45 + docs/libcurl/opts/CURLOPT_BUFFERSIZE.3 | 50 + docs/libcurl/opts/CURLOPT_CAINFO.3 | 56 + docs/libcurl/opts/CURLOPT_CAPATH.3 | 54 + docs/libcurl/opts/CURLOPT_CERTINFO.3 | 48 + docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3 | 69 + docs/libcurl/opts/CURLOPT_CHUNK_DATA.3 | 45 + docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3 | 54 + docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3 | 45 + docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3 | 56 + docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3 | 50 + docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3 | 50 + docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3 | 51 + .../opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 | 82 + .../libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3 | 81 + .../opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3 | 82 + docs/libcurl/opts/CURLOPT_COOKIE.3 | 62 + docs/libcurl/opts/CURLOPT_COOKIEFILE.3 | 59 + docs/libcurl/opts/CURLOPT_COOKIEJAR.3 | 58 + docs/libcurl/opts/CURLOPT_COOKIELIST.3 | 71 + docs/libcurl/opts/CURLOPT_COOKIESESSION.3 | 51 + docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3 | 70 + docs/libcurl/opts/CURLOPT_CRLF.3 | 47 + docs/libcurl/opts/CURLOPT_CRLFILE.3 | 60 + docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3 | 95 + docs/libcurl/opts/CURLOPT_DEBUGDATA.3 | 45 + docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3 | 184 + docs/libcurl/opts/CURLOPT_DIRLISTONLY.3 | 61 + docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3 | 56 + docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3 | 48 + docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3 | 51 + docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3 | 51 + docs/libcurl/opts/CURLOPT_DNS_SERVERS.3 | 56 + docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3 | 50 + docs/libcurl/opts/CURLOPT_EGDSOCKET.3 | 45 + docs/libcurl/opts/CURLOPT_ERRORBUFFER.3 | 72 + docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3 | 49 + docs/libcurl/opts/CURLOPT_FAILONERROR.3 | 53 + docs/libcurl/opts/CURLOPT_FILETIME.3 | 47 + docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3 | 46 + docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3 | 56 + docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3 | 70 + docs/libcurl/opts/CURLOPT_FORBID_REUSE.3 | 50 + docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3 | 52 + docs/libcurl/opts/CURLOPT_FTPPORT.3 | 72 + docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3 | 53 + docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3 | 46 + .../libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3 | 50 + .../libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3 | 70 + docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3 | 62 + docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3 | 50 + docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 | 52 + docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3 | 54 + docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3 | 47 + docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3 | 48 + docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3 | 46 + docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3 | 48 + docs/libcurl/opts/CURLOPT_HEADER.3 | 46 + docs/libcurl/opts/CURLOPT_HEADERDATA.3 | 50 + docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3 | 89 + docs/libcurl/opts/CURLOPT_HEADEROPT.3 | 57 + docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3 | 56 + docs/libcurl/opts/CURLOPT_HTTPAUTH.3 | 116 + docs/libcurl/opts/CURLOPT_HTTPGET.3 | 59 + docs/libcurl/opts/CURLOPT_HTTPHEADER.3 | 83 + docs/libcurl/opts/CURLOPT_HTTPPOST.3 | 78 + docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3 | 51 + docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3 | 49 + docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3 | 48 + docs/libcurl/opts/CURLOPT_HTTP_VERSION.3 | 57 + docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 | 51 + docs/libcurl/opts/CURLOPT_INFILESIZE.3 | 58 + docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3 | 59 + docs/libcurl/opts/CURLOPT_INTERFACE.3 | 55 + docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3 | 45 + docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3 | 68 + docs/libcurl/opts/CURLOPT_IOCTLDATA.3 | 44 + docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3 | 76 + docs/libcurl/opts/CURLOPT_IPRESOLVE.3 | 51 + docs/libcurl/opts/CURLOPT_ISSUERCERT.3 | 58 + docs/libcurl/opts/CURLOPT_KEYPASSWD.3 | 48 + docs/libcurl/opts/CURLOPT_KRBLEVEL.3 | 48 + docs/libcurl/opts/CURLOPT_LOCALPORT.3 | 46 + docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3 | 50 + docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3 | 53 + docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3 | 46 + docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3 | 45 + docs/libcurl/opts/CURLOPT_MAIL_AUTH.3 | 58 + docs/libcurl/opts/CURLOPT_MAIL_FROM.3 | 51 + docs/libcurl/opts/CURLOPT_MAIL_RCPT.3 | 60 + docs/libcurl/opts/CURLOPT_MAXCONNECTS.3 | 59 + docs/libcurl/opts/CURLOPT_MAXFILESIZE.3 | 52 + docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3 | 52 + docs/libcurl/opts/CURLOPT_MAXREDIRS.3 | 64 + docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3 | 49 + docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3 | 50 + docs/libcurl/opts/CURLOPT_NETRC.3 | 73 + docs/libcurl/opts/CURLOPT_NETRC_FILE.3 | 48 + docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3 | 48 + docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3 | 48 + docs/libcurl/opts/CURLOPT_NOBODY.3 | 59 + docs/libcurl/opts/CURLOPT_NOPROGRESS.3 | 42 + docs/libcurl/opts/CURLOPT_NOPROXY.3 | 51 + docs/libcurl/opts/CURLOPT_NOSIGNAL.3 | 55 + docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3 | 44 + docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3 | 90 + docs/libcurl/opts/CURLOPT_PASSWORD.3 | 50 + docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3 | 65 + docs/libcurl/opts/CURLOPT_PORT.3 | 51 + docs/libcurl/opts/CURLOPT_POST.3 | 77 + docs/libcurl/opts/CURLOPT_POSTFIELDS.3 | 84 + docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3 | 62 + docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3 | 64 + docs/libcurl/opts/CURLOPT_POSTQUOTE.3 | 48 + docs/libcurl/opts/CURLOPT_POSTREDIR.3 | 73 + docs/libcurl/opts/CURLOPT_PREQUOTE.3 | 47 + docs/libcurl/opts/CURLOPT_PRIVATE.3 | 46 + docs/libcurl/opts/CURLOPT_PROGRESSDATA.3 | 44 + docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3 | 84 + docs/libcurl/opts/CURLOPT_PROTOCOLS.3 | 92 + docs/libcurl/opts/CURLOPT_PROXY.3 | 85 + docs/libcurl/opts/CURLOPT_PROXYAUTH.3 | 55 + docs/libcurl/opts/CURLOPT_PROXYHEADER.3 | 57 + docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3 | 49 + docs/libcurl/opts/CURLOPT_PROXYPORT.3 | 47 + docs/libcurl/opts/CURLOPT_PROXYTYPE.3 | 54 + docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3 | 53 + docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3 | 50 + docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3 | 48 + docs/libcurl/opts/CURLOPT_PUT.3 | 48 + docs/libcurl/opts/CURLOPT_QUOTE.3 | 86 + docs/libcurl/opts/CURLOPT_RANDOM_FILE.3 | 45 + docs/libcurl/opts/CURLOPT_RANGE.3 | 66 + docs/libcurl/opts/CURLOPT_READDATA.3 | 52 + docs/libcurl/opts/CURLOPT_READFUNCTION.3 | 78 + docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3 | 92 + docs/libcurl/opts/CURLOPT_REFERER.3 | 47 + docs/libcurl/opts/CURLOPT_RESOLVE.3 | 82 + docs/libcurl/opts/CURLOPT_RESUME_FROM.3 | 72 + docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3 | 74 + docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3 | 45 + docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3 | 101 + docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3 | 45 + docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3 | 49 + docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3 | 53 + docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3 | 49 + docs/libcurl/opts/CURLOPT_SASL_IR.3 | 56 + docs/libcurl/opts/CURLOPT_SEEKDATA.3 | 43 + docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3 | 73 + docs/libcurl/opts/CURLOPT_SHARE.3 | 59 + docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3 | 44 + docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3 | 88 + docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3 | 47 + docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3 | 46 + docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3 | 50 + .../libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 | 48 + docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3 | 44 + docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3 | 105 + docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3 | 49 + docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3 | 51 + docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3 | 53 + docs/libcurl/opts/CURLOPT_SSLCERT.3 | 55 + docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3 | 48 + docs/libcurl/opts/CURLOPT_SSLENGINE.3 | 48 + docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3 | 48 + docs/libcurl/opts/CURLOPT_SSLKEY.3 | 50 + docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3 | 50 + docs/libcurl/opts/CURLOPT_SSLVERSION.3 | 78 + docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3 | 65 + docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3 | 45 + docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3 | 70 + docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3 | 45 + docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3 | 45 + docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3 | 51 + docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3 | 49 + docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3 | 77 + docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3 | 71 + docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3 | 53 + docs/libcurl/opts/CURLOPT_STDERR.3 | 45 + docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3 | 47 + docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3 | 45 + docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3 | 43 + docs/libcurl/opts/CURLOPT_TCP_NODELAY.3 | 56 + docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3 | 47 + docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3 | 48 + docs/libcurl/opts/CURLOPT_TIMECONDITION.3 | 51 + docs/libcurl/opts/CURLOPT_TIMEOUT.3 | 60 + docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3 | 64 + docs/libcurl/opts/CURLOPT_TIMEVALUE.3 | 45 + docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3 | 47 + docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3 | 52 + docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3 | 47 + docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3 | 51 + docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3 | 54 + docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3 | 78 + docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3 | 48 + docs/libcurl/opts/CURLOPT_UPLOAD.3 | 78 + docs/libcurl/opts/CURLOPT_URL.3 | 310 + docs/libcurl/opts/CURLOPT_USERAGENT.3 | 47 + docs/libcurl/opts/CURLOPT_USERNAME.3 | 71 + docs/libcurl/opts/CURLOPT_USERPWD.3 | 76 + docs/libcurl/opts/CURLOPT_USE_SSL.3 | 69 + docs/libcurl/opts/CURLOPT_VERBOSE.3 | 63 + docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3 | 87 + docs/libcurl/opts/CURLOPT_WRITEDATA.3 | 58 + docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3 | 81 + docs/libcurl/opts/CURLOPT_XFERINFODATA.3 | 46 + docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3 | 81 + docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3 | 49 + docs/libcurl/opts/Makefile.am | 347 + docs/libcurl/opts/template.3 | 38 + docs/libcurl/symbols-in-versions | 240 +- docs/libcurl/symbols.pl | 100 + docs/mk-ca-bundle.1 | 110 + include/Makefile.in | 566 - include/README | 2 +- include/curl/.gitignore | 4 + include/curl/Makefile.am | 30 +- include/curl/Makefile.in | 521 - include/curl/curl.h | 475 +- include/curl/curlbuild.h | 583 - include/curl/curlbuild.h.cmake | 85 +- include/curl/curlbuild.h.dist | 585 + include/curl/curlbuild.h.in | 29 +- include/curl/curlrules.h | 26 +- include/curl/curlver.h | 14 +- include/curl/easy.h | 4 +- include/curl/mprintf.h | 4 +- include/curl/multi.h | 56 +- include/curl/typecheck-gcc.h | 152 +- include/curl/types.h | 1 - install-sh | 681 +- lib/.gitignore | 15 + lib/CMakeLists.txt | 37 +- lib/Makefile.Watcom | 216 +- lib/Makefile.am | 165 +- lib/Makefile.b32 | 123 +- lib/Makefile.in | 865 - lib/Makefile.inc | 105 +- lib/Makefile.m32 | 262 +- lib/Makefile.netware | 146 +- lib/Makefile.vc10 | 571 - lib/Makefile.vc6 | 340 +- lib/Makefile.vc8 | 571 - lib/Makefile.vc9 | 571 - lib/Makefile.vxworks | 10 +- lib/README.encoding | 22 +- lib/README.hostip | 26 +- lib/README.http2 | 77 + lib/README.pipelining | 7 - lib/amigaos.c | 25 +- lib/amigaos.h | 40 +- lib/arpa_telnet.h | 6 +- lib/asyn-ares.c | 694 + lib/asyn-thread.c | 703 + lib/asyn.h | 168 + lib/base64.c | 268 +- lib/bundles.c | 110 + lib/bundles.h | 45 + lib/checksrc.pl | 204 + lib/config-amigaos.h | 31 +- lib/config-dos.h | 41 +- lib/config-mac.h | 43 +- lib/config-os400.h | 73 +- lib/config-riscos.h | 53 +- lib/config-symbian.h | 64 +- lib/config-tpf.h | 47 +- lib/config-vms.h | 374 - lib/config-vxworks.h | 55 +- lib/config-win32.h | 356 +- lib/config-win32ce.h | 40 +- lib/conncache.c | 287 + lib/conncache.h | 55 + lib/connect.c | 1040 +- lib/connect.h | 72 +- lib/content_encoding.c | 41 +- lib/content_encoding.h | 12 +- lib/cookie.c | 781 +- lib/cookie.h | 34 +- lib/curl_addrinfo.c | 56 +- lib/curl_addrinfo.h | 11 +- lib/curl_base64.h | 14 +- lib/curl_config.h.cmake | 541 +- lib/curl_config.h.in | 1021 - lib/curl_endian.c | 233 + lib/curl_endian.h | 70 + lib/curl_fnmatch.c | 9 +- lib/curl_gethostname.c | 41 +- lib/curl_gethostname.h | 4 + lib/curl_gssapi.c | 120 + lib/curl_gssapi.h | 75 + lib/curl_ldap.h | 13 +- lib/curl_md4.h | 14 +- lib/curl_md5.h | 29 + lib/curl_memory.h | 99 +- lib/curl_memrchr.c | 8 +- lib/curl_memrchr.h | 2 +- lib/curl_multibyte.c | 83 + lib/curl_multibyte.h | 92 + lib/curl_ntlm.c | 234 + lib/curl_ntlm.h | 40 + lib/curl_ntlm_core.c | 716 + lib/curl_ntlm_core.h | 106 + lib/curl_ntlm_msgs.c | 819 + lib/curl_ntlm_msgs.h | 143 + lib/curl_ntlm_wb.c | 435 + lib/curl_ntlm_wb.h | 38 + lib/curl_rand.c | 61 - lib/curl_rand.h | 29 - lib/curl_rtmp.c | 96 +- lib/curl_sasl.c | 1182 + lib/curl_sasl.h | 192 + lib/curl_sasl_gssapi.c | 390 + lib/curl_sasl_sspi.c | 1209 + lib/curl_sec.h | 51 + lib/curl_setup.h | 702 + lib/curl_setup_once.h | 551 + lib/curl_sspi.c | 196 +- lib/curl_sspi.h | 307 +- lib/curl_threads.c | 39 +- lib/curl_threads.h | 15 +- lib/curlx.h | 9 +- lib/dict.c | 45 +- lib/dotdot.c | 170 + lib/dotdot.h | 25 + lib/easy.c | 1015 +- lib/easyif.h | 20 +- lib/escape.c | 105 +- lib/escape.h | 14 +- lib/file.c | 266 +- lib/file.h | 9 +- lib/fileinfo.c | 27 +- lib/formdata.c | 900 +- lib/ftp.c | 1896 +- lib/ftp.h | 30 +- lib/ftplistparser.c | 80 +- lib/ftplistparser.h | 6 +- lib/getenv.c | 18 +- lib/getinfo.c | 360 +- lib/gopher.c | 64 +- lib/gtls.c | 959 - lib/gtls.h | 63 - lib/hash.c | 147 +- lib/hash.h | 22 +- lib/hmac.c | 14 +- lib/hostares.c | 413 - lib/hostasyn.c | 70 +- lib/hostcheck.c | 147 + lib/hostcheck.h | 32 + lib/hostip.c | 236 +- lib/hostip.h | 113 +- lib/hostip4.c | 31 +- lib/hostip6.c | 81 +- lib/hostsyn.c | 80 +- lib/hostthre.c | 579 - lib/http.c | 2189 +- lib/http.h | 102 +- lib/http2.c | 1051 + lib/http2.h | 51 + lib/http_chunks.c | 163 +- lib/http_chunks.h | 54 +- lib/http_digest.c | 531 +- lib/http_digest.h | 31 +- lib/http_negotiate.c | 304 +- lib/http_negotiate.h | 10 +- lib/http_negotiate_sspi.c | 295 + lib/http_ntlm.c | 1305 - lib/http_ntlm.h | 149 - lib/http_proxy.c | 597 + lib/http_proxy.h | 41 + lib/idn_win32.c | 108 + lib/if2ip.c | 203 +- lib/if2ip.h | 34 +- lib/imap.c | 2940 +- lib/imap.h | 82 +- lib/inet_ntop.c | 59 +- lib/inet_ntop.h | 9 +- lib/inet_pton.c | 13 +- lib/inet_pton.h | 9 +- lib/krb4.c | 431 - lib/krb4.h | 55 - lib/krb5.c | 121 +- lib/ldap.c | 728 +- lib/libcurl.def | 53 + lib/libcurl.imp | 51 - lib/libcurl.plist | 30 +- lib/libcurl.vcproj | 291 - lib/libcurl.vers.in | 14 +- lib/llist.c | 30 +- lib/llist.h | 9 +- lib/makefile.amiga | 1 - lib/makefile.dj | 2 +- lib/md4.c | 29 +- lib/md5.c | 178 +- lib/memdebug.c | 170 +- lib/memdebug.h | 69 +- lib/mk-ca-bundle.pl | 446 +- lib/mk-ca-bundle.vbs | 95 +- lib/mprintf.c | 354 +- lib/msvcproj.foot | 11 - lib/msvcproj.head | 147 - lib/multi.c | 2246 +- lib/multihandle.h | 142 + lib/multiif.h | 50 +- lib/netrc.c | 142 +- lib/netrc.h | 16 +- lib/non-ascii.c | 338 + lib/non-ascii.h | 63 + lib/nonblock.c | 32 +- lib/nonblock.h | 7 +- lib/nss.c | 1481 - lib/nssg.h | 71 - lib/nwlib.c | 122 +- lib/nwos.c | 63 +- lib/objnames-test08.sh | 217 + lib/objnames-test10.sh | 217 + lib/objnames.inc | 107 + lib/openldap.c | 349 +- lib/parsedate.c | 109 +- lib/parsedate.h | 25 +- lib/pingpong.c | 257 +- lib/pingpong.h | 53 +- lib/pipeline.c | 340 + lib/pipeline.h | 44 + lib/polarssl.c | 375 - lib/polarssl.h | 57 - lib/pop3.c | 2377 +- lib/pop3.h | 92 +- lib/progress.c | 146 +- lib/progress.h | 17 +- lib/qssl.c | 501 - lib/qssl.h | 59 - lib/rawstr.c | 8 +- lib/rawstr.h | 13 +- lib/rtsp.c | 182 +- lib/rtsp.h | 35 +- lib/security.c | 134 +- lib/select.c | 214 +- lib/select.h | 67 +- lib/sendf.c | 249 +- lib/sendf.h | 12 +- lib/setup-os400.h | 105 +- lib/setup-vms.h | 430 + lib/setup.h | 568 - lib/setup_once.h | 493 - lib/share.c | 112 +- lib/share.h | 18 +- lib/sigpipe.h | 78 + lib/slist.c | 76 +- lib/slist.h | 16 +- lib/smb.c | 970 + lib/smb.h | 271 + lib/smtp.c | 2352 +- lib/smtp.h | 77 +- lib/sockaddr.h | 26 +- lib/socks.c | 296 +- lib/socks.h | 22 +- lib/socks_gssapi.c | 155 +- lib/socks_sspi.c | 424 +- lib/speedcheck.c | 20 +- lib/speedcheck.h | 2 +- lib/splay.c | 188 +- lib/splay.h | 11 +- lib/ssh.c | 1270 +- lib/ssh.h | 46 +- lib/sslgen.c | 472 - lib/sslgen.h | 92 - lib/ssluse.c | 2664 -- lib/ssluse.h | 84 - lib/strdup.c | 30 +- lib/strdup.h | 5 +- lib/strequal.c | 58 +- lib/strequal.h | 12 +- lib/strerror.c | 394 +- lib/strerror.h | 10 +- lib/strtok.c | 3 +- lib/strtok.h | 2 +- lib/strtoofft.c | 15 +- lib/strtoofft.h | 19 +- lib/telnet.c | 1104 +- lib/telnet.h | 9 +- lib/tftp.c | 325 +- lib/tftp.h | 9 +- lib/timeval.c | 17 +- lib/timeval.h | 9 +- lib/transfer.c | 1064 +- lib/transfer.h | 15 +- lib/url.c | 3491 +- lib/url.h | 40 +- lib/urldata.h | 688 +- lib/vc6libcurl.dsp | 862 - lib/vc6libcurl.dsw | 29 - lib/version.c | 91 +- lib/vtls/axtls.c | 684 + lib/vtls/axtls.h | 73 + lib/vtls/curl_darwinssl.c | 2481 ++ lib/vtls/curl_darwinssl.h | 75 + lib/vtls/curl_schannel.c | 1377 + lib/vtls/curl_schannel.h | 115 + lib/vtls/cyassl.c | 652 + lib/vtls/cyassl.h | 69 + lib/vtls/gskit.c | 1078 + lib/vtls/gskit.h | 69 + lib/vtls/gtls.c | 1439 + lib/vtls/gtls.h | 79 + lib/vtls/nss.c | 1962 + lib/vtls/nssg.h | 95 + lib/vtls/openssl.c | 3032 ++ lib/vtls/openssl.h | 107 + lib/vtls/polarssl.c | 751 + lib/vtls/polarssl.h | 77 + lib/vtls/polarssl_threadlock.c | 156 + lib/vtls/polarssl_threadlock.h | 53 + lib/vtls/vtls.c | 863 + lib/vtls/vtls.h | 147 + lib/warnless.c | 237 +- lib/warnless.h | 68 +- lib/wildcard.c | 3 +- lib/wildcard.h | 6 +- lib/x509asn1.c | 1192 + lib/x509asn1.h | 131 + libcurl.pc.in | 10 +- log2changes.pl | 81 + ltmain.sh | 8413 ----- m4/.gitignore | 6 + m4/curl-compilers.m4 | 316 +- m4/curl-confopts.m4 | 212 +- m4/curl-functions.m4 | 428 +- m4/curl-openssl.m4 | 260 + m4/curl-override.m4 | 27 +- m4/curl-reentrant.m4 | 6 +- m4/curl-system.m4 | 88 - m4/libtool.m4 | 7377 ---- m4/ltoptions.m4 | 368 - m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 92 - m4/xc-am-iface.m4 | 253 + m4/xc-cc-check.m4 | 96 + m4/xc-lt-iface.m4 | 465 + m4/xc-translit.m4 | 164 + m4/xc-val-flgs.m4 | 243 + m4/zz40-xc-ovr.m4 | 668 + m4/zz50-xc-ovr.m4 | 60 + m4/zz60-xc-ovr.m4 | 64 + maketgz | 13 +- mkinstalldirs | 167 +- packages/AIX/Makefile.in | 563 - packages/AIX/RPM/.gitignore | 1 + packages/AIX/RPM/Makefile.in | 408 - packages/AIX/RPM/curl.spec.in | 2 + packages/Android/Android.mk | 112 + packages/DOS/common.dj | 4 +- packages/EPM/.gitignore | 1 + packages/EPM/Makefile.in | 409 - packages/EPM/README | 2 +- packages/EPM/curl.list.in | 1 + packages/Linux/Makefile.in | 562 - packages/Linux/RPM/.gitignore | 2 + packages/Linux/RPM/Makefile.in | 410 - packages/Linux/RPM/curl-ssl.spec.in | 1 + packages/Makefile.am | 5 +- packages/Makefile.in | 593 - packages/NetWare/get_exp.awk | 72 + packages/NetWare/get_ver.awk | 67 +- packages/OS400/README.OS400 | 110 +- packages/OS400/ccsidcurl.c | 439 +- packages/OS400/ccsidcurl.h | 7 +- packages/OS400/curl.inc.in | 362 +- packages/OS400/initscript.sh | 108 +- packages/OS400/make-include.sh | 52 +- packages/OS400/make-lib.sh | 59 +- packages/OS400/make-tests.sh | 6 +- packages/OS400/makefile.sh | 3 +- packages/OS400/os400sys.c | 750 +- packages/OS400/os400sys.h | 5 +- packages/Solaris/Makefile.in | 438 - packages/Symbian/bwins/libcurlu.def | 1 + packages/Symbian/eabi/libcurlu.def | 1 + packages/Symbian/group/curl.mmp | 40 +- packages/Symbian/group/curl.pkg | 2 +- packages/Symbian/group/libcurl.mmp | 35 +- packages/Symbian/group/libcurl.pkg | 2 +- packages/Win32/Makefile.in | 563 - packages/Win32/cygwin/Makefile.in | 466 - packages/vms/Makefile.am | 44 +- packages/vms/Makefile.in | 421 - packages/vms/backup_gnv_curl_src.com | 132 + packages/vms/build_curl-config_script.com | 154 + packages/vms/build_gnv_curl.com | 38 + packages/vms/build_gnv_curl_pcsi_desc.com | 488 + packages/vms/build_gnv_curl_pcsi_text.com | 198 + packages/vms/build_gnv_curl_release_notes.com | 102 + packages/vms/build_libcurl_pc.com | 205 + packages/vms/build_vms.com | 1023 +- packages/vms/clean_gnv_curl.com | 250 + packages/vms/compare_curl_source.com | 371 + packages/vms/config_h.com | 2184 ++ packages/vms/curl_crtl_init.c | 311 + packages/vms/curl_gnv_build_steps.txt | 288 + packages/vms/curl_release_note_start.txt | 77 + packages/vms/curl_startup.com | 100 + packages/vms/curlmsg.h | 21 + packages/vms/curlmsg_vms.h | 21 + packages/vms/generate_config_vms_h_curl.com | 484 + packages/vms/generate_vax_transfer.com | 274 + packages/vms/gnv_conftest.c_first | 61 + packages/vms/gnv_curl_configure.sh | 46 + packages/vms/gnv_libcurl_symbols.opt | 181 + packages/vms/gnv_link_curl.com | 843 + packages/vms/hpssl_alpha.opt | 2 - packages/vms/hpssl_ia64.opt | 2 - packages/vms/hpssl_vax.opt | 2 - packages/vms/ldap.opt | 1 - packages/vms/macro32_exactcase.patch | 11 + packages/vms/make_gnv_curl_install.sh | 45 + packages/vms/make_pcsi_curl_kit_name.com | 190 + packages/vms/openssl_alpha.opt | 2 - packages/vms/openssl_ia64.opt | 2 - packages/vms/openssl_ssl_alpha.opt | 2 - packages/vms/openssl_ssl_ia64.opt | 2 - packages/vms/openssl_ssl_vax.opt | 2 - packages/vms/openssl_vax.opt | 2 - packages/vms/pcsi_gnv_curl_file_list.txt | 127 + packages/vms/pcsi_product_gnv_curl.com | 199 + packages/vms/readme | 198 +- packages/vms/report_openssl_version.c | 100 + packages/vms/setup_gnv_curl_build.com | 288 + packages/vms/stage_curl_install.com | 177 + packages/vms/vms_eco_level.h | 30 + packaging/curl.spec | 22 +- perl/Makefile.am | 3 + perl/README | 24 + perl/contrib/checklinks.pl.in | 336 + perl/contrib/crawlink.pl | 443 + perl/contrib/formfind | 193 + perl/contrib/getlinks.pl.in | 261 + perl/contrib/mirror.pl | 104 + perl/contrib/recursiveftpget.pl.in | 67 + projects/README | 125 + projects/Windows/VC10/.gitignore | 4 + projects/Windows/VC10/curl.sln | 258 + projects/Windows/VC10/lib/.gitignore | 6 + projects/Windows/VC10/lib/libcurl.sln | 157 + projects/Windows/VC10/lib/libcurl.tmpl | 2367 ++ projects/Windows/VC10/src/.gitignore | 6 + projects/Windows/VC10/src/curlsrc.sln | 157 + projects/Windows/VC10/src/curlsrc.tmpl | 2695 ++ projects/Windows/VC11/.gitignore | 4 + projects/Windows/VC11/curl.sln | 258 + projects/Windows/VC11/lib/.gitignore | 6 + projects/Windows/VC11/lib/libcurl.sln | 157 + projects/Windows/VC11/lib/libcurl.tmpl | 2415 ++ projects/Windows/VC11/src/.gitignore | 6 + projects/Windows/VC11/src/curlsrc.sln | 157 + projects/Windows/VC11/src/curlsrc.tmpl | 2743 ++ projects/Windows/VC12/.gitignore | 4 + projects/Windows/VC12/curl.sln | 258 + projects/Windows/VC12/lib/.gitignore | 6 + projects/Windows/VC12/lib/libcurl.sln | 157 + projects/Windows/VC12/lib/libcurl.tmpl | 2415 ++ projects/Windows/VC12/src/.gitignore | 6 + projects/Windows/VC12/src/curlsrc.sln | 157 + projects/Windows/VC12/src/curlsrc.tmpl | 2743 ++ projects/Windows/VC6/.gitignore | 2 + projects/Windows/VC6/curl.dsw | 44 + projects/Windows/VC6/lib/.gitignore | 5 + projects/Windows/VC6/lib/libcurl.dsw | 29 + projects/Windows/VC6/lib/libcurl.tmpl | 746 + projects/Windows/VC6/src/.gitignore | 5 + projects/Windows/VC6/src/curlsrc.dsw | 29 + projects/Windows/VC6/src/curlsrc.tmpl | 695 + projects/Windows/VC7.1/.gitignore | 2 + projects/Windows/VC7.1/curl.sln | 140 + projects/Windows/VC7.1/lib/.gitignore | 3 + projects/Windows/VC7.1/lib/libcurl.sln | 87 + projects/Windows/VC7.1/lib/libcurl.tmpl | 1287 + projects/Windows/VC7.1/src/.gitignore | 3 + projects/Windows/VC7.1/src/curlsrc.sln | 87 + projects/Windows/VC7.1/src/curlsrc.tmpl | 1381 + projects/Windows/VC7/.gitignore | 1 + projects/Windows/VC7/curl.sln | 138 + projects/Windows/VC7/lib/.gitignore | 2 + projects/Windows/VC7/lib/libcurl.sln | 87 + projects/Windows/VC7/lib/libcurl.tmpl | 1141 + projects/Windows/VC7/src/.gitignore | 2 + projects/Windows/VC7/src/curlsrc.sln | 87 + projects/Windows/VC7/src/curlsrc.tmpl | 1235 + projects/Windows/VC8/.gitignore | 2 + projects/Windows/VC8/curl.sln | 258 + projects/Windows/VC8/lib/.gitignore | 4 + projects/Windows/VC8/lib/libcurl.sln | 157 + projects/Windows/VC8/lib/libcurl.tmpl | 3860 ++ projects/Windows/VC8/src/.gitignore | 4 + projects/Windows/VC8/src/curlsrc.sln | 157 + projects/Windows/VC8/src/curlsrc.tmpl | 4292 +++ projects/Windows/VC9/.gitignore | 2 + projects/Windows/VC9/curl.sln | 258 + projects/Windows/VC9/lib/.gitignore | 4 + projects/Windows/VC9/lib/libcurl.sln | 157 + projects/Windows/VC9/lib/libcurl.tmpl | 3841 ++ projects/Windows/VC9/src/.gitignore | 4 + projects/Windows/VC9/src/curlsrc.sln | 157 + projects/Windows/VC9/src/curlsrc.tmpl | 4245 +++ projects/build-openssl.bat | 341 + projects/checksrc.bat | 84 + projects/generate.bat | 277 + sample.emacs | 45 - src/.gitignore | 13 + src/CMakeLists.txt | 63 +- src/Makefile.Watcom | 208 +- src/Makefile.am | 87 +- src/Makefile.b32 | 107 +- src/Makefile.in | 746 - src/Makefile.inc | 109 +- src/Makefile.m32 | 300 +- src/Makefile.netware | 332 +- src/Makefile.vc10 | 305 - src/Makefile.vc6 | 421 +- src/Makefile.vc8 | 305 - src/Makefile.vc9 | 305 - src/config-amigaos.h | 69 - src/config-mac.h | 35 - src/config-riscos.h | 379 - src/config-win32.h | 416 - src/curl.rc | 2 +- src/curl_config.h.in | 1021 - src/curlutil.c | 134 - src/curlutil.h | 49 - src/getpass.c | 267 - src/getpass.h | 34 - src/homedir.c | 120 - src/homedir.h | 27 - src/hugehelp.c | 7115 ---- src/hugehelp.h | 26 - src/macos/MACINSTALL.TXT | 2 +- src/main.c | 6115 --- src/makefile.amiga | 12 +- src/makefile.dj | 20 +- src/mkhelp.pl | 50 +- src/os-specific.c | 221 - src/os-specific.h | 38 - src/setup.h | 223 - src/tool_binmode.c | 52 + src/tool_binmode.h | 37 + src/tool_bname.c | 50 + src/tool_bname.h | 35 + src/tool_cb_dbg.c | 275 + src/tool_cb_dbg.h | 35 + src/tool_cb_hdr.c | 225 + src/tool_cb_hdr.h | 54 + src/tool_cb_prg.c | 150 + src/tool_cb_prg.h | 50 + src/tool_cb_rea.c | 55 + src/tool_cb_rea.h | 33 + src/tool_cb_see.c | 131 + src/tool_cb_see.h | 46 + src/tool_cb_wrt.c | 152 + src/tool_cb_wrt.h | 33 + src/tool_cfgable.c | 157 + src/tool_cfgable.h | 241 + src/tool_convert.c | 150 + src/tool_convert.h | 45 + src/tool_dirhie.c | 147 + src/tool_dirhie.h | 29 + src/tool_doswin.c | 299 + src/tool_doswin.h | 46 + src/tool_easysrc.c | 229 + src/tool_easysrc.h | 48 + src/tool_formparse.c | 361 + src/tool_formparse.h | 33 + src/tool_getparam.c | 1900 + src/tool_getparam.h | 62 + src/tool_getpass.c | 256 + src/tool_getpass.h | 36 + src/tool_help.c | 338 + src/tool_help.h | 31 + src/tool_helpers.c | 77 + src/tool_helpers.h | 32 + src/tool_homedir.c | 95 + src/tool_homedir.h | 28 + src/tool_hugehelp.c.cvs | 29 + src/tool_hugehelp.h | 28 + src/tool_libinfo.c | 102 + src/tool_libinfo.h | 34 + src/tool_main.c | 275 + src/tool_main.h | 44 + src/tool_metalink.c | 963 + src/tool_metalink.h | 167 + src/tool_mfiles.c | 127 + src/tool_mfiles.h | 46 + src/tool_msgs.c | 100 + src/tool_msgs.h | 31 + src/tool_operate.c | 1872 + src/tool_operate.h | 29 + src/tool_operhlp.c | 174 + src/tool_operhlp.h | 39 + src/tool_panykey.c | 48 + src/tool_panykey.h | 37 + src/tool_paramhlp.c | 515 + src/tool_paramhlp.h | 54 + src/tool_parsecfg.c | 362 + src/tool_parsecfg.h | 29 + src/tool_sdecls.h | 153 + src/tool_setopt.c | 567 + src/tool_setopt.h | 148 + src/tool_setup.h | 74 + src/tool_sleep.c | 58 + src/tool_sleep.h | 29 + src/tool_strdup.c | 47 + src/tool_strdup.h | 30 + src/tool_urlglob.c | 669 + src/tool_urlglob.h | 77 + src/tool_util.c | 147 + src/tool_util.h | 56 + src/tool_version.h | 34 + src/tool_vms.c | 219 + src/tool_vms.h | 47 + src/tool_writeenv.c | 116 + src/tool_writeenv.h | 35 + src/tool_writeout.c | 327 + src/tool_writeout.h | 28 + src/tool_xattr.c | 90 + src/tool_xattr.h | 28 + src/urlglob.c | 549 - src/urlglob.h | 67 - src/vc6curlsrc.dsp | 266 - src/vc6curlsrc.dsw | 29 - src/version.h | 35 - src/writeenv.c | 120 - src/writeenv.h | 27 - src/writeout.c | 295 - src/writeout.h | 27 - src/xattr.c | 75 - src/xattr.h | 26 - tests/.gitignore | 17 + tests/CMakeLists.txt | 1 + tests/FILEFORMAT | 162 +- tests/Makefile.am | 41 +- tests/Makefile.in | 631 - tests/README | 222 +- tests/certs/Makefile.am | 72 + tests/certs/Server-localhost-sv.pub.der | Bin 0 -> 162 bytes tests/certs/Server-localhost-sv.pub.pem | 6 + tests/certs/Server-localhost.nn-sv.pub.der | Bin 0 -> 162 bytes tests/certs/Server-localhost.nn-sv.pub.pem | 6 + tests/certs/Server-localhost0h-sv.pub.der | Bin 0 -> 162 bytes tests/certs/Server-localhost0h-sv.pub.pem | 6 + tests/certs/scripts/Makefile.am | 29 + tests/certs/scripts/genserv.sh | 6 + tests/certs/srp-verifier-conf | 3 + tests/certs/srp-verifier-db | 2 + tests/convsrctest.pl | 255 + tests/data/.gitattributes | 1 + tests/data/CMakeLists.txt | 7 + tests/data/DISABLED | 9 +- tests/data/Makefile.am | 71 +- tests/data/Makefile.in | 495 - tests/data/Makefile.inc | 164 + tests/data/test100 | 9 +- tests/data/test1001 | 5 +- tests/data/test1002 | 5 +- tests/data/test1008 | 28 +- tests/data/test101 | 2 +- tests/data/test1010 | 2 +- tests/data/test1011 | 26 +- tests/data/test1012 | 20 +- tests/data/test1015 | 2 + tests/data/test1021 | 32 +- tests/data/test1029 | 22 +- tests/data/test1030 | 1 + tests/data/test1032 | 2 +- tests/data/test1041 | 2 +- tests/data/test1042 | 6 +- tests/data/test1047 | 2 +- tests/data/test1048 | 2 + tests/data/test1059 | 4 +- tests/data/test106 | 3 +- tests/data/test1060 | 23 +- tests/data/test1061 | 23 +- tests/data/test1071 | 1 + tests/data/test1078 | 22 +- tests/data/test1079 | 1 + tests/data/test1080 | 2 +- tests/data/test1081 | 2 +- tests/data/test1086 | 1 + tests/data/test1095 | 1 + tests/data/test1097 | 15 +- tests/data/test1098 | 26 +- tests/data/test1099 | 2 +- tests/data/test1100 | 4 +- tests/data/test1105 | 10 +- tests/data/test1112 | 2 +- tests/data/test1113 | 5 +- tests/data/test1114 | 2 +- tests/data/test1115 | 3 - tests/data/test1119 | 1 + tests/data/test1120 | 2 +- tests/data/test1121 | 49 + tests/data/test1122 | 70 + tests/data/test1123 | 201 + tests/data/test1124 | 69 + tests/data/test1125 | 70 + tests/data/test1126 | 52 + tests/data/test1127 | 61 + tests/data/test1128 | 85 + tests/data/test1129 | 97 + tests/data/test1130 | 97 + tests/data/test1131 | 95 + tests/data/test1132 | 25 + tests/data/test1133 | 95 + tests/data/test1134 | 65 + tests/data/test116 | 3 + tests/data/test1204 | 79 + tests/data/test1205 | 50 + tests/data/test1206 | 53 + tests/data/test1207 | 53 + tests/data/test1208 | 57 + tests/data/test1209 | 58 + tests/data/test1210 | 63 + tests/data/test1211 | 53 + tests/data/test1212 | 51 + tests/data/test1213 | 53 + tests/data/test1214 | 53 + tests/data/test1215 | 106 + tests/data/test1216 | 63 + tests/data/test1217 | 57 + tests/data/test1218 | 61 + tests/data/test1219 | 49 + tests/data/test1220 | 37 + tests/data/test1221 | 53 + tests/data/test1222 | 53 + tests/data/test1223 | 60 + tests/data/test1224 | 49 + tests/data/test1225 | 57 + tests/data/test1226 | 49 + tests/data/test1227 | 48 + tests/data/test1228 | 55 + tests/data/test1229 | 83 + tests/data/test1230 | 80 + tests/data/test1231 | 61 + tests/data/test1232 | 65 + tests/data/test1233 | 46 + tests/data/test1234 | 33 + tests/data/test1235 | 95 + tests/data/test1236 | 33 + tests/data/test1237 | 47 + tests/data/test1238 | 49 + tests/data/test1239 | 68 + tests/data/test1240 | 48 + tests/data/test13 | 6 +- tests/data/test130 | 9 +- tests/data/test1300 | 26 + tests/data/test1301 | 26 + tests/data/test1302 | 26 + tests/data/test1303 | 26 + tests/data/test1304 | 30 + tests/data/test1305 | 30 + tests/data/test1306 | 30 + tests/data/test1307 | 27 + tests/data/test1308 | 31 + tests/data/test1309 | 1457 + tests/data/test131 | 9 +- tests/data/test1310 | 125 + tests/data/test1311 | 64 + tests/data/test1312 | 64 + tests/data/test1313 | 64 + tests/data/test1314 | 79 + tests/data/test1315 | 83 + tests/data/test1316 | 81 + tests/data/test1317 | 56 + tests/data/test1318 | 60 + tests/data/test1319 | 86 + tests/data/test132 | 9 +- tests/data/test1320 | 73 + tests/data/test1321 | 82 + tests/data/test1325 | 80 + tests/data/test1326 | 48 + tests/data/test1327 | 47 + tests/data/test1328 | 71 + tests/data/test1329 | 30 + tests/data/test133 | 9 +- tests/data/test1330 | 51 + tests/data/test1331 | 89 + tests/data/test1332 | 80 + tests/data/test1333 | 54 + tests/data/test1334 | 76 + tests/data/test1335 | 73 + tests/data/test1336 | 81 + tests/data/test1337 | 78 + tests/data/test1338 | 77 + tests/data/test1339 | 74 + tests/data/test134 | 9 +- tests/data/test1340 | 80 + tests/data/test1341 | 77 + tests/data/test1342 | 83 + tests/data/test1343 | 80 + tests/data/test1344 | 89 + tests/data/test1345 | 86 + tests/data/test1346 | 73 + tests/data/test1347 | 78 + tests/data/test1348 | 61 + tests/data/test1349 | 83 + tests/data/test1350 | 80 + tests/data/test1351 | 84 + tests/data/test1352 | 81 + tests/data/test1353 | 83 + tests/data/test1354 | 78 + tests/data/test1355 | 61 + tests/data/test1356 | 79 + tests/data/test1357 | 99 + tests/data/test1358 | 96 + tests/data/test1359 | 100 + tests/data/test1360 | 97 + tests/data/test1361 | 99 + tests/data/test1362 | 96 + tests/data/test1363 | 79 + tests/data/test1364 | 71 + tests/data/test1365 | 68 + tests/data/test1366 | 73 + tests/data/test1367 | 70 + tests/data/test1368 | 72 + tests/data/test1369 | 69 + tests/data/test1370 | 74 + tests/data/test1371 | 71 + tests/data/test1372 | 78 + tests/data/test1373 | 75 + tests/data/test1374 | 81 + tests/data/test1375 | 78 + tests/data/test1376 | 68 + tests/data/test1377 | 70 + tests/data/test1378 | 56 + tests/data/test1379 | 76 + tests/data/test1380 | 73 + tests/data/test1381 | 77 + tests/data/test1382 | 74 + tests/data/test1383 | 76 + tests/data/test1384 | 73 + tests/data/test1385 | 56 + tests/data/test1386 | 71 + tests/data/test1387 | 91 + tests/data/test1388 | 88 + tests/data/test1389 | 92 + tests/data/test1390 | 89 + tests/data/test1391 | 91 + tests/data/test1392 | 88 + tests/data/test1393 | 71 + tests/data/test1394 | 30 + tests/data/test1395 | 26 + tests/data/test1396 | 27 + tests/data/test1397 | 27 + tests/data/test1398 | 26 + tests/data/test1400 | 103 + tests/data/test1401 | 126 + tests/data/test1402 | 112 + tests/data/test1403 | 107 + tests/data/test1404 | 161 + tests/data/test1405 | 136 + tests/data/test1406 | 125 + tests/data/test1407 | 103 + tests/data/test1408 | 74 + tests/data/test1409 | 31 + tests/data/test1410 | 31 + tests/data/test1411 | 60 + tests/data/test1412 | 118 + tests/data/test1413 | 73 + tests/data/test1414 | 57 + tests/data/test1415 | 75 + tests/data/test1416 | 63 + tests/data/test1417 | 78 + tests/data/test1418 | 108 + tests/data/test1419 | 69 + tests/data/test1420 | 108 + tests/data/test1428 | 81 + tests/data/test1429 | 69 + tests/data/test1430 | 53 + tests/data/test1431 | 53 + tests/data/test1432 | 54 + tests/data/test1433 | 69 + tests/data/test1434 | 90 + tests/data/test1435 | 46 + tests/data/test1436 | 85 + tests/data/test147 | 6 + tests/data/test148 | 6 + tests/data/test149 | 6 + tests/data/test150 | 11 +- tests/data/test1500 | 44 + tests/data/test1501 | 53 + tests/data/test1502 | 58 + tests/data/test1503 | 58 + tests/data/test1504 | 58 + tests/data/test1505 | 58 + tests/data/test1506 | 96 + tests/data/test1507 | 51 + tests/data/test1508 | 31 + tests/data/test1509 | 88 + tests/data/test151 | 7 + tests/data/test1510 | 95 + tests/data/test1511 | 70 + tests/data/test1512 | 80 + tests/data/test1513 | 42 + tests/data/test1514 | 48 + tests/data/test1515 | 58 + tests/data/test1516 | 58 + tests/data/test152 | 8 + tests/data/test1520 | 63 + tests/data/test1525 | 76 + tests/data/test1526 | 76 + tests/data/test1527 | 76 + tests/data/test1528 | 60 + tests/data/test1529 | 43 + tests/data/test153 | 1 + tests/data/test154 | 1 + tests/data/test155 | 13 +- tests/data/test156 | 8 + tests/data/test157 | 8 + tests/data/test158 | 9 +- tests/data/test159 | 12 +- tests/data/test160 | 7 + tests/data/test161 | 12 +- tests/data/test162 | 1 + tests/data/test163 | 7 + tests/data/test164 | 7 + tests/data/test166 | 7 + tests/data/test167 | 1 + tests/data/test168 | 1 + tests/data/test169 | 6 +- tests/data/test170 | 1 + tests/data/test171 | 2 +- tests/data/test172 | 4 +- tests/data/test174 | 9 +- tests/data/test175 | 4 +- tests/data/test176 | 13 +- tests/data/test178 | 7 + tests/data/test18 | 37 +- tests/data/test180 | 8 + tests/data/test1800 | 55 + tests/data/test1801 | 66 + tests/data/test181 | 8 + tests/data/test182 | 6 + tests/data/test186 | 7 + tests/data/test189 | 7 + tests/data/test190 | 6 + tests/data/test1900 | 61 + tests/data/test1901 | 63 + tests/data/test1902 | 62 + tests/data/test1903 | 62 + tests/data/test191 | 6 + tests/data/test192 | 7 + tests/data/test194 | 20 +- tests/data/test195 | 6 + tests/data/test196 | 6 + tests/data/test197 | 6 + tests/data/test198 | 6 + tests/data/test199 | 7 + tests/data/test2005 | 93 + tests/data/test2006 | 112 + tests/data/test2007 | 113 + tests/data/test2008 | 105 + tests/data/test2009 | 106 + tests/data/test201 | 7 + tests/data/test2010 | 105 + tests/data/test2011 | 93 + tests/data/test2012 | 92 + tests/data/test2013 | 78 + tests/data/test2014 | 78 + tests/data/test2015 | 78 + tests/data/test2016 | 78 + tests/data/test2017 | 78 + tests/data/test2018 | 78 + tests/data/test2019 | 78 + tests/data/test202 | 6 + tests/data/test2020 | 78 + tests/data/test2021 | 78 + tests/data/test2022 | 78 + tests/data/test2023 | 162 + tests/data/test2024 | 176 + tests/data/test2025 | 272 + tests/data/test2026 | 220 + tests/data/test2027 | 248 + tests/data/test2028 | 316 + tests/data/test2029 | 240 + tests/data/test203 | 6 + tests/data/test2030 | 297 + tests/data/test2031 | 321 + tests/data/test2032 | 147 + tests/data/test2033 | 148 + tests/data/test2034 | 58 + tests/data/test2035 | 44 + tests/data/test2036 | 39 + tests/data/test2037 | 58 + tests/data/test2038 | 44 + tests/data/test204 | 6 + tests/data/test205 | 7 + tests/data/test206 | 32 +- tests/data/test207 | 8 + tests/data/test209 | 24 +- tests/data/test210 | 6 + tests/data/test211 | 6 + tests/data/test212 | 7 + tests/data/test213 | 24 +- tests/data/test214 | 6 + tests/data/test215 | 8 +- tests/data/test216 | 6 + tests/data/test217 | 10 +- tests/data/test218 | 6 + tests/data/test22 | 8 +- tests/data/test227 | 1 - tests/data/test231 | 8 +- tests/data/test235 | 6 + tests/data/test236 | 5 + tests/data/test237 | 6 + tests/data/test238 | 19 +- tests/data/test239 | 6 +- tests/data/test24 | 5 +- tests/data/test243 | 6 +- tests/data/test245 | 1 + tests/data/test246 | 1 + tests/data/test247 | 6 + tests/data/test248 | 6 + tests/data/test249 | 6 + tests/data/test250 | 8 +- tests/data/test251 | 8 +- tests/data/test257 | 7 +- tests/data/test258 | 1 + tests/data/test259 | 1 + tests/data/test265 | 24 +- tests/data/test267 | 4 +- tests/data/test273 | 5 +- tests/data/test275 | 24 +- tests/data/test277 | 10 +- tests/data/test280 | 2 +- tests/data/test287 | 11 +- tests/data/test288 | 6 + tests/data/test294 | 2 +- tests/data/test302 | 13 +- tests/data/test31 | 61 +- tests/data/test320 | 97 + tests/data/test321 | 33 + tests/data/test322 | 33 + tests/data/test323 | 33 + tests/data/test324 | 33 + tests/data/test325 | 66 + tests/data/test33 | 2 +- tests/data/test350 | 2 +- tests/data/test351 | 2 +- tests/data/test352 | 2 +- tests/data/test353 | 2 +- tests/data/test39 | 30 +- tests/data/test4 | 5 +- tests/data/test40 | 20 +- tests/data/test42 | 20 +- tests/data/test46 | 34 +- tests/data/test48 | 11 +- tests/data/test5 | 2 +- tests/data/test500 | 26 +- tests/data/test502 | 2 +- tests/data/test503 | 21 +- tests/data/test504 | 3 +- tests/data/test505 | 6 + tests/data/test506 | 153 +- tests/data/test508 | 21 +- tests/data/test509 | 44 + tests/data/test510 | 21 +- tests/data/test511 | 6 + tests/data/test512 | 9 +- tests/data/test513 | 7 + tests/data/test514 | 30 +- tests/data/test515 | 18 +- tests/data/test516 | 19 +- tests/data/test517 | 18 +- tests/data/test518 | 29 +- tests/data/test519 | 49 +- tests/data/test520 | 6 + tests/data/test521 | 2 +- tests/data/test522 | 18 +- tests/data/test523 | 24 +- tests/data/test528 | 10 +- tests/data/test53 | 12 +- tests/data/test530 | 42 +- tests/data/test535 | 28 +- tests/data/test536 | 37 +- tests/data/test537 | 29 +- tests/data/test538 | 5 +- tests/data/test539 | 10 +- tests/data/test540 | 9 +- tests/data/test541 | 6 + tests/data/test544 | 19 +- tests/data/test545 | Bin 748 -> 798 bytes tests/data/test547 | 18 +- tests/data/test548 | 18 +- tests/data/test549 | 24 +- tests/data/test550 | 24 +- tests/data/test551 | 12 +- tests/data/test552 | Bin 143212 -> 142985 bytes tests/data/test553 | 2 - tests/data/test554 | 41 +- tests/data/test555 | 18 +- tests/data/test556 | 12 +- tests/data/test557 | 8 +- tests/data/test558 | 39 +- tests/data/test559 | 44 - tests/data/test560 | 10 +- tests/data/test561 | 24 +- tests/data/test564 | 7 +- tests/data/test565 | 5 +- tests/data/test566 | 26 +- tests/data/test567 | 10 +- tests/data/test568 | 42 +- tests/data/test569 | 1 + tests/data/test570 | 36 +- tests/data/test571 | 42 +- tests/data/test572 | 61 +- tests/data/test573 | 26 +- tests/data/test574 | 4 +- tests/data/test575 | 2 +- tests/data/test576 | 4 +- tests/data/test577 | 43 - tests/data/test578 | 26 +- tests/data/test579 | 80 +- tests/data/test580 | 58 + tests/data/test581 | 58 + tests/data/test582 | 49 + tests/data/test583 | 45 + tests/data/test584 | 102 + tests/data/test585 | 69 + tests/data/test586 | 59 + tests/data/test587 | 58 + tests/data/test588 | 69 + tests/data/test590 | 125 + tests/data/test591 | 73 + tests/data/test592 | 74 + tests/data/test593 | 72 + tests/data/test594 | 72 + tests/data/test595 | 57 + tests/data/test596 | 60 + tests/data/test597 | 37 + tests/data/test598 | 80 + tests/data/test599 | 85 + tests/data/test604 | 3 + tests/data/test61 | 4 +- tests/data/test62 | 9 +- tests/data/test623 | 3 + tests/data/test627 | 2 +- tests/data/test638 | 49 + tests/data/test639 | 49 + tests/data/test64 | 1 + tests/data/test640 | 41 + tests/data/test641 | 41 + tests/data/test65 | 1 + tests/data/test67 | 4 +- tests/data/test68 | 4 +- tests/data/test69 | 4 +- tests/data/test70 | 1 + tests/data/test708 | 60 + tests/data/test709 | 60 + tests/data/test710 | 57 + tests/data/test711 | 52 + tests/data/test712 | 49 + tests/data/test72 | 1 + tests/data/test73 | 2 +- tests/data/test74 | 1 + tests/data/test75 | 5 +- tests/data/test77 | 1 + tests/data/test78 | 1 + tests/data/test8 | 12 +- tests/data/test80 | 19 +- tests/data/test800 | 34 +- tests/data/test801 | 25 +- tests/data/test802 | 42 +- tests/data/test803 | 51 +- tests/data/test804 | 48 +- tests/data/test805 | 52 +- tests/data/test806 | 41 +- tests/data/test807 | 46 +- tests/data/test808 | 49 + tests/data/test809 | 43 + tests/data/test81 | 4 +- tests/data/test810 | 43 + tests/data/test811 | 40 + tests/data/test812 | 40 + tests/data/test813 | 40 + tests/data/test814 | 41 + tests/data/test815 | 46 + tests/data/test816 | 49 + tests/data/test817 | 40 + tests/data/test818 | 46 + tests/data/test819 | 56 + tests/data/test820 | 57 + tests/data/test821 | 59 + tests/data/test822 | 71 + tests/data/test823 | 63 + tests/data/test824 | 56 + tests/data/test825 | 56 + tests/data/test826 | 57 + tests/data/test827 | 71 + tests/data/test828 | 56 + tests/data/test829 | 29 + tests/data/test83 | 19 +- tests/data/test830 | 56 + tests/data/test831 | 67 + tests/data/test832 | 58 + tests/data/test833 | 65 + tests/data/test834 | 76 + tests/data/test835 | 67 + tests/data/test836 | 59 + tests/data/test850 | 49 + tests/data/test851 | 44 + tests/data/test852 | 47 + tests/data/test853 | 52 + tests/data/test854 | 45 + tests/data/test855 | 47 + tests/data/test856 | 45 + tests/data/test857 | 60 + tests/data/test858 | 41 + tests/data/test859 | 41 + tests/data/test86 | 1 + tests/data/test860 | 41 + tests/data/test861 | 52 + tests/data/test862 | 50 + tests/data/test863 | 41 + tests/data/test864 | 54 + tests/data/test865 | 57 + tests/data/test866 | 58 + tests/data/test867 | 60 + tests/data/test868 | 72 + tests/data/test869 | 64 + tests/data/test87 | 39 +- tests/data/test870 | 57 + tests/data/test871 | 56 + tests/data/test872 | 57 + tests/data/test873 | 71 + tests/data/test874 | 56 + tests/data/test875 | 29 + tests/data/test876 | 57 + tests/data/test877 | 68 + tests/data/test878 | 59 + tests/data/test879 | 66 + tests/data/test88 | 2 +- tests/data/test880 | 77 + tests/data/test881 | 68 + tests/data/test882 | 58 + tests/data/test89 | 6 +- tests/data/test90 | 6 +- tests/data/test900 | 51 + tests/data/test901 | 63 + tests/data/test902 | 57 + tests/data/test903 | 56 + tests/data/test904 | 57 + tests/data/test905 | 59 + tests/data/test906 | 71 + tests/data/test907 | 63 + tests/data/test908 | 56 + tests/data/test909 | 51 + tests/data/test91 | 4 +- tests/data/test910 | 51 + tests/data/test911 | 47 + tests/data/test912 | 55 + tests/data/test913 | 50 + tests/data/test914 | 46 + tests/data/test915 | 51 + tests/data/test916 | 47 + tests/data/test917 | 55 + tests/data/test918 | 48 + tests/data/test919 | 55 + tests/data/test92 | 2 +- tests/data/test920 | 56 + tests/data/test921 | 70 + tests/data/test922 | 55 + tests/data/test923 | 40 + tests/data/test924 | 43 + tests/data/test925 | 40 + tests/data/test926 | 44 + tests/data/test927 | 43 + tests/data/test928 | 41 + tests/data/test929 | 38 + tests/data/test930 | 38 + tests/data/test931 | 29 + tests/data/test932 | 56 + tests/data/test933 | 67 + tests/data/test934 | 58 + tests/data/test935 | 65 + tests/data/test936 | 76 + tests/data/test937 | 67 + tests/data/test938 | 63 + tests/data/test939 | 50 + tests/data/test94 | 4 +- tests/data/test940 | 45 + tests/data/test941 | 66 + tests/data/test95 | 17 +- tests/data/test96 | 46 + tests/directories.pm | 21 + tests/ftp.pm | 86 +- tests/ftpserver.pl | 2268 +- tests/getpart.pm | 98 +- tests/http_pipe.py | 441 + tests/httpserver.pl | 39 +- tests/keywords.pl | 153 + tests/libtest/.gitignore | 7 + tests/libtest/CMakeLists.txt | 122 + tests/libtest/Makefile.am | 78 +- tests/libtest/Makefile.in | 1720 - tests/libtest/Makefile.inc | 333 +- tests/libtest/chkhostname.c | 23 +- tests/libtest/first.c | 102 +- tests/libtest/lib1500.c | 90 + tests/libtest/lib1501.c | 126 + tests/libtest/lib1502.c | 145 + tests/libtest/lib1506.c | 135 + tests/libtest/lib1507.c | 168 + tests/libtest/lib1508.c | 49 + tests/libtest/lib1509.c | 97 + tests/libtest/lib1510.c | 97 + tests/libtest/lib1511.c | 75 + tests/libtest/lib1512.c | 89 + tests/libtest/lib1513.c | 73 + tests/libtest/lib1514.c | 80 + tests/libtest/lib1515.c | 151 + tests/libtest/lib1520.c | 114 + tests/libtest/lib1525.c | 97 + tests/libtest/lib1526.c | 103 + tests/libtest/lib1527.c | 98 + tests/libtest/lib1528.c | 72 + tests/libtest/lib1529.c | 59 + tests/libtest/lib1900.c | 250 + tests/libtest/lib500.c | 105 +- tests/libtest/lib501.c | 18 +- tests/libtest/lib502.c | 112 +- tests/libtest/lib503.c | 148 +- tests/libtest/lib504.c | 141 +- tests/libtest/lib505.c | 41 +- tests/libtest/lib506.c | 132 +- tests/libtest/lib507.c | 141 +- tests/libtest/lib508.c | 20 +- tests/libtest/lib509.c | 146 + tests/libtest/lib510.c | 22 +- tests/libtest/lib511.c | 18 +- tests/libtest/lib512.c | 18 +- tests/libtest/lib513.c | 20 +- tests/libtest/lib514.c | 18 +- tests/libtest/lib515.c | 18 +- tests/libtest/lib516.c | 18 +- tests/libtest/lib517.c | 27 +- tests/libtest/lib518.c | 25 +- tests/libtest/lib519.c | 18 +- tests/libtest/lib520.c | 18 +- tests/libtest/lib521.c | 18 +- tests/libtest/lib523.c | 18 +- tests/libtest/lib524.c | 18 +- tests/libtest/lib525.c | 188 +- tests/libtest/lib526.c | 256 +- tests/libtest/lib530.c | 209 +- tests/libtest/lib533.c | 170 +- tests/libtest/lib536.c | 172 +- tests/libtest/lib537.c | 27 +- tests/libtest/lib539.c | 30 +- tests/libtest/lib540.c | 206 +- tests/libtest/lib541.c | 41 +- tests/libtest/lib542.c | 31 +- tests/libtest/lib543.c | 25 +- tests/libtest/lib544.c | 35 +- tests/libtest/lib547.c | 17 +- tests/libtest/lib549.c | 17 +- tests/libtest/lib552.c | 21 +- tests/libtest/lib553.c | 18 +- tests/libtest/lib554.c | 57 +- tests/libtest/lib555.c | 134 +- tests/libtest/lib556.c | 26 +- tests/libtest/lib557.c | 19 +- tests/libtest/lib558.c | 197 +- tests/libtest/lib560.c | 98 +- tests/libtest/lib562.c | 31 +- tests/libtest/lib564.c | 138 +- tests/libtest/lib566.c | 18 +- tests/libtest/lib567.c | 19 +- tests/libtest/lib568.c | 18 +- tests/libtest/lib569.c | 18 +- tests/libtest/lib570.c | 20 +- tests/libtest/lib571.c | 28 +- tests/libtest/lib572.c | 20 +- tests/libtest/lib573.c | 127 +- tests/libtest/lib574.c | 18 +- tests/libtest/lib575.c | 105 +- tests/libtest/lib576.c | 19 +- tests/libtest/lib577.c | 255 - tests/libtest/lib578.c | 18 +- tests/libtest/lib579.c | 22 +- tests/libtest/lib582.c | 366 + tests/libtest/lib583.c | 84 + tests/libtest/lib586.c | 246 + tests/libtest/lib590.c | 71 + tests/libtest/lib591.c | 149 + tests/libtest/lib597.c | 150 + tests/libtest/lib598.c | 72 + tests/libtest/lib599.c | 96 + tests/libtest/libauthretry.c | 152 + tests/libtest/libntlmconnect.c | 281 + tests/libtest/notexists.pl | 15 + tests/libtest/sethostname.c | 20 +- tests/libtest/sethostname.h | 35 +- tests/libtest/test.h | 409 +- tests/libtest/test1013.pl | 4 +- tests/libtest/test1022.pl | 23 +- tests/libtest/testtrace.c | 146 + tests/libtest/testtrace.h | 37 + tests/libtest/testutil.c | 12 +- tests/libtest/testutil.h | 12 +- tests/mem-include-scan.pl | 96 + tests/memanalyze.pl | 54 +- tests/rtspserver.pl | 3 +- tests/runtests.1 | 14 +- tests/runtests.html | 87 - tests/runtests.pdf | Bin 7204 -> 0 bytes tests/runtests.pl | 2021 +- tests/secureserver.pl | 100 +- tests/server/.gitignore | 7 + tests/server/CMakeLists.txt | 62 + tests/server/Makefile.am | 41 +- tests/server/Makefile.in | 1696 - tests/server/Makefile.inc | 57 +- tests/server/base64.pl | 9 + tests/server/fake_ntlm.c | 277 + tests/server/getpart.c | 100 +- tests/server/getpart.h | 9 +- tests/server/resolve.c | 24 +- tests/server/rtspd.c | 71 +- tests/server/server_setup.h | 29 + tests/server/server_sockaddr.h | 16 +- tests/server/sockfilt.c | 619 +- tests/server/sws.c | 1677 +- tests/server/testpart.c | 7 +- tests/server/tftp.h | 18 +- tests/server/tftpd.c | 216 +- tests/server/util.c | 61 +- tests/server/util.h | 10 +- tests/serverhelp.pm | 37 +- tests/sshhelp.pm | 120 +- tests/sshserver.pl | 79 +- tests/stunnel.pem | 77 +- tests/symbol-scan.pl | 26 +- tests/testcurl.1 | 2 +- tests/testcurl.html | 113 - tests/testcurl.pdf | Bin 7203 -> 0 bytes tests/testcurl.pl | 149 +- tests/tftpserver.pl | 3 +- tests/unit/.gitignore | 1 + tests/unit/Makefile.am | 78 + tests/unit/Makefile.inc | 58 + tests/unit/README | 70 + tests/unit/curlcheck.h | 98 + tests/unit/unit1300.c | 292 + tests/unit/unit1301.c | 54 + tests/unit/unit1302.c | 157 + tests/unit/unit1303.c | 146 + tests/unit/unit1304.c | 185 + tests/unit/unit1305.c | 141 + tests/unit/unit1307.c | 234 + tests/unit/unit1308.c | 95 + tests/unit/unit1309.c | 110 + tests/unit/unit1330.c | 41 + tests/unit/unit1394.c | 122 + tests/unit/unit1395.c | 84 + tests/unit/unit1396.c | 111 + tests/unit/unit1397.c | 51 + tests/unit/unit1398.c | 91 + tests/valgrind.pm | 9 +- tests/valgrind.supp | 89 + vc6curl.dsw | 44 - winbuild/.gitignore | 2 + winbuild/BUILD.WINDOWS.txt | 78 + winbuild/Makefile.msvc.names | 81 + winbuild/Makefile.vc | 205 + winbuild/MakefileBuild.vc | 503 + winbuild/gen_resp_file.bat | 6 + 2057 files changed, 230927 insertions(+), 153294 deletions(-) delete mode 100644 Android.mk create mode 100644 CHANGES.0 delete mode 100644 CMake/CheckTypeSize.c.in delete mode 100644 CMake/CheckTypeSize.cmake delete mode 100644 CMake/CurlCheckCSourceCompiles.cmake delete mode 100644 CMake/CurlCheckCSourceRuns.cmake create mode 100644 CMake/FindCARES.cmake create mode 100644 CMake/FindGSS.cmake create mode 100644 CMake/FindLibSSH2.cmake delete mode 100644 CMake/FindOpenSSL.cmake delete mode 100644 CMake/FindZLIB.cmake create mode 100644 CMake/Macros.cmake create mode 100644 CTestConfig.cmake create mode 100644 GIT-INFO delete mode 100644 Makefile create mode 100644 Makefile.dist delete mode 100644 Makefile.in delete mode 100644 aclocal.m4 create mode 100644 buildconf.bat delete mode 100755 compile delete mode 100755 config.guess delete mode 100755 config.sub delete mode 100755 configure create mode 100755 contributors.sh delete mode 100644 curl-style.el create mode 100644 curl.manifest delete mode 100644 debian/changelog delete mode 100644 debian/changelog.old-ssl delete mode 100644 debian/compat delete mode 100644 debian/control delete mode 100644 debian/copyright delete mode 100644 debian/libcurl3-dbg.dirs delete mode 100644 debian/libcurl3.dirs delete mode 100644 debian/libcurl3.install delete mode 100644 debian/libcurl3.links delete mode 100644 debian/libcurl3.lintian-overrides delete mode 100644 debian/libcurl4-openssl-dev.dirs delete mode 100644 debian/libcurl4-openssl-dev.install delete mode 100755 debian/rules delete mode 100644 debian/source/format delete mode 100644 debian/watch delete mode 100755 depcomp create mode 100644 docs/.gitignore create mode 100644 docs/HTTP-COOKIES create mode 100644 docs/INSTALL.cmake create mode 100644 docs/LIBCURL-STRUCTS create mode 100644 docs/MAIL-ETIQUETTE delete mode 100644 docs/Makefile.in create mode 100644 docs/README.cmake create mode 100644 docs/RELEASE-PROCEDURE create mode 100644 docs/ROADMAP.md create mode 100644 docs/SECURITY create mode 100644 docs/SSL-PROBLEMS create mode 100644 docs/THANKS-filter delete mode 100644 docs/curl-config.html delete mode 100644 docs/curl-config.pdf delete mode 100644 docs/curl.html delete mode 100644 docs/curl.pdf create mode 100644 docs/examples/.gitignore delete mode 100644 docs/examples/Makefile.in create mode 100644 docs/examples/Makefile.netware create mode 100755 docs/examples/adddocsref.pl create mode 100644 docs/examples/asiohiper.cpp create mode 100644 docs/examples/externalsocket.c create mode 100644 docs/examples/ftpsget.c create mode 100644 docs/examples/href_extractor.c delete mode 100644 docs/examples/htmltitle.cc create mode 100644 docs/examples/htmltitle.cpp create mode 100644 docs/examples/imap-append.c create mode 100644 docs/examples/imap-copy.c create mode 100644 docs/examples/imap-create.c create mode 100644 docs/examples/imap-delete.c create mode 100644 docs/examples/imap-examine.c create mode 100644 docs/examples/imap-fetch.c create mode 100644 docs/examples/imap-list.c create mode 100644 docs/examples/imap-lsub.c create mode 100644 docs/examples/imap-multi.c create mode 100644 docs/examples/imap-noop.c create mode 100644 docs/examples/imap-search.c create mode 100644 docs/examples/imap-ssl.c create mode 100644 docs/examples/imap-store.c create mode 100644 docs/examples/imap-tls.c create mode 100644 docs/examples/multi-uv.c create mode 100644 docs/examples/pop3-dele.c create mode 100644 docs/examples/pop3-list.c create mode 100644 docs/examples/pop3-multi.c create mode 100644 docs/examples/pop3-noop.c create mode 100644 docs/examples/pop3-retr.c create mode 100644 docs/examples/pop3-ssl.c create mode 100644 docs/examples/pop3-stat.c create mode 100644 docs/examples/pop3-tls.c create mode 100644 docs/examples/pop3-top.c create mode 100644 docs/examples/pop3-uidl.c create mode 100644 docs/examples/postinmemory.c create mode 100644 docs/examples/progressfunc.c create mode 100644 docs/examples/resolve.c create mode 100644 docs/examples/rtsp.c create mode 100644 docs/examples/sessioninfo.c create mode 100644 docs/examples/sftpget.c create mode 100644 docs/examples/smtp-expn.c create mode 100644 docs/examples/smtp-mail.c create mode 100644 docs/examples/smtp-ssl.c create mode 100644 docs/examples/smtp-tls.c create mode 100644 docs/examples/smtp-vrfy.c create mode 100644 docs/examples/url2file.c create mode 100644 docs/examples/usercertinmem.c create mode 100644 docs/examples/xmlstream.c create mode 100644 docs/libcurl/.gitignore delete mode 100644 docs/libcurl/Makefile.in delete mode 100644 docs/libcurl/curl_easy_cleanup.html delete mode 100644 docs/libcurl/curl_easy_cleanup.pdf delete mode 100644 docs/libcurl/curl_easy_duphandle.html delete mode 100644 docs/libcurl/curl_easy_duphandle.pdf delete mode 100644 docs/libcurl/curl_easy_escape.html delete mode 100644 docs/libcurl/curl_easy_escape.pdf delete mode 100644 docs/libcurl/curl_easy_getinfo.html delete mode 100644 docs/libcurl/curl_easy_getinfo.pdf delete mode 100644 docs/libcurl/curl_easy_init.html delete mode 100644 docs/libcurl/curl_easy_init.pdf delete mode 100644 docs/libcurl/curl_easy_pause.html delete mode 100644 docs/libcurl/curl_easy_pause.pdf delete mode 100644 docs/libcurl/curl_easy_perform.html delete mode 100644 docs/libcurl/curl_easy_perform.pdf delete mode 100644 docs/libcurl/curl_easy_recv.html delete mode 100644 docs/libcurl/curl_easy_recv.pdf delete mode 100644 docs/libcurl/curl_easy_reset.html delete mode 100644 docs/libcurl/curl_easy_reset.pdf delete mode 100644 docs/libcurl/curl_easy_send.html delete mode 100644 docs/libcurl/curl_easy_send.pdf delete mode 100644 docs/libcurl/curl_easy_setopt.html delete mode 100644 docs/libcurl/curl_easy_setopt.pdf delete mode 100644 docs/libcurl/curl_easy_strerror.html delete mode 100644 docs/libcurl/curl_easy_strerror.pdf delete mode 100644 docs/libcurl/curl_easy_unescape.html delete mode 100644 docs/libcurl/curl_easy_unescape.pdf delete mode 100644 docs/libcurl/curl_escape.html delete mode 100644 docs/libcurl/curl_escape.pdf delete mode 100644 docs/libcurl/curl_formadd.html delete mode 100644 docs/libcurl/curl_formadd.pdf delete mode 100644 docs/libcurl/curl_formfree.html delete mode 100644 docs/libcurl/curl_formfree.pdf delete mode 100644 docs/libcurl/curl_formget.html delete mode 100644 docs/libcurl/curl_formget.pdf delete mode 100644 docs/libcurl/curl_free.html delete mode 100644 docs/libcurl/curl_free.pdf delete mode 100644 docs/libcurl/curl_getdate.html delete mode 100644 docs/libcurl/curl_getdate.pdf delete mode 100644 docs/libcurl/curl_getenv.html delete mode 100644 docs/libcurl/curl_getenv.pdf delete mode 100644 docs/libcurl/curl_global_cleanup.html delete mode 100644 docs/libcurl/curl_global_cleanup.pdf delete mode 100644 docs/libcurl/curl_global_init.html delete mode 100644 docs/libcurl/curl_global_init.pdf delete mode 100644 docs/libcurl/curl_global_init_mem.html delete mode 100644 docs/libcurl/curl_global_init_mem.pdf delete mode 100644 docs/libcurl/curl_mprintf.html delete mode 100644 docs/libcurl/curl_mprintf.pdf delete mode 100644 docs/libcurl/curl_multi_add_handle.html delete mode 100644 docs/libcurl/curl_multi_add_handle.pdf delete mode 100644 docs/libcurl/curl_multi_assign.html delete mode 100644 docs/libcurl/curl_multi_assign.pdf delete mode 100644 docs/libcurl/curl_multi_cleanup.html delete mode 100644 docs/libcurl/curl_multi_cleanup.pdf delete mode 100644 docs/libcurl/curl_multi_fdset.html delete mode 100644 docs/libcurl/curl_multi_fdset.pdf delete mode 100644 docs/libcurl/curl_multi_info_read.html delete mode 100644 docs/libcurl/curl_multi_info_read.pdf delete mode 100644 docs/libcurl/curl_multi_init.html delete mode 100644 docs/libcurl/curl_multi_init.pdf delete mode 100644 docs/libcurl/curl_multi_perform.html delete mode 100644 docs/libcurl/curl_multi_perform.pdf delete mode 100644 docs/libcurl/curl_multi_remove_handle.html delete mode 100644 docs/libcurl/curl_multi_remove_handle.pdf delete mode 100644 docs/libcurl/curl_multi_setopt.html delete mode 100644 docs/libcurl/curl_multi_setopt.pdf delete mode 100644 docs/libcurl/curl_multi_socket.html delete mode 100644 docs/libcurl/curl_multi_socket.pdf delete mode 100644 docs/libcurl/curl_multi_socket_action.html delete mode 100644 docs/libcurl/curl_multi_socket_action.pdf create mode 100644 docs/libcurl/curl_multi_socket_all.3 delete mode 100644 docs/libcurl/curl_multi_strerror.html delete mode 100644 docs/libcurl/curl_multi_strerror.pdf delete mode 100644 docs/libcurl/curl_multi_timeout.html delete mode 100644 docs/libcurl/curl_multi_timeout.pdf create mode 100644 docs/libcurl/curl_multi_wait.3 delete mode 100644 docs/libcurl/curl_share_cleanup.html delete mode 100644 docs/libcurl/curl_share_cleanup.pdf delete mode 100644 docs/libcurl/curl_share_init.html delete mode 100644 docs/libcurl/curl_share_init.pdf delete mode 100644 docs/libcurl/curl_share_setopt.html delete mode 100644 docs/libcurl/curl_share_setopt.pdf delete mode 100644 docs/libcurl/curl_share_strerror.html delete mode 100644 docs/libcurl/curl_share_strerror.pdf delete mode 100644 docs/libcurl/curl_slist_append.html delete mode 100644 docs/libcurl/curl_slist_append.pdf delete mode 100644 docs/libcurl/curl_slist_free_all.html delete mode 100644 docs/libcurl/curl_slist_free_all.pdf delete mode 100644 docs/libcurl/curl_strequal.html delete mode 100644 docs/libcurl/curl_strequal.pdf create mode 100644 docs/libcurl/curl_strnequal.3 delete mode 100644 docs/libcurl/curl_unescape.html delete mode 100644 docs/libcurl/curl_unescape.pdf delete mode 100644 docs/libcurl/curl_version.html delete mode 100644 docs/libcurl/curl_version.pdf delete mode 100644 docs/libcurl/curl_version_info.html delete mode 100644 docs/libcurl/curl_version_info.pdf create mode 100644 docs/libcurl/getinfo-times delete mode 100644 docs/libcurl/libcurl-easy.html delete mode 100644 docs/libcurl/libcurl-easy.pdf delete mode 100644 docs/libcurl/libcurl-errors.html delete mode 100644 docs/libcurl/libcurl-errors.pdf delete mode 100644 docs/libcurl/libcurl-multi.html delete mode 100644 docs/libcurl/libcurl-multi.pdf delete mode 100644 docs/libcurl/libcurl-share.html delete mode 100644 docs/libcurl/libcurl-share.pdf delete mode 100644 docs/libcurl/libcurl-tutorial.html delete mode 100644 docs/libcurl/libcurl-tutorial.pdf delete mode 100644 docs/libcurl/libcurl.html delete mode 100644 docs/libcurl/libcurl.pdf create mode 100644 docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 create mode 100644 docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 create mode 100644 docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3 create mode 100644 docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3 create mode 100644 docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3 create mode 100644 docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3 create mode 100644 docs/libcurl/opts/CURLMOPT_PIPELINING.3 create mode 100644 docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3 create mode 100644 docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3 create mode 100644 docs/libcurl/opts/CURLMOPT_SOCKETDATA.3 create mode 100644 docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLMOPT_TIMERDATA.3 create mode 100644 docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3 create mode 100644 docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3 create mode 100644 docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3 create mode 100644 docs/libcurl/opts/CURLOPT_APPEND.3 create mode 100644 docs/libcurl/opts/CURLOPT_AUTOREFERER.3 create mode 100644 docs/libcurl/opts/CURLOPT_BUFFERSIZE.3 create mode 100644 docs/libcurl/opts/CURLOPT_CAINFO.3 create mode 100644 docs/libcurl/opts/CURLOPT_CAPATH.3 create mode 100644 docs/libcurl/opts/CURLOPT_CERTINFO.3 create mode 100644 docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_CHUNK_DATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3 create mode 100644 docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3 create mode 100644 docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3 create mode 100644 docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_COOKIE.3 create mode 100644 docs/libcurl/opts/CURLOPT_COOKIEFILE.3 create mode 100644 docs/libcurl/opts/CURLOPT_COOKIEJAR.3 create mode 100644 docs/libcurl/opts/CURLOPT_COOKIELIST.3 create mode 100644 docs/libcurl/opts/CURLOPT_COOKIESESSION.3 create mode 100644 docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3 create mode 100644 docs/libcurl/opts/CURLOPT_CRLF.3 create mode 100644 docs/libcurl/opts/CURLOPT_CRLFILE.3 create mode 100644 docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3 create mode 100644 docs/libcurl/opts/CURLOPT_DEBUGDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_DIRLISTONLY.3 create mode 100644 docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3 create mode 100644 docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3 create mode 100644 docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3 create mode 100644 docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3 create mode 100644 docs/libcurl/opts/CURLOPT_DNS_SERVERS.3 create mode 100644 docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3 create mode 100644 docs/libcurl/opts/CURLOPT_EGDSOCKET.3 create mode 100644 docs/libcurl/opts/CURLOPT_ERRORBUFFER.3 create mode 100644 docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3 create mode 100644 docs/libcurl/opts/CURLOPT_FAILONERROR.3 create mode 100644 docs/libcurl/opts/CURLOPT_FILETIME.3 create mode 100644 docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3 create mode 100644 docs/libcurl/opts/CURLOPT_FORBID_REUSE.3 create mode 100644 docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTPPORT.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3 create mode 100644 docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3 create mode 100644 docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3 create mode 100644 docs/libcurl/opts/CURLOPT_HEADER.3 create mode 100644 docs/libcurl/opts/CURLOPT_HEADERDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_HEADEROPT.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTPAUTH.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTPGET.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTPHEADER.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTPPOST.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3 create mode 100644 docs/libcurl/opts/CURLOPT_HTTP_VERSION.3 create mode 100644 docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 create mode 100644 docs/libcurl/opts/CURLOPT_INFILESIZE.3 create mode 100644 docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_INTERFACE.3 create mode 100644 docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_IOCTLDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_IPRESOLVE.3 create mode 100644 docs/libcurl/opts/CURLOPT_ISSUERCERT.3 create mode 100644 docs/libcurl/opts/CURLOPT_KEYPASSWD.3 create mode 100644 docs/libcurl/opts/CURLOPT_KRBLEVEL.3 create mode 100644 docs/libcurl/opts/CURLOPT_LOCALPORT.3 create mode 100644 docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3 create mode 100644 docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3 create mode 100644 docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAIL_AUTH.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAIL_FROM.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAIL_RCPT.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAXCONNECTS.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAXFILESIZE.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAXREDIRS.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_NETRC.3 create mode 100644 docs/libcurl/opts/CURLOPT_NETRC_FILE.3 create mode 100644 docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3 create mode 100644 docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3 create mode 100644 docs/libcurl/opts/CURLOPT_NOBODY.3 create mode 100644 docs/libcurl/opts/CURLOPT_NOPROGRESS.3 create mode 100644 docs/libcurl/opts/CURLOPT_NOPROXY.3 create mode 100644 docs/libcurl/opts/CURLOPT_NOSIGNAL.3 create mode 100644 docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_PASSWORD.3 create mode 100644 docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3 create mode 100644 docs/libcurl/opts/CURLOPT_PORT.3 create mode 100644 docs/libcurl/opts/CURLOPT_POST.3 create mode 100644 docs/libcurl/opts/CURLOPT_POSTFIELDS.3 create mode 100644 docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3 create mode 100644 docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_POSTQUOTE.3 create mode 100644 docs/libcurl/opts/CURLOPT_POSTREDIR.3 create mode 100644 docs/libcurl/opts/CURLOPT_PREQUOTE.3 create mode 100644 docs/libcurl/opts/CURLOPT_PRIVATE.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROGRESSDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROTOCOLS.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXY.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYAUTH.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYHEADER.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYPORT.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYTYPE.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3 create mode 100644 docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3 create mode 100644 docs/libcurl/opts/CURLOPT_PUT.3 create mode 100644 docs/libcurl/opts/CURLOPT_QUOTE.3 create mode 100644 docs/libcurl/opts/CURLOPT_RANDOM_FILE.3 create mode 100644 docs/libcurl/opts/CURLOPT_RANGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_READDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_READFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3 create mode 100644 docs/libcurl/opts/CURLOPT_REFERER.3 create mode 100644 docs/libcurl/opts/CURLOPT_RESOLVE.3 create mode 100644 docs/libcurl/opts/CURLOPT_RESUME_FROM.3 create mode 100644 docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3 create mode 100644 docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3 create mode 100644 docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3 create mode 100644 docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3 create mode 100644 docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3 create mode 100644 docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3 create mode 100644 docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3 create mode 100644 docs/libcurl/opts/CURLOPT_SASL_IR.3 create mode 100644 docs/libcurl/opts/CURLOPT_SEEKDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_SHARE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3 create mode 100644 docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLCERT.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLENGINE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLKEY.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSLVERSION.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3 create mode 100644 docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3 create mode 100644 docs/libcurl/opts/CURLOPT_STDERR.3 create mode 100644 docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3 create mode 100644 docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3 create mode 100644 docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3 create mode 100644 docs/libcurl/opts/CURLOPT_TCP_NODELAY.3 create mode 100644 docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3 create mode 100644 docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3 create mode 100644 docs/libcurl/opts/CURLOPT_TIMECONDITION.3 create mode 100644 docs/libcurl/opts/CURLOPT_TIMEOUT.3 create mode 100644 docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3 create mode 100644 docs/libcurl/opts/CURLOPT_TIMEVALUE.3 create mode 100644 docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3 create mode 100644 docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3 create mode 100644 docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3 create mode 100644 docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3 create mode 100644 docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3 create mode 100644 docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3 create mode 100644 docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3 create mode 100644 docs/libcurl/opts/CURLOPT_UPLOAD.3 create mode 100644 docs/libcurl/opts/CURLOPT_URL.3 create mode 100644 docs/libcurl/opts/CURLOPT_USERAGENT.3 create mode 100644 docs/libcurl/opts/CURLOPT_USERNAME.3 create mode 100644 docs/libcurl/opts/CURLOPT_USERPWD.3 create mode 100644 docs/libcurl/opts/CURLOPT_USE_SSL.3 create mode 100644 docs/libcurl/opts/CURLOPT_VERBOSE.3 create mode 100644 docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3 create mode 100644 docs/libcurl/opts/CURLOPT_WRITEDATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_XFERINFODATA.3 create mode 100644 docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3 create mode 100644 docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3 create mode 100644 docs/libcurl/opts/Makefile.am create mode 100644 docs/libcurl/opts/template.3 create mode 100755 docs/libcurl/symbols.pl create mode 100644 docs/mk-ca-bundle.1 delete mode 100644 include/Makefile.in create mode 100644 include/curl/.gitignore delete mode 100644 include/curl/Makefile.in delete mode 100644 include/curl/curlbuild.h create mode 100644 include/curl/curlbuild.h.dist delete mode 100644 include/curl/types.h create mode 100644 lib/.gitignore delete mode 100644 lib/Makefile.in delete mode 100644 lib/Makefile.vc10 delete mode 100644 lib/Makefile.vc8 delete mode 100644 lib/Makefile.vc9 create mode 100644 lib/README.http2 create mode 100644 lib/asyn-ares.c create mode 100644 lib/asyn-thread.c create mode 100644 lib/asyn.h create mode 100644 lib/bundles.c create mode 100644 lib/bundles.h create mode 100755 lib/checksrc.pl delete mode 100644 lib/config-vms.h create mode 100644 lib/conncache.c create mode 100644 lib/conncache.h delete mode 100644 lib/curl_config.h.in create mode 100644 lib/curl_endian.c create mode 100644 lib/curl_endian.h create mode 100644 lib/curl_gssapi.c create mode 100644 lib/curl_gssapi.h create mode 100644 lib/curl_multibyte.c create mode 100644 lib/curl_multibyte.h create mode 100644 lib/curl_ntlm.c create mode 100644 lib/curl_ntlm.h create mode 100644 lib/curl_ntlm_core.c create mode 100644 lib/curl_ntlm_core.h create mode 100644 lib/curl_ntlm_msgs.c create mode 100644 lib/curl_ntlm_msgs.h create mode 100644 lib/curl_ntlm_wb.c create mode 100644 lib/curl_ntlm_wb.h delete mode 100644 lib/curl_rand.c delete mode 100644 lib/curl_rand.h create mode 100644 lib/curl_sasl.c create mode 100644 lib/curl_sasl.h create mode 100644 lib/curl_sasl_gssapi.c create mode 100644 lib/curl_sasl_sspi.c create mode 100644 lib/curl_sec.h create mode 100644 lib/curl_setup.h create mode 100644 lib/curl_setup_once.h create mode 100644 lib/dotdot.c create mode 100644 lib/dotdot.h delete mode 100644 lib/gtls.c delete mode 100644 lib/gtls.h delete mode 100644 lib/hostares.c create mode 100644 lib/hostcheck.c create mode 100644 lib/hostcheck.h delete mode 100644 lib/hostthre.c create mode 100644 lib/http2.c create mode 100644 lib/http2.h create mode 100644 lib/http_negotiate_sspi.c delete mode 100644 lib/http_ntlm.c delete mode 100644 lib/http_ntlm.h create mode 100644 lib/http_proxy.c create mode 100644 lib/http_proxy.h create mode 100644 lib/idn_win32.c delete mode 100644 lib/krb4.c delete mode 100644 lib/krb4.h create mode 100644 lib/libcurl.def delete mode 100644 lib/libcurl.imp delete mode 100644 lib/libcurl.vcproj delete mode 100644 lib/msvcproj.foot delete mode 100644 lib/msvcproj.head create mode 100644 lib/multihandle.h create mode 100644 lib/non-ascii.c create mode 100644 lib/non-ascii.h delete mode 100644 lib/nss.c delete mode 100644 lib/nssg.h create mode 100755 lib/objnames-test08.sh create mode 100755 lib/objnames-test10.sh create mode 100644 lib/objnames.inc create mode 100644 lib/pipeline.c create mode 100644 lib/pipeline.h delete mode 100644 lib/polarssl.c delete mode 100644 lib/polarssl.h delete mode 100644 lib/qssl.c delete mode 100644 lib/qssl.h create mode 100644 lib/setup-vms.h delete mode 100644 lib/setup.h delete mode 100644 lib/setup_once.h create mode 100644 lib/sigpipe.h create mode 100644 lib/smb.c create mode 100644 lib/smb.h delete mode 100644 lib/sslgen.c delete mode 100644 lib/sslgen.h delete mode 100644 lib/ssluse.c delete mode 100644 lib/ssluse.h delete mode 100644 lib/vc6libcurl.dsp delete mode 100644 lib/vc6libcurl.dsw create mode 100644 lib/vtls/axtls.c create mode 100644 lib/vtls/axtls.h create mode 100644 lib/vtls/curl_darwinssl.c create mode 100644 lib/vtls/curl_darwinssl.h create mode 100644 lib/vtls/curl_schannel.c create mode 100644 lib/vtls/curl_schannel.h create mode 100644 lib/vtls/cyassl.c create mode 100644 lib/vtls/cyassl.h create mode 100644 lib/vtls/gskit.c create mode 100644 lib/vtls/gskit.h create mode 100644 lib/vtls/gtls.c create mode 100644 lib/vtls/gtls.h create mode 100644 lib/vtls/nss.c create mode 100644 lib/vtls/nssg.h create mode 100644 lib/vtls/openssl.c create mode 100644 lib/vtls/openssl.h create mode 100644 lib/vtls/polarssl.c create mode 100644 lib/vtls/polarssl.h create mode 100644 lib/vtls/polarssl_threadlock.c create mode 100644 lib/vtls/polarssl_threadlock.h create mode 100644 lib/vtls/vtls.c create mode 100644 lib/vtls/vtls.h create mode 100644 lib/x509asn1.c create mode 100644 lib/x509asn1.h create mode 100755 log2changes.pl delete mode 100755 ltmain.sh create mode 100644 m4/.gitignore create mode 100644 m4/curl-openssl.m4 delete mode 100644 m4/curl-system.m4 delete mode 100644 m4/libtool.m4 delete mode 100644 m4/ltoptions.m4 delete mode 100644 m4/ltsugar.m4 delete mode 100644 m4/ltversion.m4 delete mode 100644 m4/lt~obsolete.m4 create mode 100644 m4/xc-am-iface.m4 create mode 100644 m4/xc-cc-check.m4 create mode 100644 m4/xc-lt-iface.m4 create mode 100644 m4/xc-translit.m4 create mode 100644 m4/xc-val-flgs.m4 create mode 100644 m4/zz40-xc-ovr.m4 create mode 100644 m4/zz50-xc-ovr.m4 create mode 100644 m4/zz60-xc-ovr.m4 mode change 100644 => 100755 mkinstalldirs delete mode 100644 packages/AIX/Makefile.in create mode 100644 packages/AIX/RPM/.gitignore delete mode 100644 packages/AIX/RPM/Makefile.in create mode 100644 packages/Android/Android.mk create mode 100644 packages/EPM/.gitignore delete mode 100644 packages/EPM/Makefile.in delete mode 100644 packages/Linux/Makefile.in create mode 100644 packages/Linux/RPM/.gitignore delete mode 100644 packages/Linux/RPM/Makefile.in delete mode 100644 packages/Makefile.in create mode 100644 packages/NetWare/get_exp.awk delete mode 100644 packages/Solaris/Makefile.in delete mode 100644 packages/Win32/Makefile.in delete mode 100644 packages/Win32/cygwin/Makefile.in delete mode 100644 packages/vms/Makefile.in create mode 100644 packages/vms/backup_gnv_curl_src.com create mode 100644 packages/vms/build_curl-config_script.com create mode 100644 packages/vms/build_gnv_curl.com create mode 100644 packages/vms/build_gnv_curl_pcsi_desc.com create mode 100644 packages/vms/build_gnv_curl_pcsi_text.com create mode 100644 packages/vms/build_gnv_curl_release_notes.com create mode 100644 packages/vms/build_libcurl_pc.com create mode 100644 packages/vms/clean_gnv_curl.com create mode 100644 packages/vms/compare_curl_source.com create mode 100644 packages/vms/config_h.com create mode 100644 packages/vms/curl_crtl_init.c create mode 100644 packages/vms/curl_gnv_build_steps.txt create mode 100644 packages/vms/curl_release_note_start.txt create mode 100644 packages/vms/curl_startup.com create mode 100644 packages/vms/generate_config_vms_h_curl.com create mode 100644 packages/vms/generate_vax_transfer.com create mode 100644 packages/vms/gnv_conftest.c_first create mode 100644 packages/vms/gnv_curl_configure.sh create mode 100644 packages/vms/gnv_libcurl_symbols.opt create mode 100644 packages/vms/gnv_link_curl.com delete mode 100644 packages/vms/hpssl_alpha.opt delete mode 100644 packages/vms/hpssl_ia64.opt delete mode 100644 packages/vms/hpssl_vax.opt delete mode 100644 packages/vms/ldap.opt create mode 100644 packages/vms/macro32_exactcase.patch create mode 100644 packages/vms/make_gnv_curl_install.sh create mode 100644 packages/vms/make_pcsi_curl_kit_name.com delete mode 100644 packages/vms/openssl_alpha.opt delete mode 100644 packages/vms/openssl_ia64.opt delete mode 100644 packages/vms/openssl_ssl_alpha.opt delete mode 100644 packages/vms/openssl_ssl_ia64.opt delete mode 100644 packages/vms/openssl_ssl_vax.opt delete mode 100644 packages/vms/openssl_vax.opt create mode 100644 packages/vms/pcsi_gnv_curl_file_list.txt create mode 100644 packages/vms/pcsi_product_gnv_curl.com create mode 100644 packages/vms/report_openssl_version.c create mode 100644 packages/vms/setup_gnv_curl_build.com create mode 100644 packages/vms/stage_curl_install.com create mode 100644 packages/vms/vms_eco_level.h create mode 100644 perl/Makefile.am create mode 100644 perl/README create mode 100644 perl/contrib/checklinks.pl.in create mode 100755 perl/contrib/crawlink.pl create mode 100644 perl/contrib/formfind create mode 100644 perl/contrib/getlinks.pl.in create mode 100644 perl/contrib/mirror.pl create mode 100644 perl/contrib/recursiveftpget.pl.in create mode 100644 projects/README create mode 100644 projects/Windows/VC10/.gitignore create mode 100644 projects/Windows/VC10/curl.sln create mode 100644 projects/Windows/VC10/lib/.gitignore create mode 100644 projects/Windows/VC10/lib/libcurl.sln create mode 100644 projects/Windows/VC10/lib/libcurl.tmpl create mode 100644 projects/Windows/VC10/src/.gitignore create mode 100644 projects/Windows/VC10/src/curlsrc.sln create mode 100644 projects/Windows/VC10/src/curlsrc.tmpl create mode 100644 projects/Windows/VC11/.gitignore create mode 100644 projects/Windows/VC11/curl.sln create mode 100644 projects/Windows/VC11/lib/.gitignore create mode 100644 projects/Windows/VC11/lib/libcurl.sln create mode 100644 projects/Windows/VC11/lib/libcurl.tmpl create mode 100644 projects/Windows/VC11/src/.gitignore create mode 100644 projects/Windows/VC11/src/curlsrc.sln create mode 100644 projects/Windows/VC11/src/curlsrc.tmpl create mode 100644 projects/Windows/VC12/.gitignore create mode 100644 projects/Windows/VC12/curl.sln create mode 100644 projects/Windows/VC12/lib/.gitignore create mode 100644 projects/Windows/VC12/lib/libcurl.sln create mode 100644 projects/Windows/VC12/lib/libcurl.tmpl create mode 100644 projects/Windows/VC12/src/.gitignore create mode 100644 projects/Windows/VC12/src/curlsrc.sln create mode 100644 projects/Windows/VC12/src/curlsrc.tmpl create mode 100644 projects/Windows/VC6/.gitignore create mode 100644 projects/Windows/VC6/curl.dsw create mode 100644 projects/Windows/VC6/lib/.gitignore create mode 100644 projects/Windows/VC6/lib/libcurl.dsw create mode 100644 projects/Windows/VC6/lib/libcurl.tmpl create mode 100644 projects/Windows/VC6/src/.gitignore create mode 100644 projects/Windows/VC6/src/curlsrc.dsw create mode 100644 projects/Windows/VC6/src/curlsrc.tmpl create mode 100644 projects/Windows/VC7.1/.gitignore create mode 100644 projects/Windows/VC7.1/curl.sln create mode 100644 projects/Windows/VC7.1/lib/.gitignore create mode 100644 projects/Windows/VC7.1/lib/libcurl.sln create mode 100644 projects/Windows/VC7.1/lib/libcurl.tmpl create mode 100644 projects/Windows/VC7.1/src/.gitignore create mode 100644 projects/Windows/VC7.1/src/curlsrc.sln create mode 100644 projects/Windows/VC7.1/src/curlsrc.tmpl create mode 100644 projects/Windows/VC7/.gitignore create mode 100644 projects/Windows/VC7/curl.sln create mode 100644 projects/Windows/VC7/lib/.gitignore create mode 100644 projects/Windows/VC7/lib/libcurl.sln create mode 100644 projects/Windows/VC7/lib/libcurl.tmpl create mode 100644 projects/Windows/VC7/src/.gitignore create mode 100644 projects/Windows/VC7/src/curlsrc.sln create mode 100644 projects/Windows/VC7/src/curlsrc.tmpl create mode 100644 projects/Windows/VC8/.gitignore create mode 100644 projects/Windows/VC8/curl.sln create mode 100644 projects/Windows/VC8/lib/.gitignore create mode 100644 projects/Windows/VC8/lib/libcurl.sln create mode 100644 projects/Windows/VC8/lib/libcurl.tmpl create mode 100644 projects/Windows/VC8/src/.gitignore create mode 100644 projects/Windows/VC8/src/curlsrc.sln create mode 100644 projects/Windows/VC8/src/curlsrc.tmpl create mode 100644 projects/Windows/VC9/.gitignore create mode 100644 projects/Windows/VC9/curl.sln create mode 100644 projects/Windows/VC9/lib/.gitignore create mode 100644 projects/Windows/VC9/lib/libcurl.sln create mode 100644 projects/Windows/VC9/lib/libcurl.tmpl create mode 100644 projects/Windows/VC9/src/.gitignore create mode 100644 projects/Windows/VC9/src/curlsrc.sln create mode 100644 projects/Windows/VC9/src/curlsrc.tmpl create mode 100644 projects/build-openssl.bat create mode 100644 projects/checksrc.bat create mode 100644 projects/generate.bat delete mode 100644 sample.emacs create mode 100644 src/.gitignore delete mode 100644 src/Makefile.in delete mode 100644 src/Makefile.vc10 delete mode 100644 src/Makefile.vc8 delete mode 100644 src/Makefile.vc9 delete mode 100644 src/config-amigaos.h delete mode 100644 src/config-mac.h delete mode 100644 src/config-riscos.h delete mode 100644 src/config-win32.h delete mode 100644 src/curl_config.h.in delete mode 100644 src/curlutil.c delete mode 100644 src/curlutil.h delete mode 100644 src/getpass.c delete mode 100644 src/getpass.h delete mode 100644 src/homedir.c delete mode 100644 src/homedir.h delete mode 100644 src/hugehelp.c delete mode 100644 src/hugehelp.h delete mode 100644 src/main.c delete mode 100644 src/os-specific.c delete mode 100644 src/os-specific.h delete mode 100644 src/setup.h create mode 100644 src/tool_binmode.c create mode 100644 src/tool_binmode.h create mode 100644 src/tool_bname.c create mode 100644 src/tool_bname.h create mode 100644 src/tool_cb_dbg.c create mode 100644 src/tool_cb_dbg.h create mode 100644 src/tool_cb_hdr.c create mode 100644 src/tool_cb_hdr.h create mode 100644 src/tool_cb_prg.c create mode 100644 src/tool_cb_prg.h create mode 100644 src/tool_cb_rea.c create mode 100644 src/tool_cb_rea.h create mode 100644 src/tool_cb_see.c create mode 100644 src/tool_cb_see.h create mode 100644 src/tool_cb_wrt.c create mode 100644 src/tool_cb_wrt.h create mode 100644 src/tool_cfgable.c create mode 100644 src/tool_cfgable.h create mode 100644 src/tool_convert.c create mode 100644 src/tool_convert.h create mode 100644 src/tool_dirhie.c create mode 100644 src/tool_dirhie.h create mode 100644 src/tool_doswin.c create mode 100644 src/tool_doswin.h create mode 100644 src/tool_easysrc.c create mode 100644 src/tool_easysrc.h create mode 100644 src/tool_formparse.c create mode 100644 src/tool_formparse.h create mode 100644 src/tool_getparam.c create mode 100644 src/tool_getparam.h create mode 100644 src/tool_getpass.c create mode 100644 src/tool_getpass.h create mode 100644 src/tool_help.c create mode 100644 src/tool_help.h create mode 100644 src/tool_helpers.c create mode 100644 src/tool_helpers.h create mode 100644 src/tool_homedir.c create mode 100644 src/tool_homedir.h create mode 100644 src/tool_hugehelp.c.cvs create mode 100644 src/tool_hugehelp.h create mode 100644 src/tool_libinfo.c create mode 100644 src/tool_libinfo.h create mode 100644 src/tool_main.c create mode 100644 src/tool_main.h create mode 100644 src/tool_metalink.c create mode 100644 src/tool_metalink.h create mode 100644 src/tool_mfiles.c create mode 100644 src/tool_mfiles.h create mode 100644 src/tool_msgs.c create mode 100644 src/tool_msgs.h create mode 100644 src/tool_operate.c create mode 100644 src/tool_operate.h create mode 100644 src/tool_operhlp.c create mode 100644 src/tool_operhlp.h create mode 100644 src/tool_panykey.c create mode 100644 src/tool_panykey.h create mode 100644 src/tool_paramhlp.c create mode 100644 src/tool_paramhlp.h create mode 100644 src/tool_parsecfg.c create mode 100644 src/tool_parsecfg.h create mode 100644 src/tool_sdecls.h create mode 100644 src/tool_setopt.c create mode 100644 src/tool_setopt.h create mode 100644 src/tool_setup.h create mode 100644 src/tool_sleep.c create mode 100644 src/tool_sleep.h create mode 100644 src/tool_strdup.c create mode 100644 src/tool_strdup.h create mode 100644 src/tool_urlglob.c create mode 100644 src/tool_urlglob.h create mode 100644 src/tool_util.c create mode 100644 src/tool_util.h create mode 100644 src/tool_version.h create mode 100644 src/tool_vms.c create mode 100644 src/tool_vms.h create mode 100644 src/tool_writeenv.c create mode 100644 src/tool_writeenv.h create mode 100644 src/tool_writeout.c create mode 100644 src/tool_writeout.h create mode 100644 src/tool_xattr.c create mode 100644 src/tool_xattr.h delete mode 100644 src/urlglob.c delete mode 100644 src/urlglob.h delete mode 100644 src/vc6curlsrc.dsp delete mode 100644 src/vc6curlsrc.dsw delete mode 100644 src/version.h delete mode 100644 src/writeenv.c delete mode 100644 src/writeenv.h delete mode 100644 src/writeout.c delete mode 100644 src/writeout.h delete mode 100644 src/xattr.c delete mode 100644 src/xattr.h create mode 100644 tests/.gitignore delete mode 100644 tests/Makefile.in create mode 100644 tests/certs/Makefile.am create mode 100644 tests/certs/Server-localhost-sv.pub.der create mode 100644 tests/certs/Server-localhost-sv.pub.pem create mode 100644 tests/certs/Server-localhost.nn-sv.pub.der create mode 100644 tests/certs/Server-localhost.nn-sv.pub.pem create mode 100644 tests/certs/Server-localhost0h-sv.pub.der create mode 100644 tests/certs/Server-localhost0h-sv.pub.pem create mode 100644 tests/certs/scripts/Makefile.am create mode 100644 tests/certs/srp-verifier-conf create mode 100644 tests/certs/srp-verifier-db create mode 100755 tests/convsrctest.pl create mode 100644 tests/data/.gitattributes create mode 100644 tests/data/CMakeLists.txt delete mode 100644 tests/data/Makefile.in create mode 100644 tests/data/Makefile.inc create mode 100644 tests/data/test1121 create mode 100644 tests/data/test1122 create mode 100644 tests/data/test1123 create mode 100644 tests/data/test1124 create mode 100644 tests/data/test1125 create mode 100644 tests/data/test1126 create mode 100644 tests/data/test1127 create mode 100644 tests/data/test1128 create mode 100644 tests/data/test1129 create mode 100644 tests/data/test1130 create mode 100644 tests/data/test1131 create mode 100644 tests/data/test1132 create mode 100644 tests/data/test1133 create mode 100644 tests/data/test1134 create mode 100644 tests/data/test1204 create mode 100644 tests/data/test1205 create mode 100644 tests/data/test1206 create mode 100644 tests/data/test1207 create mode 100644 tests/data/test1208 create mode 100644 tests/data/test1209 create mode 100644 tests/data/test1210 create mode 100644 tests/data/test1211 create mode 100644 tests/data/test1212 create mode 100644 tests/data/test1213 create mode 100644 tests/data/test1214 create mode 100644 tests/data/test1215 create mode 100644 tests/data/test1216 create mode 100644 tests/data/test1217 create mode 100644 tests/data/test1218 create mode 100644 tests/data/test1219 create mode 100644 tests/data/test1220 create mode 100644 tests/data/test1221 create mode 100644 tests/data/test1222 create mode 100644 tests/data/test1223 create mode 100644 tests/data/test1224 create mode 100644 tests/data/test1225 create mode 100644 tests/data/test1226 create mode 100644 tests/data/test1227 create mode 100644 tests/data/test1228 create mode 100644 tests/data/test1229 create mode 100644 tests/data/test1230 create mode 100644 tests/data/test1231 create mode 100644 tests/data/test1232 create mode 100644 tests/data/test1233 create mode 100644 tests/data/test1234 create mode 100644 tests/data/test1235 create mode 100644 tests/data/test1236 create mode 100644 tests/data/test1237 create mode 100644 tests/data/test1238 create mode 100644 tests/data/test1239 create mode 100644 tests/data/test1240 create mode 100644 tests/data/test1300 create mode 100644 tests/data/test1301 create mode 100644 tests/data/test1302 create mode 100644 tests/data/test1303 create mode 100644 tests/data/test1304 create mode 100644 tests/data/test1305 create mode 100644 tests/data/test1306 create mode 100644 tests/data/test1307 create mode 100644 tests/data/test1308 create mode 100644 tests/data/test1309 create mode 100644 tests/data/test1310 create mode 100644 tests/data/test1311 create mode 100644 tests/data/test1312 create mode 100644 tests/data/test1313 create mode 100644 tests/data/test1314 create mode 100644 tests/data/test1315 create mode 100644 tests/data/test1316 create mode 100644 tests/data/test1317 create mode 100644 tests/data/test1318 create mode 100644 tests/data/test1319 create mode 100644 tests/data/test1320 create mode 100644 tests/data/test1321 create mode 100644 tests/data/test1325 create mode 100644 tests/data/test1326 create mode 100644 tests/data/test1327 create mode 100644 tests/data/test1328 create mode 100644 tests/data/test1329 create mode 100644 tests/data/test1330 create mode 100644 tests/data/test1331 create mode 100644 tests/data/test1332 create mode 100644 tests/data/test1333 create mode 100644 tests/data/test1334 create mode 100644 tests/data/test1335 create mode 100644 tests/data/test1336 create mode 100644 tests/data/test1337 create mode 100644 tests/data/test1338 create mode 100644 tests/data/test1339 create mode 100644 tests/data/test1340 create mode 100644 tests/data/test1341 create mode 100644 tests/data/test1342 create mode 100644 tests/data/test1343 create mode 100644 tests/data/test1344 create mode 100644 tests/data/test1345 create mode 100644 tests/data/test1346 create mode 100644 tests/data/test1347 create mode 100644 tests/data/test1348 create mode 100644 tests/data/test1349 create mode 100644 tests/data/test1350 create mode 100644 tests/data/test1351 create mode 100644 tests/data/test1352 create mode 100644 tests/data/test1353 create mode 100644 tests/data/test1354 create mode 100644 tests/data/test1355 create mode 100644 tests/data/test1356 create mode 100644 tests/data/test1357 create mode 100644 tests/data/test1358 create mode 100644 tests/data/test1359 create mode 100644 tests/data/test1360 create mode 100644 tests/data/test1361 create mode 100644 tests/data/test1362 create mode 100644 tests/data/test1363 create mode 100644 tests/data/test1364 create mode 100644 tests/data/test1365 create mode 100644 tests/data/test1366 create mode 100644 tests/data/test1367 create mode 100644 tests/data/test1368 create mode 100644 tests/data/test1369 create mode 100644 tests/data/test1370 create mode 100644 tests/data/test1371 create mode 100644 tests/data/test1372 create mode 100644 tests/data/test1373 create mode 100644 tests/data/test1374 create mode 100644 tests/data/test1375 create mode 100644 tests/data/test1376 create mode 100644 tests/data/test1377 create mode 100644 tests/data/test1378 create mode 100644 tests/data/test1379 create mode 100644 tests/data/test1380 create mode 100644 tests/data/test1381 create mode 100644 tests/data/test1382 create mode 100644 tests/data/test1383 create mode 100644 tests/data/test1384 create mode 100644 tests/data/test1385 create mode 100644 tests/data/test1386 create mode 100644 tests/data/test1387 create mode 100644 tests/data/test1388 create mode 100644 tests/data/test1389 create mode 100644 tests/data/test1390 create mode 100644 tests/data/test1391 create mode 100644 tests/data/test1392 create mode 100644 tests/data/test1393 create mode 100644 tests/data/test1394 create mode 100644 tests/data/test1395 create mode 100644 tests/data/test1396 create mode 100644 tests/data/test1397 create mode 100644 tests/data/test1398 create mode 100644 tests/data/test1400 create mode 100644 tests/data/test1401 create mode 100644 tests/data/test1402 create mode 100644 tests/data/test1403 create mode 100644 tests/data/test1404 create mode 100644 tests/data/test1405 create mode 100644 tests/data/test1406 create mode 100644 tests/data/test1407 create mode 100644 tests/data/test1408 create mode 100644 tests/data/test1409 create mode 100644 tests/data/test1410 create mode 100644 tests/data/test1411 create mode 100644 tests/data/test1412 create mode 100644 tests/data/test1413 create mode 100644 tests/data/test1414 create mode 100644 tests/data/test1415 create mode 100644 tests/data/test1416 create mode 100644 tests/data/test1417 create mode 100644 tests/data/test1418 create mode 100644 tests/data/test1419 create mode 100644 tests/data/test1420 create mode 100644 tests/data/test1428 create mode 100644 tests/data/test1429 create mode 100644 tests/data/test1430 create mode 100644 tests/data/test1431 create mode 100644 tests/data/test1432 create mode 100644 tests/data/test1433 create mode 100644 tests/data/test1434 create mode 100644 tests/data/test1435 create mode 100644 tests/data/test1436 create mode 100644 tests/data/test1500 create mode 100644 tests/data/test1501 create mode 100644 tests/data/test1502 create mode 100644 tests/data/test1503 create mode 100644 tests/data/test1504 create mode 100644 tests/data/test1505 create mode 100644 tests/data/test1506 create mode 100644 tests/data/test1507 create mode 100644 tests/data/test1508 create mode 100644 tests/data/test1509 create mode 100644 tests/data/test1510 create mode 100644 tests/data/test1511 create mode 100644 tests/data/test1512 create mode 100644 tests/data/test1513 create mode 100644 tests/data/test1514 create mode 100644 tests/data/test1515 create mode 100644 tests/data/test1516 create mode 100644 tests/data/test1520 create mode 100644 tests/data/test1525 create mode 100644 tests/data/test1526 create mode 100644 tests/data/test1527 create mode 100644 tests/data/test1528 create mode 100644 tests/data/test1529 create mode 100644 tests/data/test1800 create mode 100644 tests/data/test1801 create mode 100644 tests/data/test1900 create mode 100644 tests/data/test1901 create mode 100644 tests/data/test1902 create mode 100644 tests/data/test1903 create mode 100644 tests/data/test2005 create mode 100644 tests/data/test2006 create mode 100644 tests/data/test2007 create mode 100644 tests/data/test2008 create mode 100644 tests/data/test2009 create mode 100644 tests/data/test2010 create mode 100644 tests/data/test2011 create mode 100644 tests/data/test2012 create mode 100644 tests/data/test2013 create mode 100644 tests/data/test2014 create mode 100644 tests/data/test2015 create mode 100644 tests/data/test2016 create mode 100644 tests/data/test2017 create mode 100644 tests/data/test2018 create mode 100644 tests/data/test2019 create mode 100644 tests/data/test2020 create mode 100644 tests/data/test2021 create mode 100644 tests/data/test2022 create mode 100644 tests/data/test2023 create mode 100644 tests/data/test2024 create mode 100644 tests/data/test2025 create mode 100644 tests/data/test2026 create mode 100644 tests/data/test2027 create mode 100644 tests/data/test2028 create mode 100644 tests/data/test2029 create mode 100644 tests/data/test2030 create mode 100644 tests/data/test2031 create mode 100644 tests/data/test2032 create mode 100644 tests/data/test2033 create mode 100644 tests/data/test2034 create mode 100644 tests/data/test2035 create mode 100644 tests/data/test2036 create mode 100644 tests/data/test2037 create mode 100644 tests/data/test2038 create mode 100644 tests/data/test320 create mode 100644 tests/data/test321 create mode 100644 tests/data/test322 create mode 100644 tests/data/test323 create mode 100644 tests/data/test324 create mode 100644 tests/data/test325 create mode 100644 tests/data/test509 delete mode 100644 tests/data/test559 delete mode 100644 tests/data/test577 create mode 100644 tests/data/test580 create mode 100644 tests/data/test581 create mode 100644 tests/data/test582 create mode 100644 tests/data/test583 create mode 100644 tests/data/test584 create mode 100644 tests/data/test585 create mode 100644 tests/data/test586 create mode 100644 tests/data/test587 create mode 100644 tests/data/test588 create mode 100644 tests/data/test590 create mode 100644 tests/data/test591 create mode 100644 tests/data/test592 create mode 100644 tests/data/test593 create mode 100644 tests/data/test594 create mode 100644 tests/data/test595 create mode 100644 tests/data/test596 create mode 100644 tests/data/test597 create mode 100644 tests/data/test598 create mode 100644 tests/data/test599 create mode 100644 tests/data/test638 create mode 100644 tests/data/test639 create mode 100644 tests/data/test640 create mode 100644 tests/data/test641 create mode 100644 tests/data/test708 create mode 100644 tests/data/test709 create mode 100644 tests/data/test710 create mode 100644 tests/data/test711 create mode 100644 tests/data/test712 create mode 100644 tests/data/test808 create mode 100644 tests/data/test809 create mode 100644 tests/data/test810 create mode 100644 tests/data/test811 create mode 100644 tests/data/test812 create mode 100644 tests/data/test813 create mode 100644 tests/data/test814 create mode 100644 tests/data/test815 create mode 100644 tests/data/test816 create mode 100644 tests/data/test817 create mode 100644 tests/data/test818 create mode 100644 tests/data/test819 create mode 100644 tests/data/test820 create mode 100644 tests/data/test821 create mode 100644 tests/data/test822 create mode 100644 tests/data/test823 create mode 100644 tests/data/test824 create mode 100644 tests/data/test825 create mode 100644 tests/data/test826 create mode 100644 tests/data/test827 create mode 100644 tests/data/test828 create mode 100644 tests/data/test829 create mode 100644 tests/data/test830 create mode 100644 tests/data/test831 create mode 100644 tests/data/test832 create mode 100644 tests/data/test833 create mode 100644 tests/data/test834 create mode 100644 tests/data/test835 create mode 100644 tests/data/test836 create mode 100644 tests/data/test850 create mode 100644 tests/data/test851 create mode 100644 tests/data/test852 create mode 100644 tests/data/test853 create mode 100644 tests/data/test854 create mode 100644 tests/data/test855 create mode 100644 tests/data/test856 create mode 100644 tests/data/test857 create mode 100644 tests/data/test858 create mode 100644 tests/data/test859 create mode 100644 tests/data/test860 create mode 100644 tests/data/test861 create mode 100644 tests/data/test862 create mode 100644 tests/data/test863 create mode 100644 tests/data/test864 create mode 100644 tests/data/test865 create mode 100644 tests/data/test866 create mode 100644 tests/data/test867 create mode 100644 tests/data/test868 create mode 100644 tests/data/test869 create mode 100644 tests/data/test870 create mode 100644 tests/data/test871 create mode 100644 tests/data/test872 create mode 100644 tests/data/test873 create mode 100644 tests/data/test874 create mode 100644 tests/data/test875 create mode 100644 tests/data/test876 create mode 100644 tests/data/test877 create mode 100644 tests/data/test878 create mode 100644 tests/data/test879 create mode 100644 tests/data/test880 create mode 100644 tests/data/test881 create mode 100644 tests/data/test882 create mode 100644 tests/data/test900 create mode 100644 tests/data/test901 create mode 100644 tests/data/test902 create mode 100644 tests/data/test903 create mode 100644 tests/data/test904 create mode 100644 tests/data/test905 create mode 100644 tests/data/test906 create mode 100644 tests/data/test907 create mode 100644 tests/data/test908 create mode 100644 tests/data/test909 create mode 100644 tests/data/test910 create mode 100644 tests/data/test911 create mode 100644 tests/data/test912 create mode 100644 tests/data/test913 create mode 100644 tests/data/test914 create mode 100644 tests/data/test915 create mode 100644 tests/data/test916 create mode 100644 tests/data/test917 create mode 100644 tests/data/test918 create mode 100644 tests/data/test919 create mode 100644 tests/data/test920 create mode 100644 tests/data/test921 create mode 100644 tests/data/test922 create mode 100644 tests/data/test923 create mode 100644 tests/data/test924 create mode 100644 tests/data/test925 create mode 100644 tests/data/test926 create mode 100644 tests/data/test927 create mode 100644 tests/data/test928 create mode 100644 tests/data/test929 create mode 100644 tests/data/test930 create mode 100644 tests/data/test931 create mode 100644 tests/data/test932 create mode 100644 tests/data/test933 create mode 100644 tests/data/test934 create mode 100644 tests/data/test935 create mode 100644 tests/data/test936 create mode 100644 tests/data/test937 create mode 100644 tests/data/test938 create mode 100644 tests/data/test939 create mode 100644 tests/data/test940 create mode 100644 tests/data/test941 create mode 100644 tests/data/test96 create mode 100755 tests/http_pipe.py create mode 100755 tests/keywords.pl create mode 100644 tests/libtest/.gitignore create mode 100644 tests/libtest/CMakeLists.txt delete mode 100644 tests/libtest/Makefile.in create mode 100644 tests/libtest/lib1500.c create mode 100644 tests/libtest/lib1501.c create mode 100644 tests/libtest/lib1502.c create mode 100644 tests/libtest/lib1506.c create mode 100644 tests/libtest/lib1507.c create mode 100644 tests/libtest/lib1508.c create mode 100644 tests/libtest/lib1509.c create mode 100644 tests/libtest/lib1510.c create mode 100644 tests/libtest/lib1511.c create mode 100644 tests/libtest/lib1512.c create mode 100644 tests/libtest/lib1513.c create mode 100644 tests/libtest/lib1514.c create mode 100644 tests/libtest/lib1515.c create mode 100644 tests/libtest/lib1520.c create mode 100644 tests/libtest/lib1525.c create mode 100644 tests/libtest/lib1526.c create mode 100644 tests/libtest/lib1527.c create mode 100644 tests/libtest/lib1528.c create mode 100644 tests/libtest/lib1529.c create mode 100644 tests/libtest/lib1900.c create mode 100644 tests/libtest/lib509.c delete mode 100644 tests/libtest/lib577.c create mode 100644 tests/libtest/lib582.c create mode 100644 tests/libtest/lib583.c create mode 100644 tests/libtest/lib586.c create mode 100644 tests/libtest/lib590.c create mode 100644 tests/libtest/lib591.c create mode 100644 tests/libtest/lib597.c create mode 100644 tests/libtest/lib598.c create mode 100644 tests/libtest/lib599.c create mode 100644 tests/libtest/libauthretry.c create mode 100644 tests/libtest/libntlmconnect.c create mode 100755 tests/libtest/notexists.pl create mode 100644 tests/libtest/testtrace.c create mode 100644 tests/libtest/testtrace.h create mode 100644 tests/mem-include-scan.pl delete mode 100644 tests/runtests.html delete mode 100644 tests/runtests.pdf create mode 100644 tests/server/.gitignore create mode 100644 tests/server/CMakeLists.txt delete mode 100644 tests/server/Makefile.in create mode 100644 tests/server/base64.pl create mode 100644 tests/server/fake_ntlm.c create mode 100644 tests/server/server_setup.h delete mode 100644 tests/testcurl.html delete mode 100644 tests/testcurl.pdf create mode 100644 tests/unit/.gitignore create mode 100644 tests/unit/Makefile.am create mode 100644 tests/unit/Makefile.inc create mode 100644 tests/unit/README create mode 100644 tests/unit/curlcheck.h create mode 100644 tests/unit/unit1300.c create mode 100644 tests/unit/unit1301.c create mode 100644 tests/unit/unit1302.c create mode 100644 tests/unit/unit1303.c create mode 100644 tests/unit/unit1304.c create mode 100644 tests/unit/unit1305.c create mode 100644 tests/unit/unit1307.c create mode 100644 tests/unit/unit1308.c create mode 100644 tests/unit/unit1309.c create mode 100644 tests/unit/unit1330.c create mode 100644 tests/unit/unit1394.c create mode 100644 tests/unit/unit1395.c create mode 100644 tests/unit/unit1396.c create mode 100644 tests/unit/unit1397.c create mode 100644 tests/unit/unit1398.c create mode 100644 tests/valgrind.supp delete mode 100644 vc6curl.dsw create mode 100644 winbuild/.gitignore create mode 100644 winbuild/BUILD.WINDOWS.txt create mode 100644 winbuild/Makefile.msvc.names create mode 100644 winbuild/Makefile.vc create mode 100644 winbuild/MakefileBuild.vc create mode 100755 winbuild/gen_resp_file.bat diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 6453fcd..0000000 --- a/Android.mk +++ /dev/null @@ -1,106 +0,0 @@ -# Google Android makefile for curl and libcurl -# -# Place the curl source (including this makefile) into external/curl/ in the -# Android source tree. Then build them with 'make curl' or just 'make libcurl' -# from the Android root. Tested with Android 1.5 and 2.1 -# -# Note: you must first create a curl_config.h file by running configure in the -# Android environment. The only way I've found to do this is tricky. Perform a -# normal Android build with libcurl in the source tree, providing the target -# "showcommands" to make. The build will eventually fail (because curl_config.h -# doesn't exist yet), but the compiler commands used to build curl will be -# shown. Now, from the external/curl/ directory, run curl's normal configure -# command with flags that match what Android itself uses. This will mean -# putting the compiler directory into the PATH, putting the -I, -isystem and -# -D options into CPPFLAGS, putting the -W, -m, -f, -O and -nostdlib options -# into CFLAGS, and putting the -Wl, -L and -l options into LIBS, along with the -# path to the files libgcc.a, crtbegin_dynamic.o, and ccrtend_android.o. -# Remember that the paths must be absolute since you will not be running -# configure from the same directory as the Android make. The normal -# cross-compiler options must also be set. Note that the -c, -o, -MD and -# similar flags must not be set. -# -# To see all the LIBS options, you'll need to do the "showcommands" trick on an -# executable that's already buildable and watch what flags Android uses to link -# it (dhcpcd is a good choice to watch). You'll also want to add -L options to -# LIBS that point to the out/.../obj/lib/ and out/.../obj/system/lib/ -# directories so that additional libraries can be found and used by curl. -# -# The end result will be a configure command that looks something like this -# (the environment variable A is set to the Android root path which makes the -# command shorter): -# -# A=`realpath ../..` && \ -# PATH="$A/prebuilt/linux-x86/toolchain/arm-eabi-X/bin:$PATH" \ -# ./configure --host=arm-linux CC=arm-eabi-gcc \ -# CPPFLAGS="-I $A/system/core/include ..." \ -# CFLAGS="-nostdlib -fno-exceptions -Wno-multichar ..." \ -# LIBS="$A/prebuilt/linux-x86/toolchain/arm-eabi-X/lib/gcc/arm-eabi/X\ -# /interwork/libgcc.a ..." -# -# Finally, copy the file COPYING to NOTICE so that the curl license gets put -# into the right place (but see the note about this below). -# -# Dan Fandrich -# August 2010 - -LOCAL_PATH:= $(call my-dir) - -common_CFLAGS := -Wpointer-arith -Wwrite-strings -Wunused -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wno-system-headers -DHAVE_CONFIG_H - -######################### -# Build the libcurl library - -include $(CLEAR_VARS) -include $(LOCAL_PATH)/lib/Makefile.inc -CURL_HEADERS := \ - curlbuild.h \ - curl.h \ - curlrules.h \ - curlver.h \ - easy.h \ - mprintf.h \ - multi.h \ - stdcheaders.h \ - typecheck-gcc.h \ - types.h - -LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES)) -LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/ -LOCAL_CFLAGS += $(common_CFLAGS) - -LOCAL_COPY_HEADERS_TO := libcurl/curl -LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS)) - -LOCAL_MODULE:= libcurl - -# Copy the licence to a place where Android will find it. -# Actually, this doesn't quite work because the build system searches -# for NOTICE files before it gets to this point, so it will only be seen -# on subsequent builds. -ALL_PREBUILT += $(LOCAL_PATH)/NOTICE -$(LOCAL_PATH)/NOTICE: $(LOCAL_PATH)/COPYING | $(ACP) - $(copy-file-to-target) - -include $(BUILD_STATIC_LIBRARY) - - -######################### -# Build the curl binary - -include $(CLEAR_VARS) -include $(LOCAL_PATH)/src/Makefile.inc -LOCAL_SRC_FILES := $(addprefix src/,$(CURL_CFILES)) - -LOCAL_MODULE := curl -LOCAL_STATIC_LIBRARIES := libcurl -LOCAL_SYSTEM_SHARED_LIBRARIES := libc - -LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/lib - -# This may also need to include $(CURLX_ONES) in order to correctly link -# if libcurl is changed to be built as a dynamic library -LOCAL_CFLAGS += $(common_CFLAGS) - -include $(BUILD_EXECUTABLE) - diff --git a/CHANGES b/CHANGES index 1b8e3ec..fe0fb8c 100644 --- a/CHANGES +++ b/CHANGES @@ -6,4708 +6,10 @@ Changelog -Daniel Stenberg (15 Dec 2010) -- RELEASE-NOTES: synced with a865bd9fbaaa43e5c +This file no longer holds the changelog. Now you can generate it yourself +like this: -- IsPipeliningPossible: only for HTTP - - The function that checks if pipelining is possible now requires the HTTP - bit to be set so that it doesn't mistakenly tries to do it for other - protocols. - - Bug: http://curl.haxx.se/mail/lib-2010-12/0152.html - Reported by: Dmitri Shubin +$ git log --pretty=fuller --no-color --date=short --decorate=full | \ + ./log2changes.pl -- multi_runsingle: don't timeout completed handles - - The generic timeout code must not check easy handles that are already - completed. Going to completed (again) within there risked decreasing the - number of alive handles again and thus it could go negative. - - This regression bug was added in 7.21.2 in commit ca10e28f06f1 - -- symbols-in-versions: CURLOPT_KEYPASSWD fixed - - It was added in 7.17.0 and is not deprecated - -- RELEASE-NOTES: synced with c28443c551825 - -Dan Fandrich (8 Dec 2010) -- Mention that using other libraries can affect app licensing - -Yang Tse (7 Dec 2010) -- easy: fix compiler warning: end-of-loop code not reached - -Daniel Stenberg (6 Dec 2010) -- disconnect: pass on the dead_connection argument - - Cleanup fix after Kamil's commit 5c7c9a768d0093 - -Yang Tse (6 Dec 2010) -- sws: fix compier warning: external definition with no prior declaration - -Daniel Stenberg (6 Dec 2010) -- [Heinrich Ko brought this change] - - ossl_connect_common: detect connection re-use - - ossl_connect_common() now checks whether or not 'struct - connectdata->state' is equal 'ssl_connection_complete' and if so, will - return CURLE_OK with 'done' set to 'TRUE'. This check prevents - ossl_connect_common() from creating a new ssl connection on an existing - ssl session which causes openssl to fail when it tries to parse an - encrypted TLS packet since the cipher data was effectively thrown away - when the new ssl connection was created. - - Bug: http://curl.haxx.se/mail/lib-2010-11/0169.html - -Kamil Dudka (6 Dec 2010) -- url: provide dead_connection flag in Curl_handler::disconnect - - It helps to prevent a hangup with some FTP servers in case idle session - timeout has exceeded. But it may be useful also for other protocols - that send any quit message on disconnect. Currently used by FTP, POP3, - IMAP and SMTP. - -Yang Tse (6 Dec 2010) -- ssh: fix a download resume point calculation - -Daniel Stenberg (5 Dec 2010) -- Curl_wait_for_resolv: correct timeout - - When looping in this function and checking for the timeout being - expired, it was not updating the reference time when calculating the - timediff since previous round which made it think each subsequent loop - to have taken longer than it actually did. - - I also modified the function to use the generic Curl_timeleft() function - instead of the custom logic. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3112579 - -- Curl_send/recv_plain: return errno on failure - - When send() and recv() fail, we now store the errno value to allow the - app to access it. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3128121 - Reported by: Yuri - -Guenter Knauf (5 Dec 2010) -- Updated OpenSSL version. - -Yang Tse (4 Dec 2010) -- fix compiler warning: conversion may lose significant bits - -- fix compiler warning: assignment within conditional expression - -- fix getinfo CURLINFO_LOCAL* for reused connections (take 2) follow-up - - - Show address string from proper buffer in case of connection failure. - - - Try next address when inet_ntop() fails. - -Daniel Stenberg (3 Dec 2010) -- version-check: added brief documentation - - and the traditional source header - -Yang Tse (3 Dec 2010) -- build: provide SIZEOF_SIZE_T DOS definition - -- build: lib/config.dos renamed to lib/config-dos.h - -- build: provide SIZEOF_SIZE_T VMS definition - -- build: move config-vms.h from subdir 'packages/vms' into 'lib' - -- build: provide SIZEOF_SIZE_T definition for non-configure builds - -- build: provide SIZEOF_SIZE_T netware definition - -- configure: undo using autobuilds to temporarily verify strict aliasing warnings. - -- fix compiler warning: rounding, sign extension, or loss of accuracy may result - -- fix compiler warning: statement is not reachable - -- fix compiler warning: conversion may lose significant bits - -- connect: fix compiler warning: unused variable - -- fix getinfo CURLINFO_LOCAL* for reused connections (take 2) - -- fix getinfo CURLINFO_LOCAL* for reused connections follow-up - - Reinstate IPV6 build variable that got removed. - -- fix getinfo CURLINFO_LOCAL* for reused connections - - Failed to commit this file changes along with the others. - -- fix getinfo CURLINFO_LOCAL* for reused connections - -- atoi: remove atoi usage - -- multi: fix compiler warning: conversion may lose significant bits follow-up - -- ftp: fix 'bool' data type implementation dependant usage - -- multi: fix compiler warning: conversion may lose significant bits - -- multi: fix compiler warning: enumerated type mixed with another type - -- hostip: edit comment - -- xattr: fix compiler warning: enumerated type mixed with another type - -- s/isspace/ISSPACE - -- symbol-scan: use configure script knowledge about how to run the C preprocessor - -- ignore file generated by configure - -- curl_multi_info_read: fix compiler warning: conversion may lose significant bits - -- inet_pton: fix compiler warning - - warning C4146: unary minus operator applied to unsigned type, result still unsigned - -- Curl_getaddrinfo_ex: sanitize function results follow-up. - -- Curl_getaddrinfo_ex: sanitize function results. - - Ensure that spurious results from system's getaddrinfo() ares not propagated - by Curl_getaddrinfo_ex() into the library. - - Also ensure that the ai_addrlen member of Curl_getaddrinfo_ex()'s output linked - list of Curl_addrinfo structures has appropriate family-specific address size. - -Kamil Dudka (22 Nov 2010) -- openldap: use remote port in URL passed to ldap_init_fd() - - ... not the proxy port. It makes no difference unless a proxy is used. - -Yang Tse (20 Nov 2010) -- gtls: define and use gtls_EAGAIN, gtls_EINTR and gtls_EIO. - - Winsock builds clobber some errno.h defines in setup_once. - -Dan Fandrich (19 Nov 2010) -- Added a couple examples that were missing from the tar ball - -- Check for errors while preprocessing curl.h in test 1119 - - This showed a problem when running the test out-of-tree, so - an include path is now being added to pick up the generated - curlbuild.h file. - -- Use the 3-argument open for compatibility with older perls - -- [Matthias Bolte brought this change] - - Detect socket errors in GnuTLS on Windows - - On Windows, translate WSAGetLastError() to errno values as GNU - TLS does it internally, too. This is necessary because send() and - recv() on Windows don't set errno when they fail but GNU TLS - expects a proper errno value. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3110991 - -Yang Tse (19 Nov 2010) -- test servers: fix strict aliasing compiler warnings - -- configure: use autobuilds to temporarily verify strict aliasing warnings. - - Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing - rules and warnings. Given that cross-compiled targets autobuilds do not run the - -Julien Chaffraix (17 Nov 2010) -- configure: Prevent link errors with --librtmp. - - If --librtmp was specified but pkg-config could not find the librtmp - file, we would have undefined symbols when linking curl. - - We prevent this error by disabling this case as suggested on the mailing - list. - -Daniel Stenberg (15 Nov 2010) -- RELEASE-NOTES: synced with cbf4961bf3e4 - -- gnutls->handshake: improved timeout handling - - When no timeout is set, we call the socket_ready function with a timeout - value of 0 during handshake, which makes it loop too much/fast in this - function. It also made this function return CURLE_OPERATION_TIMEDOUT - wrongly on a slow handshake. - - However, the particular bug report that highlighted this problem is not - solved by this fix, as this fix only makes the more proper error get - reported instead. - - Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594150 - Reported by: Johannes Ernst - -Julien Chaffraix (13 Nov 2010) -- urldata: Capitalize enum protect_level values. - - This makes it easier to spot the enum values from the variables. - Removed some unneeded DEBUGASSERT added in the previous commit. - -- security: tighten enum protection_level usage. - - While changing Curl_sec_read_msg to accept an enum protection_level - instead of an int, I went ahead and fixed the usage of the associated - fields. - - Some code was assuming that prot_clear == 0. Fixed those to use the - proper value. Added assertions prior to any code that would set the - protection level. - -Yang Tse (13 Nov 2010) -- configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body - -Daniel Stenberg (12 Nov 2010) -- curl.1: "a file", not an - -- version-check.pl: display version number for symbols - - This script is the start of a helper tool that scans a source code and - outputs the most recent libcurl version it finds symbols for. Meaning - that if there's no conditions in the code, that's the earliest libcurl - version the scanned code requires. - - It is not added to the Makefile.am yet as it is still a bit crude, but - I'm committing it to keep it and allow us to work on it. - -- [Adam Light brought this change] - - Makefile.vc6: fixed the xattr.c compile - -Julien Chaffraix (12 Nov 2010) -- krb5: Use GSS_ERROR to check for error. - - This is the advised way of checking for errors in the GSS-API RFC. - Also added some '\n' to the error message so that they are not mixed - with other outputs. - -- security: Pass the right parameter to init. - - init is expecting app_data. Passing it the struct connecdata would make - us crash later. - -Daniel Stenberg (11 Nov 2010) -- HTTP Auth: Add CURLAUTH_ONLY - - This is a meta symbol. OR this value together with a single specific - auth value to force libcurl to probe for un-restricted auth and if not, - only that single auth algorithm is acceptable. - - For example you can use CURLAUTH_DIGEST|CURLAUTH_ONLY to make libcurl - first probe for what method to use, but yet only consider Digest to be - acceptable. - - Using _only_ CURLAUTH_DIGEST without the CURLAUTH_ONLY field, will make - libcurl explicitly use Digest right away and not do any probing. - -- ip_version: moved to connection struct - - The IP version choice was previously only in the UserDefined struct - within the SessionHandle, but since we sometimes alter that option - during a request we need to have it on a per-connection basis. - - I also moved more "init conn" code into the allocate_conn() function - which is designed for that purpose more or less. - -Yang Tse (11 Nov 2010) -- buildconf: MAC OS X requires libtool version 1.5.26 or newer - - MAC OS X requires libtool version 1.5.26 or newer, otherwise - configure will mishandle *.dSYM directories when it runs. - -- configure: remove temporary autobuilds exercising of xattr function tests - -- configure: use autobuilds to temporarily exercise xattr function tests - -- xattr: portability fix - -- curl-functions: provide xattr function tests that also check number of arguments - -Daniel Stenberg (10 Nov 2010) -- test1120: verify FTP response 421 - - curl mustn't try to use the control connection after the 421 is received - -- ftpserver.pl: spellfix comment - -- [Rutger Hofman brought this change] - - TFTP: resend the correct data - - I found a bug in tftp_tx() in tftp.c. If a data resend is done after - reception of an ACK/OACK, the call to sendto is wrong. - -- [Stefan Tomanek brought this change] - - write extended attributes by using fsetxattr - - Instead of reopening the downloaded file, fsetxattr uses the (already - open) file descriptor to attach extended attributes. This makes the - procedure more robust against errors caused by moved or deleted files. - -Dan Fandrich (9 Nov 2010) -- Check for getinfo errors before setting attributes - -Kamil Dudka (9 Nov 2010) -- ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT - - Bug: https://bugzilla.redhat.com/650255 - Reported by: Simon H. - -Daniel Stenberg (9 Nov 2010) -- symbols-in-version: add CURL_SOCKET_BAD - - I also documented the filtering logic in the symbol-scan.pl function to - clarify why not all CURL_* symbols are included. - -Yang Tse (9 Nov 2010) -- serial number bump - -Kamil Dudka (8 Nov 2010) -- ftp: close connection as soon as ABOR has been sent - - ... and do not send ABOR unless really necessary. - - Bug: https://bugzilla.redhat.com/649347 - Reported by: Simon H. - -Daniel Stenberg (8 Nov 2010) -- RELEASE-NOTES: synced with fc6c4c10f9faab08 - - I also recounted and updated the command line and libcurl options. - -- help: indent the --xattr option like the others - -- curl.1: --resolve documented - -- CURLOPT_RESOLVE: documented - -- CURLOPT_USE_SSL: move from FTP options to connection options - -- xattr-check: correct the comment as well - -- xattr: use const char * for const strings - -- setxattr: fix the checks - - My copy and paste job was a little too much copy and I missed to adjust - it properly to sys/xattr.h all over and this is a fix to cure that. - -- CURLOPT_RESOLVE: added - - CURLOPT_RESOLVE is a new option that sends along a curl_slist with - name:port:address sets that will populate the DNS cache with entries so - that request can be "fooled" to use another host than what otherwise - would've been used. Previously we've encouraged the use of Host: for - that when dealing with HTTP, but this new feature has the added bonus - that it allows the name from the URL to be used for TLS SNI and server - certificate name checks as well. - - This is a first change. Surely more will follow to make it decent. - -Yang Tse (8 Nov 2010) -- fix compiler warning - -Dan Fandrich (7 Nov 2010) -- Added os-specific.c and xattr.c to the Symbian build files - -Yang Tse (7 Nov 2010) -- xattr: fix VisualStudio builds - -- fix snapshot generation - -Daniel Stenberg (5 Nov 2010) -- --libcurl: simplify output - - Removed the code that was needed for libcurl before 7.19.0 which now is - more than two years old. - - Simplified the top comment and corrected the URL. - -- [Alfred Gebert brought this change] - - LDAP: detect non-binary attributes properly - - If the query result has a binary attribute, the binary attribute is - base64 encoded. But all following non binary attributes are also base64 - encoded which is wrong. - - This is a test (LDAP server is public). - - curl - ldap://x500.bund.de:389/o=Bund,c=DE?userCertificate,certificateSerialNumber?sub - ?cn=*Woehleke* - -- xattr: add configure check and #ifdefs - - setxattr is a glibc call to set extended attributes, so configure now - checks for it and the code is adapted to only build when the - functionality is present. - -- [Stefan Tomanek brought this change] - - save metadata to extended file attributes - - It is often convinient to track back the source of a once downloaded - file; this patch makes curl store the source URL and other metadata - alongside the retrieved file by using the extended attributes (if - supported by the file system and enabled by --xattr). - -- test: remove test 580 - - Test 580 is removed again for two reasons: - - 1) Some compilers aren't satisfied by just a data variable called 'test' - when first.o wants a function called 'test'. The Solaris compiler says - "ld: warning: symbol `test' has differing types:" while the AIX compiler - downright rejects it. - - 2) Test case 1119 that was added after this test is way more complete - and cover everything test 580 does and more without introducing the same - problems. - -- Revert: use Host: name for SNI and cert name checks - - This reverts commit b0fd03f5b8d4520dd232a9d13567d16bd0ad8951, - 4b2fbe1e97891f, afecd1aa13b4f, 68cde058f66b3 - -- TODO-RELEASE: "TLS SNI use Host:" is done - - 262 - Manual setting of TLS Server Name Indication - use Host: - -- RELEASE-NOTES: synced with 7b823badbcab9d330 - -- curl.1: added a few missing exit codes - -- certcheck: use the custom Host: name for checks - - If you use a custom Host: name in a request to a SSL server, libcurl - will now use that given name when it verifies the server certificate to - be correct rather than using the host name used in the actual URL. - -- SNI: simplify the custom host name use - - The redirect check is already done at the position where the customhost - field is assigned so there's no point in doing that a second time. - -- host: get the custom Host: name more genericly - - When given a custom host name in a Host: header, we can use it for - several different purposes other than just cookies, so we rename it and - use it for SSL SNI etc. - -- [Hongli Lai (Phusion) brought this change] - - SNI: set name to custom Host header - - OpenSSL SNI host name should be set to the custom Host header, if the - user provided one. - -- fopen.c: re-indented, fixed previous mistake - - I've made the code intended using curl-style now to look more like other - examples. - - My previous "fix" was a bit too invasive but is now fixed again. - -- multi use: call multi_perform even on select() timeouts - -- example: add smtp-multi.c - - An example application source code sending SMTP mail with the multi - interface. It is based on the code Alona Rossen provided, which in turn - is based on existing example/test code, and I converted it even more - into a decent example with a fair multi API use, put the info required - to edit at the top and I added some comments. - -- CURLOPT_NOSIGNAL: add blurb about SIGPIPE - -Dan Fandrich (3 Nov 2010) -- Allow building test 580 out of tree - -Daniel Stenberg (3 Nov 2010) -- dist: add symbol-scan.pl to the tarball - -- test1119: verify symbols-in-versions - -- runtests: allow tests written as perl scripts - - If a command is set type="perl", it can now specify a perl program that will - be run instead of an ordinary curl or built tool. - - A perl test automatically disables memory and valgrind debugging. - -- symbol-scan: verifies symbols-in-versions - - This new script scans for all enums and #defines used by the curl/curl.h - and curl/multi.h headers. Then it reads all symbols mentioned in - symbols-in-vesions and make sure that there's no entries missing in - there. It then proceeds to verify that the entries that - symbols-in-vesions mentions but aren't found in the sources are truly - documented as removed. - - This script is used in the new test case 1119 - -- symbols-in-versions: added 119 missing symbols - - I've developed a script I call symbol-scan.pl that scans the curl.h and - multi.h header files and compare the symbols it finds in there with the - symbols symbols-in-versions documents and outputs a report on the - differences. Using this I've dug through the history to fill up - symbols-in-versions with all the symbols my script found mismatches for. - - I will commit symbol-scan.pl separatly and think of a way to put it to - use in the build/tests so that we from now on will get this in-sync - check automatically. - -Dan Fandrich (2 Nov 2010) -- Added mk580.pl to the tar ball - -Daniel Stenberg (2 Nov 2010) -- symbols-in-versions: added missing symbols - -- ignore: lib580.c is generated by mk580.pl - -- test: added test 580 - verifies symbols-in-versions - - The new perl script mk580.pl generates a C table in a fresh source file - named lib580.c and if that compiles fine we know that the file - docs/libcurl/symbols-in-versions at least doesn't include any symbols - that are misspelled. - - An additional feature would be to somehow scan curl/curl.h and compare - with symbols-in-versions to see if there are symbols missing. - -- spellfix: CURLOPT_TFTP_BLKSIZE it is - -Kamil Dudka (29 Oct 2010) -- ftp: prevent server from hanging on closed data connection - - Some FTP servers (e.g. Pure-ftpd) end up hanging if we close the data - connection before transferring all the requested data. If we send ABOR - in that case, it prevents the server from hanging. - - Bug: https://bugzilla.redhat.com/643656 - Reported by: Pasi Karkkainen, Patrick Monnerat - -Dan Fandrich (28 Oct 2010) -- Removed a leftover mention of FTP in an error message - -- Removed the native Makefile.riscos files - - These haven't worked in at least 8 years due to missing source - files, and most active RiscOS developers these days apparently - cross-compile anyway. - - Signed-off-by: James Bursa - -- Lightened the stack in wc_statemach to permit deeper recursion - - Also, added a few hints to help compilers to perform tail call - recursion optimization. - -Daniel Stenberg (20 Oct 2010) -- SSH: use libssh2_session_handshake() - - In libssh2 1.2.8, libssh2_session_handshake() replaces - libssh2_session_startup() to fix the previous portability problem with - the socket type that was too small for win64 and thus easily could cause - crashes and more. - -- SSH: avoid using the libssh2_ prefix - - It is a bad idea to use the public prefix used by another library and - now we realize that libssh2 introduces a symbol in the upcoming version - 1.2.8 that conflicts with our static function named libssh2_free. - -- formdata: provide error message - - When failing to build form post due to an error, the code now does a - proper failf(). Previously libcurl would report an error like "failed - creating formpost data" when a file wasn't possible to open which was - not easy for users to figure out. - - I also lower cased a function name to be named more curl-style and - removed some unnecessary code. - -- URL-parsing: consider ? a divider - - The URL parser got a little stricter as it now considers a ? to be a - host name divider so that the slightly sloppier URLs work too. The - problem that made me do this change was the reported problem with an URL - like: www.example.com?email=name@example.com This form of URL is not - really a legal URL (due to the missing slash after the host name) but is - widely accepted by all major browsers and libcurl also already accepted - it, it was just the '@' letter that triggered the problem now. - - The side-effect of this change is that now libcurl no longer accepts the - ? letter as part of user-name or password when given in the URL, which - it used to accept (and is tested in test 191). That letter is however - mentioned in RFC3986 to be required to be percent encoded since it is - used as a divider. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3090268 - -- curl_easy_setopt.3: spellfix - -- curl_easy_setopt.3: CURLOPT_USE_SSL is not just for FTP - - It is for FTP, SMTP, POP3, IMAP at least. - -- krb4.h: removed unused prototypes - -- krb4: make a few functions static - -- TODO-RELEASE: cleanup for 7.21.3 works - - "SFTP resume with 4GB file does not work" is now removed as I'm sure - this is really a libssh2 bug and not a libcurl bug. - - 7.21.2 is released already - -- RELEASE-NOTES: sync with 09a2d93a0f17ca - -- http_chunks: remove debug output - - Accidentally left in there during my previous debugging of this - -- Curl_setopt: disallow CURLOPT_USE_SSL without SSL support - - In order to avoid for example the pingpong protocols to issue STARTTLS - (or equivalent) even though there's no SSL support built-in. - - Reported by: Sune Ahlgren - Bug: http://curl.haxx.se/mail/archive-2010-10/0045.html - -- options: check for features for some options - - Some options, such as the automatic decompression and some SSL related - ones now will bail out if the underlying libcurl doesn't have support - for the particular feature needed. - -Dan Fandrich (14 Oct 2010) -- Fixed the IPv6 host address in test1203 - - Reported by: Christian Weisgerber - Bug: http://curl.haxx.se/bug/view.cgi?id=3087479 - -Daniel Stenberg (14 Oct 2010) -- curl_easy_setopt.3: clarify CURLOPT_CRLF - - The option takes a parameter that should be 1 or 0 to enable or disable - the feature. - - URL: http://curl.haxx.se/bug/view.cgi?id=3086428 - -Guenter Knauf (14 Oct 2010) -- Some more small Watcom makefile fixes. - -- Added --noconfigure switch to testcurl.pl. - -- Modified Watcom makefiles to work on Linux too. - -- Added MingW32 rtmp target; changed Watcom targets. - - Modified Watcom targets to avoid backslashs so that they can - work on Linux too. - -Daniel Stenberg (13 Oct 2010) -- gitignore: ignore Makefile.vc10.dist made by maketgz - -- curlver.h: start over at 7.21.3 - -- RELEASE-NOTES: start over towards 7.21.3 - -- THANKS: added contributors from 7.21.2 - -Version 7.21.2 (12 Oct 2010) - -Daniel Stenberg (12 Oct 2010) -- RELEASE-NOTES: synced with ecd624b8e774a85 - -- [Julien Chaffraix brought this change] - - CMake: Build fix. - - Do not match the trailing '\n' in the regular expression as this would - make us dump a ) parenthesis on a new line. - - This fixes the following error: - - would get transformed into: - - ) - - Bug: http://curl.haxx.se/mail/lib-2010-10/0065.html - Reported by: Dimitre Dimitrov - -- header_callback: strip off file path separated with backslashes - - If the filename contains a backslash, only use filename portion. The - idea is that even systems that don't handle backslashes as path - separators probably want that path removed for convenience. - - This flaw is considered a security problem, see the curl security - vulnerability http://curl.haxx.se/docs/adv_20101013.html - -Dan Fandrich (12 Oct 2010) -- Get the curl source files for Amiga from Makefile.inc - - This is similar to how it's done in the lib directory. - The Amiga build appears to have been broken for a year because - of a missing homedir.c - -- Added section on server-supplied names to security considerations - -Guenter Knauf (12 Oct 2010) -- Fixed Watcom makefile. - -- Added build bits for librtmp / libssh2 to Watcom makefiles. - -- Added build bits for librtmp to NetWare makefiles. - -Daniel Stenberg (12 Oct 2010) -- SFTP: more ignoring negative file sizes - - As the change in 5f0ae7a0626cbe709 added a precaution against negative - file sizes that for some reason managed to get returned, this change now - introduces the same check at the second place in the code where the file - size from the libssh2 stat call is used. - - This check might not be suitable for a 32 bit curl_off_t, but libssh2.h - assumes long long to work and to be 64 bit so I believe such a small - curl_off_t will be very unlikely to occur in the wild. - -- SMTP: debug output for no known auth mechanisms supported - - ... and some minor source code whitespace edits - -- test: urlglob error messages have no extra newline anymore - -Guenter Knauf (11 Oct 2010) -- Added build bits for librtmp to MingW32 makefiles. - -Daniel Stenberg (8 Oct 2010) -- RELEASE-NOTES: synced with 61f4cdb73ae4 - -- globbing: fix crash on unballanced open brace - - Having an open brace without a closing brace caused a segfault. - - Having a closing brace too many caused a silent error to occur, which - caused curl to bail out and return an error code but no error message - was shown. It does now! - - All error message outputs no longer wrongly get _two_ newlines written - after the error message. - - Reported by: Vlad Ureche - Bug: http://curl.haxx.se/bug/view.cgi?id=3083942 - -- [Dan Locks brought this change] - - libcurl.m4: AC_PATH_PROG fixes - - The invocation of autoconf's AC_PATH_PROG( ) is not quite right for - finding curl-config. This fix corrects the negative case (where - curl-config is not found). - -- FAQ: added "How do I submit my patch?" - -- examples: use example.com in example URLs - -- TODO-RELEASE: libidn problem not repeatable - - "261 - configure and libidn" is removed from the list since Julien - Chaffraix tried to repeat it but failed and the reporter did not return - to provide further details. - - Reported by: Lyndon Hill - Bug: http://curl.haxx.se/mail/lib-2010-07/0029.html - -- libcurl.m4: mention argument is PREFIX - - The macro provides a --with-libcurl option that expects a PREFIX to be - specified and not actually a "directory" in which libcurl will be found. - This now spells that out more clearly. - - Reported by: Dan Locks - Bug: http://curl.haxx.se/bug/view.cgi?id=3079891 - -Guenter Knauf (3 Oct 2010) -- Some NetWare makefile tweaks. - - Renamed SDK_* to NDK_*; made NDK_* defines overwriteable from - environment; removed now obsolete YACC macro; - moved some curl_config.h defines to IPv6 section since they - are only needed when IPv6 is enabled - this makes libcurl compile - with older NDKs too which were not IPv6-aware. - -Daniel Stenberg (2 Oct 2010) -- TODO-RELEASE: 416 error fixed - - "3076808 Requests fail silently following a 416 error" done - -Julien Chaffraix (2 Oct 2010) -- krb5-gssapi: Removed a memory leak in krb5_auth. - - We forgot to release the buffer passed to gss_init_sec_context. - - The previous logic was difficult to read as we were reusing the same - variable (gssbuf) for both input buffer and output buffer. Splitted the - logic in 2 variables to better underline who needs to be released. - Also made the code break at 80 lines. - -- krb5-gssapi: Made the function always return a value. - - kr5_auth missed a final 'return' statement. This is not an error in - gcc but can lead to potential bugs. - -- krb5-gssapi: Delete the GSS-API context. - - This fixes a memory leak related to the GSS-API code. - - Added a krb5_init and krb5_end functions. Also removed a work-around - the lack of proper initialization of the GSS-API context. - -Daniel Stenberg (2 Oct 2010) -- HTTP: remove special case for 416 - - It was pointed out that the special case libcurl did for 416 was - incorrect and wrong. 416 is not really different to other errors so the - response body must be handled like for other errors/http responses. - - Reported by: Chris Smowton - Bug: http://curl.haxx.se/bug/view.cgi?id=3076808 - -- [Dan Fandrich brought this change] - - sws: Added writedelay HTTP server command - - This delays between write operations, hopefully making it easier - to spot problems where libcurl doesn't flush the socket properly - before waiting for the next response. - -- TODO-RELEASE: no bug in ftp_nextconnect - - The issue named "266 - Bug in ftp_nextconnect?" was deemed to not be a - bug and instead resulted in clarified docs. - -- curl_easy_setopt.3: CURLOPT_DIRLISTONLY implies dir list - - Make it explicit that setting CURLOPT_DIRLISTONLY to 1 will make libcurl - to list the directory. - -- RELEASE-NOTES: synced up to 588402585bae - -- TODO-RELEASE: move new features to next release - -- README.ares: we know require c-ares 1.6.0 - -- SFTP: avoid downloading negative sizes! - - It is still not clarified exactly why this happens, but libssh2 - sometimes report a negative file size for the remote SFTP file and that - deeply confuses libcurl (or crashes it) so this precaution is added to - avoid badness. - - Reported by: Ernest Beinrohr - Bug: http://curl.haxx.se/bug/view.cgi?id=3076430 - -- TODO-RELEASE: drop curl_easy_setoptv - - I haven't read any really convincing arguments for adding it - -- [Dirk Manske brought this change] - - multi & hiper examples: updates and cleanups - - all multi and hiper examples: - - * don't loop curl_multi_perform calls, that was <7.20.0 style, currently - the exported multi functions will not return CURLM_CALL_MULTI_PERFORM - - all hiper examples: - * renamed check_run_count to check_multi_info - * don't compare current running handle count with previous value, this - was the wrong way to check for finished requests, simply call - curl_multi_info_read - * it's also safe to call curl_multi_remove_handle inside the - curl_multi_info_read loop. - - ghiper.c: - * replaced curl_multi_socket (that function is marked as obsolete) calls - with curl_multi_socket_action calls (as in hiperfifo.c and - evhiperfifo.c) - - ghiper.c and evhiperfifo.c: - * be smart as hiperfifo.c, don't do uncessary curl_multi_* calls in - new_conn and main - -- TODO-RELEASE: one fixed, one postponed, one added - - As we're already in feature freeze, I pushed the feature onwards. - -Dan Fandrich (29 Sep 2010) -- Renamed test1204 to test1117 to move it into the normal range - -Patrick Monnerat (29 Sep 2010) -- Add gopher protocol definition to ILE/RPG binding. - OS400 compile script in test dir updated for chkhostname. - -Julien Chaffraix (28 Sep 2010) -- krb5-gssapi: Remove several memory leaks. - - Remove a leak seen on Kerberos/MIT (gss_OID is copied internally and - we were leaking it). Now we just pass NULL as advised in RFC2744. - - |tmp| was never set back to buf->data. - - Cleaned up Curl_sec_end to take into account failure in Curl_sec_login - (where conn->mech would be NULL but not conn->app_data or - conn->in_buffer->data). - -- security.c: Remove Curl_sec_fflush_fd. - - The current implementation would make us send wrong data on a closed - socket. We don't buffer our data so the method can be safely removed. - -- security.c: We should always register the socket handler. - - Following a change in the way socket handler are registered, the custom - recv and send method were conditionaly registered. - We need to register them everytime to handle the ftp security - extensions. - - Re-added the clear text handling in sec_recv. - -- security.c: Fix Curl_sec_login after rewrite. - - Curl_sec_login was returning the opposite result that the code in ftp.c - was expecting. Simplified the return code (using a CURLcode) so to see - more clearly what is going on. - -- security.c: Readd the '\n' to the infof() calls. - - They are not automatically added and make the output of the verbose - mode a lot more readable. - -- security.c: Fix typo (PSBZ -> PBSZ) - -- security.c: Fix ftp_send_command. - - My use of va_args was completely wrong. Fixed the usage so that - we send the right commands! - -Daniel Stenberg (28 Sep 2010) -- curl_easy_escape: don't escape "unreserved" characters - - According to RFC3986 section 2.3 the letters -, ., _ and ~ should not be - percent-encoded. - - Reported by: Miguel Diaz - Bug: http://curl.haxx.se/mail/lib-2010-09/0227.html - -- multi: don't expire timeouts at disonnect or done - - The functions Curl_disconnect() and Curl_done() are both used within the - scope of a single request so they cannot be allowed to use - Curl_expire(... 0) to kill all timeouts as there are some timeouts that - are set before a request that are supposed to remain until the request - is done. - - The timeouts are now instead cleared at curl_easy_cleanup() and when the - multi state machine changes a handle to the complete state. - -Dan Fandrich (27 Sep 2010) -- Changed the TPF make file to get source files from Makefile.inc - - Patch was fixed and validated by David McCreedy. - -- Added test case 1204 to test HTTP range failure - - This is an attempt to reproduce bug #3076808 - -Daniel Stenberg (27 Sep 2010) -- [Dirk Manske brought this change] - - multi_runsingle: set timeout error messages - - With the latest changes to fix the timeout handling with multi interface - we lost the timeout error messages. This patch brings them back. - -- TODO-RELEASE: updated list of issues to work on - -- parsedate: allow time specified without seconds - - The date format in RFC822 allows that the seconds part of HH:MM:SS is - left out, but this function didn't allow it. This change also includes a - modified test case that makes sure that this now works. - - Reported by: Matt Ford - Bug: http://curl.haxx.se/bug/view.cgi?id=3076529 - -- TFTP: re-indented the source code - - Just made sure that the good old curl indentation style is used all over - this file. - -- [Tim Newsome brought this change] - - TFTP: Work around tftpd-hpa upload bug - - tftpd-hpa has a bug where it will send an incorrect ack when the block - counter wraps and tftp options have been sent. Work around that by - accepting an ack for 65535 when we're expecting one for 0. - -- Revert "security.c: buffer_read various fixes." - - This reverts commit fbb38de415b7bb7d743e53a7b4b887ffb12b3e5b. - -- security.c: removed superfluous parentheses - - And also removed the FIXME where memory was zeroed just before freed, - and some other minor whitespace changes. - -- [Julien Chaffraix brought this change] - - security.c: Update the #include statements after the rewrite. - -- [Julien Chaffraix brought this change] - - security.c: sec_write tweaks - - - |fd| is now a curl_socket_t and |len| a size_t to avoid conversions. - - Added 2 FIXMEs about the 2 unsigned -> signed conversions. - - Included 2 minor changes to Curl_sec_end. - -- [Julien Chaffraix brought this change] - - security.c: _sec_send tweaks - - - Renamed the method to sec_send now that we - renamed sec_send to do_sec_send. - - Some more variable renaming. - -- [Julien Chaffraix brought this change] - - security.c: sec_read tweaks - - - Renamed the function to sec_recv. - - Renamed the parameters and variable to match the rest of the code. - -- [Julien Chaffraix brought this change] - - security.c: Curl_sec_fflush_fd tweaks - - - Use an early return as it makes the code more readable. - - Added a FIXME about a conversion. - -- [Julien Chaffraix brought this change] - - security.c: sec_send tweaks - - - Renamed it to do_sec_send as it is the function doing the actual - transfer. - - Do not return any values as no one was checking it and it never - reported a failure (added a FIXME about checking for errors). - - Renamed the variables to make their use more specific. - - Removed some casts (int -> curl_socket_t, ...) - - Avoid doing the htnl <-> nthl twice by caching the 2 results. - -- [Julien Chaffraix brought this change] - - security.c: Curl_sec_read_msg tweaks - - - Renamed the variables name to better match their intend. - - Unified the |decoded_len| checks. - - Added some FIXMEs to flag some improvement that did not go in this - change. - -- [Julien Chaffraix brought this change] - - security.c: Curl_sec_set_protection_level tweaking - - - Removed sec_prot_internal as it is now inlined in the function (this removed - a redundant check). - - Changed the prototype to return an error code. - - Updated the method to use the new ftp_send_command function. - - Added a level_to_char helper method to avoid relying on the compiler's - bound checks. This default to the maximum security we have in case of a - wrong input. - -- [Julien Chaffraix brought this change] - - security.c: factored the logic from Curl_sec_login into a dedicated method that better reflect its intent. - - Introduced a helper method ftp_send_command that synchronously send - an FTP query. - -- [Julien Chaffraix brought this change] - - security.c: Remove out_buffer as it was never written into. - -- [Julien Chaffraix brought this change] - - security.c: buffer_read various fixes. - - Tighten the type of the |data| parameter to avoid a cast. Also made - it const as we should not modify it. - - Added a DEBUGASSERT on the size to be written while changing it. - -- [Julien Chaffraix brought this change] - - security.c: Made block_write return a CURLcode. - - While doing so, renamed it to socket_write to better match its - function. - -- [Julien Chaffraix brought this change] - - security.c: Made block_read and sec_get_data return CURLcode. - - To do so, made block_read call Curl_read_plain instead of read. - - While changing them renamed block_read to socket_read and sec_get_data - to read_data to better match their function. - - Also fixed a potential memory leak in block_read. - -- [Julien Chaffraix brought this change] - - Security.c: Fix headers guard to match the rest of the code. - -- [Julien Chaffraix brought this change] - - configure: Fix the LDAPS disable message - - ... for example when LDAP is not compiled. - - Fixed the logic to match the rest of the options' message that is we - update the default message only if the option is not disabled after the - different checks. - - Reported by: Guenter Knauf - -- RELEASE-NOTES: sync with 8665d4e5 and c-ares >= 1.6.0 note - -- parse_remote_port: ignore colons without port number - - Obviously, browsers ignore a colon without a following port number. Both - Firefox and Chrome just removes the colon for such URLs. This change - does not remove the colon for URLs sent over a HTTP proxy, so we should - consider doing that change as well. - - Reported by: github user 'kreshano' - -- RELEASE-NOTES: in sync with 19f45eaa799 - -- duphandle: use ares_dup() - - curl_easy_duphandle() was not properly duping the ares channel. The - ares_dup() function was introduced in c-ares 1.6.0 so by starting to use - this function we also raise the bar and require c-ares >= 1.6.0 - (released Dec 9, 2008) for such builds. - - Reported by: Ning Dong - Bug: http://curl.haxx.se/mail/lib-2010-08/0318.html - -- [Hendrik Visage brought this change] - - MacOSX-Framework: updates for Snowleopard - - 1) PPC64 appears to be an 10.5 only supported architecture, so I - forced 10.5 for 64bit if there is a need for PPC64, else 64bit only - does x86_64 - - 2) proper "make clean" after every ./configure. fixes a bug where - subsequent runs the 32bit do not get compiled - - 3) Added a version numbering curl-$VERSION} rather than the "stock standard" A - -- RELEASE-NOTES: synced with 5fcc4332d62fe - - Removed the duplicate entry of Kamil in the credits. - -- configure: don't enable RTMP if the lib detect fails - - librtmp is often statically linked and using sub dependencies like - OpenSSL, so we need to make sure we can actually link with it properly - before enabling it. Otherwise we easily end up trying to link with a - RTMP lib that fails. - -- TODO: added 8.4 non-gcrypt under GnuTLS - - We must not assume gcrypt just because of GnuTLS - -- configure: check for gcrypt if using GnuTLS - - 1 - libcurl assumes that there are gcrypt functions available when - GnuTLS is. - - 2 - GnuTLS can be built to use libnettle instead as crypto library, - which breaks assumption (1) - - This change makes configure make sure that if GnuTLS is requested and - detected, it also makes sure that gcrypt is present or it errors - out. This is mostly a way to make the user more aware of this flaw, the - correct fix would be to detect which crypto layer that is in use and - adapt our code to use that instead of blindly assuming gcrypt. - - Reported by: Michal Gorny - Bug: http://curl.haxx.se/bug/view.cgi?id=3071038 - -- RELEASE-NOTES: sync from d2a7fd2fe65b to HEAD - -- FTP: fix bad check of Curl_timeleft() return code - - When it returns 0 it means no timeout. Only a negative value means that - we're out of time. - -- LDAP: moved variable declaration to avoid compiler warn - - If built without HTTP or proxy support it would cause a compiler warning - due to the unused variable. I moved the declaration of it into the only - scope it is used. - -Tor Arntsen (18 Sep 2010) -- LDAP: Use FALSE instead of bool_false when setting bits.close - - bool_false is the internal name used in the setup_once.h definition - we fall back to for non-C99 non-stdbool systems, it's not the actual - name to use in assignments (we use bool_false, bool_true there to - avoid global namespace problems, see comment in setup_once.h). - The correct C99 value to use is 'false', but let's use FALSE as - used elsewhere when assigning to bits.close. FALSE is set equal - to 'false' in setup_once.h when possible. - - This fixes a build problem on C99 targets. - -- LDAP: Add missing declaration for 'result' - -Daniel Stenberg (18 Sep 2010) -- [Mauro Iorio brought this change] - - LDAP: Support for tunnelling queries through HTTP proxy - - As of curl-7.21.1 tunnelling ldap queries through HTTP Proxies is not - supported. Actually if --proxytunnel command-line option (or equivalent - CURLOPT_HTTPPROXYTUNNEL) is used for ldap queries like - ldap://ldap.my.server.com/... You are unable to successfully execute the - query. In facts ldap_*_bind is executed directly against the ldap server - and proxy is totally ignored. This is true for both openLDAP and - Microsoft LDAP API. - - Step to reproduce the error: - Just launch "curl --proxytunnel --proxy 192.168.1.1:8080 - ldap://ldap.my.server.com/dc=... " - - This fix adds an invocation to Curl_proxyCONNECT against the provided - proxy address and on successful "CONNECT" it tunnels ldap query to the - final ldap server through the HTTP proxy. As far as I know Microsoft - LDAP APIs don't permit tunnelling in any way so the patch provided is - for OpenLDAP only. The patch has been developed against OpenLDAP 2.4.23 - and has been tested with Microsoft ISA Server 2006 and works properly - with basic, digest and NTLM authentication. - -- timeout: use the correct start value as offset - - Rodric provide an awesome recipe that proved libcurl didn't timeout at - the requested time - it instead often timed out at [connect time] + - [timeout time] instead of the documented and intended [timeout time] - only. This bug was due to the code using the wrong base offset when - comparing against "now". I could also take the oppurtinity to simplify - the code by properly using of the generic help function for this: - Curl_timeleft. - - Reported by: Rodric Glaser - Bug: http://curl.haxx.se/bug/view.cgi?id=3061535 - -- Curl_timeleft: avoid returning "no timeout" by mistake - - As this function uses return code 0 to mean that there is no timeout, it - needs to check that it doesn't return a time left value that is exactly - zero. It could lead to libcurl doing an extra 1000 ms select() call and - thus not timing out as accurately as it should. - - I fell over this bug when working on the bug 3061535 but this fix does - not correct that problem alone, although this is a problem that needs to - be fixed. - - Reported by: Rodric Glaser - Bug: http://curl.haxx.se/bug/view.cgi?id=3061535 - -- whitespace: unified source - - if ( => if( - while ( => while( - - and some other changes in the similar spirit, trying to make the - whole file use the same style - -- remote-header-name: don't output filename when NULL - -- [James Bursa brought this change] - - TheArtOfHttpScripting: use long options - -- [James Bursa brought this change] - - getinmemory: make the example easier to follow - - 1. Remove the comment warning that it's "not been verified to work". It - works with no problems in my testing. - - 2. Remove 2 unnecessary includes. - - 3. Remove the myrealloc(). Initialize chunk.memory with malloc() instead - of NULL. The comments for these two parts contradicted each other. - - 4. Handle out of memory from realloc() instead of continuing. - - 5. Print a brief status message at the end. - -- multi: don't do extra expire calls for the connection - - The timeout is set for the connect phase already at the start of the - request so we should not add a new one, and we MUST not set expire to 0 - as that will remove any other potentially existing timeouts. - -- [Peter Pentchev brought this change] - - Fix a bashism: test a = b is more portable than ==. - -- glob_word: remove a check that is always false - -- inflate_stream: remove redundant check that is always true - -- digest: make it clear the condition is always true - -- ssluse: removed redundant check that is always true - -Dan Fandrich (11 Sep 2010) -- Link curl and the test apps with -lrt explicitly when necessary - - When curl calls a function from that library then it needs to - explicitly link to the library instead of piggybacking on - libcurl's own dependency. Without this, GNU ld with the - --no-add-needed flag fails when linking (which Fedora now does - by default). - - Reported by: Quanah Gibson-Mount - Bug: http://curl.haxx.se/mail/lib-2010-09/0085.html - -- Mention the Debian Popularity Contest - -Tor Arntsen (9 Sep 2010) -- test565: Don't hardcode IP:PORT - - Use %HOSTIP:%HTTPPORT instead of 127.0.0.1:8990 so that - verification works if the baseport change option is used - when executing runtests.pl. - -Daniel Stenberg (9 Sep 2010) -- curl.1: updated protocols and polished language - -- FAQ: CURL_STATICLIB for visual studio users - - Clarified as it isn't used with a -D option for them. - - Reported by: Artfunkel - Bug: http://curl.haxx.se/bug/view.cgi?id=3060381 - -- FAQ: updated and added host with custom IP question - - Added "3.19 How do I get HTTP from a host using a specific IP address?" - and updated some stuff about certs etc. - -- chunky parser: only rewind if needed - - The code reading chunked encoding attempts to rewind the code if it had - read more data than the chunky parser consumes. The rewinding can fail - and it will then cause an error. This change now makes the rewinding - only happen if pipelining is in use - as that's the only time it really - needs to be done. - - Bug: http://curl.haxx.se/mail/lib-2010-08/0297.html - Reported by: Ron Parker - -Kamil Dudka (6 Sep 2010) -- rtsp: avoid SIGSEGV on malformed header - -- rtsp: avoid SIGSEGV on malformed header - -Daniel Stenberg (6 Sep 2010) -- warning: fix conversion to 'int' from 'size_t' - -- portabilty: use proper variable type to hold sockets - - Curl_getconnectinfo() is changed to return a proper curl_socket_t for - the last socket so that it'll work more portably (and cause less - compiler warnings). - -Guenter Knauf (3 Sep 2010) -- Trial to fix another compiler warning with braces. - -Dan Fandrich (2 Sep 2010) -- Use checkprefix() to compare protocol-specific strings - - Otherwise, there could be problems running in certain locales. - -Guenter Knauf (2 Sep 2010) -- Moved S_ISREG define to setup as suggested by Dan. - -- Use own typedef as workaround for broken sspi.h header (f.e. Watcom). - -- Added some hacks in order to build with VC from git. - - Adam Light posted this patch to the list which enables builds from - git with VC versions other than vc6; also he added a vc10 target. - -- Added S_ISREG define for Win32. - -Daniel Stenberg (1 Sep 2010) -- multi: fixes for timing out handles - - Add a timeout check for handles in the state machine so that they will - timeout in all states disregarding what actions that may or may not - happen. - - Fixed a bug in socket_action introduced recently when looping over timed - out handles: it wouldn't assign the 'data' variable and thus it wouldn't - properly take care of handles. - - In the update_timer function, the code now checks if the timeout has - been removed and then it tells the application. Previously it would - always let the remaining timeout(s) just linger to expire later on. - -- threaded resolver: no more expire 0 calls - - Curl_expire() set to 0 expires ALL timeouts so it should only be called - if we truly and really want to remove all timeouts for the handle. - -- resolve_server: simplify code - - Make use of the helper function Curl_timeleft() instead of duplicating - code. - -- multi: make sure the next timeout is used when one expires - - Each easy handle has a list of timeouts, so as soon as the main timeout - for a handle expires, we must make sure to get the next entry from the - list and re-add the handle to the splay tree. - - This was attempted previously but was done poorly in my commit - 232ad6549a68450. - -Dan Fandrich (30 Aug 2010) -- Added proxy keyword to allow skipping test in proxyless configs - -Daniel Stenberg (29 Aug 2010) -- multi: set timeouts when transfer begins - - When a new transfer is about to start we now set the proper timeouts to - expire for the multi interface if they are set for the handle. This is a - follow-up bugfix to make sure that easy handles timeout properly when - the times expire and the multi interface is used. This also improves - curl_multi_timeout(). - -- CURLOPT_DIRLISTONLY: don't use with CURLOPT_WILDCARDMATCH - -- FAQ: update list of supported protocols - -- [Fabian Keil brought this change] - - In the m4 detection line, factor out the 2>dev/null - -- [Fabian Keil brought this change] - - If m4 doesn't support --version, try if gm4 does. - -- [Fabian Keil brought this change] - - If the m4 version isn't recognized at all, just say so - - 'm4 version found. You need a GNU m4 installed!' is a bit confusing. - -- HISTORY: mention the gopher story - -Dan Fandrich (25 Aug 2010) -- Tweaked some test data files - - Fixed some issues that caused xmllint failures, added features - and keywords, fixed some quotes and removed some sections - that unnecessarily limited test checking. - -- Added new source files to Symbian and TPF makefiles - -Daniel Stenberg (25 Aug 2010) -- RELEASE-NOTES: sync from b980c9a02 to HEAD - -- Makefile: add gopher.c file to build - - As the VC and RISCOS makefiles don't use the .inc file - -- runtests: fix uninitialized variable warning - -- gopher tests: revert parts of gopher in the pingpong server - - Introduced in the initial gopher commits, there was added logic to do - GOPHER test serving in the pingpong server but as it resembles HTTP much - more than FTP or SMTP, the gopher testing has been moved over to instead - use the sws (HTTP) server. This change simply removes unused code. - -- gopher tests: use sws and adjusted to more standard style - -- sws: added basic gopher support - -- gopher: enable the header callback/verbosity - -- gopher: fix test case line endings - - Patches over email very easily lose CRLF line endings in files otherwise - LF-only so I had to put them back where needed. - -- gopher: fix memory leak and busyloop - - The fix for the busyloop really only is a temporary work-around. It - causes a BLOCKING behavior which is a NO-NO. This function should rather - be split up in a do and a doing piece where the pieces that aren't - possible to send now will be sent in the doing function repeatedly until - the entire request is sent. - -- [Cameron Kaiser brought this change] - - Gopher using Curl_write; test suite (4 tests) - -- [Cameron Kaiser brought this change] - - Remove url.c test - -- [Cameron Kaiser brought this change] - - Forgot gopher.h in Makefile.inc - -- [Cameron Kaiser brought this change] - - Gopher protocol support (initial release) - -- http: handle trailer headers in all chunked responses - - HTTP allows that a server sends trailing headers after all the chunks - have been sent WITHOUT signalling their presence in the first response - headers. The "Trailer:" header is only a SHOULD there and as we need to - handle the situation even without that header I made libcurl ignore - Trailer: completely. - - Test case 1116 was added to verify this and to make sure we handle more - than one trailer header properly. - - Reported by: Patrick McManus - Bug: http://curl.haxx.se/bug/view.cgi?id=3052450 - -- TODO: we now support RTMP - -- TODO: done "NTLM with other crypto functions" - - Since NTLM was made to work with the NSS API as well, the primary SSL - alternatives will be built with NTLM support in libcurl. - -- TODO: fixed "Make curl_multi_info_read faster" - - It is really fast now - -Dan Fandrich (24 Aug 2010) -- Fixed a NULL pointer dereference in form posting - - It was introduced in commit eeb2cb05 along with the -F type= - change. Also fixed a typo in the name of the magic filename= - parameter. Tweaked tests 39 and 173 to better test this path. - -Daniel Stenberg (24 Aug 2010) -- [Ben Greear brought this change] - - multi: Fix compile warning on 64-bit systems - -Dan Fandrich (23 Aug 2010) -- Mention PolarSSL in tutorial & add some URLs to INSTALL - -Daniel Stenberg (23 Aug 2010) -- RESUME_FROM: clarify what ftp uploads do - - The numerical value passed to CURLOPT_RESUME_FROM for FTP uploads is - interpreted and used as position where to resume the _reading_ of the - local file and it will "blindly" append that data on the remote - file. This was certainly not clear in the docs previously. - - Reported by: catalin - Bug: http://curl.haxx.se/bug/view.cgi?id=3048174 - -- [Dirk Manske brought this change] - - Curl_is_connected: use correct errno - - The correctly extracted errno contents were mistakenly overwritten by a newer - value that wasn't the correct error value. - - Bug: http://curl.haxx.se/mail/lib-2010-08/0242.html - -- cmdline: make -F type= accept ;charset= - - The -F option allows some custom parameters within the given string, and - those strings are separated with semicolons. You can for example specify - "name=daniel;type=text/plain" to set content-type for the - field. However, the use of semicolons like that made it not work fine if - you specified one within the content-type, like for: - "name=daniel;type=text/plain;charset=UTF-8" - ... as the second one would be seen as a separator and "charset" is no - parameter curl knows anything about so it was just silently discarded. - - The new logic now checks if the semicolon and following keyword looks - like a parameter it knows about and if it isn't it is assumed to be - meant to be used within the content-type string itself. - - I modified test case 186 to verify that this works as intended. - - Reported by: Larry Stone - Bug: http://curl.haxx.se/bug/view.cgi?id=3048988 - -Guenter Knauf (20 Aug 2010) -- Added mk-ca-bundle.vbs script. - - The script works exactly same as the Perl one except for one thing: - when the text descriptions generated with openssl are included then - the md5 fingerprints are missing; seems openssl has either a bug or - a feature which prints the md5 fingerprint output to stdout instead - of writing them to specified file; this script could here do the same - as what the Perl scripr does (redirect stdout into file) but this - makes the script take up double the time because it needs to launch - cmd.exe 140 times (fo each openssl call). So I think for now we just - ommit the md5 fingerprints, and see if openssl will be fixed. - -- Trial to fix win32 autobuilds. - - It seems that its time to look at some better ideas for the win32 - non-configure builds; probably a prebuild target which copies - config-win32.h to curl_config.h and appends also then feature - defines like USE_ARES. - -Dan Fandrich (19 Aug 2010) -- Use the S_ISREG macro to determine what is a regular file - -Kamil Dudka (19 Aug 2010) -- AC_INIT: avoid a warning with autoconf 2.66 - - It was complaining about the '=>' operator, introduced in e3fc0d5. - -Dan Fandrich (18 Aug 2010) -- Fixed a memory leak during OOM in the multi timeout code - -- Removed a C99ism & made an array const - -Daniel Stenberg (19 Aug 2010) -- [Julien Chaffraix brought this change] - - test: added test 579 to verify progress callback for chunked post - - The 66 bytes checked are those 38 bytes with the chunked encoding - headers added: 8+8+10+35+5 = 66 - - The three-letter words become 8 bytes on the wire because they are sent - like: "3\r\none\r\n" - - ... and there's the trailing 5 bytes write after the four lines since - the final chunk is sent (which is "0\r\n\r\n"). - -- multi: avoid sending multiple complete messages - - I fell over this bug report that mentioned that libcurl could wrongly - send more than one complete messages at the end of a transfer. Reading - the code confirmed this, so I've added a new multi state to make it not - happen. The mentioned bug report was made by Brad Jorsch but is (oddly - enough) filed in Debian's bug tracker for the "wmweather+" tool. - - Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593390 - -- FAQ: update the list of supported protocols - -- FAQ: added blurb about ECCN - - "1.13 curl's ECCN number" is a new section mostly made up from - Alessandro Vesely's very informative ML post on the subject: - http://curl.haxx.se/mail/lib-2008-03/0251.html - -Guenter Knauf (18 Aug 2010) -- It is sufficient to pipe stderr to NUL to get rid of the nasty messages. - -- Added SSPI build to Watcom makefile. - -Daniel Stenberg (16 Aug 2010) -- [Julien Chaffraix brought this change] - - progress: callback for POSTs less than MAX_INITIAL_POST_SIZE - - Add a call to Curl_pgrsSetUploadSize in this case valided by a test - case. - - Reported by: Никита Дорохин. - Bug: http://curl.haxx.se/mail/lib-2010-04/0173.html - -Dan Fandrich (16 Aug 2010) -- Make the LD_PRELOAD path absolute in the tests that use it - - In some situations, libtool will change directories and perform - a link step before executing the libtest test app. Since - LD_PRELOAD is in effect for this entire process, the path to the - binary must be absolute so it will be valid no matter in which - directory the app is running. - -Daniel Stenberg (16 Aug 2010) -- negotiation: Wrong proxy authorization - - There's an error in http_negotiation.c where a mistake is using only - userpwd even for proxy requests. Ludek provided a patch, but I decided - to write the fix slightly different using his patch as inspiration. - - Reported by: Ludek Finstrle - Bug: http://curl.haxx.se/bug/view.cgi?id=3046066 - -Dan Fandrich (16 Aug 2010) -- Clear stdout and stderr files on each test run - - This allows a test to be run several times in the same test - session even when the -k option is given. - -Guenter Knauf (15 Aug 2010) -- Syncroniszed vclean target; fixed some comments. - -Daniel Stenberg (15 Aug 2010) -- THANKS: added contributors from 7.21.1 - -- multi: two fixes done - -- multi: use timeouts properly for MAX_RECV/SEND_SPEED - - When detecting that the send or recv speed, the multi interface changes - state to TOOFAST and previously there was no timeout set that would - force a recheck but it would rely on the application to somehow call - libcurl anyway. This now sets a timeout for a suitable future time to - check again if the average transfer speed is then below the threshold - again. - -- multi: support timeouts - - Curl_expire() is now expanded to hold a list of timeouts for each easy - handle. Only the closest in time will be the one used as the primary - timeout for the handle and will be used for the splay tree (which sorts - and lists all handles within the multi handle). - - When the main timeout has triggered/expired, the next timeout in time - that is kept in the list will be moved to the main timeout position and - used as the key to splay with. This way, all timeouts that are set with - Curl_expire() internally will end up as a proper timeout. Previously any - Curl_expire() that set a _later_ timeout than what was already set was - just silently ignored and thus missed. - - Setting Curl_expire() with timeout 0 (zero) will cancel all previously - added timeouts. - - Corrects known bug #62. - -- Curl_llist_insert_next: allow insertion first in the list - - When we specify the "insert after" entry as NULL, this function now - inserts the new entry first in the list. - -- multi: make curl_multi_info_read perform O(1) - - Instead of looping over all attached easy handles, this now keeps a list - of messages in the multi handle. It allows curl_multi_info_read() to - perform O(1) no matter how many easy handles that are handled. This is - of importance since this function may be polled very frequently by apps - using the multi interface. - -Kamil Dudka (15 Aug 2010) -- curl -T: ignore file size of special files - - original bug report at https://bugzilla.redhat.com/622520 - -Dan Fandrich (13 Aug 2010) -- Reset environment variables before starting servers - - Otherwise, variables from tests could affect the servers - themselves. - -Kamil Dudka (12 Aug 2010) -- typecheck-gcc: work around gcc upstream bug #32061 - - original bug report at https://bugzilla.redhat.com/617757 - -Daniel Stenberg (11 Aug 2010) -- release cycle loop: start over toward 7.21.2 - -Version 7.21.1 (11 Aug 2010) - -Daniel Stenberg (11 Aug 2010) -- RELEASE-NOTES: mention the runtests fix as well - -- runtests: clear old setenv remainders before test - - Due to the layout of the singletest function there are situations where - it returns before it clears the environment variables that were - especially set for the single specific test case. That could lead to - subsequent tests getting executed with environment variables sticking - around from a previous test which could lead to badness. - - This change makes sure to clear all custom variables that may be laying - around from a previous round, before running a test case. - - Reported by: Kamil Dudka - Bug: http://curl.haxx.se/mail/lib-2010-08/0141.html - -Guenter Knauf (11 Aug 2010) -- Added OpenSSL builds to Watcom makefiles. - -Yang Tse (11 Aug 2010) -- configure: werror related adjustments - -Daniel Stenberg (11 Aug 2010) -- FAQ: s/libcurl.so.3/libcurl.so.X - -Dan Fandrich (10 Aug 2010) -- KNOWN_BUG #59 is fixed. Clarify support of IPv6 zone IDs. - -- Fixed typo in Android configure command - -Daniel Stenberg (11 Aug 2010) -- HISTORY: added stuff from recent years - -- warning: silence the compiler - - warning: conversion to 'long int' from 'time_t' may alter its value - - ... on win64 when time_t is 64bit and long is 32bit. - -- RELEASE-NOTES: synced, 3 additional bugfixes - -- multi_socket_action: clarify how to kickstart it - - The callbacks are called when curl_multi_socket_action() is called, not - when handles are added. This is now mentioned in the "TYPICAL USAGE" - section. - -- callbacks: acknowledge progress callback error returns - - When the progress callback is called during the TCP connection, an error - return would accidentally not abort the operation as intended but would - instead be counted as a failure to connect to that particular IP and - libcurl would just continue to try the next. I made singleipconnect() - and trynextip() return CURLcode properly. - - Added bonus: it corrected the error code for bad --interface usages, - like tested in test 1084 and test 1085. - - Reported by: Adam Light - Bug: http://curl.haxx.se/mail/lib-2010-08/0105.html - -Guenter Knauf (10 Aug 2010) -- More Watcom makefile fixes ... - - Final fix (hopefully!) for dll wlink loader; - prefer faster internal rm if available. - -- Fixed my wrong edit. - -- More Watcom makefile fixes. - - Added the -br switch to dynamic builds which fixes the issue I saw - with curl's --version output. Added debug info and symfile for debug - builds to linker opts. Added DLL loader for wlink back, but this time - dependend on wlink version. - Patch posted to the list by malak.jiri AT gmail.com. - -- Changed test for -u switch in order to enable other wmake switches. - - The var %MAKEFLAGS is only set in 3 cases: if set as environment - var or as macro definition from commandline, and either with the - -u or -ms switch. Since all these cases are unlikely for the average - user it should be safe to only test if %MAKEFLAGS is defined; this - has the benefit that now all other switches can be used again in - addition to the -u which was formerly not possible. - -Daniel Stenberg (10 Aug 2010) -- llist: hide Curl_llist_init - - Curl_llist_init is never used outside of llist.c and thus it should be - static. I also removed the protos for Curl_llist_insert_prev and - Curl_llist_remove_next which are functions we removed from llist.c ages - ago. - -Guenter Knauf (10 Aug 2010) -- Added msys Perl since git for Win32 comes with own Perl which identifies as msys. - -- Updated lib dependency versions. - -- Make testcurl.pl Watcom-aware. - -Daniel Stenberg (10 Aug 2010) -- parse_remote_port: fix ;type= URL suffix over HTTP proxy - - Test 563 is enabled now and verifies that the combo FTP type=A URL, - CURLOPT_PORT set and proxy work fine. As a bonus I managed to remove the - somewhat odd FTP check in parse_remote_port() and instead converted it - to a better and more generic 'slash_removed' struct field. Checking the - ->protocol field isn't right since when an FTP:// URL is sent over a - HTTP proxy, the protocol is HTTP but the URL was handled by the FTP code - and thus slash_removed is set TRUE for this case. - -- indent: white space fixes only - -Yang Tse (9 Aug 2010) -- build: fix previous push - -- build: don't build libhostname unless shared libcurl is built - -- build: libhostname and chkhostname linkage adjustments followup - -Daniel Stenberg (8 Aug 2010) -- typo: remove duplicate semicolon - -- multi: avoid a malloc() when a transfer is complete - - The struct used for storing the message for a completed transfer is now - no longer allocated separatly but is kept within the main struct kept - for each easy handle so that we avoid one malloc (and the subsequent - free). - -Yang Tse (8 Aug 2010) -- build: libhostname linkage adjustments followup - -Guenter Knauf (7 Aug 2010) -- Fix to overwrite libcurl name. - -Yang Tse (7 Aug 2010) -- build: chkhostname build adjustments followup - -U-D5B1PQ1J\Administrador (7 Aug 2010) -- build: allow NTLM tests to run on more build configurations - -Daniel Stenberg (7 Aug 2010) -- curl_easy_setopt.3: rename stream to userdata - - In some places where the name 'stream' has been used for naming a - function argument that is in fact settable with a setopt() option we now - call that argument 'userdata' to make it more obvious that it is in fact - possible to set by the application. - - Suggested by: Jeff Pohlmeyer - -Guenter Knauf (7 Aug 2010) -- Block created curlbuild.h for NetWare to avoid usage from other platforms. - -Daniel Stenberg (7 Aug 2010) -- RELEASE-NOTES: synced with recent changes - -Yang Tse (6 Aug 2010) -- build: ensure that libhostname doesn't get installed - -Daniel Stenberg (6 Aug 2010) -- multi_socket: set timeout for 100-continue - - When libcurl internally decided to wait for a 100-continue header, there - was no call to the timeout function so there was no timeout callback - called when the multi_socket API was used and thus applications became - either completely wrong or at least ineffecient depending on how they - handled the situation. We now set a timeout to get triggered. - - Reported by: Ben Darnell - Bug: http://curl.haxx.se/bug/view.cgi?id=3039744 - -Guenter Knauf (6 Aug 2010) -- Some more Watcom makefile massage ... - - For now removed the .autodepend directive until I've figured out - which of my changes broke it again. - -Yang Tse (5 Aug 2010) -- build: fix libssh2_scp_send64() availability - -- build: remove unneeded cast to (void *) - -- build: remove unused file - -Daniel Stenberg (4 Aug 2010) -- SCP: send large files properly with new enough libssh2 - - libssh2 1.2.6 and later handle >32bit file sizes properly even on 32bit - architectures and we make sure to use that ability. - - Reported by: Mikael Johansson - Bug: http://curl.haxx.se/mail/lib-2010-08/0052.html - -Yang Tse (3 Aug 2010) -- build: add missing new files to non-configure target build files - -- md4: replace bcopy usage with memcpy - -Daniel Stenberg (3 Aug 2010) -- RELEASE-NOTES: synced with recent changes - -- TODO-RELEASE: clear, file not really used ATM - -- typecheck-gcc: add checks for recently added options - - I added all OBJECTPOINT curl_easy_setopt() options from 178 to 202. Left - to add: the five FUNCTIONPOINT (callbacks) options added since: - - SSH_KEYFUNCTION - INTERLEAVEFUNCTION - CHUNK_BGN_FUNCTION - CHUNK_END_FUNCTION - FNMATCH_FUNCTION - -- .gitignore: ignore all built examples - -- example: fix code to build warning-free - -- Curl_connected_proxy: skip the bits.tcpconnect check - - Simply because the TCP might be connected already we cannot skip the - proxy connect procedure. We need to be careful to not overload more - meaning to the bits.tcpconnect field like this. - - With this fix, SOCKS proxies work again when the multi interface is - used. I believe this regression was added with commit 4b351d018e, - released as 7.20.1. - - Left todo: add a test case that verifies this functionality that - prevents us from breaking it again in the future! - - Reported by: Robin Cornelius - Bug: http://curl.haxx.se/bug/view.cgi?id=3033966 - -- sethostname: provide local prototype for gethostname - - This is only to avoid warnings on some systems. - -- build: add typecast to avoid warning - - There is an implicit conversion from "unsigned long" to "long"; - rounding, sign extension, or loss of accuracy may result. - -Guenter Knauf (2 Aug 2010) -- Rename CURL_SOURCES macro; revert previous rename of curl_SOURCES macro. - -- Removed ugly dependency lists since wmake knows the .autodepend directive. - -- Use suffix search path for sources in lib folder. - -- Changed src/Makefile.Watcom to use CURL_SOURCES from src/Makefile.inc. - -- Renamed curl_SOURCES to CURL_ALLFILES to overcome wmake's case-insensitivity. - -- Removed wlink from DLL loader list because it doesnt work with Watcom < 1.8. - -- Moved the LDAP API defines from Makefile.Watcom to config-win32.h. - - These defines are only needed for older Watcom versions (< 1280). - -Daniel Stenberg (2 Aug 2010) -- retry: consider retrying even if -f is used - - The --retry logic does retry HTTP when some specific response codes are - returned, but because the -f option sets the CURLOPT_FAILONERROR to - libcurl, the return codes are different for such situations and then the - curl tool failed to consider it for retrying. - - Reported by: Mike Power - Bug: http://curl.haxx.se/bug/view.cgi?id=3037362 - -- multi: fix FTPS connecting the data connection with OpenSSL - - Commit 496002ea1cd76af7f (released in 7.20.1) broke FTPS when using the - multi interface and OpenSSL was used. The condition for the non-blocking - connect was incorrect. - - Reported by: Georg Lippitsch - Bug: http://curl.haxx.se/mail/lib-2010-07/0270.html - -Guenter Knauf (1 Aug 2010) -- Fixed curlbuild.h rule. - -- Added rule to create curlbuild.h if not present (for builds from git). - -- Added dependend libs for curl static linking. - -- Fixed curl.exe static linking. - -Daniel Stenberg (30 Jul 2010) -- warning: silence a win64 compiler warning - - conversion from 'size_t' to 'curl_socklen_t', possible loss of data - - Reported by: Adam Light - -- KNOWN_BUG: The SOCKET type in Win64 is 64 bits - - The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t - on that platform), and long is only 32 bits. It makes it impossible for - curl_easy_getinfo() to return a socket properly with the - CURLINFO_LASTSOCKET option as for all other operating systems. - -- smtp_connect: always provide host name buffer - - Previously the host name buffer was only used if gethostname() exists, - but since we converted that into a curl private function that function - always exists and will be used so the buffer needs to exist for all - cases/systems. - -- sethostname: avoid including unistd.h to duck for warnings - -- sethostname: ISO C does not allow extra `;' outside of a function - -- [Kamil Dudka brought this change] - - NTLM tests: boost coverage by forcing the hostname - - A shared library tests/libtest/.libs/lihostname.so is preloaded in NTLM - test-cases to override the system implementation of gethostname(). It - makes it possible to test the NTLM authentication for exact match, and - this way test the implementation of MD4 and DES. - - If LD_PRELOAD doesn't work, a debug build willl also workk as debug - builds are now made to prefer a specific environment variable and will - then return that content as host name instead of the actual one. - - Kamil wrote the bulk of this, Daniel Stenberg polished it. - -Guenter Knauf (29 Jul 2010) -- Added a comment with an alternate idea to avoid the backslash line contination character. - -- Changed comparison to match size_t var type. - -- Removed unused vars to avoid compiler warnings. - -- Make Watcom makefiles use Makefile.inc to reduce future maintainance. - - lib/Makefile.Watcom works fine already, for src/Makefile.Watcom we - need first to tweak src/Makefile.inc a bit - therefore the handtweaked - list still exists for now. - -- Watcom makefiles overhaul. - - - make both libcurl and curl makefiles use register calling convention - (previously libcurl had stack calling convention). - - added include paths to the Watcom headers so its no longer required - to set the environment vars for this. - - added -wcd=201 to supress compiler warning about unreachable code. - - use macros for all tools, and removed dependency on GNU tools like rm. - - make ipv6 and debug builds controlable via env vars and so make them - optional instead of default. - - commented WINLDAPAPI and WINBERAPI since they broke with OW 1.8, and - it seems they're not needed (anymore?). - - added rule for hugehelp.c.cvs so that it will be created when not - already exist - this is required for building from a release tarball - since there we have no hugehelp.c.cvs, thus compilation broke. - - removed C_ARG creation from lib/Makefile.Watcom and use CFLAGS - directly as done too in src/Makefile.Watcom - this has the benefit - that we will see all active cflags and defines during compile. - - added LINK-ARG to src/Makefile.Watcom in order to better control - linker input. - - a couple of other minor makefile tweaks here and there ... - - added largefile support for Watcom builds to config-win32.h. Not yet - tested if it really works, but should since Win32 supports it. - - added loaddll stuff to speed up builds if supported. - -- some cosmetic changes. - -Dan Fandrich (26 Jul 2010) -- Added md4.c to the Watcom makefile - -- Added PolarSSL to the docs - -Daniel Stenberg (25 Jul 2010) -- curl-config: --built-shared returns shared info - - The curl-config now features a --built-shared command line option that - will output 'yes' or 'no' depending if the build process was asked to - build shared library/libraries or not. - - It is primarily made to offer more details to the test suite to know - what kind of stunts it can expect to work. - -- add_buffer_send: fix compiler warning - - Win64's 32 bit long but 64 bit size_t caused a warning that we avoid - with a typecast. A small whitespace indent fix was also applied. - - Reported by: Adam Light - -Guenter Knauf (22 Jul 2010) -- Updated library versions. - -- Fixed script version which was still based on CVS Revision tag. - -Dan Fandrich (21 Jul 2010) -- FAQ: Why doesn't cURL error out when the cable is unplugged? - - This one was long overdue to be mentioned in the FAQ. Also, mention the - new ftp wildcard downloading feature. - -Daniel Stenberg (21 Jul 2010) -- [Ben Greear brought this change] - - ssh: Fix compile error on 64-bit systems. - - Signed-off-by: Ben Greear - -- [Ben Greear brought this change] - - build: Enable configure --enable-werror - - This passes -Werror to gcc when building curl and libcurl, - allowing easy dection of compile warnings. - - Signed-off-by: Ben Greear - -- [Ben Greear brought this change] - - pingpong: Fix indentation (whitespace change only) - - Signed-off-by: Ben Greear - -- [Jan Van Boghout brought this change] - - CUSTOMREQUEST: shouldn't be disabled when HTTP is disabled - - ... since FTP is using it as well, and potentially other protocols! - - Also, an #endif CURL_DISABLE_HTTP was incorrectly marked, as it seems to - end the proxy block instead. - -- [Jan Van Boghout brought this change] - - pingpong: response_time is milliseconds - - Fixed the comment/document for the response_time struct member. - -- [Jan Van Boghout brought this change] - - ftp: response timeout bug in "quote" sending - - The FTP implementation was missing a timestamp reset point, making the - waiting for responses after sending a post-transfer "QUOTE" command not - working as supposedly. This bug was introduced in 7.20.0 - -- [Jeff Pohlmeyer brought this change] - - remote-header-name: chop filename at next semicolon - - The --remote-header-name option for the command-line tool assumes that - everything beyond the filename= field is part of the filename, but that - might not always be the case, for example: - - Content-Disposition: attachment; filename=file.txt; modification-date=... - - This fix chops the filename off at the next semicolon, if there is one. - -- --retry: access violation with URL part sets continued - - When getting multiple URLs, curl didn't properly reset the byte counter - after a successful transfer so if the subsequent transfer failed it - would wrongly use the previous byte counter and behave badly (segfault) - because of that. The code assumes that the byte counter and the 'stream' - pointer is well in synch. - - Reported by: Jon Sargeant - Bug: http://curl.haxx.se/bug/view.cgi?id=3028241 - -- releasnote: synch up with commit f3b77e5611d - -- [Constantine Sapuntzakis brought this change] - - examples: add curl_multi_timeout - - Make the multi-interface using examples use curl_multi_timeout to - properly educate users how to do things. - -- configure: document the STATICLIB variable - -- [Constantine Sapuntzakis brought this change] - - multi: fix condition that remove timers before trigger - - curl_multi perform has two phases: run through every easy handle calling - multi_runsingle and remove expired timers (timer removal). - - If a small timer (e.g. 1-10ms) is set during multi_runsingle, then it's - possible that the timer has passed by when the timer removal runs. The - timer which was just added is then removed. This will potentially cause - the timer list to be empty and cause the next call to curl_multi_timeout - to return -1. Ideally, curl_multi_timeout should return 0 in this case. - - One way to fix this is to move the struct timeval now = Curl_tvnow(); to - the top of curl_multi_perform. The change does that. - -- [Constantine Sapuntzakis brought this change] - - threaded resolver: fix timeout issue - - Reset old timer first so we can set a new one further in the future. - -- configure: allow environments variable to override internals - - configure checks for grep, egrep, sed and ar and set the variables GREP, - EGREP, SED and AR accordingly. We now let already set variables override - the internal choices to let users make decisions when they know the - right choice already. This is a regression as our configure script used - to allow this back before commit 0b57c475 (up to 7.18.2). - - Reported by: "kdekker" - Bug: http://curl.haxx.se/bug/view.cgi?id=3028318 - -Dan Fandrich (9 Jul 2010) -- Improved the Android build instructions - -Daniel Stenberg (7 Jul 2010) -- [Tor Arntsen brought this change] - - upload: Avoid infinite loop when checking for auth bits - - The test would loop forever if authtype bit 0 wasn't set. - -- upload: warn users trying to upload from stdin with anyauth - - Since uploading from stdin is very likely to not work with anyauth and - its multi-phase probing for what authentication to actually use, alert - the user about it. Multi-phase negotiate almost certainly will involve - sending data and thus libcurl will need to rewind the stream to send - again, and it cannot do that with stdin. - -- http: don't enable chunked during authentication negotiations - - As mentioned in bug report #2956968, the HTTP code wouldn't send the - first empty chunk during the auth negotiation phase of the HTTP request - sending, so the server would wait for data to come and libcurl would - wait for data to arrive... I've made the code not enable chunked - encoding until the auth negotiation is done and thus this scenario - doesn't occur anymore. - - Reported by: Sidney San Martín - Bug: http://curl.haxx.se/bug/view.cgi?id=2956968 - -- --libcurl: list the tricky options instead of using [REMARK] - - I think the [REMARK] and commented function calls cluttered the code a - bit too much and made the generated code ugly to read. Now we instead - track the remarks one specially and just lists them at the end of the - generated code more as additional information. - -- curl: avoid setting libcurl options to its default - - it makes the --libcurl output easier to follow. - -- --libcurl: hide setopt() calls setting default options - - And additionally, don't show function or object pointers actual value - since they make no sense to anyone. Show 'functionpointer' and - 'objectpointer' instead. - -- --libcurl: use *_LARGE options with typecasted constants - - In the generated code --libcurl makes, all calls to curl_easy_setopt() - that use *_LARGE options now have the value typecasted to curl_off_t, so - that it works correctly for 32bit systems with 64bit curl_off_t type. - -- multi: CURLINFO_LASTSOCKET doesn't work after remove_handle - - When curl_multi_remove_handle() is called and an easy handle is returned - to the connection cache held in the multi handle, then we cannot allow - CURLINFO_LASTSOCKET to extract it since that will more or less encourage - that the user uses the socket while it can get used by libcurl again. - - Without this fix, we'd get a segfault in Curl_getconnectinfo() trying to - dereference the NULL pointer in 'data->state.connc'. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3023840 - -- [Pierre Joye brought this change] - - build: add enable IPV6 option for the VC makefiles - -- FAQ: the threaded resolver works universally now - -Kamil Dudka (30 Jun 2010) -- http_ntlm: add support for NSS - - When configured with '--without-ssl --with-nss', NTLM authentication - now uses NSS crypto library for MD5 and DES. For MD4 we have a local - implementation in that case. More details are available at - https://bugzilla.redhat.com/603783 - - In order to get it working, curl_global_init() must be called with - CURL_GLOBAL_SSL or CURL_GLOBAL_ALL. That's necessary because NSS needs - to be initialized globally and we do so only when the NSS library is - actually required by protocol. The mentioned call of curl_global_init() - is responsible for creating of the initialization mutex. - - There was also slightly changed the NSS initialization scenario, in - particular, loading of the NSS PEM module. It used to be loaded always - right after the NSS library was initialized. Now the library is - initialized as soon as any SSL or NTLM is required, while the PEM module - is prevented from being loaded until the SSL is actually required. - -Daniel Stenberg (29 Jun 2010) -- glob: backslash escaping bug - - curl didn't properly handle escaping characters in a URL with the use of - backslash. It did an attempt, but that failed as reported in bug - 3022551. The described example was using the URL - "http://example.com?{AB,C\,D}". - - I've now removed the special-handling of letters following the backslash - and I also removed the bad extra check that triggered this particular - bug. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3022551 - Reported by: Jon Sargeant - -- release-notes: sync up with recent commits - -- CONTRIBUTE: the git commit message line length is 72 columns - -- [Pavel Raiskup brought this change] - - ftp wildcard: FTP LIST parser FIX - - There was a problem when a UNIX-like server returned information - about directory size (total NNNNNN) at the first line of - response. - -- [Pavel Raiskup brought this change] - - examples: new FTP wildcard showcase - -- multi_socket: re-use of same socket without notifying app - - When a hostname resolves to multiple IP addresses and the first one - tried doesn't work, the socket for the second attempt may get dropped on - the floor, causing the request to eventually time out. The issue is that - when using kqueue (as on mac and bsd platforms) instead of select, the - kernel removes the first fd from kqueue when it is closed (in trynextip, - connect.c:503). Trynextip() then goes on to open a new socket, which - gets assigned the same number as the one it just closed. Later in - multi.c, socket_cb is not called because the fd is already in - multi->sockhash, so the new socket is never added to kqueue. - - The correct fix is to ensure that socket_cb is called to remove the fd - when trynextip() closes the socket, and again to re-add it after - singleipsocket(). I'm not sure how to cleanly do that, but the attached - patch works around the problem in an admittedly kludgy way by delaying - the close to ensure that the newly-opened socket gets a different fd. - - Daniel's added comment: I didn't spot a way to easily do a nicer fix so - I've proceeded with Ben's patch. - - Bug: http://curl.haxx.se/bug/view.cgi?id=3017819 - Patch by: Ben Darnell - -Kamil Dudka (24 Jun 2010) -- [Pavel Raiskup brought this change] - - ftp-wildcard: avoid tight loop when used without any pattern - - It was broken for URLs like "ftp://example.com/". - -Daniel Stenberg (21 Jun 2010) -- maketgz: produce CHANGES automatically with the 1000 most recent commits - - It passes the git log output through 'log2changes.pl' to produce - the lot. - -- ignore: CHANGES.dist gets generated by maketgz - -- CHANGES: move all contents from CHANGES to CHANGES.0 - - CHANGES is no longer used for manually edited content. It is to - be generated automatically by maketgz when we make release - tarballs. - -- log2changes: correct command line, fix tag usage, change Version output - - --decorate=full is needed with my git 1.7.1 to get the necessary - output so that the previous edit would work to extract the - Version stuff. - - ... but I had to edit how the refs/tags was extracted since it - had a little flaw that made it miss the 7.20.1 output. - - Finally, I changed so that Version is outputted even more similar - to how CHANGES does it. - -Dan Fandrich (21 Jun 2010) -- Make the output of log2changes.pl even more closely match CHANGES - - Add the ASCII art header, and list version commits by decoding - the ref tag names, when available (using the git log --decorate - option). - -Daniel Stenberg (19 Jun 2010) -- log2changes: first version of the git log to CHANGES conversion script - - $ git log --pretty=fuller --no-color --date=short | ./log2changes.pl - - Of course, limiting the log output with a range like with - "[tag]..HEAD" appended can be very useful too. - -- sendrecv: treat all negative values from send/recv as errors - - For example the libssh2 based functions return other negative - values than -1 to signal errors and it is important that we catch - them properly. Right before this, various failures from libssh2 - were treated as negative download amounts which caused havoc. - -- multi: prevent NULL pointer dereference - - My additional call to Curl_pgrsUpdate() would sometimes get - called even though there's no connection (left) so a NULL pointer - would get passed, causing a segfault. - -- smtp: fixed a few uses of size_t that seemed to believe it was signed - - Reported-by: Steven M. Schweda - -Dan Fandrich (17 Jun 2010) -- Fixed an OOM memory leak in the FTP wildcard code - -Kamil Dudka (17 Jun 2010) -- test575: do not fail with threaded DNS resolver - -Daniel Stenberg (17 Jun 2010) -- [Krister Johansen brought this change] - - multi: unmark handle as used when no longer head of pipeline - -- multi: call the progress function only once and allow abort - - 1) no need to call the progress function twice when in the - CURLM_STATE_TOOFAST state. - - 2) Make sure that the progress callback's return code is - acknowledged when used - -- multi: call the progress callback in all states - - As long as no error is reported, the progress function can get - called. This may be a little TOO often so we should keep an eye - on this and possibly make this conditional somehow. - -- configure: spell --disable-threaded-resolver correctly - - Previously we only accepted the option when named - --disable-threaded-resover, which wasn't quite intended. - - Reported by: Helwing Lutz - -- release: start on 7.21.1, bump contributor count - -- version: start working on the 7.21.1-dev version - -- THANKS: added contributors from the 7.21.0 release - -Version 7.21.0 (16 Jun 2010) - -Daniel Stenberg (16 Jun 2010) -- release: 7.21.0 - -Yang Tse (10 Jun 2010) -- remove unused 'tmpdata' and 'backup' ftp_parselist_data struct members - -- replace isprint() with ISPRINT() - -- ensure that Curl_wildcard_dtor() leaves WildcardData struct zero initialized - -Patrick Monnerat (9 Jun 2010) -- ILE/RPG binding updated to current curl.h definitions. - -Yang Tse (9 Jun 2010) -- code simplification - -- add Curl_ prefix to conform with cURL naming standards - -- Merge branch 'master' of git@github.com:bagder/curl - -- fix compiler warning using curl_socket_t to store socket descriptor - -Daniel Stenberg (8 Jun 2010) -- inet_pton: warnings: use size_t to store pointer deltas - -Yang Tse (8 Jun 2010) -- avoid redundant work when reusing same connection - -- fix function result checking - -Daniel Stenberg (8 Jun 2010) -- transfer: warning: implicit conversion - - There is an implicit conversion from "unsigned long" to "long"; - rounding, sign extension, or loss of accuracy may result. - - Fixed by an added typecast. - -- TFTP: fix compiler warning - - Curl_fillreadbuffer()'s second argument takes an int, so - typecasting to another is a bad idea. - -- TFTP: fix warning for sendto() usage on non-POSIX systems - - Older unixes want an 'int' instead of 'size_t' as the 3rd - argumment so before this change it would cause warnings such as: - - There is an implicit conversion from "unsigned long" to "int"; - rounding, sign extension, or loss of accuracy may result. - -Dan Fandrich (7 Jun 2010) -- Include Makefile.inc to get the list of source files for Amiga - - Signed-off-by: Diego Casorran - -Yang Tse (7 Jun 2010) -- Curl_updateconninfo() error handling fix - -Daniel Stenberg (5 Jun 2010) -- [Constantine Sapuntzakis brought this change] - - OpenSSL: fix spurious SSL connection aborts - - Was seeing spurious SSL connection aborts using libcurl and - OpenSSL. I tracked it down to uncleared error state on the - OpenSSL error stack - patch attached deals with that. - - Rough idea of problem: - - Code that uses libcurl calls some library that uses OpenSSL but - don't clear the OpenSSL error stack after an error. - - ssluse.c calls SSL_read which eventually gets an EWOULDBLOCK from - the OS. Returns -1 to indicate an error - - ssluse.c calls SSL_get_error. First thing, SSL_get_error calls - ERR_get_error to check the OpenSSL error stack, finds an old - error and returns SSL_ERROR_SSL instead of SSL_ERROR_WANT_READ or - SSL_ERROR_WANT_WRITE. - - ssluse.c returns an error and aborts the connection - - Solution: - - Clear the openssl error stack before calling SSL_* operation if - we're going to call SSL_get_error afterwards. - - Notes: - - This is much more likely to happen with multi because it's easier - to intersperse other calls to the OpenSSL library in the same - thread. - -Yang Tse (5 Jun 2010) -- replace socklen_t with curl_socklen_t - -Daniel Stenberg (5 Jun 2010) -- [Frank Meier brought this change] - - getinfo: added *_PRIMARY_PORT, *_LOCAL_IP and *_LOCAL_PORT - -- RELEASE-NOTES: add contributors not mentioned - -Yang Tse (4 Jun 2010) -- Enable OpenLDAP support for cygwin builds. - - Enable OpenLDAP support for cygwin builds. This support was disabled back - in 2008 due to incompatibilities between OpenSSL and OpenLDAP headers. - cygwin's OpenSSL 0.9.8l and OpenLDAP 2.3.43 versions on cygwin 1.5.25 - allow building an OpenLDAP enabled libcurl supporting back to Windows 95. - - Remove non-functional CURL_LDAP_HYBRID code and references. - -Kamil Dudka (2 Jun 2010) -- ftplistparser.c: oops, fix typo in the last commit - -- ftplistparser.c: avoid some invalid dereferences - -- lib: eliminate some dead code - -Daniel Stenberg (2 Jun 2010) -- SSH: corrected the inability to respect the timeout - - Jason McDonald posted bug report #3006786 when he found that the - SFTP code didn't timeout properly in several places in the code - even if a timeout was set properly. - - Based on his suggested patch, I wrote a different implementation - that I think addressed the issue better and also uses the connect - timeout for the initial part of the SSH/SFTP done during the - "protocol connect" phase. - - (http://curl.haxx.se/bug/view.cgi?id=3006786) - -Yang Tse (2 Jun 2010) -- mention last changes - -- add missing new files to non-configure target build files - -- include libcurl standard internal headers - -Daniel Stenberg (2 Jun 2010) -- TODO: add multi interface improvement remove ldap select - -Yang Tse (2 Jun 2010) -- make setup.h first included file - -- fix spnego memory leak - -- openldap header inclusions fix - -Daniel Stenberg (1 Jun 2010) -- multi_socket: handles timer inaccuracy better for timeouts - - Igor Novoseltsev reported a problem with the multi socket API and - using timeouts and timers. It boiled down to a problem with - libcurl's use of GetTickCount() interally to figure out the - current time, while Igor's own application code used another - function call. - - It made his app call the socket API timeout function a bit - _before_ libcurl would consider the timeout to trigger, and that - could easily lead to timeouts or stalls in the app. It seems - GetTickCount() in general often has no better resolution than - 16ms and switching to the alternative function - QueryPerformanceCounter has its share of problems: - http://www.virtualdub.org/blog/pivot/entry.php?id=106 - - We address this problem by simply having libcurl treat timers - that already has occured or will occur within 40ms subject for - treatment. I'm confident that there are other implementations and - operating systems with similarly in accurate timer functions so - it makes sense to have applied generically and I don't believe we - sacrifice much by adding a 40ms inaccuracy on these timeouts. - -Yang Tse (1 Jun 2010) -- fix ldaps option issue - -- fix ldap related compilation issues - -- fix compiler warning: enumerated type mixed with another type - -- fix compiler warning: enumerated type mixed with another type - -Patrick Monnerat (31 May 2010) -- smtp_authenticate: avoid compiler warnings - -Yang Tse (31 May 2010) -- fix compiler warning: enumerated type mixed with another type - -- fix compiler warning: enumerated type mixed with another type - -- fix compiler warning: enumerated type mixed with another type - -- fix compiler warning: external declaration in primary source file - -- fix compiler warning: variable was set but never used - -- fix compiler warning: enumerated type mixed with another type - -- fix compiler warning: external declaration in primary source file - -- update year in copyright notice - -Kamil Dudka (29 May 2010) -- strtoofft: rename CURL_LLONG_MIN -> CURL_OFF_T_MIN - - ... and CURL_LLONG_MAX -> CURL_OFF_T_MAX - -- CURL_LLONG_MAX: avoid constant overflow - - ... when (CURL_SIZEOF_CURL_OFF_T == 4) - -Daniel Stenberg (28 May 2010) -- [Howard Chu brought this change] - - LDAPS: list availability depending on SSL's presence - -- [Howard Chu brought this change] - - LDAP: make it build without SSL if no such support is available - - of course it also goes for the case where SSL is explicitly - disabled - -- TODO: removed fixed items - - These two items are now actually implemented: - - 11.1 Content-Disposition - 11.5 ftp wildcard download - -Kamil Dudka (28 May 2010) -- lib: eliminate 'statement not reached' warnings - -Daniel Stenberg (28 May 2010) -- test1115: verify that unexpected 1xx responses work fine - -Kamil Dudka (28 May 2010) -- lib577: avoid redefinition of ERROR - -- test313: a new test for CRL support - -- tests/certs: re-generated because of lost pass-phrase - -- tests/certs/scripts: generate also CRL - - ... and make it possible to do so without any user interaction - -Daniel Stenberg (27 May 2010) -- [Howard Chu brought this change] - - openldap: fix compiler warnings - -- indent: some whitespace edits - -Kamil Dudka (27 May 2010) -- wildcard.c: add missing include of "setup.h" - -- [Tor Arntsen brought this change] - - lib573: do not compare double for exact match - -- [Pavel Raiskup brought this change] - - wildcard.c: add missing include of "curl_memory.h" - -- [Tor Arntsen brought this change] - - setup_once: use enum type for 'bool' on non-C99 platforms - - An enum will catch non-bool assignments to bool on platforms with - a strict compiler, e.g MIPSPro. - - Signed-off-by: Kamil Dudka - -- url.c: avoid implied cast to bool - -- [Tor Arntsen brought this change] - - curl_fnmatch: remove use of register keyword - - Using the 'register' keyword rarely improves anything with modern - compilers and architectures. - -Daniel Stenberg (26 May 2010) -- [Julien Chaffraix brought this change] - - RTMP: Fix compiler warnings - -- [Julien Chaffraix brought this change] - - OOM fixes in http_negociate.c and lib/splay.c - - Fix 2 OOM errors: a missing NULL-check in lib/http_negociate.c - and a potential NULL dereferencing in lib/splay.c - -- [Howard Chu brought this change] - - LDAP: properly implemented as a curl_handler - - makes the LDAP code much cleaner, nicer and in general being a - better libcurl citizen. If a new enough OpenLDAP version is - detect, the new and shiny lib/openldap.c code is then used - instead of the old cruft - - Code by Howard, minor cleanups by Daniel. - -- [Tor Arntsen brought this change] - - curl_fnmatch: Use int not bool when function returns int - - bool in curl internals is unsigned char and should not be used - to receive return value from functions returning int - this fails - when using IBM VisualAge and Tru64 compilers. - -- TFTP: send legal timeout value - - Eric Mertens posted bug #3003705: when we made TFTP use the - correct timeout option when sent to the server (fixed May 18th - 2010) it became obvious that libcurl used invalid timeout values - (300 by default while the RFC allows nothing above 255). While of - course it is obvious that as TFTP has worked thus far without - being able to set timeout at all, just removing the setting - wouldn't make any difference in behavior. I decided to still keep - it (but fix the problem) as it now actually allows for easier - (future) customization of the timeout. - - (http://curl.haxx.se/bug/view.cgi?id=3003705) - -- TFTP: don't ack if wrong block num is received - - If an unexpected block number was received, break out of the - switch loop. - -- TFTP: block id wrap bug fix - - In a normal expression, doing [unsigned short] + 1 will not wrap - at 16 bits so the comparisons and outputs were done wrong. I - added a macro do make sure it gets done right. - - Douglas Kilpatrick filed bug report #3004787 about it: - http://curl.haxx.se/bug/view.cgi?id=3004787 - -- [Ben Greear brought this change] - - Fix build warnings. - - Signed-off-by: Ben Greear - -- [Ben Greear brought this change] - - setopt: Fix setting of set.is_fwrite_set - - Signed-off-by: Ben Greear - -- [Tanguy Fautre brought this change] - - build: allow curl to build with Microsoft VC10 - - By undefing a bunch of E* defines that VC10 has started to define - but that we redefine internally to their WSA* alternatives when - building for Windows. - -Kamil Dudka (20 May 2010) -- [Tor Arntsen brought this change] - - Test 573: Use correct type for CURLINFO_CONNECT_TIME - - curl_easy_getinfo() called with a pointer to long instead of double - would sigbus on RISC processors (e.g. MIPS) due to wrong alignment - of pointer address. - -- [Tor Arntsen brought this change] - - lib: Fix AIX build failure - -Dan Fandrich (19 May 2010) -- Fixed some memory leaks in the POP3 torture tests - -- Fixed a memory leak in the SMTP torture tests - -Daniel Stenberg (18 May 2010) -- TFTP: send timeout option correctly - - Eric Mertens posted bug report #3003005 pointing out that the - libcurl TFTP code was not sending the timeout option properly to - the server, and suggested a fix. - - (http://curl.haxx.se/bug/view.cgi?id=3003005) - -Kamil Dudka (16 May 2010) -- [Tor Arntsen brought this change] - - lib: Change some CRLF line endings to LF - - An update had added a couple of lines with DOS line endings, - and some compilers will choke on that (e.g. the Tru64 compiler). - -- ftp wildcard: a new option CURLOPT_FNMATCH_DATA - -Daniel Stenberg (15 May 2010) -- [Howard Chu brought this change] - - RMTP: the version code is now rtmp aware - -- [Howard Chu brought this change] - - RTMP: fix wrong #ifdef - -- [Pavel Raiskup brought this change] - - ftp wildcard: fix int32_t and size/group mixups - -Dan Fandrich (14 May 2010) -- Fixed test 577 to work when --enable-hidden-symbols is configured - -Daniel Stenberg (14 May 2010) -- OpenSSL: multi interface handshake could hang - - John-Mark Bell filed bug #3000052 that identified a problem (with - an associated patch) with the OpenSSL handshake state machine - when the multi interface is used: - - Performing an https request using a curl multi handle and using - select or epoll to wait for events results in a hang. It appears - that the cause is the fix for bug #2958179, which makes - ossl_connect_common unconditionally return from the step 2 loop - when fetching from a multi handle. - - When ossl_connect_step2 has completed, it updates - connssl->connecting_state to ssl_connect_3. ossl_connect_common - will then return to the caller, as a multi handle is in - use. Eventually, the client code will call curl_multi_fdset to - obtain an updated fdset to select or epoll on. For https - requests, curl_multi_fdset will cause https_getsock to be called. - https_getsock will only return a socket handle if the - connecting_state is ssl_connect_2_reading or - ssl_connect_2_writing. Therefore, the client will never obtain a - valid fdset, and thus not drive the multi handle, resulting in a - hang. - - (http://curl.haxx.se/bug/view.cgi?id=3000052) - -- changelog: add link to bug report - -Dan Fandrich (14 May 2010) -- Added directories.pm to the source tar ball - -Daniel Stenberg (14 May 2010) -- follow redirect: ignore response-body on redirect even if compressed - - Sebastian V reported bug #3000056 identifying a problem with - redirect following. It showed that when curl followed redirects - it didn't properly ignore the response body of the 30X response - if that response was using compressed Content-Encoding! - - (http://curl.haxx.se/bug/view.cgi?id=3000056) - -- version: we're now going for 7.21.0 - -- [Hoi-Ho Chan brought this change] - - Remove support for BSD version of PolarSSL - - "The BSD version of PolarSSL was made for migratory purposes only and is not - maintained. The GPL version of PolarSSL is actually the only actively - developed version, so I would be very reluctant to use the BSD version." / - Paul Bakker, PolarSSL hacker. - - Signed-off-by: Hoi-Ho Chan - -Dan Fandrich (12 May 2010) -- Added Polar SSL and RTMP files to the non-autoconf build files - - I didn't bother with a few that have little hope of running the required - dependent libraries. - -- Added the new ftp source files to the non-autoconf build files - -- Copy the license file so it's seen by the Android build system - -Daniel Stenberg (13 May 2010) -- updated with symbols added in recent commits for 7.21.0 - -- changelogs: mention RTMP and the FTP wildcard support - -- ftp wildcards: mention they're added in 7.21.0 - -- style: minor whitespace change - -- syntax: cleanups - -- [Pavel Raiskup brought this change] - - FTP: WILDCARDMATCH/CHUNKING/FNMATCH added - -- [Howard Chu brought this change] - - RTMP: initial support added, powered by librtmp - - librtmp is found at http://rtmpdump.mplayerhq.hu/ - -- [Howard Chu brought this change] - - sendrecv: make them two pairs of send/recv to properly deal with FTPS - - FTP(S) use two connections that can be set to different recv and - send functions independently, so by introducing recv+send pairs - in the same manner we already have sockets/connections we can - work with FTPS fine. - - This commit fixes the FTPS regression introduced in change d64bd82. - -Kamil Dudka (11 May 2010) -- changelog: fixed CRL support in libcurl-NSS - -- nss: make it possible to read ASCII and DER CRL - -- nss: add CRL to cache instead of read-only NSS db - -Daniel Stenberg (10 May 2010) -- git: how to write a fine commit message - -- findtool: file name as a full path requires a slash - - Kalle Vahlman's patch applied a while ago broke how the findtool - function searches for tools, as it would always check if "$file" - was present first, which thus made the bad assumption that a file - in the current directory would be a match. - - I noticed when it found 'libtool' in the current directory but - libtoolize is not there, which confused the script. - -Hacki (8 May 2010) -- moved vars into conditional since seems that winsock implementation doesnt use them. - -Daniel Stenberg (7 May 2010) -- multi interface: missed storing connection time - - Dirk Manske reported a regression. When connecting with the multi - interface, there were situations where libcurl wouldn't store - connect time correctly as it used to (and is documented to) do. - - Using his fine sample program we could repeat it, and I wrote up - test case 573 using that code. The problem does not easily show - itself using the local test suite though. - - The fix, also as suggested by Dirk, is a bit on the ugly side as - it adds yet another call to Curl_verboseconnect() and setting the - TIMER_CONNECT time. That situation is subject for some closer - inspection in the future. - -- verboseconnect: so the verbose checking within the function - - As the function is used more than once and libcurl can be built - without it, do the conditional check within the verboseconnect() - function itself. - -- changelogs: split the I/O handling - -- [Howard Chu brought this change] - - sendrecv: split the I/O handling into private handler - - Howard Chu brought the bulk work of this patch that properly - moves out the sending and recving of data to the parts of the - code that are properly responsible for the various ways of doing - so. - - Daniel Stenberg assisted with polishing a few bits and fixed some - minor flaws in the original patch. - - Another upside of this patch is that we now abuse CURLcodes less - with the "magic" -1 return codes and instead use CURLE_AGAIN more - consistently. - -- changelog: PolarSSL - -- [Hoi-Ho Chan brought this change] - - PolarSSL: initial support added - - This is Hoi-Ho Chan's patch with some minor fixes by me. There - are some potential issues in this, but none worse than we can - sort out on the list and over time. - -- TODO: we've done PRET already, consider HOST for the future - - ... and GnuTLS connects are non-blocking, TFTP is better - integrated as a "real" protocol and RTSP is supported. - -- TODO: GnuTLS connects are now non-blocking - - Since commit c288860 by Jerome Vouillon - -- INTERNALS: tftp is decent now, ldap is not - - It's not quite fair to list TFTP is a "crappy" member of the - libcurl family so I removed its mentioning. - -- changelog: mention Ben Greear's telnet work - -- [Ben Greear brought this change] - - telnet: Allow programatic use of telnet. - - The main change is to allow input from user-specified methods, - when they are specified with CURLOPT_READFUNCTION. - All calls to fflush(stdout) in telnet.c were removed, which makes - using 'curl telnet://foo.com' painful since prompts and other data - are not always returned to the user promptly. Use - 'curl --no-buffer telnet://foo.com' instead. In general, - the user should have their CURLOPT_WRITEFUNCTION do a fflush - for interactive use. - - Also fix assumption that reading from stdin never returns < 0. - Old code could crash in that case. - - Call progress functions in telnet main loop. - - Signed-off-by: Ben Greear - -- test: enable valgrind for 604, seems to work - -Kamil Dudka (28 Apr 2010) -- [Paul Howarth brought this change] - - add 1s post-command delay to tests 513 and 514 - - addressing http://curl.haxx.se/mail/lib-2009-12/0031.html - -Daniel Stenberg (26 Apr 2010) -- [Kalle Vahlman brought this change] - - Allow tools to be defined with full path in buildconf - - This is required in Scratchbox where - LIBTOOL=/targets/links/arch_tools/bin/libtool - is set in the environment. - -- progress callback: can be called more than once per sec - -- SSH: init and cleanup libssh2 in global_init/cleanup - - The necessary libssh2 functions require libssh2 1.2.5 or later. - -- new configure option --enable-threaded-resolver - -- configure: check for libssh2_init and libssh2_exit - -Kamil Dudka (24 Apr 2010) -- nss: fix SSL handshake timeout underflow - -Guenter Knauf (24 Apr 2010) -- encourage users to take latest lib dependencies. - -Daniel Stenberg (24 Apr 2010) -- socks5: please static code analyzer - - Make sure we don't call memcpy() if the argument is NULL even - though we also passed a zero length then, as the clang analyzer - whined and we want to limit warnings (even false positives) when - they're this easy to fix. - - The change of (char) to (unsigned char) will fix long user names - and passwords on systems that have the char type signed by - default. - -- gzip: Value stored to 'data' is never read - -- RELEASE-NOTES: update top numbers - -- changelog: added the --proto and -proto-redir options - -- [Alex Bligh brought this change] - - curl: added --proto and --proto-redir - - --proto tells curl to use the listed protocols for its initial - retrieval - - --proto-redir tells curl to use the listed protocols after a - redirect - -Kamil Dudka (24 Apr 2010) -- test536: do not fail with threaded DNS resolver - - Also tweaked comments in certain examples using curl_multi_fdset(). - -Daniel Stenberg (21 Apr 2010) -- curl: -O crash on windows - - The -O option caused curl to crash on windows and DOS due to the - tool writing out of boundary memory. - -Yang Tse (20 Apr 2010) -- hmac.c related compilation adjustment - -- hmac.c related compilation adjustment - -monnerat (20 Apr 2010) -- Add compilation directives for hmac in Watcom,riscos and vc6 platform-specific makefiles. - -Yang Tse (20 Apr 2010) -- [Ruslan Gazizov brought this change] - - replaced wsock32.lib usage with ws2_32.lib in MSVC makefiles - -monnerat (19 Apr 2010) -- Merge branch 'master' of github.com:bagder/curl - -- Remove null-effect leftover code. - -Daniel Stenberg (19 Apr 2010) -- changelog: -J/--remote-header-name strips CRLF - -- parse_filename: strip trailing CRs and LFs - - The feature that uses the file name given in a - Content-disposition: header didn't properly skip trailing - carriage returns and linefeed characters from the end of the file - name when it was given without quotes. - -- Curl_HMAC_MD5: fix the array init to not warn with picky compilers - -monnerat (19 Apr 2010) -- Fix GnuTLS compilation problem in md5.c - -- Fix compilation problem: declare Curl_HMAC_MD5 as extern in include file. - -- Merge branch 'master' of github.com:bagder/curl - -- Implement SMTP authentication - -Daniel Stenberg (17 Apr 2010) -- parseconfig: Value stored to 'line' is never read - - Make the function call with (void) as we don't care about the - return code. - -- parsedate: Value stored to 'found' is never read - -- check_gzip_header: Value stored to 'data' is never read - -- dprintf_formatf: Value stored to 'left' is never read - -- curl_version: remove superfluous assignments - -- FTP PORT: Value stored to 'rc' is never read - -- Curl_setup_transfer: no longer returns anything - - This function could only return CURLE_OK and by changing it to - a void instead, we can simplify code all over. - -- PASV response: Value stored to 'rc' is never read - -- Curl_perform: Value stored to 'res2' is never read - -- sftp range: remove unnecessary check for NULL pointer - -- ftp_range: remove unnecessary check for NULL pointer - -- file_range: remove unnecessary check for NULL pointer - -- SOCKS4: Value stored to 'rc' is never read - -- FTP PASV: Value stored to 'rc' is never read - -- ftp_range: Value stored to 'totalsize' is never read - - Simplified the code by removing a local variable completely. - -- SOCKS5: when name resolves fail return immediately - - This makes the code flow more obvious and reacts on the return - code properly, even if the code acted the same way before. - -- POP3: when USER command fails, don't even try PASS - -- tftp_rx: Value stored to 'sbytes' is never read - -- file_range: Value stored to 'totalsize' is never read - -- changelog: GnuTLS: SSL handshake phase is non-blocking - -- [Jerome Vouillon brought this change] - - GnuTLS: make the connection phase non-blocking - - When multi interface is used, the SSL handshake is no longer - blocking when GnuTLS is used. - -- krb5_auth: fix my previous change to compile - -unknown (16 Apr 2010) -- OS400 version V5R2M0 not supported anymore by IBM: default target release changed to V5R3M0. - -Daniel Stenberg (16 Apr 2010) -- changelog: GnuTLS fix, no reverse loopkups and fixed GSS detection - -- SSL_RECV: EOF is not an error here - - The recent overhaul of the SSL recv function made this treat a - zero returned from gnutls_record_recv() as an error, and this - caused our HTTPS test cases to fail. We leave it to upper layer - code to detect if an EOF is a problem or not. - -- [Paul Howarth brought this change] - - configure: GSSAPI detection on ancient Linux distros - - On some ancient distributions such as RHEL-3, needs - to be processed after , but does not include it itself. - This patch checks for first and then includes it - in the test for , resolving the problem. - - Without the patch, is "present but cannot be - compiled". - -- resolvers: no more using AI_CANONNAME - - No resolver anymore needs to use AI_CANONNAME and do reverse - lookups. We should work hard to avoid having code that relies on - it. - -- KRB5: use given host name instead of reverse lookup'ed name - - This code would previously use dns_entry->addr->ai_canonname - instead of the given host name, which caused us grief and - problems since not all our resolver options do the reverse lookup - and I would also guess that it caused problems with KRB5/GSS with - virtual name-based hosts. Now the host name from the URL is used. - -Dan Fandrich (15 Apr 2010) -- Remove redundant conditional - -- Eliminated an unlikely race condition in some tests. - - Based on a patch from the FreeBSD ports by Peter Pentchev. - -Daniel Stenberg (15 Apr 2010) -- changelog: prevent needless reverse name lookups - -- Curl_ipv4_resolve_r: only set AI_CANONNAME when needed - - As reported in bug report #2987196, the code for ipv6 already did - the setting of this bit correctly so we copied that logic into - the Curl_ipv4_resolve_r() function as well. KRB code is the only - code we know that might need the cannonical name so only resolve - it for such requests! - -- IGNORE: files generated by maketgz - -- bumped to start the journey towards 7.20.2 - -- added contributors from the 7.20.1 RELEASE-NOTES - -- ignore files generated by 'maketgz' - -Version 7.20.1 (14 Apr 2010) - -Daniel Stenberg (14 Apr 2010) -- 7.20.1: 14 April 2010 - -Guenter Knauf (13 Apr 2010) -- Use correct directory for c-ares git pull - Signed-off-by: Tor Arntsen - -Yang Tse (13 Apr 2010) -- fix compiler warning: variable might be clobbered by longjmp or vfork - -Guenter Knauf (13 Apr 2010) -- added last git commit output for c-ares too. - -- changed the git update block to take care of c-ares repo if detected. - -- updated timestamp of the script. - -- removed obsolete var in gitpull() function - no need to create a var - lets just return the status var itself. - -- added a cast to silent compiler warning with 64bit systems. - -- fixed a path typo in src/Makefile.netware. - -Daniel Stenberg (12 Apr 2010) -- Added text for How To Make a Patch with git - -- update the section on timeouts - - The section that describes how to work with timeouts was - misleading and could easily trick users to use the wrong API. - -- update URL and cut out wrong info on ipv6 - - c-ares has had its own URL for a while and we should point - people to that. It also works with IPv6 since a long time. - -- refer to CURLMOPT_TIMERFUNCTION for multi_socket users - - curl_multi_timeout(3) is simply the wrong function to use - if you're using the multi_socket API and this document now - states this pretty clearly to help guiding users. - -- s/CVS/git - -- modified to use the git file, not cvs - - I've done this blindly, and the last piece that works with ares - should possibly be done differently now that c-ares isn't a - subtree within the curl tree anymore... - -- mention missing test servers for - -- FTP quote commands prefixed with '*' now can fail without aborting - - Prefixing the FTP quote commands with an asterisk really only - worked for the postquote actions. This is now fixed and test case - 227 has been extended to verify. - -Kamil Dudka (7 Apr 2010) -- qssl: reflect recent code changes in SSL interface - - Reported by Guenter Knauf. - -- nss: handle client certificate related errors - -- [Ben Greear brought this change] - - ssl: Fix build when SSL isn't enabled - - Signed-off-by: Ben Greear - -- refactorize interface of Curl_ssl_recv/Curl_ssl_send - -- simplify code of Curl_resolv_timeout() - -- eliminate a race condition in Curl_resolv_timeout() - -Daniel Stenberg (2 Apr 2010) -- [Ben Greear brought this change] - - fixed compiler warnings - -- updated contributor count - -- add contributors from the 7.20.0 release notes - -- fix SFTP download hang - - Matt Wixson found and fixed a bug in the SCP/SFTP area where the - code treated a 0 return code from libssh2 to be the same as - EAGAIN while in reality it isn't. The problem caused a hang in - SFTP transfers from a MessageWay server. - -Dan Fandrich (31 Mar 2010) -- Fixed misleading test message - -Daniel Stenberg (31 Mar 2010) -- update the generic copyright year range - -- removed README.cmake due to the improved situation - -Guenter Knauf (31 Mar 2010) -- fix compiler warning with a cast. - -- make folks use latest available dependent libraries. - -Dan Fandrich (30 Mar 2010) -- Call curl_global_cleanup() in test 560 to avoid a memory leak - -- Allow test 538 to run even when proxy support is disabled - -Daniel Stenberg (29 Mar 2010) -- use (s)size_t for string lengths to fix compiler warns - -- use size_t to hold string length - - using int is not fine on 64bit systems - -- [Ben Greear brought this change] - - Fix compile warnings in ssh.c - - strlen() returns size_t, but ssh libraries are wanting 'unsigned int'. Add - explicit casts and use _ex versions of the ssh library calls. - - Signed-off-by: Ben Greear - -- [Ben Greear brought this change] - - fix smtp compile warning - - Use ssize_t instead of int for the Curl_smtp_escape_eob nread - argument. - - Signed-off-by: Ben Greear - -- Ben's POP3 change - -- [Ben Greear brought this change] - - pop3: Get message listing if no mailbox in URL - - If you pass a URL to pop3 that does not contain a message ID as - part of the URL, it will currently ask for 'INBOX' which just - causes the pop3 server to return an error. - - The change makes libcurl treat en empty message ID as a request - for LIST (list of pop3 message IDs). User's code could then - parse this and download individual messages as desired. - -- [Ben Greear brought this change] - - Allow running ./tests/testcurl.pl from within git repo. - - My first instinct was to run the test script within the checked out - repository. This small change to the script allows that to work as - expected. - - Signed-off-by: Ben Greear - -- minor language fix - -- [Ben Greear brought this change] - - allow user+password in the URL for all protocols - - Ben Greear brought a patch that from now on allows all protocols - to specify name and user within the URL, in the same manner HTTP - and FTP have been allowed to in the past - although far from all - of the libcurl supported protocols actually have that feature in - their URL definition spec. - -- ignore pid files and stunnel.conf - - all used while running tests - -- make sure git pull is actually done! - -- changelogged: smoother rate limiting - -- [Ben Greear brought this change] - - Make rate-limitation logic smoother - - This gives a smoother rate limitation performance by using - sub-second pauses and also taking the buffer sizes into - account. - -- remove all .cvsignore files - -- PROT_CLOSEACTION should not include TFTP - - TFTP is not a protocol that uses close actions so it should - not be set in that bitmask! - -- [Tor Arntsen brought this change] - - Avoid double newline for the 'last commits' log in testcurl.pl - - The backtick command which extracts 'git log' lines come with a - newline, so chomp the newline before calling logit(), as the logit - function adds a newline by itself. - -- [Tor Arntsen brought this change] - - Change to version-independent git option for 'git log --oneline' - - 'git log --oneline' is a relatively recent Git function. It is - documented to be the same as 'git log --pretty=oneline --abbrev-commit', - so use that instead. It works all the way back to Git 1.5.0. - -- show 5 commits even if no git pull was made - -- don't touch ares/aclocal.m4 and show recent git commits - - since c-ares no longer embedded, we must not touch such files - anymore - - we show the 5 last git commits if git was proven in use, to help - us see exactly what's being tested - -- use CURL_SIZEOF_LONG instead of SIZEOF_LONG - - That's the symbol we have or generate in include/curl/curlbuild.h - -- s/CVS/DEV in the version string from the git repo - -Bill Hoffman (24 Mar 2010) -- Merge branch 'master' of github.com:bagder/curl - -- Add .gitattributes files to turn off CRLF translation for some files - -Daniel Stenberg (24 Mar 2010) -- provide a version number as today's date - - It should at least help visualize which autobuilds that are - using this script. - -- testcurl now uses git instead of CVS - -Bill Hoffman (24 Mar 2010) -- Merge branch 'master' of github.com:bagder/curl - -- Enable LDAP by default since it is now disabled when ldap.h is not found, - -- CMake fixes for Linux. - - Make sure is included if around when testing/using - socklen_t. Also, disable LDAP if LDAP_H is not found on the system. - -Daniel Stenberg (24 Mar 2010) -- [Bob Richmond brought this change] - - fix: timeout after last data chunk was handled - - Bob Richmond: There's an annoying situation where libcurl will - read new HTTP response data from a socket, then check if it's a - timeout if one is set. If the last packet received constitutes - the end of the response body, libcurl still treats it as a - timeout condition and reports a message like: - - "Operation timed out after 3000 milliseconds with 876 out of 876 - bytes received" - - It should only a timeout if the timer lapsed and we DIDN'T - receive the end of the response body yet. - -- avoid compiler warning without USE_ALARM_TIMEOUT - -Bill Hoffman (24 Mar 2010) -- Fix curl CMake build. - - This commit fixes the cmake build of curl, and cleans up the - cmake code a little. It removes some commented out code and - some trailing whitespace. To get curl to build the binary - tree include/curl directory needed to be added to the include - path. Also, SIZEOF_SHORT needed to be added. A check for the - lack of defines of SIZEOF_* for warnless.c was added. - -Daniel Stenberg (24 Mar 2010) -- [Chris Conroy brought this change] - - remove debug printfs - -- RTSP GET_PARAMETER fix - - Christopher Conroy fixed a problem with RTSP and GET_PARAMETER - reported to us by Massimo Callegari. There's a new test case 572 - that verifies this now. - -- remove trace of CVS - -- [Chris Conroy brought this change] - - Fix RTSP GET_PARAMETER empty and non-empty operation. - - Test coverage included. Thanks to Massimo Callegari for the bug report - -- s/CVS/DEV/ in the version string for repo versions - -- scrapped all left-over TODOs - - In order to get back on track, I've removed all the plans for - stuff I had in the queue. I will instead focus on fixing bugs and - relying on that people who truly want things added will come back - on the mailing list and nag and provide patches. - - 7.20.1 should be possible to release in April 2010 - -- restore executable bits on some files - -- remove the CVSish $Id$ lines - -- The 'ares' subtree has been removed from the source repository - -- s/CVS/git - -- update to current state - -- remove the ares subtree - - c-ares is now hosted entirely separate from the curl project - see http://c-ares.haxx.se/ for all details concerning c-ares, - its source repository and more. - -- mark connection as connected - - Kenny To filed the bug report #2963679 with patch to fix a - problem he experienced with doing multi interface HTTP POST over - a proxy using PROXYTUNNEL. He found a case where it would connect - fine but bits.tcpconnect was not set correct so libcurl didn't - work properly. - - (http://curl.haxx.se/bug/view.cgi?id=2963679) - -- enabled valgrind - - I ran it now successfully and it helped to pinpoint a libssh2 - memory leak! - -Dan Fandrich (23 Mar 2010) -- Updated Symbian notes - -Daniel Stenberg (23 Mar 2010) -- chunked-encoding with Content-Length: header problem - - Akos Pasztory filed debian bug report #572276 - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572276 - mentioning a problem with a resource that returns chunked-encoded - _and_ with a Content-Length and libcurl failed to properly ignore - the latter information. - -- delayed easy handle kill caused double Curl_close() call - - Hauke Duden provided an example program that made the multi - interface crash. His example simply used the multi interface and - did first one FTP transfer and after completion it used a second - easy handle and did another FTP transfer on the same FTP server. - - This triggered a bug in the "delayed easy handle kill" system - that curl uses: when an FTP connection is left alive it must keep - an easy handle around internally - only for the purpose of having - an easy handle when it later disconnects it. The code assumed - that when the easy handle was removed and an internal reference - was made, that version could be killed later on when a new easy - handle came using the same connection. This was wrong as Hauke's - example showed that the removed handle wasn't killed for real - until later. This caused a double close attempt => segfault. - -- ignore more files generated when tests run in the source tree - -- Thomas Lopatic fixed the alarm()-based DNS timeout - -- [Thomas Lopatic brought this change] - - fix the alarm()-based DNS timeout - - Looking at the code of Curl_resolv_timeout() in hostip.c, I think - that in case of a timeout, the signal handler for SIGALRM never - gets removed. I think that in my case it gets executed at some - point later on when execution has long left Curl_resolv_timeout() - or even the cURL library. - - The code that is jumped to with siglongjmp() simply sets the - error message to "name lookup timed out" and then returns with - CURLRESOLV_ERROR. I guess that instead of simply returning - without cleaning up, the code should have a goto that jumps to - the spot right after the call to Curl_resolv(). - -- [Daniel Johnson brought this change] - - Fix warnings for clang - -- Merge branch 'master' of github.com:bagder/curl - -Kamil Dudka (22 Mar 2010) -- [douglas steinwand brought this change] - - Fix insufficient initialization in Curl_clone_ssl_config() - - which could have caused a double free when reusing curl handle. - -Daniel Stenberg (22 Mar 2010) -- we never used this file anyway - -- s/CVS/git - -- various changes of CVS to git - -- remove references to CVS in the code and use DEV instead - -- Ben Greear's two fixes explained - -- [Ben Greear brought this change] - - Fix tftp return codes and tsize upload handling - - Error codes were not properly returned to the main curl code (and on to apps - using libcurl). - - tftp was crapping out when tsize == 0 on upload, but I see no reason to fail - to upload just because the remote file is zero-length. Ignore tsize option on - upload. - -- more files to ignore - -- provide an initial set of .gitignore files - -Kamil Dudka (19 Mar 2010) -- - Improved Curl_read() to not ignore the error returned from Curl_ssl_recv(). - -Daniel Stenberg (18 Mar 2010) -- fix warning about conversions between curl_off_t and long - -Yang Tse (18 Mar 2010) -- another shot at the ftp_init() icc 9.1 optimizer issue - -- replaced intel compiler option -no-ansi-alias with -fno-strict-aliasing - -- update outdated serial number - -Dan Fandrich (16 Mar 2010) -- Factored out some code into a few independent functions - -Daniel Stenberg (15 Mar 2010) -- - Constantine Sapuntzakis brought a patch: - - The problem mentioned on Dec 10 2009 - (http://curl.haxx.se/bug/view.cgi?id=2905220) was only partially fixed. - Partially because an easy handle can be associated with many connections in - the cache (e.g. if there is a redirect during the lifetime of the easy - handle). The previous patch only cleaned up the first one. The new fix now - removes the easy handle from all connections, not just the first one. - -Yang Tse (11 Mar 2010) -- fix compiler warning - -Dan Fandrich (11 Mar 2010) -- SSL should now be working out-of-the-box on Symbian S60. - -- Enable Symbian zlib support by default. - -- Allow compilation even when OpenSSL has been configured without MD4 support. - -- A few Symbian build changes - -Yang Tse (9 Mar 2010) -- watt32 compilation fix - -Daniel Stenberg (6 Mar 2010) -- - Ben Greear brought a patch that fixed the rate limiting logic for TFTP when - the easy interface was used. - -- indent fix by Ben Greear, I removed some braces for single-line conditional - expressions - -Yang Tse (6 Mar 2010) -- Added another VS10 version string - -- fix line break - -- removed usage of 's6_addr', fixing compilation issue triggered with no - longer using 'in6_addr' but only our 'ares_in6_addr' struct - -Daniel Stenberg (5 Mar 2010) -- Daniel Johnson provided fixes for building with the clang compiler - -Yang Tse (5 Mar 2010) -- Added IPv6 name servers support - -Gisle Vanem (5 Mar 2010) -- Ops!. Readded ares_nowarn.h. - -- Added ares_nowarn.c. - -Yang Tse (5 Mar 2010) -- Constantine Sapuntzakis detected and fixed a double free in builds done - with threaded resolver enabled (Windows default configuration) that would - get triggered when a curl handle is closed while doing DNS resolution. - -- Added SIZEOF_INT and SIZEOF_SHORT definitions for VMS configuration file - -Daniel Stenberg (4 Mar 2010) -- Julien Chaffraix clarified CURLOPT_HEADERFUNCTION and made - CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION more consistent - -- - [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and - ran into some issues with the GSSAPI tests in configure.ac. The tests first - try to determine the include dirs and libs and set CPPFLAGS and LIBS - accordingly. It then checks for the headers and finally sets LIBS a second - time, causing the libs to be included twice. The first setting of LIBS seems - redundant and should be left out, since the first part is otherwise just - about finding headers. - - My second issue is that 'krb5-config --libs gssapi' on Darwin is less than - useless and returns junk that, while it happens to work with gcc, causes - clang to choke. For example, --libs returns $CFLAGS along with the libs, - which is really retarded. Simply setting 'LIBS="$LIBS -lgssapi_krb5 - -lresolv"' on Darwin is sufficient. - -- - Based on patch provided by Jacob Moshenko, the transfer logic now properly - makes sure that when using sub-second timeouts, there's no final bad 1000ms - wait. Previously, a sub-second timeout would often make the elapsed time end - up the time rounded up to the nearest second (e.g. 1s for 200ms timeout) - -- update the generic copyright year range to include 2010 - -- - Andrei Benea filed bug report #2956698 and pointed out that the - CURLOPT_CERTINFO feature leaked memory due to a missing OpenSSL function - call. He provided the patch to fix it too. - - http://curl.haxx.se/bug/view.cgi?id=2956698 - -- - Markus Duft pointed out in bug #2961796 that even though Interix has a - poll() function it doesn't quite work the way we want it so we must disable - it, and he also provided a patch for it. - - http://curl.haxx.se/bug/view.cgi?id=2961796 - -- - Made the pingpong timeout code properly deal with the response timeout AND - the global timeout if set. Also, as was reported in the bug report #2956437 - by Ryan Chan, the time stamp to use as basis for the per command timeout was - not set properly in the DONE phase for FTP (and not for SMTP) so I fixed - that just now. This was a regression compared to 7.19.7 due to the - conversion of FTP code over to the generic pingpong concepts. - - http://curl.haxx.se/bug/view.cgi?id=2956437 - -- remove assignment never used - -- - Ben Greear provided an update for TFTP that fixes upload. - -- SSL, not SSH, SSL - -- - Wesley Miaw reported bug #2958179 which identified a case of looping during - OpenSSL based SSL handshaking even though the multi interface was used and - there was no good reason for it. - - http://curl.haxx.se/bug/view.cgi?id=2958179 - -Yang Tse (28 Feb 2010) -- Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems - -- Added ares_nowarn.* to VC6 project file - -Daniel Stenberg (26 Feb 2010) -- spellchecked by Stéphane Fillod - -- - Pat Ray in bug #2958474 pointed out an off-by-one case when receiving a - chunked-encoding trailer. - - http://curl.haxx.se/bug/view.cgi?id=2958474 - -Dan Fandrich (26 Feb 2010) -- Fixed a couple of out of memory leaks and a segfault in the IMAP code. - -Yang Tse (26 Feb 2010) -- fix sizeof short - -- Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems - -- Added SIZEOF_INT definition - -- fix compiler warning - -- fix compiler warning - -- fix compiler warning - -Dan Fandrich (25 Feb 2010) -- Fixed a couple of out of memory leaks and a segfault in the SMTP code. - -Yang Tse (25 Feb 2010) -- fix file name - -- Fixed bug report #2958074 indicating - (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with - option --trace-time did not use local time when timestamping trace lines. - This could also happen on other systems depending on time souurce. - -- enable 802 and 803 - -- fix compiler warning - -- fix compiler warning - -- fix compiler warning - -- fix socket data type - -- fix socket data type and logging format in debug tracking socket functions - -- convert Curl_ultous() and Curl_ultouc() functions to curlx_ultous() and - curlx_ultouc(), exposing them through curlx.h to allow proper code reuse - later in our test harness. - -- updated sources - -Patrick Monnerat (22 Feb 2010) -- _ Adjusted RFC821 HELO fallback and enabled test804 - -- - Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account. - - SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required). - - Use of true local host name (i.e.: via gethostname()) when available, as default argument to SMTP HELO/EHLO. - - Test case 804 for HELO fallback. - -Yang Tse (22 Feb 2010) -- add header inclusion - -- fix compiler warning - -- fix compiler warning - -Daniel Stenberg (21 Feb 2010) -- clarify more details on section "2.1 More non-blocking" - -- TFTP transfers are not blocking since 7.20.0 - -- - Fixed the SMTP compliance by making sure RCPT TO addresses are specified - properly in angle brackets. Recipients provided with CURLOPT_MAIL_RCPT now - get angle bracket wrapping automatically by libcurl unless the recipient - starts with an angle bracket as then the app is assumed to deal with that - properly on its own. - -- - I made the SMTP code expect a 250 response back from the server after the - full DATA has been sent, and I modified the test SMTP server to also send - that response. As usual, the DONE operation that is made after a completed - transfer is still not doable in a non-blocking way so this waiting for 250 - is unfortunately made blockingly. - -- corected a comment and wrapped a few longish lines - -Yang Tse (20 Feb 2010) -- fix compiler warning - -- fix compiler warning - -- fix compiler warning - -- fix compiler warning - -- fix compiler warning - -Daniel Stenberg (17 Feb 2010) -- ares_reinit() - - - To allow an app to force a re-read of /etc/resolv.conf etc, pretty much - like the res_init() resolver function offers - -- use curl standard indentation and line lengths - -Yang Tse (16 Feb 2010) -- replaced tabs with spaces - -- fix Content-Length validation - -Daniel Stenberg (15 Feb 2010) -- use (void) in front of fwrite() calls that ignore the return code - -Yang Tse (15 Feb 2010) -- fix compiler warning: conversion from "long" to "size_t" may lose sign - -- fix compiler warning: conversion from "long" to "size_t" may lose sign - -Daniel Stenberg (15 Feb 2010) -- -w speed_download and speed_upload are measured in bytes per second - -- 75. NTLM authentication involving unicode user name or password. - http://curl.haxx.se/mail/lib-2009-10/0024.html - http://curl.haxx.se/bug/view.cgi?id=2944325 - -Yang Tse (14 Feb 2010) -- removed trailing whitespace - -- fix compiler warning - -- Overhauled test suite getpart() function. Fixing potential out of bounds - stack and memory overwrites triggered with huge test case definitions. - -Daniel Stenberg (13 Feb 2010) -- - Martin Hager reported and fixed a problem with a missing quote in libcurl.m4 - - (http://curl.haxx.se/bug/view.cgi?id=2951319) - -Gunter Knauf (13 Feb 2010) -- used allways #ifdef / #ifndef; - moved gethostbyname_thread() to #else case to avoid 'not used' compiler warning. - -- replaced tabs by spaces, removed trailing tabs/spaces. - -Daniel Stenberg (13 Feb 2010) -- - Tom Donovan fixed the CURL_FORMAT_* defines when building with cmake. - -- - Jack Zhang reported a problem with SMTP: we wrongly used multiple addresses - in the same RCPT TO line, when they should be sent in separate single - commands. I updated test case 802 to verify this. - - - I also fixed a bad use of my_setopt_str() of CURLOPT_MAIL_RCPT in the curl - tool which made it try to output it as string for the --libcurl feature - which could lead to crashes. - -- CURLOPT_MAIL_RCPT is *not* a string so we must not try to printf() it - -- free --mail-from strings properly - -Patrick Monnerat (11 Feb 2010) -- _ Make it compilable again on OS400. - _ Upgrade OS400 EBCDIC wrappers for new options. - _ Upgrade ILE/RPG bindings to current state. - -Yang Tse (11 Feb 2010) -- mention last changes - -- Steven M. Schweda updated VMS readme file - -- Steven M. Schweda removed batch_compile.com and defines.com - -- Steven M. Schweda fixed: - - VMS builder bad behavior when used in a batch job. - - Various ".LIS" and ".MAP" files created without being requested - by a "LIST" command-line option, and in the wrong place, too. - - Some minor typographical changes. - -Dan Fandrich (10 Feb 2010) -- Mention the minimum size of CURL_MAX_WRITE_SIZE - -Yang Tse (10 Feb 2010) -- - remove extra "\r\n" from doc404_RTSP - - - avoid memory alignment issue when setting RTSP packet length - -Dan Fandrich (9 Feb 2010) -- Removed some erroneous "compressed" key words - -Daniel Stenberg (9 Feb 2010) -- start working on 7.20.1 - -Version 7.20.0 (9 Feb 2010) - -Daniel Stenberg (9 Feb 2010) -- spell and 7.20.0 - -- - When downloading compressed content over HTTP and the app as asked libcurl - to automatically uncompress it with the CURLOPT_ENCODING option, libcurl - could wrongly provide the callback with more data than what the maximum - documented amount. An application could thus get tricked into badness if the - maximum limit was trusted to be enforced by libcurl itself (as it is - documented). - - This is further detailed and explained in the libcurl security advisory - 20100209 at - - http://curl.haxx.se/docs/adv_20100209.html - -- set VERSIONINFO accordingly for the 7.20.0 release - -Yang Tse (6 Feb 2010) -- warning fix - -- OOM handling fix - -- OOM handling fix - -- fix compiler warning - -- fix compiler warning - -- fix compiler warning - -- Addes OOM handling for curl_easy_setopt() calls in test - -- - avoid OpenSSL 0.9.8 ENGINE_by_id memory leak - - - cleanup parenthesis usage in return statements - -- - attempt to workaround icc 9.1 optimizer issue - -- fix printf-style format strings - -- Validate server port argument - -- Fix variable initialization - -- Modified test case 557 to additionally verify libcurl's internal curl_m*printf() - functions formatting functionality when handling signed and unsigned shorts. - -- Added size check for 'short' data type - -- Fix compiler warning: unused variable - -- added an additional second to allow test to pass on heavily loaded servers - -Dan Fandrich (3 Feb 2010) -- Changed the Watcom makefiles to make them easier to keep in sync with - Makefile.inc since that can't be included directly. - -Daniel Stenberg (3 Feb 2010) -- more symbols added in 7.20.0 - -Yang Tse (3 Feb 2010) -- Fix OOM handling - -- Fix progressmode Configurable struct member data type. Changed to - 'int' which fits better with existing CURL_PROGRESS_* definitions. - -- Fix portability issue related with unaligned memory access - -- Fix compiler warnings: conversion from 'const int ' to 'unsigned char ', possible loss of data - -- cookies with same path length might get sorted in different order when - using different qsort implementations. In order to make this test give - same results on different systems, paths now have different lengths. - -- added an additional second to allow test to pass on heavily loaded servers - -- Fix compiler warning: conditional expression is constant - -- Fix compiler warning: local variable may be used without having been initialized. - -- Fix compiler warnings: conversion from 'const int ' to 'unsigned char ', possible loss of data - -- Fix compiler warnings: - - (1) conversion from 'const int ' to 'unsigned char ', possible loss of data - (2) conditional expression is constant - -- mention a couple of changes back from November - -- mention run time statistics options - -- - Symbol CURL_FORMAT_OFF_T now obsoleted, will be removed in a future release, - symbol will not be available when building with CURL_NO_OLDIES defined. Use - of CURL_FORMAT_CURL_OFF_T is preferred since 7.19.0 - -- avoid possibility of using obsoleted stuff - -- remove setup.h inclusion which is already done from test.h inclusion - -Kamil Dudka (2 Feb 2010) -- mention SOCKS related problems in the curl(1) man page - -Yang Tse (2 Feb 2010) -- Fix compiler warning: variable was set but never used - - Simplify preprocessor symbol checking - -Daniel Stenberg (2 Feb 2010) -- Julien Chaffraix pointed out a comment mistake, and I re-indented the code - slightly while editing - -Yang Tse (2 Feb 2010) -- include headers - -- Conroy added a check to the coded message size since the docs stipulate - that each call will contain a full protocol packet. - -- Conroy's fix to make the code match with the RTP documentation regarding - writing out the whole header. The docs say it writes the whole header, - but the code (before this patch) did not write out the leading $. - -Daniel Stenberg (1 Feb 2010) -- We introduce a loop in lib/multi.c around all calls to multi_runsingle() and - simply check for CURLM_CALL_MULTI_PERFORM internally. This has the added - benefit that this goes in line with my long-term wishes to get rid of the - CURLM_CALL_MULTI_PERFORM all together from the public API. - -Yang Tse (1 Feb 2010) -- update rtsp server header field from SWS to RTSPD - -- Test suite support for RTSP - -- Make Curl_pop3_write() additionally truncate trailing POP3_EOB from received - string buffer, otherwise Curl_client_write() call with zero size would write - to the end of string buffer including matched POP3_EOB. - -- WIN32 fix, _beginthreadex() may return either 0 or -1L upon failure - -- fix errno usage for WIN32 builds - -- fix printf-style format strings - -- Chris Conroy fixed test #568 issues with carriage returns - -- RTSP followup fix. Both the pipelined and non-pipelined case need to - check for (excess > 0 && !k->ignorebody). - -Daniel Stenberg (28 Jan 2010) -- - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't - check for broken connections like ares_process() did. Based on that, I - merged the two functions into a single generic one with two front-ends. - -Yang Tse (28 Jan 2010) -- fix printf-style format strings - -- Use 'size_t' for GETNAMEINFO_TYPE_ARG2 definition for VMS. - - http://curl.haxx.se/mail/lib-2009-12/0293.html - -- portability fix - -- fix printf-style format strings - -- Known bug #64 fixed by Constantine Sapuntzakis and Joshua Kwan in 7.20.0 - -- Chris Conroy provided first RTSP tests - -- RTSP tests disabled until test harness RTSP support is updated - -- Chris Conroy's RTSP followup fixes - -- mention asynchronous DNS lookups enhancements - -- Restore normal operation: - - c-ares is only enabled when specifically requested. - - Consequently, c-ares default setting is disabled. - -- fix c-ares assumed check being skipped - -- fix compiler warning - -- fix LDFLAGS preservation in CURL_CHECK_LIB_ARES - -Daniel Stenberg (26 Jan 2010) -- no need to take precautiono for how things were before 7.16.0 since that - is now a very long time ago - -- - Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the - proxy that cannot be resolved when using c-ares. This matches the behaviour - when not using c-ares. - -Dan Fandrich (26 Jan 2010) -- Added curl_threads.c to a few more non-configure build files - -Yang Tse (26 Jan 2010) -- minor fixes for --enable-ares configure option - -Daniel Stenberg (26 Jan 2010) -- Andre Guibert de Bruet improved the libssh2 error code translation - -Yang Tse (26 Jan 2010) -- resolver selection for non-configure Windows builds, default is threaded DNS - -- add curl_threads.c to non-configure target build files - -- onstantine Sapuntzakis threaded resolver enhancements - -- Constantine Sapuntzakis threaded resolver enhancements - -- Constantine Sapuntzakis provided initial thread abstraction layer - -- make Curl_handler_*_proxy definition static - -Dan Fandrich (25 Jan 2010) -- Updated minimum library sizes - -Yang Tse (25 Jan 2010) -- fix compiler warning - -Daniel Stenberg (24 Jan 2010) -- Julien Chaffraix corrected bad #elif lines to silence warnings - -Yang Tse (24 Jan 2010) -- HAVE_GETADDRINFO_THREADSAFE definition for non-configure win32 builds - -Bjorn Stenberg (23 Jan 2010) -- Mention -J change - -- Added -J/--remote-header-name. - -Daniel Stenberg (23 Jan 2010) -- "remove progress meter from libcurl" at next API break - -Yang Tse (23 Jan 2010) -- add inclusion of curl_memory.h - -- adjust preprocessor symbol definition check relative to resolver specialty - -- PKTSIZE might have been already defined in arpa/tftp.h - -Dan Fandrich (23 Jan 2010) -- Include "curl_memory.h" to get the strdup replacement when necessary - -Daniel Stenberg (22 Jan 2010) -- wrap long lines and do some indent policing - -Yang Tse (22 Jan 2010) -- Definitions of resolver specialty compile-time defines CURLRES_* moved - from hostip.h to setup.h in order to allow proper inclusion in any file. - - This represents no functional change at all in which resolver is used, - everything still works as usual, internally and externally there is no - difference in behavior. - -- adjust rtsp protocol support in curl-config and libcurl.pc when http is disabled - -- deal with the possibility that CURL_DISABLE_RTSP may already be defined - -- fix compiler warning: statement is unreachable - -- fix compilation when http is disabled - -- disabling of rtsp when http isn't enabled required here for non-configure systems - -Daniel Stenberg (22 Jan 2010) -- wrap long lines, remove (very old) attribution from code - -- cleanups by Julien Chaffraix - -- alphabetically sort the list of supported protocols - -- In spite claiming to tbe disabled by default, RTSP is enabled and it now - also says so. I also made the list of protocols get sorted. - -- expanded to provide info about the newer protocols too - -- s/RTPFUNCTION/INTERLEAVEFUNCTION/ - s/RTPDATA/INTERLEAVEDATA/ - -- keep lines shorter than 80 columns, and reduce/remove the use of the word - 'note' in most description as it is mostly useless. - -Yang Tse (22 Jan 2010) -- Julien Chaffraix adjusted " section" line length - -- Constantine Sapuntzakis refactoring of async callbacks, allowing - removal of Curl_addrinfo_copy(), Curl_addrinfo6_callback(), and - Curl_addrinfo4_callback() - -Dan Fandrich (21 Jan 2010) -- Added rtsp.c to the non-configure target build files - -Yang Tse (21 Jan 2010) -- fix compiler warning - -- make tftp_translate_code() static, it is only used from within tftp.c - -- fix warning triggered when debugging on cygwin - -- allow exporting of exe_ext() sub - -- improve displaylogcontent() sub fixing a warning - -Daniel Stenberg (21 Jan 2010) -- remove typedef we ended up not using - -- Chris Conroy brought support for RTSP transfers, and with it comes 8(!) new - libcurl options for controlling what to get and how to receive posssibly - interleaved RTP data. Initial commit. - -- Julien Chaffraix fixed line lengths - -- Julien Chaffraix removed an old obsolete typedef - -- Yun Fu pointed out a flaw in the loop that checks handles, and I indented - the code more curl-style - -- "5.3 Sort outgoing cookies" removed, we now sort them - -Yang Tse (20 Jan 2010) -- SIGTERM is the signal to trap here, SIGKILL can't be caught. - -- Use killsockfilters() to kill sockfilter processes, this ensures that when - killing a sockfilter process the actual PID from the pid file is used and - not the one returned by open2() which might be different. - -- Allow killsockfilters() to take a 5th optional parameter that when provided - indicates that only one of the two possible sockfilter processes should be - killed. Valid values for this parameter are 'main' and 'data'. - -- Use delete() to unset environment variables instead of assigning undef which - generates warning 'Use of uninitialized value in scalar assignment' with perl - versions older than 5.10 - -- Adjust valgrind logs file name detection. - - Adjust environment vars setting and restoring from test definition. - - Avoid using strftime in torture sub. - -Daniel Stenberg (20 Jan 2010) -- modified test case 8 to also make sure that we deal with cookies using - identical names but different paths properly - -- - As was pointed out on the http-state mailing list, the order of cookies in a - HTTP Cookie: header _needs_ to be sorted on the path length in the cases - where two cookies using the same name are set more than once using - (overlapping) paths. Realizing this, identically named cookies must be - sorted correctly. But detecting only identically named cookies and take care - of them individually is harder than just to blindly and unconditionally sort - all cookies based on their path lengths. All major browsers also already do - this, so this makes our behavior one step closer to them in the cookie area. - - Test case 8 was the only one that broke due to this change and I updated it - accordingly. - -- oops, I forgot to cvs add this before my previous commit (Dan Fandrich - pointed it out to me) - -- - David McCreedy brought a fix and a new test case (129) to make libcurl work - again when downloading files over FTP using ASCII and it turns out that the - final size of the file is not the same as the initial size the server - reported. This is very common since servers don't take the newline - conversions into account. - -- "260 - IMAP, POP3 and SMTP support" done! - -- avoid "Use of uninitialized value $l in concatenation" - -Yang Tse (19 Jan 2010) -- Fail harder when curl coredumps trying to verify http and ftp servers. - - Add some debug messages to see what's going on with valgrind logs. - -- prevent %runcert hash growth when clearing items - -- update copyright year notice - -- Constantine Sapuntzakis enhancements to make memory tracking log file writing - of messages atomic, on systems where an fwrite of a memory buffer is atomic. - -Dan Fandrich (18 Jan 2010) -- Added PEM certificate keyword - -Yang Tse (18 Jan 2010) -- fix warnings - -- Stop ssl running server when cert file currently used by server is - different than the one specified in test definition for same server - -- fix warnings - -- - Remove QD restarting of https servers. Proper fixing required. - This will make tests 310 311 and 312 fail while fixing. - - - Remove some debug messages - -- make verifyhttp use different file names depending on server characteristics - -- add serverfactors() sub which returns server characterization factors - -- fix warnings - -- fix warnings - -- fix warnings - -- add some debug messages - -- use servername_id() from serverhelp.pm - -- refactored stopping of test harness servers - -- Store now this file in CVS with unix line endings. - - maketgz already converts this file to DOS style with an awk filter. - -- Declaration of $sshdlog is done in sshhelp.pm - -- Start using the centralized pidfile and logfile name generation - subroutines for ssh and socks test suite servers. - -Dan Fandrich (15 Jan 2010) -- Added the new protocol source files to the non-autoconf build files - -Yang Tse (14 Jan 2010) -- Squeeze slack time when killing more than one server from - the section of test harness definition files. - -Kamil Dudka (14 Jan 2010) -- - Suppressed side effect of OpenSSL configure checks, which prevented NSS from - being properly detected under certain circumstances. It had been caused by - strange behavior of pkg-config when handling PKG_CONFIG_LIBDIR. pkg-config - distinguishes among empty and non-existent environment variable in that case. - -Yang Tse (13 Jan 2010) -- Give the test a bit mote time to run so it passes on slow machines - -Kamil Dudka (13 Jan 2010) -- remove trailing spaces from configure.ac - -Yang Tse (12 Jan 2010) -- Added test case #1112 which does an FTPS download with strict timeout - and slow data transfer in a similar way as test case #1086 does for FTP. - - This also exercises section for the FTPS server. - -- Make runtests.pl actually support any (valid) server specification - for the section of test harness definition files. - -- Fix tftp and sftp supported protocols in servername_str() - -- Make sockfilter kill messages look alike server ones +The older, manually edited, changelog is found in git named CHANGES.0 diff --git a/CHANGES.0 b/CHANGES.0 new file mode 100644 index 0000000..eab26da --- /dev/null +++ b/CHANGES.0 @@ -0,0 +1,18002 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + + Old Changelog + +Changes done to curl and libcurl from 1997 to 2010, edited manually. The most +recent changes are always generated into the CHANGES file straight from git. + +Kamil Dudka (17 June 2010) +- Improve test575 in order to not fail with threaded DNS resolver. + +Version 7.21.0 (16 June 2010) + +Daniel Stenberg (5 June 2010) +- Constantine Sapuntzakis fixed a case of spurious SSL connection aborts using + libcurl and OpenSSL. "I tracked it down to uncleared error state on the + OpenSSL error stack - patch attached deals with that." + +Daniel Stenberg (5 June 2010) +- Frank Meier added CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP and + CURLINFO_LOCAL_PORT to curl_easy_getinfo(). + +Yang Tse (4 June 2010) +- Enabled OpenLDAP support for cygwin builds. This support was disabled back + in 2008 due to incompatibilities between OpenSSL and OpenLDAP headers. + cygwin's OpenSSL 0.9.8l and OpenLDAP 2.3.43 versions on cygwin 1.5.25 + allow building an OpenLDAP enabled libcurl supporting back to Windows 95. + + Removed the non-functional CURL_LDAP_HYBRID code and references. + +Daniel Stenberg (2 June 2010) +- Jason McDonald posted bug report #3006786 when he found that the SFTP code + didn't timeout properly in several places in the code even if a timeout was + set properly. + + Based on his suggested patch, I wrote a different implementation that I + think addressed the issue better and also uses the connect timeout for the + initial part of the SSH/SFTP done during the "protocol connect" phase. + + (http://curl.haxx.se/bug/view.cgi?id=3006786) + +Yang Tse (2 June 2010) +- Added missing new libcurl files to non-configure targets. Adjusted + libcurl standard internal header inclusions in new files. Fixed an + SPNEGO related memory leak. Fixed several LDAP related compilation + issues, and fixed some compiler warnings. + +Daniel Stenberg (1 June 2010) +- Igor Novoseltsev reported a problem with the multi socket API and using + timeouts and timers. It boiled down to a problem with libcurl's use of + GetTickCount() interally to figure out the current time, while Igor's own + application code used another function call. + + It made his app call the socket API timeout function a bit _before_ libcurl + would consider the timeout to trigger, and that could easily lead to + timeouts or stalls in the app. It seems GetTickCount() in general often has + no better resolution than 16ms and switching to the alternative function + QueryPerformanceCounter has its share of problems: + http://www.virtualdub.org/blog/pivot/entry.php?id=106 + + We address this problem by simply having libcurl treat timers that already + has occured or will occur within 40ms subject for treatment. I'm confident + that there are other implementations and operating systems with similarly in + accurate timer functions so it makes sense to have applied generically and I + don't believe we sacrifice much by adding a 40ms inaccuracy on these + timeouts. + +Kamil Dudka (27 May 2010) +- added a new test for CRL support (test313) + +- Tor Arntsen changed the alternative definition of bool to use enum instead + of unsigned char. + +Daniel Stenberg (25 May 2010) +- Julien Chaffraix fixed the warning seen when compiling lib/rtmp.c: one + unused variables, several unused arguments and some missing #include. + +- Julien Chaffraix fixed 2 OOM errors: a missing NULL-check in + lib/http_negociate.c and a potential NULL dereferencing in lib/splay.c + +- Howard Chu brought a patch that makes the LDAP code much cleaner, nicer and + in general being a better libcurl citizen. If a new enough OpenLDAP version + is detect, the new and shiny lib/openldap.c code is then used instead of the + old cruft. + +Daniel Stenberg (21 May 2010) +- Eric Mertens posted bug #3003705: when we made TFTP use the correct timeout + option when sent to the server (fixed May 18th 2010) it became obvious that + libcurl used invalid timeout values (300 by default while the RFC allows + nothing above 255). While of course it is obvious that as TFTP has worked + thus far without being able to set timeout at all, just removing the setting + wouldn't make any difference in behavior. I decided to still keep it (but + fix the problem) as it now actually allows for easier (future) customization + of the timeout. + + (http://curl.haxx.se/bug/view.cgi?id=3003705) + +- Douglas Kilpatrick filed bug report #3004787 and pointed out that the TFTP + code didn't handle block id wraps correctly. His suggested fix inspired the + fix I committed. + + (http://curl.haxx.se/bug/view.cgi?id=3004787) + +Daniel Stenberg (20 May 2010) +- Tanguy Fautre brought a fix to allow curl to build with Microsoft VC10. + +Daniel Stenberg (18 May 2010) +- Eric Mertens posted bug report #3003005 pointing out that the libcurl TFTP + code was not sending the timeout option properly to the server, and + suggested a fix. + + (http://curl.haxx.se/bug/view.cgi?id=3003005) + +Kamil Dudka (16 May 2010) +- Pavel Raiskup introduced a new option CURLOPT_FNMATCH_DATA in order to pass + a custom data pointer to the callback specified by CURLOPT_FNMATCH_FUNCTION. + +Daniel Stenberg (14 May 2010) +- John-Mark Bell filed bug #3000052 that identified a problem (with an + associated patch) with the OpenSSL handshake state machine when the multi + interface is used: + + Performing an https request using a curl multi handle and using select or + epoll to wait for events results in a hang. It appears that the cause is the + fix for bug #2958179, which makes ossl_connect_common unconditionally return + from the step 2 loop when fetching from a multi handle. + + When ossl_connect_step2 has completed, it updates connssl->connecting_state + to ssl_connect_3. ossl_connect_common will then return to the caller, as a + multi handle is in use. Eventually, the client code will call + curl_multi_fdset to obtain an updated fdset to select or epoll on. For https + requests, curl_multi_fdset will cause https_getsock to be called. + https_getsock will only return a socket handle if the connecting_state is + ssl_connect_2_reading or ssl_connect_2_writing. Therefore, the client will + never obtain a valid fdset, and thus not drive the multi handle, resulting + in a hang. + + (http://curl.haxx.se/bug/view.cgi?id=3000052) + +- Sebastian V reported bug #3000056 identifying a problem with redirect + following. It showed that when curl followed redirects it didn't properly + ignore the response body of the 30X response if that response was using + compressed Content-Encoding! + + (http://curl.haxx.se/bug/view.cgi?id=3000056) + +Daniel Stenberg (12 May 2010) +- Howard Chu brought support for RTMP. This is powered by the underlying + librtmp library. It supports a range of variations and "sub-protocols" + within the RTMP family. + +- Pavel Raiskup brought support for FTP directory wildcard matching to allow + selective downloading. To provide that, a set of new options were added: + + CURLOPT_WILDCARDMATCH + CURLOPT_CHUNK_BGN_FUNCTION + CURLOPT_CHUNK_END_FUNCTION + CURLOPT_CHUNK_DATA + CURLOPT_FNMATCH_FUNCTION + + There were also a set of new tests added (574 - 577) to verify this. + +Kamil Dudka (11 May 2010) +- CRL support in libcurl-NSS has been completely broken. Now it works. Original + bug report: https://bugzilla.redhat.com/581926 + +Daniel Stenberg (7 May 2010) +- Dirk Manske reported a regression. When connecting with the multi interface, + there were situations where libcurl wouldn't store connect time correctly as + it used to (and is documented to) do. + + Using his fine sample program we could repeat it, and I wrote up test case + 573 using that code. The problem does not easily show itself using the local + test suite though. + + The fix, also as suggested by Dirk, is a bit on the ugly side as it adds yet + another call to Curl_verboseconnect() and setting the TIMER_CONNECT time. + That situation is subject for some closer inspection in the future. + +- Howard Chu split the I/O handling functions into private handlers. + + Howard Chu brought the bulk work of this patch that properly moves out the + sending and recving of data to the parts of the code that are properly + responsible for the various ways of doing so. + + Daniel Stenberg assisted with polishing a few bits and fixed some minor + flaws in the original patch. + + Another upside of this patch is that we now abuse CURLcodes less with the + "magic" -1 return codes and instead use CURLE_AGAIN more consistently. + +Daniel Stenberg (5 May 2010) +- Hoi-Ho Chan introduced support for using the PolarSSL library. You control + this with the new configure option --with-polarssl. + +Daniel Stenberg (29 Apr 2010) +- Ben Greear made telnet a lot better/easier to use by an application: + + The main change is to allow input from user-specified methods, when they are + specified with CURLOPT_READFUNCTION. All calls to fflush(stdout) in + telnet.c were removed, which makes using 'curl telnet://foo.com' painful + since prompts and other data are not always returned to the user promptly. + Use 'curl --no-buffer telnet://foo.com' instead. In general, the user + should have their CURLOPT_WRITEFUNCTION do a fflush for interactive use. + + Also fix assumption that reading from stdin never returns < 0. + Old code could crash in that case. + + Call progress functions in telnet main loop. + +Daniel Stenberg (26 Apr 2010) +- Make use of the libssh2_init/exit functions that libssh2 added in version + 1.2.5. Using them will improve how libcurl works in threaded situations when + SCP and SFTP are transfered. + +Daniel Stenberg (25 Apr 2010) +- Based on work by Kamil Dudka, I've introduced the new configure option + --enable-threaded-resolver. When used, the configure script will check for + pthreads and if around, it will build libcurl to use pthreads to do name + resolving in a threaded manner. Note that this is just a fix to offer an + option that can enable the code that already included. The threader resolver + code was mostly added on Jan 26 2010. + +Daniel Stenberg (24 Apr 2010) +- Alex Bligh introduced the --proto and -proto-redir options that limit what + protocols curl accepts for the requests and when following redirects. + +Kamil Dudka (24 Apr 2010) +- Fixed test536 in order to not fail with threaded DNS resolver and tweaked + comments in certain examples using curl_multi_fdset(). + +- Fixed SSL handshake timeout underflow in libcurl-NSS, which caused test405 + to hang on a slow machine. + +Daniel Stenberg (21 Apr 2010) +- The -O option caused curl to crash on windows and DOS due to the tool + writing out of boundary memory. + +Yang Tse (20 Apr 2010) +- Ruslan Gazizov detected that MSVC makefiles were using wsock32.lib instead + of ws2_32.lib, this generated linking issues on MSVC IPv6 enabled builds + that were done using those makefiles. + +Daniel Stenberg (19 Apr 2010) +- -J/--remote-header-name didn't strip trailing carriage returns or linefeeds + properly, so they could be used in the file name. + +Daniel Stenberg (16 Apr 2010) +- Jerome Vouillon made the GnuTLS SSL handshake phase non-blocking. + +- The recent overhaul of the SSL recv function made the GnuTLS specific code + treat a zero returned from gnutls_record_recv() as an error, and this caused + our HTTPS test cases to fail. We leave it to upper layer code to detect if + an EOF is a problem or not. + +- I reverted the resolver fix from yesterday and instead removed all uses of + AI_CANONNAME all over libcurl and made the only user of that info (krb5.c) + use the host name from the URL instead. No reverse resolving is a good + thing. + +- Paul Howarth made configure properly detect GSS "on ancient Linux distros" + by editing in which order we use headers to detect GSS. + +Daniel Stenberg (15 Apr 2010) +- Rainer Canavan filed bug report #2987196 that identified libcurl doing + unnecesary reverse name lookups in many cases when built to use IPv4 and + getaddrinfo(). The logic for IPv6 is now used for IPv4 too. + + (http://curl.haxx.se/bug/view.cgi?id=2963679) + +Version 7.20.1 (14 April 2010) + +Daniel Stenberg (9 Apr 2010) +- Prefixing the FTP quote commands with an asterisk really only worked for the + postquote actions. This is now fixed and test case 227 has been extended to + verify. + +Kamil Dudka (4 Apr 2010) +- Eliminated a race condition in Curl_resolv_timeout(). + +- Refactorized interface of Curl_ssl_recv()/Curl_ssl_send(). + +- libcurl-NSS now provides more accurate messages and error codes in case of + client certificate problem. Either during connection, or transfer phase. + +Daniel Stenberg (1 Apr 2010) +- Matt Wixson found and fixed a bug in the SCP/SFTP area where the code + treated a 0 return code from libssh2 to be the same as EAGAIN while in + reality it isn't. The problem caused a hang in SFTP transfers from a + MessageWay server. + +Daniel Stenberg (28 Mar 2010) +- Ben Greear: If you pass a URL to pop3 that does not contain a message ID as + part of the URL, it would previously ask for 'INBOX' which just causes the + pop3 server to return an error. + + Now libcurl treats en empty message ID as a request for LIST (list of pop3 + message IDs). User's code could then parse this and download individual + messages as desired. + +Daniel Stenberg (27 Mar 2010) +- Ben Greear brought a patch that from now on allows all protocols to specify + name and user within the URL, in the same manner HTTP and FTP have been + allowed to in the past - although far from all of the libcurl supported + protocls actually have that feature in their URL definition spec. + +Daniel Stenberg (26 Mar 2010) +- Ben Greear brought code that makes the rate limiting code for the easy + interface a bit smoother as it introduces sub-second sleeps during it and it + also takes the buffer sizes into account. + +Daniel Stenberg (24 Mar 2010) +- Bob Richmond: There's an annoying situation where libcurl will read new HTTP + response data from a socket, then check if it's a timeout if one is set. If + the last packet received constitutes the end of the response body, libcurl + still treats it as a timeout condition and reports a message like: + + "Operation timed out after 3000 milliseconds with 876 out of 876 bytes + received" + + It should only a timeout if the timer lapsed and we DIDN'T receive the end + of the response body yet. + +- Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported + to us by Massimo Callegari. There's a new test case 572 that verifies this + now. + +- The 'ares' subtree has been removed from the source repository. It was + always a separate project that sort of piggybacked on the curl project since + the dawn of times and now the time has come for it to go stand on its own + legs and continue living its own life. All details on c-ares and its new + source code repository is found at http://c-ares.haxx.se/ + +Daniel Stenberg (23 Mar 2010) +- Kenny To filed the bug report #2963679 with patch to fix a problem he + experienced with doing multi interface HTTP POST over a proxy using + PROXYTUNNEL. He found a case where it would connect fine but bits.tcpconnect + was not set correct so libcurl didn't work properly. + + (http://curl.haxx.se/bug/view.cgi?id=2963679) + +- Akos Pasztory filed debian bug report #572276 + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572276 mentioning a problem + with a resource that returns chunked-encoded _and_ with a Content-Length + and libcurl failed to properly ignore the latter information. + +- Hauke Duden provided an example program that made the multi interface crash. + His example simply used the multi interface and did first one FTP transfer + and after completion it used a second easy handle and did another FTP + transfer on the same FTP server. + + This triggered a bug in the "delayed easy handle kill" system that curl + uses: when an FTP connection is left alive it must keep an easy handle + around internally - only for the purpose of having an easy handle when it + later disconnects it. The code assumed that when the easy handle was removed + and an internal reference was made, that version could be killed later on + when a new easy handle came using the same connection. This was wrong as + Hauke's example showed that the removed handle wasn't killed for real until + later. This caused a double close attempt => segfault. + +Daniel Stenberg (22 Mar 2010) +- Thomas Lopatic fixed the alarm()-based DNS timeout: + + Looking at the code of Curl_resolv_timeout() in hostip.c, I think that in + case of a timeout, the signal handler for SIGALRM never gets removed. I + think that in my case it gets executed at some point later on when execution + has long left Curl_resolv_timeout() or even the cURL library. + + The code that is jumped to with siglongjmp() simply sets the error message + to "name lookup timed out" and then returns with CURLRESOLV_ERROR. I guess + that instead of simply returning without cleaning up, the code should have a + goto that jumps to the spot right after the call to Curl_resolv(). + +Kamil Dudka (22 Mar 2010) +- Douglas Steinwand contributed a patch fixing insufficient initialization in + Curl_clone_ssl_config() + +Daniel Stenberg (21 Mar 2010) +- Ben Greear improved TFTP: the error code returning and the treatment + of TSIZE == 0 when uploading. + +- We've switched from CVS to git. See http://curl.haxx.se/source.html + +Kamil Dudka (19 Mar 2010) +- Improved Curl_read() to not ignore the error returned from Curl_ssl_recv(). + +Daniel Stenberg (15 Mar 2010) +- Constantine Sapuntzakis brought a patch: + + The problem mentioned on Dec 10 2009 + (http://curl.haxx.se/bug/view.cgi?id=2905220) was only partially fixed. + Partially because an easy handle can be associated with many connections in + the cache (e.g. if there is a redirect during the lifetime of the easy + handle). The previous patch only cleaned up the first one. The new fix now + removes the easy handle from all connections, not just the first one. + +Daniel Stenberg (6 Mar 2010) +- Ben Greear brought a patch that fixed the rate limiting logic for TFTP when + the easy interface was used. + +Daniel Stenberg (5 Mar 2010) +- Daniel Johnson provided fixes for building curl with the clang compiler. + +Yang Tse (5 Mar 2010) +- Constantine Sapuntzakis detected and fixed a double free in builds done + with threaded resolver enabled (Windows default configuration) that would + get triggered when a curl handle is closed while doing DNS resolution. + +Daniel Stenberg (2 Mar 2010) +- [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and + ran into some issues with the GSSAPI tests in configure.ac. The tests first + try to determine the include dirs and libs and set CPPFLAGS and LIBS + accordingly. It then checks for the headers and finally sets LIBS a second + time, causing the libs to be included twice. The first setting of LIBS seems + redundant and should be left out, since the first part is otherwise just + about finding headers. + + My second issue is that 'krb5-config --libs gssapi' on Darwin is less than + useless and returns junk that, while it happens to work with gcc, causes + clang to choke. For example, --libs returns $CFLAGS along with the libs, + which is really retarded. Simply setting 'LIBS="$LIBS -lgssapi_krb5 + -lresolv"' on Darwin is sufficient. + +- Based on patch provided by Jacob Moshenko, the transfer logic now properly + makes sure that when using sub-second timeouts, there's no final bad 1000ms + wait. Previously, a sub-second timeout would often make the elapsed time end + up the time rounded up to the nearest second (e.g. 1s for 200ms timeout) + +- Andrei Benea filed bug report #2956698 and pointed out that the + CURLOPT_CERTINFO feature leaked memory due to a missing OpenSSL function + call. He provided the patch to fix it too. + + http://curl.haxx.se/bug/view.cgi?id=2956698 + +- Markus Duft pointed out in bug #2961796 that even though Interix has a + poll() function it doesn't quite work the way we want it so we must disable + it, and he also provided a patch for it. + + http://curl.haxx.se/bug/view.cgi?id=2961796 + +- Made the pingpong timeout code properly deal with the response timeout AND + the global timeout if set. Also, as was reported in the bug report #2956437 + by Ryan Chan, the time stamp to use as basis for the per command timeout was + not set properly in the DONE phase for FTP (and not for SMTP) so I fixed + that just now. This was a regression compared to 7.19.7 due to the + conversion of FTP code over to the generic pingpong concepts. + + http://curl.haxx.se/bug/view.cgi?id=2956437 + +Daniel Stenberg (1 Mar 2010) +- Ben Greear provided an update for TFTP that fixes upload. + +- Wesley Miaw reported bug #2958179 which identified a case of looping during + OpenSSL based SSL handshaking even though the multi interface was used and + there was no good reason for it. + + http://curl.haxx.se/bug/view.cgi?id=2958179 + +Daniel Stenberg (26 Feb 2010) +- Pat Ray in bug #2958474 pointed out an off-by-one case when receiving a + chunked-encoding trailer. + + http://curl.haxx.se/bug/view.cgi?id=2958474 + +Daniel Fandrich (25 Feb 2010) +- Fixed a couple of out of memory leaks and a segfault in the SMTP & IMAP code. + +Yang Tse (25 Feb 2010) +- I fixed bug report #2958074 indicating + (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with + option --trace-time did not use local time when timestamping trace lines. + This could also happen on other systems depending on time souurce. + +Patrick Monnerat (22 Feb 2010) +- Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account. +- SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required). +- Use of true local host name (i.e.: via gethostname()) when available, as + default argument to SMTP HELO/EHLO. +- Test case 804 for HELO fallback. + +Daniel Stenberg (20 Feb 2010) +- Fixed the SMTP compliance by making sure RCPT TO addresses are specified + properly in angle brackets. Recipients provided with CURLOPT_MAIL_RCPT now + get angle bracket wrapping automatically by libcurl unless the recipient + starts with an angle bracket as then the app is assumed to deal with that + properly on its own. + +- I made the SMTP code expect a 250 response back from the server after the + full DATA has been sent, and I modified the test SMTP server to also send + that response. As usual, the DONE operation that is made after a completed + transfer is still not doable in a non-blocking way so this waiting for 250 + is unfortunately made blockingly. + +Yang Tse (14 Feb 2010) +- Overhauled test suite getpart() function. Fixing potential out of bounds + stack and memory overwrites triggered with huge test case definitions. + +Daniel Stenberg (13 Feb 2010) +- Martin Hager reported and fixed a problem with a missing quote in libcurl.m4 + + (http://curl.haxx.se/bug/view.cgi?id=2951319) + +- Tom Donovan fixed the CURL_FORMAT_* defines when building with cmake. + + (http://curl.haxx.se/bug/view.cgi?id=2951269) + +Daniel Stenberg (12 Feb 2010) +- Jack Zhang reported a problem with SMTP: we wrongly used multiple addresses + in the same RCPT TO line, when they should be sent in separate single + commands. I updated test case 802 to verify this. + +- I also fixed a bad use of my_setopt_str() of CURLOPT_MAIL_RCPT in the curl + tool which made it try to output it as string for the --libcurl feature + which could lead to crashes. + +Yang Tse (11 Feb 2010) +- Steven M. Schweda fixed VMS builder bad behavior when used in a batch job, + removed obsolete batch_compile.com and defines.com and updated VMS readme. + +Version 7.20.0 (9 February 2010) + +Daniel Stenberg (9 Feb 2010) +- When downloading compressed content over HTTP and the app asked libcurl to + automatically uncompress it with the CURLOPT_ENCODING option, libcurl could + wrongly provide the callback with more data than the maximum documented + amount. An application could thus get tricked into badness if the maximum + limit was trusted to be enforced by libcurl itself (as it is documented). + + This is further detailed and explained in the libcurl security advisory + 20100209 at + + http://curl.haxx.se/docs/adv_20100209.html + +Daniel Fandrich (3 Feb 2010) +- Changed the Watcom makefiles to make them easier to keep in sync with + Makefile.inc since that can't be included directly. + +Yang Tse (2 Feb 2010) +- Symbol CURL_FORMAT_OFF_T now obsoleted, will be removed in a future release, + symbol will not be available when building with CURL_NO_OLDIES defined. Use + of CURL_FORMAT_CURL_OFF_T is preferred since 7.19.0 + +Daniel Stenberg (1 Feb 2010) +- Using the multi_socket API, it turns out at times it seemed to "forget" + connections (which caused a hang). It turned out to be an existing (7.19.7) + bug in libcurl (that's been around for a long time) and it happened like + this: + + The app calls curl_multi_add_handle() to add a new easy handle, libcurl will + then set it to timeout in 1 millisecond so libcurl will tell the app about + it. + + The app's timeout fires off that there's a timeout, the app calls libcurl as + we so often document it: + + do { + res = curl_multi_socket_action(... TIMEOUT ...); + } while(CURLM_CALL_MULTI_PERFORM == res); + + And this is the problem number one: + + When curl_multi_socket_action() is called with no specific handle, but only + a timeout-action, it will *only* perform actions within libcurl that are + marked to run at this time. In this case, the request would go from INIT to + CONNECT and return CURLM_CALL_MULTI_PERFORM. When the app then calls libcurl + again, there's no timer set for this handle so it remains in the CONNECT + state. The CONNECT state is a transitional state in libcurl so it reports no + sockets there, and thus libcurl never tells the app anything more about that + easy handle/connection. + + libcurl _does_ set a 1ms timeout for the handle at the end of + multi_runsingle() if it returns CURLM_CALL_MULTI_PERFORM, but since the loop + is instant the new job is not ready to run at that point (and there's no + code that makes libcurl call the app to update the timout for this new + timeout). It will simply rely on that some other timeout will trigger later + on or that something else will update the timeout callback. This makes the + bug fairly hard to repeat. + + The fix made to adress this issue: + + We introduce a loop in lib/multi.c around all calls to multi_runsingle() and + simply check for CURLM_CALL_MULTI_PERFORM internally. This has the added + benefit that this goes in line with my long-term wishes to get rid of the + CURLM_CALL_MULTI_PERFORM all together from the public API. + + The downside of this fix, is that the counter we return in 'running_handles' + in several of our public functions then gets a slightly new and possibly + confusing behavior during times: + + If an app adds a handle that fails to connect (very quickly) it may just + as well never appear as a 'running_handle' with this fix. Previously it + would first bump the counter only to get it decreased again at next call. + Even I have used that change in handle counter to signal "end of a + transfer". The only *good* way to find the end of a individual transfer + is calling curl_multi_info_read() to see if it returns one. + + Of course, if the app previously did the looping before it checked the + counter, it really shouldn't be any new effect. + +Yang Tse (26 Jan 2010) +- Constantine Sapuntzakis' and Joshua Kwan's work done in the last four months + relative to the asynchronous DNS lookups, along with with some integration + adjustments I have done are finally committed to CVS. + + Currently these enhancements will benefit builds done using c-ares on any + platform as well as Windows builds using the default threaded resolver. + + This release does not make generally available POSIX threaded DNS lookups + yet. There is no configure option to enable this feature yet. It is possible + to experimantally try this feature running configure with compiler flags that + make simultaneous definition of preprocessor symbols USE_THREADS_POSIX and + HAVE_PTHREAD_H, as well as whatever reentrancy compiler flags and linker ones + are required to link and properly use pthread_* functions on each platform. + +Daniel Stenberg (26 Jan 2010) +- Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the + proxy that cannot be resolved when using c-ares. This matches the behaviour + when not using c-ares. + +Björn Stenberg (23 Jan 2010) +- Added a new flag: -J/--remote-header-name. This option tells the + -O/--remote-name option to use the server-specified Content-Disposition + filename instead of extracting a filename from the URL. + +Daniel Stenberg (21 Jan 2010) +- Chris Conroy brought support for RTSP transfers, and with it comes 8(!) new + libcurl options for controlling what to get and how to receive posssibly + interleaved RTP data. + +Daniel Stenberg (20 Jan 2010) +- As was pointed out on the http-state mailing list, the order of cookies in a + HTTP Cookie: header _needs_ to be sorted on the path length in the cases + where two cookies using the same name are set more than once using + (overlapping) paths. Realizing this, identically named cookies must be + sorted correctly. But detecting only identically named cookies and take care + of them individually is harder than just to blindly and unconditionally sort + all cookies based on their path lengths. All major browsers also already do + this, so this makes our behavior one step closer to them in the cookie area. + + Test case 8 was the only one that broke due to this change and I updated it + accordingly. + +Daniel Stenberg (19 Jan 2010) +- David McCreedy brought a fix and a new test case (129) to make libcurl work + again when downloading files over FTP using ASCII and it turns out that the + final size of the file is not the same as the initial size the server + reported. This is very common since servers don't take the newline + conversions into account. + +Kamil Dudka (14 Jan 2010) +- Suppressed side effect of OpenSSL configure checks, which prevented NSS from + being properly detected under certain circumstances. It had been caused by + strange behavior of pkg-config when handling PKG_CONFIG_LIBDIR. pkg-config + distinguishes among empty and non-existent environment variable in that case. + +Daniel Stenberg (12 Jan 2010) +- Gil Weber reported a peculiar flaw with the multi interface when doing SFTP + transfers: curl_multi_fdset() would return -1 and not set and file + descriptors several times during a transfer of a single file. It turned out + to be due to two different flaws now fixed. Gil's excellent recipe helped me + nail this. + +Daniel Stenberg (11 Jan 2010) +- Made sure that the progress callback is repeatedly called at a regular + interval even during very slow connects. + +- The tests/runtests.pl script now checks to see if the test case that runs is + present in the tests/data/Makefile.am and outputs a notice message on the + screen if not. Each test file has to be included in that Makefile.am to get + included in release archives and forgetting to add files there is a common + mistake. This is an attempt to make it harder to forget. + +Daniel Stenberg (9 Jan 2010) +- Johan van Selst found and fixed a OpenSSL session ref count leak: + + ossl_connect_step3() increments an SSL session handle reference counter on + each call. When sessions are re-used this reference counter may be + incremented many times, but it will be decremented only once when done (by + Curl_ossl_session_free()); and the internal OpenSSL data will not be freed + if this reference count remains positive. When a session is re-used the + reference counter should be corrected by explicitly calling + SSL_SESSION_free() after each consecutive SSL_get1_session() to avoid + introducing a memory leak. + + (http://curl.haxx.se/bug/view.cgi?id=2926284) + +Daniel Stenberg (7 Jan 2010) +- Make sure the progress callback is called repeatedly even during very slow + name resolves when c-ares is used for resolving. + +Claes Jakobsson (6 Jan 2010) +- Julien Chaffraix fixed so that the fragment part in an URL is not sent + to the server anymore. + +Kamil Dudka (3 Jan 2010) +- Julien Chaffraix eliminated a duplicated initialization in singlesocket(). + +Daniel Stenberg (2 Jan 2010) +- Make curl support --ssl and --ssl-reqd instead of the previous FTP-specific + versions --ftp-ssl and --ftp-ssl-reqd as these options are now used to + control SSL/TLS for IMAP, POP3 and SMTP as well in addition to FTP. The old + option names are still working but the new ones are the ones listed and + documented. + +Daniel Stenberg (1 Jan 2010) +- Ingmar Runge enhanced libcurl's FTP engine to support the PRET command. This + command is a special "hack" used by the drftpd server, but even though it is + a custom extension I've deemed it fine to add to libcurl since this server + seems to survive and people keep using it and want libcurl to support + it. The new libcurl option is named CURLOPT_FTP_USE_PRET, and it is also + usable from the curl tool with --ftp-pret. Using this option on a server + that doesn't support this command will make libcurl fail. + + I added test cases 1107 and 1108 to verify the functionality. + + The PRET command is documented at + http://www.drftpd.org/index.php/Distributed_PASV + +Yang Tse (30 Dec 2009) +- Steven M. Schweda improved VMS build system, and Craig A. Berry helped + with the patch and testing. + +Daniel Stenberg (26 Dec 2009) +- Renato Botelho and Peter Pentchev brought a patch that makes the libcurl + headers work correctly even on FreeBSD systems before v8. + + (http://curl.haxx.se/bug/view.cgi?id=2916915) + +Daniel Stenberg (17 Dec 2009) +- David Byron fixed Curl_ossl_cleanup to actually call ENGINE_cleanup when + available. + +- Follow-up fix for the proxy fix I did for Jon Nelson's bug. It turned out I + was a bit too quick and broke test case 1101 with that change. The order of + some of the setups is sensitive. I now changed it slightly again to make + sure we do them in this order: + + 1 - parse URL and figure out what protocol is used in the URL + 2 - prepend protocol:// to URL if missing + 3 - parse name+password off URL, which needs to know what protocol is used + (since only some allows for name+password in the URL) + 4 - figure out if a proxy should be used set by an option + 5 - if no proxy option, check proxy environment variables + 6 - run the protocol-specific setup function, which needs to have the proxy + already set + +Daniel Stenberg (15 Dec 2009) +- Jon Nelson found a regression that turned out to be a flaw in how libcurl + detects and uses proxies based on the environment variables. If the proxy + was given as an explicit option it worked, but due to the setup order + mistake proxies would not be used fine for a few protocols when picked up + from '[protocol]_proxy'. Obviously this broke after 7.19.4. I now also added + test case 1106 that verifies this functionality. + + (http://curl.haxx.se/bug/view.cgi?id=2913886) + +Daniel Stenberg (12 Dec 2009) +- IMAP, POP3 and SMTP support and their TLS versions (including IMAPS, POP3S + and SMTPS) are now supported. The current state may not yet be solid, but + the foundation is in place and the test suite has some initial support for + these protocols. Work will now persue to make them nice libcurl citizens + until release. + + The work with supporting these new protocols was sponsored by + networking4all.com - thanks! + +Daniel Stenberg (10 Dec 2009) +- Siegfried Gyuricsko found out that the curl manual said --retry would retry + on FTP errors in the transient 5xx range. Transient FTP errors are in the + 4xx range. The code itself only tried on 5xx errors that occured _at login_. + Now the retry code retries on all FTP transfer failures that ended with a + 4xx response. + + (http://curl.haxx.se/bug/view.cgi?id=2911279) + +- Constantine Sapuntzakis figured out a case which would lead to libcurl + accessing alredy freed memory and thus crash when using HTTPS (with + OpenSSL), multi interface and the CURLOPT_DEBUGFUNCTION and a certain order + of cleaning things up. I fixed it. + + (http://curl.haxx.se/bug/view.cgi?id=2905220) + +Daniel Stenberg (7 Dec 2009) +- Martin Storsjo made libcurl use the Expect: 100-continue header for posts + with unknown size. Previously it was only used for posts with a known size + larger than 1024 bytes. + +Daniel Stenberg (1 Dec 2009) +- If the Expect: 100-continue header has been set by the application through + curl_easy_setopt with CURLOPT_HTTPHEADER, the library should set + data->state.expect100header accordingly - the current code (in 7.19.7 at + least) doesn't handle this properly. Martin Storsjo provided the fix! + +Yang Tse (28 Nov 2009) +- Added Diffie-Hellman parameters to several test harness certificate files in + PEM format. Required by several stunnel versions used by our test harness. + +Daniel Stenberg (28 Nov 2009) +- Markus Koetter provided a polished and updated version of Chad Monroe's TFTP + rework patch that now integrates TFTP properly into libcurl so that it can + be used non-blocking with the multi interface and more. BLKSIZE also works. + + The --tftp-blksize option was added to allow setting the TFTP BLKSIZE from + the command line. + +Daniel Stenberg (26 Nov 2009) +- Extended and fixed the change I did on Dec 11 for the the progress + meter/callback during FTP command/response sequences. It turned out it was + really lame before and now the progress meter SHOULD get called at least + once per second. + +Daniel Stenberg (23 Nov 2009) +- Bjorn Augustsson reported a bug which made curl not report any problems even + though it failed to write a very small download to disk (done in a single + fwrite call). It turned out to be because fwrite() returned success, but + there was insufficient error-checking for the fclose() call which tricked + curl to believe things were fine. + +Yang Tse (23 Nov 2009) +- David Byron modified Makefile.dist vc8 and vc9 targets in order to allow + finer granularity control when generating src and lib makefiles. + +Yang Tse (22 Nov 2009) +- I modified configure to force removal of the curlbuild.h file included in + distribution tarballs for use by non-configure systems. As intended, this + would get overwriten when doing in-tree builds. But VPATH builds would end + having two curlbuild.h files, one in the source tree and another in the + build tree. With the modification I introduced 5 Nov 2009 this could become + an issue when running libcurl's test suite. + +Daniel Stenberg (20 Nov 2009) +- Constantine Sapuntzakis identified a write after close, as the sockets were + closed by libcurl before the SSL lib were shutdown and they may write to its + socket. Detected to at least happen with OpenSSL builds. + +- Jad Chamcham pointed out a bug with connection re-use. If a connection had + CURLOPT_HTTPPROXYTUNNEL enabled over a proxy, a subsequent request using the + same proxy with the tunnel option disabled would still wrongly re-use that + previous connection and the outcome would only be badness. + +Yang Tse (18 Nov 2009) +- I modified the memory tracking system to make it intolerant with zero sized + malloc(), calloc() and realloc() function calls. + +Daniel Stenberg (17 Nov 2009) +- Constantine Sapuntzakis provided another fix for the DNS cache that could + end up with entries that wouldn't time-out: + + 1. Set up a first web server that redirects (307) to a http://server:port + that's down + 2. Have curl connect to the first web server using curl multi + + After the curl_easy_cleanup call, there will be curl dns entries hanging + around with in_use != 0. + + (http://curl.haxx.se/bug/view.cgi?id=2891591) + +- Marc Kleine-Budde fixed: curl saved the LDFLAGS set during configure into + its pkg-config file. So -Wl stuff ended up in the .pc file, which is really + bad, and breaks if there are multiple -Wl in our LDFLAGS (which are in + PTXdist). bug #2893592 (http://curl.haxx.se/bug/view.cgi?id=2893592) + +Kamil Dudka (15 Nov 2009) +- David Byron improved the configure script to use pkg-config to find OpenSSL + (and in particular the list of required libraries) even if a path is given + as argument to --with-ssl + +Yang Tse (15 Nov 2009) +- I removed enable-thread / disable-thread configure option. These were only + placebo options. The library is always built as thread safe as possible on + every system. + +Claes Jakobsson (14 Nov 2009) +- curl-config now accepts '--configure' to see what arguments was + passed to the configure script when building curl. + +Daniel Stenberg (14 Nov 2009) +- Claes Jakobsson restored the configure functionality to detect NSS when + --with-nss is set but not "yes". + + I think we can still improve that to check for pkg-config in that path etc, + but at least this patch brings back the same functionality we had before. + +- Camille Moncelier added support for the file type SSL_FILETYPE_ENGINE for + the client certificate. It also disable the key name test as some engines + can select a private key/cert automatically (When there is only one key + and/or certificate on the hardware device used by the engine) + +Yang Tse (14 Nov 2009) +- Constantine Sapuntzakis provided the fix that ensures that an SSL connection + won't be reused unless protection level for peer and host verification match. + + I refactored how preprocessor symbol _THREAD_SAFE definition is done. + +Kamil Dudka (12 Nov 2009) +- Kevin Baughman provided a fix preventing libcurl-NSS from crash on doubly + closed NSPR descriptor. The issue was hard to find, reported several times + before and always closed unresolved. More info at the RH bug: + https://bugzilla.redhat.com/534176 + +- libcurl-NSS now tries to reconnect with TLS disabled in case it detects + a broken TLS server. However it does not happen if SSL version is selected + manually. The approach was originally taken from PSM. Kaspar Brand helped me + to complete the patch. Original bug reports: + https://bugzilla.redhat.com/525496 + https://bugzilla.redhat.com/527771 + +Yang Tse (12 Nov 2009) +- I modified configure script to make the getaddrinfo function check also + verify if the function is thread safe. + +Yang Tse (11 Nov 2009) +- Marco Maggi reported that compilation failed when configured --with-gssapi + and GNU GSS installed due to a missing mutual exclusion of header files in + the Kerberos 5 code path. He also verified that my patch worked for him. + +Daniel Stenberg (11 Nov 2009) +- Constantine Sapuntzakis posted bug #2891595 + (http://curl.haxx.se/bug/view.cgi?id=2891595) which identified how an entry + in the DNS cache would linger too long if the request that added it was in + use that long. He also provided the patch that now makes libcurl capable of + still doing a request while the DNS hash entry may get timed out. + +- Christian Schmitz noticed that the progress meter/callback was not properly + used during the FTP connection phase (after the actual TCP connect), while + it of course should be. I also made the speed check get called correctly so + that really slow servers will trigger that properly too. + +Kamil Dudka (5 Nov 2009) +- Dropped misleading timeouts in libcurl-NSS and made sure the SSL socket works + in non-blocking mode. + +Yang Tse (5 Nov 2009) +- I removed leading 'curl' path on the 'curlbuild.h' include statement in + curl.h, adjusting auto-makefiles include path, to enhance portability to + OS's without an orthogonal directory tree structure such as OS/400. + +Daniel Stenberg (4 Nov 2009) +- I fixed several problems with the transfer progress meter. It showed the + wrong percentage for small files, most notable for <1000 bytes and could + easily end up showing more than 100% at the end. It also didn't show any + percentage, transfer size or estimated transfer times when transferring + less than 100 bytes. + +Version 7.19.7 (4 November 2009) + +Daniel Stenberg (2 Nov 2009) +- As reported independent by both Stan van de Burgt and Didier Brisebourg, + CURLINFO_SIZE_DOWNLOAD (the -w variable size_download) didn't work when + getting data from ldap! + +Daniel Stenberg (31 Oct 2009) +- Gabriel Kuri reported a problem with CURLINFO_CONTENT_LENGTH_DOWNLOAD if the + download was 0 bytes, as libcurl would then return the size as unknown (-1) + and not 0. I wrote a fix and test case 566 to verify it. + +Daniel Stenberg (30 Oct 2009) +- Liza Alenchery mentioned a problem with re-used SCP connection when a bad + auth is used, as it caused a crash. I failed to repeat the issue, but still + made a change that now forces the TCP connection used for a freed SCP + session to get closed and not be re-used. + +- "Tom" posted a bug report that mentioned how libcurl did wrong when doing a + POST using a read callback, with Digest authentication and + "Transfer-Encoding: chunked" enforced. I would then cause the first request + to be wrongly sent and then basically hang until the server closed the + connection. I fixed the problem and added test case 565 to verify it. + +Daniel Stenberg (25 Oct 2009) +- Dima Barsky made the curl cookie parser accept cookies even with blank or + unparsable expiry dates and then treat them as session cookies - previously + libcurl would reject cookies with a date format it couldn't parse. Research + shows that the major browser treat such cookies as session cookies. I + modified test 8 and 31 to verify this. + +Daniel Stenberg (21 Oct 2009) +- Attempt to use pkg-config for finding out libssh2 installation details + during configure. + +- A patch in bug report #2883177 (http://curl.haxx.se/bug/view.cgi?id=2883177) + by Johan van Selst introduced the --crlfile option to curl, which makes curl + tell libcurl about a file with CRL (certificate revocation list) data to + read. + +Daniel Stenberg (18 Oct 2009) +- Ray Dassen provided a patch in Debian's bug tracker (bug number #551461) + that now makes curl_getdate(3) actually handles RFC 822 formatted dates that + use the "single letter military timezones". + http://www.rfc-ref.org/RFC-TEXTS/822/chapter5.html has the details. + +- Fixed memory leak in the SCP/SFTP code as it never freed the knownhosts + data! + +- John Dennis filed bug report #2873666 + (http://curl.haxx.se/bug/view.cgi?id=2873666) which identified a problem + which made libcurl loop infinitely when given incorrect credentials when + using HTTP GSS negotiate authentication. He also provided a small and simple + patch for it. + +- Kevin Baughman found a double close() problem with libcurl-NSS, as when + libcurl called NSS to close the SSL "session" it also closed the actual + socket. + +Yang Tse (17 Oct 2009) +- Bug report #2866724 indicated + (http://curl.haxx.se/bug/view.cgi?id=2866724) that curl on Windows failed + when writing files whose file names originally contained characters which + are not valid for file names on Windows. Dan Fandrich provided an initial + patch and another revised one to fix this issue. + +Daniel Stenberg (1 Oct 2009) +- Tom Mueller correctly reported in bug report #2870221 + (http://curl.haxx.se/bug/view.cgi?id=2870221) that libcurl returned an + incorrect return code from the internal trynextip() function which caused + him grief. This is a regression that was introduced in 7.19.1 and I find it + strange it hasn't hit us harder, but I won't persue into figuring out + exactly why. + +- Constantine Sapuntzakis: The current implementation will always set + SO_SNDBUF to CURL_WRITE_SIZE even if the SO_SNDBUF starts out larger. The + patch doesn't do a setsockopt if SO_SNDBUF is already greater than + CURL_WRITE_SIZE. This should help folks who have set up their computer with + large send buffers. + +Daniel Stenberg (27 Sep 2009) +- I introduced a maximum limit for received HTTP headers. It is controlled by + the define CURL_MAX_HTTP_HEADER which is even exposed in the public header + file to allow for users to fairly easy rebuild libcurl with a modified + limit. The rationale for a fixed limit is that libcurl is realloc()ing a + buffer to be able to put a full header into it, so that it can call the + header callback with the entire header, but that also risk getting it into + trouble if a server by mistake or willingly sends a header that is more or + less without an end. The limit is set to 100K. + +Daniel Stenberg (26 Sep 2009) +- John P. McCaskey posted a bug report that showed how libcurl did wrong when + saving received cookies with no given path, if the path in the request had a + query part. That is means a question mark (?) and characters on the right + side of that. I wrote test case 1105 and fixed this problem. + +Kamil Dudka (26 Sep 2009) +- Implemented a protocol independent way to specify blocking direction, used by + transfer.c for blocking. It is currently used only by SCP and SFTP protocols. + This enhancement resolves an issue with 100% CPU usage during SFTP upload, + reported by Vourhey. + +Daniel Stenberg (25 Sep 2009) +- Chris Mumford filed bug report #2861587 + (http://curl.haxx.se/bug/view.cgi?id=2861587) identifying that libcurl used + the OpenSSL function X509_load_crl_file() wrongly and failed if it would + load a CRL file with more than one certificate within. This is now fixed. + +Daniel Stenberg (16 Sep 2009) +- Sven Anders reported that we introduced a cert verfication flaw for OpenSSL- + powered libcurl in 7.19.6. If there was a X509v3 Subject Alternative Name + field in the certficate it had to match and so even if non-DNS and non-IP + entry was present it caused the verification to fail. + +Daniel Fandrich (15 Sep 2009) +- Moved the libssh2 checks after the SSL library checks. This helps when + statically linking since libssh2 needs the SSL library link flags to be + set up already to satisfy its dependencies. This wouldn't be necessary if + the libssh2 configure check was changed to use pkg-config since the + --static flag would add the dependencies automatically. + +Yang Tse (14 Sep 2009) +- Revert Joshua Kwan's patch committed 11 Sep 2009. + + Some systems poll function sets POLLHUP in revents without setting + POLLIN, and sets POLLERR without setting POLLIN and POLLOUT. In some + libcurl code execution paths this could trigger busy wait loops with + high CPU usage until a timeout condition aborted the loop. + + The reverted patch addressed the above issue for a very specific case, + when awaiting c-ares to resolve. A libcurl-wide fix for Curl_poll now + superceeds this one. + +Guenter Knauf (11 Sep 2009) +- Joshua Kwan provided a patch to pass POLLERR / POLLHUP back to c-ares. + This fixes a loop problem with high CPU usage. + +Daniel Stenberg (10 Sep 2009) +- Claes Jakobsson fixed a problem with cookie expiry dates at exctly the epoch + start second "Thu Jan 1 00:00:00 GMT 1970" as the date parser then returns 0 + which internally then is treated as a session cookie. That particular date + is now made to get the value of 1. + +Daniel Stenberg (2 Sep 2009) +- Daniel Johnson found a flaw in the code converting sftp-errors to libcurl + errors. + +Daniel Stenberg (1 Sep 2009) +- Peter Sylvester made a debug feature for Curl_resolv() that now will force + libcurl to resolve 'localhost' whatever name you use in the URL *if* you set + the --interface option to (exactly) "LocalHost". This will enable us to + write tests for custom hosts names but still use a local host server. + +- configure now tries to use pkg-config for a number of sub-dependencies even + when cross-compiling. The key to success is then you properly setup + PKG_CONFIG_PATH before invoking configure. + + I also improved how NSS is detected by trying nss-config if pkg-config isn't + present, and as a last resort just use the lib name and force the user to + setup the LIBS/LDFLAGS/CFLAGS etc properly. The previous last resort would + add a range of various libs that would almost never be quite correct. + +Daniel Stenberg (31 Aug 2009) +- When using the multi interface with FTP and you asked for NOBODY, you did no + QUOTE commands and the request used the same path as the connection had + already changed to, it would decide that no commands would be necessary for + the "DO" action and that was not handled properly but libcurl would instead + hang. + +Kamil Dudka (28 Aug 2009) +- Improved error message for not matching certificate subject name in + libcurl-NSS. Originally reported at: + https://bugzilla.redhat.com/show_bug.cgi?id=516056#c9 + +Patrick Monnerat (24 Aug 2009) +- Introduced a SYST-based test to properly set-up name format when dealing + with the OS/400 FTP server. + +- Fixed an ftp_readresp() bug preventing detection of failing control socket + and causing FTP client to loop forever. + +Daniel Stenberg (24 Aug 2009) +- Marc de Bruin pointed out that configure --with-gnutls=PATH didn't work + properly and provided a fix. http://curl.haxx.se/bug/view.cgi?id=2843008 + +- Eric Wong introduced support for the new option -T. (dot) that makes curl + read stdin in a non-blocking fashion. This also brings back -T- (minus) to + the previous blocking behavior since it could break stuff for people at + times. + +Michal Marek (21 Aug 2009) +- With CURLOPT_PROXY_TRANSFER_MODE, avoid sending invalid URLs like + ftp://example.com;type=i if the user specified ftp://example.com without the + slash. + +Daniel Stenberg (21 Aug 2009) +- Andre Guibert de Bruet pointed out a missing return code check for a + strdup() that could lead to segfault if it returned NULL. I extended his + suggest patch to now have Curl_retry_request() return a regular return code + and better check that. + +- Lots of good work by Krister Johansen, mostly related to pipelining: + + Fix SIGSEGV on free'd easy_conn when pipe unexpectedly breaks + Fix data corruption issue with re-connected transfers + Fix use after free if we're completed but easy_conn not NULL + +Kamil Dudka (13 Aug 2009) +- Changed NSS code to not ignore the value of ssl.verifyhost and produce more + verbose error messages. Originally reported at: + https://bugzilla.redhat.com/show_bug.cgi?id=516056 + +Daniel Stenberg (12 Aug 2009) +- Karl Moerder fixed the Makefile.vc* makefiles to include the new file + nonblock.c so that they work fine again + +- I expanded test 517 with a bunch of more dates that originate from the + Chrome browser test suite. It turns out most of them get parsed the same + way. + +Version 7.19.6 (12 August 2009) + +Daniel Stenberg (12 Aug 2009) +- Carsten Lange reported a bug and provided a patch for TFTP upload and the + sending of the TSIZE option. I don't like fixing bugs just hours before + a release, but since it was broken and the patch fixes this for him I decided + to get it in anyway. + +Daniel Stenberg (11 Aug 2009) +- Peter Sylvester made the HTTPS test server use specific certificates for + each test, so that the test suite can now be used to actually test the + verification of cert names etc. This made an error show up in the OpenSSL- + specific code where it would attempt to match the CN field even if a + subjectAltName exists that doesn't match. This is now fixed and verified + in test 311. + +- Benbuck Nason posted the bug report #2835196 + (http://curl.haxx.se/bug/view.cgi?id=2835196), fixing a few compiler + warnings when mixing ints and bools. + +Daniel Fandrich (10 Aug 2009) +- Fixed a memory leak in the FTP code and an off-by-one heap buffer overflow. + +Daniel Fandrich (9 Aug 2009) +- Fixed some memory leaks in the command-line tool that caused most of the + torture tests to fail. + +Daniel Stenberg (2 Aug 2009) +- Curt Bogmine reported a problem with SNI enabled on a particular server. We + should introduce an option to disable SNI, but as we're in feature freeze + now I've addressed the obvious bug here (pointed out by Peter Sylvester): we + shouldn't try to enable SNI when SSLv2 or SSLv3 is explicitly selected. + Code for OpenSSL and GnuTLS was fixed. NSS doesn't seem to have a particular + option for SNI, or are we simply not using it? + +Daniel Stenberg (1 Aug 2009) +- Scott Cantor posted the bug report #2829955 + (http://curl.haxx.se/bug/view.cgi?id=2829955) mentioning the recent SSL cert + verification flaw found and exploited by Moxie Marlinspike. The presentation + he did at Black Hat is available here: + https://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Marlinspike + + Apparently at least one CA allowed a subjectAltName or CN that contain a + zero byte, and thus clients that assumed they would never have zero bytes + were exploited to OK a certificate that didn't actually match the site. Like + if the name in the cert was "example.com\0theatualsite.com", libcurl would + happily verify that cert for example.com. + + libcurl now better uses the length of the extracted name, not using the zero + termination for getting the string length. + + This fixing only made and needed in OpenSSL interfacing code. + +- Tanguy Fautre pointed out that OpenSSL's function RAND_screen() (present + only in some OpenSSL installs - like on Windows) isn't thread-safe and we + agreed that moving it to the global_init() function is a decent way to deal + with this situation. + +- Alexander Beedie provided the patch for a noproxy problem: If I have set + CURLOPT_NOPROXY to "*", or to a host that should not use a proxy, I actually + could still end up using a proxy if a proxy environment variable was set. + +Daniel Stenberg (27 Jul 2009) +- All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE and + CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to + send when using FTP, as a sign that libcurl shall simply ignore the response + from the server instead of treating it as an error. Not treating a 400+ FTP + response code as an error means that failed commands will not abort the + chain of commands, nor will they cause the connection to get disconnected. + +Daniel Stenberg (26 Jul 2009) +- Johan van Selst posted bug report #2825989 + (http://curl.haxx.se/bug/view.cgi?id=2825989) pointing out that + OpenSSL-powered libcurl didn't support the SHA-2 digest algorithm, and + provided the solution too: to use OpenSSL_add_all_algorithms() in addition + to the older SSLeay_* alternative. OpenSSL_add_all_algorithms was added in + OpenSSL 0.9.5 + +Daniel Stenberg (23 Jul 2009) +- Added CURLOPT_SSH_KNOWNHOSTS, CURLOPT_SSH_KEYFUNCTION, CURLOPT_SSH_KEYDATA. + They introduce known_host support for SSH keys to libcurl. See docs for + details. Note that this feature depends on a new enough libssh2 version, to + be supported in libssh2 1.2 and later (or current git repo at this time). + +Michal Marek (22 Jul 2009) +- David Binderman found a memory and fd leak in lib/gtls.c:load_file() + (https://bugzilla.novell.com/523919). When looking at the code, I found that + also the ptr pointer can leak. + +Kamil Dudka (20 Jul 2009) +- Claes Jakobsson improved the support for client certificates handling in + NSS-powered libcurl. Now the client certificates can be selected + automatically by a NSS built-in hook. Additionally pre-login to all PKCS11 + slots is no more performed. It used to cause problems with HW tokens. + +- Fixed reference counting for NSS client certificates. Now the PEM reader + module should be always properly unloaded on Curl_nss_cleanup(). If the + unload fails though, libcurl will try to reuse the already loaded instance. + +Daniel Fandrich (15 Jul 2009) +- Added nonblock.c to the non-automake makefiles (note that the dependencies + in the Watcom makefiles aren't quite correct). + +Michal Marek (15 Jul 2009) +- Changed the description of CURLINFO_OS_ERRNO to make it clear that the + errno is not reset on success. + +Guenter Knauf (14 Jul 2009) +- renamed generated config.h to curl_config.h to avoid any future clashes + with config.h from other projects. + +Daniel Stenberg (9 Jul 2009) +- Eric Wong introduced curlx_nonblock() that the curl tool now (re-)uses for + setting a file descriptor non-blocking. Used by the functionality Eric + himself brough on June 15th. + +Daniel Stenberg (8 Jul 2009) +- Constantine Sapuntzakis posted bug report #2813123 + (http://curl.haxx.se/bug/view.cgi?id=2813123) and an a patch that fixes the + problem: + + Url A is accessed using auth. Url A redirects to Url B (on a different + server0. Url B reuses a persistent connection. Url B has auth, even though + it's on a different server. + + Note: if Url B does not reuse a persistent connection, auth is not sent. + + reason: + + data->state.first_host is not initialized becuase Curl_http_connect is not + called when a connection is reused. + + Solution: + + move initialization of data->state.first_host to Curl_http. No code before + Curl_http uses data->state.first_host anyway. + +Guenter Knauf (4 Jul 2009) +- Markus Koetter provided a patch to avoid getnameinfo() usage which broke a + couple of both IPv4 and IPv6 autobuilds. + +Daniel Stenberg (29 Jun 2009) +- Markus Koetter made CURLOPT_FTPPORT (and curl's -P/--ftpport) support a port + range if given colon-separated after the host name/address part. Like + "192.168.0.1:2000-10000" + +- Modified the separators used for CURLOPT_CERTINFO in multi-part outputs. I + don't know how they got wrong in the first place, but using this output + format makes it possible to quite easily separate the string into an array + of multiple items. + +Daniel Fandrich (16 June 2009) +- Added a few more compiler warning options for gcc. + +Daniel Stenberg (16 Jun 2009) +- Reuven Wachtfogel made curl -o - properly produce a binary output on windows + (no newline translations). Use -B/--use-ascii if you rather get the ascii + approach. + +Michal Marek (16 Jun 2009) +- When doing non-anonymous ftp via http proxies and the password is not + provided in the url, add it there (squid needs this). + +Daniel Stenberg (15 Jun 2009) +- Eric Wong's patch: + + This allows curl(1) to be used as a client-side tunnel for arbitrary stream + protocols by abusing chunked transfer encoding in both the HTTP request and + HTTP response. This requires server support for sending a response while a + request is still being read, of course. + + If attempting to read from stdin returns EAGAIN, then we pause our sender. + This leaves curl to attempt to read from the socket while reading from stdin + (and thus sending) is paused. + + This change was needed to allow successfully tunneling the git protocol over + HTTP (--no-buffer is needed, as well). + +Patrick Monnerat (15 Jun 2009) +- Replaced use of standard C library rand()/srand() by our own pseudo-random + number generator. + +Yang Tse (11 Jun 2009) +- I adapted testcurl script to allow building test harness programs when + cross-compiling for a *-*-mingw* host. + +Daniel Stenberg (10 Jun 2009) +- Fabian Keil ran clang on the (lib)curl code, found a bunch of warnings and + contributed a range of patches to fix them. + +Yang Tse (10 Jun 2009) +- I introduced configure script option --enable-curldebug which now allows + the decoupled enabling or disabling of the curl debug memory tracking + feature from the --enable-debug option which no longer controls this. + + curl --version will list 'Debug' feature for debug enabled builds, and + will list 'TrackMemory' feature for curl debug memory tracking capable + builds. These features are independent and can be controlled when running + the configure script. When --enable-debug is given both features will be + enabled, unless some restriction prevents memory tracking from being used. + + Internally, definition of preprocessor symbol DEBUGBUILD restricts code + which is only compiled for debug enabled builds. And symbol CURLDEBUG is + used to differentiate code which is _only_ used for memory tracking. + +Yang Tse (9 Jun 2009) +- Daniel Steinberg pointed out that Curl_FormInit() in formdata.c was not + initializing the fread callback pointer and this triggered a compiler + warning, also provided a friendly suggestion on how to fix it. + +Daniel Stenberg (8 Jun 2009) +- Claes Jakobsson provided a patch for libcurl-NSS that fixed a bad refcount + issue with client certs that caused issues like segfaults. + http://curl.haxx.se/mail/lib-2009-05/0316.html + +- Triggered by bug report #2798852 and the patch in there, I fixed configure + to detect gnutls build options with pkg-config only and not libgnutls-config + anymore since GnuTLS has stopped distributing that tool. If an explicit path + is given to configure, we will instead guess on how to link and use that + lib. I did not use the patch from the bug report. + +Yang Tse (8 Jun 2009) +- Igor Novoseltsev adjusted Makefile.vxworks to get sources and headers + included from Makefile.inc, and provided docs\INSTALL VxWorks section. + +- I removed buildconf.bat from release and daily snapshot archives. This + file is only for CVS tree checkout builds. + +Daniel Stenberg (8 Jun 2009) +- Eric Wong fixed --no-buffer to actually switch off output buffering. Been + broken since 7.19.0 + +Bill Hoffman (6 Jun 2009) +- Added some cmake docs and fixed socklen_t in the build. + +Yang Tse (5 Jun 2009) +- John E. Malmberg provided VMS specific patch: "This fixes an existing bug + in urlglob.c where it was not converting the Curl Unix exit code to a VMS + DCL compatible exit code. This fix required the enhancement described next. + This also adds an enhancement to main.c so that when curl is run under a + Unix shell like Bash on VMS, it will return the standard Unix exit codes + and messages." And another patch for docs/examples. + + I introduced os-specific.c and os-specific.h for use in curl tool code + and adjusted John E. Malmberg's patch placement to use these new files + as an effort to prevent main.c from growing ad infinitum. Code already + existing in main.c which is OS specific should be moved into these files. + +Daniel Stenberg (4 June 2009) +- Setting the Content-Length: header from your app when you do a POST or PUT + is almost always a VERY BAD IDEA. Yet there are still apps out there doing + this, and now recently it triggered a bug/side-effect in libcurl as when + libcurl sends a POST or PUT with NTLM, it sends an empty post first when it + knows it will just get a 401/407 back. If the app then replaced the + Content-Length header, it caused the server to wait for input that libcurl + wouldn't send. Aaron Oneal reported this problem in bug report #2799008 + (http://curl.haxx.se/bug/view.cgi?id=2799008) and helped us verify the fix. + +Yang Tse (4 Jun 2009) +- Igor Novoseltsev provided patches and information, that after some + adjustments to better fit curl's way of doing things, have resulted + in the posibility of building libcurl for VxWorks. + +Daniel Fandrich (2 June 2009) +- Checked in a Google Android make file. To use it, you must first + create a config.h file by running configure in the Android environment, + which doesn't seem to be easy to do. If no easy way can be found, a + static config-android.h may need to be created and checked in to the + libcurl source tree. + +Daniel Stenberg (1 June 2009) +- Claes Jakobsson fixed the configure script to better find and use NSS + without pkg-config. + +Yang Tse (1 Jun 2009) +- John E. Malmberg provided a VMS specific clean-up for curl.h, and pointed + out that the configure script was failing to detect the timeval struct on + VMS when building with _XOPEN_SOURCE_EXTENDED undefined due to definition + taking place in socket.h instead of time.h. I have adjusted configure + script to also include this header when checking struct timeval. + +Daniel Stenberg (27 May 2009) +- Frank McGeough provided a small OpenSSL #include fix to make libcurl compile + fine with Nokia 5th edition 1.0 SDK for Symbian. + +- Andre Guibert de Bruet found a call to a OpenSSL function that didn't check + for a failure properly. + +- Mike Crowe pointed out that setting CURLOPT_USERPWD to NULL used to clear + the auth credentials back in 7.19.0 and earlier while now you have to set "" + to get the same effect. His patch brings back the ability to use NULL. + +- Claes Jakobsson fixed libcurl-NSS to build fine even without the + PK11_CreateGenericObject() function. + +Daniel Stenberg (25 May 2009) +- bug report #2796358 (http://curl.haxx.se/bug/view.cgi?id=2796358) pointed + out that the cookie parser would leak memory when it parses cookies that are + received with domain, path etc set multiple times in the same header. While + such a cookie is questionable, they occur in the wild and libcurl no longer + leaks memory for them. I added such a header to test case 8. + +Daniel Fandrich (22 May 2009) +- Removed some obsolete digest code that caused a valgrind error in test 551. + +Daniel Fandrich (20 May 2009) +- Added "non-existing host" test keywords to make it easy to skip those + tests on machines that have broken DNS configurations (such as + those configured to use OpenDNS). + +Daniel Stenberg (19 May 2009) +- Kamil Dudka brought the patch from the Redhat bug entry + https://bugzilla.redhat.com/show_bug.cgi?id=427966 which was libcurl closing + a bad file descriptor when closing down the FTP data connection. Caolan + McNamara seems to be the original author of it. + +Version 7.19.5 (18 May 2009) + +Daniel Stenberg (17 May 2009) +- James Bursa posted a patch to the mailing list that fixed a problem with + no_proxy which made it not skip the proxy if the URL entered contained a + user name. I added test case 1101 to verify. + +Daniel Stenberg (11 May 2009) +- Balint Szilakszi reported a memory leak when libcurl did gzip decompression + of streams that had some parts (legitimately) missing. We now provide and use + a proper cleanup function for the content encoding submodule. + http://curl.haxx.se/mail/lib-2009-05/0092.html + +- Kamil Dudka provided a fix for libcurl-NSS reported by Michael Cronenworth + at https://bugzilla.redhat.com/show_bug.cgi?id=453612#c12 + + If an incorrect password is given while loading a private key, libcurl ends + up in an infinite loop consuming memory. The bug is critical. + +- I fixed the problem with doing NTLM, POST and then following a 302 redirect, + as reported by Ebenezer Ikonne (on curl-users) and Laurent Rabret (on + curl-library). The transfer was mistakenly marked to get more data to send + but since it didn't actually have that, it just hung there... + +Daniel Stenberg (10 May 2009) +- Andre Guibert de Bruet correctly pointed out an over-alloc with one wasted + byte in the digest code. + +Yang Tse (9 May 2009) +- Removed DOS and TPF package's subdirectory Makefile.am, it was only used + to include some files in the distribution tarball serving no other purpose. + Files from the DOS and TPF subdirectories are now included in the EXTRA_DIST + of the Makefile in the parent subdirectory. + +Yang Tse (8 May 2009) +- Changed host name literal in several tests to one under the haxx.se domain. + +- Renamed vc6 workspace and project files to avoid filename clash when used + for conversion to later VS versions. + +Daniel Stenberg (8 May 2009) +- Constantine Sapuntzakis fixed bug report #2784055 + (http://curl.haxx.se/bug/view.cgi?id=2784055) identifying a problem to + connect to SOCKS proxies when using the multi interface. It turned out to + almost not work at all previously. We need to wait for the TCP connect to + be properly verified before doing the SOCKS magic. + + There's still a flaw in the FTP code for this. + +Daniel Stenberg (7 May 2009) +- Made the SO_SNDBUF setting for the data connection socket for ftp uploads as + well. See change 28 Apr 2009. + +Yang Tse (7 May 2009) +- Fixed an issue affecting FTP transfers, introduced with the transfer.c + patch committed May 4. + +Daniel Stenberg (7 May 2009) +- Man page *roff problems fixed thanks to input from Colin Watson. Problems + reported in the Debian package. + +- Vijay G filed bug report #2723236 + (http://curl.haxx.se/bug/view.cgi?id=2723236) identifying a problem with + libcurl's TFTP code and its lack of dealing with the OACK packet. + +Yang Tse (5 May 2009) +- Fixed the --ftp-port address of test #251 to the CLIENTIP address, and + reverted the change affecting test suite harness committed 4 May. + +Daniel Stenberg (5 May 2009) +- Inspired by Michael Smith's session id fix for OpenSSL, I did the + corresponding fix in the GnuTLS code: make sure to store the new session id + in case the previous re-used one is rejected. + +Daniel Stenberg (4 May 2009) +- Michael Smith posted bug report #2786255 + (http://curl.haxx.se/bug/view.cgi?id=2786255) with a patch, identifying how + libcurl did not deal with SSL session ids properly if the server rejected a + re-use of one. Starting now, it will forget the rejected one and remember + the new. This change was for OpenSSL only, it is likely that other SSL lib + code needs similar fixes. + +Yang Tse (4 May 2009) +- Applied David McCreedy's "transfer.c fixes for CURL_DO_LINEEND_CONV and + non-ASCII platform HTTP requests" patch addressing two HTTP PUT problems: + 1) On non-ASCII platforms not all of the protocol portions of the PUT are + being translated to ASCII. 2) On all platforms the line endings of part of + the protocol portions are mangled from CRLF to CRCRLF if data->set.crlf or + data->set.prefer_ascii are set (depending on CURL_DO_LINEEND_CONV). + +- Applied David McCreedy's patch to fix test suite harness to allow test FTP + server and client on different machines, providing FTP client address when + running the FTP test server. + +Daniel Fandrich (3 May 2009) +- Added and disabled test case 563 which shows KNOWN_BUGS #59. The bug + report failed to mention that a proxy must be used to reproduce it. + +Yang Tse (2 May 2009) +- Use a build-time configured curl_socklen_t data type instead of socklen_t. + +Yang Tse (1 May 2009) +- Applied David McCreedy's patches "TPF-platform specific changes to various + files" and "http.c fix to Curl_proxyCONNECT for non-ASCII platforms", the + former with minor edits. + +Daniel Stenberg (30 Apr 2009) +- I was going to fix issue #59 in KNOWN_BUGS + + If the CURLOPT_PORT option is used on an FTP URL like + "ftp://example.com/file;type=A" the ";type=A" is stripped off. + + I added test case 562 to verify, only to find out that I couldn't repeat + this bug so I hereby consider it not a bug anymore! + +Daniel Stenberg (29 Apr 2009) +- Based on bug report #2723219 (http://curl.haxx.se/bug/view.cgi?id=2723219) + I've now made TFTP "connections" not being kept for re-use within libcurl. + TFTP is UDP-based so the benefit was really low (if even existing) to begin + with so instead of tracking down to fix this problem we instead removed the + re-use. I also enabled test case 1099 that I wrote a few days ago to verify + that this change fixes the reported problem. + +Daniel Stenberg (28 Apr 2009) +- Constantine Sapuntzakis filed bug report #2783090 + (http://curl.haxx.se/bug/view.cgi?id=2783090) pointing out that on windows + we need to grow the SO_SNDBUF buffer somewhat to get really good upload + speeds. http://support.microsoft.com/kb/823764 has the details. Friends + confirmed that simply adding 32 to CURL_MAX_WRITE_SIZE is enough. + +- Bug report #2709004 (http://curl.haxx.se/bug/view.cgi?id=2709004) by Tim + Chen pointed out how curl couldn't upload with resume when reading from a + pipe. + + This ended up with the introduction of a new return code for the + CURLOPT_SEEKFUNCTION callback that basically says that the seek failed but + that libcurl may try to resolve the situation anyway. In our case this means + libcurl will attempt to instead read that much data from the stream instead + of seeking and that way curl can now upload with resume when data is read + from a stream! + +Daniel Stenberg (26 Apr 2009) +- Bug report #2779733 (http://curl.haxx.se/bug/view.cgi?id=2779733) by Sven + Wegener pointed out that CURLINFO_APPCONNECT_TIME didn't work with the multi + interface and provided a patch that fixed the problem! + +Daniel Stenberg (24 Apr 2009) +- Kamil Dudka fixed another NSS-related leak when client certs were used. + +- Bug report #2779245 (http://curl.haxx.se/bug/view.cgi?id=2779245) by Rainer + Koenig pointed out that the man page didn't tell that the *_proxy + environment variables can be specified lower case or UPPER CASE and the + lower case takes precedence, + +Daniel Fandrich (21 Apr 2009) +- Added new libcurl source files to Amiga, RiscOS and VC6 build files. + +Yang Tse (21 Apr 2009) +- Moved potential inclusion of system's malloc.h and memory.h header files to + setup_once.h. Inclusion of each header file is based on the definition of + NEED_MALLOC_H and NEED_MEMORY_H respectively. + + Renamed libcurl's memory.h to curl_memory.h + +Daniel Stenberg (20 Apr 2009) +- Leanic Lefever reported a crash and did some detailed research on why and + how it occurs (http://curl.haxx.se/mail/lib-2009-04/0289.html). The + conclusion was that if an error is detected and Curl_done() is called for + the connection, ftp_done() could at times return another error code that + then would take precedence and that new code confused existing logic that + works for the first error code (CURLE_SEND_ERROR) only. + +- Gisle Vanem noticed that --libtool would produce bogus strings at times for + OBJECTPOINT options. Now we've introduced a new function - my_setopt_str - + within the app for setting plain string options to avoid the risk of this + mistake happening. + +Daniel Stenberg (17 Apr 2009) +- Pramod Sharma reported and tracked down a bug when doing FTP over a HTTP + proxy. libcurl would then wrongly close the connection after each + request. In his case it had the weird side-effect that it killed NTLM auth + for the proxy causing an inifinite loop! + + I added test case 1098 to verify this fix. The test case does however not + properly verify that the transfers are done persistently - as I couldn't + think of a clever way to achieve it right now - but you need to read the + stderr output after a test run to see that it truly did the right thing. + +Daniel Stenberg (13 Apr 2009) +- bug report #2727981 (http://curl.haxx.se/bug/view.cgi?id=2727981) by Martin + Storsjö pointed out how setting CURLOPT_NOBODY to 0 could be downright + confusing as it set the method to either GET or HEAD. The example he showed + looked like: + + curl_easy_setopt(curl, CURLOPT_PUT, 1); + curl_easy_setopt(curl, CURLOPT_NOBODY, 0); + + The new way doesn't alter the method until the request is about to start. If + CURLOPT_NOBODY is then 1 the HTTP request will be HEAD. If CURLOPT_NOBODY is + 0 and the request happens to have been set to HEAD, it will then instead be + set to GET. I believe this will be less surprising to users, and hopefully + not hit any existing users badly. + +- Toshio Kuratomi reported a memory leak problem with libcurl+NSS that turned + out to be leaking cacerts. Kamil Dudka helped me complete the fix. The issue + is found in Redhat's bug tracker: + https://bugzilla.redhat.com/show_bug.cgi?id=453612 + + There are still memory leaks present, but they seem to have other reasons. + +Daniel Fandrich (11 Apr 2009) +- Added new libcurl source files to Symbian OS build files. +- Improved Symbian support for SSL. + +Yang Tse (10 Apr 2009) +- Daniel Johnson improved the MacOSX-Framework shell script to now perform all + the steps required to build a Mac OS X four way fat ppc/i386/ppc64/x86_64 + libcurl.framework. Four way fat framework requires OS X 10.5 SDK or later. + +Yang Tse (8 Apr 2009) +- Removed Sun compilers preprocessor block from curlbuild.h.dist, this also + removes it from the curlbuild.h file originally distributed by the cURL + project as this file is intended for systems not capable of running the + configure script. For those who have been building curl out of the source + code curl distribution tarball provided by curl.haxx.se the change implies + nothing. Previous change in this area committed 2 Apr becomes irrelevant. + +Daniel Stenberg (6 Apr 2009) +- I clarified in the docs that CURLOPT_SEEKFUNCTION should return 0 on success + and 1 on fatal errors. Previously it only mentioned non-zero on fatal + errors. This is a slight change in meaning, but it follows what we've done + elsewhere before and it opens up for LOTS of more useful return codes + whenever we can think of them... + +Yang Tse (2 Apr 2009) +- Fix curl_off_t definition for builds done using Sun compilers and a + non-configured libcurl. In this case curl_off_t data type was gated + to the off_t data type which depends on the _FILE_OFFSET_BITS. This + configuration is exactly the unwanted configuration for our curl_off_t + data type which must not depend on such setting. This breaks ABI for + libcurl libraries built with Sun compilers which were built without + having run the configure script with _FILE_OFFSET_BITS different than + 64 and using the ILP32 data model. + +Daniel Stenberg (1 Apr 2009) +- Andre Guibert de Bruet fixed a NULL pointer use in an infof() call if a + strdup() call failed. + +Daniel Fandrich (31 Mar 2009) +- Properly return an error code in curl_easy_recv (reported by Jim Freeman). + +Daniel Stenberg (18 Mar 2009) +- Kamil Dudka brought a patch that enables 6 additional crypto algorithms when + NSS is used. These ciphers were added in NSS 3.4 and require to be enabled + explicitly. + +Daniel Stenberg (13 Mar 2009) +- Use libssh2_version() to present the libssh2 version in case the libssh2 + library is found to support it. + +Yang Tse (12 Mar 2009) +- Added missing Curl_read() return code checking in TELNET transfers. + +- Pierre Brico found and fixed TELNET transfers not being aborted upon + a write callback failure. + +Daniel Stenberg (11 Mar 2009) +- Kamil Dudka made the curl tool properly call curl_global_init() before any + other libcurl function. + +Yang Tse (11 Mar 2009) +- Added missing TELNET timeout support for Windows builds. This issue was + reported by Pierre Brico. + +Daniel Stenberg (9 Mar 2009) +- Frank Hempel found out a bug and provided the fix: + + curl_easy_duphandle did not necessarily duplicate the CURLOPT_COOKIEFILE + option. It only enabled the cookie engine in the destination handle if + data->cookies is not NULL (where data is the source handle). In case of a + newly initialized handle which just had the cookie support enabled by a + curl_easy_setopt(handle, CURL_COOKIEFILE, "")-call, handle->cookies was + still NULL because the setopt-call only appends the value to + data->change.cookielist, hence duplicating this handle would not have the + cookie engine switched on. + + We also concluded that the slist-functionality would be suitable for being + put in its own module rather than simply hanging out in lib/sendf.c so I + created lib/slist.[ch] for them. + +- Andreas Farber made the 'buildconf' script check for the presence of m4 + scripts to make it detect a bad checkout earlier. People with older + checkouts who don't do cvs update with the -d option won't get the new dirs + and then will get funny outputs that can be a bit hard to understand and + fix. + +Daniel Stenberg (8 Mar 2009) +- Andre Guibert de Bruet found and fixed a code segment in ssluse.c where the + allocation of the memory BIO was not being properly checked. + +- Andre Guibert de Bruet fixed the gnutls-using code: There are a few places + in the gnutls code where we were checking for negative values for errors, + when the man pages state that GNUTLS_E_SUCCESS is returned on success and + other values indicate error conditions. + +- Bill Egert pointed out (http://curl.haxx.se/bug/view.cgi?id=2671602) that + curl didn't use sprintf() in a way that is documented to work in POSIX but + since we use our own printf() code (from libcurl) that shouldn't be a + problem. Nonetheless I modified the code to not rely on such particular + features and to not cause further raised eyebrowse with no good reason. + +Daniel Fandrich (5 Mar 2009) +- Expanded the security section of the libcurl-tutorial man page to cover + more issues for authors to consider when writing robust libcurl-using + applications. + +Yang Tse (5 Mar 2009) +- Fixed NTLM authentication memory leak on SSPI enabled Windows builds. This + issue was noticed by Chris Deidun. + +Daniel Fandrich (4 Mar 2009) +- Fixed a problem with m4 quoting in the OpenSSL configure check reported + by Daniel Johnson. + +Daniel Stenberg (3 Mar 2009) +- David James brought a patch that make libcurl close (all) dead connections + whenever you attempt to open a new connection. + + 1. After cleaning up a dead connection, "continue" instead of + returning FALSE. This ensures that we clean up all dead connections, + rather than just cleaning up the first dead connection. + 2. Move up the cleanup for dead connections so that it occurs for + all connections, rather than just the connections which have the same + preferences as our current new connection. + +Version 7.19.4 (3 March 2009) + +Daniel Stenberg (3 Mar 2009) +- David Kierznowski notified us about a security flaw + (http://curl.haxx.se/docs/adv_20090303.html also known as CVE-2009-0037) in + which previous libcurl versions (by design) can be tricked to access an + arbitrary local/different file instead of a remote one when + CURLOPT_FOLLOWLOCATION is enabled. This flaw is now fixed in this release + together this the addition of two new setopt options for controlling this + new behavior: + + o CURLOPT_REDIR_PROTOCOLS controls what protocols libcurl is allowed to + follow to when CURLOPT_FOLLOWLOCATION is enabled. By default, this option + excludes the FILE and SCP protocols and thus you nee to explicitly allow + them in your app if you really want that behavior. + + o CURLOPT_PROTOCOLS controls what protocol(s) libcurl is allowed to fetch + using the primary URL option. This is useful if you want to allow a user or + other outsiders control what URL to pass to libcurl and yet not allow all + protocols libcurl may have been built to support. + +Daniel Stenberg (27 Feb 2009) +- Senthil Raja Velu reported a problem when CURLOPT_INTERFACE and + CURLOPT_LOCALPORT were used together (the local port bind failed), and + Markus Koetter provided the fix! + +Daniel Stenberg (25 Feb 2009) +- As Daniel Fandrich figured out, we must do the GnuTLS initing in the + curl_global_init() function to properly maintain the performing functions + thread-safe. We've previously (28 April 2007) moved the init to a later time + just to avoid it to fail very early when libgcrypt dislikes the situation, + but that move was bad and the fix should rather be in libgcrypt or + elsewhere. + +Daniel Stenberg (24 Feb 2009) +- Brian J. Murrell found out that Negotiate proxy authentication didn't work. + It happened because the code used the struct for server-based auth all the + time for both proxy and server auth which of course was wrong. + +Daniel Stenberg (23 Feb 2009) +- After a bug reported by James Cheng I've made curl_easy_getinfo() for + CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return + -1 if the sizes aren't know. Previously these returned 0, make it impossible + to detect the difference between actually zero and unknown. + +Yang Tse (23 Feb 2009) +- Daniel Johnson provided a shell script that will perform all the steps needed + to build a Mac OS X fat ppc/i386 or ppc64/x86_64 libcurl.framework + +Daniel Stenberg (23 Feb 2009) +- I renamed everything in the windows builds files that used the name 'curllib' + to the proper 'libcurl' as clearly this caused confusion. + +Yang Tse (20 Feb 2009) +- Do not halt compilation when using VS2008 to build a Windows 2000 target. + +Daniel Stenberg (20 Feb 2009) +- Linus Nielsen Feltzing reported and helped me repeat and fix a problem with + FTP with the multi interface: when a transfer fails, like when aborted by a + write callback, the control connection was wrongly closed and thus not + re-used properly. + + This change is also an attempt to cleanup the code somewhat in this area, as + now the FTP code attempts to keep (better) track on pending responses + necessary to get read in ftp_done(). + +Daniel Stenberg (19 Feb 2009) +- Patrik Thunstrom reported a problem and helped me repeat it. It turned out + libcurl did a superfluous 1000ms wait when doing SFTP downloads! + + We read data with libssh2 while doing the "DO" operation for SFTP and then + when we were about to start getting data for the actual file part, the + "TRANSFER" part, we waited for socket action (in 1000ms) before doing a + libssh2-read. But in this case libssh2 had already read and buffered the + data so we ended up always just waiting 1000ms before we get working on the + data! + +Patrick Monnerat (18 Feb 2009) +- FTP downloads (i.e.: RETR) ending with code 550 now return error + CURLE_REMOTE_FILE_NOT_FOUND instead of CURLE_FTP_COULDNT_RETR_FILE. + +Daniel Stenberg (17 Feb 2009) +- Kamil Dudka made NSS-powered builds compile and run again! + +- A second follow-up change by Andre Guibert de Bruet to fix a related memory + leak like that fixed on the 14th. When zlib returns failure, we need to + cleanup properly before returning error. + +- CURLOPT_FTP_CREATE_MISSING_DIRS can now be set to 2 in addition to 1 for + plain FTP connections, and it will then allow MKD to fail once and retry the + CWD afterwards. This is especially useful if you're doing many simultanoes + connections against the same server and they all have this option enabled, + as then CWD may first fail but then another connection does MKD before this + connection and thus MKD fails but trying CWD works! The numbers can + (should?) now be set with the convenience enums now called + CURLFTP_CREATE_DIR and CURLFTP_CREATE_DIR_RETRY. + + Tests has proven that if you're making an application that uploads a set of + files to an ftp server, you will get a noticable gain in speed if you're + using multiple connections and this option will be then be very useful. + +Daniel Stenberg (14 Feb 2009) +- Andre Guibert de Bruet found and fixed a memory leak in the content encoding + code, which could happen on libz errors. + +Daniel Fandrich (12 Feb 2009) +- Added support for Digest and NTLM authentication using GnuTLS. + +Daniel Stenberg (11 Feb 2009) +- CURLINFO_CONDITION_UNMET was added to allow an application to get to know if + the condition in the previous request was unmet. This is typically a time + condition set with CURLOPT_TIMECONDITION and was previously not possible to + reliably figure out. From bug report #2565128 + (http://curl.haxx.se/bug/view.cgi?id=2565128) filed by Jocelyn Jaubert. + +Daniel Fandrich (4 Feb 2009) +- Don't add the standard /usr/lib or /usr/include paths to LDFLAGS and CPPFLAGS + (respectively) when --with-ssl=/usr is used (patch based on FreeBSD). + +- Added an explicit buffer limit check in msdosify() (patch based on FreeBSD). + This couldn't ever overflow in curl, but might if the code were used + elsewhere or under different conditions. + +Daniel Stenberg (3 Feb 2009) +- Hidemoto Nakada provided a small fix that makes it possible to get the + CURLINFO_CONTENT_LENGTH_DOWNLOAD size from file:// "transfers" with + CURLOPT_NOBODY set true. + +Daniel Stenberg (2 Feb 2009) +- Patrick Scott found a rather large memory leak when using the multi + interface and setting CURLMOPT_MAXCONNECTS to something less than the number + of handles you add to the multi handle. All the connections that didn't fit + in the cache would not be properly disconnected nor freed! + +- Craig A West brought us: libcurl now defaults to do CONNECT with HTTP + version 1.1 instead of 1.0 like before. This change also introduces the new + proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to + switch (back) to CONNECT 1.0 requests. The curl tool also got a --proxy1.0 + option that works exactly like --proxy but sets CURLPROXY_HTTP_1_0. + + I updated all test cases cases that use CONNECT and I tried to do some using + --proxy1.0 and some updated to do CONNECT 1.1 to get both versions run. + +Daniel Stenberg (31 Jan 2009) +- When building with c-ares 1.6.1 (not yet released) or later and IPv6 support + enabled, we can now take advantage of its brand new AF_UNSPEC support in + ares_gethostbyname(). This makes test case 241 finally run fine for me with + this setup since it now parses the "::1 ip6-localhost" line fine in my + /etc/hosts file! + +Daniel Stenberg (30 Jan 2009) +- Scott Cantor filed bug report #2550061 + (http://curl.haxx.se/bug/view.cgi?id=2550061) mentioning that I failed to + properly make sure that the VC9 makefiles got included in the latest + release. I've now fixed the release script and verified it so next release + will hopefully include them properly! + +Daniel Fandrich (30 Jan 2009) +- Fixed --disable-proxy for FTP and SOCKS. Thanks to Daniel Egger for + reporting. + +Yang Tse (29 Jan 2009) +- Introduced curl_sspi.c and curl_sspi.h for the implementation of functions + Curl_sspi_global_init() and Curl_sspi_global_cleanup() which previously were + named Curl_ntlm_global_init() and Curl_ntlm_global_cleanup() in http_ntlm.c + Also adjusted socks_sspi.c to remove the link-time dependency on the Windows + SSPI library using it now in the same way as it was done in http_ntlm.c. + +Daniel Stenberg (28 Jan 2009) +- Markus Moeller introduced two new options to libcurl: + CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC to allow libcurl + to do GSS-style authentication with SOCKS5 proxies. The curl tool got the + options called --socks5-gssapi-service and --socks5-gssapi-nec to enable + these. + +Daniel Stenberg (26 Jan 2009) +- Chad Monroe provided the new CURLOPT_TFTP_BLKSIZE option that allows an app + to set desired block size to use for TFTP transfers instead of the default + 512 bytes. + +- The "-no_ticket" option was introduced in Openssl0.9.8j. It's a flag to + disable "rfc4507bis session ticket support". rfc4507bis was later turned + into the proper RFC5077 it seems: http://tools.ietf.org/html/rfc5077 + + The enabled extension concerns the session management. I wonder how often + libcurl stops a connection and then resumes a TLS session. also, sending the + session data is some overhead. .I suggest that you just use your proposed + patch (which explicitly disables TICKET). + + If someone writes an application with libcurl and openssl who wants to + enable the feature, one can do this in the SSL callback. + + Sharad Gupta brought this to my attention. Peter Sylvester helped me decide + on the proper action. + +- Alexey Borzov filed bug report #2535504 + (http://curl.haxx.se/bug/view.cgi?id=2535504) pointing out that realms with + quoted quotation marks in HTTP Digest headers didn't work. I've now added + test case 1095 that verifies my fix. + +- Craig A West brought CURLOPT_NOPROXY and the corresponding --noproxy option. + They basically offer the same thing the NO_PROXY environment variable only + offered previously: list a set of host names that shall not use the proxy + even if one is specified. + +Daniel Fandrich (20 Jan 2009) +- Call setlocale() for libtest tests to test the effects of locale-induced + libc changes on libcurl. + +- Fixed a couple more locale-dependent toupper conversions, mainly for + clarity. This does fix one problem that causes ;type=i FTP URLs + to fail in the Turkish locale when CURLOPT_PROXY_TRANSFER_MODE is + used (test case 561) + +- Added tests 561 and 1091 through 1094 to test various combinations + of ;type= and ;mode= URLs that could potentially fail in the Turkish + locale. + +Daniel Stenberg (20 Jan 2009) +- Lisa Xu pointed out that the ssh.obj file was missing from the + lib/Makefile.vc6 file (and thus from the vc8 and vc9 ones too). + +Version 7.19.3 (19 January 2009) + +Daniel Stenberg (16 Jan 2009) +- Andrew de los Reyes fixed curlbuild.h for "generic" gcc builds on PPC, both + 32 bit and 64 bit. + +Daniel Stenberg (15 Jan 2009) +- Tim Ansell fixed a compiler warning in lib/cookie.c + +Daniel Stenberg (14 Jan 2009) +- Grant Erickson fixed timeouts for TFTP such that specifying a + connect-timeout, a max-time or both options work correctly and as expected + by passing the correct boolean value to Curl_timeleft via the + 'duringconnect' parameter. + + With this small change, curl TFTP now behaves as expected (and likely as + originally-designed): + + 1) For non-existent or unreachable dotted IP addresses: + + a) With no options, follows the default curl 300s timeout... + b) With --connect-timeout only, follows that value... + c) With --max-time only, follows that value... + d) With both --connect-timeout and --max-time, follows the smaller value... + + and times out with a "curl: (7) Couldn't connect to server" error. + + 2) For transfers to/from a valid host: + + a) With no options, follows default curl 300s timeout for the + first XRQ/DATA/ACK transaction and the default TFTP 3600s + timeout for the remainder of the transfer... + + b) With --connect-time only, follows that value for the + first XRQ/DATA/ACK transaction and the default TFTP 3600s + timeout for the remainder of the transfer... + + c) With --max-time only, follows that value for the first + XRQ/DATA/ACK transaction and for the remainder of the + transfer... + + d) With both --connect-timeout and --max-time, follows the former + for the first XRQ/DATA/ACK transaction and the latter for the + remainder of the transfer... + + and times out with a "curl: (28) Timeout was reached" error as + appropriate. + +Daniel Stenberg (13 Jan 2009) +- Michael Wallner fixed a NULL pointer deref when calling + curl_easy_setup(curl, CURLOPT_COOKIELIST, "SESS") on a CURL handle with no + cookies data. + +- Stefan Teleman brought a patch to fix the default curlbuild.h file for the + SunPro compilers. + +Daniel Stenberg (12 Jan 2009) +- Based on bug report #2498665 (http://curl.haxx.se/bug/view.cgi?id=2498665) + by Daniel Black, I've now added magic to the configure script that makes it + use pkg-config to detect gnutls details as well if the existing method + (using libgnutls-config) fails. While doing this, I cleaned up and unified + the pkg-config usage when detecting openssl and nss as well. + +Daniel Stenberg (11 Jan 2009) +- Karl Moerder brought the patch that creates vc9 Makefiles, and I made + 'maketgz' now use the actual makefile targets to do the VC8 and VC9 + makefiles. + +Daniel Stenberg (10 Jan 2009) +- Emil Romanus fixed: + + When using the multi interface over HTTP and the server returns a Location + header, the running easy handle will get stuck in the CURLM_STATE_PERFORM + state, leaving the external event loop stuck waiting for data from the + ingoing socket (when using the curl_multi_socket_action stuff). While this + bug was pretty hard to find, it seems to require only a one-line fix. The + break statement on line 1374 in multi.c caused the function to skip the call + to multistate(). + + How to reproduce this bug? Well, that's another question. evhiperfifo.c in + the examples directory chokes on this bug only _sometimes_, probably + depending on how fast the URLs are added. One way of testing the bug out is + writing to hiper.fifo from more than one source at the same time. + +Daniel Fandrich (7 Jan 2009) +- Unified much of the SessionHandle initialization done in Curl_open() and + curl_easy_reset() by creating Curl_init_userdefined(). This had the side + effect of fixing curl_easy_reset() so it now also resets + CURLOPT_FTP_FILEMETHOD and CURLOPT_SSL_SESSIONID_CACHE + +Daniel Stenberg (7 Jan 2009) +- Rob Crittenden did once again provide an NSS update: + + I have to jump through a few hoops now with the NSS library initialization + since another part of an application may have already initialized NSS by the + time Curl gets invoked. This patch is more careful to only shutdown the NSS + library if Curl did the initialization. + + It also adds in a bit of code to set the default ciphers if the app that + call NSS_Init* did not call NSS_SetDomesticPolicy() or set specific + ciphers. One might argue that this lets other application developers get + lazy and/or they aren't using the NSS API correctly, and you'd be right. + But still, this will avoid terribly difficult-to-trace crashes and is + generally helpful. + +Daniel Stenberg (1 Jan 2009) +- 'reconf' is removed since we rather have users use 'buildconf' + +Daniel Stenberg (31 Dec 2008) +- Bas Mevissen reported http://curl.haxx.se/bug/view.cgi?id=2479030 pointing + out that 'reconf' didn't properly point out the m4 subdirectory when running + aclocal. + +Daniel Stenberg (29 Dec 2008) + - Phil Lisiecki filed bug report #2413067 + (http://curl.haxx.se/bug/view.cgi?id=2413067) that identified a problem that + would cause libcurl to mark a DNS cache entry "in use" eternally if the + subsequence TCP connect failed. It would thus never get pruned and refreshed + as it should've been. + + Phil provided his own patch to this problem that while it seemed to work + wasn't complete and thus I wrote my own fix to the problem. + +Daniel Stenberg (28 Dec 2008) +- Peter Korsgaard fixed building libcurl with "configure --with-ssl + --disable-verbose". + +- Anthony Bryan fixed more language and spelling flaws in man pages. + +Daniel Stenberg (22 Dec 2008) +- Given a recent enough libssh2, libcurl can now seek/resume with SFTP even + on file indexes beyond 2 or 4GB. + +- Anthony Bryan provided a set of patches that cleaned up manual language, + corrected spellings and more. + +Daniel Stenberg (20 Dec 2008) +- Igor Novoseltsev fixed a bad situation for the multi_socket() API when doing + pipelining, as libcurl could then easily get confused and A) work on the + handle that was not "first in queue" on a pipeline, or even B) tell the app + to REMOVE a socket while it was in use by a second handle in a pipeline. Both + errors caused hanging or stalling applications. + +Daniel Stenberg (19 Dec 2008) +- curl_multi_timeout() could return a timeout value of 0 even though nothing + was actually ready to get done, as the internal time resolution is higher + than the returned millisecond timer. Therefore it could cause applications + running on fast processors to do short bursts of busy-loops. + curl_multi_timeout() will now only return 0 if the timeout is actually + alreay triggered. + +- Using the libssh2 0.19 function libssh2_session_block_directions(), libcurl + now has an improved ability to do right when the multi interface (both + "regular" and multi_socket) is used for SCP and SFTP transfers. This should + result in (much) less busy-loop situations and thus less CPU usage with no + speed loss. + +Daniel Stenberg (17 Dec 2008) +- SCP and SFTP with the multi interface had the same flaw: the 'DONE' + operation didn't complete properly if the EAGAIN equivalent was returned but + libcurl would simply continue with a half-completed close operation + performed. This ruined persistent connection re-use and cause some + SSH-protocol errors in general. The correction is unfortunately adding a + blocking function - doing it entirely non-blocking should be considered for + a better fix. + +Gisle Vanem (16 Dec 2008) +- Added the possibility to use the Watt-32 tcp/ip stack under Windows. + The change simply involved adding a USE_WATT32 section in the + config-win32.h files (under ./lib and ./src). This section disables + the use of any Winsock headers. + +Daniel Stenberg (16 Dec 2008) +- libssh2_sftp_last_error() was wrongly used at some places in libcurl which + made libcurl sometimes not properly abort problematic SFTP transfers. + +Daniel Stenberg (12 Dec 2008) +- More work with Igor Novoseltsev to first fix the remaining stuff for + removing easy handles from multi handles when the easy handle is/was within + a HTTP pipeline. His bug report #2351653 + (http://curl.haxx.se/bug/view.cgi?id=2351653) was also related and was + eventually fixed by a patch by Igor himself. + +Yang Tse (12 Dec 2008) +- Patrick Monnerat fixed a build regression, introduced in 7.19.2, affecting + OS/400 compilations with IPv6 enabled. + +Daniel Stenberg (12 Dec 2008) +- Mark Karpeles filed bug report #2416182 titled "crash in ConnectionExists + when using duphandle+curl_mutli" + (http://curl.haxx.se/bug/view.cgi?id=2416182) which showed that + curl_easy_duphandle() wrongly also copied the pointer to the connection + cache, which was plain wrong and caused a segfault if the handle would be + used in a different multi handle than the handle it was duplicated from. + +Daniel Stenberg (11 Dec 2008) +- Keshav Krity found out that libcurl failed to deal with dotted IPv6 + addresses if they were very long (>39 letters) due to a too strict address + validity parser. It now accepts addresses up to 45 bytes long. + +Daniel Stenberg (11 Dec 2008) +- Internet Explorer had a broken HTTP digest authentication before v7 and + there are servers "out there" that relies on the client doing this broken + Digest authentication. Apache even comes with an option to work with such + broken clients. + + The difference is only for URLs that contain a query-part (a '?'-letter and + text to the right of it). + + libcurl now supports this quirk, and you enable it by setting the + CURLAUTH_DIGEST_IE bit in the bitmask you pass to the CURLOPT_HTTPAUTH or + CURLOPT_PROXYAUTH options. They are thus individually controlled to server + and proxy. + + (note that there's no way to activate this with the curl tool yet) + +Daniel Fandrich (9 Dec 2008) +- Added test cases 1089 and 1090 to test --write-out after a redirect to + test a report that the size didn't work, but these test cases pass. + +- Documented CURLOPT_CONNECT_ONLY as being useful only on HTTP URLs. + +Daniel Stenberg (9 Dec 2008) +- Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume any + particular state for the control connection like it did before for implicit + FTPS (libcurl assumed such control connections to be encrypted while some + FTPS servers such as FileZilla assumes such connections to be clear + mode). Use the CURLOPT_USE_SSL option to set your desired level. + +Daniel Stenberg (8 Dec 2008) +- Fred Machado posted about a weird FTP problem on the curl-users list and when + researching it, it turned out he got a 550 response back from a SIZE command + and then I fell over the text in RFC3659 that says: + + The presence of the 550 error response to a SIZE command MUST NOT be taken + by the client as an indication that the file cannot be transferred in the + current MODE and TYPE. + + In other words: the change I did on September 30th 2008 and that has been + included in the last two releases were a regression and a bad idea. We MUST + NOT take a 550 response from SIZE as a hint that the file doesn't exist. + +- Christian Krause filed bug #2221237 + (http://curl.haxx.se/bug/view.cgi?id=2221237) that identified an infinite + loop during GSS authentication given some specific conditions. With his + patience and great feedback I managed to narrow down the problem and + eventually fix it although I can't test any of this myself! + +Daniel Fandrich (3 Dec 2008) +- Fixed the getifaddrs version of Curl_if2ip to work on systems without IPv6 + support (e.g. Minix) + +Daniel Stenberg (3 Dec 2008) +- Igor Novoseltsev filed bug #2351645 + (http://curl.haxx.se/bug/view.cgi?id=2351645) that identified a problem with + the multi interface that occured if you removed an easy handle while in + progress and the handle was used in a HTTP pipeline. + +- Pawel Kierski pointed out a mistake in the cookie code that could lead to a + bad fclose() after a fatal error had occured. + (http://curl.haxx.se/bug/view.cgi?id=2382219) + +Daniel Fandrich (25 Nov 2008) +- If a HTTP request is Basic and num is already >=1000, the HTTP test + server adds 1 to num to get the data section to return. This allows + testing authentication negotiations using the Basic authentication + method. + +- Added tests 1087 and 1088 to test Basic authentication on a redirect + with and without --location-trusted + +Daniel Stenberg (24 Nov 2008) +- Based on a patch by Vlad Grachov, libcurl now uses a new libssh2 0.19 + function when built to support SCP and SFTP that helps the library to know + in which direction a particular libssh2 operation would return EAGAIN so + that libcurl knows what socket conditions to wait for before trying the + function call again. Previously (and still when using libssh2 0.18 or + earlier), libcurl will busy-loop in this situation when the easy interface + is used! + +Daniel Fandrich (20 Nov 2008) +- Automatically detect OpenBSD's CA cert bundle. + +Daniel Stenberg (19 Nov 2008) +- I removed the default use of "Pragma: no-cache" from libcurl when a proxy is + used. It has been used since forever but it was never a good idea to use + unless explicitly asked for. + +- Josef Wolf's extension that allows a $TESTDIR/gdbinit$testnum file that when + you use runtests.pl -g, will be sourced by gdb to allow additional fancy or + whatever you see fit + +- Christian Krause reported and fixed a memory leak that would occur with HTTP + GSS/kerberos authentication (http://curl.haxx.se/bug/view.cgi?id=2284386) + +- Andreas Wurf and Markus Koetter helped me analyze a problem that Andreas got + when uploading files to a single FTP server using multiple easy handle + handles with the multi interface. Occasionally a handle would stall in + mysterious ways. + + The problem turned out to be a side-effect of the ConnectionExists() + function's eagerness to re-use a handle for HTTP pipelining so it would + select it even if already being in use, due to an inadequate check for its + chances of being used for pipelnining. + +Daniel Fandrich (17 Nov 2008) +- Added more compiler warning options for gcc 4.3 + +Yang Tse (17 Nov 2008) +- Fix a remaining problem in the inet_pton() runtime configure check. And + fix internal Curl_inet_pton() failures to reject certain malformed literals. + +- Make configure script check if ioctl with the SIOCGIFADDR command can be + used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate. + +Daniel Stenberg (16 Nov 2008) +- Christian Krause fixed a build failure when building with gss support + enabled and FTP disabled. + +- Added check for NULL returns from strdup() in src/main.c and lib/formdata.c + - reported by Jim Meyering also prevent buffer overflow on MSDOS when you do + for example -O on a url with a file name part longer than PATH_MAX letters + +- lib/nss.c fixes based on the report by Jim Meyering: I went over and added + checks for return codes for all calls to malloc and strdup that were + missing. I also changed a few malloc(13) to use arrays on the stack and a + few malloc(PATH_MAX) to instead use aprintf() to lower memory use. + +- I fixed a memory leak in Curl_nss_connect() when CURLOPT_ISSUERCERT is + in use. + +Daniel Fandrich (14 Nov 2008) +- Added .xml as one of the few common file extensions known by the multipart + form generator. + +- Added some #ifdefs around header files and change the EAGAIN test to + fix compilation on Cell (reported by Jeff Curley). + +Yang Tse (14 Nov 2008) +- Fixed several configure script issues affecting checks for inet_ntoa_r(), + inet_ntop(), inet_pton(), getifaddrs(), fcntl() and getaddrinfo(). + +Yang Tse (13 Nov 2008) +- Refactored configure script detection of functions used to set sockets into + non-blocking mode, and decouple function detection from function capability. + +Version 7.19.2 (13 November 2008) + +Michal Marek (13 Nov 2008) +- Fixed a potential data loss in Curl_client_write() when the transfer is + paused. + +Daniel Stenberg (11 Nov 2008) +- Rainer Canavan filed bug #2255627 + (http://curl.haxx.se/bug/view.cgi?id=2255627) which pointed out that a + program using libcurl's multi interface to download a HTTPS page with a + libcurl built powered by OpenSSL, would easily get silly and instead hand + over SSL details as data instead of the actual HTTP headers and body. This + happened because libcurl would consider the connection handshake done too + early. This problem was introduced at September 22nd 2008 with my fix of the + bug #2107377 + + The correct fix is now instead done within the GnuTLS-handling code, as both + the OpenSSL and the NSS code already deal with this situation in similar + fashion. I added test case 560 in an attempt to verify this fix, but + unfortunately it didn't trigger it even before this fix! + +Yang Tse (11 Nov 2008) +- Related with bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535) + Daniel Fandrich noticed that curl_addrinfo was also missing in the build + process of other four non-configure platforms. Added now. + +Daniel Fandrich (7 Nov 2008) +- The getifaddrs() version of Curl_if2ip() crashed when used on a Linux + system with a TEQL load-balancing device configured, which doesn't + have an address. Thanks to Adam Sampson for spotting this (bug #2234923). + +Yang Tse (6 Nov 2008) +- Merged existing IPv4 and IPv6 Curl_ip2addr functions into a single one + which now also takes a protocol address family argument. + +- Bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535) pointed out a + problem with MSVC 6 makefile that caused a build failure. It was noted that + the curl_addrinfo.obj reference was missing. I took the opportunity to sort + the list in which this was missing. Issue submitted by John Wilkinson. + +Version 7.19.1 (5 November 2008) + +Daniel Stenberg (4 Nov 2008) +- CURLINFO_FILETIME now works for file:// transfers as well + +Daniel Stenberg (3 Nov 2008) +- Bug #2218480 (http://curl.haxx.se/bug/view.cgi?id=2218480) pointed out a + problem with my CURLINFO_PRIMARY_IP fix from October 7th that caused a NULL + pointer read. I also took the opportunity to clean up this logic (storing of + the connection's IP address) somewhat as we had it stored in two different + places and ways previously and they are now unified. + +Yang Tse (3 Nov 2008) +- Fix undersized IPv6 address internal buffer. IPv6 address strings longer + than 35 characters would be truncated. + +Daniel Stenberg (2 Nov 2008) +- Daniel Johnson reported and fixed: + + When c-ares isn't enabled, libcurl by default calls getaddrinfo with family + set to PF_UNSPEC which causes getaddrinfo to return all available addresses, + both IPv4 and IPv6. Libcurl then tries each one until it can connect. If the + net connection doesn't support IPv6, libcurl can still fall back to IPv4. + + However, since c-ares doesn't support PF_UNSPEC, when it's used it defaults + to using family=PF_INET6 and therefore only returns IPv6 addresses when AAAA + records are available, even if IPv4 addresses are also available. The effect + is that since my ISP doesn't do IPv6, libcurl can't connect at all to a site + that has AAAA records. It will work if I explicitly use CURL_IPRESOLVE_V4 or + --ipv4 with the curl tool. I discovered this when curl would fail to connect + to seemingly random sites. It turns out they weren't random, they were sites + with AAAA records. + + So now libcurl defaults to PF_INET... until c-ares has been tought to offer + both. + +Yang Tse (31 Oct 2008) +- Tests 558 and 559 are stabilized. These two tests were initially introduced + to aid in the location of a seg-fault which was only triggered on non-debug + builds done with the icc 9.1 Intel compiler. Test 558 does not trigger the + problem, but test 559 does trigger it. As of today, it isn't yet absolutely + clear if it is a compiler optimizer issue or a memory corruption one. + +Yang Tse (30 Oct 2008) +- Use our Curl_addrinfo structure definition to handle address info data even + when a system addrinfo struct is available. Provide and use a wrapper around + systems getaddrinfo function, Curl_getaddrinfo_ex which returns a pointer to + a list of dynamically allocated Curl_addrinfo structs. + + Configure will check freeaddrinfo and getaddrinfo functions and define + preprocessor symbols HAVE_FREEADDRINFO and HAVE_GETADDRINFO when appropriate. + +Daniel Fandrich (29 Oct 2008) +- Fixed a bug that caused a few bytes of garbage to be sent after a + curl_easy_pause() during a chunky upload. Reported by Steve Roskowski. + +Daniel Fandrich (28 Oct 2008) +- Changed the "resolve" test precheck program to verify that an IPv6 socket + can be created before resolving the IPv6 name. In the context of running + a test, it doesn't make sense to run an IPv6 test when a host is resolvable + but IPv6 isn't usable. This should fix failures of test 1085 on hosts with + library and DNS support for IPv6 but where actual use of IPv6 has been + administratively disabled. + +Daniel Fandrich (24 Oct 2008) +- Added experimental support for zlib and OpenSSL on Symbian OS. + +Daniel Fandrich (21 Oct 2008) +- Fixed some problems with SFTP range support to fix test cases 634 through + 637. + +Daniel Fandrich (17 Oct 2008) +- Fixed a compile error reported by Albert Chin on AIX and IRIX when using + GTLS. + +Daniel Stenberg (16 Oct 2008) +- Igor Novoseltsev added CURLOPT_PROXYUSER and CURLOPT_PROXYPASSWORD that then + make CURLOPT_PROXYUSERPWD sort of deprecated. The primary motive for adding + these new options is that they have no problems with the colon separator + that the CURLOPT_PROXYUSERPWD option does. + +Daniel Stenberg (15 Oct 2008) +- Pascal Terjan filed bug #2154627 + (http://curl.haxx.se/bug/view.cgi?id=2154627) which pointed out that libcurl + uses strcasecmp() in multiple places where it causes failures when the + Turkish locale is used. This is because 'i' and 'I' isn't the same letter so + strcasecmp() on those letters are different in Turkish than in English (or + just about all other languages). I thus introduced a totally new internal + function in libcurl (called Curl_raw_equal) for doing case insentive + comparisons for english-(ascii?) style strings that thus will make "file" + and "FILE" match even if the Turkish locale is selected. + +Daniel Fandrich (15 Oct 2008) +- A command is considered to have failed if it returns a non-zero + return code. This way, if the precheck command can't be run at all for + whatever reason, it's treated as a precheck failure which causes the + test to be skipped. + +Daniel Stenberg (15 Oct 2008) +- John Wilkinson filed bug #2155496 + (http://curl.haxx.se/bug/view.cgi?id=2155496) pointing out an error case + without a proper human-readable error message. When a read callback returns + a too large value (like when trying to return a negative number) it would + trigger and the generic error message then makes the proplem slightly + different to track down. I've added an error message for this now. + +Daniel Fandrich (9 Oct 2008) +- Fixed the --interface option to work with IPv6 connections on glibc + systems supporting getifaddrs(). Also fixed a problem where an IPv6 + address could be chosen instead of an IPv4 one for --interface when it + involved a name lookup. + +Daniel Fandrich (8 Oct 2008) +- Added tests 1082 through 1085 to test symbolic --interface parameters + +- Added tests 633 through 637 to test the new file range support for SFTP. + All but the first test cause an infinite loop or other failure and so + are added to DISABLED. + +Daniel Stenberg (8 Oct 2008) +- John Wilkinson filed bug #2152270 + (http://curl.haxx.se/bug/view.cgi?id=2152270) which identified and fixed a + CURLINFO_REDIRECT_URL memory leak and an additional wrong-doing: + + Any subsequent transfer with a redirect leaks memory, eventually crashing + the process potentially. + + Any subsequent transfer WITHOUT a redirect causes the most recent redirect + that DID occur on some previous transfer to still be reported. + +- Igor Novoseltsev filed bug #2111613 + (http://curl.haxx.se/bug/view.cgi?id=2111613) that eventually identified a + flaw in how the multi_socket interface in some cases missed to call the + timeout callback when easy interfaces are removed and added within the same + millisecond. + +- Igor Novoseltsev brought a patch that introduced two new options to + curl_easy_setopt: CURLOPT_USERNAME and CURLOPT_PASSWORD that sort of + deprecates the good old CURLOPT_USERPWD since they allow applications to set + the user name and password independently and perhaps more importantly allow + both to contain colon(s) which CURLOPT_USERPWD doesn't fully support. + +Daniel Fandrich (7 Oct 2008) +- Changed the handling of read/write errors in Curl_perform() to allow a + a fresh connection to be made in such cases and the request retransmitted. + This should fix test case 160. Added test case 1079 in an attempt to + test a similar connection dropping scenario, but as a race condition, it's + hard to test reliably. + +- Created test cases 1080 and 1081 to reproduce a problem of + CURLINFO_REDIRECT_URL leaking memory and returning incorrect results when + two URLs are requested. Reported by vmpdemo in bug #2152270 + +Daniel Stenberg (7 Oct 2008) +- Fixed CURLINFO_PRIMARY_IP: When libcurl created a connection to host A then + the app re-used the handle to do a connection to host B and then again + re-used the handle to host A, it would not update the info with host A's IP + address (due to the connection being re-used) but it would instead report + the info from host B. + +Yang Tse (7 Oct 2008) +- Added --enable-optimize configure option to enable and disable compiler + optimizations to allow decoupled setting from --enable-debug. + +Yang Tse (2 Oct 2008) +- Added --enable-warnings configure option to enable and disable strict + compiler warnings to allow decoupled setting from --enable-debug. + + runtests.pl will now run with picky compiler warnings enabled unless + explicitly disabled. + +Daniel Fandrich (1 Oct 2008) +- "make clean" now cleans out the docs and tests directories, too. + +Daniel Stenberg (30 Sep 2008) +- The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE + gets a 550 response back for the cases where a download (or NOBODY) is + wanted. It still allows a 550 as response if the SIZE is used as part of an + upload process (like if resuming an upload is requested and the file isn't + there before the upload). I also modified the FTP test server and a few test + cases accordingly to match this modified behavior. + +Daniel Stenberg (29 Sep 2008) +- Daniel Egger provided a patch that allows you to disable proxy support in + libcurl to somewhat reduce the size of the binary. Run configure + --disable-proxy. + +Daniel Fandrich (29 Sep 2008) +- Moved all signal-based name resolution timeout handling into a single new + Curl_resolv_timeout function to reduce coupling. + +Daniel Stenberg (29 Sep 2008) +- Ian Lynagh provided a patch that now makes CURLOPT_RANGE work fine for SFTP + downloads! + +- Maxim Ivanov filed bug report #2107803 + (http://curl.haxx.se/bug/view.cgi?id=2107803) "no CURLINFO_REDIRECT_URL in + multi mode" together with a patch that fixed the problem. + +Daniel Stenberg (25 Sep 2008) +- Emanuele Bovisio submitted bug report #2126435. We fixed the HTTP Digest + auth code to not behave badly when getting a blank realm with + realm="". http://curl.haxx.se/bug/view.cgi?id=2126435 + +Daniel Fandrich (23 Sep 2008) +- Make sure not to dereference the wrong UrlState proto union member when + switching from one protocol to another in a single request (e.g. + redirecting from HTTP to FTP as in test 1055) by resetting + state.expect100header before every request. + +Daniel Stenberg (23 Sep 2008) +- Introducing Jamie Lokier's function for date to epoch conversion used in the + date parser function. This makes our function less dependent on system- + provided functions and instead we do all the magic ourselves. We also no + longer depend on the TZ environment variable. Switching to our own converter + has some side-effect and they are noted here for future reference (taken + from a mail by mr Lokier): + + time_t is not measured in seconds in the ANSI C standard - or even counted + uniformly - weird platforms can use other numeric representations of dates + in time_t - hence the difftime() function. + + On POSIX time_t is measured in UTC seconds, which means not including leap + seconds. But it's mentioned in a few places that some old POSIX-ish + environments include leap seconds in their time_t counts... + + I'm pretty sure [the new implementation is] correct on anything truly POSIX. + And it's obviously a lot less dependent on platform quirks and corner cases + in many ways than the mktime() version. + +- Rob Crittenden brought a patch to "add some locking for thread-safety to NSS + implementation". + +Daniel Stenberg (22 Sep 2008) +- Made the SOCKS code use the new Curl_read_plain() function to fix the bug + Markus Moeller reported: http://curl.haxx.se/mail/archive-2008-09/0016.html + +- recv() errors other than those equal to EAGAIN now cause proper + CURLE_RECV_ERROR to get returned. This made test case 160 fail so I've now + disabled it until we can figure out another way to exercise that logic. + +- Michael Goffioul filed bug report #2107377 "Problem with multi + GnuTLS + + proxy" (http://curl.haxx.se/bug/view.cgi?id=2107377) that showed how a multi + interface using program didn't work when built with GnuTLS and a CONNECT + request was done over a proxy (basically test 502 over a proxy to a HTTPS + site). It turned out the ssl connect function would get called twice which + caused the second call to fail. + +Daniel Fandrich (22 Sep 2008) +- Fixed test 539 to handle an out of memory condition that shows up now + that memdebug.h is included in the test programs. + +Yang Tse (20 Sep 2008) +- Fix regression in configure script which affected OpenSSL builds on MSYS. + +Yang Tse (19 Sep 2008) +- configure script now checks availability of the alarm() function. + +Daniel Fandrich (18 Sep 2008) +- Don't bother to install a SIGALRM handler unless alarm() is available. + Also, leave the existing SIGALRM handler alone if the timeout is too small + to handle. + +Daniel Fandrich (17 Sep 2008) +- Removed reference to curl-ca-bundle.crt in the host verification failure + error message. + +Yang Tse (17 Sep 2008) +- Improve configure detection of gethostname(), localtime_r(), strstr(), + getservbyport_r(), gethostbyaddr_r() and gethostbyname_r(). + +Yang Tse (14 Sep 2008) +- Improve configure detection of strcasecmp(), strcasestr(), strcmpi(), + stricmp(), strlcat(), strncasecmp(), strncmpi() and strnicmp(). + +Yang Tse (13 Sep 2008) +- Disable tracking of fdopen() calls in the low-level memory leak tracking + code when fdopen() is not available, to avoid compiler error. + +Yang Tse (12 Sep 2008) +- Further adjust detection of strerror_r() in the configure process, and + ensure that errno is not modified inside Curl_strerror(). + +Yang Tse (10 Sep 2008) +- Improve detection of gmtime_r(), strtoll(), sigaction(), strtok_r(), + strdup() and ftruncate() in the configure process. + +Daniel Fandrich (9 Sep 2008) +- Mike Revi discovered some swapped speed switches documented in the curl man + page. + +- Checked in some documentation and code improvements and fixes that I + discovered in the FreeBSD ports system. + +Daniel Stenberg (8 Sep 2008) +- Dmitry Kurochkin patched a problem: I have found bug in pipelining through + proxy. I have a transparent proxy. When running with http_proxy environment + variable not set my test completes fine (it goes through transparent + proxy). When I set http_proxy variable my test hangs after the first + downloaded is complete. Looks like the second handle never gets out from + WAITDO state. + + The fix: It makes checkPendPipeline move 1 handler from pend pipe to send + pipe if pipelining is not supported by server but there are no handles in + send and recv pipes. + +- Stefan Krause pointed out that libcurl would wrongly send away cookies to + sites in cases where the cookie clearly has a very old expiry date. The + condition was simply that libcurl's date parser would fail to convert the + date and it would then count as a (timed-based) match. Starting now, a + missed date due to an unsupported date format or date range will now cause + the cookie to not match. + +Daniel Fandrich (5 Sep 2008) +- Improved the logic that decides whether to use HTTP 1.1 features or not in a + request. Setting a specific version with CURLOPT_HTTP_VERSION overrides + all other checks, but otherwise, a 1.0 request will be made if the server + is known to support only 1.0 because it previously responded so and the + connection was kept alive, or a response to a previous request on this handle + came back as 1.0. The latter could take place in cases like redirection or + authentication where several requests have to be made before the operation + is complete. If any one of the servers in a redirection chain supports only + 1.0, then remaining requests will be sent in 1.0 mode. + +- Detect cases where an upload must be sent chunked and the server supports + only HTTP 1.0 and return CURLE_UPLOAD_FAILED. + +Daniel Stenberg (5 Sep 2008) +- Martin Drasar provided the CURLOPT_POSTREDIR patch. It renames + CURLOPT_POST301 (but adds a define for backwards compatibility for you who + don't define CURL_NO_OLDIES). This option allows you to now also change the + libcurl behavior for a HTTP response 302 after a POST to not use GET in the + subsequent request (when CURLOPT_FOLLOWLOCATION is enabled). I edited the + patch somewhat before commit. The curl tool got a matching --post302 + option. Test case 1076 was added to verify this. + +- Introducing CURLOPT_CERTINFO and the corresponding CURLINFO_CERTINFO. By + enabling this feature with CURLOPT_CERTINFO for a request using SSL (HTTPS + or FTPS), libcurl will gather lots of server certificate info and that info + can then get extracted by a client after the request has completed with + curl_easy_getinfo()'s CURLINFO_CERTINFO option. Linus Nielsen Feltzing + helped me test and smoothen out this feature. + + Unfortunately, this feature currently only works with libcurl built to use + OpenSSL. + + This feature was sponsored by networking4all.com - thanks! + +- Dmitriy Sergeyev pointed out that curl_easy_pause() didn't unpause properly + during certain conditions. I also changed this code to use realloc() based + on Daniel Fandrich's suggestion. + +Guenter Knauf (4 Sep 2008) +- MingW32 non-configure builds are now largefile feature enabled by default. + NetWare LIBC builds are also now largefile feature enabled by default. + +Yang Tse (4 Sep 2008) +- Several fixes related with print formatting string directives. + +Daniel Fandrich (3 Sep 2008) +- Search for the FreeBSD CA cert file /usr/local/share/certs/ca-root.crt + +Daniel Fandrich (2 Sep 2008) +- Fixed an out of memory problem that caused torture test failures in tests + 706 and 707. + +Daniel Stenberg (2 Sep 2008) +- Keith Mok added supported_protocols and supported_features to the pkg-config + file for libcurl, and while doing that fix he unified with curl-config.in + how the supported protocols and features are extracted and used, so both those + tools should now always be synced. + +Version 7.19.0 (1 September 2008) + +Daniel Fandrich (29 Aug 2008) +- Added tests 1071 through 1074 to test automatic downgrading from HTTP 1.1 + to HTTP 1.0 upon receiving a response from the HTTP server. Tests 1072 + and 1073 are similar to test 1069 in that they involve the impossible + scenario of sending chunked data to a HTTP 1.0 server. All these fail + and are added to DISABLED. + +- Added test 1075 to test --anyauth with Basic authentication. + +Daniel Stenberg (29 Aug 2008) +- When libcurl was doing a HTTP POST and the server would respond with + "Connection: close" and actually close the connection after the + response-body, libcurl could still have outstanding data to send and it + would not properly notice this and stop sending. This caused weirdness and + sad faces. http://curl.haxx.se/bug/view.cgi?id=2080222 + + Note that there are still reasons to consider libcurl's behavior when + getting a >= 400 response code while sending data, as Craig Perras' note + "http upload: how to stop on error" specifies: + http://curl.haxx.se/mail/archive-2008-08/0138.html + +Daniel Stenberg (28 Aug 2008) +- Dengminwen reported that libcurl would lock a (cookie) share twice (without + an unlock in between) for a certain case and that in fact works when using + regular windows mutexes but not with pthreads'! Locks should of course not + get locked again so this is now fixed. + http://curl.haxx.se/mail/lib-2008-08/0422.html + +- I'm abandoning the system with the web site mirrors (but keeping download + files bing mirrored) and thus I've changed the URL in the cookiejar header + to no longer use curlm.haxx.se but instead use the main site curl.haxx.se + +Daniel Fandrich (27 Aug 2008) +- Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set + the HTTP method to GET (or HEAD) when given a value of 0. + +- Added test cases 1068 and 1069 to test a simple HTTP PUT from stdin. Test + case 1069 fails in a similar manner to test 1065 so is added to DISABLED. + +Yang Tse (27 Aug 2008) +- Fix generation of MS VC6 .dsp file to make it support compilation of either + dynamic (DLL) or static (LIB) libcurl libraries in debug and release modes. + +Daniel Fandrich (26 Aug 2008) +- Fixed out of memory problems that caused torture test failures in tests + 1021 and 1067. + +Yang Tse (26 Aug 2008) +- Added check and symbol definition for WIN32 file API usage in configure, + supporting configure's --disable-largefile option for WIN32 targets also. + +- Non-configure systems which do not use config-win32.h configuration file, + and want to use the WIN32 file API, must define USE_WIN32_LARGE_FILES or + USE_WIN32_SMALL_FILES as appropriate in their own configuration files. + +Daniel Stenberg (23 Aug 2008) +- Running 'make ca-firefox' in the root build dir will now run the new + firefox-db2pem.sh conversion script that converts a local Firefox db of ca + certs into PEM format, suitable for use with a OpenSSL or GnuTLS built + libcurl. + +- Constantine Sapuntzakis fixed a bug when doing proxy CONNECT with the multi + interface, and the proxy would send Connection: close during the + authentication phase. http://curl.haxx.se/bug/view.cgi?id=2069047 + +Daniel Fandrich (22 Aug 2008) +- Fixed a problem when --dump-header - was given with more than one URL, + which caused an error when the second header was dumped due to stdout + being closed. Added test case 1066 to verify. Also fixed a potential + problem where a closed file descriptor might be used for an upload + when more than one URL is given. + +Yang Tse (22 Aug 2008) +- Improved libcurl's internal curl_m*printf() functions integral data type + size and signedness handling. + +- Internal adjustments to better select/differentiate when large/small file + support is provided using WIN32 functions directly. + +Daniel Fandrich (20 Aug 2008) +- Added an edited version of Vincent Le Normand's documentation of SFTP quote + commands to the man pages. + +Daniel Stenberg (20 Aug 2008) +- Phil Pellouchoud pointed out that the windows version of libcurl had a + memory leak because it never called the OpenSSL function + CRYPTO_cleanup_all_ex_data() as it was supposed to. This was because of a + missing define in config-win32.h! + +Gisle Vanem (18 Aug 2008) +- Updated lib/Makefile.Watcom with the option to use c-ares (USE_ARES=1). + +Yang Tse (18 Aug 2008) +- Added test case 557 to verify libcurl's internal curl_m*printf() functions + formatting functionality when handling signed and unsigned longs, as well as + our curl_off_t data type. + +Yang Tse (17 Aug 2008) +- OpenSSl enabled NetWare builds are changed to use the 'openssl' subdirectory + when including the OpenSSL header files. This is the recommended setting, this + prevents the undesired inclusion of header files with the same name as those + of OpenSSL but which do not belong to the OpenSSL package. The visible change + from previously released libcurl versions is that now OpenSSl enabled NetWare + builds also define USE_OPENSSL in config files, and that OpenSSL header files + must be located in a subdirectory named 'openssl'. + +Yang Tse (16 Aug 2008) +- Library internal only C preprocessor macros FORMAT_OFF_T and FORMAT_OFF_TU + remain in use as internal curl_off_t print formatting strings for the internal + *printf functions which still cannot handle print formatting string directives + such as "I64d", "I64u", and others available on MSVC, MinGW, Intel's ICC, and + other DOS/Windows compilers. + +Daniel Fandrich (15 Aug 2008) +- Added test case 1063 to test invalid long file ranges with file: URLs and + 1064 to test multiple http PUTs. + +- Added test case 1065 to test a PUT with a single file but two URLs. This + was discovered to be problematic while investigating an incident reported by + Von back in May. curl in this case doesn't include a Content-Length: or + Transfer-Encoding: chunked header which is illegal. This test case is + added to DISABLED until a solution is found. + +Yang Tse (15 Aug 2008) +- C preprocessor macros used internally and equally available externally which + aid in the use of the curl_off_t data type are named: CURL_FORMAT_CURL_OFF_T, + CURL_FORMAT_CURL_OFF_TU, CURL_SIZEOF_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_T, + CURL_SUFFIX_CURL_OFF_TU, CURL_OFF_T_C and CURL_OFF_TU_C. + +Yang Tse (13 Aug 2008) +- The size of long is a build time characteristic and as such it is now recorded + in curlbuild.h as CURL_SIZEOF_LONG. Definition now done from configure process + and in CVS curlbuild.h.dist for non-configure systems. + +Daniel Fandrich (12 Aug 2008) +- Fixed a buffer overflow problem in Curl_proxyCONNECT that could occur + when a server responded with long headers and data. Luckily, the buffer + overflowed into another unused buffer, so no actual harm was done. + Added test cases 1060 and 1061 to verify. + +Daniel Stenberg (12 Aug 2008) +- Andy Tsouladze fixed runtests.pl to not attempt to execute the stunnel + _directory_ if that happened to appear in the path! + +Yang Tse (12 Aug 2008) +- Added macros for minimum-width signed and unsigned curl_off_t integer + constants CURL_OFF_T_C and CURL_OFF_TU_C. The clever double helper macro + used internally to provide its functionality is thanks to Lars Nilsson. + +Daniel Fandrich (11 Aug 2008) +- Fixed a boundary condition error in ftp_readresp() whereby a non-terminal + line of a multiline FTP response whose last byte landed exactly at the end + of the BUFSIZE-length buffer would be treated as the terminal response + line. The following response code read in would then actually be the + end of the previous response line, and all responses from then on would + correspond to the wrong command. Test case 1062 verifies this. + +- Stop closing a never-opened ftp socket. + +Daniel Stenberg (11 Aug 2008) +- Constantine Sapuntzakis filed bug report #2042430 + (http://curl.haxx.se/bug/view.cgi?id=2042430) with a patch. "NTLM Windows + SSPI code is not thread safe". This was due to libcurl using static + variables to tell wether to load the necessary SSPI DLL, but now the loading + has been moved to the more suitable curl_global_init() call. + +- Constantine Sapuntzakis filed bug report #2042440 + (http://curl.haxx.se/bug/view.cgi?id=2042440) with a patch. He identified a + problem when using NTLM over a proxy but the end-point does Basic, and then + libcurl would do wrong when the host sent "Connection: close" as the proxy's + NTLM state was erroneously cleared. + +Yang Tse (11 Aug 2008) +- Added missing signed and unsigned curl_off_t integer constant suffixes for + internal and external use. CURL_SUFFIX_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_TU. + +Daniel Fandrich (7 Aug 2008) +- Fixed an uninitialized variable in multi_runsingle() that could cause a + request to prematurely end. + +- Added test1059 to test the FTP proxy tunnel problem fixed July 11. + +Yang Tse (7 Aug 2008) +- Added curlbuild.h and curlrules.h header files to libcurl's public headers. + File curlbuild.h is a generated file on configure-capable systems. This is + a first step towards configure-based info in public headers. Currently only + used to provide support for a curl_off_t data type which is not gated to + off_t. Further details are documented inside these mentioned header files. + +- Fix CURL_CHECK_DEF so that when the expansion of the preprocessor symbol + results in a set of double-quoted strings, this macro will now return an + expansion which consists of a single double-quoted string as the result of + concatenating all of them. + +- Skip data type check in DO_CURL_OFF_T_CHECK macro when argument is empty. + +- Adjusted testcurl.pl to copy checked out curlbuild.h.dist as curlbuild.h + for non-configure targets when the host system doesn't run buildconf.bat. + +- Prevent buildconf from removing 'Makefile' and 'missing' files. This would + blow away our CVS checked files 'missing' and 'hiper/Makefile'. + +- Remove adjustment done to testcurl.pl to verify if change introduced by + Guenter Knauf in lib/Makefile.netware is enough to get the netware autobuilds + going again. + +Yang Tse (5 Aug 2008) +- Changes done to buildconf script. Validate that autom4te and autoconf, as + well as aclocal and automake, versions match. Improve removal of previous + run generated files. Remove verbose debug logging of aclocal on Solaris. + +Daniel Stenberg (5 Aug 2008) +- Yehoshua Hershberg found a problem that would make libcurl re-use a + connection with the multi interface even if a previous use of it caused a + CURLE_PEER_FAILED_VERIFICATION to get returned. I now make sure that failed + SSL connections properly close the connections. + +Daniel Stenberg (4 Aug 2008) +- Test cases 1051, 1052 and 1055 were added by Daniel Fandrich on July 30 and + proved how PUT and POST with a redirect could lead to a "hang" due to the + data stream not being rewound properly when it had to in order to get sent + properly (again) to the subsequent URL. This is now fixed and these test + cases are no longer disabled. + +Yang Tse (4 Aug 2008) +- Autoconf 2.62 has changed the behaviour of the AC_AIX macro which we use. + Prior versions of autoconf defined _ALL_SOURCE if _AIX was defined. 2.62 + version of AC_AIX defines _ALL_SOURCE and other four preprocessor symbols + no matter if the system is AIX or not. To keep the traditional behaviour, + and an uniform one across autoconf versions AC_AIX is replaced with our + own internal macro CURL_CHECK_AIX_ALL_SOURCE. + +Daniel Stenberg (4 Aug 2008) +- Test case 1041 (added by Daniel Fandrich July 14th) proved a bug where PUT + with -C - sent garbage in the Content-Range: header. I fixed this problem by + making sure libcurl always sets the size of the _entire_ upload if an app + attemps to do resumed uploads since libcurl simply cannot know the size of + what is currently at the server end. Test 1041 is no longer disabled. + +Yang Tse (2 Aug 2008) +- No longer test availability of the gdi32 library, nor use it for linking, even + when we have been doing this since revision 1.47 of configure.ac 4 years and + 5 months ago when cross-compiling a Windows target. We actually don't use any + function from the Windows GDI (Graphics Device Interface) related with drawing + or graphics-related operations. + +Daniel Fandrich (1 Aug 2008) +- Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't + support this so it goes untested. + +Yang Tse (1 Aug 2008) +- Configure process now checks if the preprocessor _REENTRANT symbol is already + defined. If it isn't currently defined a set of checks are performed to test + if its definition is required to make visible to the compiler a set of *_r + functions. Finally, if _REENTRANT is already defined or needed it takes care + of making adjustments necessary to ensure that it is defined equally for the + configure process tests and generated config file. + +- Removed definition of CURL_CHECK_WORKING_RESOLVER from acinclude.m4 it has + not been in use since revision 1.81 of configure.in 6 years, 9 months ago. + +Daniel Fandrich (31 Jul 2008) +- Fixed parsing of an IPv6 proxy address to support a scope identifier, + as well as IPv4 addresses in IPv6 format. Also, better handle the case + of a malformatted IPv6 address (avoid empty and NULL strings). + +- Fixed a problem with any FTP URL or any URLs containing an IPv6 address + being mangled when passed to proxies when CURLOPT_PORT is also set + (reported by Pramod Sharma). + +- User names embedded in proxy URLs without a password were parsed + incorrectly--the host name is treated as part of the user name and the + port number becomes the password. This can be observed in test 279 + (was KNOWN_ISSUE #54). + +Daniel Stenberg (30 Jul 2008) +- Phil Blundell added the CURLOPT_ADDRESS_SCOPE option, as well as adjusted + the URL parser to allow numerical IPv6-addresses to be specified with the + scope given, as per RFC4007 - with a percent letter that itself needs to be + URL escaped. For example, for an address of fe80::1234%1 the HTTP URL is: + "http://[fe80::1234%251]/" + +- PHP's bug report #43158 (http://bugs.php.net/bug.php?id=43158) identifies a + true bug in libcurl built with OpenSSL. It made curl_easy_getinfo() more or + less always return 0 for CURLINFO_SSL_VERIFYRESULT because the function that + would set it to something non-zero would return before the assign in almost + all error cases. The internal variable is now set to non-zero from the start + of the function only to get cleared later on if things work out fine. + +- Made the curl tool's -w option support the %{ssl_verify_result} variable + +Daniel Fandrich (30 Jul 2008) +- Added test cases 1052 through 1055 to test uploading data from files + during redirects. Test cases 1052 and 1055 show problems (maybe the same + root cause as 1051) and are disabled. + +- Fixed a couple of buffer overflows in the MS-DOS port of the curl tool. + +Daniel Fandrich (29 Jul 2008) +- Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS + and OS/2. + +- Added test case 1051 to test Location: following with PUT, as reported + by Ben Sutcliffe. The test when run manually shows a problem in curl + so it's disabled. + +Daniel Fandrich (28 Jul 2008) +- Fixed display of the interface bind address in the trace output when it's + an IPv6 address. + +- Added test cases 1045 through 1049 as simple tests of --interface using the + localhost interface. + +- Added test case 1050 to test --ftp-port with an IPv6 address + +Daniel Stenberg (26 Jul 2008) +- David Bau filed bug report #2026240 "CURL_READFUNC_PAUSE leads to buffer + overrun" (http://curl.haxx.se/bug/view.cgi?id=2026240) identifying two + problems, and providing the fix for them: + + - CURL_READFUNC_PAUSE did in fact not pause the _sending_ of data that it is + designed for but paused _receiving_ of data! + + - libcurl didn't internally set the read counter to zero when this return + code was detected, which would potentially lead to junk getting sent to + the server. + +Daniel Fandrich (26 Jul 2008) +- Added test 1044 to test large file support in ftp with -I. + +- Eliminate a unnecessary socket creation in Curl_getaddrinfo for an IPv4 + address in an IPv6 capable libcurl. + +- Added feature in runtests.pl to select tests based on key word. + +Daniel Fandrich (23 Jul 2008) +- Changed the long logfile elision code in runtests.pl to properly handle + lines ending in \r. + +- Changed references to TRUE and FALSE in the curl_easy_setopt man page to + 1 and zero, respectively, since TRUE and FALSE aren't part of the + libcurl API. + +Daniel Stenberg (23 Jul 2008) +- I went over the curl_easy_setopt man page and replaced most references to + non-zero with the fixed value of 1. We should strive at making options + support '1' for enabling them mentioned explicitly, as that then will allow + us for to extend them in the future without breaking older programs. + + Possibly we should even introduce a fancy define to use instead of '1' all + over... + +Yang Tse (21 Jul 2008) +- Use the sreadfrom() wrapper to replace recvfrom() in our code. + +Yang Tse (20 Jul 2008) +- when recvfrom prototype uses a void pointer for arguments 2, 5 or 6 this will + now cause the definition, as appropriate, of RECVFROM_TYPE_ARG2_IS_VOID, + RECVFROM_TYPE_ARG5_IS_VOID or RECVFROM_TYPE_ARG6_IS_VOID. + +Yang Tse (17 Jul 2008) +- RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined + to the data type pointed by its respective argument and not the pointer type. + +Yang Tse (16 Jul 2008) +- Configure process now checks availability of recvfrom() socket function and + finds out its return type and the types of its arguments. Added definitions + for non-configure systems config files, and introduced macro sreadfrom which + will be used on udp sockets as a recvfrom() wrapper. + +Yang Tse (15 Jul 2008) +- Added description/comment to include paths used in several Makefile.am files. + Added automake option nostdinc to test servers makefile and modified libcurl + external headers include path for libtest programs. + +Daniel Fandrich (14 Jul 2008) +- Added test1040 through test1043 to test -C - on HTTP. Test 1041 failed so + it's added to DISABLED. + +Yang Tse (14 Jul 2008) +- HTTP_ONLY definition check in lib/setup.h is now done once that configuration + file has been included. In this way if symbol is defined in the config file + it will no longer be ignored. Removed inclusion of remaining system header + files from configuration files. Moved _REENTRANT definition up/earlier in + lib/setup.h + +Yang Tse (11 Jul 2008) +- Added missing multiple header inclusion prevention definition for header + file content_encoding.h + +Daniel Fandrich (11 Jul 2008) +- Fixed test 553 to pass the torture test. + +Daniel Stenberg (11 Jul 2008) +- Daniel Fandrich found out we didn't pass on the user-agent properly when + doing "proxy-tunnels" with non-HTTP prototols and that was simply because + the code assumed the user-agent was only needed for HTTP. + +Daniel Fandrich (10 Jul 2008) +- Changed slightly the SFTP quote commands chmod, chown and chgrp to only + set the attribute that has changed instead of all possible ones. Hopefully, + this will solve the "Permission denied" problem that Nagarajan Sreenivasan + reported when setting some modes, but regardless, it saves a protocol + round trip in the chmod case. + +- Added test cases 1038 and 1039 to test Adrian Kreher's report that ftp + uploads with -C - didn't resume properly, but the tests pass. + +Yang Tse (10 Jul 2008) +- Peter Lamberg filed bug report #2015126: "poll gives WSAEINVAL when POLLPRI + is set in fdset.events" (http://curl.haxx.se/bug/view.cgi?id=2015126) which + exactly pinpointed the problem only triggered on Windows Vista, provided + reference to docs and also a fix. There is much work behind Peter Lamberg's + excellent bug report. Thank You! + +Daniel Fandrich (9 Jul 2008) +- Added tests 1036 and 1037 to verify resumed ftp downloads with -C - + +Daniel Stenberg (9 Jul 2008) +- Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I + edited it slightly. Now you should be able to use IPv6 addresses fine even + with libcurl built to use c-ares. + +Daniel Fandrich (9 Jul 2008) +- Fixed an OOM handling problem that cause test 11 to fail the torture test. + +Daniel Fandrich (8 Jul 2008) +- Fixed test 554 to pass the torture test. + +Daniel Fandrich (7 Jul 2008) +- Added test cases 1034 & 1035 to test IDN name conversion failures. + +Daniel Stenberg (7 Jul 2008) +- Scott Barrett provided a test case for a segfault in the FTP code and the + fix for it. It occured when you did a FTP transfer using + CURLFTPMETHOD_SINGLECWD and then did another one on the same easy handle but + switched to CURLFTPMETHOD_NOCWD. Due to the "dir depth" variable not being + cleared properly. Scott's test case is now known as test 539 and it + verifies the fix. + +Daniel Stenberg (3 Jul 2008) +- Phil Blundell provided a fix for libcurl's treatment of unexpected 1xx + response codes. Previously libcurl would hang on such occurances. I added + test case 1033 to verify. + +- Introcuding a new timestamp for curl_easy_getinfo(): + CURLINFO_APPCONNECT_TIME. This is set with the "application layer" + handshake/connection is completed. Which typically is SSL, TLS or SSH and by + using this you can figure out the application layer's own connect time. You + can extract the time stamp using curl's -w option and the new variable named + 'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar. + +Daniel Fandrich (2 Jul 2008) +- Support Open Watcom C on Linux (as well as Windows). + +Yang Tse (2 Jul 2008) +- The previously committed fix for bug report #1999181 prevented using the + monotonic clock on any system without an always supported POSIX compliant + implementation. Now the POSIX compliant configuration check is removed and + will fallback to gettimeofday when the monotonic clock is unavailable at + run-time. + +- The configure process will now halt when sed, grep, egrep or ar programs + can not be found among the directories in PATH variable. + +Daniel Stenberg (1 Jul 2008) +- Rolland Dudemaine provided fixes to get libcurl to build for the INTEGRITY + operating system. + +Daniel Stenberg (30 Jun 2008) +- Made the internal printf() support %llu properly to print unsigned long longs. + +- Stephen Collyer and Tor Arntsen helped identify a flaw in the range code + which output the range using a signed variable where it should rather use + unsigned. + +Yang Tse (29 Jun 2008) +- John Lightsey filed bug report #1999181: "CLOCK_MONOTONIC always fails on + some systems" (http://curl.haxx.se/bug/view.cgi?id=1999181). The problem was + that the configure script did not use the _POSIX_MONOTONIC_CLOCK feature test + macro when checking monotonic clock availability. This is now fixed and the + monotonic clock will not be used unless the feature test macro is defined + with a value greater than zero indicating always supported. + +Daniel Fandrich (25 Jun 2008) +- Honour --stderr with the -v option. + +- Fixed a file handle leak in the command line client if more than one + --stderr option was given. + +Daniel Stenberg (22 Jun 2008) +- Eduard Bloch filed the debian bug report #487567 + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that + libcurl used Content-Range: instead of Range when doing a range request with + --head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to + verify. + +Daniel Fandrich (21 Jun 2008) +- Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that + is not ANSI C, just a common extension. This caused problems on + at least Open Watcom C. + +Yang Tse (20 Jun 2008) +- Modified configuration script to actually verify if the compiler is good + enough at detecting compilation errors or at least it has been properly + configured to do so. Configuration heavily depends on this capability, so + if this compiler sanity check fails the configuration process will now fail. + +Daniel Stenberg (20 Jun 2008) +- Phil Pellouchoud found a case where libcurl built with NSS failed to + handshake with a SSLv2 server, and it turned out to be because it didn't + recognize the cipher named "rc4-md5". In our list that cipher was named + plainly "rc4". I've now added rc4-md5 to work as an alias as Phil reported + that it made things work for him again. + +- Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxy + crashed libcurl. This is now addressed by making sure we use "plain send" + internally when doing the socks handshake instead of the Curl_write() + function which is designed to use the "target" protocol. That's then SCP or + SFTP in this case. I also took the opportunity and cleaned up some ssh- + related #ifdefs in the code for readability. + +Daniel Stenberg (19 Jun 2008) +- Christopher Palow fixed a curl_multi_socket() issue which previously caused + libcurl to not tell the app properly when a socket was closed (when the name + resolve done by c-ares is completed) and then immediately re-created and put + to use again (for the actual connection). Since the closure will make the + "watch status" get lost in several event-based systems libcurl will need to + tell the app about this close/re-create case. + +- Dengminwen found a bug in the connection re-use function when using the + multi interface with pipelining enabled as it would wrongly check for, + detect and close "dead connections" even though that connection was already + in use! + +Daniel Fandrich (18 Jun 2008) +- Added SSH failure test cases 628-632 + +- Fixed a memory leak in the command-line tool that caused a valgrind error. + +Daniel Stenberg (18 Jun 2008) +- Rob Crittenden brought a fix for the NSS layer that makes libcurl no longer + always fire up a new connection rather than using the existing one when the + multi interface is used. Original bug report: + https://bugzilla.redhat.com/show_bug.cgi?id=450140 + +Yang Tse (18 Jun 2008) +- Internal configure script improvement. No longer break out of shell "for" + statements from inside AC_FOO_IFELSE macros, otherwise temporary macro files + are not properly removed. + +Daniel Fandrich (12 Jun 2008) +- Fixed curl-config --ca which wasn't being exported by configure. + +Daniel Stenberg (11 Jun 2008) +- I did a cleanup of the internal generic SSL layer and how the various SSL + libraries are supported. Starting now, each underlying SSL library support + code does a set of defines for the 16 functions the generic layer (sslgen.c) + uses (all these new function defines use the prefix "curlssl_"). This + greatly simplified the generic layer in readability by involving much less + #ifdefs and other preprocessor stuff and should make it easier for people to + make libcurl work with new SSL libraries. + + Hopefully I can later on document these 16 functions somewhat as well. + + I also made most of the internal SSL-dependent functions (using Curl_ssl_ + prefix) #defined to nothing when no SSL support is requested - previously + they would unnecessarily call mostly empty functions. + + I've built libcurl with OpenSSL and GnuTLS and without SSL to test this and + I've also tried building with NSS but the NSS support is a mystery to me and + I failed to build libcurl with the NSS libraries I have installed. We really + should A) improve our configure script to detect unsuitable NSS versions + already at configure time and B) document our requirements better for the + SSL libraries. + +Daniel Stenberg (10 Jun 2008) +- I made the OpenSSL code build again with OpenSSL 0.9.6. The CRLFILE + functionality killed it due to its unconditional use of + X509_STORE_set_flags... + +Daniel Stenberg (8 Jun 2008) +- Due to the three new libcurl changes and the massive command line option + change I decided we'll mark it by bumping the next release number to 7.19.0! + +- curl the tool now deals with its command line options somewhat differently! + All boolean options (such as -O, -I, -v etc), both short and long versions, + now always switch on/enable the option named. Using the same option multiple + times thus make no difference. To switch off one of those options, you need + to use the long version of the option and type --no-OPTION. Like to disable + verbose mode you use --no-verbose! + +- Added --remote-name-all to curl, which if used changes the default for all + given URLs to be dealt with as if -O is used. So if you want to disable that + for a specific URL after --remote-name-all has been used, you muse use -o - + or --no-remote-name. + +Daniel Stenberg (6 Jun 2008) +- Axel Tillequin and Arnaud Ebalard added support for CURLOPT_ISSUERCERT, for + OpenSSL, NSS and GnuTLS-built libcurls. + +- Axel Tillequin and Arnaud Ebalard added support for CURLOPT_CRLFILE, for + OpenSSL, NSS and GnuTLS-built libcurls. + +- Added CURLINFO_PRIMARY_IP as a new information retrievable with + curl_easy_getinfo. It returns a pointer to a string with the most recently + used IP address. Modified test case 500 to also verify this feature. The + implementing of this feature was sponsored by Lenny Rachitsky at NeuStar. + +Version 7.18.2 (4 June 2008) + +Daniel Fandrich (3 Jun 2008) +- Fixed a problem where telnet data would be lost if an EWOULDBLOCK + condition were encountered. + +Marty Kuhrt (1 Jun 2008) +- Updated main.c to return CURLE_OK if PARAM_HELP_REQUESTED was returned + from getparameter instead of CURLE_FAILED_INIT. No point in returning + an error if --help or --version were requested. + +Daniel Stenberg (28 May 2008) +- Emil Romanus found a problem and helped me repeat it. It occured when using + the curl_multi_socket() API with HTTP pipelining enabled and could lead to + the pipeline basically stalling for a very long period of time until it took + off again. + +- Jeff Weber reported memory leaks with aborted SCP and SFTP transfers and + provided excellent repeat recipes. I fixed the cases I managed to reproduce + but Jeff still got some (SCP) problems even after these fixes: + http://curl.haxx.se/mail/lib-2008-05/0342.html + +Daniel Stenberg (26 May 2008) +- Bug report #1973352 (http://curl.haxx.se/bug/view.cgi?id=1973352) identified + how the HTTP redirect following code didn't properly follow to a new URL if + the new url was but a query string such as "Location: ?moo=foo". Test case + 1031 was added to verify this fix. + +- Andreas Faerber and Scott McCreary made (lib)curl build for the Haiku OS. + +Yang Tse (26 May 2008) +- David Rosenstrauch reported that header files spnegohelp.h and + openssl/objects.h were needed to compile SPNEGO support. + +Daniel Fandrich (22 May 2008) +- Made sure to pass longs in to curl_easy_setopt where necessary in the + example programs and libtest code. + +Daniel Stenberg (19 May 2008) +- When trying to repeat a multi interface problem I fell over a few multi + interface problems: + + o with pipelining disabled, the state should never be set to WAITDO but + rather go straight to DO + + o we had multiple states for which the internal function returned no socket + at all to wait for, with the effect that libcurl calls the socket callback + (when curl_multi_socket() is used) with REMOVE prematurely (as it would be + added again within very shortly) + + o when in DO and DOING states, the HTTP and HTTPS protocol handler functions + didn't return that the socket should be waited for writing, but instead it + was treated as if no socket was needing monitoring so again REMOVE was + called prematurely. + +Daniel Stenberg (13 May 2008) +- Added test case 556 that uses curl_easy_send() and curl_easy_recv() + +Daniel Stenberg (9 May 2008) +- Introducing curl_easy_send() and curl_easy_recv(). They can be used to send + and receive data over a connection previously setup with curl_easy_perform() + and its CURLOPT_CONNECT_ONLY option. The sendrecv.c example was added to + show how they can be used. + +Yang Tse (9 May 2008) +- Internal time differences now use monotonic time source if available. + This also implies the removal of the winmm.lib dependency for WIN32. + +Daniel Stenberg (9 May 2008) +- Stefan Krause reported a busy-looping case when using the multi interface + and doing CONNECT to a proxy. The app would then busy-loop until the proxy + completed its response. + +Michal Marek (9 May 2008) +- Make Curl_write and it's callees accept a const pointer, in preparation + of tetetest's patch for curl_easy_send() + +Daniel Stenberg (7 May 2008) +- Liam Healy filed the debian bug report #480044 + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=480044) identifying a + segfault when using krb5 ftp, but the krb4 code had the same problem. + +Yang Tse (7 May 2008) +- Christopher Palow provided the patch (edited by me) that introduces the + use of microsecond resolution keys for internal splay trees. + +Daniel Stenberg (4 May 2008) +- Yuriy Sosov pointed out a configure fix for detecting c-ares when that is + built debug-enabled. + +Daniel Stenberg (3 May 2008) +- Ben Van Hof filed bug report #1945240: "libcurl sometimes sends body twice + when using CURL_AUTH_ANY" (http://curl.haxx.se/bug/view.cgi?id=1945240). + The problem was that when libcurl rewound a stream meant for upload when it + would prepare for a second request, it could accidentally continue the + sending of the rewound data on the first request instead of on the second. + Ben also provided test case 1030 that verifies this fix. + +Daniel Stenberg (3 May 2008) +- Jean-Francois Bertrand reported a libcurl crash with CURLOPT_TCP_NODELAY + since libcurl used getprotobyname() and that isn't thread-safe. We now + switched to use IPPROTO_TCP unconditionally, but perhaps the proper fix is + to detect the thread-safe version of the function and use that. + http://curl.haxx.se/mail/lib-2008-05/0011.html + +Daniel Stenberg (1 May 2008) +- Bart Whiteley provided a patch that made libcurl work properly when an app + uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket + to a http server. + +Daniel Stenberg (29 Apr 2008) +- To make it easier for applications that want lots of magic stuff done on + redirections and thus cannot use CURLOPT_FOLLOWLOCATION easily, we now + introduce the new CURLINFO_REDIRECT_URL option that lets applications + extract the URL libcurl would've redirected to if it had been told to. This + then enables the application to continue to that URL as it thinks is + suitable, without having to re-implement the magic of creating the new URL + from the Location: header etc. Test 1029 verifies it. + +Yang Tse (29 Apr 2008) +- Improved easy interface resolving timeout handling in c-ares enabled builds + +Daniel Fandrich (28 Apr 2008) +- Added test 1028 to test an HTTP redirect to a FTP URL. + +Daniel Stenberg (28 Apr 2008) +- Norbert Frese filed bug report #1951588: "Problem with curlftpfs and + libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an + identical report to what Denis Golovan reported in + http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the + user/password pointers properly even though there might've been a new + struct/cconnection getting used. + +Daniel Stenberg (26 Apr 2008) +- Reverted back to use automake 1.9.6 in the next release (from automake + 1.10.1) since it *still* suffers from Solaris-related bugs. Our previous + automake 1.10 problem was reported in bug #1701360 + (http://curl.haxx.se/bug/view.cgi?id=1701360) and this recent problem was + bug #1944825 (http://curl.haxx.se/bug/view.cgi?id=1944825). I have not + personally approached the automake team about either one of these but I + figure we need a Solaris 10 guy to do it! + +Yang Tse (25 Apr 2008) +- Added 'timeout' and 'delay' attributes support for the test harness + subsection. + +Daniel Fandrich (24 Apr 2008) +- Made --stderr able to redirect all stderr messages. + +Yang Tse (23 Apr 2008) +- Improve synchronization between test harness runtests.pl script + and test harness servers to minimize risk of false test failures. + +Daniel Fandrich (22 Apr 2008) +- Added support for running on Symbian OS. + +Daniel Fandrich (18 Apr 2008) +- Added test cases 1026 and 1027 to do some rudimentary tests on the --manual + and --help options. + +Michal Marek (14 Apr 2008) +- allow disabling the typechecker by defining CURL_DISABLE_TYPECHECK, as + discussed in http://curl.haxx.se/mail/lib-2008-04/0291.html + +Daniel Stenberg (14 Apr 2008) +- Stefan Krause reported a case where the OpenSSL handshake phase wasn't + properly acknowledging the timeout values, like if you pulled the network + plug in the midst of it. + +- Andre Guibert de Bruet fixed a second case of not checking the malloc() + return code in the Negotiate code. + +- Sandor Feldi reported bug #1942022 + (http://curl.haxx.se/bug/view.cgi?id=1942022) pointing out a mistake in the + lib/Makefile.vc[68] makefiles' release-ssl-dll target. + +- Brock Noland reported that curl behaved differently depending on which order + you used -i and -I. + +Daniel Stenberg (12 Apr 2008) +- Andre Guibert de Bruet found and fixed a case where malloc() was called but + was not checked for a NULL return, in the Negotiate code. + +Daniel Fandrich (9 Apr 2008) +- Added test cases 1024 & 1025 to test a scenario similar to the one reported + by Ben Combee where libcurl would send the wrong cookie to a redirected + server. libcurl was doing the right thing in these test cases. + +Michal Marek (7 Apr 2008) +- Fix the MIT / Heimdal check for good: + Define HAVE_GSSMIT if are + available, otherwise define HAVE_GSSHEIMDAL if is available. + + Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if + GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should + avoid breakage in case we wrongly recognize Heimdal as MIT again. + +Daniel Stenberg (5 Apr 2008) +- Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly + +- Based on the Debian bug report #474224 that complained about the FTP error + message when libcurl doesn't get a 220 back immediately on connect, I now + changed it to be more specific on what the problem is. Also worth noticing: + while the bug report contains an example where the response is: + + 421 There are too many connected users, please try again later + + we cannot assume that the error message will always be this readable nor + that it fits within a particular boundary etc. + +Daniel Fandrich (3 Apr 2008) +- Added test627 to test SFTP with CURLOPT_NOBODY + +Daniel Stenberg (3 Apr 2008) +- Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to + GET simply because previously when you set CURLOPT_NOBODY to TRUE first and + then FALSE you'd end up in a broken state where a HTTP request would do a + HEAD by still act a lot like for a GET and hang waiting for the content etc. + +- Scott Barrett added support for CURLOPT_NOBODY over SFTP + +Daniel Fandrich (3 Apr 2008) +- Made sure that curl_global_init is called in all the multithreaded + example programs. + +Michal Marek (31 Mar 2008) +- Removed the generated ca-bundle.h file. The verbatim value of $ca and + $capath is known to configure, so it can be defined in config.h instead. + +Daniel Stenberg (31 Mar 2008) +- Added CURLFORM_STREAM as a supported option to curl_formadd() to allow an + application to provide data for a multipart with the read callback. Note + that the size needs to be provided with CURLFORM_CONTENTSLENGTH when the + stream option is used. This feature is verified by the new test case + 554. This feature was sponsored by Xponaut. + +Daniel Fandrich (30 Mar 2008) +- Changed the makefile so the doc/examples/ programs are never built in a + normal build/install (only with the 'make check' target), so that a + build failure in the examples isn't fatal. + +Version 7.18.1 (30 March 2008) + +Daniel Stenberg (28 Mar 2008) +- Stephen Collyer pointed out that configure --with-libssh2 without a given + path didn't work properly. + +Daniel Stenberg (27 Mar 2008) +- As found out and reported by Dan Petitt, libcurl didn't show progress/call + the progress callback for the first (potentially huge) piece of body data + sent together with the POST request headers in the initial send(). + +Daniel Stenberg (25 Mar 2008) +- Made setting the CURLOPT_SSL_CTX_FUNCTION option return a failure in case + libcurl wasn't built to use OpenSSL as that is a prerequisite for this + option to function! + +Daniel Stenberg (22 Mar 2008) +- Fixed the problem with doing a zero byte SCP transfer, verified with test + case 617 (which was added by Daniel Fandrich 5 Mar 2008). + +Daniel Fandrich (20 Mar 2008) +- Fixed a problem where curl-config --protocols could erroneously show LDAPS + support when curl didn't even have regular LDAP support. It looks like + this could happen when the --enable-ldaps configure switch is given but + configure couldn't find the LDAP headers or libraries. + +Michal Marek (20 Mar 2008) +- Added --with-ca-path=DIRECTORY configure option to use an openSSL CApath by + default instead of a ca bundle. The configure script will also look for a + ca path if no ca bundle is found and no option given. + +- Fixed detection of previously installed curl-ca-bundle.crt + +Daniel Fandrich (18 Mar 2008) +- Added test 626 to reproduce an infinite loop when given an invalid + SFTP quote command reported by Vincent Le Normand, and fixed it. + +Michal Marek (18 Mar 2008) +- Added curl_easy_getinfo typechecker. + +- Added macros for curl_share_setopt and curl_multi_setopt to check at least + the correct number of arguments. + +Daniel Fandrich (13 Mar 2008) +- Added tests 622-625 to test SFTP/SCP uploads. Test 625 was an attempt to + reproduce the --ftp-create-dirs problem reported by Brian Ulm, but that + seems to need a call curl_easy_reset() which this test case doesn't do. + +Daniel Stenberg (13 Mar 2008) +- Brian Ulm figured out that if you did an SFTP upload with + CURLOPT_FTP_CREATE_MISSING_DIRS to create a directory, and then re-used the + handle and uploaded another file to another directory that needed to be + created, the second upload would fail. Another case of a state variable that + wasn't properly reset between requests. + +- I rewrote the 100-continue code to use a single state variable instead of + the previous two ones. I think it made the logic somewhat clearer. + +Daniel Stenberg (11 Mar 2008) +- Dmitry Popov filed bug report #1911069 + (http://curl.haxx.se/bug/view.cgi?id=1911069) that identified a race + condition in the name resolver code when the DNS cache is shared between + multiple easy handles, each running in simultaneous threads that could cause + crashes. + +- Added a macro for curl_easy_setopt() that accepts three arguments and simply + does nothing with them, just to make sure libcurl users always use three + arguments to this function. Due to its use of ... for the third argument, it + is otherwise hard to detect abuse. + +Michal Marek (11 Mar 2008) +- Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only + works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html , + http://curl.haxx.se/mail/lib-2008-02/0292.html ) + +Daniel Fandrich (10 Mar 2008) +- Added tests 618-621 to test SFTP/SCP transfers of more than one file + (test 620 tests the just-fixed problem reported by Brian Ulm). + +Daniel Stenberg (9 Mar 2008) +- Brian Ulm reported a crash when doing a second SFTP transfer on a re-used + easy handle if curl_easy_reset() was used between them. I fixed it and Brian + verified that it cured his problem. + +- Brian Ulm reported that if you first tried to download a non-existing SFTP + file and then fetched an existing one and re-used the handle, libcurl would + still report the second one as non-existing as well! I fixed it and Brian + verified that it cured his problem. + +Michal Marek (6 Mar 2008) +- Fix the gssapi configure check to detect newer MIT Kerberos (patch by + Michael Calmer) + +Yang Tse (6 Mar 2008) +- Fix regression on Curl_socket_ready() and Curl_poll() so that these will + again fail on select/poll errors different than EINTR. + +Daniel Fandrich (5 Mar 2008) +- Fixed the test harness so it will write out zero-length data files. + +- Added tests 616 and 617 to see how SFTP and SCP cope with zero-length + files, as questioned by Mike Protts. SFTP does for me but SCP doesn't + so test 617 is disabled for now. + +Daniel S (4 Mar 2008) +- Mike Protts brought a patch that makes resumed transfers work with SFTP. + +Daniel S (1 Mar 2008) +- Anatoli Tubman found and fixed a crash with Negotiate authentication used on + a re-used connection where both requests used Negotiate. + +Guenter Knauf (26 Feb 2008) +- Kaspar Brand provided a patch to support server name indication (RFC 4366). + +Daniel S (25 Feb 2008) +- Kaspar Brand made GnuTLS-built libcurl properly acknowledge the option that + forces it to prefer SSLv3. + +Daniel S (23 Feb 2008) +- Sam Listopad provided a patch in feature-request #1900014 + http://curl.haxx.se/bug/feature.cgi?id=1900014 that makes libcurl (built to + use OpenSSL) support a full chain of certificates in a given PKCS12 + certificate. + +Daniel S (22 Feb 2008) +- Georg Lippitsch made the src/Makefile.vc6 makefile use the same memory model + options as the lib/Makefile.vc6 already did. + +Daniel S (21 Feb 2008) +- Zmey Petroff found a crash when libcurl accessed a NULL pointer, which + happened if you set the connection cache size to 1 and for example failed to + login to an FTP site. Bug report #1896698 + (http://curl.haxx.se/bug/view.cgi?id=1896698) + +Daniel S (20 Feb 2008) +- Fixed test case 405 to not fail when libcurl is built with GnuTLS + +- Based on initial work done by Gautam Kachroo to address a bug, we now keep + better control at the exact state of the connection's SSL status so that we + know exactly when it has completed the SSL negotiation or not so that there + won't be accidental re-uses of connections that are wrongly believed to be + in SSL-completed-negotiate state. + +- We no longer support setting the CURLOPT_URL option from inside a callback + such as the CURLOPT_SSL_CTX_FUNCTION one treat that as if it was a Location: + following. The patch that introduced this feature was done for 7.11.0, but + this code and functionality has been broken since about 7.15.4 (March 2006) + with the introduction of non-blocking OpenSSL "connects". + + It was a hack to begin with and since it doesn't work and hasn't worked + correctly for a long time and nobody has even noticed, I consider it a very + suitable subject for plain removal. And so it was done. + +Guenter Knauf (19 Feb 2008) +- We do no longer support SSLv2 by default since it has known flaws. + Kaspar Brand provided a patch for all supported SSL toolkits. + +Daniel Fandrich (19 Feb 2008) +- Added test309 to test HTTP redirect to HTTPS URL + +Daniel S (18 Feb 2008) +- We're no longer providing a very old ca-bundle in the curl tarball. You can + get a fresh one downloaded and created with 'make ca-bundle' or you can get + one from here => http://curl.haxx.se/docs/caextract.html if you want a fresh + new one extracted from Mozilla's recent list of ca certs. + + The configure option --with-ca-bundle now lets you specify what file to use + as default ca bundle for your build. If not specified, the configure script + will check a few known standard places for a global ca cert to use. + +Daniel S (17 Feb 2008) +- Jerome Muffat-Meridol helped me fix Curl_done() to close the current + connection by force when it was called before the entire request is + completed, simply because we can't know if the connection really can be + re-used safely at that point. + +- Based on the same debugging logic, I've also made Curl_http_done() not + return CURLE_GOT_NOTHING if called "prematurely". This should have no real + effect to anything but the code makes more sense like this. + +Daniel S (15 Feb 2008) +- Made the gnutls code path not even try to get the server cert if no peer + verification is requested. Previously it would even return failure if gnutls + failed to get the server cert even though no verification was asked for. + Public server showing the problem: https://www.net222.caisse-epargne.fr + +- Fix my Curl_timeleft() leftover mistake in the gnutls code + +- Pooyan McSporran found and fixed a flaw where you first would do a normal + http request and then you'd reuse the handle and replace the Accept: header, + as then libcurl would send two Accept: headers! + +Daniel S (11 Feb 2008) +- Yang Tse pointed out a few remaining quirks from my timeout refactoring from + Feb 7 that didn't abort properly on timeouts. These are actually old + problems but now they should be fixed. + +Yang Tse (10 Feb 2008) +- Bug report #1888932 (http://curl.haxx.se/bug/view.cgi?id=1888932) points out + and provides test program that demonstrates that libcurl might not set error + description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded + name resolver builds. Fixed now. + +Daniel Fandrich (8 Feb 2008) +- Added key words to all SSL-using tests so they can be skipped if necessary. + Removed a few unnecessary requires SSL statements. + +Daniel S (8 Feb 2008) +- Mike Hommey filed and fixed bug report #1889856 + (http://curl.haxx.se/bug/view.cgi?id=1889856): When using the gnutls ssl + layer, cleaning-up and reinitializing curl ends up with https requests + failing with "ASN1 parser: Element was not found" errors. Obviously a + regression added in 7.16.3. + +Yang Tse (8 Feb 2008) +- Improved test harness SCP/SFTP start up server verification, doing a real + connection to the sftp server, authenticating and running a simple sftp + pwd command using the test harness generated configuration and key files. + +Daniel S (8 Feb 2008) +- Günter Knauf added lib/mk-ca-bundle.pl which gets the Firefox ca bundle and + creates a suitable ca-bundle.crt file in PEM format for use with curl. The + recommended way to run it is to use 'make ca-bundle' in the build tree root. + +Daniel Fandrich (7 Feb 2008) +- Added tests 1022 and 1023 to validate output of curl-config --version and + --vernum + +Daniel S (7 Feb 2008) +- Refactored a lot of timeout code into a few functions in an attempt to make + them all use the same (hopefully correct) logic to make it less error-prone + and easier to introduce library-wide where it should be used. + +Yang Tse (6 Feb 2008) +- Fix an issue in strdup replacement function when dealing with absolutely + huge strings. Only systems without a standard strdup would be affected. + +Daniel S (3 Feb 2008) +- Dmitry Kurochkin cleaned up the pipelining code and removed the need for and + use of the "is_in_pipeline" struct field. + +- I wrote up and added the threaded-ssl.c example source code that shows how + to do multi-threaded downloads of HTTPS files with a libcurl that is built + with OpenSSL. It uses pthreads for the threading. + +Daniel S (31 Jan 2008) +- Niklas Angebrand made the cookie support in libcurl properly deal with the + "HttpOnly" feature introduced by Microsoft and apparently also supported by + Firefox: http://msdn2.microsoft.com/en-us/library/ms533046.aspx . HttpOnly + is now supported when received from servers in HTTP headers, when written to + cookie jars and when read from existing cookie jars. + + I modified test case 31 and 46 to also do some basic HttpOnly testing. + +- Dmitry Kurochkin moved several struct fields from the connectdata struct to + the SingleRequest one to make pipelining better. It is a bit tricky to keep + them in the right place, to keep things related to the actual request or to + the actual connection in the right place. + +Daniel S (29 Jan 2008) +- Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously + crash! + +- Michal Marek fixed minor mistake in test case 553 that prevented it from + working on other IP-addresses or port numbers. + +Version 7.18.0 (28 January 2008) + +Daniel S (27 Jan 2008) +- Dmitry Kurochkin: In "real world" testing I found more bugs in + pipelining. Broken connection is not restored and we get into infinite + loop. It happens because of wrong is_in_pipeline values. + +Daniel S (26 Jan 2008) +- Kevin Reed filed bug report #1879375 + (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl + got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any + proxy authentication and the proxy replies with an auth (like NTLM) and then + closes the connection after that initial informational response. + + libcurl would not properly re-initialize the connection to the proxy and + continue the auth negotiation like supposed. It does now however, as it will + now detect if one or more authentication methods were available and asked + for, and will thus retry the connection and continue from there. + +- I made the progress callback get called properly during proxy CONNECT. + +Daniel S (23 Jan 2008) +- Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked + memory, and so did "SESS". Fixed now. + +Yang Tse (22 Jan 2008) +- Check poll.h at configuration time, and use it when sys/poll.h unavailable + +Daniel S (22 Jan 2008) +- Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed + that it is bad anyway. Starting now, removing a handle that is in used in a + pipeline will break the pipeline - it'll be set back up again but still... + +Yang Tse (21 Jan 2008) +- Disable ldap support for cygwin builds, since it breaks whole build process. + Fixing it will affect other platforms, so it is postponed for another release. + +Daniel S (18 Jan 2008) +- Lau Hang Kin found and fixed a problem with the multi interface when doing + CONNECT over a proxy. curl_multi_fdset() didn't report back the socket + properly during that state, due to a missing case in the switch in the + multi_getsock() function. + +Yang Tse (17 Jan 2008) +- Don't abort tests 518 and 537 when unable to raise the open-file soft limit. + +Daniel S (16 Jan 2008) +- Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring + out what valgrind to run. + +Yang Tse (16 Jan 2008) +- Improved handling of out of memory in the command line tool that afected + data url encoded HTTP POSTs when reading it from a file. + +Daniel S (16 Jan 2008) +- Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that + previously had a number of flaws, perhaps most notably when an application + fired up N transfers at once as then they wouldn't pipeline at all that + nicely as anyone would think... Test case 530 was also updated to take the + improved functionality into account. + +- Calls to Curl_failf() are not supposed to provide a trailing newline as the + function itself adds that. Fixed on 50 or something strings! + +Daniel S (15 Jan 2008) +- I made the torture test on test 530 go through. This was actually due to + silly code left from when we switched to let the multi handle "hold" the dns + cache when using the multi interface... Of course this only triggered when a + certain function call returned error at the correct moment. + +Daniel S (14 Jan 2008) +- Joe Malicki filed bug report #1871269 + (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang- + problem that occurred when doing a large HTTP POST request with the + response-body read from a callback. + +Daniel S (12 Jan 2008) +- I re-arranged the curl --help output. All the options are now sorted on + their long option names and all descriptions are one-liners. + +- Eric Landes provided the patch (edited by me) that introduces the + --keepalive-time to curl to set the keepalive probe interval. I also took + the opportunity to rename the recently added no-keep-alive option to + no-keepalive to keep a consistent naming and to avoid getting two dashes in + these option names. Eric also provided an update to the man page for the new + option. + +Daniel S (11 Jan 2008) +- Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it + already worked for FTP:// URLs. + +- I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the + spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved + performance for the upload resume cases where you want to upload the last + few bytes of a very large file. To implement this decently, I had to switch + the client code for uploading from fopen()/fread() to plain open()/read() so + that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that) + on systems that offer support for that. + +Daniel S (10 Jan 2008) +- Michal Marek made curl-config --libs not include /usr/lib64 in the output + (it already before skipped /usr/lib). /usr/lib64 is the default library + directory on many 64bit systems and it's unlikely that anyone would use the + path privately on systems where it's not. + +- Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow + libcurl to seek in a given input stream. This is particularly important when + doing upload resumes when there's already a huge part of the file present + remotely. Before, and still if this callback isn't used, libcurl will read + and through away the entire file up to the point to where the resuming + begins (which of course can be a slow opereration depending on file size, + I/O bandwidth and more). This new function will also be preferred to get + used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when + doing multi-stage HTTP auth with POST/PUT. + +- Nikitinskit Dmitriy filed bug report #1868255 + (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies + and fixes a problem with parsing WWW-Authenticate: headers with additional + spaces in the line that the parser wasn't written to deal with. + +Daniel S (8 Jan 2008) +- Introducing curl_easy_pause() and new magic return codes for both the read + and the write callbacks that now can make a connection's reading and/or + writing get paused. + +Daniel S (6 Jan 2008) +- Jeff Johnson filed bug report #1863171 + (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that + libcurl's date parser didn't accept a +1300 time zone which actually is used + fairly often (like New Zealand's Dailight Savings Time), so I modified the + parser to now accept up to and including -1400 to +1400. + +Daniel S (5 Jan 2008) +- Based on further discussion on curl-library, I reverted yesterday's SOCKS5 + code to instead introduce support for a new proxy type called + CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy + instead of IP address and there's thus no longer any need for a new + curl_easy_setopt() option. + + The default SOCKS5 proxy is again back to sending the IP address to the + proxy. The new curl command line option for enabling sending host name to a + SOCKS5 proxy is now --socks5-hostname. + +Daniel S (4 Jan 2008) +- Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the + proxy do the host name resolving and only if --socks5ip (or + CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and + pass on the IP address only to the proxy. + +Yang Tse (3 Jan 2008) +- Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with + OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH + 3.7, SunSSH 1.0 or later. + +Daniel S (2 Jan 2008) +- I fixed two cases of missing return code checks when handling chunked + decoding where a write error (or abort return from a callback) didn't stop + libcurl's processing. + +- I removed the socklen_t use from the public curl/curl.h header and instead + made it an unsigned int. The type was only used in the curl_sockaddr struct + definition (only used by the curl_opensocket_callback). On all platforms I + could find information about, socklen_t is 32 unsigned bits large so I don't + think this will break the API or ABI. The main reason for this change is of + course for all the platforms that don't have a socklen_t definition in their + headers to build fine again. Providing our own configure magic and custom + definition of socklen_t on those systems proved to work but was a lot of + cruft, code and extra magic needed - when this very small change of type + seems harmless and still solves the missing socklen_t problem. + +- Richard Atterer brought a patch that added support for SOCKS4a proxies, + which is an inofficial PROXY4 variant that sends the hostname to the proxy + instead of the resolved address (which is already supported by SOCKS5). + --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can + now be set to CURLPROXY_SOCKS4A as well. + +Daniel S (1 Jan 2008) +- Mohun Biswas pointed out that --libcurl generated a source code with an int + function but without a return statement. While fixing that, I also took care + about adding some better comments for the generated code. + +Daniel S (27 Dec 2007) +- Dmitry Kurochkin mentioned a flaw + (http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which + failed to set the bits.proxy variable properly when an environment variable + told libcurl to use a http proxy. + +Daniel S (26 Dec 2007) +- In an attempt to repeat the problem in bug report #1850730 + (http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The + test is doing a 70K POST with a read callback and an ioctl callback over a + proxy requiring Digest auth. The test case code is more or less identical to + the test recipe code provided by Spacen Jasset (who submitted the bug + report). + +Daniel S (25 Dec 2007) +- Gary Maxwell filed bug report #1856628 + (http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the + (small) memory leak in the SSL session ID caching code. It happened when a + previous entry in the cache was re-used. + +Daniel Fandrich (19 Dec 2007) +- Ensure that nroff doesn't put anything but ASCII characters into the + --manual text. + +Yang Tse (18 Dec 2007) +- MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP, + and makes wrong asumptions of build target when it isn't specified. So, + if no build target has been defined we will target WinXP when building + curl/libcurl with MSVC 9.0 (VS2008). + +- (http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed + a file truncation problem on Windows build targets triggered when retrying + a download with curl. + +Daniel S (17 Dec 2007) +- Mateusz Loskot pointed out that MSVC 9.0 (VS2008) has the pollfd struct and + defines in winsock2.h somehow differently than previous versions and that + curl 7.17.1 would fail to compile out of the box. + +Daniel S (13 Dec 2007) +- David Wright filed bug report #1849764 + (http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He + identified a problem for re-used connections that previously had sent + Expect: 100-continue and in some situations the subsequent POST (that didn't + use Expect:) still had the internal flag set for its use. David's fix (that + makes the setting of the flag in every single request unconditionally) is + fine and is now used! + +Daniel S (12 Dec 2007) +- Gilles Blanc made the curl tool enable SO_KEEPALIVE for the connections and + added the --no-keep-alive option that can disable that on demand. + +Daniel S (9 Dec 2007) +- Andrew Moise filed bug report #1847501 + (http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy() + that should be memmove() in the convert_lineends() function. + +Daniel S (8 Dec 2007) +- Renamed all internal static functions that had Curl_ prefixes to no longer + have them. The Curl_ prefix is exclusively used for library internal global + symbols. Static functions can be named anything, except for using Curl_ or + curl_ prefixes. This is for consistency and for easier maintainance and + overview. + +- Cleaned up and reformatted the TODO document to look like the FAQ and + CONTRIBUTE, which makes nicer web pages + +- Added test cases 549 and 550 that test CURLOPT_PROXY_TRANSFER_MODE. + +- Added keywords on a bunch of test cases + +- Fixed an OOM problem in the curl code that would lead to fclose on a bad + handle and crash + +Daniel S (5 Dec 2007) +- Spacen Jasset reported a problem with doing POST (with data read with a + callback) over a proxy when NTLM is used as auth with the proxy. The bug + also concerned Digest and was limited to using callback only. Spacen worked + with us to provide a useful patch. I added the test case 547 and 548 to + verify two variations of POST over proxy with NTLM. + +Daniel S (3 Dec 2007) +- Ray Pekowski filed bug report #1842029 + (http://curl.haxx.se/bug/view.cgi?id=1842029) in which he identified a + problem with SSL session caching that prevent it from working, and provided + the associated fix! + +- Now libcurl (built with OpenSSL) doesn't return error anymore if the remote + SSL-based server doesn't present a certificate when the request is told to + ignore certificate verification anyway. + +- Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control + the appending of the "type=" thing on FTP URLs when they are passed to a + HTTP proxy. Some proxies just don't like that appending (which is done + unconditionally in 7.17.1), and some proxies treat binary/ascii transfers + better with the appending done! + +Daniel S (29 Nov 2007) +- A bug report on the curl-library list showed a HTTP Digest session going on + with a 700+ letter nonce. Previously libcurl only support 127 letter ones + and now I bumped it to 1023. + +- Fixed the resumed FTP upload loop to not require that the read callback + returns a full buffer on each invoke. + +Daniel S (25 Nov 2007) +- Added test case 1015 that tests --data-urlencode in multiple ways + +- Fixed --data-urlencode for when no @ or = are used + +- Extended the user-agent buffer curl uses, since we can hit the 128 byte + border with plenty development libraries used. Like my current set: "curl + 7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g + zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-CVS" + +Daniel S (24 Nov 2007) +- Internal rearrangements, so that the previous struct HandleData is no more. + It is now known as SingleRequest and the Curl_transfer_keeper struct within + that was remove entirely. This has the upside that there are less duplicate + struct members that made it hard to see and remember what struct that was + used to store what data. The transfer_keeper thing was once stored on a + per-connection basis and then it made sense to have the duplicate info but + since it was moved to the SessionHandle (in 7.16.0) it just added weirdness. + The SingleRequest struct is used by data that only is valid for this single + request. + +Yang Tse (22 Nov 2007) +- Provide a socklen_t definition in curl.h for Win32 API build targets + which don't have one. + +Daniel S (22 Nov 2007) +- Alessandro Vesely helped me improve the --data-urlencode's syntax, parser + and documentation. + +Daniel S (21 Nov 2007) +- While inspecting the Negotiate code, I noticed how the proxy auth was using + the same state struct as the host auth, so both could never be used at the + same time! I fixed it (without being able to check) to use two separate + structs to allow authentication using Negotiate on host and proxy + simultaneously. + +Daniel S (20 Nov 2007) +- Emil Romanus pointed out a bug that made an easy handle get the cookie + engine activated when set to use a share (even if the share doesn't share + cookies). I fixed it. + +- Fixed a very long-lasting mprintf() bug that occurred when we did "%.*s%s", + since the second %s would then wrongly used the numerical precision argument + instead and crash. + +- Introduced --data-urlencode to the curl tool for easier url encoding of the + data sent in a post. + +Daniel S (18 Nov 2007) +- Rob Crittenden fixed SSL connections with NSS done with the multi-interface + +Daniel S (17 Nov 2007) +- Michal Marek made the test suite remember what test servers that fail to + start so that subsequent tries are simply skipped. + +- Andres Garcia made the examples build fine on Windows (mingw + msys) when + the lib was built staticly. + +Daniel S (16 Nov 2007) +- Ates Goral identified a problem in http.c:add_buffer_send() when a debug + callback was used, as it could wrongly pass on a bad size for the outgoing + HTTP header. The bad size would be a very large value as it was a wrapped + size_t content. This happened when the whole HTTP request failed to get sent + in one single send. http://curl.haxx.se/mail/lib-2007-11/0165.html + +Daniel S (15 Nov 2007) +- Fixed yet another remaining problem with doing SFTP directory listings on a + re-used persistent connection. Mentioned by Immanuel Gregoire on the mailing + list. + +- Michal Marek fixed the test suite to better deal with the case when the HTTP + IPv6 server can't run. + +Yang Tse (14 Nov 2007) +- Fix a variable potential wrapping in add_buffer() when using absolutely + huge send buffer sizes. + +Daniel S (13 Nov 2007) +- Fixed a remaining problem with doing SFTP directory listings on a re-used + persistent connection. Mentioned by Immanuel Gregoire on the mailing list. + +Daniel S (12 Nov 2007) +- Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was + forwarded from the Gentoo bug tracker by Daniel Black and was originally + submitted by Robin Johnson, pointed out that libcurl would do bad memory + references when it failed and bailed out before the handler thing was + setup. My fix is not done like the provided patch does it, but instead I + make sure that there's never any chance for a NULL pointer in that struct + member. + +Yang Tse (10 Nov 2007) +- Vikram Saxena (http://curl.haxx.se/mail/lib-2007-11/0096.html) pointed out + that the pollfd struct was being multi defined when using VS2008. This is + now fixed in /curl/lib/select.h + +Daniel S (8 Nov 2007) +- Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed + out that SFTP requests didn't use persistent connections. Neither did SCP + ones. I gave the SSH code a good beating and now both SCP and SFTP should + use persistent connections fine. I also did a bunch of indent changes as + well as a bug fix for the "keyboard interactive" auth. + +Dan F (6 Nov 2007) +- Improved telnet support by drastically reducing the number of write + callbacks needed to pass a buffer to the user. Instead one per byte it + is now as little as one per segment. + +Yang Tse (6 Nov 2007) +- Bug report #1824894 (http://curl.haxx.se/bug/view.cgi?id=1824894) pointed + out a problem in curl.h when building C++ apps with MSVC. To fix it, the + inclusion of header files in curl.h is moved outside of the C++ extern "C" + linkage block. + +Daniel S (1 Nov 2007) +- Toby Peterson patched a memory problem in the command line tool that + happened when a user had a home dir as an empty string. curl would then do + free() on a wrong area. + +Dan F (1 Nov 2007) +- Fixed curl-config --features to not display libz when it wasn't used + due to a missing header file. + +Dan F (31 October 2007) +- Fixed the output of curl-config --protocols which showed SCP and SFTP + always, except when --without-libssh2 was given + +- Added test cases 1013 and 1014 to check that curl-config --protocols and + curl-config --features matches the output of curl --version + +Dan F (30 October 2007) +- Fixed an OOM problem with file: URLs + +- Moved Curl_file_connect into the protocol handler struct + +Dan F (29 October 2007) +- Added test case 546 to check that subsequent FTP transfers work after a + failed one using the multi interface + +Daniel S (29 October 2007) +- Based on one of those bug reports that are intercepted by a distro's bug + tracker (https://bugzilla.redhat.com/show_bug.cgi?id=316191), I now made + curl-config --features and --protocols show the correct output when built + with NSS. + +Version 7.17.1 (29 October 2007) + +Dan F (25 October 2007) +- Added the --static-libs option to curl-config + +Daniel S (25 October 2007) +- Made libcurl built with NSS possible to ignore the peer verification. + Previously it would fail if the ca bundle wasn't present, even if the code + ignored the verification results. + +Patrick M (25 October 2007) +- Fixed test server to allow null bytes in binary posts. +_ Added tests 35, 544 & 545 to check binary data posts, both static (in place) + and dynamic (copied). + +Daniel S (25 October 2007) +- Michal Marek fixed the test script to be able to use valgrind even when the + lib is built shared with libtool. + +- Fixed a few memory leaks when the same easy handle is re-used to request + URLs with different protocols. FTP and TFTP related leaks. Caught thanks to + Dan F's new test cases. + +Dan F (24 October 2007) +- Fixed the test FTP and TFTP servers to support the >10000 test number + notation + +- Added test cases 2000 through 2003 which test multiple protocols using the + same easy handle + +- Fixed the filecheck: make target to work outside the source tree + +Daniel S (24 October 2007) +- Vladimir Lazarenko pointed out that we should do some 'mt' magic when + building with VC8 to get the "manifest" embedded to make fine stand-alone + binaries. The maketgz and the src/Makefile.vc6 files were adjusted + accordingly. + +Daniel S (23 October 2007) +- Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out + that libcurl tried to re-use connections a bit too much when using non-SSL + protocols tunneled over a HTTP proxy. + +Daniel S (22 October 2007) +- Michal Marek forwarded the bug report + https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to + FTP that caused memory havoc. His work together with my efforts created two + fixes: + + #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with + at connection cleanup, at which time the struct HandleData could be + used by another connection. + Also, the unused char *urlpath member is removed from struct FTP. + + #2 - provide a Curl_reset_reqproto() function that frees + data->reqdata.proto.* on connection setup if needed (that is if the + SessionHandle was used by a different connection). + + A long-term goal is of course to somehow get rid of how the reqdata struct + is used, as it is too error-prone. + +- Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out + that specifying a proxy with a trailing slash didn't work (unless it also + contained a port number). + +Patrick M (15 October 2007) +- Fixed the dynamic CURLOPT_POSTFIELDS problem: this option is now static again + and option CURLOPT_COPYPOSTFIELDS has been added to support dynamic mode. + +Patrick M (12 October 2007) +- Added per-protocol callback static tables, replacing callback ptr storage + in the connectdata structure by a single handler table ptr. + +Dan F (11 October 2007) +- Fixed the -l option of runtests.pl + +- Added support for skipping tests based on key words. + +Daniel S (9 October 2007) +- Michal Marek removed the no longer existing return codes from the curl.1 + man page. + +Daniel S (7 October 2007) +- Known bug #47, which confused libcurl if doing NTLM auth over a proxy with + a response that was larger than 16KB is now improved slightly so that now + the restriction at 16KB is for the headers only and it should be a rare + situation where the response-headers exceed 16KB. Thus, I consider #47 fixed + and the header limitation is now known as known bug #48. + +Daniel S (5 October 2007) +- Michael Wallner made the CULROPT_COOKIELIST option support a new magic + string: "FLUSH". Using that will cause libcurl to flush its cookies to the + CURLOPT_COOKIEJAR file. + +- The new file docs/libcurl/ABI describes how we view ABI breakages, soname + bumps and what the version number's significance to all that is. + +Daniel S (4 October 2007) +- I enabled test 1009 and made the --local-port use a wide range to reduce the + risk of failures. + +- Kim Rinnewitz reported that --local-port didn't work with TFTP transfers. + This happened because the tftp code always uncondionally did a bind() + without caring if one already had been done and then it failed. I wrote a + test case (1009) to verify this, but it is a bit error-prone since it will + have to pick a fixed local port number and since the tests are run on so + many different hosts in different situations I'll add it in disabled state. + +Yang Tse (3 October 2007) +- Fixed issue related with the use of ares_timeout() result. + +Daniel S (3 October 2007) +- Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and + CURLOPT_OPENSOCKETDATA to set a callback that allows an application to + replace the socket() call used by libcurl. It basically allows the app to + change address, protocol or whatever of the socket. + +- I renamed the CURLE_SSL_PEER_CERTIFICATE error code to + CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made + this return code get used by the previous SSH MD5 fingerprint check in case + it fails. + +- Based on a patch brought by Johnny Luong, libcurl now offers + CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both + make the SCP or SFTP connection verify the remote host's md5 checksum of the + public key before doing a connect, to reduce the risk of a man-in-the-middle + attack. + +Daniel S (2 October 2007) +- libcurl now handles chunked-encoded CONNECT responses + +Daniel S (1 October 2007) +- Alex Fishman reported a curl_easy_escape() problem that was made the + function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a + signed / unsigned mistake in the code. I fixed it and added test case 543 to + verify. + +Daniel S (29 September 2007) +- Immanuel Gregoire fixed a problem with persistent transfers over SFTP. + +Daniel S (28 September 2007) +- Adapted the c-ares code to the API change c-ares 1.5.0 brings in the + notifier callback(s). + +Dan F (26 September 2007) +- Enabled a few more gcc warnings with --enable-debug. Renamed a few + variables to avoid shadowing global declarations. + +Daniel S (26 September 2007) +- Philip Langdale provided the new CURLOPT_POST301 option for + curl_easy_setopt() that alters how libcurl functions when following + redirects. It makes libcurl obey the RFC2616 when a 301 response is received + after a non-GET request is made. Default libcurl behaviour is to change + method to GET in the subsequent request (like it does for response code 302 + - because that's what many/most browsers do), but with this CURLOPT_POST301 + option enabled it will do what the spec says and do the next request using + the same method again. I.e keep POST after 301. + + The curl tool got this option as --post301 + + Test case 1011 and 1012 were added to verify. + +- Max Katsev reported that when doing a libcurl FTP request with + CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE + before it does SIZE which makes it less useful. I walked over the code and + made it do this properly, and added test case 542 to verify it. + +Daniel S (24 September 2007) +- Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle + URLs ending with a slash properly (it should list the contents of that + directory). Test case 351 brought back and also test 1010 was added. + +Daniel S (21 September 2007) +- Mark Davies fixed Negotiate authentication over proxy, and also introduced + the --proxy-negotiate command line option to allow a user to explicitly + select it. + +Daniel S (19 September 2007) +- Rob Crittenden provided an NSS update with the following highlights: + + o It looks for the NSS database first in the environment variable SSL_DIR, + then in /etc/pki/nssdb, then it initializes with no database if neither of + those exist. + + o If the NSS PKCS#11 libnspsem.so driver is available then PEM files may be + loaded, including the ca-bundle. If it is not available then only + certificates already in the NSS database are used. + + o Tries to detect whether a file or nickname is being passed in so the right + thing is done + + o Added a bit of code to make the output more like the OpenSSL module, + including displaying the certificate information when connecting in + verbose mode + + o Improved handling of certificate errors (expired, untrusted, etc) + + The libnsspem.so PKCS#11 module is currently only available in Fedora + 8/rawhide. Work will be done soon to upstream it. The NSS module will work + with or without it, all that changes is the source of the certificates and + keys. + +Daniel S (18 September 2007) +- Immanuel Gregoire pointed out that public key SSH auth failed if no + public/private key was specified and there was no HOME environment variable, + and then it didn't continue to try the other auth methods. Now it will + instead try to get the files id_dsa.pub and id_dsa from the current + directory if none of the two conditions were met. + +Dan F (17 September 2007) +- Added hooks to the test suite to make it possible to test a curl running + on a remote host. + +- Changed some FTP tests to validate the format of the PORT and EPRT commands + sent by curl, if not the addresses themselves. + +Daniel S (15 September 2007) +- Michal Marek made libcurl automatically append ";type=" when using HTTP + proxies for FTP urls. + +- Günter Knauf fixed LDAP builds in the Windows makefiles and fixed LDAPv3 + support on Windows. + +Dan F (13 September 2007) +- Added LDAPS, SCP and SFTP to curl-config --protocols. Removed and + fixed some AC_SUBST configure entries. + +Version 7.17.0 (13 September 2007) + +Daniel S (12 September 2007) +- Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointed + out a problem with doing an empty upload over FTP on a re-used connection. + I added test case 541 to reproduce it and to verify the fix. + +- I noticed while writing test 541 that the FTP code wrongly did a CWD on the + second transfer as it didn't store and remember the "" path from the + previous transfer so it would instead CWD to the entry path as stored. This + worked, but did a superfluous command. Thus, test case 541 now also verifies + this fix. + +Dan F (5 September 2007) +- Added test case 1007 to test permission problem when uploading with TFTP + (to validate bug #1790403). + +- TFTP now reports the "not defined" TFTP error code 0 as an error, + not success. + +Daniel S (5 September 2007) +- Continued the work on a fix for #1779054 + (http://curl.haxx.se/bug/view.cgi?id=1779054). My previous fix from August + 24 was not complete (either) but could accidentally "forget" parts of a + server response which led to faulty server response time-out errors. + +Dan F (5 September 2007) +- Minix doesn't support getsockopt on UDP sockets or send/recv on TCP + sockets. + +Dan F (31 August 2007) +- Made some of the error strings returned by the *strerror functions more + generic, and more consistent with each other. + +- Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants, + creating macros for backward compatibility: + + CURLFTPSSL_NONE => CURLUSESSL_NONE + CURLFTPSSL_TRY => CURLUSESSL_TRY + CURLFTPSSL_CONTROL => CURLUSESSL_CONTROL + CURLFTPSSL_ALL => CURLUSESSL_ALL + CURLFTPSSL_LAST => CURLUSESSL_LAST + +Dan F (30 August 2007) +- Renamed several libcurl error codes and options to make them more general + and allow reuse by multiple protocols. Several unused error codes were + removed. In all cases, macros were added to preserve source (and binary) + compatibility with the old names. These macros are subject to removal at + a future date, but probably not before 2009. An application can be + tested to see if it is using any obsolete code by compiling it with the + CURL_NO_OLDIES macro defined. + + The following unused error codes were removed: + + CURLE_BAD_CALLING_ORDER + CURLE_BAD_PASSWORD_ENTERED + CURLE_FTP_CANT_RECONNECT + CURLE_FTP_COULDNT_GET_SIZE + CURLE_FTP_COULDNT_SET_ASCII + CURLE_FTP_USER_PASSWORD_INCORRECT + CURLE_FTP_WEIRD_USER_REPLY + CURLE_FTP_WRITE_ERROR + CURLE_LIBRARY_NOT_FOUND + CURLE_MALFORMAT_USER + CURLE_OBSOLETE + CURLE_SHARE_IN_USE + CURLE_URL_MALFORMAT_USER + + The following error codes were renamed: + + CURLE_FTP_ACCESS_DENIED => CURLE_REMOTE_ACCESS_DENIED + CURLE_FTP_COULDNT_SET_BINARY => CURLE_FTP_COULDNT_SET_TYPE + CURLE_FTP_SSL_FAILED => CURLE_USE_SSL_FAILED + CURLE_FTP_QUOTE_ERROR => CURLE_QUOTE_ERROR + CURLE_TFTP_DISKFULL => CURLE_REMOTE_DISK_FULL + CURLE_TFTP_EXISTS => CURLE_REMOTE_FILE_EXISTS + CURLE_HTTP_RANGE_ERROR => CURLE_RANGE_ERROR + + The following options were renamed: + + CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD + CURLOPT_FTPAPPEND => CURLOPT_APPEND + CURLOPT_FTPLISTONLY => CURLOPT_DIRLISTONLY + CURLOPT_FTP_SSL => CURLOPT_USE_SSL + + A few more changes will take place with the next SONAME bump of the + library. These are documented in docs/TODO + +- Documented some newer error codes in libcurl-error(3) + +- Added more accurate error code returns from SFTP operations. Added test + case 615 to test an SFTP upload failure. + +Dan F (28 August 2007) +- Some minor internal type and const changes based on a splint scan. + +Daniel S (24 August 2007) +- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed + out that libcurl didn't deal with large responses from server commands, when + the single response was consisting of multiple lines but of a total size of + 16KB or more. Dan Fandrich improved the ftp test script and provided test + case 1006 to repeat the problem, and I fixed the code to make sure this new + test case runs fine. + +Patrick M (23 August 2007) +- OS/400 port: new files lib/config-os400.h lib/setup-os400.h packages/OS400/*. + See packages/OS400/README.OS400. + +Daniel S (23 August 2007) +- Bug report #1779751 (http://curl.haxx.se/bug/view.cgi?id=1779751) pointed + out that doing first a file:// upload and then an FTP upload crashed libcurl + or at best caused furious valgrind complaints. Fixed now! + +Daniel S (22 August 2007) +- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed + out that libcurl didn't deal with very long (>16K) FTP server response lines + properly. Starting now, libcurl will chop them off (thus the client app will + not get the full line) but survive and deal with them fine otherwise. Test + case 1003 was added to verify this. + +Daniel S (20 August 2007) +- Based on a patch by Christian Vogt, the FTP code now sets the upcoming + download transfer size much earlier to be possible to get read with + CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible. This is very much in a + similar spirit to the HTTP size change from August 11 2007. + +Daniel S (18 August 2007) +- Robson Braga Araujo filed bug report #1776232 + (http://curl.haxx.se/bug/view.cgi?id=1776232) about libcurl calling + Curl_client_write(), passing on a const string that the caller may not + modify and yet it does (on some platforms). + +- Robson Braga Araujo filed bug report #1776235 + (http://curl.haxx.se/bug/view.cgi?id=1776235) about ftp requests with NOBODY + on a directory would do a "SIZE (null)" request. This is now fixed and test + case 1000 was added to verify. + +Daniel S (17 August 2007) +- Song Ma provided a patch that cures a problem libcurl has when doing resume + HTTP PUT using Digest authentication. Test case 5320 and 5322 were also + added to verify the functionality. + +Daniel S (14 August 2007) +- Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag + NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't + UNICODE encode the strings it packs into the NTLM authenticate packet. + +Daniel S (11 August 2007) +- Allen Pulsifer provided a patch that makes libcurl set the expected download + size earlier when doing HTTP downloads, so that applications and the + progress meter etc know get the info earlier in the flow than before. + +- Patrick Monnerat modified the LDAP code and approach in curl. Starting now, + the configure script checks for openldap and friends and we link with those + libs just like we link all other third party libraries, and we no longer + dlopen() those libraries. Our private header file lib/ldap.h was renamed to + lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix) + just before this commit, just in case. + +Dan F (8 August 2007) +- Song Ma noted a zlib memory leak in the illegal compressed header + countermeasures code path. + +Daniel S (4 August 2007) +- Patrick Monnerat fixed curl_easy_escape() and curlx_strtoll() to work on + non-ASCII systems. + +Daniel S (3 August 2007) +- I cut out support for libssh2 versions older than 0.16 to make our code a + lot simpler, and to avoid getting trouble with the LIBSSH2_APINO define + that 1) didn't work properly since it was >32 bits and 2) is removed in + libssh2 0.16... + +Daniel S (2 August 2007) +- Scott Cantor filed bug report #1766320 + (http://curl.haxx.se/bug/view.cgi?id=1766320) pointing out that the libcurl + code accessed two curl_easy_setopt() options (CURLOPT_DNS_CACHE_TIMEOUT and + CURLOPT_DNS_USE_GLOBAL_CACHE) as ints even though they're documented to be + passed in as longs, and that makes a difference on 64 bit architectures. + +- Dmitriy Sergeyev reported a regression: resumed file:// transfers broke + after 7.16.2. This is much due to the different treatment file:// gets + internally, but now I added test 231 to make it less likely to happen again + without us noticing! + +Daniel S (1 August 2007) +- Patrick Monnerat and I modified libcurl so that now it *copies* all strings + passed to it with curl_easy_setopt()! Previously it has always just refered + to the data, forcing the user to keep the data around until libcurl is done + with it. That is now history and libcurl will instead clone the given + strings and keep private copies. This is also part of Patrick Monnerat's + OS/400 port. + + Due to this being a somewhat interesting change API wise, I've decided to + bump the version of the upcoming release to 7.17.0. Older applications will + of course not notice this change nor do they have to care, but new + applications can be written to take advantage of this. + +- Greg Morse reported a problem with POSTing using ANYAUTH to a server + requiring NTLM, and he provided test code and a test server and we worked + out a bug fix. We failed to count sent body data at times, which then caused + internal confusions when libcurl tried to send the rest of the data in order + to maintain the same connection alive. + +Daniel S (31 July 2007) +- Peter O'Gorman pointed out (and fixed) that the non-blocking check in + configure made libcurl use blocking sockets on AIX 4 and 5, while that + wasn't the intention. + +Daniel S (29 July 2007) +- Jayesh A Shah filed bug report #1759542 + (http://curl.haxx.se/bug/view.cgi?id=1759542) identifying a rather serious + problem with FTPS: libcurl closed the data connection socket and then later + in the flow it would call the SSL layer to do SSL shutdown which then would + use a socket that had already been closed - so if the application had opened + a new one in the mean time, libcurl could send gibberish that way! I worked + with Greg Zavertnik to properly diagnose and fix this. The fix affects code + for all SSL libraries we support, but it has only been truly verified to + work fine for the OpenSSL version. The others have only been code reviewed. + +Daniel S (23 July 2007) +- Implemented the parts of Patrick Monnerat's OS/400 patch that introduces + support for the OS/400 Secure Sockets Layer library. + +Dan F (23 July 2007) +- Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed + some few internal identifiers to avoid conflicts, which could be useful on + other platforms. + +Daniel S (22 July 2007) +- HTTP Digest bug fix by Chris Flerackers: + + Scenario + + - Perfoming a POST request with body + - With authentication (only Digest) + - Re-using a connection + + libcurl would send a HTTP POST with an Authorization header but without + body. Our server would return 400 Bad Request in that case (because + authentication passed, but the body was empty). + + Cause + + 1) http_digest.c -> Curl_output_digest + - Updates allocptr.userpwd/allocptr.proxyuserpwd *only* if d->nonce is + filled in (and no errors) + - authp->done = TRUE if d->nonce is filled in + 2) http.c -> Curl_http + - *Always* uses allocptr.userpwd/allocptr.proxyuserpwd if not NULL + 3) http.c -> Curl_http, Curl_http_output_auth + + So what happens is that Curl_output_digest cannot yet update the + Authorization header (allocptr.userpwd) which results in authhost->done=0 -> + authhost->multi=1 -> conn->bits.authneg = TRUE. The body is not + added. *However*, allocptr.userpwd is still used when building the request + +- Added test case 354 that makes a simple FTP retrieval without password, which + verifies the bug fix in #1757328. + +Daniel S (21 July 2007) +- To allow more flexibility in FTP test cases, I've removed the enforced states + from the test server code as they served no real purpose. The test server + is here to serve for the test cases, not to attempt to function as a real + server! While at it, I modified test case 141 to better test and verify + curl -I on a single FTP file. + +Daniel S (20 July 2007) +- James Housley fixed the SFTP PWD command to work. + +- Ralf S. Engelschall filed bug report #1757328 + (http://curl.haxx.se/bug/view.cgi?id=1757328) and submitted a patch. It + turns out we broke login to FTP servers that don't require (nor understand) + PASS after the USER command. The breakage was done as part of the krb5 + commit so a krb-using person needs to verify that the current version now + works or if we need to fix it (in a different way of course). + +Dan F (17 July 2007) +- Fixed test cases 613 and 614 by improving the log postprocessor to handle + a new directory listing format that newer libssh2's can provide. This + is probably NOT sufficient to handle all directory listing formats that + server's can provide, and should be revisited. + +Daniel S (17 July 2007) +- Daniel Johnson fixed a bug in how libssh2_session_last_error() was used, in + two places. + +- Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made + a control connection that was deemed "dead" to yet be re-used in a following + request. + +Daniel S (13 July 2007) +- Colin Hogben filed bug report #1750274 + (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the + case where libcurl did a connect attempt to a non-listening port and didn't + provide a human readable error string back. + +- Daniel Cater fixes: + 1 - made 'make vc8' work on windows. + 2 - made libcurl itself built with CURL_NO_OLDIES defined (which doesn't + define the symbols for backwards source compatibility) + 3 - updated libcurl-errors.3 + 4 - added CURL_DISABLE_TFTP to docs/INSTALL + +Daniel S (12 July 2007) +- Made the krb5 code build with Heimdal's GSSAPI lib. + +Dan F (12 July 2007) +- Compile most of the example apps in docs/examples when doing a 'make check'. + Fixed some compile warnings and errors in those examples. + +- Removed the example program ftp3rdparty.c since libcurl doesn't support + 3rd party FTP transfers any longer. + +Daniel S (12 July 2007) +- Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation + could in fact get stuck in an endless loop. + +- Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation: + fail to connect if there is no Common Name field found in the remote cert. + We should deprecate the support for this set to 1 anyway soon, since the + feature is pointless and most likely never really used by anyone. + +Daniel S (11 July 2007) +- Shmulik Regev fixed a bug with transfer-encoding skipping during the 407 + error pages for proxy authentication. + +- Giancarlo Formicuccia reported and fixed a problem with a closed connection + to a proxy during CONNECT auth negotiation. + +Dan F (10 July 2007) +- Fixed a curl memory leak reported by Song Ma with a modified version + of the patch he suggested. Added his test case as test289 to verify. + +- Force the time zone to GMT in the cookie tests in case the user is + using one of the so-called 'right' time zones that take into account + leap seconds, which causes the tests to fail (as reported by + Daniel Black in bug report #1745964). + +Version 7.16.4 (10 July 2007) + +Daniel S (10 July 2007) +- Kees Cook notified us about a security flaw + (http://curl.haxx.se/docs/adv_20070710.html) in which libcurl failed to + properly reject some outdated or not yet valid server certificates when + built with GnuTLS. Kees also provided the patch. + +James H (5 July 2007) +- Gavrie Philipson provided a patch that will use a more specific error + message for an scp:// upload failure. If libssh2 has his matching + patch, then the error message return by the server will be used instead + of a more generic error. + +Daniel S (1 July 2007) +- Thomas J. Moore provided a patch that introduces Kerberos5 support in + libcurl. This also makes the options change name to --krb (from --krb4) and + CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still + +- Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5 + proxy. + +Daniel S (27 June 2007) +- James Housley: Add two new options for the SFTP/SCP/FILE protocols: + CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS. These control the + premissions for files and directories created on the remote + server. CURLOPT_NEW_FILE_PERMS defaults to 0644 and + CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755 + +- I corrected the 10-at-a-time.c example and applied a patch for it by James + Bursa. + +Daniel S (26 June 2007) +- Robert Iakobashvili re-arranged the internal hash code to work with a custom + hash function for different hashes, and also expanded the default size for + the socket hash table used in multi handles to greatly enhance speed when + very many connections are added and the socket API is used. + +- James Housley made the CURLOPT_FTPLISTONLY mode work for SFTP directory + listings as well + +Daniel S (25 June 2007) +- Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or + chunked encoding (that also lacks "Connection: close"). It now simply + assumes that the connection WILL be closed to signal the end, as that is how + RFC2616 section 4.4 point #5 says we should behave. + +Version 7.16.3 (25 June 2007) + +Daniel S (23 June 2007) +- As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and + http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do + no-body requests on FTP files on re-used connections properly, or at least + it didn't provide the info back in the header callback properly in the + subsequent requests. + +Daniel S (21 June 2007) +- Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker + tool reports and it was indeed a legitimate one and it is one fixed. It was + a use of a share without doing the proper locking first. + +Daniel S (20 June 2007) +- Adam Piggott filed bug report #1740263 + (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when + getting a large amount of URLs with curl, they were fetched slower and + slower... which turned out to be because the --libcurl data collecting which + wrongly always was enabled, but no longer is... + +Daniel S (18 June 2007) +- Robson Braga Araujo filed bug report #1739100 + (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl + could not actually list the contents of the root directory of a given FTP + server if the login directory isn't root. I fixed the problem and added + three test cases (one is disabled for now since I identified KNOWN_BUGS #44, + we cannot use --ftp-method nocwd and list ftp directories). + +Daniel S (14 June 2007) +- Shmulik Regev: + + I've encountered (and hopefully fixed) a problem involving proxy CONNECT + requests and easy handles state management. The problem isn't simple to + reproduce since it depends on socket state. It only manifests itself when + working with non-blocking sockets. + + Here is the scenario: + + 1. in multi_runsingle the easy handle is in the CURLM_STATE_WAITCONNECT and + calls Curl_protocol_connect + + 2. in Curl_proxyCONNECT, line 1247, if the socket isn't ready the function + returns and conn->bits.tunnel_connecting is TRUE + + 3. when the call to Curl_protocol_connect returns the protocol_connect flag + is false and the easy state is changed to CURLM_STATE_PROTOCONNECT which + isn't correct if a proxy is used. Rather CURLM_STATE_WAITPROXYCONNECT + should be used. + + I discovered this while performing an HTTPS request through a proxy (squid) + on my local network. The problem caused openssl to fail as it read the proxy + response to the CONNECT call ('HTTP/1.0 Established') rather than the SSL + handshake (the exact openssl error was 'wrong ssl version' but this isn't + very important) + +- Dave Vasilevsky filed bug report #1736875 + (http://curl.haxx.se/bug/view.cgi?id=1736875) almost simultanouesly as Dan + Fandrich mentioned a related build problem on the libcurl mailing list: + http://curl.haxx.se/mail/lib-2007-06/0131.html. Both problems had the same + reason: the definitions of the POLL* defines and the pollfd struct in the + libcurl code was depending on HAVE_POLL instead of HAVE_SYS_POLL_H. + +Daniel S (13 June 2007) +- Tom Regner provided a patch and worked together with James Housley, so now + CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP + ones. + +- Rich Rauenzahn filed bug report #1733119 + (http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the + fix. The problem is that for 64bit HPUX builds, several socket-related + functions would still assume int (32 bit) arguments and not socklen_t (64 + bit) ones. + +Daniel S (12 June 2007) +- James Housley brought his revamped SSH code that is state-machine driven to + really take advantage of the now totally non-blocking libssh2 (in CVS). + +Dan F (8 June 2007) +- Incorporated Daniel Black's test706 and test707 SOCKS test cases. + +- Fixed a few problems when starting the SOCKS server. + +- Reverted some recent changes to runtests.pl that weren't compatible with + perl 5.0. + +- Fixed the test harness so that it actually kills the ssh being used as + the SOCKS server. + +Daniel S (6 June 2007) +- -s/--silent can now be used to toggle off the silence again if used a second + time. + +Daniel S (5 June 2007) +- Added Daniel Black's work that adds the first few SOCKS test cases. I also + fixed two minor SOCKS problems to make the test cases run fine. + +Daniel S (31 May 2007) +- Feng Tu made (lib)curl support "upload" resuming work for file:// URLs. + +Daniel S (30 May 2007) +- I modified the 10-at-a-time.c example to transfer 500 downloads in parallel + with a c-ares enabled build only to find that it crashed miserably, and this + was due to some select()isms left in the code. This was due to API + restrictions in c-ares 1.3.x, but with the upcoming c-ares 1.4.0 this is no + longer the case so now libcurl runs much better with c-ares and the multi + interface with > 1024 file descriptors in use. + + Extra note: starting now we require c-ares 1.4.0 for asynchronous name + resolves. + +- Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting + the maximum size of the connection cache maximum size of the multi handle. + +Daniel S (27 May 2007) +- When working with a problem Stefan Becker had, I found an off-by-one buffer + overwrite in Curl_select(). While fixing it, I also improved its performance + somewhat by changing calloc to malloc and breaking out of a loop earlier + (when possible). + +Daniel S (25 May 2007) +- Rob Crittenden fixed bug #1705802 + (http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel + Black identifying several FTP-SSL test cases fail when we build libcurl with + NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS. + +Daniel S (24 May 2007) +- Song Ma filed bug report #1724016 + (http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading + glob-ranges for TFTP was broken in CVS. Fixed now. + +- 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194) + pointed out that the warnf() function in the curl tool didn't properly deal + with the cases when excessively long words were used in the string to chop + up. + +Daniel S (22 May 2007) +- Andre Guibert de Bruet fixed a memory leak in the function that verifies the + peer's name in the SSL certificate when built for OpenSSL. The leak happens + for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN + name from UTF8. He also fixed a leak when PKCS #12 parsing failed. + +Daniel S (18 May 2007) +- Feng Tu reported that curl -w did wrong on TFTP transfers in bug report + #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the + transfer-related info "variables" were indeed overwritten with zeroes + wrongly and have now been adjusted. The upload size still isn't accurate. + +Daniel S (17 May 2007) +- Feng Tu pointed out a division by zero error in the TFTP connect timeout + code for timeouts less than five seconds, and also provided a fix for it. + Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392) + +Dan F (16 May 2007) +- Added support for compiling under Minix 3.1.3 using ACK. + +Dan F (14 May 2007) +- Added SFTP directory listing test case 613. + +- Added support for quote commands before a transfer using SFTP and test + case 614. + +- Changed the post-quote commands to occur after the transferred file is + closed. + +- Allow SFTP quote commands chmod, chown, chgrp to set a value of 0. + +Dan F (9 May 2007) +- Kristian Gunstone fixed a problem where overwriting an uploaded file with + sftp didn't truncate it first, which would corrupt the file if the new + file was shorter than the old. + +Dan F (8 May 2007) +- Added FTPS test cases 406 and 407 + +Daniel S (8 May 2007) +- CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is + because I just made SCP uploads return this value if the file size of + the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to + reflect this news, and a define for the old name was added to the public + header file. + +Daniel S (7 May 2007) +- James Bursa fixed a bug in the multi handle code that made the connection + cache grow a bit too much, beyond the normal 4 * easy_handles. + +Daniel S (2 May 2007) +- Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0 + when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is + not very nice if the client wants to be able to use _either_ a HTTP 1.1 + server or one within the aliases list... so starting now, libcurl will + simply consider 200-alias matches the to be HTTP 1.0 compliant. + +- Tobias Rundström reported a problem they experienced with xmms2 and recent + libcurls, which turned out to be the 25-nov-2006 change which treats HTTP + responses without Content-Length or chunked encoding as without bodies. We + now added the conditional that the above mentioned response is only without + body if the response is HTTP 1.1. + +- Jeff Pohlmeyer improved the hiperfifo.c example to use the + CURLMOPT_TIMERFUNCTION callback option. + +- Set the timeout for easy handles to expire really soon after addition or + when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform, + to make applications using only curl_multi_socket() to properly function + when adding easy handles "on the fly". Bug report and test app provided by + Michael Wallner. + +Dan F (30 April 2007) +- Improved the test harness to allow running test servers on other than + the default port numbers, allowing more than one test suite to run + simultaneously on the same host. + +Daniel S (28 April 2007) +- Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before, + since it then inits libgcrypt and libgcrypt is being evil and EXITS the + application if it fails to get a fine random seed. That's really not a nice + thing to do by a library. + +- Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had + been removed from a multi handle, and then fixed another flaw that prevented + curl_easy_duphandle() to work even after the first fix - the handle was + still marked as using the multi interface. + +Daniel S (26 April 2007) +- Peter O'Gorman found a problem with SCP downloads when the downloaded file + was 16385 bytes (16K+1) and it turned out we didn't properly always "suck + out" all data from libssh2. The effect being that libcurl would hang on the + socket waiting for data when libssh2 had in fact already read it all... + +Dan F (25 April 2007) +- Added support in runtests.pl for "!n" test numbers to disable individual + tests. Changed -t to only keep log files around when -k is specified, + to have the same behaviour as without -t. + +Daniel S (25 April 2007) +- Sonia Subramanian brought our attention to a problem that happens if you set + the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection + in the connection cache is closed to make room for the new one when you call + curl_easy_perform(). It would then wrongly free range-related data in the + connection close funtion. + +Yang Tse (25 April 2007) +- Steve Little fixed compilation on VMS 64-bit mode + +Daniel S (24 April 2007) +- Robert Iakobashvili made the 'master_buffer' get allocated first once it is + can/will be used as it then makes the common cases save 16KB of data for each + easy handle that isn't used for pipelining. + +Dan F (23 April 2007) +- Added support to the test harness. + +- Added tests 610-612 to test more SFTP post-quote commands. + +Daniel S (22 April 2007) +- Song Ma's warning if -r/--range is given with a "bad" range, also noted in + the man page now. + +- Daniel Black filed bug #1705177 + (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl + --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS + was found and used. + +Daniel S (21 April 2007) +- Daniel Black filed bug #1704675 + (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free + problem in the SSL-dealing layer, telling GnuTLS to free NULL credentials on + closedown after a failure and a bad #ifdef for NSS when closing down SSL. + +Yang Tse (20 April 2007) +- Save one call to curlx_tvnow(), which calls gettimeofday(), in each of + Curl_socket_ready(), Curl_poll() and Curl_select() when these are called + with a zero timeout or a timeout value indicating a blocking call should + be performed. + +Daniel S (18 April 2007) +- James Housley made SFTP uploads use libssh2's non-blocking API + +- Prevent the internal progress meter from updating more frequently than once + per second. + +Dan F (17 April 2007) +- Added test cases 296, 297 and 298 to test --ftp-method handling + +Daniel S (16 April 2007) +- Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is a + function that deprecates the curl_multi_socket() function. Using the new + function the application tell libcurl what action that was found in the + socket that it passes in. This gives a significant performance boost as it + allows libcurl to avoid a call to poll()/select() for every call to + curl_multi_socket*(). + + I added a define in the public curl/multi.h header file that will make your + existing application automatically use curl_multi_socket_action() instead of + curl_multi_socket() when you recompile. But of course you'll get better + performance if you adjust your code manually and actually pass in the + correct action bitmask to this function. + +Daniel S (14 April 2007) +- Jay Austin added "DH PARAMETERS" to the stunnel.pem certificate for the test + suite to make stunnel run better in some (most?) environments. + +Dan F (13 April 2007) +- Added test cases 294 and 295 to test --ftp-account handling + +- Improved handling of out of memory in ftp. + +Yang Tse (13 April 2007) +- Fix test case 534 which started to fail 2007-04-13 due to the existance + of a new host on the net with the same silly domain the test was using + for a host which was supposed not to exist. + +Daniel S (12 April 2007) +- Song Ma found a memory leak in the if2ip code if you pass in an interface + name longer than the name field of the ifreq struct (typically 6 bytes), as + then it wouldn't close the used dummy socket. Bug #1698974 + (http://curl.haxx.se/bug/view.cgi?id=1698974) + +Version 7.16.2 (11 April 2007) + +Yang Tse (10 April 2007) +- Ravi Pratap provided some fixes for HTTP pipelining + +- configure script will ignore --enable-sspi option for non-native Windows. + +Daniel S (9 April 2007) +- Nick Zitzmann did ssh.c cleanups + +Daniel S (3 April 2007) +- Rob Jones fixed better #ifdef'ing for a bunch of #include lines. + +Daniel S (2 April 2007) +- Nick Zitzmann made the CURLOPT_POSTQUOTE option work for SFTP as well. The + accepted commands are as follows: + + chgrp (gid) (path) + Changes the group ID of the file or directory at (path) to (gid). (gid) + must be a number. + + chmod (perms) (path) + Changes the permissions of the file or directory at (path) to + (perms). (perms) must be a number in the format used by the chmod Unix + command. + + chown (uid) (path) + Changes the user ID of the file or directory at (path) to (uid). (uid) + must be a number. + + ln (source) (dest) + Creates a symbolic link at (dest) that points to the file located at + (source). + + mkdir (path) + Creates a new directory at (path). + + rename (source) (dest) + Moves the file or directory at (source) to (dest). + + rm (path) + Deletes the file located at (path). + + rmdir (path) + Deletes the directory located at (path). This command will raise an error + if the directory is not empty. + + symlink (source) (dest) + Same as ln. + +Daniel S (1 April 2007) +- Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many + easy handles are added to a multi handle, by avoiding the looping over all + the handles to find which one to remove. + +- Matt Kraai provided a patch that makes curl build on QNX 6 fine again. + +Daniel S (31 March 2007) +- Fixed several minor issues detected by the coverity.com scanner. + +- "Pixel" fixed a problem that appeared when you used -f with user+password + embedded in the URL. + +Dan F (29 March 2007) +- Don't tear down the ftp connection if the maximum filesize was exceeded + and added tests 290 and 291 to check. + +- Added ftps upload and SSL required tests 401 and 402. + +- Send an EOF message before closing an SCP channel, as recommended by + RFC4254. Enable libssh2 tracing when ssh debugging is turned on. + +Yang Tse (27 March 2007) +- Internal function Curl_select() renamed to Curl_socket_ready() + + New Internal wrapper function Curl_select() around select (2), it + uses poll() when a fine poll() is available, so now libcurl can be + built without select() support at all if a fine poll() is available. + +Daniel S (25 March 2007) +- Daniel Johnson fixed multi code to traverse the easy handle list properly. + A left-over bug from the February 21 fix. + +Dan F (23 March 2007) +- Added --pubkey option to curl and made --key also work for SCP/SFTP, + plus made --pass work on an SSH private key as well. + +- Changed the test harness to attempt to gracefully shut down servers + before resorting to the kill -9 hammer. + +- Added test harness infrastructure to support scp/sftp tests, using + OpenSSH as the server. + +- Fixed a memory leak when specifying a proxy with a file: URL. + +Yang Tse (20 March 2007) +- Fixed: When a signal was caught awaiting for an event using Curl_select() + or Curl_poll() with a non-zero timeout both functions would restart the + specified timeout. This could even lead to the extreme case that if a + signal arrived with a frecuency lower to the specified timeout neither + function would ever exit. + + Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in + Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR + defined both functions will return as soon as a signal is caught. Use it + at your own risk, all calls to these functions in the library should be + revisited and checked before fully supporting this feature. + +Yang Tse (19 March 2007) +- Bryan Henderson fixed the progress function so that it can get called more + frequently allowing same calling frecuency for the client progress callback. + +Dan F (15 March 2007) +- Various memory leaks plugged and NULL pointer fixes made in the ssh code. + +Daniel (15 March 2007) +- Nick made the curl tool accept globbing ranges that only is one number, i.e + you can now use [1-1] without curl complaining. + +Daniel (10 March 2007) +- Eygene Ryabinkin: + + The problem is the following: when we're calling Curl_done and it decides to + keep the connection opened ('left intact'), then the caller is not notified + that the connection was done via the NULLifying of the pointer, so some easy + handle is keeping the pointer to this connection. + + Later ConnectionExists can select such connection for reuse even if we're + not pipelining: pipeLen is zero, so the (pipeLen > 0 && !canPipeline) is + false and we can reuse this connection for another easy handle. But thus the + connection will be shared between two easy handles if the handle that wants + to take the ownership is not the same as was not notified of the connection + was done in Curl_done. And when some of these easy handles will get their + connection really freed the another one will still keep the pointer. + + My fix was rather trivial: I just added the NULLification to the 'else' + branch in the Curl_done. My tests with Git and ElectricFence showed no + problems both for HTTP pulling and cloning. Repository size is about 250 Mb, + so it was a considerable amount of Curl's work. + +Dan F (9 March 2007) +- Updated the test harness to add a new "crypto" feature check and updated the + appropriate test case to use it. For now, this is treated the same as the + "SSL" feature because curl doesn't list it separately. + +Daniel (9 March 2007) +- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6. + +- Robert A. Monat improved the maketgz and VC6/8 generating to set the correct + machine type too. + +- Justin Fletcher fixed a file descriptor leak in the curl tool when trying to + upload a file it couldn't open. Bug #1676581 + (http://curl.haxx.se/bug/view.cgi?id=1676581) + +Dan F (9 March 2007) +- Updated the test harness to check for protocol support before running each + test, fixing KNOWN_BUGS #11. + +Dan F (7 March 2007) +- Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test + harness. It is very limited as it supports only ftps:// URLs with + --ftp-ssl-control specified, which implicitly encrypts the control + channel but not the data channels. That allows stunnel to be used with + an unmodified ftp server in exactly the same way that the test https + server is set up. + +Dan F (7 March 2007) +- Honour --ftp-ssl-control on ftps:// URLs to allow encrypted control and + unencrypted data connections. + +Dan F (6 March 2007) +- Fixed a couple of improper pointer uses detected by valgrind in test + cases 181 & 216. + +Daniel (2 March 2007) +- Robert A. Monat and Shmulik Regev helped out to fix the new */Makefile.vc8 + makefiles that are included in the source release archives, generated from + the Makefile.vc6 files by the maketgz script. I also modified the root + Makefile to have a VC variable that defaults to vc6 but can be overridden to + allow it to be used for vc8 as well. Like this: + + nmake VC=vc8 vc + +Daniel (27 February 2007) +- Hang Kin Lau found and fixed: When I use libcurl to connect to an https + server through a proxy and have the remote https server port set using the + CURLOPT_PORT option, protocol gets reset to http from https after the first + request. + + User defined URL was modified internally by libcurl and subsequent reuse of + the easy handle may lead to connection using a different protocol (if not + originally http). + + I found that libcurl hardcoded the protocol to "http" when it tries to + regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as + follows and it's working fine so far + +Daniel (25 February 2007) +- Adam D. Moss made the HTTP CONNECT procedure less blocking when used from + the multi interface. Note that it still does a part of the connection in a + blocking manner. + +Daniel (23 February 2007) +- Added warning outputs if the command line uses more than one of the options + -v, --trace and --trace-ascii, since it could really confuse the user. + Clarified this fact in the man page. + +Daniel (21 February 2007) +- Ravi Pratap provided work on libcurl making pipelining more robust and + fixing some bugs: + o Don't mix GET and POST requests in a pipeline + o Fix the order in which requests are dispatched from the pipeline + o Fixed several curl bugs with pipelining when the server is returning + chunked encoding: + * Added states to chunked parsing for final CRLF + * Rewind buffer after parsing chunk with data remaining + * Moved chunked header initializing to a spot just before receiving + headers + +Daniel (20 February 2007) +- Linus Nielsen Feltzing changed the CURLOPT_FTP_SSL_CCC option to handle + active and passive CCC shutdown and added the --ftp-ssl-ccc-mode command + line option. + +Daniel (19 February 2007) +- Ian Turner fixed the libcurl.m4 macro's support for --with-libcurl. + +- Shmulik Regev found a memory leak in re-used HTTPS connections, at least + when the multi interface was used. + +- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and + 5). + +Daniel (18 February 2007) +- Jeff Pohlmeyer identified two problems: first a rather obscure problem with + the multi interface and connection re-use that could make a + curl_multi_remove_handle() ruin a pointer in another handle. + + The second problem was less of an actual problem but more of minor quirk: + the re-using of connections wasn't properly checking if the connection was + marked for closure. + +Daniel (16 February 2007) +- Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting + CURLOPT_RANGE back to no range on an easy handle when using FTP. + +Dan F (14 February 2007) +- Fixed curl-config --libs so it doesn't list unnecessary libraries (and + therefore introduce unnecessary dependencies) when it's not needed. + Also, don't bother adding a library path of /usr/lib + +Daniel (13 February 2007) +- The default password for anonymous FTP connections is now changed to be + "ftp@example.com". + +- Robert A. Monat made libcurl build fine with VC2005 - it doesn't have + gmtime_r() like the older VC versions. He also made use of some machine- + specific defines to differentiate the "OS" define. + +Daniel (12 February 2007) +- Rob Crittenden added support for NSS (Network Security Service) for the + SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/ + + This is the fourth supported library for TLS/SSL that libcurl supports! + +- Shmulik Regev fixed so that the final CRLF of HTTP response headers are sent + to the debug callback. + +- Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and + CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's + internal decoding of content or transfer encoded content. This may be + preferable in cases where you use libcurl for proxy purposes or similar. The + command line tool got a --raw option to disable both at once. + +- release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP + define set to hold the exact date and time of when the tarball was built, as + a human readable string using the UTC time zone. + +- Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle + that has an easy handle present in the "closure" list pending closure. + +Daniel (6 February 2007) +- Regular file downloads wiht SFTP and SCP are now done using the non-blocking + API of libssh2, if the libssh2 headers seem to support them. This will make + SCP and SFTP much more responsive and better libcurl citizens when used with + the multi interface etc. + +Daniel (5 February 2007) +- Michael Wallner added support for CURLOPT_TIMEOUT_MS and + CURLOPT_CONNECTTIMEOUT_MS that, as their names suggest, do the timeouts with + millisecond resolution. The only restriction to that is the alarm() + (sometimes) used to abort name resolves as that uses full seconds. I fixed + the FTP response timeout part of the patch. + + Internally we now count and keep the timeouts in milliseconds but it also + means we multiply set timeouts with 1000. The effect of this is that no + timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which + equals 24.86 days. We probably couldn't before either since the code did + *1000 on the timeout values on several places already. + +Daniel (3 February 2007) +- Yang Tse fixed the cookie expiry date in several test cases that started to + fail since they used "1 feb 2007"... + +- Manfred Schwarb reported that socks5 support was broken and help us pinpoint + the problem. The code now tries harder to use httproxy and proxy where + apppropriate, as not all proxies are HTTP... + +Version 7.16.1 (29 January 2007) + +Daniel (29 January 2007) +- Michael Wallner reported that when doing a CONNECT with a custom User-Agent + header, you got _two_ User-Agent headers in the CONNECT request...! Added + test case 287 to verify the fix. + +Daniel (28 January 2007) +- curl_easy_reset() now resets the CA bundle path correctly. + +- David McCreedy fixed the Curl command line tool for HTTP on non-ASCII + platforms. + +Daniel (25 January 2007) +- Added the --libcurl [file] option to curl. Append this option to any + ordinary curl command line, and you will get a libcurl-using source code + written to the file that does the equivalent operation of what your command + line operation does! + +Dan F (24 January 2007) +- Fixed a dangling pointer problem that prevented the http_proxy environment + variable from being properly used in many cases (and caused test case 63 + to fail). + +Daniel (23 January 2007) +- David McCreedy did NTLM changes mainly for non-ASCII platforms: + + #1 + There's a compilation error in http_ntlm.c if USE_NTLM2SESSION is NOT + defined. I noticed this while testing various configurations. Line 867 of + the current http_ntlm.c is a closing bracket for an if/else pair that only + gets compiled in if USE_NTLM2SESSION is defined. But this closing bracket + wasn't in an #ifdef so the code fails to compile unless USE_NTLM2SESSION was + defined. Lines 198 and 140 of my patch wraps that closing bracket in an + #ifdef USE_NTLM2SESSION. + + #2 + I noticed several picky compiler warnings when DEBUG_ME is defined. I've + fixed them with casting. By the way, DEBUG_ME was a huge help in + understanding this code. + + #3 + Hopefully the last non-ASCII conversion patch for libcurl in a while. I + changed the "NTLMSSP" literal to hex since this signature must always be in + ASCII. + + Conversion code was strategically added where necessary. And the + Curl_base64_encode calls were changed so the binary "blobs" http_ntlm.c + creates are NOT translated on non-ASCII platforms. + +Dan F (22 January 2007) +- Converted (most of) the test data files into genuine XML. A handful still + are not, due mainly to the lack of support for XML character entities + (e.g. & => & ). This will make it easier to validate test files using + tools like xmllint, as well as to edit and view them using XML tools. + +Daniel (16 January 2007) +- Armel Asselin improved libcurl to behave a lot better when an easy handle + doing an FTP transfer is removed from a multi handle before completion. The + fix also fixed the "alive counter" to be correct on "premature removal" for + all protocols. + +Dan F (16 January 2007) +- Fixed a small memory leak in tftp uploads discovered by curl's memory leak + detector. Also changed tftp downloads to URL-unescape the downloaded + file name. + +Daniel (14 January 2007) +- David McCreedy provided libcurl changes for doing HTTP communication on + non-ASCII platforms. It does add some complexity, most notably with more + #ifdefs, but I want to see this supported added and I can't see how we can + add it without the extra stuff added. + +- Setting CURLOPT_COOKIELIST to "ALL" when no cookies at all was present, + libcurl would crash when trying to read a NULL pointer. + +Daniel (12 January 2007) +- Toby Peterson found a nasty bug that prevented (lib)curl from properly + downloading (most) things that were larger than 4GB on 32 bit systems. Matt + Witherspoon helped as narrow down the problem. + +Daniel (5 January 2007) +- Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to + curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it + will make libcurl shutdown SSL/TLS after the authentication is done on a + FTP-SSL operation. + +Daniel (4 January 2007) +- David McCreedy made changes to allow base64 encoding/decoding to work on + non-ASCII platforms. + +Daniel (3 January 2007) +- Matt Witherspoon fixed the flaw which made libcurl 7.16.0 always store + downloaded data in two buffers, just to be able to deal with a special HTTP + pipelining case. That is now only activated for pipelined transfers. In + Matt's case, it showed as a considerable performance difference, + +Daniel (2 January 2007) +- Victor Snezhko helped us fix bug report #1603712 + (http://curl.haxx.se/bug/view.cgi?id=1603712) (known bug #36) --limit-rate + (CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE) are broken + on Windows (since 7.16.0, but that's when they were introduced as previous + to that the limiting logic was made in the application only and not in the + library). It was actually also broken on select()-based systems (as apposed + to poll()) but we haven't had any such reports. We now use select(), Sleep() + or delay() properly to sleep a while without waiting for anything input or + output when the rate limiting is activated with the easy interface. + +- Modified libcurl.pc.in to use Libs.private for the libs libcurl itself needs + to get built static. It has been mentioned before and was again brought to + our attention by Nathanael Nerode who filed debian bug report #405226 + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405226). + +Daniel (29 December 2006) +- Make curl_easy_duphandle() set the magic number in the new handle. + +Daniel (22 December 2006) +- Robert Foreman provided a prime example snippet showing how libcurl would + get confused and not acknowledge the 'no_proxy' variable properly once it + had used the proxy and you re-used the same easy handle. I made sure the + proxy name is properly stored in the connect struct rather than the + sessionhandle/easy struct. + +- David McCreedy fixed a bad call to getsockname() that wrongly used a size_t + variable to point to when it should be a socklen_t. + +- When setting a proxy with environment variables and (for example) running + 'curl [URL]' with a URL without a protocol prefix, curl would not send a + correct request as it failed to add the protocol prefix. + +Daniel (21 December 2006) +- Robson Braga Araujo reported bug #1618359 + (http://curl.haxx.se/bug/view.cgi?id=1618359) and subsequently provided a + patch for it: when downloading 2 zero byte files in a row, curl 7.16.0 + enters an infinite loop, while curl 7.16.1-20061218 does one additional + unnecessary request. + + Fix: During the "Major overhaul introducing http pipelining support and + shared connection cache within the multi handle." change, headerbytecount + was moved to live in the Curl_transfer_keeper structure. But that structure + is reset in the Transfer method, losing the information that we had about + the header size. This patch moves it back to the connectdata struct. + +Daniel (16 December 2006) +- Brendan Jurd provided a fix that now prevents libcurl from getting a SIGPIPE + during certain conditions when GnuTLS is used. + +Daniel (11 December 2006) +- Alexey Simak found out that when doing FTP with the multi interface and + something went wrong like it got a bad response code back from the server, + libcurl would leak memory. Added test case 538 to verify the fix. + + I also noted that the connection would get cached in that case, which + doesn't make sense since it cannot be re-use when the authentication has + failed. I fixed that issue too at the same time, and also that the path + would be "remembered" in vain for cases where the connection was about to + get closed. + +Daniel (6 December 2006) +- Sebastien Willemijns reported bug #1603712 + (http://curl.haxx.se/bug/view.cgi?id=1603712) which is about connections + getting cut off prematurely when --limit-rate is used. While I found no such + problems in my tests nor in my reading of the code, I found that the + --limit-rate code was severly flawed (since it was moved into the lib, since + 7.15.5) when used with the easy interface and it didn't work as documented + so I reworked it somewhat and now it works for my tests. + +Daniel (5 December 2006) +- Stefan Krause pointed out a compiler warning with a picky MSCV compiler when + passing a curl_off_t argument to the Curl_read_rewind() function which takes + an size_t argument. Curl_read_rewind() also had debug code left in it and it + was put in a different source file with no good reason when only used from + one single spot. + +- Sh Diao reported that CURLOPT_CLOSEPOLICY doesn't work, and indeed, there is + no code present in the library that receives the option. Since it was not + possible to use, we know that no current users exist and thus we simply + removed it from the docs and made the code always use the default path of + the code. + +- Jared Lundell filed bug report #1604956 + (http://curl.haxx.se/bug/view.cgi?id=1604956) which identified setting + CURLOPT_MAXCONNECTS to zero caused libcurl to SIGSEGV. Starting now, libcurl + will always internally use no less than 1 entry in the connection cache. + +- Sh Diao reported that CURLOPT_FORBID_REUSE no works, and indeed it broke in + the 7.16.0 release. + +- Martin Skinner brought back bug report #1230118 to haunt us once again. + (http://curl.haxx.se/bug/view.cgi?id=1230118) curl_getdate() did not work + properly for all input dates on Windows. It was mostly seen on some TZ time + zones using DST. Luckily, Martin also provided a fix. + +- Alexey Simak filed bug report #1600447 + (http://curl.haxx.se/bug/view.cgi?id=1600447) in which he noted that active + FTP connections don't work with the multi interface. The problem is here + that the multi interface state machine has a state during which it can wait + for the data connection to connect, but the active connection is not done in + the same step in the sequence as the passive one is so it doesn't quite work + for active. The active FTP code still use a blocking function to allow the + remote server to connect. + + The fix (work-around is a better word) for this problem is to set the + boolean prematurely that the data connection is completed, so that the "wait + for connect" phase ends at once. + + The proper fix, left for the future, is of course to make the active FTP + case to act in a non-blocking way too. + +- Matt Witherspoon fixed a problem case when the CPU load went to 100% when a + HTTP upload was disconnected: + + "What appears to be happening is that my system (Linux 2.6.17 and 2.6.13) is + setting *only* POLLHUP on poll() when the conditions in my previous mail + occur. As you can see, select.c:Curl_select() does not check for POLLHUP. So + basically what was happening, is poll() was returning immediately (with + POLLHUP set), but when Curl_select() looked at the bits, neither POLLERR or + POLLOUT was set. This still caused Curl_readwrite() to be called, which + quickly returned. Then the transfer() loop kept continuing at full speed + forever." + +Daniel (1 December 2006) +- Toon Verwaest reported that there are servers that send the Content-Range: + header in a third, not suppported by libcurl, format and we agreed that we + could make the parser more forgiving to accept all the three found + variations. + +Daniel (25 November 2006) +- Venkat Akella found out that libcurl did not like HTTP responses that simply + responded with a single status line and no headers nor body. Starting now, a + HTTP response on a persistent connection (i.e not set to be closed after the + response has been taken care of) must have Content-Length or chunked + encoding set, or libcurl will simply assume that there is no body. + + To my horror I learned that we had no less than 57(!) test cases that did bad + HTTP responses like this, and even the test http server (sws) responded badly + when queried by the test system if it is the test system. So although the + actual fix for the problem was tiny, going through all the newly failing test + cases got really painful and boring. + +Daniel (24 November 2006) +- James Housley did lots of work and introduced SFTP downloads. + +Daniel (13 November 2006) +- Ron in bug #1595348 (http://curl.haxx.se/bug/view.cgi?id=1595348) pointed + out a stack overwrite (and the corresponding fix) on 64bit Windows when + dealing with HTTP chunked encoding. + +Daniel (9 November 2006) +- Nir Soffer updated libcurl.framework.make: + o fix symlinks, should link to Versions, not to ./Versions + o indentation improvments + +- Dmitriy Sergeyev found a SIGSEGV with his test04.c example posted on 7 Nov + 2006. It turned out we wrongly assumed that the connection cache was present + when tearing down a connection. + +- Ciprian Badescu found a SIGSEGV when doing multiple TFTP transfers using the + multi interface, but I could also repeat it doing multiple sequential ones + with the easy interface. Using Ciprian's test case, I could fix it. + +Daniel (8 November 2006) +- Bradford Bruce reported that when setting CURLOPT_DEBUGFUNCTION without + CURLOPT_VERBOSE set to non-zero, you still got a few debug messages from the + SSL handshake. This is now stopped. + +Daniel (7 November 2006) +- Olaf fixed a leftover problem with the CONNECT fix of his that would leave a + wrong error message in the error message buffer. + +Daniel (3 November 2006) +- Olaf Stueben provided a patch that I edited slightly. It fixes the notorious + KNOWN_BUGS #25, which happens when a proxy closes the connection when + libcurl has sent CONNECT, as part of an authentication negotiation. Starting + now, libcurl will re-connect accordingly and continue the authentication as + it should. + +Daniel (2 November 2006) +- James Housley brought support for SCP transfers, based on the libssh2 library + for the actual network protocol stuff. + + Added these new curl_easy_setopt() options: + + CURLOPT_SSH_AUTH_TYPES + CURLOPT_SSH_PUBLIC_KEYFILE + CURLOPT_SSH_PRIVATE_KEYFILE + +Version 7.16.0 (30 October 2006) + +Daniel (25 October 2006) +- Fixed CURLOPT_FAILONERROR to return CURLE_HTTP_RETURNED_ERROR even for the + case when 401 or 407 are returned, *IF* no auth credentials have been given. + The CURLOPT_FAILONERROR option is not possible to make fool-proof for 401 + and 407 cases when auth credentials is given, but we've now covered this + somewhat more. + + You might get some amounts of headers transferred before this situation is + detected, like for when a "100-continue" is received as a response to a + POST/PUT and a 401 or 407 is received immediately afterwards. + + Added test 281 to verify this change. + +Daniel (23 October 2006) +- Ravi Pratap provided a major update with pipelining fixes. We also no longer + re-use connections (for pipelining) before the name resolving is done. + +Daniel (21 October 2006) +- Nir Soffer made the tests/libtest/Makefile.am use a proper variable for all + the single test applications' link and dependences, so that you easier can + override those from the command line when using make. + +- Armel Asselin separated CA cert verification problems from problems with + reading the (local) CA cert file to let users easier pinpoint the actual + problem. CURLE_SSL_CACERT_BADFILE (77) is the new libcurl error code. + +Daniel (18 October 2006) +- Removed the "protocol-guessing" for URLs with host names starting with FTPS + or TELNET since they are practically non-existant. This leaves us with only + three different prefixes that would assume the protocol is anything but + HTTP, and they are host names starting with "ftp.", "dict." or "ldap.". + +Daniel (17 October 2006) +- Bug report #1579171 pointed out code flaws detected with "prefast", and they + were 1 - a too small memory clear with memset() in the threaded resolver and + 2 - a range of potentially bad uses of the ctype family of is*() functions + such as isdigit(), isalnum(), isprint() and more. The latter made me switch + to using our own set of these functions/macros using uppercase letters, and + with some extra set of crazy typecasts to avoid mistakingly passing in + negative numbers to the underlying is*() functions. + +- With Jeff Pohlmeyer's help, I fixed the expire timer when using + curl_multi_socket() during name resolves with c-ares and the LOW_SPEED + options now work fine with curl_multi_socket() as well. + +Daniel (16 October 2006) +- Added a check in configure that simply tries to run a program (not when + cross-compiling) in order to detect problems with run-time libraries that + otherwise would occur when the sizeof tests for curl_off_t would run and + thus be much more confusing to users. The check of course should run after + all lib-checks are done and before any other test is used that would run an + executable built for testing-purposes. + +Dan F (13 October 2006) +- The tagging of application/x-www-form-urlencoded POST body data sent + to the CURLOPT_DEBUGFUNCTION callback has been fixed (it was erroneously + included as part of the header). A message was also added to the + command line tool to show when data is being sent, enabled when + --verbose is used. + +Daniel (12 October 2006) +- Starting now, adding an easy handle to a multi stack that was already added + to a multi stack will cause CURLM_BAD_EASY_HANDLE to get returned. + +- Jeff Pohlmeyer has been working with the hiperfifo.c example source code, + and while doing so it became apparent that the current timeout system for + the socket API really was a bit awkward since it become quite some work to + be sure we have the correct timeout set. + + Jeff then provided the new CURLMOPT_TIMERFUNCTION that is yet another + callback the app can set to get to know when the general timeout time + changes and thus for an application like hiperfifo.c it makes everything a + lot easier and nicer. There's a CURLMOPT_TIMERDATA option too of course in + good old libcurl tradition. + + Jeff has also updated the hiperfifo.c example code to use this news. + +Daniel (9 October 2006) +- Bogdan Nicula's second test case (posted Sun, 08 Oct 2006) converted to test + case 535 and it now runs fine. Again a problem with the pipelining code not + taking all possible (error) conditions into account. + +Daniel (6 October 2006) +- Bogdan Nicula's hanging test case (posted Wed, 04 Oct 2006) was converted to + test case 533 and the test now runs fine. + +Daniel (4 October 2006) +- Dmitriy Sergeyev provided an example source code that crashed CVS libcurl + but that worked nicely in 7.15.5. I converted it into test case 532 and + fixed the problem. + +Daniel (29 September 2006) +- Removed a few other no-longer present options from the header file. + +- Support for FTP third party transfers was removed. Here's why: + + o The recent multi interface changes broke it and the design of the 3rd party + transfers made it very hard to fix the problems + o It was still blocking and thus nasty for the multi interface + o It was a lot of extra code for a very rarely used feature + o It didn't use the same code as for "plain" FTP transfers, so it didn't work + fine for IPv6 and it didn't properly re-use connections and more + o There's nobody around who's willing to work on and improve the existing + code + + This does not mean that third party transfers are banned forever, only that + they need to be done better if they are to be re-added in the future. + + The CURLOPT_SOURCE_* options are removed from the lib and so are the --3p* + options from the command line tool. For this reason, I also bumped the + version info for the lib. + +Daniel (28 September 2006) +- Reported in #1561470 (http://curl.haxx.se/bug/view.cgi?id=1561470), libcurl + would crash if a bad function sequence was used when shutting down after + using the multi interface (i.e using easy_cleanup after multi_cleanup) so + precautions have been added to make sure it doesn't any more - test case 529 + was added to verify. + +Daniel (27 September 2006) +- The URL in the cookie jar file is now changed since it was giving a 404. + Reported by Timothy Stone. The new URL will take the visitor to a curl web + site mirror with the document. + +Daniel (24 September 2006) +- Bernard Leak fixed configure --with-gssapi-libs. + +- Cory Nelson made libcurl use the WSAPoll() function if built for Windows + Vista (_WIN32_WINNT >= 0x0600) + +Daniel (23 September 2006) +- Mike Protts added --ftp-ssl-control to make curl use FTP-SSL, but only + encrypt the control connection and use the data connection "plain". + +- Dmitriy Sergeyev provided a patch that made the SOCKS[45] code work better + as it now will read the full data sent from servers. The SOCKS-related code + was also moved to the new lib/socks.c source file. + +Daniel (21 September 2006) +- Added test case 531 in an attempt to repeat bug report #1561470 + (http://curl.haxx.se/bug/view.cgi?id=1561470) that is said to crash when an + FTP upload fails with the multi interface. It did not, but I made a failed + upload still assume the control connection to be fine. + +Daniel (20 September 2006) +- Armel Asselin fixed problems when you gave a proxy URL with user name and + empty password or no password at all. Test case 278 and 279 were added to + verify. + +Daniel (12 September 2006) +- Added docs/examples/10-at-a-time.c by Michael Wallner + +- Added docs/examples/hiperfifo.c by Jeff Pohlmeyer + +Daniel (11 September 2006) +- Fixed my breakage from earlier today so that doing curl_easy_cleanup() on a + handle that is part of a multi handle first removes the handle from the + stack. + +- Added CURLOPT_SSL_SESSIONID_CACHE and --no-sessionid to disable SSL + session-ID re-use on demand since there obviously are broken servers out + there that misbehave with session-IDs used. + +- Jeff Pohlmeyer presented a *multi_socket()-using program that exposed a + problem with it (SIGSEGV-style). It clearly showed that the existing + socket-state and state-difference function wasn't good enough so I rewrote + it and could then re-run Jeff's program without any crash. The previous + version clearly could miss to tell the application when a handle changed + from using one socket to using another. + + While I was at it (as I could use this as a means to track this problem + down), I've now added a 'magic' number to the easy handle struct that is + inited at curl_easy_init() time and cleared at curl_easy_cleanup() time that + we can use internally to detect that an easy handle seems to be fine, or at + least not closed or freed (freeing in debug builds fill the area with 0x13 + bytes but in normal builds we can of course not assume any particular data + in the freed areas). + +Daniel (9 September 2006) +- Michele Bini fixed how the hostname is put in NTLM packages. As servers + don't expect fully qualified names we need to cut them off at the first dot. + +- Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. Some + of them can be completetly removed though... + +Daniel (6 September 2006) +- Ravi Pratap and I have implemented HTTP Pipelining support. Enable it for a + multi handle using CURLMOPT_PIPELINING and all HTTP connections done on that + handle will be attempted to get pipelined instead of done in parallell as + they are performed otherwise. + + As a side-effect from this work, connections are now shared between all easy + handles within a multi handle, so if you use N easy handles for transfers, + each of them can pick up and re-use a connection that was previously used by + any of the handles, be it the same or one of the others. + + This separation of the tight relationship between connections and easy + handles is most noticable when you close easy handles that have been used in + a multi handle and check amount of used memory or watch the debug output, as + there are times when libcurl will keep the easy handle around for a while + longer to be able to close it properly. Like for sending QUIT to close down + an FTP connection. + + This is a major change. + +Daniel (4 September 2006) +- Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a + patch that while not fixing things very nicely, it does make the SOCKS5 + proxy connection slightly better as it now acknowledges the timeout for + connection and it no longer segfaults in the case when SOCKS requires + authentication and you did not specify username:password. + +Daniel (31 August 2006) +- Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch + name resolves. It could get stuck in the wrong state. + +Gisle (29 August 2006) +- Added support for other MS-DOS compilers (desides djgpp). All MS-DOS + compiler now uses the same config.dos file (renamed to config.h by + make). libcurl now builds fine using Watcom and Metaware's High-C + using the Watt-32 tcp/ip-stack. + +Daniel (29 August 2006) +- David McCreedy added CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA to + allow applications to set their own socket options. + +Daniel (25 August 2006) +- Armel Asselin reported that the 'running_handles' counter wasn't updated + properly if you removed a "live" handle from a multi handle with + curl_multi_remove_handle(). + +Daniel (22 August 2006) +- David McCreedy fixed a remaining mistake from the August 19 TYPE change. + +- Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP + code when doing pure IPv6 EPRT connections. + +Daniel (19 August 2006) +- Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE + command on subsequent requests on a re-used connection unless it has to. + +- Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode and + files in the root directory. + +- Andrew Biggs pointed out a "Expect: 100-continue" flaw where libcurl didn't + send the whole request at once, even though the Expect: header was disabled + by the application. An effect of this change is also that small (< 1024 + bytes) POSTs are now always sent without Expect: header since we deem it + more costly to bother about that than the risk that we send the data in + vain. + +Daniel (9 August 2006) +- Armel Asselin made the CURLOPT_PREQUOTE option work fine even when + CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place + in the command sequence as it would have run if there would've been a + transfer. + +Daniel (8 August 2006) +- Fixed a flaw in the "Expect: 100-continue" treatment. If you did two POSTs + on a persistent connection and allowed the first to use that header, you + could not disable it for the second request. + +Daniel (7 August 2006) +- Domenico Andreolfound a quick build error which happened because + src/config.h.in was not a proper duplcate of lib/config.h.in which it + should've been and this was due to the maketgz script not doing the cp + properly. + +Version 7.15.5 (7 August 2006) + +Daniel (2 August 2006) +- Mark Lentczner fixed how libcurl was not properly doing chunked encoding + if the header "Transfer-Encoding: chunked" was set by the application. + http://curl.haxx.se/bug/view.cgi?id=1531838 + +Daniel (1 August 2006) +- Maciej Karpiuk fixed a crash that would occur if we passed Curl_strerror() + an unknown error number on glibc systems. + http://curl.haxx.se/bug/view.cgi?id=1532289 + +Daniel (31 July 2006) +- *ALERT* curl_multi_socket() and curl_multi_socket_all() got modified + prototypes: they both now provide the number of running handles back to the + calling function. It makes the functions resemble the good old + curl_multi_perform() more and provides a nice way to know when the multi + handle goes empty. + + ALERT2: don't use the curl_multi_socket*() functionality in anything + production-like until I say it's somewhat settled, as I suspect there might + be some further API changes before I'm done... + +Daniel (28 July 2006) +- Yves Lejeune fixed so that replacing Content-Type: when doing multipart + formposts work exactly the way you want it (and the way you'd assume it + works). + +Daniel (27 July 2006) +- David McCreedy added --ftp-ssl-reqd which makes curl *require* SSL for both + control and data connection, as the existing --ftp-ssl option only requests + it. + +- [Hiper-related work] Added a function called curl_multi_assign() that will + set a private pointer added to the internal libcurl hash table for the + particular socket passed in to this function: + + CURLMcode curl_multi_assign(CURLM *multi_handle, + curl_socket_t sockfd, + void *sockp); + + 'sockp' being a custom pointer set by the application to be associated with + this socket. The socket has to be already existing and in-use by libcurl, + like having already called the callback telling about its existance. + + The set hashp pointer will then be passed on to the callback in upcoming + calls when this same socket is used (in the brand new 'socketp' argument). + +Daniel (26 July 2006) +- Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curl + tool option named --ftp-alternative-to-user. It provides a mean to send a + particular command if the normal USER/PASS approach fails. + +- Michael Jerris added magic that builds lib/curllib.vcproj automatically for + newer MSVC. + +Daniel (25 July 2006) +- Georg Horn made the transfer timeout error message include more details. + +Daniel (20 July 2006) +- David McCreedy fixed a build error when building libcurl with HTTP disabled, + problem added with the curl_formget() patch. + +Daniel (17 July 2006) +- Jari Sundell did some excellent research and bug tracking, figured out that + we did wrong and patched it: When nodes were removed from the splay tree, + and we didn't properly remove it from the splay tree when an easy handle was + removed from a multi stack and thus we could wrongly leave a node in the + splay tree pointing to (bad) memory. + +Daniel (14 July 2006) +- David McCreedy fixed a flaw where the CRLF counter wasn't properly cleared + for FTP ASCII transfers. + +Daniel (8 July 2006) +- Ates Goral pointed out that libcurl's cookie parser did case insensitive + string comparisons on the path which is incorrect and provided a patch that + fixes this. I edited test case 8 to include details that test for this. + +- Ingmar Runge provided a source snippet that caused a crash. The reason for + the crash was that libcurl internally was a bit confused about who owned the + DNS cache at all times so if you created an easy handle that uses a shared + DNS cache and added that to a multi handle it would crash. Now we keep more + careful internal track of exactly what kind of DNS cache each easy handle + uses: None, Private (allocated for and used only by this single handle), + Shared (points to a cache held by a shared object), Global (points to the + global cache) or Multi (points to the cache within the multi handle that is + automatically shared between all easy handles that are added with private + caches). + +Daniel (4 July 2006) +- Toshiyuki Maezawa fixed a problem where you couldn't override the + Proxy-Connection: header when using a proxy and not doing CONNECT. + +Daniel (24 June 2006) +- Michael Wallner added curl_formget(), which allows an application to extract + (serialise) a previously built formpost (as with curl_formadd()). + +Daniel (23 June 2006) +- Arve Knudsen found a flaw in curl_multi_fdset() for systems where + curl_socket_t is unsigned (like Windows) that could cause it to wrongly + return a max fd of -1. + +Daniel (20 June 2006) +- Peter Silva introduced CURLOPT_MAX_SEND_SPEED_LARGE and + CURLOPT_MAX_RECV_SPEED_LARGE that limit tha maximum rate libcurl is allowed + to send or receive data. This kind of adds the the command line tool's + option --limit-rate to the library. + + The rate limiting logic in the curl app is now removed and is instead + provided by libcurl itself. Transfer rate limiting will now also work for -d + and -F, which it didn't before. + +Daniel (19 June 2006) +- Made -K on a file that couldn't be read cause a warning to be displayed. + +Daniel (13 June 2006) +- Dan Fandrich implemented --enable-hidden-symbols configure option to enable + -fvisibility=hidden on gcc >= 4.0. This reduces the size of the libcurl + binary and speeds up dynamic linking by hiding all the internal symbols from + the symbol table. + +Version 7.15.4 (12 June 2006) + +Daniel (8 June 2006) +- Brian Dessent fixed the code for cygwin in three distinct ways: + + The first modifies {lib,src}/setup.h to not include the winsock headers + under Cygwin. This fixes the reported build problem. Cygwin attempts as + much as possible to emulate a posix environment under Windows. This means + that WIN32 is *not* #defined and (to the extent possible) everything is done + as it would be on a *ix type system. Thus is the proper + include, and even though winsock2.h is present, including it just introduces + a whole bunch of incompatible socket API stuff. + + The second is a patch I've included in the Cygwin binary packages for a + while. It skips two unnecessary library checks (-lwinmm and -lgdi32). The + checks are innocuous and they do succeed, but they pollute LIBS with + unnecessary stuff which gets recorded as such in the libcurl.la file, which + brings them into the build of any libcurl-downstream. As far as I know + these libs are really only necessary for mingw, so alternatively they could + be designed to only run if $host matches *-*-mingw* but I took the safer + route of skipping them for *-*-cygwin*. + + The third patch replaces all uses of the ancient and obsolete __CYGWIN32__ + with __CYGWIN__. Ref: . + +Daniel (7 June 2006) +- Mikael Sennerholm provided a patch that added NTLM2 session response support + to libcurl. The 21 NTLM test cases were again modified to comply... + +Daniel (27 May 2006) +- Óscar Morales Vivó updated the libcurl.framework.make file. + +Daniel (26 May 2006) +- Olaf Stüben fixed a bug that caused Digest authentication with md5-sess to + fail. When using the md5-sess, the result was not Md5 encoded and Base64 + transformed. + +Daniel (25 May 2006) +- Michael Wallner provided a patch that allows "SESS" to be set with + CURLOPT_COOKIELIST, which then makes all session cookies get cleared. + +Daniel (24 May 2006) +- Tor Arntsen made test 271 run fine again since the TFTP path fix. + +Daniel (23 May 2006) +- Martin Michlmayr filed debian bug report #367954, but the same error also + showed up in the autobuilds. It seems a rather long-since introduced shell + script flaw in the configure script suddenly was detected by the bash + version in Debian Unstable. It had previously passed undetected by all + shells used so far... + +- David McCreedy updated lib/config-tpf.h + +Daniel (11 May 2006) +- Fixed the configure's check for old-style SSLeay headers since I fell over a + case with a duplicate file name (a krb4 implementation with an err.h + file). I converted the check to manually make sure three of the headers are + present before considering them fine. + +- David McCreedy provided a fix for CURLINFO_LASTSOCKET that does extended + checks on the to-be-returned socket to make sure it truly seems to be alive + and well. For SSL connection it (only) uses OpenSSL functions. + +Daniel (10 May 2006) +- Fixed DICT in two aspects: + + 1 - allow properly URL-escaped words, like using %20 for spaces + + 2 - properly escape certain letters within a word to comply to the RFC2229 + +Daniel (9 May 2006) +- Andreas Ntaflos reported a bug in libcurl.m4: When configuring my GNU + autotools project, which optionally (default=yes) uses libcurl on a system + without a (usable) libcurl installation, but not specifying + `--without-libcurl', configure determines correctly that no libcurl is + available, however, the LIBCURL variable gets expanded to `LIBCURL = -lcurl' + in the resulting Makefiles. + + David Shaw fixed the flaw. + +- Robson Braga Araujo fixed two problems in the recently added non-blocking SSL + connects. The state machine was not reset properly so that subsequent + connects using the same handle would fail, and there were two memory leaks. + +- Robson Braga Araujo fixed a memory leak when you added an easy handle to a + multi stack and that easy handle had already been used to do one or more + easy interface transfers, as then the code threw away the previously used + DNS cache without properly freeing it. + +Daniel (8 May 2006) +- Dan Fandrich went over the TFTP code and he pointed out and fixed numerous + problems: + + * The received file is corrupted when a packet is lost and retransmitted + (this is a serious problem!) + + * Transmitting a file aborts if a block is lost and retransmitted + + * Data is stored in the wrong location in the buffer for uploads, so uploads + always fail (I don't see how it could have ever worked, but it did on x86 + at least) + + * A number of calls are made to strerror instead of Curl_strerror, making + the code not thread safe + + * There are references to errno instead of Curl_sockerrno(), causing + incorrect error messages on Windows + + * The file name includes a leading / which violates RFC3617. Doing something + similar to ftp, where two slashes after the host name means an absolute + reference seems a reasonable extension to fix this. + + * Failures in EBCDIC conversion are not propagated up to the caller but are + silently ignored + +- Fixed known bug #28. The TFTP code no longer assumes a packed struct and + thus works reliably on more platforms. + +Daniel (5 May 2006) +- Roland Blom filed bug report #1481217 + (http://curl.haxx.se/bug/view.cgi?id=1481217), with follow-ups by Michele + Bini and David Byron. libcurl previously wrongly used GetLastError() on + windows to get error details after socket-related function calls, when it + really should use WSAGetLastError() instead. + + When changing to this, the former function Curl_ourerrno() is now instead + called Curl_sockerrno() as it is necessary to only use it to get errno from + socket-related functions as otherwise it won't work as intended on Windows. + +Daniel (4 May 2006) +- Mark Eichin submitted bug report #1480821 + (http://curl.haxx.se/bug/view.cgi?id=1480821) He found and identified a + problem with how libcurl dealt with GnuTLS and a case where gnutls returned + GNUTLS_E_AGAIN indicating it would block. It would then return an unexpected + return code, making Curl_ssl_send() confuse the upper layer - causing random + 28 bytes trash data to get inserted in the transfered stream. + + The proper fix was to make the Curl_gtls_send() function return the proper + return codes that the callers would expect. The Curl_ossl_send() function + already did this. + +Daniel (2 May 2006) +- Added a --checkfor option to curl-config to allow users to easier + write for example shell scripts that test for the presence of a + new-enough libcurl version. If --checkfor is given a version string + newer than what is currently installed, curl-config will return a + non-zero exit code and output a string about the unfulfilled + requirement. + +Daniel (26 April 2006) +- David McCreedy brought initial line end conversions when doing FTP ASCII + transfers. They are done on non-windows systems and translate CRLF to LF. + + I modified the 15 LIST-using test cases accordingly. The downside is that now + we'll have even more trouble to get the tests to run on Windows since they + should get CRLF newlines left intact which the *nix versions don't. I figure + the only sane thing to do is to add some kind of [newline] macro for the test + case files and have them expanded to the proper native line ending when the + test cases are run. This is however left to implement. + +Daniel (25 April 2006) +- Paul Querna fixed libcurl to better deal with deflate content encoding + when the stream (wrongly) lacks a proper zlib header. This seems to be the + case on too many actual server implementations. + +Daniel (21 April 2006) +- Ale Vesely fixed CURLOPT_INTERFACE when using a hostname. + +Daniel (19 April 2006) +- Based on previous info from Tor Arntsen, I made configure detect the Intel + ICC compiler to add a compiler option for it, in order for configure to + properly be able to detect function prototypes. + +- Robson Braga Araujo provided a patch that makes libcurl less eager to close + the control connection when using FTP, for example when you remove an easy + handle from a multi stack. + +- Applied a patch by Ates Goral and Katie Wang that corrected my bad fix + attempt from April 10. + +Daniel (11 April 2006) +- #1468330 (http://curl.haxx.se/bug/view.cgi?id=1468330) pointed out a bad + typecast in the curl tool leading to a crash with (64bit?) VS2005 (at least) + since the struct timeval field tv_sec is an int while time_t is 64bit. + +Daniel (10 April 2006) +- Ates Goral found out that if you specified both CURLOPT_CONNECTTIMEOUT and + CURLOPT_TIMEOUT, the _longer_ time would wrongly be used for the SSL + connection time-out! + +- I merged my hiper patch (http://curl.haxx.se/libcurl/hiper/) into the main + sources. See the lib/README.multi_socket for implementation story with + details. Don't expect it to work fully yet. I don't intend to blow any + whistles or ring any bells about it until I'm more convinced it works at + least somewhat reliably. + +Daniel (7 April 2006) +- David McCreedy's EBCDIC and TPF changes. Three new curl_easy_setopt() + options (callbacks) were added: + + CONV_FROM_NETWORK_FUNCTION + CONV_TO_NETWORK_FUNCTION + CONV_FROM_UTF8_FUNCTION + +Daniel (5 April 2006) +- Michele Bini modified the NTLM code to work for his "weird IIS case" + (http://curl.haxx.se/mail/lib-2006-02/0154.html) by adding the NTLM hash + function in addition to the LM one and making some other adjustments in the + order the different parts of the data block are sent in the Type-2 reply. + Inspiration for this work was taken from the Firefox NTLM implementation. + + I edited the existing 21(!) NTLM test cases to run fine with these news. Due + to the fact that we now properly include the host name in the Type-2 message + the test cases now only compare parts of that chunk. + +Daniel (28 March 2006) +- #1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that + occurred when asking libcurl to follow HTTP redirects and the original URL + had more than one question mark (?). Added test case 276 to verify. + +Daniel (27 March 2006) +- David Byron found a problem multiple -d options when libcurl was built with + --enable-debug, as then curl used free() on memory allocated both with + normal malloc() and with libcurl-provided functions, when the latter MUST be + freed with curl_free() in debug builds. + +Daniel (26 March 2006) +- Tor Arntsen figured out that TFTP was broken on a lot of systems since we + called bind() with a too big argument in the 3rd parameter and at least + Tru64, AIX and IRIX seem to be very picky about it. + +Daniel (21 March 2006) +- David McCreedy added CURLINFO_FTP_ENTRY_PATH. + +- Xavier Bouchoux made the SSL connection non-blocking for the multi interface + (when using OpenSSL). + +- Tor Arntsen fixed the AIX Toolbox RPM spec + +Daniel (20 March 2006) +- David McCreedy fixed libcurl to no longer ignore AUTH failures and now it + reacts properly according to the CURLOPT_FTP_SSL setting. + +- Dan Fandrich fixed two TFTP problems: Fixed a bug whereby a received file + whose length was a multiple of 512 bytes could have random garbage + appended. Also, stop processing TFTP packets which are too short to be + legal. + +- Ilja van Sprundel reported a possible crash in the curl tool when using + "curl hostwithoutslash -d data -G" + +Version 7.15.3 (20 March 2006) + +Daniel (20 March 2006) +- VULNERABILITY reported to us by Ulf Harnhammar. + + libcurl uses the given file part of a TFTP URL in a manner that allows a + malicious user to overflow a heap-based memory buffer due to the lack of + boundary check. + + This overflow happens if you pass in a URL with a TFTP protocol prefix + ("tftp://"), using a valid host and a path part that is longer than 512 + bytes. + + The affected flaw can be triggered by a redirect, if curl/libcurl is told to + follow redirects and an HTTP server points the client to a tftp URL with the + characteristics described above. + + The Common Vulnerabilities and Exposures (CVE) project has assigned the name + CVE-2006-1061 to this issue. + +Daniel (16 March 2006) +- Tor Arntsen provided a RPM spec file for AIX Toolbox, that now is included + in the release archive. + +Daniel (14 March 2006) +- David McCreedy fixed: + + a bad SSL error message when OpenSSL certificates are verified fine. + + a missing return code assignment in the FTP code + +Daniel (7 March 2006) +- Markus Koetter filed debian bug report #355715 which identified a problem + with the multi interface and multi-part formposts. The fix from February + 22nd could make the Curl_done() function get called twice on the same + connection and it was not designed for that and thus tried to call free() on + an already freed memory area! + +- Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSL + is used properly. + +Daniel (6 March 2006) +- Lots of users on Windows have reported getting the "SSL: couldn't set + callback" error message so I've now made the setting of that callback not be + as critical as before. The function is only used for additional loggging/ + trace anyway so a failure just means slightly less data. It should still be + able to proceed and connect fine to the server. + +Daniel (4 March 2006) +- Thomas Klausner provided a patch written by Todd Vierling in bug report + #1442471 that fixes a build problem on Interix. + +Daniel (2 March 2006) +- FTP upload without a file name part in the URL now causes + curl_easy_perform() to return CURLE_URL_MALFORMAT. Previously it allowed the + upload but named the file "(nil)" (without the quotes). Test case 524 + verifies. + +- Added a check for getprotobyname in configure so that it'll be used, thanks + to Gisle Vanem's change the other day. + +Daniel (28 February 2006) +- Dan Fandrich prevented curl from getting stuck in an endless loop in case we + are out of file handles very early in curl's code where it makes sure that + 0, 1 and 2 aren't gonna be used by the lib for transfers. + +Daniel (27 February 2006) +- Marty Kuhrt pointed out that there were two VMS-specific files missing in + the release archive. + +Version 7.15.2 (27 February 2006) + +Daniel (22 February 2006) +- Lots of work and analysis by "xbx___" in bug #1431750 + (http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two + different but related bugs: + + 1) Removing an easy handle from a multi handle before the transfer is done + could leave a connection in the connection cache for that handle that is + in a state that isn't suitable for re-use. A subsequent re-use could then + read from a NULL pointer and segfault. + + 2) When an easy handle was removed from the multi handle, there could be an + outstanding c-ares DNS name resolve request. When the response arrived, + it caused havoc since the connection struct it "belonged" to could've + been freed already. + + Now Curl_done() is called when an easy handle is removed from a multi handle + pre-maturely (that is, before the transfer was complteted). Curl_done() also + makes sure to cancel all (if any) outstanding c-ares requests. + +Daniel (21 February 2006) +- Peter Su added support for SOCKS4 proxies. Enable this by setting the proxy + type to the already provided type CURLPROXY_SOCKS4. + + I added a --socks4 option that works like the current --socks5 option but + instead use the socks4 protocol. + +Daniel (20 February 2006) +- Shmulik Regev fixed an issue with multi-pass authentication and compressed + content when libcurl didn't honor the internal ignorebody flag. + +Daniel (18 February 2006) +- Ulf Härnhammar fixed a format string (printf style) problem in the Negotiate + code. It should however not be the cause of any troubles. He also fixed a + few similar problems in the HTTP test server code. + +Daniel (17 February 2006) +- Shmulik Regev provided a fix for the DNS cache when using short life times, + as previously it could be holding on to old cached entries longer than + requested. + +Daniel (11 February 2006) +- Karl Moerder added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options + that an app can use to let libcurl only connect to a remote host and then + extract the socket from libcurl. libcurl will then not attempt to do any + transfer at all after the connect is done. + +- Kent Boortz improved the configure check for GnuTLS to properly set LIBS + instead of LDFLAGS. + +Daniel (8 February 2006) +- Philippe Vaucher provided a brilliant piece of test code that show a problem + with re-used FTP connections. If the second request on the same connection + was set not to fetch a "body", libcurl could get confused and consider it an + attempt to use a dead connection and would go acting mighty strange. + +Daniel (2 February 2006) +- Make --limit-rate [num] mean bytes. It used to be that but it broke in my + change done in November 2005. + +Daniel (30 January 2006) +- Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with the + curl tool with --local-port. Plain and simply set the range of ports to bind + the local end of connections to. Implemented on to popular demand. + +- Based on an error report by Philippe Vaucher, we no longer count a retried + connection setup as a follow-redirect. It turns out 1) this fails when a FTP + connection is re-setup and 2) it does make the max-redirs counter behave + wrong. + +Daniel (24 January 2006) +- Michal Marek provided a patch for FTP that makes libcurl continue to try + PASV even after EPSV returned a positive response code, if libcurl failed to + connect to the port number the EPSV response said. Obviously some people are + going through protocol-sensitive firewalls (or similar) that don't + understand EPSV and then they don't allow the second connection unless PASV + was used. This also called for a minor fix of test case 238. + +Daniel (20 January 2006) +- Duane Cathey was one of our friends who reported that curl -P [IP] + (CURLOPT_FTPPORT) didn't work for IPv6-enabed curls if the IP wasn't a + "native" IP while it works fine for IPv6-disabled builds! + + In the process of fixing this, I removed the support for LPRT since I can't + think of many reasons to keep doing it and asking on the mailing list didn't + reveal anyone else that could either. The code that sends EPRT and PORT is + now also a lot simpler than before (IMHO). + +Daniel (19 January 2006) +- Jon Turner pointed out that doing -P [hostname] (CURLOPT_FTPPORT) with curl + (built IPv4-only) didn't work. + +Daniel (18 January 2006) +- As reported in bug #1408742 (http://curl.haxx.se/bug/view.cgi?id=1408742), + the configure script complained about a missing "missing" script if you ran + configure within a path whose name included one or more spaces. This is due + to a flaw in automake (1.9.6 and earlier). I've now worked around it by + including an "overloaded" version of the AM_MISSING_HAS_RUN script that'll + be used instead of the one automake ships with. This kludge needs to be + removed once we get an automake version with this problem corrected. + Possibly we'll then need to convert this into a kludge depending on what + automake version that is used and that is gonna be painful and I don't even + want to think about that now...! + +Daniel (17 January 2006) +- David Shaw: Here is the latest libcurl.m4 autoconf tests. It is updated with + the latest features and protocols that libcurl supports and has a minor fix + to better deal with the obscure case where someone has more than one libcurl + installed at the same time. + +Daniel (16 January 2006) +- David Shaw finally removed all traces of Gopher and we are now officially + not supporting it. It hasn't been functioning for years anyway, so this is + just finally stating what already was true. And a cleanup at the same time. + +- Bryan Henderson turned the 'initialized' variable for curl_global_init() + into a counter, and thus you can now do multiple curl_global_init() and you + are then supposed to do the same amount of calls to curl_global_cleanup(). + Bryan has also updated the docs accordingly. + +Daniel (13 January 2006) +- Andrew Benham fixed a race condition in the test suite that could cause the + test script to kill all processes in the current process group! + +Daniel (12 January 2006) +- Michael Jahn: + + Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru + HTTP proxy. + + Fixed PROXYTUNNEL to work fine when you do ftp through a proxy. It would + previously overwrite internal memory and cause unpredicted behaviour! + +Daniel (11 January 2006) +- I decided to document the "secret option" here now, as I've received *NO* + feedback at all on my mailing list requests from November 2005: + + I'm looking for feedback and comments. I added some experimental code the + other day, that allows a libcurl user to select what method libcurl should + use to reach a file on a FTP(S) server. + + This functionality is available in CVS code and in recent daily snapshots. + + Let me explain... + + The current name for the option is CURLOPT_FTP_FILEMETHOD (--ftp-method for + the command line tool) and you set it to a long (there are currenly no + defines for the argument values, just plain numericals). You can set three + different "methods" that do this: + + 1 multicwd - like today, curl will do a single CWD operation for each path + part in the given URL. For deep hierarchies this means very many + commands. This is how RFC1738 says it should be done. This is the + default. + + 2 nocwd - no CWD at all is done, curl will do SIZE, RETR, STOR etc and give + a full path to the server. + + 3 singlecwd - make one CWD with the full target directory and then operate + on the file "normally". + + (With the command line tool you do --ftp-method [METHOD], where [METHOD] is + one of "multicwd", "nocwd" or "singlecwd".) + + What feedback I'm interested in: + + 1 - Do they work at all? Do you find servers where one of these don't work? + + 2 - What would proper names for the option and its arguments be, if we + consider this feature good enough to get included and documented in + upcoming releases? + + 3 - Should we make libcurl able to "walk through" these options in case of + (path related) failures, or should it fail and let the user redo any + possible retries? + + (This option is not documented in any man page just yet since I'm not sure + these names will be used or if the functionality will end up exactly like + this. And for the same reasons we have no test cases for these yet.) + +Daniel (10 January 2006) +- When using a bad path over FTP, as in when libcurl couldn't CWD into all + given subdirs, libcurl would still "remember" the full path as if it is the + current directory libcurl is in so that the next curl_easy_perform() would + get really confused if it tried the same path again - as it would not issue + any CWD commands at all, assuming it is already in the "proper" dir. + + Starting now, a failed CWD command sets a flag that prevents the path to be + "remembered" after returning. + +Daniel (7 January 2006) +- Michael Jahn fixed so that the second CONNECT when doing FTP over a HTTP + proxy actually used a new connection and not sent the second request on the + first socket! + +Daniel (6 January 2006) +- Alexander Lazic made the buildconf run the buildconf in the ares dir if that + is present instead of trying to mimic that script in curl's buildconf + script. + +Daniel (3 January 2006) +- Andres Garcia made the TFTP test server build with mingw. +Daniel (16 December 2005) +- Jean Jacques Drouin pointed out that you could only have a user name or + password of 127 bytes or less embedded in a URL, where actually the code + uses a 255 byte buffer for it! Modified now to use the full buffer size. + +Daniel (12 December 2005) +- Dov Murik corrected the HTTP_ONLY define to disable the TFTP support properly + +Version 7.15.1 (7 December 2005) + +Daniel (6 December 2005) +- Full text here: http://curl.haxx.se/docs/adv_20051207.html Pointed out by + Stefan Esser. + + VULNERABILITY + + libcurl's URL parser function can overflow a malloced buffer in two ways, if + given a too long URL. + + These overflows happen if you + + 1 - pass in a URL with no protocol (like "http://") prefix, using no slash + and the string is 256 bytes or longer. This leads to a single zero byte + overflow of the malloced buffer. + + 2 - pass in a URL with only a question mark as separator (no slash) between + the host and the query part of the URL. This leads to a single zero byte + overflow of the malloced buffer. + + Both overflows can be made with the same input string, leading to two single + zero byte overwrites. + + The affected flaw cannot be triggered by a redirect, but the long URL must + be passed in "directly" to libcurl. It makes this a "local" problem. Of + course, lots of programs may still pass in user-provided URLs to libcurl + without doing much syntax checking of their own, allowing a user to exploit + this vulnerability. + + There is no known exploit at the time of this writing. + + +Daniel (2 December 2005) +- Jamie Newton pointed out that libcurl's file:// code would close() a zero + file descriptor if given a non-existing file. + +Daniel (24 November 2005) +- Doug Kaufman provided a set of patches to make curl build fine on DJGPP + again using configure. + +- Yang Tse provided a whole series of patches to clear up compiler warnings on + MSVC 6. + +Daniel (17 November 2005) +- I extended a patch from David Shaw to make libcurl _always_ provide an error + string in the given error buffer to address the flaw mention on 21 sep 2005. + +Daniel (16 November 2005) +- Applied Albert Chin's patch that makes the libcurl.pc pkgconfig file get + installed on 'make install' time. + +Daniel (14 November 2005) +- Quagmire reported that he needed to raise a NTLM buffer for SSPI to work + properly for a case, and so we did. We raised it even for non-SSPI builds + but it should not do any harm. http://curl.haxx.se/bug/view.cgi?id=1356715 + +- Jan Kunder's debian bug report + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338680 identified a weird + error message for when you try to upload a file and the requested directory + doesn't exist on the target server. + +- Yang Tse fixed compiler warnings in lib/ssluse.c with OpenSSL 0.9.8 and in + lib/memdebug.h that showed up in his msvc builds. + +Daniel (13 November 2005) +- Debian bug report 338681 by Jan Kunder: make curl better detect and report + bad limit-rate units: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338681 Now curl will return + error if a bad unit is used. + +- Thanks to this nice summary of poll() implementations: + http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene + Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote + connectin closure so we check for that case (too) and re-enable poll for + cygwin builds. + +Daniel (12 November 2005) +- Eugene Kotlyarov found out that cygwin's poll() function isn't doing things + right: http://curl.haxx.se/mail/archive-2005-11/0045.html so we now disable + poll() and use select() on cygwin too (we already do the same choice on Mac + OS X) + +- Dima Barsky patched problem #1348930: the GnuTLS code completely ignored + client certificates! (http://curl.haxx.se/bug/view.cgi?id=1348930). + +Daniel (10 November 2005) +- David Lang fixed IPv6 support for TFTP! + +- Introducing range stepping to the curl globbing support. Now you can specify + step counter by adding :[num] within the brackets when specifying a range: + + [1-100:10] + [a-z:2] + + If no step counter is set, it defaults to 1 as before: + + [1-100] + [d-h] + +Daniel (8 November 2005) +- Removed the use of AI_CANONNAME in the IPv6-enabled resolver functions since + we really have no use for reverse lookups of the address. + + I truly hope these are the last reverse lookups we had lingering in the + code! + +- Dmitry Bartsevich discovered some issues in compatibilty of SSPI-enabled + version of libcurl with different Windows versions. Current version of + libcurl imports SSPI functions from secur32.dll. However, under Windows NT + 4.0 these functions are located in security.dll, under Windows 9x - in + secur32.dll and Windows 2000 and XP contains both these DLLs (security.dll + just forwards calls to secur32.dll). + + Dmitry's patch loads proper library dynamically depending on Windows + version. Function InitSecurityInterface() is used to obtain pointers to all + of SSPI function in one structure. + +Daniel (31 October 2005) +- Vilmos Nebehaj improved libcurl's LDAP abilities: + + The LDAP code in libcurl can't handle LDAP servers of LDAPv3 nor binary + attributes in LDAP objects. So, I made a quick patch to address these + problems. + + The solution is simple: if we connect to an LDAP server, first try LDAPv3 + (which is the preferred protocol as of now) and then fall back to LDAPv2. + In case of binary attributes, we first convert them to base64, just like the + openldap client does. It uses ldap_get_values_len() instead of + ldap_get_values() to be able to retrieve binary attributes correctly. I + defined the necessary LDAP macros in lib/ldap.c to be able to compile + libcurl without the presence of libldap + +Daniel (27 October 2005) +- Nis Jorgensen filed bug report #1338648 + (http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a + feature request, but anyway. It pointed out that --max-redirs did not allow + it to be set to 0, which then would return an error code on the first + Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS + set to 0, or -1 for infinity. Added test case 274 to verify. + +- tommink[at]post.pl reported in bug report #1337723 + (http://curl.haxx.se/bug/view.cgi?id=1337723) that curl could not upload + binary data from stdin on Windows if the data contained control-Z (hex 1a) + since that is treated as end-of-file when read in text mode. Gisle Vanem + pointed out the fix, and I made both -T and --data-binary take advantage of + it. + +- Jaz Fresh pointed out that if you used "-r [number]" as was wrongly described + in the man page, curl would send an invalid HTTP Range: header. The correct + way would be to use "-r [number]-" or even "-r -[number]". Starting now, + curl will warn if this is discovered, and automatically append a dash to the + range before passing it to libcurl. + +Daniel (25 October 2005) +- Amol Pattekar reported a bug with great detail and a fine example in bug + #1326306 (http://curl.haxx.se/bug/view.cgi?id=1326306). When using the multi + interface and connecting to a host with multiple IP addresses, and one of + the addresses fails to connect (the server must exist and respond, just not + accept connections) libcurl leaks a socket descriptor. Thanks to the fine + report, I could find and fix this. + +Daniel (22 October 2005) +- Dima Barsky reported a problem with GnuTLS-enabled libcurl in bug report + #1334338 (http://curl.haxx.se/bug/view.cgi?id=1334338). When reading an SSL + stream from a server and the server requests a "rehandshake", the current + code simply returns this as an error. I have no good way to test this, but + I've added a crude attempt of dealing with this situation slightly better - + it makes a blocking handshake if this happens. Done like this because fixing + this the "proper" way (that would handshake asynchronously) will require + quite some work and I really need a good way to test this to do such a + change. + +Daniel (21 October 2005) +- "Ofer" reported a problem when libcurl re-used a connection and failed to do + it, it could then accidentally actually crash. Presumably, this concerns FTP + connections. http://curl.haxx.se/bug/view.cgi?id=1330310 + +- Temprimus improved the MSVC makefile so that the static debug SSL libs are + linked to the executable and not to the libcurld.lib + http://curl.haxx.se/bug/view.cgi?id=1326676 + +- Bradford Bruce made the windows resolver code properly return + CURLE_COULDNT_RESOLVE_PROXY and CURLE_COULDNT_RESOLVE_HOST on resolving + errors (as documented). + +Daniel (20 October 2005) +- Dave Dribin made libcurl understand and handle cases when the server + (wrongly) sends *two* WWW-Authenticate headers for Digest. While this should + never happen in a sane world, libcurl previously got into an infinite loop + when this occurred. Dave added test 273 to verify this. + +- Temprimus improved the MSVC makefile: "makes a build option available so if + you set rtlibcfg=static for the make, then it would build with /MT. The + default behaviour is /MD (the original)." + http://curl.haxx.se/bug/view.cgi?id=1326665 + +Daniel (14 October 2005) +- Reverted the LIBCURL_VERSION_NUM change from October 6. As Dave Dribin + reported, the define is used by the configure script and is assumed to use + the 0xYYXXZZ format. This made "curl-config --vernum" fail in the 7.15.0 + release version. + +Version 7.15.0 (13 October 2005) + +Daniel (12 October 2005) +- Michael Sutton of iDEFENSE reported and I fixed a securitfy flaw in the NTLM + code that would overflow a buffer if given a too long user name or domain + name. This would happen if you enable NTLM authentication and either + + A - pass in a user name and domain name to libcurl that together are longer + than 192 bytes + + B - allow (lib)curl to follow HTTP "redirects" (Location: and the + appropriate HTTP 30x response code) and the new URL contains a URL with + a user name and domain name that together are longer than 192 bytes + + See http://curl.haxx.se/docs/security.html for further details and updates + +Daniel (5 October 2005) +- Darryl House reported a problem with using -z to download files from FTP. + It turned out that if the given time stamp was exact the same as the remote + time stamp, the file would still wrongly be downloaded. Added test case 272 + to verify. + +Daniel (4 October 2005) +- Domenico Andreoli fixed a man page malformat and removed odd (0xa0) bytes + from the configure script. + +- Michael Wallner reported that the date parser had wrong offset stored for + the MEST and CEST time zones. + +Daniel (27 September 2005) +- David Yan filed bug #1299181 (http://curl.haxx.se/bug/view.cgi?id=1299181) + that identified a silly problem with Content-Range: headers with the 'bytes' + keyword written in a different case than all lowercase! It would cause a + segfault! + +- TJ Saunders of the proftpd project identified and pointed out problems with + the modified FTPS negotiation change of August 19 2005. Thus, we revert the + change back to pre-7.14.1 status. + +Daniel (21 September 2005) +- Fixed "cut off" sentence in the libcurl-tutorial man page: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329305 + +- Clarified in the curl_easy_setopt man page what the default + CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA mean: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329311 + +- Clarified in the curl_easy_setopt man page that CURLOPT_ERRORBUFFER + sometimes doesn't fill in the buffer even though it is supposed to: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329313 + +- When CURLE_URL_MALFORMAT is returned due to a missing URL, it now has an + error string set. + +Daniel (19 September 2005) +- Dmitry Bartsevich made the SSPI support work on Windows 9x as well. + +Daniel (15 September 2005) +- Added a TFTP server to the test suite and made the test suite capable of + using it. + +Daniel (7 September 2005) +- Ben Madsen's detailed reports that funnily enough only occurred with certain + glibc versions turned out to be curl using an already closed file handle + during certain conditions (like when saving FTP server "headers"). + +- Scott Davis helped me track down a problem in the test HTTP server that made + test case 56 wrongly fail at times. It turned out it was due to the server + finding the end of a chunked-encoded POST too early. + +Daniel (6 September 2005) +- Now curl warns if an unknown variable is used in the -w/--writeout argument. + +Daniel (4 September 2005) +- I applied Nicolas François' man page patch he posted to the Debian bug + tracker. It corrected two lines that started with apostrophes, which isn't + legal nroff format. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=326511 + +- Added --ftp-skip-pasv-ip to the command line tool, that sets the new + CURLOPT_FTP_SKIP_PASV_IP option. It makes libcurl re-use the control + connection's IP address when setting up the data connection instead of + extractting the IP address from the PASV response. It has turned out this + feature is frequently needed by people to circumvent silly servers and silly + firewalls, especially when FTPS is used and the PASV command-response is + sent encrtyped. + + Sponsored by CU*Answers + +Daniel (1 September 2005) +- John Kelly added TFTP support to libcurl. A bunch of new error codes was + added. TODO: add them to docs. add TFTP server to test suite. add TFTP to + list of protocols whereever those are mentioned. + +Version 7.14.1 (1 September 2005) + +Daniel (29 August 2005) +- Kevin Lussier pointed out a problem with curllib.dsp and how to fix it. + +- Igor Polyakov fixed a rather nasty problem with the threaded name resolver + for Windows, that could lead to an Access Violation when the multi interface + was used due to an issue with how the resolver thread was and was not + terminated. + +- Simon Josefsson brought a patch that allows curl to get built to use GNU GSS + instead of MIT/Heimdal for GSS capabilities. + +Daniel (24 August 2005) +- Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible + from the command line tool with --ignore-content-length. This will make it + easier to download files from Apache 1.x (and similar) servers that are + still having problems serving files larger than 2 or 4 GB. When this option + is enabled, curl will simply have to wait for the server to close the + connection to signal end of transfer. I wrote test case 269 that runs a + simple test to verify that this works. + +- (Trying hard to exclude emotions now.) valgrind version 3 suddenly renamed + the --logfile command line option to --log-file, and thus the test script + valgrind autodetection now has yet another version check to do and then it + alters the valgrind command line accordingly. + +- Fixed CA cert verification using GnuTLS with the default bundle, which + previously failed due to GnuTLS not allowing x509 v1 CA certs by default. + Ralph Mitchell reported. + +Daniel (19 August 2005) +- Norbert Novotny had problems with FTPS and he helped me work out a patch + that made curl run fine in his end. The key was to make sure we do the + SSL/TLS negotiation immediately after the TCP connect is done and not after + a few other commands have been sent like we did previously. I don't consider + this change necessary to obey the standards, I think this server is pickier + than what the specs allow it to be, but I can't see how this modified + libcurl code can add any problems to those who are interpreting the + standards more liberally. + +Daniel (17 August 2005) +- Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (with + CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to + write the result to a given cookie jar and then never actually call + curl_easy_perform() - the given file(s) to read was never read but the + output file was written and thus it caused a "funny" result. + +- While doing some tests for the bug above, I noticed that Firefox generates + large numbers (for the expire time) in the cookies.txt file and libcurl + didn't treat them properly. Now it does. + +Daniel (15 August 2005) +- Added more verbose "warning" messages to the curl client for cases where it + fails to open/read files etc to help users diagnose why it doesn't do what + you'd expect it to. Converted lots of old messages to use the new generic + function I wrote for this purpose. + +Daniel (13 August 2005) +- James Bursa identified a libcurl HTTP bug and a good way to repeat it. If a + site responds with bad HTTP response that doesn't contain any header at all, + only a response body, and the write callback returns 0 to abort the + transfer, it didn't have any real effect but the write callback would be + called once more anyway. + +Daniel (12 August 2005) +- Based on Richard Clayton's reports, I found out that using curl -d @filename + when 'filename' was not possible to access made curl use a GET request + instead. + +- The time condition illegal syntax warning is now inhibited if -s is used. + +Daniel (10 August 2005) +- Mario Schroeder found out that one of the debug callbacks calls that regards + SSL data with the CURLINFO_TEXT type claimed that the data was one byte + larger than it actually is, thus falsely telling the application that the + terminating zero was part of the data. + +Daniel (9 August 2005) +- Christopher R. Palmer fixed the offsets used for date parsings when the time + zone name of a daylight savings time was used. For example, PDT vs PDS. This + flaw was introduced with the new date parser (11 sep 2004 - 7.12.2). + Fortunately, no web server or cookie string etc should be using such time + zone names thus limiting the effect of this bug. + +Daniel (8 August 2005) +- Jon Grubbs filed bug report #1249962 + (http://curl.haxx.se/bug/view.cgi?id=1249962) which identified a problem + with NTLM on a HTTP proxy if an FTP URL was given. libcurl now properly + switches to pure HTTP internally when an HTTP proxy is used, even for FTP + URLs. The problem would also occur with other multi-pass auth methods. + +Daniel (7 August 2005) +- When curl is built with GnuTLS, curl-config didn't include "SSL" when + --features was used. + +Daniel (28 July 2005) +- If any of the options CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST is + set to 1, CURLOPT_NOBODY will now automatically be set to 0. + +Daniel (27 July 2005) +- Dan Fandrich changes over the last week: fixed numerous minor configure + option parsing flaws: --without-gnutls, --without-spnego --without-gssapi + and --without-krb4. Spellfixed several error messages. + +- Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is a + simple interface to extracting and setting cookies in libcurl's internal + "cookie jar". See the new cookie_interface.c example code. + +Daniel (13 July 2005) +- Diego Casorran provided patches to make curl build fine on Amiga again. + +Daniel (12 July 2005) +- Adrian Schuur added trailer support in the chunked encoding stream. The + trailer is then sent to the normal header callback/stream. I wrote up test + case 266 to verify the basic functionality. Do note that test case 34 + contains a flawed chunked encoding stream that still works the same. + +Daniel (5 July 2005) +- Gisle Vanem came up with a nice little work-around for bug #1230118 + (http://curl.haxx.se/bug/view.cgi?id=1230118). It seems the Windows (MSVC) + libc time functions may return data one hour off if TZ is not set and + automatic DST adjustment is enabled. This made curl_getdate() return wrong + value, and it also concerned internal cookie expirations etc. + +Daniel (4 July 2005) +- Andrew Bushnell provided enough info for me to tell that we badly needed to + fix the CONNECT authentication code with multi-pass auth methods (such as + NTLM) as it didn't previously properly ignore response-bodies - in fact it + stopped reading after all response headers had been received. This could + lead to libcurl sending the next request and reading the body from the first + request as response to the second request. (I also renamed the function, + which wasn't strictly necessary but...) + + The best fix would to once and for all make the CONNECT code use the + ordinary request sending/receiving code, treating it as any ordinary request + instead of the special-purpose function we have now. It should make it + better for multi-interface too. And possibly lead to less code... + + Added test case 265 for this. It doesn't work as a _really_ good test case + since the test proxy is too stupid, but the test case helps when running the + debugger to verify. + +Daniel (30 June 2005) +- Dan Fandrich improved the configure script's ability to figure out what kind + of strerror_r() API that is used when cross-compiling. If __GLIB__ is + defined, it assumes the glibc API. If not, it issues a notice as before that + the user needs to manually edit lib/config.h for this. + +Daniel (23 June 2005) +- David Shaw's fix that unifies proxy string treatment so that a proxy given + with CURLOPT_PROXY can use a http:// prefix and user + password. The user + and password fields are now also URL decoded properly. Test case 264 added + to verify. + +Daniel (22 June 2005) +- David Shaw updated libcurl.m4 + +Daniel (14 June 2005) +- Gisle Vanem fixed a potential thread handle leak. Bug report #1216500 + (http://curl.haxx.se/bug/view.cgi?id=1216500). Comment in + http://curl.haxx.se/mail/lib-2005-06/0059.html + +Daniel (13 June 2005) +- Made buildconf run libtoolize in the ares dir too (inspired by Tupone's + reverted patch). + +Daniel (9 June 2005) +- Incorporated Tupone's findtool fix in buildconf (slightly edited) + +- Incorporated Tupone's head -n fix in buildconf. + +Daniel (8 June 2005) +- Reverted Tupone's patch again, it broke numerous autobuilds. Let's apply it + in pieces, one by one and see what we need to adjust to work all over. + +Daniel (6 June 2005) +- Tupone Alfredo fixed three problems in buildconf: + + 1) findtool does look per tool in PATH and think ./perl is the perl + executable, while is just a local directory (I have . in the PATH) + + 2) I got several warning for head -1 deprecated in favour of head -n 1 + + 3) ares directory is missing some file (missing is missing :-) ) because + automake and friends is not run. + +Daniel (3 June 2005) +- Added docs/libcurl/getinfo-times, based on feedback from 'Edi': + http://curl.haxx.se/feedback/display.cgi?id=11178325798299&support=yes + +- Andres Garcia provided yet another text mode patch for several test cases so + that they do text comparisions better on Windows (newline-wise). + +Daniel (1 June 2005) +- The configure check for c-ares now adds the cares lib before the other libs, + to make it build fine with mingw. Inspired by Tupone Alfredo's bug report + and patch: http://curl.haxx.se/bug/view.cgi?id=1212940 + +Daniel (31 May 2005) +- Todd Kulesza reported a flaw in the proxy option, since a numerical IPv6 + address was not possible to use. It is now, but requires it written + RFC2732-style, within brackets - which incidently is how you enter numerical + IPv6 addresses in URLs. Test case 263 added to verify. + +Daniel (30 May 2005) +- Eric Cooper reported about a problem with HTTP servers that responds with + binary zeroes within the headers. They confused libcurl to do wrong so the + downloaded headers become incomplete. The fix is now verified with test case + 262. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310948 + +Daniel (25 May 2005) +- Fixed problems with the test suite, and in particular the FTP test cases + since it previously was failing every now and then in a nonsense manner. + +- --trace-time now outputs the full microsecond, all 6 digits. + +Daniel (24 May 2005) +- Andres Garcia provided a text mode patch for several test cases so that they + do text comparisions better on Windows (newline-wise). + +- Any 2xx response (and not just 200) is now considered a fine response to + TYPE, as some servers obviously sends a 226 there. Added test case 261 to + verify. Based on a question/report by Georg Wicherski. + +Daniel (20 May 2005) +- Improved runtests.pl to allow stdout tests to be mode=text as well, just + as file comparisons already supports. Added this info to the FILEFORMAT + docs. + +Daniel (18 May 2005) +- John McGowan identified a problem in bug report #1204435 + (http://curl.haxx.se/bug/view.cgi?id=1204435) with malformed URLs like + "http://somehost?data" as it added a slash too much in the request ("GET + /?data/"...). Added test case 260 to verify. + +- The configure check for strerror_r() failed to detect the proper API at + times, like on HP-UX 10.20. Then lib/strerror.c badly assumed the glibc + version if the posix define wasn't set (since it _had_ found a strerror_r). + +Daniel (16 May 2005) +- The gmtime_r() function in HP-UX 10.20 is broken. About 13 test cases fail + due to this. There's now a configure check that attempts to detect the bad + function and not use it on such systems. + +Version 7.14.0 (16 May 2005) + +Daniel (13 May 2005) +- Grigory Entin reported that curl's configure detects a fine poll() for Mac + OS X 10.4 (while 10.3 or later detected a "bad" one), but the executable + doesn't work as good as if built without poll(). I've adjusted the configure + to always skip the fine-poll() test on Mac OS X (darwin). + +Daniel (12 May 2005) +- When doing a second request (after a disconnect) using the same easy handle, + over a proxy that uses NTLM authentication, libcurl failed to use NTLM again + properly (the auth method was accidentally reset to the same as had been set + for host auth, which defaults to Basic). Bug report #1200661 + (http://curl.haxx.se/bug/view.cgi?id=1200661) identified the the problem and + the fix. + +- If -z/--time-cond is used with an invalid date syntax, this is no longer + silently discarded. Instead a proper warning message is diplayed that + informs about it. But it still continues without the condition. + +Version 7.14.0-pre2 (11 May 2005) + +Daniel (11 May 2005) +- Starting now, libcurl sends a little different set of headers in its default + HTTP requests: + + A) Normal non-proxy HTTP: + - no more "Pragma: no-cache" (this only makes sense to proxies) + + B) Non-CONNECT HTTP request over proxy: + - "Pragma: no-cache" is used (like before) + - "Proxy-Connection: Keep-alive" (for older style 1.0-proxies) + + C) CONNECT HTTP request over proxy: + - "Host: [name]:[port]" + - "Proxy-Connection: Keep-alive" + + The A) case is mostly to reduce the default header size and remove a + pointless header. + + The B) is to address (rare) problems with HTTP 1.0 proxies + + The C) headers are both to address (rare) problems with some proxies. The + code in libcurl that deals with CONNECT requests need a rewrite, but it + feels like a too big a job for me to do now. Details are added in the code + comments for now. + + Updated a large amount of test cases to reflect the news. + +Daniel (10 May 2005) +- Half-baked attempt to bail out if select() returns _only_ errorfds when the + transfer is in progress. An attempt to fix Allan's problem. See + http://curl.haxx.se/mail/lib-2005-05/0073.html and the rest of that thread + for details. + + I'm still not sure this is the right fix, but... + +Version 7.14.0-pre1 (9 May 2005) + +Daniel (2 May 2005) +- Sort of "fixed" KNOWN_BUGS #4: curl now builds IPv6 enabled on AIX 4.3. At + least it should no longer cause a compiler error. However, it does not have + AI_NUMERICHOST so we cannot getaddrinfo() any numerical addresses with it + (we use that for FTP PORT/EPRT)! So, I modified the configure check that + checks if the getaddrinfo() is working, to use AI_NUMERICHOST since then + it'll fail on AIX 4.3 and it will automatically build with IPv6 support + disabled. + +- Added --trace-time that when used adds a time stamp to each trace line that + --trace, --trace-ascii and --verbose output. I also made the '>' display + separate each line on the linefeed so that HTTP requests etc look nicer in + the -v output. + +- Made curl recognize the environment variables Lynx (and others?) support for + pointing out the CA cert path/file: SSL_CERT_DIR and SSL_CERT_FILE. If + CURL_CA_BUNDLE is not set, they are checked afterwards. + + Like before: on windows if none of these are set, it checks for the ca cert + file like this: + + 1. application's directory + 2. current working directory + 3. Windows System directory (e.g. C:\windows\system32) + 4. Windows Directory (e.g. C:\windows) + 5. all directories along %PATH% + +Daniel (1 May 2005) +- The runtests.pl script now starts test servers by doing fork() and exec() + instead of the previous approach. This is less complicated and should + hopefully lead to less "leaked" servers (servers that aren't stopped + properly when the tests are stopped). + +- Alexander Zhuravlev found a case when you did "curl -I [URL]" and it + complained on the chunked encoding, even though a HEAD should never return a + body and thus it cannot be a chunked-encoding problem! + +Daniel (30 April 2005) +- Alexander Zhuravlev found out that (lib)curl SIGSEGVed when using + --interface on an address that can't be bound. + +Daniel (28 April 2005) +- Working on fixing up test cases to mark sections as 'mode=text' for things + that curl writes as text files, since then they can get different line + endings depending on OS. Andrés García helps me work this out. + + Did lots of other minor tweaks on the test scripts to work better and more + reliably find test servers and also kill test servers. + +- Dan Fandrich pointed out how the runtests.pl script killed the HTTP server + instead of the HTTPS server when closing it down. + +Daniel (27 April 2005) +- Paul Moore made curl check for the .curlrc file (_curlrc on windows) on two + more places. First, CURL_HOME is a new environment variable that is used + instead of HOME if it is set, to point out where the default config file + lives. If there's no config file in the dir pointed out by one of the + environment variables, the Windows version will instead check the same + directory the executable curl is located in. + +Daniel (26 April 2005) +- Cory Nelson's work on nuking compiler warnings when building on x64 with + VS2005. + +Daniel (25 April 2005) +- Fred New reported a bug where we used Basic auth and user name and password + in .netrc, and when following a Location: the subsequent requests didn't + properly use the auth as found in the netrc file. Added test case 257 to + verify my fix. + +- Based on feedback from Cory Nelson, I added some preprocessor magic in + */setup.h and */config-win32.h to build fine with VS2005 on x64. + +Daniel (23 April 2005) +- Alex Suykov made the curl tool now assume that uploads using HTTP:// or + HTTPS:// are the only ones that show output and thus motivates a switched + off progress meter if the output is sent to the terminal. This makes FTP + uploads without '>', -o or -O show the progress meter. + +Daniel (22 April 2005) +- Dave Dribin's MSVC makefile fix: set CURL_STATICLIB when it builds static + library variants. + +- Andres Garcia fixed configure to set the proper define when building static + libcurl on windows. + +- --retry-delay didn't work. + +Daniel (18 April 2005) +- Olivier reported that even though he used CURLOPT_PORT, libcurl clearly + still used the default port. He was right. I fixed the problem and added the + test cases 521, 522 and 523 to verify the fix. + +- Toshiyuki Maezawa reported that when doing a POST with a read callback, + libcurl didn't properly send an Expect: 100-continue header. It does now. + +- I committed by mig change in the test suite's FTP server that moves out all + socket/TCP code to a separate C program named sockfilt. And added 4 new + test cases for FTP over IPv6. + +Daniel (8 April 2005) +- Cory Nelson reported a problem with a HTTP server that responded with a 304 + response containing an "illegal" Content-Length: header, which was not + properly ignored by libcurl. Now it is. Test case 249 verifies. + +Daniel (7 April 2005) +- Added ability to build and run with GnuTLS as an alternative to OpenSSL for + the secure layer. configure --with-gnutls enables with. Note that the + previous OpenSSL check still has preference and if it first detects OpenSSL, + it will not check for GnuTLS. You may need to explictly diable OpenSSL with + --without-ssl. + + This work has been sponsored by The Written Word. + +Daniel (5 April 2005) +- Christophe Legry fixed the post-upload check for FTP to not complain if the + upload was skipped due to a time-condition as set with + CURLOPT_TIMECONDITION. I added test case 247 and 248 to verify. + +Version 7.13.2 (5 April 2005) + +Daniel (4 April 2005) +- Marcelo Juchem fixed the MSVC makefile for libcurl + +- Gisle Vanem fixed a crash in libcurl, that could happen if the easy handle + was killed before the threading resolver (windows only) still hadn't + completed. + +- Hardeep Singh reported a problem doing HTTP POST with Digest. (It was + actually also affecting NTLM and Negotiate.) It turned out that if the + server responded with 100 Continue before the initial 401 response, libcurl + didn't take care of the response properly. Test case 245 and 246 added to + verify this. + +Daniel (30 March 2005) +- Andres Garcia modified the configure script to check for libgdi32 before + libcrypto, to make the SSL check work fine on msys/mingw. + +Daniel (29 March 2005) +- Tom Moers identified a flaw when you sent a POST with Digest authentication, + as in the first request when curl sends a POST with Content-Length: 0, it + still forcibly closed the connection before doing the next step in the auth + negotiation. + +- Jesper Jensen found out that FTP-SSL didn't work since my FTP + rewrite. Fixing that was easy, but it also revealed a much worse problem: + the FTP server response reader function didn't properly deal with reading + responses in multiple tiny chunks properly! I modified the FTP server to + allow it to produce such split-up responses to make sure curl deals with + them as it should. + +- Based on Augustus Saunders' comments and findings, the HTTP output auth + function was fixed to use the proper proxy authentication when multiple ones + are accepted. test 239 and test 243 were added to repeat the problems and + verify the fixes. + + --proxy-anyauth was added to the curl tool + +Daniel (16 March 2005) +- Tru64 and some IRIX boxes seem to not like test 237 as it is. Their + inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted + address which makes a different failure... Now I've modified the IPv4 + resolve code to use inet_pton() instead in an attempt to make these systems + better detect this as a bad IP address rather than creating a toally bogus + address that is then passed on and used. + +Daniel (15 March 2005) +- Dan Fandrich made the code properly use the uClibc's version of + inet_ntoa_r() when built with it. + +- Added test 237 and 238: test EPSV and PASV response handling when they get + well- formated data back but using illegal values. In 237 PASV gets an IP + address that is way bad. In 238 EPSV gets a port that is way out of range. + +Daniel (14 March 2005) +- Added a few missing features to the curl-config --features list + +- Modified testcurl.pl to now offer + 1 - command line options for all info it previously only read from + file: --name, --email, --desc and --configure + 2 - --nocvsup makes it not attempt to do cvs update + 3 - --crosscompile informs it and makes it not attempt things it can't do + +- Fixed numerous win32 compiler warnings. + +- Removed the lib/security.h file since it shadowed the mingw/win32 header + with the same name which is needed for SSPI builds. The contents of the + former security.h is now i krb4.h + +- configure --enable-sspi now enables SSPI in the build. It only works for + windows builds (including cross-compiles for windows). + +Daniel (12 March 2005) +- David Houlder added --form-string that adds that string to a multipart + formpost part, without special characters having special meanings etc like + --form features. + +Daniel (11 March 2005) +- curl_version_info() returns the feature bit CURL_VERSION_SSPI if it was + built with SSPI support. + +- Christopher R. Palmer made it possible to build libcurl with the + USE_WINDOWS_SSPI on Windows, and then libcurl will be built to use the + native way to do NTLM. SSPI also allows libcurl to pass on the current user + and its password in the request. + +Daniel (9 March 2005) +- Dan F improved the SSL lib setup in configure. + +- Nodak Sodak reported a crash when using a SOCKS4 proxy. + +- Jean-Marc Ranger pointed out an embarassing debug printf() leftover in the + multi interface code. + +- Adjusted the man page for the curl_getdate() return value for dates after + year 2038. For 32 bit time_t it returns 0x7fffffff but for 64bit time_t it + returns either the correct value or even -1 on some systems that still seem + to not deal with this properly. Tor Arntsen found a 64bit AIX system for us + that did the latter. Gwenole Beauchesne's Mandrake patch put the lights on + this problem in the first place. + +Daniel (8 March 2005) +- Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP + file got a Last-Modified: header written to the data stream, corrupting the + actual data. This was because some conditions from the previous FTP code was + not properly brought into the new FTP code. I fixed and I added test case + 520 to verify. (This bug was introduced in 7.13.1) + +- Dan Fandrich fixed the configure --with-zlib option to always consider the + given path before any standard paths. + +Daniel (6 March 2005) +- Randy McMurchy was the first to report that valgrind.pm was missing from the + release archive and thus 'make test' fails. + +Daniel (5 March 2005) +- Dan Fandrich added HAVE_FTRUNCATE to several config-*.h files. + +- Added test case 235 that makes a resumed upload of a file that isn't present + on the remote side. This then converts the operation to an ordinary STOR + upload. This was requested/pointed out by Ignacio Vazquez-Abrams. + + It also proved (and I fixed) a bug in the newly rewritten ftp code (and + present in the 7.13.1 release) when trying to resume an upload and the + servers returns an error to the SIZE command. libcurl then loops and sends + SIZE commands infinitely. + +- Dan Fandrich fixed a SSL problem introduced on February 9th that made + libcurl attempt to load the whole random file to seed the PRNG. This is + really bad since this turns out to be using /dev/urandom at times... + +Version 7.13.1 (4 March 2005) + +Daniel (4 March 2005) +- Dave Dribin made it possible to set CURLOPT_COOKIEFILE to "" to activate + the cookie "engine" without having to provide an empty or non-existing file. + +- Rene Rebe fixed a -# crash when more data than expected was retrieved. + +Daniel (22 February 2005) +- NTLM and ftp-krb4 buffer overflow fixed, as reported here: + http://www.securityfocus.com/archive/1/391042 and the CAN report here: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0490 + + If these security guys were serious, we'd been notified in advance and we + could've saved a few of you a little surprise, but now we weren't. + +Daniel (19 February 2005) +- Ralph Mitchell reported a flaw when you used a proxy with auth, and you + requested data from a host and then followed a redirect to another + host. libcurl then didn't use the proxy-auth properly in the second request, + due to the host-only check for original host name wrongly being extended to + the proxy auth as well. Added test case 233 to verify the flaw and that the + fix removed the problem. + +Daniel (18 February 2005) +- Mike Dobbs reported a mingw build failure due to the lack of + BUILDING_LIBCURL being defined when libcurl is built. Now this is defined by + configure when mingw is used. + +Daniel (17 February 2005) +- David in bug report #1124588 found and fixed a socket leak when libcurl + didn't close the socket properly when returning error due to failing + localbind + +Daniel (16 February 2005) +- Christopher R. Palmer reported a problem with HTTP-POSTing using "anyauth" + that picks NTLM. Thanks to David Byron letting me test NTLM against his + servers, I could quickly repeat and fix the problem. It turned out to be: + + When libcurl POSTs without knowing/using an authentication and it gets back + a list of types from which it picks NTLM, it needs to either continue + sending its data if it keeps the connection alive, or not send the data but + close the connection. Then do the first step in the NTLM auth. libcurl + didn't send the data nor close the connection but simply read the + response-body and then sent the first negotiation step. Which then failed + miserably of course. The fixed version forces a connection if there is more + than 2000 bytes left to send. + +Daniel (14 February 2005) +- The configure script didn't check for ENGINE_load_builtin_engines() so it + was never used. + +Daniel (11 February 2005) +- Removed all uses of strftime() since it uses the localised version of the + week day names and month names and servers don't like that. + +Daniel (10 February 2005) +- Now the test script disables valgrind-testing when the test suite runs if + libcurl is built shared. Otherwise valgrind only tests the shell that runs + the wrapper-script named 'curl' that is a front-end to curl in this case. + This should also fix the huge amount of reports of false positives when + valgrind has identified leaks in (ba)sh and not in curl and people report + that as curl bugs. Bug report #1116672 is one example. + + Also, the valgrind report parser has been adapted to check that at least one + of the sources in a stack strace is one of (lib)curl's source files or + otherwise it will not consider the problem to concern (lib)curl. + +- Marty Kuhrt streamlined the VMS build. + +Daniel (9 February 2005) +- David Byron fixed his SSL problems, initially mentioned here: + http://curl.haxx.se/mail/lib-2005-01/0240.html. It turned out we didn't use + SSL_pending() as we should. + +- Converted lots of FTP code to a statemachine, so that the multi interface + doesn't block while communicating commands-responses with an FTP server. + + I've added a comment like BLOCKING in the code on all spots I could find + where we still have blocking operations. When we change curl_easy_perform() + to use the multi interface, we'll also be able to simplify the code since + there will only be one "internal interface". + + While doing this, I've now made CURLE_FTP_ACCESS_DENIED separate from the + new CURLE_LOGIN_DENIED. The first one is now access denied to a function, + like changing directory or retrieving a file, while the second means that we + were denied login. + + The CVS tag 'before_ftp_statemachine' was set just before this went in, in + case of future need. + +- Gisle made the DICT code send CRLF and not just LF as the spec says so. + +Daniel (8 February 2005) +- Gisle fixed problems when libcurl runs out of memory, and worked on making + sure the proper error code is returned for those occations. + +Daniel (7 February 2005) +- Maruko pointed out a problem with inflate decompressing exactly 64K + contents. + +Daniel (5 February 2005) +- Eric Vergnaud found a use of an uninitialised variable in the ftp when doing + PORT on IPv6-enabled hosts. + +- David Byron pointed out we could use BUFSIZE to read data (in + lib/transfer.c) instead of using BUFSIZE -1. + +Version 7.13.0 (1 February 2005) + +Daniel (31 January 2005) +- Added Lars Nilsson's htmltitle.cc example + +Daniel (30 January 2005) +- Fixed a memory leak when using the multi interface and the DO operation + failed (as in test case 205). + +- Fixed a valgrind warning for file:// operations. + +- Fixed a valgrind report in the url globbing code for the curl command line + tool. + +- Bugfixed the parser that scans the valgrind report outputs (in runtests.pl). + I noticed that it previously didn't detect and report the "Conditional jump + or move depends on uninitialised value(s)" error. When I fixed this, I + caught a few curl bugs with it. And then I had to spend time to make the + test suite IGNORE these errors when OpenSSL is used since it produce massive + amounts of valgrind warnings (but only of the "Conditional..." kind it + seems). So, if a test that requires SSL is run, it ignores the + "Conditional..." errors, and you'll get a "valgrind PARTIAL" output instead + of "valgrind OK". + +Daniel (29 January 2005) +- Using the multi interface, and doing a requsted a re-used connection that + gets closed just after the request has been sent failed and did not re-issue + a request on a fresh reconnect like the easy interface did. Now it does! + +- Define CURL_MULTIEASY when building libcurl (lib/easy.c to be exact), to use + my new curl_easy_perform() that uses the multi interface to run the + request. It is a great testbed for the multi interface and I believe we + shall do it this way for real in the future when we have a successor to + curl_multi_fdset(). I've used this approach to detect and fix several of the + recent multi-interfaces issues. + +- Adjusted the KNOWN_BUGS #17 fix a bit more since the FTP code also did some + bad assumptions. + +- multi interface: when a request is denied due to "Maximum redirects + followed" libcurl leaked the last Location: URL. + +- Connect failures with the multi interface was often returned as "connect() + timed out" even though the reason was different. + +Daniel (28 January 2005) +- KNOWN_BUGS #17 fixed. A DNS cache entry may not remain locked between two + curl_easy_perform() invokes. It was previously unlocked at disconnect, which + could mean that it remained locked between multiple transfers. The DNS cache + may not live as long as the connection cache does, as they are separate. + + To deal with the lack of DNS (host address) data availability in re-used + connections, libcurl now keeps a copy of the IP adress as a string, to be + able to show it even on subsequent requests on the same connection. + + The problem could be made to appear with this stunt: + + 1. create a multi handle + 2. add an easy handle + 3. fetch a URL that is persistent (leaves the connection alive) + 4. remove the easy handle from the multi + 5. kill the multi handle + 6. create a multi handle + 7. add the same easy handle to the new multi handle + 8. fetch a URL from the same server as before (re-using the connection) + +- Stephen More pointed out that CURLOPT_FTPPORT and the -P option didn't work + when built IPv6-enabled. I've now made a fix for it. Writing test cases for + custom port hosts turned too tricky so unfortunately there's none. + +Daniel (25 January 2005) +- Ian Ford asked about support for the FTP command ACCT, and I discovered it + is present in RFC959... so now (lib)curl supports it as well. --ftp-account + and CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an + account string after PASS have been sent away. The client responds + with "ACCT [account string]".) Added test case 228 and 229 to verify the + functionality. Updated the test FTP server to support ACCT somewhat. + +- David Shaw contributed a fairly complete and detailed autoconf test you can + use to detect libcurl and setup variables for the protocols the installed + libcurl supports: docs/libcurl/libcurl.m4 + +Daniel (21 January 2005) +- Major FTP third party transfer overhaul. + + These four options are now obsolete: CURLOPT_SOURCE_HOST, + CURLOPT_SOURCE_PATH, CURLOPT_SOURCE_PORT (this option didn't work before) + and CURLOPT_PASV_HOST. + + These two options are added: CURLOPT_SOURCE_URL and CURLOPT_SOURCE_QUOTE. + + The target-side didn't use the proper path with RETR, and thus this only + worked correctly in the login path (i.e without doing any CWD). The source- + side still uses a wrong path, but the fix for this will need to wait. Verify + the flaw by using a source URL with included %XX-codes. + + Made CURLOPT_FTPPORT control weather the target operation should use PORT + (or not). The other side thus uses passive (PASV) mode. + + Updated the ftp3rdparty.c example source to use the updated options. + + Added support for a second FTP server in the test suite. Named... ftp2. + Added test cases 230, 231 and 232 as a few first basic tests of very simple + 3rd party transfers. + + Changed the debug output to include 'target' and 'source' when a 3rd party + is being made, to make it clearer what commands/responses came on what + connection. + + Added three new command line options: --3p-url, --3p-user and --3p-quote. + + Documented the command line options and the curl_easy_setopt options related + to third party transfers. + + (Temporarily) disabled the ability to re-use an existing connection for the + source connection. This is because it needs to force a new in case the + source and target is the same host, and the host name check is trickier now + when the source is identified with a full URL instead of a plain host name + like before. + + TODO (short-term) for 3rd party transfers: quote support. The options are + there, we need to add test cases to verify their functionality. + + TODO (long-term) for 3rd party transfers: IPv6 support (EPRT and EPSV etc) + and SSL/TSL support. + +Daniel (20 January 2005) +- Philippe Hameau found out that -Q "+[command]" didn't work, although some + code was written for it. I fixed and added test case 227 to verify it. + The curl.1 man page didn't mention the '+' so I added it. + +Daniel (19 January 2005) +- Stephan Bergmann made libcurl return CURLE_URL_MALFORMAT if an FTP URL + contains %0a or %0d in the user, password or CWD parts. (A future fix would + include doing it for %00 as well - see KNOWN_BUGS for details.) Test case + 225 and 226 were added to verify this + +- Stephan Bergmann pointed out two flaws in libcurl built with HTTP disabled: + + 1) the proxy environment variables are still read and used to set HTTP proxy + + 2) you couldn't disable http proxy with CURLOPT_PROXY (since the option was + disabled). This is important since apps may want to disable HTTP proxy + without actually knowing if libcurl was built to disable HTTP or not. + + Based on Stephan's patch, both these issues should now be fixed. + +Daniel (18 January 2005) +- Cody Jones' enhanced version of Samuel Díaz García's MSVC makefile patch was + applied. + +Daniel (16 January 2005) +- Alex aka WindEagle pointed out that when doing "curl -v dictionary.com", curl + assumed this used the DICT protocol. While guessing protocols will remain + fuzzy, I've now made sure that the host names must start with "[protocol]." + for them to be a valid guessable name. I also removed "https" as a prefix + that indicates HTTPS, since we hardly ever see any host names using that. + +Daniel (13 January 2005) +- Inspired by Martijn Koster's patch and example source at + http://www.greenhills.co.uk/mak/gentoo/curl-eintr-bug.c, I now made the + select() and poll() calls properly loop if they return -1 and errno is + EINTR. glibc docs for this is found here: + http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html + + This last link says BSD doesn't have this "effect". Will there be a problem + if we do this unconditionally? + +Daniel (11 January 2005) +- Dan Torop cleaned up a few no longer used variables from David Phillips' + select() overhaul fix. + +- Cyrill Osterwalder posted a detailed analysis about a bug that occurs when + using a custom Host: header and curl fails to send a request on a re-used + persistent connection and thus creates a new connection and resends it. It + then sent two Host: headers. Cyrill's analysis was posted here: + http://curl.haxx.se/mail/archive-2005-01/0022.html + +- Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5 + problem with the version byte and the check for bad versions. Bruce has lots + of clues on this, and based on his suggestion I've now removed the check of + that byte since it seems to be able to contain 1 or 5. + +Daniel (10 January 2005) +- Pavel Orehov reported memory problems with the multi interface in bug report + #1098843. In short, a shared DNS cache was setup for a multi handle and when + the shared cache was deleted before the individual easy handles, the latter + cleanups caused read/writes to already freed memory. + +- Hzhijun reported a memory leak in the SSL certificate code, that leaked the + remote certificate name when it didn't match the used host name. + +Gisle (8 January 2005) +- Added Makefile.Watcom files (src/lib). Updated Makefile.dist. + +Daniel (7 January 2005) +- Improved the test script's valgrind log parser to actually work! Also added + the ability to disable the log scanner for specific test cases. Test case + 509 results in numerous problems and leaks in OpenSSL and has to get it + disabled. + +Daniel (6 January 2005) +- Fixed a single-byte read out of bounds in test case 39 in the curl tool code + (i.e not in the library). + +- Bug report #1097019 identified a problem when doing -d "data" with -G and + sending it to two URLs with {}. Added test 199 to verify the fix. + +Daniel (4 January 2005) +- Marty Kuhrt adjusted a VMS build script slightly + +- Kai Sommerfeld and Gisle Vanem fixed libcurl to build with IPv6 support on + Win2000. + +Daniel (2 January 2005) +- Alex Neblett updated the MSVC makefiles slightly. +Daniel (25 December 2004) +- Removed src/config.h.in from CVS, it is now copied from the (generated) + lib/config.h.in instead, as they can very well be the same. This removes a + "manual hassle". You may want to re-run buildconf now. + +- Werner Koch filed Debian bug report #286794, mentioning that curl contained + non-free (by Debian's view) source code. This was Angus Mackay's + src/getpass.c source code. I tried to contact him about it to quickly solve + this issue, but his email addresses bounce and I got some time "over" and + reimplemented the functionality once brought by Angus. We no longer use any + of Angus' original code and the new function is much simpler (IMO). Issue + solved. + +Daniel (24 December 2004) +- David Shaw added --protocols to curl-config, so that it now lists all + protocols libcurl was built to support. --feature no longer lists disabled + protocols. + +Daniel (23 December 2004) +- David Shaw fixed the configure --disable-[protocol] variables so that + curl-config --feature now works correctly! + +Daniel (22 December 2004) +- Rune Kleveland fixed a minor memory leak for received cookies with the + (rare) version attribute set. + +- Marcin Konicki provided two configure fixes and a source fix to make curl + build out-of-the-box on BeOS. + +Daniel (21 December 2004) +- Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the + -w option support 'http_connect' to make it easier to verify! + +- Fixed lib/select.c include order to build fine on FreeBSD + +- Fixed failf()'s reuse of the va_list variable that crashed on FreeBSD. + Pointed out by Peter Pentchev. + +Version 7.12.3 (20 December 2004) + +Daniel (19 December 2004) +- I investigated our PKCS12 build problem on Solaris 2.7 with OpenSSL 0.9.7e, + and it turned out to be the fault of the zlib 1.1.4 headers doing a typedef + named 'free_func' and the OpenSSL headers have a prototype that uses + 'free_func' in one of its arguments. This is why the compile errors out. + + In other words, we need to include the openssl/pkcs12.h header before the + zlib.h header and it builds fine. The configure script now checks for this + file and it then gets included early in lib/urldata.h. + +Daniel (18 December 2004) +- Samuel Listopad added support for PKCS12 formatted certificates. + +- Samuel Listopad fixed -E to support "C:/path" (with forward slash) as well. + +Daniel (16 December 2004) +- Gisle found and fixed a problem in the directory re-use for FTP. + + I added test case 215 and 216 to better verify the functionality. + +- Dinar in bug report #1086121, found a file handle leak when a multipart + formpost (including a file upload part) was aborted before the whole file + was sent. + +Daniel (15 December 2004) +- Tom Lee found out that globbing of strings with backslashes didn't work as + you'd expect. Backslashes are such a central part of windows file names that + forcing backslashes to have to be escaped with backslashes is a bit too + awkward to users. Starting now, you only need to escape globbing characters + such as the five letters: "[]{},". Added test case 214 to verify this. + +Daniel (14 December 2004) +- Harshal Pradhan patched a HTTP persistent connection flaw: if the user name + and/or password were modified between two requests on a persistent + connection, the second request were still made with the first setup! + + I added test case 519 to verify the fix. + +Daniel (13 December 2004) +- Gisle added CURLINFO_SSL_ENGINES to curl_easy_getinfo() to allow an app + to list all available crypto ENGINES. + +- Gisle fixed bug report #1083542, which pointed out a problem with resuming + large file (>4GB) file:// transfers on windows. + +Daniel (11 December 2004) +- Made the test suite HTTP server (sws) capable of using IPv6, and then + extended the test environment to support that and also added three test + cases (240, 241, 242) that run tests using IPv6. Test 242 uses a URL that + didn't work before the 10 dec fix by Kai Sommerfeld. + +- Made a failed file:// resume output an error message + +- Corrected the CURLE_BAD_DOWNLOAD_RESUME error message in lib/strerror.c + +- Dan Fandrich: + + simplified and consolidated the SSL checks in configure and the usage of the + defines in lib/setup.h + + provided a first libcurl.pc.in file for pkg-config (but the result is not + installed anywhere at this point) + + extended the cross compile section in the docs/INSTALL file + +Daniel (10 December 2004) +- When providing user name in the URL and a IPv6-style IP-address (like in + "ftp://user@[::1]/tmp"), the URL parser didn't get the host extracted + properly. Reported and fixed by Kai Sommerfeld. + +Daniel (9 December 2004) +- Ton Voon provided a configure fix that should fix the notorious (mostly + reported on Solaris) problem where the size_t check fails due to the SSL + libs being found in a dir not searched through by the run-time linker. + patch-tracker entry #1081707. + +- Bryan Henderson pointed out in bug report #1081788 that the curl-config + --vernum output wasn't zero prefixed properly (as claimed in documentation). + This is fixed in maketgz now. + +Daniel (8 December 2004) +- Matt Veenstra updated the mach-O framework files for Mac OS X. + +- Rene Bernhardt found and fixed a buffer overrun in the NTLM code, where + libcurl always and unconditionally overwrote a stack-based array with 3 zero + bytes. This is not an exploitable buffer overflow. No need to get alarmed. + +Daniel (7 December 2004) +- Fixed so that the final error message is sent to the verbose info "stream" + even if no errorbuffer is set. + +Daniel (6 December 2004) +- Dan Fandrich added the --disable-cookies option to configure to build + libcurl without cookie support. This is mainly useful if you want to build a + minimalistic libcurl with no cookies support at all. Like for embedded + systems or similar. + +- Richard Atterer fixed libcurl's way of dealing with the EPSV + response. Previously, libcurl would re-resolve the host name with the new + port number and attempt to connect to that, while it should use the IP from + the control channel. This bug made it hard to EPSV from an FTP server with + multiple IP addresses! + +Daniel (3 December 2004) +- Bug report #1078066: when a chunked transfer was pre-maturely closed exactly + at a chunk boundary it was not considered an error and thus went unnoticed. + Fixed by Maurice Barnum. + + Added test case 207 to verify. + +Daniel (2 December 2004) +- Fixed the CONNECT loop to default timeout to 3600 seconds. + + Added test case 206 that makes CONNECT with Digest. + + Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user- + agent field. + +Daniel (30 November 2004) +- Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream + +- Dan also helped me with input data to create three more test cases for the + --compressed option. + +Daniel (29 November 2004) +- I improved the test suite to enable binary contents in the tests (by proving + it base64 encoded), like for testing decompress etc. Added test 220 and 221 + for this purpose. Tests can now also depend on libz to run. + +- As reported by Reinout van Schouwen in Mandrake's bug tracker bug 12285 + (http://qa.mandrakesoft.com/show_bug.cgi?id=12285), when connecting to an + IPv6 host with FTP, --disable-epsv (or --disable-eprt) effectively disables + the ability to transfer a file. Now, when connected to an FTP server with + IPv6, these FTP commands can't be disabled even if asked to with the + available libcurl options. + +Daniel (26 November 2004) +- As reported in Mandrake's bug tracker bug 12289 + (http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a + newline to "finish" the progress meter after each redirect and not only + after a completed transfer. + +Daniel (25 November 2004) +- FTP improvements: + + If EPSV, EPRT or LPRT is tried and doesn't work, it will not be retried on + the same server again even if a following request is made using a persistent + connection. + + If a second request is made to a server, requesting a file from the same + directory as the previous request operated on, libcurl will no longer make + that long series of CWD commands just to end up on the same spot. Note that + this is only for *exactly* the same dir. There is still room for improvements + to optimize the CWD-sending when the dirs are only slightly different. + + Added test 210, 211 and 212 to verify these changes. Had to improve the + test script too and added a new primitive to the test file format. + +Daniel (24 November 2004) +- Andrés García fixed the configure script to detect select properly when run + with Msys/Mingw on Windows. + +Daniel (22 November 2004) +- Made HTTP PUT and POST requests no longer use HEAD when doing multi-pass + auth negotiation (NTLM, Digest and Negotiate), but instead use the request + keyword "properly". Details in lib/README.httpauth. This also introduces + CURLOPT_IOCTLFUNCTION and CURLOPT_IOCTLDATA, to be used by apps that use the + "any" auth alternative as then libcurl may need to send the PUT/POST data + more than once and thus may need to ask the app to "rewind" the read data + stream to start. + + See also the new example using this: docs/examples/anyauthput.c + +- David Phillips enhanced test 518. I made it depend on a "feature" so that + systems without getrlimit() won't attempt to test 518. configure now checks + for getrlimit() and setrlimit() for this test case. + +Daniel (18 November 2004) +- David Phillips fixed libcurl to not crash anymore when more than FD_SETSIZE + file descriptors are in use. Test case 518 added to verify. + +Daniel (15 November 2004) +- To test my fix for the CURLINFO_REDIRECT_TIME bug, I added time_redirect and + num_redirects support to the -w writeout option for the command line tool. + +- Wojciech Zwiefka found out that CURLINFO_REDIRECT_TIME didn't work as + documented. + +Daniel (12 November 2004) +- Gisle Vanem modigied the MSVC and Netware makefiles to build without + libcurl.def + +- Dan Fandrich added the --disable-crypto-auth option to configure to allow + libcurl to build without Digest support. (I figure it should also explicitly + disable Negotiate and NTLM.) + +- *** Modified Behaviour Alert *** + + Setting CURLOPT_POSTFIELDS to NULL will no longer do a GET. + + Setting CURLOPT_POSTFIELDS to "" will send a zero byte POST and setting + CURLOPT_POSTFIELDS to NULL and CURLOPT_POSTFIELDSIZE to zero will also make + a zero byte POST. Added test case 515 to verify this. + + Setting CURLOPT_HTTPPOST to NULL makes a zero byte post. Added test case 516 + to verify this. + + CURLOPT_POSTFIELDSIZE must now be set to -1 to signal "we don't know". + Setting it to zero simply says this is a zero byte POST. + + When providing POST data with a read callback, setting the size up front + is now made with CURLOPT_POSTFIELDSIZE and not with CURLOPT_INFILESIZE. + +Daniel (11 November 2004) +- Dan Fandrich added --disable-verbose to the configure script to allow builds + without verbose strings in the code, to save some 12KB space. Makes sense + only for systems with very little memory resources. + +- Jeff Phillips found out that a date string with a year beyond 2038 could + crash the new date parser on systems with 32bit time_t. We now check for + this case and deal with it. + +Daniel (10 November 2004) +- I installed Heimdal on my Debian box (using the debian package) and noticed + that configure --with-gssapi failed to create a nice build. Fixed now. + +Daniel (9 November 2004) +- Gisle Vanem marked all external function calls with CURL_EXTERN so that now + the Windows, Netware and other builds no longer need libcurl.def or similar + files. + +Daniel (8 November 2004) +- Made the configure script check for tld.h if libidn was detected, since + libidn 0.3.X didn't have such a header and we don't work with anything + before libidn 0.4.1 anyway! Suse 9.1 apparently ships with a 0.3.X version + of libidn which makes the curl 7.12.2 build fail. Jean-Philippe + Barrette-LaPierre helped pointing this out. + +- Ian Gulliver reported in debian bug report #278691: if curl is invoked in an + environment where stderr is closed the -v output will still be sent to file + descriptor 2 which then might be the network socket handle! Now we have a + weird hack instead that attempts to make sure that file descriptor 2 is + opened (with a call to pipe()) before libcurl is called to do the transfer. + configure now checks for pipe() and systems without pipe don't get the weird + hack done. + +Daniel (5 November 2004) +- Tim Sneddon made libcurl send no more than 64K in a single first chunk when + doing a huge POST on VMS, as this is a system limitation. Default on general + systems is 100K. + +Daniel (4 November 2004) +- Andres Garcia made it build on mingw againa, my --retry code broke the build. + +Daniel (2 November 2004) +- Added --retry-max-time that allows a maximum time that may not have been + reached for a retry to be made. If not set there is no maximum time, only + the amount of retries set with --retry. + +- Paul Nolan provided a patch to make libcurl build nicely on Windows CE. + +Daniel (1 November 2004) +- When cross-compiling, the configure script no longer attempts to use + pkg-config on the build host in order to detect OpenSSL compiler options. + +Daniel (27 October 2004) +- Dan Fandrich: + + An improvement to the gzip handling of libcurl. There were two problems with + the old version: it was possible for a malicious gzip file to cause libcurl + to leak memory, as a buffer was malloced to hold the header and never freed + if the header ended with no file contents. The second problem is that the + 64 KiB decompression buffer was allocated on the stack, which caused + unexpectedly high stack usage and overflowed the stack on some systems + (someone complained about that in the mailing list about a year ago). + + Both problems are fixed by this patch. The first one is fixed when a recent + (1.2) version of zlib is used, as it takes care of gzip header parsing + itself. A check for the version number is done at run-time and libcurl uses + that feature if it's present. I've created a define OLD_ZLIB_SUPPORT that + can be commented out to save some code space if libcurl is guaranteed to be + using a 1.2 version of zlib. + + The second problem is solved by dynamically allocating the memory buffer + instead of storing it on the stack. The allocation/free is done for every + incoming packet, which is suboptimal, but should be dwarfed by the actual + decompression computation. + + I've also factored out some common code between deflate and gzip to reduce + the code footprint somewhat. I've tested the gzip code on a few test files + and I tried deflate using the freshmeat.net server, and it all looks OK. I + didn't try running it with valgrind, however. + +- Added a --retry option to curl that takes a numerical option for the number + of times the operation should be retried. It is retried if a transient error + is detected or if a timeout occurred. By default, it will first wait one + second between the retries and then double the delay time between each retry + until the delay time is ten minutes which then will be the delay time + between all forthcoming retries. You can set a static delay time with + "--retry-delay [num]" where [num] is the number of seconds to wait between + each retry. + +Daniel (25 October 2004) +- Tomas Pospisek filed bug report #1053287 that proved -C - and --fail on a + file that was already completely downloaded caused an error, while it + doesn't if you don't use --fail! I added test case 194 to verify the fix. + Grrr. CURLOPT_FAILONERROR is now added to the list stuff to remove in + libcurl v8 due to all the kludges needed to support it. + +- Mohun Biswas found out that formposting a zero-byte file didn't work very + good. I fixed. + +Daniel (19 October 2004) +- Alexander Krasnostavsky made it possible to make FTP 3rd party transfers + with both source and destination being the same host. It can be useful if + you want to move a file on a server or similar. + +- Guillaume Arluison added CURLINFO_NUM_CONNECTS to allow an app to figure + out how many new connects a previous transfer required. + + I added %{num_connects} to the curl tool and added test case 192 and 193 + to verify the new code. + +Daniel (18 October 2004) +- Peter Wullinger pointed out that curl should call setlocale() properly to + initiate the specific language operations, to make the IDN stuff work + better. + +Version 7.12.2 (18 October 2004) + +Daniel (16 October 2004) +- Alexander Krasnostavsky made the CURLOPT_FTP_CREATE_MISSING_DIRS option work + fine even for third party transfers. + +- runekl at opoint.com found out (and provided a fix) that libcurl leaked + memory for cookies with the "max-age" field set. + +Gisle (16 October 2004) +- Issue 50 in TODO-RELEASE; Added Traian Nicolescu's patches for threaded + resolver on Windows. Plugged some potential handle and memory leaks. + +Daniel (14 October 2004) +- Eric Vergnaud pointed out that libcurl didn't treat ?-letters in the user + name and password fields properly in URLs, like + ftp://us?er:pass?word@site.com/. Added test 191 to verify the fix. + +Daniel (11 October 2004) +- libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or + later is one) to inhibit the SIGPIPE signal when writing to a socket while + the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to + send() on other systems. Alan Pinstein verified the fix. + +Daniel (10 October 2004) +- Systems with 64bit longs no longer use strtoll() or our strtoll- replacement + to parse 64 bit numbers. strtol() works fine. Added a configure check to + detect if [constant]LL works and if so, use that in the strtoll replacement + code to work around compiler warnings reported by Andy Cedilnik. + +Gisle (6 October 2004) +- For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name + used in fix_hostname(). Checks if characters in 'host->name' (indirectly + via 'ace_hostname') are legal according to the TLD tables in libidn. + +Daniel (6 October 2004) +- Chih-Chung Chang reported that if you use CURLOPT_RESUME_FROM and enabled + CURLOPT_FOLLOWLOCATION, libcurl reported error if a redirect happened even + if the new URL would provide the resumed file. Test case 188 added to verify + the fix (together with existing test 99). + +- Dan Fandrich fixed a configure flaw for systems that need both nsl and socket + libs to use gethostbyname(). + +- Removed tabs and trailing whitespace from lots of source files. + +Daniel (5 October 2004) +- Made configure --with-libidn=PATH try the given PATH before the default + paths to make it possible to override. + +- If idna_strerror() is present in libidn, we can use that instead of our + internal replacement. This function was added by Simon in libidn 0.5.6 and + is detected by configure. + +- It seems basename() on IRIX is in the libgen library and since we don't use + that, configure finds libgen.h but not basename and then we get a compiler + error because our basename() replacement doesn't match the proto in + libgen.h. Starting now, we don't include the file if basename wasn't found + as well. + +Daniel (4 October 2004) +- Chris found a race condition resulting in CURLE_COULDNT_RESOLVE_HOST and + potential crash, in the windows threaded name resolver code. + +Daniel (3 October 2004) +- Replaced the use of isspace() in cookie.c with our own version instead since + we have most data as 'char *' and that makes us pass in negative values if + there is 8bit data in the string. Changing to unsigned causes too much + warnings or too many required typecasts to the normal string functions. + Harshal Pradhan identified this problem. + +Daniel (2 October 2004) +- Bertrand Demiddelaer found a case where libcurl could read already freed + data when CURLOPT_VERBOSE is used and a (very) persistent connection. It + happened when the dns cache entry for the connection was pruned while the + connection was still alive and then again re-used. We worked together on + this fix. + +- Gisle Vanem provided code that displays an error message when the (libidn + based) IDN conversion fails. This is really due to a missing suitable + function in the libidn API that I hope we can remove once libidn gets a + function like this. + +Daniel (1 October 2004) +- Aleksandar Milivojevic reported a problem in the Redhat bugzilla (see + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134133) and not to + anyone involved in the curl project! This happens when you try to curl a + file from a proftpd site using SSL. It seems proftpd sends a somewhat + unorthodox response code (232 instead of 230). I relaxed the response code + check to deal with this and similar cases. + +- Based on Fedor Karpelevitch's formpost path basename patch, file parts in + formposts no longer include the path part. If you _really_ want them, you + must provide your preferred full file name with CURLFORM_FILENAME. + + Added detection for libgen.h and basename() to configure. My custom + basename() replacement function for systems without it, might be a bit too + naive... + + Updated 6 test cases to make them work with the stripped paths. + +Daniel (30 September 2004) +- Larry Campbell added CURLINFO_OS_ERRNO to curl_easy_getinfo() that allows an + app to retrieve the errno variable after a (connect) failure. It will make + sense to provide this for more failures in a more generic way, but let's + start like this. + +- Günter Knauf and Casey O'Donnell worked out an extra #if condition for the + curl/multi.h header to work better in winsock-using apps. + +- Jean-Philippe Barrette-LaPierre made buildconf run better on Mac OS X by + properly using glibtoolize instead of plain libtoolize. (This is made if + glibtool was found and used instead of plain libtool.) + +Daniel (29 September 2004) +- Bertrand Demiddelaer fixed curl_easy_reset() so that it doesn't mistakingly + enable the progress meter. + +Daniel (28 September 2004) +- "Mekonikum" found out that if you built curl without SSL support, although + your current SSL installation supports Engine, the compile fails. + +Daniel (27 September 2004) +- When --with-ssl=PATH is used to the configure script, it no longer uses + pkg-config to figure out extra details. That is now only done if no PATH is + included or if SSL is checked for by default without the --with-ssl option. + +Daniel (25 September 2004) +- Peter Sylvester pointed out that CURLOPT_SSLENGINE couldn't even be set to + NULL when no engine was supported. It can now. + +Daniel (22 September 2004) +- Dan Fandrich fixed three test cases to no longer use "localhost" but instead + use "127.0.0.1" to avoid requiring that localhost resolves nicely. + +- Jean-Claude Chauve fixed an LDAP crash when more than one record was + retrieved. + +Daniel (19 September 2004) +- Andreas Rieke pointed out that when attempting to connect to a host without + a service on the specified port, curl_easy_perform() didn't properly provide + an error message in the CURLOPT_ERRORBUFFER buffer. + +Daniel (16 September 2004) +- Daniel at touchtunes uses the FTP+SSL server "BSDFTPD-SSL from + http://bsdftpd-ssl.sc.ru/" which accordingly doesn't properly work with curl + when "AUTH SSL" is issued (although the server responds fine and everything) + but requires that curl issues "AUTH TLS" instead. See + http://curl.haxx.se/feedback/display.cgi?id=10951944937603&support=yes + + Introducing CURLOPT_FTPSSLAUTH that allows the application to select which + of the AUTH strings to attempt first. + +- Anonymous filed bug report #1029478 which identified a bug when you 1) used + a URL without properly seperating the host name and the parameters with a + slash. 2) the URL had parameters to the right of a ? that contains a slash + 3) curl was told to follow Location:s 4) the request got a response that + contained a Location: to redirect to "/dir". curl then appended the new path + on the wrong position of the original URL. + + Test case 187 was added to verify that this was fixed properly. + +Daniel (11 September 2004) +- Added parsedate.c that contains a rewrite of the date parser currently + provided by getdate.y. The new one is MUCH smaller and will allow us to run + away from the yacc/bison jungle. It is also slightly lacking in features + compared to the old one, but it supports parsing of all date formats HTTP + involves (and a fair bunch of others). + +Daniel (10 September 2004) +- As found out by Jonas Forsman, curl didn't allow -F to set Content-Type on + text-parts. Starting now, we can do -F "name=daniel;type=text/extra". Added + test case 186 to verify. + +- Bug report #1025986. When following a Location: with a custom Host: header + replacement, curl only replaced the Host: header on the initial request + and didn't replace it on the following ones. This resulted in requests with + two Host: headers. + + Now, curl checks if the location is on the same host as the initial request + and then continues to replace the Host: header. And when it moves to another + host, it doesn't replace the Host: header but it also doesn't make the + second Host: header get used in the request. + + This change is verified by the two new test cases 184 and 185. + +Daniel (8 September 2004) +- Modified the test suite to be able to use and run with customized port + numbers. This was always intended but never before possible. Now a simple + change in the runtests.pl script can make all tests use different ports. + The default ports in use from now on are 8990 to 8993. + +Daniel (2 September 2004) +- Minor modification of an SSL-related error message. + +Daniel (31 August 2004) +- David Tarendash found out that curl_multi_add_handle() returned + CURLM_CALL_MULTI_PERFORM instead of CURLM_OK. + +Daniel (30 August 2004) +- Make "Proxy-Connection: close" close the current proxy connection, as Roman + Koifman found out. + +Daniel (24 August 2004) +- Fixed a getdate problem by post-replacing the getdate.c file after the + bison/yacc process to add the fix Harshal Pradhan suggested. The problem + caused a crash on Windows when parsing some dates. + +Daniel (23 August 2004) +- Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs + even when told to use HTTP 1.0, which is not correct. Test case 180 and + 181 verify this. + +- Added test case 182 to verify that zero byte transfers call the callback + properly. + +Daniel (20 August 2004) +- Alexander Krasnostavsky made the write callback get called even when a zero + byte file is downloaded. + +Daniel (18 August 2004) +- Ling Thio pointed out that when libcurl is built IPv6-enabled, it still did + reverse DNS lookups when fed with a numerical IP-address (like + http://127.0.0.1/), although it doesn't when built IPv6-disabled. libcurl + should never do reverse lookups. + +Daniel (17 August 2004) +- Kjetil Jacobsen noticed that when transferring a file:// URL pointing to an + empty file, libcurl would return with the file still open. + +- Alexander Krasnostavsky pointed out that the configure script needs to define + _THREAD_SAFE for AIX systems to make libcurl built really thread-safe. + + Also added a check for the xlc compiler on AIX, and if that is detect we use + the -qthreaded compiler option + +Daniel (16 August 2004) +- libcurl now allows a custom "Accept-Encoding:" header override the + internally set one that gets set with CURLOPT_ENCODING. Pointed out by Alex. + +- Roland Krikava found and fixed a cookie problem when using a proxy (the + path matching was wrong). I added test case 179 to verify that we now do + right. + +Daniel (15 August 2004) +- Casey O'Donnell fixed some MSVC makefile targets to link properly. + +Daniel (11 August 2004) +- configure now defines _XOPEN_SOURCE to 500 on systems that need it to build + warning-free (the only known one so far is non-gcc builds on 64bit SGI + IRIX). (Reverted this change later as it caused compiler errors.) + +- the FTP code now includes the server response in the error message when the + server gives back a 530 after the password is provided, as it isn't + necessary because of a bad user name or password. + +Version 7.12.1 (10 August 2004) + +Daniel (10 August 2004) +- In OpenSSL 0.9.7d and earlier, ASN1_STRING_to_UTF8 fails if the input is + already UTF-8 encoded. This made the certificate verification fail if the + remote server used a certificate with the name UTF-8 encoded. + + Work-around brought by Alexis S. L. Carvalho. + +Daniel (9 August 2004) +- I fixed the configure script for krb4 to use -lcom_err as well, as I started + to get link problems with it unless I did that on my Solaris 2.7 box. I + don't understand why I started to get problems with this now! + +Daniel (5 August 2004) +- Enrico Scholz fixed the HTTP-Negotiate service name to be uppercase as + reported in bug report #1004105 + +Daniel (4 August 2004) +- Gisle Vanem provided a fix for the multi interface and connecting to a host + using multiple IP (bad) addresses. + +- Dylan Salisbury made libcurl no longer accept cookies set to a TLD only (it + previously allowed that on the seven three-letter domains). + +Daniel (31 July 2004) +- Joel Chen reported that the digest code assumed quotes around the contents a + bit too much. + +Daniel (28 July 2004) +- Bertrand Demiddelaer fixed the host name to get setup properly even when a + connection is re-used, when a proxy is in use. Previously the wrong Host: + header could get sent when re-using a proxy connection to a different target + host. + +- Fixed Brian Akins' reported problems with duplicate Host: headers on re-used + connections. If you attempted to replace the Host: header in the second + request, you got two such headers! + +- src/Makefile.am now includes the Makefile.inc file to get info about files + +Daniel (26 July 2004) +- Made "curl [URL] -o name#2" work as expected. If there's no globbing for the + #-number, it will simply be used as #2 in the file name. + +- Bertrand Demiddelaer fixed testing with valgrind 2.1.x and added two missing + newlines in the cookie informationals. + +Daniel (24 July 2004) +- I fixed the autobuilds with ares, since they now need to have buildconf run + in the ares dir before the configure script is run. + +- Added Casey O'Donnell's curl_easy_reset() function. It has a proto in + curl/curl.h but we have no man page yet. + +Daniel (20 July 2004) +- Added buildconf and buildconf.bat to the release archives, since they are + handy for rebuilding curl when using a daily snapshot (and not a pure CVS + checkout). + +Daniel (16 July 2004) +- As suggested by Toby Peterson, libcurl now ignores Content-Length data if the + given size is a negative number. Test case 178 verifies this. + +Daniel (14 July 2004) +- Günter Knauf has made the Netware builds do without the config-netware.h + files, so they are now removed from the dist packages. + +- Günter Knauf made curl and libcurl build with Borland again. + +- Andres Garcia fixed the common test 505 failures on windows. + +Daniel (6 July 2004) +- Andrés García found out why the windows tests failed on file:// "uploads". + +Daniel (2 July 2004) +- Andrés García reported a curl_share_cleanup() crash that occurs when no + lock/unlock callbacks have been set and the share is cleaned up. + +Daniel (1 July 2004) +- When using curl --trace or --trace-ascii, no trace messages that were sent + by curl_easy_cleanup() were included in the trace file. This made the + message "Closing connection #0" never appear in trace dumps. + +Daniel (30 June 2004) +- Niels van Tongeren found that setting CURLOPT_NOBODY to TRUE doesn't disable + a previously set POST request, making a very odd request get sent (unless + you disabled the POST) a HEAD request with a POST request-body. I've now + made CURLOPT_NOBODY enforce a proper HEAD. Added test case 514 for this. + +Daniel (29 June 2004) +- Günter Knauf made the testcurl.pl script capable of using a custom setup + file to easier run multiple autobuilds on the same source tree. + +- Gisle fixed the djgpp build and fixed a memory problem in some of the + reorged name resolved code. + +- Fixed code to allow connects done using the multi interface to attempt the + next IP when connecting to a host that resolves to multiple IPs and a + connect attempt fails. + +Daniel (27 June 2004) +- Based on Rob Stanzel's bug report #979480, I wrote a configure check that + checks if poll() can be used to wait on NULL as otherwise select() should be + used to do it. The select() usage was also fixed according to his report. + + Mac OS X 10.3 says "poll() functionality for Mac OS X is implemented via an + emulation layer on top of select(), not in the kernel directly. It is + recommended that programs running under OS X 10.3 prefer select() over + poll(). Configure scripts should look for the _POLL_EMUL_H_ define (instead + of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not + implemented in the kernel." + + Yes, we can probably use select() on most platforms but today I prefered to + leave the code unaltered. + +Daniel (24 June 2004) +- The standard curl_version() string now only includes version info about + involved libraries and not about particular features. Thus it will no longer + include info about IPv6 nor GSS. That info is of course still available in + the feature bitmask curl_version_info() offers. + +- Replaced all occurances of sprintf() with snprintf(). This is mostly because + it is "A Good Thing" rather than actually fixing any known problem. This + will help preventing future possible mistakes to cause buffer overflows. + +- Major reorganization in the host resolve code (again). This time, I've + modified the code to now always use a linked list of Curl_addrinfo structs + to return resolved info in, no matter what resolver method or support that + is available on the platform. It makes it a lot easier to write code that + uses or depends on resolved data. + + Internally, this means amongst other things that we can stop doing the weird + "increase buffer size until it works" trick when resolving hosts on + IPv4-only with gethostbyname_r(), we support socks even on libcurls built + with IPv6 enabled (but only to socks servers that resolve to an IPv4 + address) and we no longer deep-copy or relocate hostent structs (we create + Curl_addrinfo chains instead). + + The new "hostent to Curl_addrinfo" converter function is named Curl_he2ai() + and is slightly naive and simple, yet I believe it is functional enough to + work for libcurl. + +Daniel (22 June 2004) +- David Cohen pointed out that RFC2109 says clients should allow cookies to + contain least 4096 bytes while libcurl only allowed 2047. I raised the limit + to 4999 now and made the used buffer get malloc()ed instead of simply + allocated on stack as before. Extended test case 46 to include a cookie with + very huge content to verify the fix. + +- Günter Knauf fixed getdate.y to remove a few warnings. I removed the + ifdef'ed test we never ever use anyway. + +- Gisle Vanem fixed the certificate wildcard checks to support a '*'-letter + anywhere in the wildcard string, support multiple '*'-letters in the + wildcard and to allow the '*'-letter to match a string that includes a dot. + +Daniel (21 June 2004) +- testcurl.sh is now removed completely, tests/testcurl.pl is the script to + use when autobuilding curl! + +- Kjetil Jacobsen brought my attention to the fact that you cannot properly + abort an upload with the readfunction callback, since returning 0 or -1 only + stops the upload and libcurl will continue waiting for downloaded data and + the server often waits for the rest of the upload data to arrive. + + Thus, I've now added the ability for read callbacks to return + CURL_READFUNC_ABORT to abort an upload from a read callback. This will stop + the transfer immediately with a CURLE_ABORTED_BY_CALLBACK return code. + + Test case 513 was added to verify that it works. I had to improve the test + HTTP server too to dump the request to a file even when the client + disconnects prematurely. + +Daniel (19 June 2004) +- Luca Alteas provided a test case with a failing curl operation: when we POST + to a site with --digest (or similar) set, and the server responded with a 302 + Location: to the "authprobe" request, it was not treated correctly. We still + will behave badly if FOLLOWLOCATION is enabled for this case, but I'm not + in the mood to dive into this right now and will leave it as-is for now. + Verified my fix with test case 177. + +Daniel (18 June 2004) +- Gisle Vanem's patch that provides more details from the SSL layers (if you + use an OpenSSL version that supports it). It also introduces two new types + of data that can be sent to the debug callback: CURLINFO_SSL_DATA_IN and + CURLINFO_SSL_DATA_OUT. + +- With David Byron's test server I could repeat his problem and make sure that + POSTing over HTTPS:// with NTLM works fine now. There was a general problem + with multi-pass authentication with non-GET operations with CONNECT. + +Daniel (16 June 2004) +- Modified to keep the upload byte counter in an curl_off_t, not an int as + before. 32bits is not enough. This is most likely the bug Jean-Louis Lemaire + reported that makes 2GB FTP uploads to report error ("unaligned file sizes") + when completed. + +Daniel (15 June 2004) +- Luca Alteas reported a problem that I fixed: if you did a POST with + CURLAUTH_DIGEST set but the server didn't require any authentication, + libcurl would repeatedly send HEAD lots of times until it gives up. This was + actually the case for all multi-pass authentications. Added test case 174, + 175 and 176 to verify this. + +Daniel (14 June 2004) +- Multipart formposts uploading files no longer inserts the files themselves + into the huge prebuilt chunk. This enables libcurl to formpost files that is + larger than the amount of system memory. When the file given is passed on + stdin, libcurl still uses the old method of reading the full fill before the + upload takes place. This approach was selected in order to not alter the + behavior for existing applications, as when using stdin libcurl can't know + the size of the upload and chunked transfer-encoding can only be used on + HTTP 1.1 servers. + +Daniel (13 June 2004) +- Gisle found out that we did wildcard cert name checks wrong, so that parts + of the check wrongly was case sensitive. + +Daniel (11 June 2004) +- Tim Sneddon brought a minor VMS fix to make curl build properly on his VMS + machine. He also had some interesting libcurl patches... they might be able + to do in a slightly nicer way. Discussions are in progress. + +Daniel (10 June 2004) +- Gisle Vanem brought code cleanupsm better verbose output and better connect + timeout handling when attempting to connect to a host that resolves to + multiple IP addresses. + +- Steven Bazyl and Seshubabu Pasam pointed out a bug on win32 when freeing the + path after a file:// transfer. + +Daniel (9 June 2004) +- Alexander Krasnostavsky made 'configure --disable-http' work to build libcurl + without HTTP support. I added a new return code for curl_formadd() in case + libcurl is built with HTTP disable: CURL_FORMADD_DISABLED. + +- Alexander Krasnostavsky pointed out a missing file in the generated + curllib.dsp file, and now people building with this should get a libcurl.lib + file generated as it used to do before we generated this file. + +Daniel (8 June 2004) +- Marty Kuhrt fixed a minor build problem for VMS. + +Daniel (7 June 2004) +- Reverted the configure check from the 4th since it obviously didn't work. + Remade it in a different manner that hopefully works better. + +Daniel (4 June 2004) +- Günter Knauf brought patches to make curl build fine on NetWare again. + +- Made the configure checks for strerror_r() not exit the configure script + when built for cross-compiling. + +Daniel (3 June 2004) +- Chris Gaukroger pointed out that 'make test' attempts to run the tests even + if curl is built cross-compiled. I've now made it output a short message + instead, saying it isn't possible to do. + +- Alexander Krasnostavsky brought FTP 3rd party transfer support to libcurl. + You can now use libcurl to transfer files between two remote hosts using + FTP. There are a bunch of new options to control this with: + CURLOPT_SOURCE_HOST + CURLOPT_SOURCE_USERPWD + CURLOPT_SOURCE_PATH + CURLOPT_SOURCE_PORT + CURLOPT_PASV_HOST + CURLOPT_SOURCE_PREQUOTE + CURLOPT_SOURCE_POSTQUOTE + + (They still remain to be documented properly in the curl_easy_setopt man + page.) + + When using this, the ordinary CURLOPT_URL specifies the target URL, and you + specify the source data with these additional options. ftp3rdparty.c is a + new example source code showing how to use this. + +- Vincent Bronner fixed the HTTP Digest code to use the proxy user name and + password when doing proxy authentication, it previously always used the host + user name and password! + +Daniel (2 June 2004) +- CURLOPT_UPLOAD and CURLOPT_PUT now do the exact same thing internally, which + fixes some old confusions on when which of these should be used and what the + differences are. + +- Applied Gisle's fixes to make curl build fine with lcc-win32 + +Version 7.12.0 (2 June 2004) + +Daniel (1 June 2004) +- I clarified the --create-dirs option somewhat in the curl man page. + +- Renaud Duhaut corrected the curl_unescape man page. + +- David Byron modified one of Massimiliano Ziccardi's recent MSVC makefile + changes to now again use the mm lib by default. + +Daniel (26 May 2004) +- Mohun Biswas added release-zlib and debug-zlib targets to the MSVC libcurl + Makefile + +- David Byron reported a problem with proxy authentication when doing CONNECT, + like when accessing HTTPS sites wiht a proxy. This probably broke when I + rewrote the auth stuff recently. + +- I added fileupload.c in the examples directory, showing how an upload to a + file:// URL is made. + +Daniel (25 May 2004) +- Massimiliano Ziccardi updated the MSVC makefiles. + +Daniel (24 May 2004) +- libcurl now supports "uploading" to file:// URLs. Test 204 and 205 were + added to verify. + +- Simon Josefsson added a idn_free() function in libidn 0.4.5 as a reaction to + Gisle's previous mail. We now use this function, and thus we require libidn + 0.4.5 or later. No earlier version will do. + +- Robert D. Young reported that CURLOPT_COOKIEFILE and CURLOPT_COOKIE could + not be used both in one request. Fixed it and added test case 172 to verify. + +Daniel (21 May 2004) +- While talking to host a.b.c, libcurl did wrongly not accept cookies that + were set to the domain .a.b.c (that is with a dot prefix). This is now fixed + and test case 171 verifies it. + +Daniel (20 May 2004) +- Jesse Noller reported that the upload speed info reported by libcurl was + wrong. The same was true for the download speed. Fixed now. + +Daniel (19 May 2004) +- David Byron added test case 170 - this used to crash the previous version of + curl. + +Daniel (17 May 2004) +- Peter Sylvester's patch that addresses two flaws in the peer certificate + name verification: + o when multiple common names are used (as in the curl tests), the last name + needs to be selected. + o allow comparing with encoded values, at least with BMP and ISO latin1 + encoded T61strings. + +- All 191 test cases run through the torture test OK! 'make test-torture' is + now available in the root makefile (on configure-based environments). + +Daniel (14 May 2004) +- With a slightly modified ftpserver.pl I've now run almost all tests through + with runtests.pl -t. This is goodness! + +- Since I have been unable to contact the CVS admins for several months, I've + decided that the current CVS hosting was not good enough. I've now moved the + CVS repo once again, see README for updated cvs checkout instructions. + +Daniel (13 May 2004) +- runtests.pl -t now runs fine all the way to test 100. I believe test case + 100 fails because of an FTP server problem. + +Daniel (12 May 2004) +- General cleanups all over to make libcurl survive and do well when a memory + function returns NULL. runtests.pl -t now works fine for the first 26 test + cases. + +Daniel (11 May 2004) +- Seshubabu Pasam provided a patch that introduces curl_global_init_mem() - + like normal curl_global_init() but allows the app to replace all memory + functions with its own set. I modified it slightly. + +- Based on Luca Alteas' comments, I modified the curllib.dsp generation code. + +Daniel (10 May 2004) +- Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a + separate free()-function by that lib to make sure the memory is freed by the + same memory subsystem that allocated it. He responded positively and this + will likely cause us to require a newer version of libidn as soon as Simon + releases one with such a libidn_free() function. + +- James Bursa made runtests.pl's -t option work for any given test case, and I + edited to allow -g too. Not even test case 1 worked... + +- Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers. + +- Andrés García fixed a problem in the test script that made it fail to + recognize our own running HTTP server. + +Daniel (7 May 2004) +- James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to + free() and he made two failed-resolve error messages use the new display- + name instead of the internally-used name. + +- Gisle Vanem tried curl with + www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com + which caused problems, and I fixed the single zero byte buffer overwrite + that occurred (due to a stupid protocol buffer size and parser). + +- Made the lib/curllib.dsp file get generated automaticly when a distribution + package is made, with the msvcproj.* files as templates and all + win32-sources added. I think this can be made to work better than the always + lagging-behind previous approach. I'm not sure this builds a working project + file right now though! + +Daniel (6 May 2004) +- Michael Benedict brought a fix that fills in the errorbuffer properly when + ares fails to resolve a name for a case not previously dealt with like this. + +Daniel (5 May 2004) +- Joe Halpin fixed the annoying typecast warning in lib/ldap.c + +- Gisle Vanem fixes: + o memdebug to not access NULL on several places + o libcurl.def; curl_formparse is gone. + o progress.c; fixed the percent values being trunced to 0. + o if2ip.*; constified the 'interface' argument. + +- Tor Arntsen reported that many of his autobuilds froze and I found and fixed + a problem introduced with the HTTP auth overhaul that could lead to a + never-ending internal request-loop due to un-initialized variables! + +- Removed several compiler warnings on various compilers/platforms. + +Daniel (4 May 2004) +- curl_formparse() has been removed from the library. It has been marked and + mentioned as deprecated for several years. + +Daniel (3 May 2004) +- Rewritten HTTP authentication code. The previous code could not properly + deal with the added test cases 167, 168 and 169. I've now rewritten the code + to better separate host and proxy authentication and not re-use the same + variables as much as before as it proved non working in the more involved + cases. All the current tests run OK now, and so do the new ones. The curl + tool got a new option named --proxy-digest to enable HTTP Digest + authentication with the proxy. I also made the library support it. + +- Gisle Vanem made the LDAP code work with wldap32.dll as supplied with + Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used + on these Windows versions. + +Daniel (30 April 2004) +- runtests.pl now scans the valgrind log for valgrind-detected memory leaks + after each test case if valgrind was found and used. + +- I modified the app-code in curl to include the new lib/curlx.h and only + access those functions using the curlx_-prefix in preparation for the future + removal of several curl_-functions from the public libcurl API. + +- Introduced lib/curlx.h as a single header to provide the curlx_-functions + to apps. + +- Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal + and curl_strnequal that they are subject for removal in a future release. + STOP USING THESE FUNCTIONS. + +- Mihai Ionescu noticed he couldn't do formposts with whitespace in the file + names and yes, I broke that on April 23. Sigh. I fixed it now and added + test case 166 to verify it. + +- Luca Altea pointed out a mistake left from the Digest patch of yesterday. + +Daniel (29 April 2004) +- Made IDN domains work when sending requsts over HTTP proxy as well. Added + test case 165 to verify the functionality. + +- Fixed a bug in the new internal host name setup when re-using connections. + +- James Bursa found out that curl_easy_duphandle() with ares-built libcurl + created a bad handle that would crash in the first name resolve attempt. This + is now fixed and test case 512 was added to verify it. + +- Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow + the Digest RFC a lot better. + +- Gisle Vanem made the SSL code use ERR_error_string_n() where applicable. + +Daniel (27 April 2004) +- I remodeled Gisle's IDN code slightly and now we convert both the host name + and proxy name to the ACE encoded version to use internally for resolves and + cookies etc. They are now using one 'struct hostname' each that keep both + the original name and the possibly encoded name. IDN resolves work for me + now using IPv6, IPv4 and ares resolving. Even cookies on IDN sites seem to + do right. I got some failures at first when CHARSET wasn't set at all which + confused libidn completely and it decided by encoding of choice was + 'ANSI_X3.4-1968'... + +- made 'configure --without-libidn' work + +Daniel (25 April 2004) +- Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to + make the problems with USE_MANUAL on windows go away. + +- configure --without-ssl could still wrongly include some OpenSSL info in the + Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by + Martin. + +- Since we can now build and use quite a large set of 3rd party libraries, I + decided I would make configure produce a summary at the end showing what + libraries it uses and if not, what option to use to make it use that. I also + added some other random info that is nice in a "configure summary" output. + +- Applied TommyTam's patch that now make curl work with telnet and stdin + properly on Windows. + +- The changes for today below were made by me and Gisle Vanem. + + The file previously known as hostip.c has now undergone a huge cleanup and + split: + + hostip.c explained + ================== + + The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c + source file are these: + + CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use + that. The host may not be able to resolve IPv6, but we don't really have to + take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4 + defined. + + CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous + name resolves. It cannot have ENABLE_IPV6 defined at the same time, as + c-ares has no IPv6 support. This can be Windows or *nix. + + CURLRES_THREADED - is defined if libcurl is built to run under (native) + Windows, and then the name resolve will be done in a new thread, and the + supported asynch API will be the same as for ares-builds. + + If any of the two previous are defined, CURLRES_ASYNCH is defined too. If + libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is + defined. + + The host*.c sources files are split up like this: + + hostip.c - method-independent resolver functions and utility functions + hostasyn.c - functions for asynchronous name resolves + hostsyn.c - functions for synchronous name resolves + hostares.c - functions for ares-using name resolves + hostthre.c - functions for threaded name resolves + hostip4.c - IPv4 specific functions + hostip6.c - IPv6 specific functions + + The hostip.h is the single united header file for all this. It defines the + CURLRES_* defines based on the config*.h and setup.h defines. + +- Added function header comments to many functions in an attempt to better + explain the purpose of them all. + +- configure --with-libidn is now supported. It makes the configure script + check for libidn libs and include files in the prefix path given. If you + say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib + and the includes in /usr/local/include etc. + +- curl_version_info() now returns a struct aged CURLVERSION_THIRD including + libidn version info. The string curl_version() returns also includes libidn + version info, if available. + +Version 7.11.2 (26 April 2004) + +Daniel (25 April 2004) +- Erwin Authried pointed out that configure --disable-manual didn't do right + if you already had a src/hugehelp.c source file present (which most people + do I guess). It now uses the USE_MANUAL define properly. + +Daniel (23 April 2004) +- Gisle Vanem found and fixed a memory leak when doing (failing) Windows + threaded name resolves. + +- I also added test case 163 just to make sure -F "var=2GB files. curl -V now + outputs 'Largefile' in the Features: field if this is the case. Most systems + are likely to support this. + +- We offer a CURL_FORMAT_OFF_T define in the public header, which can be used + to printf() curl_off_t variables. We also modified the libcurl sources to + use this define instead of the previous %Od approach (although I've left the + O-flag functional in the code). This should also prevent compilers to warn + on the home-grown option. + +- Fixed the resume-check code to test for a working resume at the end of the + headers and not at the first body-byte. + +- CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If + you need a global DNS cache for whatever reason, use the share interface and + you'll get a global cache that works the way it should work. You can even + have any number of global caches, all at your command. This is now also + mentioned in the docs. + +- Made the *printf code support the z-flag to enable size_t printf() in a + manner similar to how glibc allows it. To make printfing of this work on + platforms with 64bit size_t and 32bit ints. If there even are any! ;-) + +- Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and + CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would + loop without succeeding to authenticate due to the new connection that was + made for all round-trips in the authentication. Now, the FRESH_CONNECT is + remade to only matter for the first connection made with curl_easy_perform() + and all the rest that might follow due to FOLLOWLOCATION or HTTP + authentication are now ignoring that option. + +- Adjusted the QUIT code slightly since it could core-dump. + +- Corrected the test suite's FTP server to provide a correct size to the + 'verifiedserver' request. + +Daniel (27 February 2004) +- Joe Halpin made the FTP code send QUIT on the control connection before + disconnecting the TCP connection. This is what good-behaving ftp clients + should do. + +Daniel (26 February 2004) +- David Byron updated several files to make curl build fine on MSVC 6. He + also added the 'buildconf.bat' that works like the 'buildconf + configure' + combo does on unixes. + +- Gisle Vanem made the memdebug stuff support calloc() as well. + +- Tor Arntsen pointed out that testcurl.sh needed to remove the generated + files in order to have them re-generated in each build. + +- Andy Serpa found out that the share interface did not enjoy life when not + having the lock and unlock callbacks set, even though documented to be + OK. It still is OK, and now the code won't segfault anymore! + +Daniel (25 February 2004) +- Based on a patch by Greg Hewgill I modified how long long is used in the + mprintf code, as we can use a 64bit type with MSVC that is a long long + equivalent. This corrects some weird large file behaviors on windows. + +- Tor Arntsen helped me work out --enable-debug to work better with different + versions of the gcc and icc compilers. + +- Added CURLOPT_SHARE to the curl_easy_setopt.3 man page. + +Daniel (22 February 2004) +- Applied the final pieces of Gisle Vanem's patch that brings a working name + resolve timeout to the windows versions of curl! + +Daniel (21 February 2004) +- David Byron's fix to allow the speed-limit logic work even if you set + limit-rate. It does work on the expense of the rate limiter. + +Daniel (20 February 2004) +- configure --enable-debug with gcc now also tries to detect the icc compiler + (which somehow gets treated as if it is a gcc) to stop using all the gcc + options with it, and we also provide -isystem options for each extra -I + option the configure script has figured out (for OpenSSL, kerberos, zlib, + Heimdal etc). This of course to prevent warnings on headers we don't have + control of. + +Daniel (19 February 2004) +- Doug Porter made libcurl use the HOME environment variable before the + getpwuid results when looking for .netrc files. + +- If 'configure --enable-debug' is used with gcc, it now checks which gcc + version it is and uses as picky compiler options as possible for the + particular version. + +- Code that can be used in both the lib and in the curl app is now made to use + the curlx_ prefix. The first function to be available like this is the + curlx_strtoll() function. This is made to allow the app to use existing code, + but without polluting the libcurl API. Further explanations posted here: + + http://curl.haxx.se/mail/lib-2004-02/0215.html + +Daniel (18 February 2004) +- Fixed buildconf to not use "which" as AIX and Tru64 have what have been + referred to as "horribly broken 'which' programs". + +- Made sure dns cache timeout set to -1 really means caching forever. + +Daniel (17 February 2004) +- Made it possibly to build c-ares with the libcurl memdebug system to better + track memory. + +Daniel (16 February 2004) +- When using ares, we now initialize the ares 'channel' in curl_easy_init() + and re-use that same handle during the entire curl handle's life-time. It + improves performance. + +- Fixed a problem when displaying verbose for IPv6-enabled libcurls and + re-used connections. Problem reported and fix verified by Grigory Entin. + +- Jeff Lawson fixed the version-check in the SOCKS5 code. + +Daniel (15 February 2004) +- Fixed a case where a host cache entry was not flagged in-use properly when a + cached entry was used. + +- Andrés García's patch that checks for winmm in the configure script was + applied. + +Daniel (13 February 2004) +- Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a + specific network interface. + +- Greg Hewgill found out that the variable holding 'contentlength' wasn't big + enough to hold a large file! + +- Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp + department, and there was another potential problem in the name resolve code + too. + +Daniel (11 February 2004) +- Removed a few variables that were only set but never used, as some compilers + warn about that and we do not like compiler warnings! + +- Removed the need for symlinks in the tests/data directory if curl is built + outside of the source directory and the 'make test' is used. This was done + by providing a "source dir path" to the scripts/servers. + +- Now, if the configure script can't find an nroff tool or an option to nroff + to use to convert man pages with, it will completely switch off the built-in + manual. + +- 'configure --disable-manual' completely disables the built-in manual from + the curl command tool. + +- Andrés García fixed the configure script and a minor source edit, and now + he has managed to get msys/mingw to run configure and then build! + +Daniel (9 February 2004) +- The default HTTP Accept: header was modified to the much simpler + "Accept: */*". + +- P R Schaffner updated the curl-ssl spec file for RPMs. + +- Dominick Meglio brought lots of documentation for the share interface's man + pages that were previously missing. + +- Tor Arntsen provided a patch that makes libcurl work-around a bug in the + AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on + IPv6-enabled AIX builds. + +- Ken Rastatter provided portability fixes for the curlgtk.c example, and now + it runs on windows with GTK as well! + +Daniel (6 February 2004) +- Andrés García made the configure script find gethostbyname() fine when run + with mingw on windows. + +- Modified the ldap code to use proper function pointers all over (instead of + mixed data and function pointers) to work-around the picky MIPSPro compiler + warnings. + +- A custom Host: header is only considered if the request is not made by + following a location. After discussions with Tim Baker. + +Daniel (5 February 2004) +- The libz part of the configure script now only set the two libz-related + define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found. + If one is missing, none of the defines is set. + +- Andrés García fixed the Mingw makefiles. + +- Len Krause reported that curl 7.9.X could do uploading from stdin without + doing chunked encoding, which current curl cannot do even if you disable + the transfer-encoding chunked header. Now it can again, and test case 98 + verifies this functionality. + +- Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing + the IPv6-code for PORT work on AIX 5.2. We now also provide (better) error + messages when bailing out in the that function. + +- Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro + compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed + numerous minor quirks to make less warnings appear. + +Daniel (4 February 2004) +- Based on a patch by Gilad, we now use the custom timeouts when waiting for a + server to connect when using FTP PORT. Previously we always waited 10 + seconds, no more no less. We now also changed the default (if no timeout is + set) to wait 60 seconds for the connect before we fail. + +Daniel (3 February 2004) +- Modified to link with c-ares instead of ares. + +Daniel (2 February 2004) +- Added a configure test to check for which option the (g)nroff tool wants + to extract plain text from the man pages. Tor Arntsen told us the AIX + version of GNU gnroff doesn't support -man! + +- Added an undef of accept in memdebug.h to make curl build with --enable-debug + on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen. + +- curl_version() now includes c-ares version info, and curl_version_info() now + returns a struct with version SECOND that also includes that info. + +- We are now officially using c-ares for asynch name resolves. c-ares is the + new library, based on the existing ares but with an extended and slightly + modified API. + +- Dirk improved the ares timeout code, and now we also include the ares error + string when we fail to resolve a name. + +- Another tweak to make test case 91 run fine. Now we have another bit on a + connection that is set true if the connection is marked for 'retry'. That + makes the connection get closed and re-opened and the HTTP-done code must + not complain on the fact that no data was received. + +- Based on Dirk Manske's patch, I modified the name resolving with ares to + feature a timeout for really slow lookups. It now defaults to 300 seconds, + but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them + is set. + +- Fixed the inclusion of ca-bundle.h to really use the one in the build dir + before the one in the source dir. Domenico Andreoli found out and reported. + +- Added test case 97, a simple POST with a custom Content-Type header + replacing the original application/x-www-form-urlencoded one. + +Daniel (30 January 2004) +- Added code that attempts to fix the test 91 failure. As has been figured out + by Patrick Smith, the error happens because we re-use a connection that the + server is just about to close and we even manage to send away the request + without seeing an error. On the first read attempt we get a ECONNRESET. + Starting now, we attempt to detect this and if so, we retry the request on a + fresh connection. + +- I added test case 510 which is a custom program that does a POST using a + read callback, with chunked transfer-encoding. + +- Adjusted one of the MPE/iX changes as it made test case 504 fail all over. + +- Added --socks as a recognized option. It works just like --proxy but sets a + SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a + while, just not provided by the curl tool. This does not currently work for + IPv6-enabled libcurls. + +Daniel (29 January 2004) +- Stadler Stephan pointed out that src/hugehelp.c included config.h without + checking the define if its present... + +- Ken Hirsch provided patches to make curl build fine on the MPE/iX operating + system. + +- Dan Fandrich compiled curl with lots of aggressively pedantic compiler + options and thus found a few minor errors and did some general cleanups to + avoid them. + +- Dirk Manske fixed a flaw in ares that prevented it to use non-blocking + sockets properly. + +Daniel (28 January 2004) +- Richard Bramante fixed chunked transfer-encoded "uploads" to send a final + CRLF combo properly. + +Daniel (27 January 2004) +- Made the response-headers during a CONNECT request to a proxy get passed on + as regular headers, so they appear with -i/-I options and similar. + +- Based on a patch by Gisle Vanem, I've made the progress meter display + properly switch to a GB-display when more than 9999MB have been transfered. + +Daniel (23 January 2004) +- Gisle Vanem pointed out a curlrc parser problem/crash when an option with a + required didn't have one and was on the last line of a file. + +- More Windows fixes for large files. We now build and link with + ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided + libcurl function... Perhaps we should consider a 'common' dir or similar + where we put source code used in both the lib and the client. Or perhaps + we'll just make this function available in the library... + +- Vincent Bronner found out the socks5 code crashed when no username was + set. + +- Vincent Bronner spotted a problem with proxy username/password when re-using + a persistent connection. + +- Fixed the progress meter display for files larger than 2^31 bytes. Gisle + Vanem reported. + +Daniel (22 January 2004) +- Gisle Vanem made strtoll() get used when curl is built with the mingw + compiler. + +- Gisle Vanem fixed the compressed help text code to display properly. + +- Removed the '#define HttpPost' from the public header file, as curl_httppost + is the proper name and it has been for quite some time now. Fixes another + name space pollution. + +- Added 'curl_off_t' typedef in the public header file, to be used to provide + large file sizes to the *_LARGE options. Adjusted the code all over to use + this variable type instead of 'off_t'. This is an attempt to make the large + file support work on more platforms. The configure script now checks the + size of the curl_off_t instead of the plain off_t. + +Version 7.11.0 (22 January 2004) + +Daniel (21 January 2004) +- Removed the defines in the public header file with TIMECOND_ prefixes. They + have been obsolete since April 22nd 2002, and if this causes anyone any + problems now it is very easy to just add CURL_ to the names. This corrects + this name space pollution. + +Daniel (19 January 2004) +- David Byron cleaned up how --trace with no option was treated, and also + arguments in a config file without a required parameter! + +Daniel (16 January 2004) +- Gisle Vanem fixed a few issues where compilers warned about variables + possibly being used unassigned. + +- Minor Interix build problem fixed. + +Daniel (15 January 2004) +- Peter Sylvester pointed out some necessary escaping needed in the + acinclude.m4 file when automake 1.8 or later is used. + +Daniel (14 January 2004) +- Vincent Bronner fixed the Curl_resolv() return code. This extends the fix + Steve Green provided on december 3... + +Daniel (13 January 2004) +- Luke Call made the win32 version of the password prompting function support + backspace. + +- Dan Fandrich fixed the hugehelp source file to contain both a compressed and + an uncompressed version in the distribution, so that more people easier can + build curl with the compressed version. + +- Diego Casorran brought another AmigaOS build patch for native Amiga builds. + +- Matt Veenstra updated the Mac OS X framework files. + +- Brian R Duffy brought a section to the INSTALL file on how to build a + SSL-enabled curl using the free Borland C++ compiler. He also updated the + Borland lib/Makefile.b32. + +- I fixed the test case 509 which I broke yesterday. Now the libtest are + compiled with an include path that points to the library's source dir, so + that the libtests can include files from the source tree. This was made to + make it possible to use the USE_SSLEAY define in the library test files. + +Daniel (12 January 2004) +- Peter Sylvester brought code that now allows a callback to modified the URL + even when the multi interface is used, and then libcurl will simulate a + "follow location" to that new URL. Test 509 was added to test this feature. + +- Extended the time we retry servers in the test script, and I also made it + retry the https and ftps servers before they are considered bad. I believe + the previous approach could turn problematic on really slow hosts. + +Version 7.11.0-pre1 (12 January 2004) + +Daniel (11 January 2004) +- Dominick Meglio pointed out FTPS should use default port 990 according to + IANA. + +Daniel (8 January 2004) +- Fixed the SPNEGO configure check to not use -R or other non-portable options + in the LDFLAGS. Reported by Pierre in bug report #872930. + +Daniel (5 January 2004) +- Dan Fandrich provided a fix on our zlib usage. + +- David J Meyer's patch that introduce large file support to libcurl was + applied. New curl_easy_setopt options that accept 'off_t' arguments are: + + INFILESIZE_LARGE + RESUME_FROM_LARGE + MAXFILESIZE_LARGE + +Daniel (4 January 2004) +- Based on Dominick Meglio's comments, I made our private version of + gettimeofday() declared static. This would otherwise collide with the same + function in other libs (like ares for example). + +- Added Dominick Meglio's description on how to build libcurl with ares + on win32. +Daniel (19 December) +- CURLOPT_IPRESOLVE was not possible to set. + +- Gisle Vanem updated the djgpp build files. + +Daniel (18 December) +- John McGowan reported a redirect-problem that happened if a site used a URL + like "url.com?var=content" (without a proper slash) and from that address + redirected the user-agent to an absolute directory. + +- David Byron made libcurl build fine with both the .NET and VC6 versions of + MSVC + +Daniel (16 December) +- Updated test 506 since it started to fail after the cache prune change + yesterday. I also changed it slightly to feature a counter in each debug + output for easier tracing. + +Daniel (15 December) +- Old DNS cache entries are now only pruned after curl is done with a request, + and not in the actual name resolve call. + +- corrected the --enable-ares patch + +- Giuseppe Attardi found and fixed a problem within libcurl that re-used + already freed memory. + +Daniel (10 December) +- Gisle Vanem reported that the dict support was broken. I broke it during my + ftps-changes overhaul. I've now added a 'curlassert' function that can be + used to verify expressions, to prevent future errors of the same + kind. They're only present in debug-builds. + +- Diego Casorran made curl and libcurl possible to build natively (no more + need for the ixemul library) on AmigaOS. + +- Dominick Meglio made configure --enable-ares support a given path to the + installed ares lib, instead of always using it in the curl source tree. + This also fixed the curl-config --libs output. + +- Eric S. Raymond patched a very minor man page format error in + libcurl-errors.3 + +Daniel (8 December) +- Fixed the flaw that made -lz appear twice on the link command line. + +- After correspondence with Gisle Vanem, I changed the 'connection aborted' + error text when the FTP response reader failed to more specificly identify + what the problem is. + +- Based on a patch from Dominick Meglio, curl-config --feature now outputs + 'AsynchDNS' as a feature if libcurl was built with ares. The feature name + is the same that 'curl -V' outputs, for simplicity. + +Daniel (3 December) +- Marty Kuhrt made the build up-to-date on VMS, and moved most of the VMS- + specific stuff in the client code to a separate header file. + +- Steve Green fixed a return code bug in Curl_resolv(), that made the socks5 + code fail. + +- swalkaus at yahoo.com patched libcurl to ignore Content-Length: headers + when Transfer-Encoding: chunked is used, as mandated by RFC2616. + +Daniel (2 December) +- --ftp-pasv was added, which serves the only purpose of overriding a + previously set --ftpport option. Starting now, --ftp-port is a recognized + alias for --ftpport for consistency. + +- Giuseppe Attardi pointed out that we should use MSG_NOSIGNAL when we use + send() and recv(). I added checks for the define in the configure script and + adjusted the code accordingly. If the symbol is present, we won't attempt + to ignore the SIGPIPE signal. + +Daniel (1 December) +- Mathias Axelsson set up a bsdftpd-ssl server for me and I could make curl + run fine against its FTPS implementation. Now these FTPS-related things + work: + o explicit and implicit FTPS + o active (PORT) and passive (PASV) + o upload and download + o verified against bsdftpd-ssl and RaidenFTPD + +Daniel (27 November) +- James Clancy made the Borland Makefiles up to date. + +- Markus Moeller improved the SPNEGO detection in the configure script. + +Daniel (25 November) +- Dave May filed bug report #848371, identifying that if you'd do POST over a + proxy to a https server, libcurl didn't POST at all, it just made a GET! It + turned out to be because libcurl wrongly didn't consider the authentication + "negotiation phase" to be complete yet. + + I added test case 95 to verify my fix for this. + +Daniel (24 November) +- Thanks to Mathias Axelsson, I've been able to work on FTPS for libcurl and it + seems to work somewhat fine now. + + The FTPS stuff is based on RFC2228 and the murray-auth-ftp-ssl draft + (version 12). There seems to exist quite a few servers that have implemented + the server side of this. + + We can now use ftps:// URLs to explicitly switch on SSL/TSL for the control + connection and the data connection (dealing with two SSL connections forced + me to change a lot of stuff in libcurl). + + Alternatively, and what seems to be the recommended way, we can set the new + option CURLOPT_FTP_SSL to one of these values: + + CURLFTPSSL_NOPE, - do not attempt to use SSL + CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise + CURLFTPSSL_CONTROL - SSL for the control connection or fail + CURLFTPSSL_ALL - SSL for all communication or fail + + Any failure to set the desired level will make libcurl fail with the error + code CURLE_FTP_SSL_FAILED. This new option makes a "normal" ftp:// transfer + attempt to be made securely. + + I've been able to login and get files (passively) from Mathias' server using + both ftps:// and CURLOPT_FTP_SSL. (I've made 'curl' understand the --ftp-ssl + option that sets CURLFTPSSL_TRY.) + +- Gaz Iqbal fixed a range string memory leak. + +- Gisle Vanem fixed the Windows builds. + +- Added the new FTPSSL defines in curl/curl.h + +Daniel (20 November) +- Josh Kapell filed bug report #845247 as he found an endless loop when + getting a 407 back from a proxy when no user+password was given. Added test + case 94 to verify the fix. + +Daniel (19 November) +- Kevin Roth fixed a progress-bar problem on Windows. + +- While working with Nicolas Croiset's bug report #843739, I noticed two minor + problems related to ftp partial downloads: if a partial transfer is + detected, we must close the connection as we cannot know in what state it is + anymore. This looks like a ProFTPD bug: + http://curl.haxx.se/mail/lib-2003-11/0079.html + +Daniel (17 November) +- Maciej W. Rozycki made the configure script use a cache variable for the + writable argv test. This way, the default can be overridden better (for + cross-compiles etc) + +Daniel (15 November) +- Mathias Axelsson found out libcurl sometimes freed the server certificate + twice, leading to crashes! + +Daniel (14 November) +- Siddhartha Prakash Jain found a case with a bad resolve that we didn't + properly bail out from, when using ares. + +Daniel (13 November) +- Default Content-Type for parts in multipart formposts has changed to + "application/octet-stream". This seems more appropriate, and I believe + mozilla and the likes do this. In the same area: .html files now get + text/html as Content-Type. (Pointed out in bug report #839806) + +- Gisle Vanem corrected the --progress-bar output by doing a flush of the + output, which apparently makes it look better on at least windows, but + possibly other platforms too. + +- Peter Sylvester identified a problem in the connect code, which made the + multi interface on a IPv6-enabled Solaris box do bad. Test case 504 to be + specific. I've spent some time to clean-up the Curl_connecthost() function + now to use less duplicated code for the two different sections: IPv6 and + IPv4. + +Daniel (11 November) +- Added CURLOPT_NETRC_FILE. Use this to tell libcurl which file to use instead + of trying to find a .netrc in the current user's home directory. The + existing .netrc file finder is somewhat naive and is far from perfect on + several platforms that aren't unix-style. If this option isn't set when + CURLOPT_NETRC is set, the previous approach will still be used. + + The current .netrc check code now also support longer than 256 bytes path + names. + +Daniel (10 November) +- Kang-Jin Lee pointed out that the generated ca-bundle.h file shouldn't be + written in the source dir if a different build dir is used. + +- After Sébastien Willemijns' bug report, we now check the separators properly + in the 229-reply servers respond on a EPSV command and bail out better if + the reply string is not RFC2428-compliant. + +Daniel (7 November) +- Based on Gisle Vanem's patch, I made curl try harder to get the home + directory of the current user, in order to find the default .curlrc file. + We're also considering moving out the HOME-dir code from libcurl, and + instead have the app pass in the path to the .netrc file (which is the only + logic left in libcurl that uses the HOME dir). Then curl can use the home + dir for that purpose too. + +- Ralph Mitchell's updated testcurl.sh to the script to take an existing + directory name and build/run/test curl in there instead of trying to update + from CVS. Using this approach, the script can now be used to test daily + tarballs etc. + +- Gisle Vanem added a "resource file" to the Windows DLL builds, to contain + information such as version number, library name, copyright info etc. + +Daniel (6 November) +- curl checks if the existing libcurl supports things like --ntlm, --negotiate + and --krb4 and returns error if not. + +- I added three new global defines in the curl/curl.h header: + LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. They + are the three numbers in the library's version number, separated for easier + usage. 'maketgz' was updated accordingly to generate these numbers properly + when building release-archives. + +- Uninitialized variable fix, reported by both Marty Kuhrt and Benjamin + Gerard. + +- Matt Veenstra provided build files to build libcurl as a "framework" under + Mac OS X. See the lib/libcurl.framework.make for details. + +- Removed the defines of TRUE and FALSE from the curl/curl.h header file. + They're not in our name space so we should not fiddle with them. + +Daniel (5 November) +- Replaced the man page to HTML converter program with a new one: roffit. + Makes nicer web pages. + +Daniel (4 November) +- Troels Walsted Hansen fixed the MSVC makefiles to let them build curl fine + on Windows. + +- Kevin Roth corrected the cygwin package generator and spell-fixed the + comment in the ca-bundle.h file. + +Version 7.10.8 (1 November 2003) + +Daniel (31 October) +- Assume that MDTM on an FTP server returns the timestamp using the UTC time + zone. This changes the time CURLINFO_FILETIME returns for a given file over + FTP, and will change existing uses of CURLOPT_TIMECONDITION. It will make + the functionality more similar to how the HTTP one is already working. + +- Command line options that take numerical parameters (such as -y, -Y, -C etc) + now report error and exit if the parameter isn't truly a number greater than + or equal to zero. This helps users to notice bad usage earlier. Before, when + a user forgot or missed to add a numerical parameter to an option, the + command line parser would simply "eat" the following option and it would + cause great confusion. + +Daniel (30 October) +- David Hull made libcurl deal with NOBODY and HEADER for file:// the same way + it already does for FTP: it provides HTTP-looking headers that provide info + only about the file, without doing the actual transfer. The curl tool then + lets --head do this. + +Daniel (29 October) +- runtests.pl now checks for and use valgrind if present. It will redirect the + valgrind results in log/valgrind[num] but it currently doesn't scan that + file for any errors or anything, that is still only made manually. + +- David Hull made the file: URL parser also accept the somewhat sloppy file + syntax: file:/path. I added test case 203 to verify this. + +Daniel (28 October) +- Dan C tracked down yet another weird behavior in the glibc gethostbyname_r() + function for some specific versions (reported on 2.2.5 and 2.1.1), and + provided a fix. On Linux machines with these glibc versions, non-IPv6 + builds of libcurl would often fail to resolve perfectly resolvable host + names. + +Daniel (26 October) +- James Bursa found out that curl_msnprintf() could write the trailing + zero-byte outside its given buffer size. This could happen if you generated + a very long error message as then libcurl would overwrite the ERRORBUFFER + with one byte. Using a non-existing very long local file:// name is one case + that could make this occur. + +Daniel (24 October) +- David Hull filed bug report #829827. It identified a problem with -C - if + the full file already was downloaded and thus the server responded with a + 416. libcurl would then wrongly use the Content-Length: header and expect + that size to get transfer, causing a "hang" until the server closed the + connection and then an error 18 ("still N bytes data left of the transfer"). + + Now we don't return any error at all, but I think libcurl should perhaps + return some kind of info since the requested range was out of the size of + the document. + +- Based on David Hull's fix in bug report #804599, we now check for solaris and + gcc in configure and set the -mimpure-text link flag for linking the lib + better. + +- I've introduced a -t option to the runtests.pl script. With that option set, + the script runs special "memory torture" tests. For each test command line + in that section, the script first runs the command line and counts the total + amount of allocations made. It then runs the exact same command line again, + forcing allocation number N to fail. It will try every N from 1 to the total + number of amounts made. For every invoke, it checks that no memory was + leaked as that would indicate a bad cleanup somewhere in the code. + + This is just beginning to work, and I've already made some corrections in + libcurl code. When this code works somewhat fine, I'll make sure 'make test' + in the root dir will run these tests as well. + +Daniel (23 October) +- Georg Horn fixed how the CA verification is made. Verifications can now be + made while at the same time the result of it can be ignored. This also + affects the curl tool as -k can now be used together with --cacert or + --capath. + +Daniel (22 October) +- Gisle Vanem found out --disable-eprt didn't work and patched it. + +- Test case 91 was modified and could now repeat the problem Kevin Roth has + reported, and the bug was fixed. + +- Dylan Ellicott added vc-libcurl-ssl-dll as a target to the root makefile + to build a static libcurl that links with a shared OpenSSL using MSVC. + +Daniel (21 October) +- Andrés García updated the mingw32 makefiles. + +Version 7.10.8-pre5 (21 October 2003) + +Daniel (19 October) +- Georg Horn made libcurl output more info on SSL failures when receiving + data. + +Version 7.10.8-pre4 (18 October 2003) + +Daniel (17 October) +- Dominick Meglio implemented CURLOPT_MAXFILESIZE and --max-filesize. + +- Made libcurl show verbose info about what auth type and user name that is + being sent in its HTTP request-headers. + +Daniel (16 October) +- Removed support for CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. libcurl + no longer prompt for passwords under any circumstances. Password prompting + was instead moved to curl, which now prompts for password if -u or -U lack + it. This solves the problem Kevin Roth reported when curl prompted for + password twice when doing NTLM authentication. + +- I rewrote the SSL subjectAltName check to avoid having to rely on OpenLDAP- + licensed derivate code. + +Daniel (15 October) +- Avoid doing getsockopt() on Windows to verify connects. It seems that this + hogs Windows machines when libcurl is being used multi-threaded (with > ~50 + threads). Andrew Fuller helped us verify and test this. + +Daniel (14 October) +- Kimmo Kinnunen fixed a crash with duphandle() when CURLDEBUG is set. + +- Gisle Vanem made libcurl build and work with IPv6 on Windows. + +Daniel (13 October) +- Giuseppe Attardi reported yet another segfault with ares and the multi + interface. Me fixed. + +- Domenico Andreoli removed the extra LDFLAGS assignment in lib/Makefile.am + that was reported about in the debian bug report #212086. + + Domenico also fixed two makefiles where we used 'gnroff' instead of the more + portable $(NROFF). + +Daniel (12 October) +- Dirk Manske made the share locking around DNS lookups slightly different to + allow the share system's DNS lookups to run somewhat more + independent/faster. + +Daniel (9 October) +- Lachlan O'Dea fixed a resume problem: "If I set CURLOPT_RESUME_FROM, perform + an HTTP download, then reset CURLOPT_RESUME_FROM to 0, the next download + still has a Range header with a garbage value." bug report #820502 + +- Dominick Meglio made the inet_pton.c file build fine using MSVC. + +- The 'sws' test suite web server now #include setup.h from the lib directory. + This makes it more portable easier. + +Version 7.10.8-pre3 (8 October 2003) + +Daniel (8 October) +- Frank Ticheler provided a patch that fixes how libcurl connects to multiple + addresses, if one of them fails (IPv4 code). + +Daniel (7 October) +- Neil Dunbar provided a patch that now makes libcurl check SSL + subjectAltNames when matching certs. This is apparently detailed in RFC2818 + as the right thing to do. I had to add configure checks for inet_pton() and + our own (strictly speaking, code from BIND written by Paul Vixie) provided + code for the function for platforms that miss it. + +- HTTP POST using the read callback didn't work, as Florian Schoppmann + reported. + +Daniel (5 October) +- Shared provided a few fixes to make libcurl build on BeOS + out-of-the-box. New code for BeOS-style non-blocking sockets, provided by + Shard and Jeremy Friesner. Modified the autoconf check for non-blocking + sockets to check for this kind too. + +Daniel (4 October) +- Vincent Bronner pointed out that if you set CURLOPT_COOKIE for a transfer + and then set it to NULL in a subsequent one, the previous cookie was still + sent off! + +- Jon Turner fixed a problem libcurl had when it failed on an FTP transfer due + to a bad path, it would cause the next transfer to use a bad path as well. + +- Siddhartha Prakash Jain provided a patch with a fix for libcurl with ares, + when working on IP-only names as we then could return "wait" status when the + name in fact already was resolved. I edited the patch slightly to not expose + asynch details to non-ares aware source code. + +Daniel (3 October) +- Neil Spring posted the debian bug report #213180, and pointed out that using + the name 'access' in a function prototype is not very wise as some compilers + complain. + +- Peter Sylvester provided his and Jean-Paul Merlin's curlx.c example source + code that shows how they use ssl and callbacks. + +Daniel (2 October) +- James MacMillan's patch makes curl build on QNX 6.2.x. + +Daniel (26 September) +- My daughter was born! + +Daniel (23 September) +- Added support for -4/--ipv4 and -6/--ipv6 to force names to resolve to that + particular IP version. They only work for IPv6-enabled libcurls. + +- curl -V now outputs 'SPNEGO' as a feature in case libcurl was built to + support that. + +Version 7.10.8-pre2 (22 September 2003) + +Daniel (22 September) +- Giuseppe Attardi found a segfault in libcurl when using the multi interface + with ares and doing repeated operations against a non-resolving host name. + +Daniel (19 September) +- Added the CURLOPT_IPRESOLVE option, that allows an application to select + what kind of IP addresses he wants to use when resolving host names. This + is only interesting when using host names that resolve addresses using more + than one version of IP. + +- Applied Markus Moeller's patch that introduces SPNEGO support if libcurl + is built with the FBopenssl libraries. curl_version_info() now returns + info on SPNEGO availability. The patch also made the GSSAPI stuff work fine + with the MIT GSS-library (the Heimdal one still works too). + +Daniel (16 September) +- Doing PUT with --digest failed, as reported in bug report #805853. + +- Using --anyauth that picked NTLM, and then a redirect closed the connection + and took curl to a second NTLM page made curl fail. Bug report #806328 + identified the problem, test case 90 was added to verify the fix. + +Daniel (14 September) +- codemastr brought a patch for ares to make the Windows portions of it work + properly on NT4. I uploaded a new diff and updated the docs on where to get + it etc. + +- Jeff Pohlmeyer tracked down a very hard-to-find bug where we removed a + cached DNS entry even though it may be in use, which caused "random" memory + to get overwritten and thus "random" crashes. + +Daniel (12 September) +- Based on a bug report by David Kimdon, I made the runtests.pl script clear + all possible proxy environment variables before the tests are run. + +- By default, easy handles within a multi handle now share DNS cache. + +- Tim Bartley brought a patch that makes the GSSNEGOTIATE option work for + Microsoft's "Negotiate" authentication as well. + +Daniel (11 September) +- A zero-length proxy string confused FTP transfers. + +- Bjorn Reese found a case with an uninitialized pointer, only present when + built for ares. + +Version 7.10.8-pre1 (8 September 2003) + +Daniel (7 September) +- Jurij Smakov found out that the non-OpenSSL MD5 code was not working on + Alpha (or ia64). Only the OpenSSL-version did. I made a fix I think corrects + the problem. + +Daniel (5 September) +- Kevin Fisk reported that configure --enable-thread didn't work. I fixed. + +- De-macrofied the lib/hash.c source code somewhat. + +Daniel (4 September) +- CURLINFO_HTTPAUTH_AVAIL and CURLINFO_PROXYAUTH_AVAIL added, Based on Joerg + Mueller-Tolk's patch, + +Early (4 September) +- Added CURLOPT_FTP_RESPONSE_TIMEOUT - allows user to set strict timeout + requirements on the FTP server's ability to respond to individual commands + without placing global requirements on transfer or connect time. Files + affected: + - include/curl/curl.h + Added option CURLOPT_FTP_RESPONSE_TIMEOUT + - lib/ftp.c + Added branch inside Curl_GetFTPResponse to check for + data->set.ftp_response_timeout + - lib/url.c + Modified Curl_setopt to recognize CURLOPT_FTP_RESPONSE_TIMEOUT + - lib/urldata.h + Added ftp_response_timeout to struct UserDefined + +Daniel (3 September) +- Peter Pentchev found and fixed two problems in the test suite's web server + code, that made it segfault at times. + +- Jörg Mueller-Tolk improved the proxy user+password handling, especially + when providing a blank password. + +Daniel (2 September) +- Fix for making CONNECT to proxies do the correct magic to allow NTLM, Digest + and similar to work. + +Daniel (1 September) +- Henrik Storner made libcurl work fine with OpenLDAP 2.1.22 (current). + +- Jeff Pohlmeyer added a proper error message for non-resolving hosts when + using ares for lookups. + +Daniel (25 August) +- John McGowan reported that curl -k still failed if the HTTPS server's CN + field wasn't obtainable. This was due to the CURLOPT_SSL_VERIFYHOST being + set to 1, and libcurl failed if the CN was missing. Starting now, having it + set to 1 will simply output a warning if no CN could be obtained (as having + a mismatch is OK). + +Daniel (21 August) +- Vincent Sanders provided a fix for name resolving when linked with uClibc. + +Daniel (20 August) +- Gerd v. Egidy provided a patch that makes libcurl store the FTP response + code from ftp servers. Using curl_easy_getinfo() with CURLINFO_HTTP_CODE + returns that data. The option is therefore now also known as + CURLINFO_RESPONSE_CODE. + +- Antoine Calando found a segfault when doing multi-part/formpost using + the multi interface. + +- Antoine Calando pointed out that curl_multi_info_read() didn't set the + msgs_in_queue to 0 properly when returning NULL. + +Daniel (19 August) +- I made curl support multiple -T options, as well as -T "{file1,file2}" + style globbing. One -T for each URL is supported. + +- Jeff Pohlmeyer found a segfault when using ares-enabled libcurl and the + multi interface when trying a non-existing host name. + +- Made the libcurl printf code support long longs if available. + +- Loren Kirkby pointed out that we did not clean up all SSL-allocated memory + in curl_global_cleanup(). + +Daniel (17 August) +- Setting CURLOPT_WRITEFUNCTION or CURLOPT_READFUNCTION to NULL will now make + them get the internal defaults restored. Previously this could cause a + segfault. We should aim at having all pointer-related options get restored + to default/safe values when set to NULL. + +Version 7.10.7 (15 August 2003) + +Daniel (14 August) +- I modified the memdebug system to return failure on memory allocation + functions after a set amount of successful ones. This enables us to test + out-of-memory situations in a controlled manner and we can make sure that + curl/libcurl behaves good in those. + + This made me find and fix several spots where we did not cleanup properly + when bailing out due to errors (low memory). + +- Corrected test case 74. Made using -o with bad #[num] codes complain and + bail out. Made #[num] support numbers larger than 9 as well. Added test + case 86 for a proper range globbing test as well. + +Version 7.10.7-pre4 (12 August 2003) + +Daniel (12 August) +- curl_version_info() now returns a flag if libcurl was built with asynch DNS + support, and this is now also displayed with 'curl -V'. + +- Added a few new man pages to the docs/libcurl dir: curl_share_init, + curl_share_setopt, curl_share_cleanup, libcurl-easy and libcurl-share. + +Daniel (11 August) +- Mike Cherepov made the local binding code work for Windows, which makes + the option CURLOPT_INTERFACE work on Windows as well. + +- Vincent Sanders updated the fopen.c example code a lot. + +- --proxy-ntlm is now supported by the curl tool. It forces the proxy + authentication to be made using NTLM. It does not yet work for HTTPS over + proxies (or other proxy-tunneling options). Test case 81 and 82 do some + simple initial ntlm testing. + +- Found and fixed a minor memory leak on re-used connections with + proxy-authentication. + +- I removed -@ and -Z as valid short options. They were very rarely used (@ + wasn't even documented). + +- Serge Semashko introduced CURLOPT_PROXYAUTH, and make it work when set to + CURLAUTH_NTLM and/or CURLAUTH_BASIC. The PROXAUTH is similar to HTTPAUTH, + but is for the proxy connection only, and HTTPAUTH is for the remote host. + +- Fixed loading of cookies with blank contents from a cookie jar. Also made the + cookie functions inform on added and skipped cookies (for cookie debugging). + +Version 7.10.7-pre3 (8 August 2003) + +Daniel (8 August) +- Applied David Byron's fix for file:// URLs with drive letters included. + +- I added the --ftp-create-dirs to the client code, which activates Early's + CURLOPT_FTP_CREATE_MISSING_DIRS option, and wrote test case 147 to verify + it. Added the option to the curl.1 man page too. Added the option to the + curl_easy_setopt.3 man page too. + +Daniel (7 August) +- Test case 60 failed on ia64 and AMD Opteron. Fixed now. + +- Fixed a printf problem that resulted in urlglobbing bugs (bug #203827 in the + debian bug tracker). Added test case 74 to verify the fix and to discover if + this breaks in the future. + +- "make distcheck" works again. + +Version 7.10.7-pre2 (6 August 2003) + +Daniel (5 August) +- Duncan Wilcox helped me verify that the latest incarnation of my ares patch + builds fine on Mac OS X (see the new lib/README.ares) file for all details. + +- Salvatore Sorrentino filed bug report #783116 and Early Ehlinger posted a + bug report to the libcurl list, both identifying a problem with FTP + persistent connections and how the dir hierarchy was not properly reset + between files. + +- David Byron's thoughts on a fixed Makefile in tests/ were applied. + +- Jan Sundin reported a case where curl ignored a cookie that browsers don't, + which turned up to be due to the number of dots in the 'domain'. I've now + made curl follow the the original netscape cookie spec less strict on that + part. + +Daniel (4 August) +- Dirk Manske added cookie support for the experimental, hidden and still + undocumented share feature! + +- Mark Fletcher provided an excellent bug report that identified a problem + with FOLLOWLOCATION and chunked transfer-encoding, as libcurl would not + properly ignore the body contents of 3XX response that included the + Location: header. + +Early (6 August) +- Added option CURLOPT_FTP_CREATE_MISSING_DIRS + This option will force the target file's path to be created if it + does not already exist on the remote system. + + Files affected: + - include/curl/curl.h + Added option CURLOPT_FTP_CREATE_MISSING_DIRS + - lib/ftp.c + Added function ftp_mkd, which issues a MKD command + Added function ftp_force_cwd, which attempts a CWD, + and does a MKD and retries the CWD if the original CWD + fails + Modified ftp_perform() to call its change directory function + through a pointer. The pointer points to ftp_cwd by default, + and is modified to point to ftp_force_cwd IFF + data->set.ftp_create_missing_dirs is not 0. + - lib/url.c + Modified Curl_setopt to recognize CURLOPT_FTP_CREATE_MISSING_DIRS + - lib/urldata.h + Added ftp_create_missing_dirs to struct UserDefined + +- Minor Bugfix for CURLOPT_TIMECONDITION with FTP - if the file was not + present to do the time comparison, it would fail. + Files affected: + - lib/ftp.c + In ftp_perform(), the call to ftp_getfiletime() used to be followed + by + if (result) + return result; + And then by the code that actually did the time comparison. + The code that did the comparison handled the case where the filetime + was not available (as indicated by info.filetime < 0 or set.timevalue + < 0), so I replaced the if (result) return result with a switch(result) + that allows CURLE_FTP_COULDNT_RETR_FILE to fall through to the + normal time comparison. + +Daniel (3 August) +- When proxy authentication is used in a CONNECT request (as used for all SSL + connects and otherwise enforced tunnel-thru-proxy requests), the same + authentication header is also wrongly sent to the remote host. + + This is a rather significant info leak. I've fixed it now and mailed a patch + and warning to the mailing lists. + +Daniel (1 August) +- David Byron provided a patch to make 7.10.6 build correctly with the + compressed hugehelp.c source file. + +Version 7.10.7-pre1 (31 July 2003) + +Daniel (30 July) +- Jörg Müller-Tolk updated the VC makefile. + +- Daniel Noguerol made the ftp code output "Accept-Ranges: bytes" in similar + style like other faked HTTP headers when NOBODY and HEADER are used. I + updated two corresponding test cases too. + +- Marty Kuhrt pointed out a compilation problem on VMS due to my having + changed a type from long to time_t, and I'm now changing it back to work + more portably... + + He also indicated that distributing the src/hugehelp.c in a compressed state + like I accidentally did may not be the smartest move... I've now fixed the + distribute procedure to automatically generate an uncompressed version when I + make release archives. + +Daniel (29 July) +- Gisle Vanem brought changes to the mkhelp script for the generation of the + compressed help text on some platforms. + +Version 7.10.6 (28 July 2003) + +Daniel (28 July) +- François Pons brought a patch that once again made curl deal with ftp and + "double slash" as indicating the root directory. In the RFC1738-fix of April + 30, that ability was removed (since it is not the "right" way). So, starting + now we can list the root dir of an ftp server both these ways: + + curl ftp://server.com/%2f as well as + curl ftp://server.com// + +Daniel (24 July) +- Henry Bland pointed out that we included sys/resource.h without good reason + in several source files. Without it included, QNX builds better... + +- Andrés García updated the mingw makefiles. + +Daniel (23 July) +- Tracy Boehrer experienced DNS cache problems and did some nice debugging + and tracking which made it easy for me to correct the problem and Tracy + could verify that it did cure the problem! When re-using a connection we + now make sure we don't re-use the 'connect_addr' struct. + +- Daniel Kouril corrected the GSS-Negotiate code. + +- Juan F. Codagnone provided fixes to allow curl to build fine on Windows + again. + +Daniel (22 July) +- Edited the curl/curl.h include file to build on Windows properly. + +Daniel (21 July) +- Moved the proxy credentials from the SessionHandle struct to the connectdata + struct, to make multiple proxy connections with differerent user names work. + +- Adjusted the NTLM code to support proxy functionality. + +- Made the krb4 stuff compile with the user+password fields moved. + +Version 7.10.6-pre4 (21 July 2003) + +Daniel (20 July) +- David Gardner pointed out in bug report 770755 that using the FTP command + CWD with a blank argument is a bad idea and I made libcurl skip empty path + segments starting now. + +Daniel (18 July) +- Cris pointed out that my fix on July 16th didn't work fully. His pointing + out this (and his patch) also made me realize that we have a very similar + bug in the FTP connection re-use code. We must store a separate user and + password field for each connection we keep (at least for FTP and HTTP+NTLM + connections, so I made us do this unconditionally). + +- Since NTLM authenticates connections instead of single requests, I had to + re-arrange how we store the NTLM data and I had to improve the test suite to + finally work properly with persistency to make the NTLM tests run fine + again. This also forced me to have to update lots of HTTP test cases. + +Daniel (16 July) +- Cris Bailiff's bug report 768275 pointed out that using Basic auth with + wrong user+password caused an endless loop. Fixed now. He also found out that + we didn't properly authenticate connections with NTLM. Fixed too. + +- Dan Winship provided fixes for the NTLM code. + +Daniel (5 July) +- Doug Kaufman provided additional fixes for the DOS port. + +Daniel (4 July) +- Rick Richardson pointed out that using setvbuf() to achieve non-buffering + on output is no-good for SCO Xenix and other unixes. We switched over to + using plain fflush() instead. + +- Dan Grayson pointed out that we set the CURL_CA_BUNDLE variable wrongly in + the configure script, and I had to change some build stuff to make the new + way work. + +- Peter Sylvester's patch was applied that introduces the following: + + CURLOPT_SSL_CTX_FUNCTION to set a callback that gets called with the + OpenSSL's ssl_ctx pointer passed in and allow a callback to act on it. If + anything but CURLE_OK is returned, that will also be returned by libcurl + all the way back. If this function changes the CURLOPT_URL, libcurl will + detect this and instead go use the new URL. + + CURLOPT_SSL_CTX_DATA is a pointer you set to get passed to the callback set + with CURLOPT_SSL_CTX_FUNCTION. + +Daniel (1 July) +- David Byron provided a patch that allows a client to quit the test suite's + HTTP server. + +- Gisle Vanem found and patched a lib handle leak in the ldap code. + +Daniel (25 June) +- More NTLM-improvements. Less code. Smaller packets back and forth. + +Daniel (23 June) +- Eric Glass provided us with a better doc on NTLM details, and I added more + comments and clarified the current code more. Using the new knowledge, we + should be able to make the NTLM stuff work even better. + Eric's original URL: http://davenport.sourceforge.net/ntlm.html + Version stored and provided at curl site: http://curl.haxx.se/rfc/ntlm.html + +- Fixed the minor compile problems pre3 had if built without GSSAPI and/or + SSL. + +Version 7.10.6-pre3 (19 June 2003) + +Daniel (19 June) +- Made curl use curl_free() on memory returned by curl_getenv(), as this + should theoreticly make it possibly to build and run curl and libcurl with + different memory allocation schemes with no problems. + +Daniel (18 June) +- Improved the mkhelp.pl a bit further to make a nicer hugehelp text and to + include a better comment in the top for the gzip compressed version. + +Daniel (17 June) +- CURLOPT_HTTPAUTH is now a bitmask, in which you set which authentication + type(s) you want to use. If more than one is set, libcurl will use one of + the selected one and the one it considers is more secure. Test case 67 and + 68 (for NTLM) were fixed and we've reduced a round-trip for specific --ntlm + fetches, and test case 69 and 70 were added for testing authentication + "picking". --anyauth is the new command line tool option, and I also added + --basic for completeness (that's the default type). + +- Fixed the runtests.pl script to use the info provided by the new curl -V + output. + +- --enable-debug now sets the CURLDEBUG define instead of MALLOCDEBUG, as it + is meant to be a generic debug conditional. + +- curl_version_info() can now return CURL_VERSION_DEBUG as a feature bit, to + indicate that the library was built with CURLDEBUG set. + +- Ralph Mitchell found out that some web applications very badly uses white + spaces in Location: redirects, and apparently IE is a browser (the only + one?) that supports this abomination. Based on Ralph's patch, I added code + that now attempts to replace white spaces with the proper "%20" or "+". + Test case 40 and 42 were added to verify my changes. + +- curl -V now also outputs a list of features the available library offers (if + any). + +- The curl_version() string now includes "GSS" if libcurl is built with GSSAPI + support. + +- David Orrell reported that libcurl still crashed when sending HUGE requests + over HTTPS... I fixed. + +Version 7.10.6-pre2 (16 June 2003) + +Daniel (16 June) +- curl_version_info() now returns bitmasked information weather NTLM and + GSSNEGOTIATE are supported, since it is doomed to vary on different + installations. + +- I remade the HTTP Digest code to use the MD5-code provided by OpenSSL if + that is present, and only use our own MD5-code if it isn't. + +Daniel (13 June) +- More NTLM help, fixes and patches from Cris Bailiff. + +- Marty Kuhrt brought include fixes for making VMS builds warning-free. + +Daniel (12 June) +- NTLM authentication works somewhat against the test servers provided by + Mathias Axelsson and Cris Bailiff. Use by setting CURLOPT_HTTPAUTH to + CURLAUTH_NTLM to libcurl, or --ntlm for the curl tool. Test case 67 and 68 + were added for this. NTLM-support requires OpenSSL. + +- Dan Fandrich provided a patch, that granted that gzip and libz are available + at build-time, compresses the hugehelp text in the curl command line and + uncompresses it at request. Saves some ~60K in the final output executable. + +Daniel (11 June) +- Long day of fighting the NTLM demons. + +Daniel (10 June) +- Modified how to set auth type to libcurl. Now use CURLOPT_HTTPAUTH instead, + and pick method. Supported ones currently are: + CURLAUTH_BASIC - default selection + CURLAUTH_DIGEST - formerly CURLOPT_HTTPDIGEST + CURLAUTH_GSSNEGOTIATE + +- Daniel Kouril added HTTP GSS-Negotiate authentication support, as defined in + the IETF draft draft-brezak-spnego-http-04.txt. In use already by various + Microsoft web applications. --negotiate is the new family member. To take + advantage of this, you need one of these packages: + + o Heimdal Kerberos5 http://www.pdc.kth.se/heimdal/heimdal.html + o GSSAPI from Globus http://www.globus.org/ + o GSSAPI libraries from MIT Kerberos5 http://web.mit.edu/kerberos/www/ + +- A missing ending bracket (']') while doing URL globbing could lead to a + segfault. While fixing this, I also introduced better error reporting in the + globbing code. (All this is application code outside libcurl.) + +Daniel (6 June) +- David Orrell found out that sending a huge GET request over HTTPS could + make libcurl fail and return an error code. + +Daniel (2 June) +- Richard Bramante found out that "Content-Length: 0" was not properly used by + libcurl if the response-headers indicated that the connection would be + closed. + +- David Byron's patch was applied, that makes the --progress-bar take the + local size into account when doing resumed downloads. + +- Feedback from Serge Semashko made me change the error message returned when + CURLE_HTTP_RETURNED_ERROR is returned. + +- Anonymous in bug report #745122 pointed out that we should really be using + SSL_CTX_set_options(... SSL_OP_ALL) to work around flaws in existing SSL + implementations. + +Daniel (27 May) +- Andreas Ley and Rich Gray helped me point out that no version of HP-UX has + the sys/select.h header file so including it unconditionally in curl/multi.h + is not a good thing. Now we check for HPUX and avoid using that header on + such systems. + +- Rudy Koento experienced problems with curl's recent habit of POSTing data in + two separate send() calls, first the headers and then the data. I've now + made a fix that for static and known content that is less than 100K in size, + everything is now sent in one single system call again. This is also better + for network performance reasons. + +- I modified the main makefile to not build the test suite and a few other + unnecessary things by default. Now, the test suite is built when 'make test' + is run. This reduces build time for those who don't care for the test + suite, and it also reduces confusion for people using platforms where the + test suite build fails! + +Daniel (26 May) +- Chris Lewis pointed out a flaw in the #ifdefs in curl/multi.h for Windows, + which is now corrected. + +- Jis Joy found another flaw in the SOCK5 code, as libcurl treated the socks5 + proxy a little too much like as if it was a http proxy. + +Daniel (23 May) +- Ricardo Cadime found a socket leak when listing directories without + contents. Test cases 144 and 145 were added to verify the fix. + +- Rudy Koento found yet another problem when a HTTP server returns only a + single-line of contents without any headers at all. libcurl then failed to + count the data, thus returning error 52 "no contents". Test case 66 was + added to verify that we now do right. + +Version 7.10.6-pre1 (23 May 2003) + +Daniel (23 May) +- Jis in bug report #741841, fixed a bug in the SOCKS5 proxy-using code. + +Daniel (22 May) +- David Remahl set up a test-server for me providing Digest authentication, + and I wrote the first working code that support it. The test suite was + modified slightly as well to work better for it and --digest was added to + the command line options (and CURLOPT_HTTPDIGEST to the library)... RFC2617 + has all the gory details. + +Daniel (21 May) +- David Balazic pointed out that curl_unescape() didn't check that %-codes + were correctly followed by two hexadecimal digits when it unescape strings. + Now, we do the check and only %XX codes are unescaped if the X letters are + hexadecimals. + +- Gisle Vanem made curl build with djgpp on DOS. + +- Gisle Vanem improved the mkhelp.pl script to make a nicer manual that is + shown with curl -M. + +Daniel (20 May) +- Gisle Vanem provided a fix that makes libcurl more conservative, not + expecting h_aliases of the hostent struct to always be non-NULL. + +Daniel (19 May) +- As requested by Martin Michlmayr in Debian bug report #193630, libcurl now + supports user name and password in the proxy environment variables. Added + test case 63 to verify this. + +Version 7.10.5 (19 May 2003) + +Daniel (15 May) +- Changed the order for the in_addr_t testing, as 'unsigned long' seems to be + a very common type inet_addr() returns. + +Daniel (14 May) +- George Comninos provided a fix that calls the progress meter when waiting + for FTP command responses take >1 second. It'll make applications more + "responsive" even when dealing with very slow ftp servers. + +Daniel (12 May) +- George Comninos pointed out that libcurl uploads had two quirks: + o when using FTP PORT command, it used blocking sockets! + o it could loop a long time without doing progress meter updates + Both items are fixed now. + +Daniel (9 May) +- Dan Fandrich changed CURLOPT_ENCODING to select all supported encodings if + set to "". This frees the application from having to know which encodings + the library supports. + +- Dan Fandrich pointed out we had three unnecessary files in CVS that is + generated with libtoolize, so they're now removed and libtoolize is invoked + accordingly in the buildconf script. + +- Avery Fay found out that the CURLOPT_INTERFACE way of first checking if the + given name is a network interface gave a real performance penalty on Linux, + so now we more appropriately first check if it is an IP number and if so + we don't check for a network interface with that name. + +- CURLOPT_FTP_USE_EPRT added. Set this to FALSE to disable libcurl's attempts + to use EPRT and LPRT before the traditional PORT command. The command line + tool sets this option with '--disable-eprt'. + +Version 7.10.5-pre2 (6 May 2003) + +Daniel (6 May) +- Kevin Delafield reported another case where we didn't correctly check for + EAGAIN but only EWOULDBLOCK, which caused badness on HPUX. + +Daniel (4 May) +- Ben Greear noticed that the check for 'writable argv' exited the configure + script when run for cross-compiling, which wasn't nice. Now it'll default to + no and output a warning about the fact that it was not checked for. + +Daniel (2 May) +- Added test case 62 and fixed some more on the cookie sending with a custom + Host: header set. + +Daniel (1 May) +- Andy Cedilnik fixed a few compiler warnings. + +- Made the "SSL read error: 5" error message more verbose, by adding code that + queries the OpenSSL library to fill in the error buffer. + +Daniel (30 Apr) +- Added sys/select.h include in the curl/multi.h file, after having been + reminded about this by Rich Gray. + +- I made each test set its own server requirements, thus abandoning the + previous system where the test number implied what server(s) to use for a + specific test. + +- David Balazic made curl more RFC1738-compliant for FTP URLs, by fixing so + that libcurl now uses one CWD command for each path part. A bunch of test + cases were fixed to work accordingly. + +- Cookie fixes: + + A. Save domains in jars like Mozilla does. It means all domains set in + Set-Cookie: headers are dot-prefixed. + B. Save and use the 'tailmatch' field in the Mozilla/Netscape cookie jars + (the second column). + C. Reject cookies using illegal domains in the Set-Cookie: line. Concerns + both domains with too few dots or domains that are outside the currently + operating server host's domain. + D. Set the path part by default to the one used in the request, if none was + set in the Set-Cookie line. + + To make item C really good, I also made libcurl notice custom Host: headers + and extract the host name set in there and use that as the host name for the + site we're getting the cookies from. This allows user to specify a site's + IP-address, but still be able to receive and send its cookies properly if + you provide a valid Host: name for the site. + +Daniel (29 Apr) +- Peter Kovacs provided a patch that makes the CURLINFO_CONNECT_TIME work fine + when using the multi interface (too). + +Version 7.10.5-pre1 (23 Apr 2003) + +Daniel (23 Apr) +- Upgraded to libtool 1.5. + +Daniel (22 Apr) +- Peter Sylvester pointed out that curl_easy_setopt() will always (wrongly) + return CURLE_OK no matter what happens. + +- Dan Fandrich fixed some gzip decompression bugs and flaws. + +Daniel (16 Apr) +- Fixed minor typo in man page, reported in the Debian bug tracker. + +Daniel (15 Apr) +- Fixed some FTP tests in the test suite that failed on my Solaris host, due + to the config.h not being included before the system headers. When done that + way, it did get a mixed sense of if big files are supported or not and then + stat() and fstat() (as used in test case 505) got confused and failed to + return a proper file size. + +- Formposting a file using a .html suffix is now properly set to Content-Type: text/html. + +Daniel (14 Apr) +- Fixed the SSL error handling to return proper SSL error messages again, they + broke in 7.10.4. I also attempt to track down CA cert problems and then + return the CURLE_SSL_CACERT error code. + +- The curl tool now intercepts the CURLE_SSL_CACERT error code and displays + a fairly big and explanatory error message. Kevin Roth helped me out with + the wording. + +Daniel (11 Apr) +- Nic Hines provided a second patch for gzip decompression, and fixed a bug + when deflate or gzip contents were downloaded using chunked encoding. + +- Dan Fandrich made libcurl support automatic decompression of gzip contents + (as an addition to the previous deflate support). + +- I made the CWD command during FTP session consider all 2xy codes to be OK + responses. + +Daniel (10 Apr) +- Vlad Krupin fixed a URL parsing issue. URLs that were not using a slash + after the host name, but still had "?" and parameters appended, as in + "http://hostname.com?foobar=moo", were not properly parsed by libcurl. + +Daniel (9 Apr) +- Made CURLOPT_TIMECONDITION work for FTP transfers, using the same syntax as + for HTTP. This then made -z work for ftp transfers too. Added test case 139 + and 140 for verifying this. + +- Getting the file date of an ftp file used the wrong time zone when + displayed. It is supposedly always GMT. Added test case 141 for this. + +- Made the test suite's FTP server support MDTM. + +- The default DEBUGFUNCTION, as enabled with CURLOPT_VERBOSE now outputs + CURLINFO_HEADER_IN data as well. The most notable effect from this is that + using curl -v, you get to see the incoming "headers" as well. This is + perhaps most useful when doing ftp. + +Daniel (8 Apr) +- James Bursa fixed a flaw in the Content-Type extraction code, which missed + the first letter if no space followed the colon. + +- Magnus Nilsson pointed out that share.c was missing in the MSVC project + file. + +Daniel (6 Apr) +- Ryan Weaver provided a patch that makes the CA cert bundle not get installed + anymore when 'configure --without-ssl' has been used. + +Daniel (4 Apr) +- Martijn Broenland found another cases where a server application didn't + like the boundary string used by curl when doing a multi-part/formpost. We + modified the boundary string to look like the one IE uses, as this is + probably gonna make curl work with more applications. + +Daniel (3 Apr) +- Kevin Roth reported that a bunch of tests fails on cygwin. One set fails + when using perl 5.8 (and they run fine with perl 5.6), and another set + failed because of an artifact in the test suite's FTP server that I + corrected. It turned out the FTP server code was still having a file opened + while the main test script removed it and invoked the HTTP server that + attempted to create the same file name of the file the FTP server kept open. + This operation works fine on unix, but not on cygwin. + +Version 7.10.4 (2 Apr 2003) + +Daniel (1 Apr) +- Added test case 505 to exercise FTP upload with rename done with libcurl, + and for that I had to extend the test suite's FTP server to deal with the + RNFR and RNTO commands. + +Daniel (31 Mar) +- Even more SSL config check modifications after Richard's testing. + +Version 7.10.4-pre6 (31 Mar 2003) + +Daniel (31 Mar) +- More fixes for the SSL session ID cache checks when SSL configs are changed + between connections. Based on tests and talks with Richard Bramante. + +- Guillaume Cottenceau provided a patch that added CURLOPT_UNRESTRICTED_AUTH. + When enabled, it will prevent libcurl from limiting to which host it sends + user+password to when following locations. By default, libcurl only sends + name and password to the original host used in the first URL, but with this + option set it will send the auth info to all hosts it follows location + headers to. The new tool command line option for this is named + "--location-trusted". + +- Frankie Fong reported a problem with libcurl if you re-used an easy handle + with a proxy, and you first made a https:// connection to a host and then + switched to a http:// one to the same host. libcurl would then wrongly re-use + the same connection for it and fail to get the second URL properly + +Daniel (29 Mar) +- Dan Shearer's fix that makes curl complain if invoked with nothing but "curl + -O" was applied. + +Daniel (26 Mar) +- Bryan Kemp was friendly enough to lend me an account on his Redhat 9 box and + I could fix the configure problems on redhat 8.1 and 9 in no time thanks to + this. Thanks a bunch Bryan! + +Daniel (25 Mar) +- Renamed configure.in to configure.ac + +Version 7.10.4-pre5 (25 Mar 2003) + +Daniel (25 Mar) +- Richard Bramante provided a fix for a handle re-use problem seen when you + change options on an SSL-enabled connection between requests. Previously, + changing peer verification or host verification and similar things was not + taken into account when a connection were checked for re-use and thus + enabling stricter check between requests on a re-used connection made no + difference and the connection would thus be used erroneously. + +Daniel (24 Mar) +- Götz Babin-Ebell pointed out that the ca-bundle.crt file contained a + certificate from Trustcenter that was a demo certificate only that was never + intended to be part of a CA bundle. + +Daniel (21 Mar) +- Life is a mystery. Within a time period of 17 hours, Tim Pope and Michael + Churchill filed one bug report each, both identifying problems with a second + transfer when doing persistent transfers re-using a connection. Tim's one is + #706624, labeled "Multiple uploads per handle fail" and Michael's #707003 + "Does not send Authorization: header when reusing connection". I could track + both down to the same piece of logic and it turned out libcurl was not using + new settings properly when re-using an existing connection. This concerned + both uploading and downloading and involved exactly those pieces these two + reports identified. This code has been this faulty since the day I + introduced persistent connection support in libcurl, more than 2 years ago. + +Daniel (20 Mar 2003) +- Five year anniversary. Today five years ago, the first ever curl release saw + the light of day. + +Daniel (17 Mar) +- Andy Cedilnik corrected flaws in some libcurl example-usage sources. + +Daniel (16 Mar) +- Juan F. Codagnone reported that the fix from March 2nd was incomplete. + +- Added code to the configure.in to check for select() argument types. I've + not made any code use the results just yet though. + +Daniel (15 Mar) +- Gisle Vanem provided two patches to build better on Windows. + +- Adjusted the test suite code to better make sure that the server(s) required + for a specific test is properly started before the test case is attempted. + Many tests now run a lot faster than before. + +Daniel (14 Mar) +- Another configure.in adjustment made the configure detect functions properly + on HPUX now. + +Daniel (13 Mar) +- Philippe Raoult fixed pre4-compile quirks for FreeBSD. + +Version 7.10.4-pre4 (13 Mar 2003) + +Daniel (13 Mar) +- Added a backup-check for functions that aren't found by AC_CHECK_FUNCS() + as I believe some checks on HPUX need this. At least some of the info given + to us by Rick Jones seemed to indicate this. + +Daniel (12 Mar) +- Thomas Tonino found out that if you used the curl tool to do PUT operations + as in 'curl www.foo.com/dir/ -T file' and the file name included for example + space or other characters that don't belong in URLs, curl did not properly + URL encode them before using them in the URL. + +- Added an option to configure called --enable-libgcc that simply adds -lgcc + to the LIBS variable, as this seems to be a common problem. + +- I modified the configure.in file, so that the headers are now checked in an + order of "viality". We must also make sure to use the "default headers" + parameter to AC_CHECK_HEADERS() so that headers are checked with the proper + prerequisites included (i.e all the major and generally important header + files are included there by default). This might be what we need for various + Sun, HP, AIX and Tru64 systems to behave good again on the header check + front. + +- Rick Jones pointed out a few compiler warnings on HP-UX that I addressed. + +- I made the configure --help output nicer by using AC_HELP_STRING() a lot + more. + +Daniel (11 Mar) +- Christophe Demory fixed the socket sending code to work better on HP-UX + when sending data to a socket that would block. It then returns EAGAIN, not + EWOULDBLOCK. + +- Richard Gorton improved the seeding function for systems without a good + and reliable random source. + +- Richard Gorton fixed a few warnings that popped up when you built curl + using the Sun compiler on a 64bit SPARC platform. + +- Martin C. Martin fixed a case where a connect failure using the multi + interface didn't produce a human readable error string. + +Daniel (10 Mar) +- Reverted ltmain.sh back to libtool 1.4.2 status again, as the 1.4.3 version + broke the build on numerous platforms. It seems that libtool 1.4.3 puts some + requirements on what versions of the other tools (autoconf + automake) that + I am not familiar with and thus I couldn't fulfill at this point. + + Yes, this is more than mildly frustrating. + +Daniel (7 Mar) +- Run libtoolize version 1.4.3. + +Version 7.10.4-pre3 (4 Mar 2003) + +Daniel (3 Mar) +- Added share.obj to the VC6 and Borland libcurl makefiles. + +- Troels Walsted Hansen found and investigated a problem with libcurl on AIX, + presumably only on 4.3 or later. gethostbyname_r() is not returning data + that is possible to "keep" and cache the way libcurl does. But instead these + versions of AIX uses a gethostbyname() that works thread-safely we can + instead use the ordinary gethostbyname() and our pack_hostent() approach to + achieve what we want. The configure script now attempts to detect AIX 4.3 or + later to adjust for this. + +Daniel (2 Mar) +- Juan F. Codagnone found a problem introduced in 7.10.3 when you first did a + POST and then back to a GET using the same easy handle. + +Daniel (28 Feb) +- Removed the strequal and strnequal defines from curl/curl.h header. They + were never meant for the public header anyway. Philippe Raoult brought it + up. + +- James Bursa fixed the RISC OS build. + +Daniel (27 Feb) +- Avery Fay pointed out the very misleading curl_multi_info_read man page, and + I updated it to become more accurate. + +- Salvatore Sorrentino found a problem with FTP downloading that turned out to + be his FTP server returning size zero (0 bytes) when SIZE was used on a file + while being in BINARY mode. We now make a second check for the actual size + by scanning the RETR reply anyway, even if the SIZE command returned 0. + +Daniel (26 Feb) +- Kyle Sallee reported a case where he would do a transfer that didn't update + the progress meter properly. It turned out to be a case where libcurl would + loop a little too eagerly in the transfer loop, which isn't really good for + the APIs, especially not the multi API. + +Version 7.10.4-pre2 (24 Feb 2003) + +Daniel (24 Feb) +- Kjetil Jacobsen found out that setting CURLOPT_MAXCONNECTS to a value higher + than 5 could cause a segfault. + +- I believe I fixed the 'Expect: 100-continue' behavior that has been broken + for a while (I think since my change dated Dec 10 2002). When this header is + used, libcurl should wait for a HTTP 100 (or timeout) before sending the + post/put data. + +Daniel (14 Feb) +- Matthew Clarke provided some info what to modify to make curl build + flawlessly on AIX 3.2.5. + +- Martin C. Martin found and fixed a problem in the multi interface when + running on Windows and trying to connect to a port without a listener. + +Daniel (13 Feb) +- Christopher R. Palmer fixed Curl_base64_encode() to deal with zeroes in the + data to encode. + +Daniel (4 Feb) +- Jean-Philippe added the first code that enables the 'share' system. This + should now enable sharing of DNS data between two curl easy handles. + +- Incorporated Nico Baggus' fixes to again compile flawlessly on VMS. + +- James Bursa corrected a bad comment in the public include file curl/multi.h + +- Peter Forret reported one of those error:00000000 cases in libcurl again + when connecting to a HTTPS site, and this time I did discover some oddities + in how curl reports SSL errors back. It could miss showing the actual error. + +Version 7.10.4-pre1 (3 Feb 2003) + +Daniel (3 Feb) +- Removed things in the docs saying capath doesn't work on Windows, as Julian + Noble told us it works fine. + +Daniel (31 Jan) +- Kevin Roth fixed the zlib build stuff in the Mingw32 makefile. + +Daniel (30 Jan) +- Kevin Roth found out that curl on Windows always checked for the CA cert + bundle using the environment variable and the path scan, even though + -k/--insecure was used. + +- Hamish Mackenzie pointed out that curl only did strict host name verifying + if capath or cainfo was used. Now it'll always do it unless -k / --insecure + is used! + +- Pavel Cenek pointed out that the Content-Type extraction was done wrongly + as the full string was not fetched. Added test case 57 to verify that curl + does it right now. + +Daniel (29 Jan) +- Jamie Wilkinson provided a patch that now makes curl attempt to clear out + "sensitive" command line arguments so that they don't appear in ps outputs + (only on platforms that allow writing to argv[]). + +- John McGowan found out that the DEBUGFUNCTION could be called with bad + arguments and thus cause the --trace outputs to go wrong. + +- Removed all the emacs local variables from all files. Mats Lidell provided + the new sample.emacs file (for a sample of what to include in your .emacs) + and the curl-style.el that sets a better c-style for editing curl sources. + +- Dave Halbakken found a problem with FTP downloads that could accidently + return CURLE_PARTIAL_FILE when curl_easy_perform() was called with NOBODY + set TRUE. + +Daniel (27 Jan) +- The fopen.c example was flawed as Nick Humfrey noticed, and I fixed it to + work again. + +Daniel (24 Jan) +- Bertrand Demiddelaer found and fixed a memory leak (the content-type string) + when following locations. + +Daniel (22 Jan 2003) +- Ian Wilkes and Legoff Vincent both independently provided fixes for making + curl/multi.h work properly when compiled with a C++ compiler. + +Daniel (20 Jan 2003) +- Fixed 'buildconf' to check version number of the required tools before + they're actually used. + +- Wrote 'testcurl.sh', a script targeted for automatic and distributed curl + tests on various platforms. + +- David Thiel pointed out that the .netrc file was not being dealt with + properly anymore. I broke this in the password prompting "fix". + +- Markus F.X.J. Oberhumer patched libcurl to allocate the scratch buffer only + on demand and thus we save 32KB in each curl handle that don't use that + buffer. This need appeared when some people started using thousands of + simultaneous curl handles... :-) + +Daniel (16 Jan 2003) +- Markus Oberhumer fixed curl-config --cflags when the includedir was not + /usr/include. + +- Markus Oberhumer fixed CURLINFO_PRIVATE to properly return NULL if it was + set to NULL! + +Version 7.10.3 (14 Jan 2003) + +Daniel (10 Jan 2003) +- Steve Oliphant pointed out that test case 105 did not work anymore and this + was due to a missing fix for the password prompting. + +Version 7.10.3-pre6 (10 Jan 2003) + +Daniel (9 Jan 2003) +- Bryan Kemp pointed out that curl -u could not provide a blank password + without prompting the user. It can now. -u username: makes the password + empty, while -u username makes curl prompt the user for a password. + +- Kjetil Jacobsen found a remaining connect problem in the multi interface on + ipv4 systems (Linux only?), that I fixed and Kjetil verified that it fixed + his problems. + +- memanalyze.pl now reads a file name from the command line, and no longer + takes the data on stdin as before. + +Version 7.10.3-pre5 (9 Jan 2003) + +Daniel (9 Jan 2003) +- Fixed tests/memanalyze.pl to work with file names that contain colons (as on + Windows). + +- Kjetil Jacobsen quickly pointed out that lib/share.h was missing... + +Version 7.10.3-pre4 (9 Jan 2003) + +Daniel (9 Jan 2003) +- Updated lib/share.c quite a bit to match the design document at + http://curl.haxx.se/dev/sharing.txt a lot more. + + I'll try to update the document soonish. share.c is still not actually used + by libcurl, but the API is slowly getting there and we can start + implementing code that takes advantage of this system. + +Daniel (8 Jan 2003) +- Updated share stuff in curl/curl.h, including data types, structs and + function prototypes. The corresponding files in lib/ were also modified + of course to remain compilable. Based on input from Jean-Philippe and also + to make it more in line with the design document. + +- Jean-Philippe Barrette-LaPierre patched a very trivial memory leak in + curl_escape() that would happen when realloc() returns NULL... + +- Matthew Blain provided feedback to make the --create-dirs stuff build + properly on Windows. + +- Fixed the #include in tests/libtest/first.c as Legoff Vincent pointed out. + +Daniel (7 Jan 2003) +- Philippe Raoult provided a patch that now makes libcurl properly support + wildcard checks for certificate names. + +- Simon Liu added CURLOPT_HTTP200ALIASES, to let an application set other + strings recognized as "HTTP 200" to allow http-like protocols to get + downloaded fine by curl. + +- Now using autoconf 2.57 and automake 1.7.2 + +- Doing "curl -I ftp://domain/non-existing-file" still outputed a date! + Wayne Haigh reported. + +- The error message is now written properly with a newline in the --trace + file. + +Daniel (6 Jan 2003) +- Sterling Hughes fixed a possible bug: previously, if you called + curl_easy_perform and then set the global dns cache, the global cache + wouldn't be used. Pointed out by Jean-Philippe Barrette-LaPierre. + +- Matthew Blain's fixed the VC6 libcurl makefile to include better debug data + on debug builds. +Daniel (27 Dec 2002) +- Philippe Raoult reported a bug with HTTPS connections which I evidently + added in my 19 dec fix. I corrected it. + +Daniel (20 Dec) +- Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure + script to make the default makefile less confusing "to the casual + installer". + +Version 7.10.3-pre3 (20 Dec) + +Daniel (19 Dec) +- Matthew Blain patched the Curl_base64_decode() function. + +- Evan Jordan reported in bug report #653022 that the SSL_read() usage was + wrong, and it certainly was. It could lead to curl using too much CPU due to + a stupid loop. + +Daniel (18 Dec) +- As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to + CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when + CURLOPT_FAILONERROR is set. + +Daniel (17 Dec) +- Bug reported #651464, reported by Christopher Palmer, provided an example + source code using the multi interface that hang when trying to connect to a + proxy on a localhost port where no proxy was listening. This bug was not + repeatable on libcurls that were IPv6-enabled. + +Daniel (16 Dec) +- Christopher Palmer also noticed what Vojtech Janota already was + experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl + to crash when used on some older glibc versions. The problem is of course + the silliness of the 2.2.93. I committed a fix that hopefully should make + the binary run fine on either one of the versions, even though the solution + is not as nice as I'd like it to be. + +Daniel (13 Dec) +- Bug report #651460 by Christopher R. Palmer showed that when using libcurl + to for example go over a proxy on localhost, it would attempt to connect + through the proxy TWICE. + + I added test case 503 with which I managed to repeat this problem and I + fixed the code to not re-attempt any connects (which also made it a nicer + fix for the #650941 bug mentioned below). + + The sws server was extended to deal with CONNECT in order to make test + case 503 do good. + +- Evan Jordan posted bug report #650989 about a memory leak in the public key + retrieving code. He provided a suggested fix and I merely applied it! + +- Bug report #650941, posted by Christopher R. Palmer identified a problem + with the multi interface and getting file:// URLs. This was now fixed and + test case 502 was added to verify this. + +Daniel (12 Dec) +- Test case 500 and 501 are the first ever libcurl test cases that run. + +- Made "configure --enable-debug" cut off all -O* options to the compiler + +- Finally fixed the test suite's ftp server so that test case 402 doesn't + cause the following test case to fail anymore! + +Daniel (11 Dec) +- CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows + version perform uploads much faster!!! RBramante did lots of research on + this topic. + +- Fixed the #include in curl/curl.h to include the other files outside the + extern "C" scope. + +Daniel (10 Dec) +- Moved around and added more logic: + + First, POST data is never sent as part of the request headers in the http.c + code. It is always sent the "normal" read callback then send() way. This now + enables a plain HTTP POST to be sent chunked if we want to. This also + reduces the risk of having very big POSTs causing problems. + + Further, sending off the initial HTTP request is not done using a loop + anymore. If it wasn't all sent off in the first send(), the rest of the + request is sent off in the normal transfer select() loop. This makes several + things possible, but mainly it makes libcurl block less when used from the + multi interface and it also reduces the risk of problems with issuing very + large requests. + +Daniel (9 Dec) +- Moved the read callback pointer and data within the structs to a more + suitable place. This in preparation for a better HTTP-request sending code + without (a silly) loop. + +- The Dodds fix seems not to work. + +- Vojtech Janota tests proved that the resolve fix from oct 21st is not good + enough since obviously older glibcs might return EAGAIN without this meaning + that the buffer was too small. + +- [the other day] Made libcurl loop on recv() and send() now until done, and + then get back to select(). Previously it went back to select() more often + which really was a slight overhead. This was due to the reported performance + problems on HTTP PUT on Windows. I couldn't see any notable difference on + Linux... + +Version 7.10.3-pre2 (4 Dec 2002) + +Daniel (4 Dec 2002) +- Lots of work with Malcolm Dodds made me add a temporary code fix that now + shortens the timeout waiting for the 226 or 250 line after a completed + FTP transfer. + + If no data is received within 60 seconds, this is taken as a sign of a dead + control connection and we bail out. + +Daniel (3 Dec 2002) +- Ralph's bug report #644841 identified a problem in which curl returned a + timeout error code when in fact the problem was not a timeout. The proper + error should now be propagated better when they're detected in the FTP + response reading function. + +- Updated the Borland Makefiles. + +Daniel (2 Dec 2002) +- Nicolas Berloquin provided a patch that introduced --create-dirs to the + command line tool. When used in combination with -o, it lets curl create + [non-existing] directories used in -o, suitably used with #-combinations + such as: + + curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \ + -o "dir_#1/pic#2.jpg" --create-dirs + +Version 7.10.3-pre1 + +Daniel (28 Nov 2002) +- I visited Lars Nordgren and had a go with his problem, which lead me to + implement this fix. If libcurl detects the added custom header + "Transfer-Encoding: chunked", it will now enable a chunked transfer. + + Also, chunked transfer didn't quite work before but seems to do so now. + +- Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib + didn't work on any platform... + +Daniel (26 Nov 2002) +- Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere + +- Dan Becker found and fixed a minor memory leak on persistent connnections + using CURLOPT_USERPWD. + +Daniel (22 Nov 2002) +- Based on Ralph Mitchell's excellent analysis I found a bug in the test suite + web server (sws) which now lets test case 306 run fine even in combination + with the other test cases. + +- Juan Ignacio Hervás found a crash in the verbose connect message that is + used on persistent connections. This bug was added in 7.10.2 due to the + rearranged name resolve code. + +Daniel (20 Nov 2002) +- Kjetil Jacobsen provided a patch that introduces: + + CURLOPT_PRIVATE stores a private pointer in the curl handle. + + CURLINFO_PRIVATE retrieves the private pointer from the curl handle. + +- Karol Pietrzak pointed out how curl-config --cflags didn't output a good + include dir so I've removed that for now. + +Version 7.10.2 (18 Nov 2002) + +Daniel (11 Nov 2002) +- Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl + properly build with MSVC on Windows. + +Daniel (8 Nov 2002) +- Doing HTTP PUT without a specified file size now makes libcurl use + Transfer-Encoding: chunked. + +Daniel (7 Nov 2002) +- Bug report #634625 identified how curl returned timeout immediately when + CURLOPT_CONNECTTIMEOUT was used and provided a fix. + +Version 7.10.2-pre4 (6 Nov 2002) + +Daniel (5 Nov 2002) +- Lehel Bernadt found out and fixed. libcurl sent error message to the debug + output when it stored the error message. + +- Avery Fay found some problems with the DNS cache (when the cache time was + set to 0 we got a memory leak, but when the leak was fixed he got a crash + when he used the CURLOPT_INTERFACE with that) that had me do some real + restructuring so that we now have a reference counter in the dns cache + entries to prevent an entry to get flushed while still actually in use. + + I also detected that we previously didn't update the time stamp when we + extracted an entry from the cache so that must've been a reason for some + very weird dns cache bugs. + +Version 7.10.2-pre3 + +Daniel (31 Oct 2002) +- Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It + turned out this didn't help though.) + +- Disable the DNS cache (by setting the timeout to 0) made libcurl leak + memory. Avery Fay brought the example code that proved this. + +Version 7.10.2-pre2 + +Daniel (28 Oct 2002) +- Upgraded to autoconf 2.54 and automake 1.7 on the release-build host. + +- Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment + variable (if --cacert isn't used) and if not set, the Windows version will + check for a file named "curl-ca-bundle.crt" in the current directory or the + directory where curl is located. That file is then used as CA root cert + bundle. + +- Avery Fay pointed out that curl's configure scrip didn't get right if you + used autoconf newer than 2.52. This was due to some badly quoted code. + +Version 7.10.2-pre1 + +Daniel (23 Oct 2002) +- Emiliano Ida confirmed that we now build properly with the Borland C++ + compiler too. We needed yet another fix for the ISO cpp check in the curl.h + header file. + +- Yet another fix was needed to get the HTTP download without headers to work. + This time it was needed if the first "believed header" was read all in the + first read. Test 306 has not run properly since the 11th october fix. + +Daniel (21 Oct 2002) +- Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8 + machines (running IPv6 disabled). Mats Lidell let me use an account on his + machine and I could verify that gethostbyname_r() has been changed to return + EAGAIN instead of ERANGE when the given buffer size is too small. This is + glibc 2.2.93. + +- Albert Chin helped me get the -no-undefined option corrected in + lib/Makefile.am since Cygwin builds want it there while Solaris builds don't + want it present. Kevin Roth helped me try it out on cygwin. + +- Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when + the ../ support got in (7.10.1). + +Daniel (18 Oct 2002) +- Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in + the multi interface. + +Daniel (17 Oct 2002) +- Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't + work quite as supposed. You needed to set it *before* you use + CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies. + +Daniel (15 Oct 2002) +- Andrés García provided corrections for erratas in four libcurl man pages. + +Daniel (13 Oct 2002) +- Starting now, we generate and include PDF versions of all the docs in the + release archives. + +Daniel (12 Oct 2002) +- Trying to connect to a host on a bad port number caused the multi interface + to never return failure and it appeared to keep on trying forever (it just + didn't do anything). + +Daniel (11 Oct 2002) +- Downloading HTTP without headers didn't work 100%, some of the initial data + got written twice. Kevin Roth reported. + +- Kevin Roth found out the "config file" parser in the client code could + segfault, like if DOS newlines were used. + +Version 7.10.1 (11 Oct 2002) + +Daniel (10 Oct 2002) +- Jeff Lawson fixed a few problems with connection re-use that remained when + you set CURLOPT_PROXY to "". + +Daniel (9 Oct 2002) +- Craig Davison found a terrible flaw and Cris Bailiff helped out in the + search. Getting HTTP data from servers when the headers are split up in + multiple reads, could cause junk data to get inserted among the saved + headers. This only concerns HTTP(S) headers. + +Daniel (8 Oct 2002) +- Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER + is set internally, the error text is sent to the debug function as well. + +- I fixed the telnet code to timeout properly as the option tells it to. On + non-windows platforms. + +Daniel (7 Oct 2002) +- John Crow pointed out that libcurl-the-guide wasn't included in the release + tarball! + +- Kevin Roth pointed out that make install didn't do right if build outside + the source tree (ca-bundle wise). + +- FOLLOWLOCATION bugfix for the multi interface + +Daniel (4 Oct 2002) +- Kevin Roth got problems with his cygwin build with -no-undefined was not + present in lib/Makefile.am so I put it back in there again. The poor one who + needs to remove it again must write a configure script to detect that need. + +- Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./ + or ../ stuff in the string passed back in a Location: header when following + locations. + +- Albert Chin helped me to work out a better configure.in check for zlib, and + both --without-zlib and -with-zlib seem to work rather well right now. + +- Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to + become more accurate. + +Daniel (1 Oct 2002) +- Detlef Schmier pointed out the lack of a --without-libz option to configure, + so I added one. + +Version 7.10 (1 Oct 2002) + +Daniel (30 Sep 2002) +- Modified the curl_version_info() proto and returned struct once again, and + updated the man page accordingly. + +- Cris Bailiff found out that the pre-releases crashed on name lookups on + names such as "a:" or "baz:" (on Linux versions not being IPv6-enabled) due + to some weird return codes from gethostbyname_r(). I'll blame the complete + lack of docs in that department. Cris provided a fix, which I modified only + slightly. + +Daniel (27 Sep 2002) +- After a suggestion from Christian Kurz to Debian curl package maintainer + Domenico Andreoli, I made it possible to override the proxy environment + variables better. Now, by setting -x "" you can explicitly tell libcurl to + not use a proxy, no matter whan the environment variables say. + +Version 7.10-pre4 + +Daniel (26 Sep 2002) +- Extended curl_version_info() more and wrote a man page for it. + +Daniel (25 Sep 2002) +- libcurl could leak memory when downloading multiple files using http ranges, + reported and fixed by Jean-Luc Guevel. + +- Walter J. Mack provided code and docs for the new curl_free() function that + shall be used to free memory that is allocated by libcurl and returned back + to the application, as curl_escape() and curl_unescape() do. + +- Yarram Sunil pointed out a flaw in the multi interface where a failed + connection didn't close down properly and thus a second transfer using the + same handle failed. + +- Andrés García fixed a flaw that made (among other things) dict-fetches + return a random value. + +Daniel (24 Sep 2002) +- Wez Furlong brought his initial patch that introduced curl_version_info(). + We might need to tweak it somewhat before release. + +Daniel (20 Sep 2002) +- Craig Markwardt fixed another Tru64 IP resolve problem. + +Daniel (19 Sep 2002) +- Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes + in the same style other code does. + +- Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs + and -C - was used. The first file's resume position was then accidentally + reused on all the other files too. + +Daniel (18 Sep 2002) +- The curl_easy_setopt.3 man page was greatly modified and the options have + now been grouped in logical groups so that it should be somewhat easier to + read it and find things you search for. + +Daniel (13 Sep 2002) +- Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't + send any headers back, only raw content. Right, that is a violation of the + standard but still happens at times and we need to deal with it. Test case + 306 was added to verify that we do right now. + +Version 7.10-pre3 + +Daniel (11 Sep 2002) +- Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header + when you specified the URL with an IPv6 IP-address. + +Daniel (4 Sep 2002) +- Sven Neuhaus made --silent being acknowledged even when multiple URLs + were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc + even when told to shut up. + +Daniel (3 Sep 2002) +- Updated all source code headers to use MIT-license references only, and + point to the COPYING file and the http://curl.haxx.se/docs/copyright.html + URL. I've cut out all references to MPL that I could find. + +- Corected the makefiles to not always use -lz when linking + +Version 7.10-pre2 + +Daniel (2 Sep 2002) +- James Gallagher added Content-Encoding support to libcurl so now curl and + libcurl-using apps can request compressed contents using the 'deflate' + method. See the special file lib/README.encoding for details. + + curl --compressed is now used to request compressed contents. + + curl-config --feature will include 'libz' if this feature was around when + the library was built. + +Daniel (30 Aug 2002) +- Applied an anonymous SOCKS5-proxy patch. Not properly working in all + situations though, as all getaddrinfo()-using libcurls will fail on this. + This is because of the somewhat naive way the current code tries to extract + the IP address of the proxy. + +- Fixed up the SSL cert fixes from the other day even more after more inputs + from Cris. Added three new SSL error codes to make the + CURLE_SSL_CONNECT_ERROR slightly less overloaded. + +Daniel (27 Aug 2002) +- After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I + decided to talk the bold path and I now made libcurl do CA certificate + verification by default. Thus library users need to explicitly turn this off + if you want to connect to sites without proper checking. We also install a + CA cert bundle on 'make install' now. + + The curl tool now requires the -k/--insecure option in order to allow + connections and operations on SSL sites that aren't properly verified with + -cafile or --capath. + + curl-config --ca displays the built-in path to the CA cert bundle. + +Daniel (26 Aug 2002) +- Andrew Francis cleaned up some code that now compiles fine without the need + for ugly MSVC pragmas. + +- Keith MacDonald found a minor bug in src/main.c that made it close stdin + instead of the actual file handle. It shouldn't have resulted in much + trouble as most operating systems close all file handles on process exit + anyway. + +Daniel (22 Aug 2002) +- Markus Oberhumer provided some documentation for his previously provided + CURLOPT_NOSIGNAL fix. + +- Patched the lib/Makefile.am to hopefully no longer complain on undefined + symbols that seemed to occur on builds with shared OpenSSL libraries on + Solaris lately... + +Daniel (20 Aug 2002) +- Fixed compiler warnings on MSCV++ compiles. We're looking for help here: + remove the pragmas from lib/config-win32.h and adjust the sources where + the warnings occur. Hiding them with pragmas like this is not the correct + way of dealing with compiler warnings. + +Daniel (13 Aug 2002) +- Ulrich Zadow made the global include files in curl/* include themselves + using "curl.h" instead of which thus allows people to more + freely decide how to include curl and how to setup their include paths. + +- Sterling Hughes added the curl_share* interface, somewhat as discussed + previously. + +- Jörn Hartroth pointed out that poll() was used in the pre1 source code and + it isn't very portable, so now I check for it in the configure script and + work around it. + +Version 7.9.9-pre1 + +Daniel (12 Aug 2002) +- Applied my initial take on making the multi stuff more asynchronous. Connects + should now return back without "hanging" until it has connected for real. + This should also be the case for FTP-PASV connects. + +Daniel (9 Aug 2002) +- Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL, + which effectively prevents libcurl from doing anything that may cause + signals to get sent. This is basicly for multi-threaded applications that + now can use timeouts properly, without risking any signals to burst in and + ruin the party. + +Daniel (5 Aug 2002) +- Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't + work. When did that code vanish? Anyway, it's back again now and seems to + work! + +- Jonatan Lander found out that POSTing an empty string didn't work with the + command line tool. + +Daniel (3 Aug 2002) +- Jörn Hartroth fixed the libcurl.def file to build the windows DLL with + the multi interface enabled. + +Daniel (1 Aug 2002) +- The ftp PORT command now uses a better default IP address, as it will + extract and use the local IP address used by the control connection. + +- Modified the #include lines in curl/multi.h to work better on more + platforms. + +Daniel (31 Jul 2002) +- Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve + problems. + +Daniel (30 Jul 2002) +- Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler + and don't get __STDC__ defined, which required us to extend the preprocessor + check for the ## operator usage. + +- Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the + internal default function will be put back. + +- danfuzz at milk.com found out that libcurl badly assumed a space after + 'Set-Cookie:' so if it wasn't present, it caused the first letter of the + cookie name to fall off! + +Daniel (29 Jul 2002) +- The password prompt asking for user password used stdout and now uses + stderr instead to better allow redirecting. It also leaked a fopen() file + handle that is now fixed. + +Daniel (28 Jul 2002) +- HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out + by M T. + +Daniel (26 Jun 2002) +- Glen Nakamura solved a crash in the name resolving function for IP-only + addresses on Alpha Linux (at least). + +- T. Bharath corrected the high resolution timer introduced in 7.9.8. + +Daniel (22 Jun 2002) +- Andrés García pointed out man page errors in curl_formadd.3. I fixed. + +Daniel (19 Jun 2002) +- Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer + tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes + are translated by curl_unescape(). + +Daniel (15 Jun 2002) +- Added --limit-rate to the curl tool. Allows the user to set a maxmimum + upper limit to how much bandwidth to use for transfers. + +- CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the + receive buffer in libcurl. The main point of this would be that the write + callback gets called more often and with smaller chunks. + +Daniel (14 Jun 2002) +- Yarram Sunil found out that the SocketIsDead() function performed a lot + faster on Windows when removing the 1 microsecond timeout. + +- Hanno L. Kranzhoff fixed the VC++ project files. + +- Tom Mattison found out that ftp transfers closed the connection a little + too often. + +- Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how + to disable specific protocols when building for Windows. + +Version 7.9.8 + +Daniel (13 Jun 2002) +- Time to let this baby go. + +Daniel (12 Jun 2002) +- Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER, + CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH. They are used to create a + multipart that appears as a regular file upload, but the data is provided + with a pointer and length. + +- Nico Baggus made the VMS version use sigsetjmp() too. + +- Jörn Hartroth fixed the mingw32 build using the mm lib. + +- Applied patches by Kris Kennaway that correct format string problems in + lib/ftp.c and lib/ldap.c. + +Version 7.9.8-pre3 + +Daniel (11 Jun 2002) +- James Cone brought the idea of using sigsetjmp() in the signal handler to + make the time-out of name lookups to work, even when the underlying name + resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for + this may be a bit drastic, and also not likely to exist on all platforms. I + added careful checking for this in the configure script, even checks for it + being a macro (which seems to be the case in for example Linux). + + sigsetjmp() seems to be mentioned in the Single Unix specification. + +- Miklos Nemeth brought a patch that allows libcurl to get built with specific + protocols disabled. This is done by running ./configure + --disable-[protocol]. + +- FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now + make precautions to not return this for range downloads. + + Added test case 135 that makes an ftp range download. Had to tweak the + runtests.pl script a bit too. + +- Bug report #566835 identified a strlen() on a NULL pointer. Added additional + check to prevent this. + +Daniel (10 Jun 2002) +- Found and corrected a connect failure problem that didn't create a human + error text. + +- Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser + and comments from Götz Babin-Ebell. + +- Gautam Mani found a socket descriptor leak that happened when FTP transfers + failed and you reinvoked curl_easy_perform(). + +Daniel (5 Jun 2002) +- Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no + matter when you decide to remove the CURL handle. + +- HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it + makes windows builds stop complaining about "weak seeding" when it in fact + isn't. + +- Another 64bit architecture crash that was introduced in 7.9.7 was now + removed, as bug report #564585 clarified. This happened due to our attempts + to only allocate only as much memory as is actually needed for name + resolving (using realloc) which called for a function that could 'move' a + hostent struct in memory. + +Version 7.9.8-pre2 + +Daniel (3 Jun 2002) +- T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and + made the CURLINFO_REQUEST_SIZE return the correct total request size. He + also made the win32 timers use higher resolution than before. + +Daniel (29 May 2002) +- Renaud Chaillat made me aware of the fact that libcurl returned an error if + you tried to get an empty FTP file. This seemed like a wrong thing to do, so + now it no longer does that! I just hope that no one built anything fancy + upon this unexpected behavior... + +Daniel (28 May 2002) +- Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but + specifies a path to a directory with certificates rather than a single file + with them all concatenated. --capath was added to the command line tool + for the same function. + + Windows users need to pay attention that the directory should be setup with + the c_rehash tool of the OpenSSL package, and that creates symlinks by + default that need to be replaced with actual copies to work on Windows. + +- Gustaf Hui provided new code that changes how curl_multi_info_read() + messages are stored, so that they don't have to be kept around for the multi + handle's entire life time. He also made it return failure codes properly + which it didn't do before. + +Daniel (27 May 2002) +- Gustaf Hui pointed out that running curl_multi_perform() without doing + curl_multi_fdset() first was not really a working combo. I added an internal + check for this and have some extra select() code without timeout to make the + library internals work identically nevertheless. We might need to somehow + either document that once you've used the *_fdset() you should remain using + them in select() or you should blank them somehow so that libcurl won't go + crazy. + +Version 7.9.8-pre1 + +Daniel (22 May 2002) +- James Cone brought an excellent patch, including several tests and docs! + CURLOPT_NETRC now takes an enum as argument instead of the previous boolean. + --netrc-optional was introduced as an addition to --netrc to allow the + command line client to take use of all that new netrc stuff. + +- Bug report #558888 showed a case where libcurl re-used the previous host + name when a connection over a proxy was re-used but to a different target + host. + +Daniel (21 May 2002) +- Edin Kadribasic helped me sort out a problem to made libcurl crash when + trying to HTTP POST an empty string. + +- Clarified that Juergen Wilke donated the original tests/server/sws.c code. + +- Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named + CURLFORMcode instead of the previous 'int', and the various return codes are + now globally exported. It allows applications to better figure out what goes + wrong when curl_formadd() returns errors. + +Daniel (20 May 2002) +- Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file() + is prefered to SSL_CTX_use_certificate_file(). + +Daniel (17 May 2002) +- Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd + after my AIX fixes the other week. + +- Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in + the DNS struct realloc stuff. Actually, this crash could happen on all + systems that made the pack_hostent() function get invoked. + +- I removed several compiler warnings in the test suite's HTTP server. + +Version 7.9.7 + +Daniel (10 May 2002) +- Kevin Roth adjusted the --trace-ascii output slightly. + +- Paul Harrington found out that src/writeout.c needed an additional header + file included for AIX builds + +Version 7.9.7-pre2 + +Daniel (7 May 2002) +- Updated the man page with --trace-ascii and -j/--junk-session-cookies. + +- Made --trace-ascii do pretty much the same as --trace but without the hex + part in the output. + +- Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session + cookies read from a file. This option is enforced by the curl command line + tool using the new -j/--junk-session-cookies option. After discussions with + Kevin Roth. This makes it easier to use curl to fully emulate a browser's + behavior, even when it comes to "session cookies". Session cookies are + cookies that a normal browser discards when the browser is shut + down. They're identified by not having any expire date/time. + +- When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and + this was discovered when --trace was made to crash. + +- Using -v and --trace at the same time confused matters. -v is now pretty + much ignored when --trace or --trace-ascii is used. + +- Made --trace (and --trace-ascii) support - as file name to pass output to + stdout instead. It makes it consistent with how other options work. + +Version 7.9.7-pre1 + +Daniel (6 May 2002) +- Added multi-post.c to the examples directory. I got the basic source for + this from Gustaf Hui. + +Daniel (3 May 2002) +- CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and + can be used to figure out the maximum buffer size your write callback can + get. + +- CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is + an alias for CURLOPT_FILE. These two were added for conformity. Most other + callback function's userdata are provided with options using a similar name- + scheme. + +- Added "--trace [file]" to the command line tool. It makes a very detailed + trace dump get stored, with a full protocol dump that includes all received + and transmitted data. This could be a very effective tool for debugging what + goes wrong. This dump includes every byte the way it is sent to/received + from the server. The dump is the plain-text version, so SSL transfers will + still be readable. + +- I found out that the DEBUGFUNCTION was not called properly everywhere as we + wanted it to. I fixed it. + +- -D now stores all headers to the same file if multiple URLs are given on the + command line! Kevin Roth made me aware of that it didn't already do this! + +- Gustaf Hui wrote an excellent formpost example that used the multi + interface. Unfortunately, it didn't work due to several bugs in how + transfers were made when the multi interface was used. + +Daniel (2 May 2002) +- Hanno Kranzhoff found out that when doing multiple transfers on the same + easy handle, the progress meter would show a bad "currently downloaded + value" when the transfer starts. + +Daniel (1 May 2002) +- Applied another patch by Jacky Lam to make the name resolve info realloc() + stuff work properly. + +Daniel (28 April 2002) +- curl_multi_info_read() is now implemented! + +Daniel (27 April 2002) +- Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS. + +- I think I fixed the DNS cache prune crach Jacky Lam found and reported. + +- I cleaned up the name prefix stuff in the hash and llist modules. + +- FTP responses should now be better on timing out properly. The timeout value + is maximum timeout for the entire request operation, but before this, the + timeout was used as a maximum allowed time between two reads... + +Daniel (26 April 2002) +- Fixed the test suite http server to not use snprintf() anymore due to better + portability. + +Daniel (25 April 2002) +- With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't + cause problems since the pruning is only checking the entry time, and it + sure could cause problems. Therefor, I've now added and changed code so that + this should not be a problem. Nowhere in the code will be store name + resolved information around so that a sunsequent DNS cache prune should + cause a problem. This of course called for some mild internal changes. + +Daniel (23 April 2002) +- Improved the 'no_proxy' check, as using port numbers in the URL confused it + previously. Reported by Erwan Legrand in bug report #547484. + +- The --interface option now works even on IPv6 enabled builds. Reported by + 'thor'. + +Daniel (22 April 2002) +- The #defines names starting with TIMECOND now has CURL_ prefixes. (The old + names are still #defined too.) Pointed out by Robert Olson. + +- Jacky Lam brought code that lets the name resolve function only use as much + memory as it actually needs. This only works on certain operating systems, + but is totally transparant to all users. + +Daniel (19 April 2002) +- Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers. + +Daniel (18 April 2002) +- Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam + experienced very big caches. + +Daniel (17 April 2002) +- Dirk Manske patched the 301 response to work against the RFC but more like + common browsers do. If a POST get a 301 back, it'll switch to GET in the + next request (if location-following is enabled). + +Daniel (16 April 2002) +- Dirk Manske posted a patch originally written by Ingo Wilken that introduced + two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and + CURLINFO_REDIRECT_COUNT. + +Daniel (15 April 2002) +- Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to + reflect reality better, like when the first request isn't POST and when + the second isn't GET... :-) + +- Craig Davison pointed out that when curl_formadd()ing a file that doesn't + exist, libcurl doesn't return error. Now, curl_easy_perform() will return + CURLE_READ_ERROR if that is the case. Test 41 was added to verify this. + +Version 7.9.6 + +Daniel (14 April 2002) +- Dirk Manske brought a fix that makes libcurl strip off white spaces from the + beginning of cookie contents. + +- Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define. + Moonesamy pointed out the problem, Bjorn Reese the solution. + +Version 7.9.6-pre5 + +Daniel (12 April 2002) +- Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously + FTP transfers got the "connect done" time set after the initial FTP commands + and not directly after the TCP/IP connect as it should. + + I also made the time stamp get set even if the connect itself fails, which + it didn't do previously. + +- Jean-Philippe Barrette-LaPierre provided his patch that introduces + CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a + callback to receive debug/information data. That includes headers and data + that is received and sent. CURLOPT_VERBOSE still controls it. + + By default, there is an internal debugfunction that will make things look + and work as before if not changed. + +Daniel (10 April 2002) +- Sebastien Willemijns found out that -x didn't use the default port number as + is documented. It does now. + +- libcurl-errors.3 is a new man page attempting to document all libcurl error + codes + +- Added two new error codes and changed the behaviour of two old ones + slightly: + + CURLE_WRITE_ERROR + This error was returned *both* for errors that occured when writing + received data to a local file, as well as when we get problems writing data + to a remote server. CURLE_SEND_ERROR has now been added for the latter + error. + + CURLE_READ_ERROR + This error was similarly returned *both* for errors when reading a local + file, as well as when getting problems when reading network data. + CURLE_RECV_ERROR has now been added for the latter error. + + (Two test cases were adjusted accordingly.) + +Daniel (9 April 2002) +- runtests.pl now sets the HOME variable before running curl, to prevent any + actual ~/.curlrc file to fool the tests! + +Version 7.9.6-pre4 + +Daniel (8 April 2002) +- Michael Curtis provided new functionality for curl on some platforms. Using + the --environment option, curl will *set* a bunch of environment variables + to values. The names are the same ones as for the -w/--writeout option. + + For now, this only works on the RISC OS version, as this feature relies on + both OS support and that it matches OS paradigms. + +- Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0 + and 304, I edited it slightly. + +Daniel (5 April 2002) +- As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called + when used in windows), is now loaded from the current directory if the HOME + environment variable isn't set (or if it is too long). I also enlarged the + array used to store the full file path in, to 512 bytes. + +- Kevin Roth pointed out to me why the "19 March" change regarding -G and -I + was stupid and the change was reverted. Added test case 48 to verify the + functionality. + +Version 7.9.6-pre3 + +Daniel (4 April 2002) +- Jonatan Lander brought a patch that makes curl/curl.h compile nicely on + pre-ISO compilers, like when using gcc -traditional. + +Daniel (3 April 2002) +- Jacky Lam identified a glitch when getting headers-only, where libcurl would + "hang" 1 second in vain in the select() loop before returning back. + +- Tor Arntsen brought a patch for multipart formposts. It turned out that the + "CGI_Lite Perl package" makes some bad assumptions on what letters that may + be used in boundary strings and thus curl could confuse it by including '+' + and '/'. While this is standards-compliant, we change the behavior to work + smoothly with existing software based on that package. + +Daniel (2 April 2002) +- Gerhard Herre filed bug report #536238 where he pointed out a crash in + verbose FTP passive transfers for AIX. + +- Clarence Gardner pointed out a minor flaw in how libcurl didn't properly + take care of all errors that SSL_read() could return. + +- Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c + +Daniel (27 March 2002) +- T. Bharath pointed out a flaw in the connection re-use function that didn't + check proxy connections properly for "deadness" before they were re-used. + +- Pedro Neves found out that HTTP POSTing with --data-binary did not properly + work under Windows as the file specified wasn't read fully binary! + +Daniel (25 March 2002) +- Jacky Lam brought a fix that improves treatment of cookies using identical + domains but with leading dots properly. + +Daniel (22 March 2002) +- Miklos Nemeth updated the windows section of the docs/INSTALL file and the + windows makefiles. + +- Jon Dillon provided us with several good-looking curl images for + promotion. View them here http://curl.haxx.se/icons.html + +Daniel (20 March 2002) +- Peter Verhas found out that CRLF replacement in uploads was not working. I + fixed it, and added test case 128 that verifies the functionality. + +- The list formerly known as curl-main is now named curl-users and is hosted + by sourceforge. Susbcribe to the new list, get off the old one. + +Version 7.9.6-pre2 + +Daniel (19 March 2002) +- Made -G and -I on the same command line cause an error. + +- Moved the multi.h file to the "public" include directory and made it get + included by curl.h so that no extra include files will be necessary to use + it. + + Added docs and man pages for the multi interface to the release archive. + Added the three example source codes too. + + Necessary steps in my campaign to sneak in the multi interface... ;-) + +- Updated the year in all copyright notices in all C and H files. + +Daniel (18 March 2002) +- Tomas Szepe found out that -d and -G didn't mix as they should. I broke this + in 7.9.5... Added test case 32 for this. + +Version 7.9.6-pre1 + +Daniel (16 March 2002) +- Peter Verhas pointed out that the curl_escape and curl_unscape man pages + contained factual errors. + +- Albert Choy found and corrected a problem with the verbose output when doing + PASV ftp transfers. It could make libcurl crash. + + Details in bug report #530562: + http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976 + +Daniel (15 March 2002) +- Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out + the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6 + capability! That patch is now reverted. + + The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled + hosts are instead made by first checking if the stack is IPv6-enabled and if + not, the PF_INET is used and otherwise we go with the full PF_UNSPEC. + +- T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION + as described in the man page, libcurl did not return the documented error + code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is + now corrected. + +Daniel (14 March 2002) +- Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST- + data from the callback. + +- The GOPHER support seems to be broken. I don't think I'll even start fixing + it until someone else finds out... :-) + +Daniel (13 March 2002) +- Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)" + string. If such a file would be present, curl returned the size of it! Now + we prevent this. + +- Curl_sendf() was fixed to deal with situation where Curl_write() would've + blocked and thus return -1. + +- Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function. + +- All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the + CURLFORM_ARRAY itself. This was necessary since we couldn't expand the + CURLFORM_* list proprely and unrestricted until this was the case. It was + also a bit peculiar to users why some options could be used in an array + while others couldn't. + +- Removed some silly CRLF lines that had accidentally slipped into src/main.c + Nico Baggus pointed them out to me. + +Daniel (11 March 2002) +- CURLFORM_FILENAME was added. This can be set when creating a file upload + part, to set the 'filename' field to a custom value. If this isn't used, + the actually used filename will be included instead (as libcurl always has + done). curl was adjusted accordingly, and now -F accepts a 'filename=' field + too, and allows constructs such as: + + -F 'name=@filename;filename=/dev/null' + + and this can be combined with type= too, in a manner similar to: + + -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar" + + Test case 39 was added to verify this functionality. + +- The struct formerly known as HttpPost is now named curl_httppost to properly + use the curl name space. I added a #define for the old name to make existing + programs compile even when this new include file is used. + +Daniel (8 March 2002) +- Clifford also discovered that if the client code failed early, as when doing + "curl -O" only, it would do fclose(NULL) which caused a segmentation fault + on some systems. + +- Clifford Wolf provided a patch that made --progress-bar work again. + +- I closed bug report #527032 by making sure that we add a newline after a + transfer when --progress-bar has been used. Before, without the newline, it + made the subsequent text come out wrong. + +Version 7.9.5 + +Daniel (7 March 2002) +- Added docs/KNOWN_BUGS to the release archive. + +Daniel (6 March 2002) +- Kevin Roth corrected a flaw in the curl client globbing code that made it + mess up backslashes. This was most notable on windows (cygwin) machines when + using file://. + +- Brad provided another fix for building outside the source-tree. + +- Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c + +Daniel (5 March 2002) +- I noticed that the typedef in curl.h for the progress callback prototype was + wrong and thus applications that used it would not get the proper input + data. It used size_t where the implementation actually uses doubles! + + I wish I could blame someone else, but this was my fault. Again. + +Version 7.9.5-pre6 + +Daniel (4 March 2002) +- Cut off the changes done during 2001 from this changelog file and put them + in a separate file (CHANGES.2001), available from CVS of course. + +- I removed the multi directory. The example sources were moved to the + docs/examples directory where they belong. + +- Wrote 7 new man pages for the current functions in the new multi interface. + They're all still pretty basic, but we can use them as a start and add more + contents to them when we figure out what to write. The large amount of man + pages for libcurl now present made me decide to put them in a new separate + subdirectory in the docs directory. Named libcurl. + +- Giuseppe Corbelli provided a template file for the EPM package manager, it + gets generated nicely by the configure script now. + +Version 7.9.5-pre5 + +Daniel (1 March 2002) +- Moved the memanalyze.pl script into the tests/ dir and added it to the + release archives. It was previously only present in the CVS tree. + +- Modified the February 17th Host: fix, as bug report #523718 pointed out that + it caused crashes! + +- Nico Baggus added more error codes to the VMS stuff. + +- Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE + option. It is just another FTP quote option that allows the user to specify + a list of FTP commands to issue *just before* the transfer command (RETR or + STOR etc). It has turned up a few systems that really need this. + + The curl command line tool can also take advantage of this by prefixing the + quote commands with a plus (+) in similar style that post transfer quote + commands are specified. + + This is not yet documented. There is no test case for this yet. + +Daniel (28 February 2002) +- Ralph Mitchell made some serious efforts and put a lot of sweat in setting + up scripts and things for me to be able to repeat his problems, and I + finally could. I found a problem with the header byte counter that wasn't + increased properly and thus we could return CURLE_GOT_NOTHING when we in + fact had received data. + +Daniel (27 February 2002) +- I had to revert the non-space parsing cookie fix I posted to the mailing + list. Expire dates do have spaces and still need to get parsed properly! + Instead we just ignore trailing white space and it seems to work... + +Daniel (26 February 2002) +- Made the cookie property 'Max-Age' work, just since we already tried to + support it, it is better to do it right. No one uses this anyway. + +- The cookie parser could crash if a really weird (illegal) cookie line was + received. I also made it better discard really oddly formatted lines better. + + Made the cookie jar store the second field from the left using the syntax + that Netscape and Mozilla probably like. Curl itself ignores it. + + Added test case 31 for these cases. + + Clay Loveless' email regarding some cookie issues started my cleanup. + +- Kevin Roth pointed out that my automake fiddles broke the ability to build + outside the source-tree and I posted a patch to the mailing list that brings + this ability back. + +Version 7.9.5-pre4 + +Daniel (25 February 2002) +- Fiddled with the automake files to make all source files in the lib + directory not have ../src in the include path, and the src sources shouldn't + have ../lib! + +- All 79 test cases ran OK under Linux and Solaris using the new HTTP server + in the test suite. The new HTTP server was first donated by Georg Horn and + subsequently modified to work with the test suite. It is currently still not + portable enough to run on "all over" but this is a start and I can run all + curl tests on my machines. This is an important requirement for the upcoming + public release. + +- Using -d and -I on the same command line now reports an error, as it implies + two different HTTP requests that can't be mixed. + +- Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option + support %{content_type} to get the content type of the recent download. + +- Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin, + and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure + out if we could include winsock.h which turns out not to be a wise choice to + do on cygwin since it has the file but can't include it! + +Daniel (22 February 2002) +- Added src/config-vms.h to the release archive. + +- Fixed the connection timeout value again, the change from February 18 wasn't + complete. + +Version 7.9.5-pre3 + +Daniel (21 February 2002) +- Kevin Roth and Andrés García both found out that lib/config.h.in was missing + in the pre-release archive and thus the configure script failed. + +Version 7.9.5-pre2 + +Daniel (20 February 2002) +- Andrés García provided a solution to bug report #515228. the total time + counter was not set correctly when -I was used during some conditions (all + headers were read in one single read). + +- Nico Baggus provided a huge patch with minor tweaks all over to make curl + compile nicely on VMS. + +Daniel (19 February 2002) +- Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the + getaddrinfo() calls, he could speed up some name resolving calls with an + order of magnitudes on his Redhat Linux 7.2. + +- Philip Gladstone found a second INADDR_NONE problem where we used long + intead of in_addr_t which caused 64bit problemos. We really shouldn't define + that on two different places. + +Daniel (18 February 2002) +- Philip Gladstone found a problem in how HTTP requests were sent if the + request couldn't be sent all at once. + +- Emil found and corrected a bad connection timeout comparison that made curl + use the longest of connect-timeout and timout as a timeout value, instead of + the shortest as it was supposed to! + +- Aron Roberts provided updated information about LDAP URL syntax to go into + the manual as a replacement for the old references. + +Daniel (17 February 2002) +- Philip Gladstone pointed out two missing include files that made curl core + dump on 64bit architectures. We need to pay more attention on these details. + It is *lethal* to for example forget the malloc() prototype, as 'int' is + 32bit and malloc() must return a 64bit pointer on these platforms. + +- Giaslas Georgios fixed a problem with Host: headers on repeated requests on + the same handle using a proxy. + +Daniel (8 February 2002) +- Hanno L. Kranzhoff accurately found out that disabling the Expect: header + when doing multipart formposts didn't work very well. It disabled other + parts of the request header too, resulting in a broken header. When I fixed + this, I also noticed that the Content-Type wasn't possible to disable. It is + now, even though it probably is really stupid to try to do this (because of + the boundary string that is included in the internally generated header, + used as form part separator.) + +Daniel (7 February 2002) +- I moved the config*.h files from the root directory to the lib/ directory. + +- I've added the new test suite HTTP server to the CVS repository, It seems to + work pretty good now, but we must make it get used by the test scripts + properly and then we need to make sure that it compiles, builds and runs on + most operating systems. + +Version 7.9.5-pre1 + +Daniel (6 February 2002) +- Miklos Nemeth provided updated windows makefiles and INSTALL docs. + +- Mr Larry Fahnoe found a problem with formposts and I managed to track down + and patch this bug. This was actually two bugs, as the posted size was also + said to be two bytes too large. + +- Brent Beardsley found out and brought a correction for the + CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I + accidentaly broke Giaslas Georgios' patch. + +Daniel (5 February 2002) +- Kevin Roth found yet another SSL download problem. + +Version 7.9.4 + +- no changes since pre-release + +Version 7.9.4-pre2 + +Daniel (3 February 2002) +- Eric Melville provided a few spelling corrections in the curl man page. + +Daniel (1 February 2002) +- Andreas Damm corrected the unconditional use of gmtime() in getdate, it now + uses gmtime_r() on all hosts that have it. + +Daniel (31 January 2002) +- An anonymous bug report identified a problem in the DNS caching which made it + sometimes allocate one byte too little to store the cache entry in. This + happened when the port number started with 1! + +- Albert Chin provided a patch that improves the gethostbyname_r() configure + check on HP-UX 11.00. + +Version 7.9.4-pre1 + +Daniel (30 January 2002) +- Georg Horn found another way the SSL reading failed due to the non-blocking + state of the sockets! I fixed. + +Daniel (29 January 2002) +- Multipart formposts now send the full request properly, including the CRLF. + They were previously treated as part of the post data. + +- The upload byte counter bugged. + +- T. Bharath pointed out that we seed SSL on every connect, which is a time- + consuming operation that should only be needed to do once. We patched + libcurl to now only seed on the first connect when unseeded. The seeded + status is global so it'll now only happen once during a program's life time. + + If the random_file or egdsocket is set, the seed will be re-made though. + +- Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets + curl_easy_getinfo() read the content-type from the previous request. + +Daniel (28 January 2002) +- Kjetil Jacobsen found a way to crash curl and after much debugging, it + turned out it was a IPv4-linux only problem introduced in 7.9.3 related to + name resolving. + +- Andreas Damm posted a huge patch that made the curl_getdate() function fully + reentrant! + +- Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with + CURLOPT_POSTFIELDS. You can now! + +Daniel (25 January 2002) +- Krishnendu Majumdar pointed out that the header length counter was not reset + between multiple requests on the same handle. + +- Pedro Neves rightfully questioned why curl always append \r\n to the data + that is sent in HTTP POST requests. Unfortunately, this broke the test suite + as the test HTTP server is lame enough not to deal with this... :-O + +- Following Location: headers when the connection didn't close didn't work as + libcurl didn't properly stop reading. This problem was added in 7.9.3 due to + the restructured internals. 'Frank' posted a bug report about this. + +Daniel (24 January 2002) +- Kevin Roth very quickly spotted that we wrongly installed the example + programs that were built in the multi directory, when 'make install' was + used. :-/ + +Version 7.9.3 + +Daniel (23 January 2002) +- Andrés García found a persistancy problem when doing HTTP HEAD, that made + curl "hang" until the connection was closed by the server. This problem has + been introduced in 7.9.3 due to internal rewrites, this was not present in + 7.9.2. + +Version 7.9.3-pre4 + +Daniel (19 January 2002) +- Antonio filed bug report #505514 and provided a fix! When doing multipart + formposts, libcurl would include an error text in the actual post if a + specified file wasn't found. This is not libcurl's job. Instead we add an + empty part. + +Daniel (18 January 2002) +- Played around with stricter compiler warnings for gcc (when ./configure + --enable-debug is used) and changed some minor things to stop the warnings. + +- Commented out the 'long long' and 'long double' checks in configure.in, as + we don't currently use them anyway and the code in lib/mprintf.c that use + them causes warnings. + +- Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how + to correct them. Two compiler warnings were removed as well. + +- Andrés García fixed two minor mingw32 building problems. + +Version 7.9.3-pre3 + +Daniel (17 January 2002) +- docs/libcurl-the-guide is a new tutorial for our libcurl programming + friends. + +- Richard Archer brought back the ability to compile and build with OpenSSL + versions before 0.9.5. + [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976] + +- The DNS cache code didn't take the port number into account, which made it + work rather bad on IPv6-enabled hosts (especially when doing passive + FTP). Sterling fixed it. + +Daniel (16 January 2002) +- Georg Horn could make a transfer time-out without error text. I found it and + corrected it. + +- SSL writes didn't work, they return an uninitialized value that caused + havoc all over. Georg Horn experienced this. + +- Kevin Roth patched the curl_version() function to use the proper OpenSSL + function for version information. This way, curl will report the version of + the SSL library actually running right now, not the one that had its headers + installed when libcurl was built. Mainly intersting when running with shared + OpenSSL libraries. + +Version 7.9.3-pre2 + +Daniel (16 January 2002) +- Mofied the main transfer loop and related stuff to deal with non-blocking + sockets in the upload section. While doing this, I've now separated the + connection oriented buffers to have one for downloads and one for uploads + (as two can happen simultaneously). I also shrunk the buffers to 20K + each. As we have a scratch buffer twice the size of the upload buffer, we + arrived at 80K for buffers compared with the previous 150K. + +- Added the --cc option to curl-config command as it enables so very cool + one-liners. Have a go a this one, building the simple.c example: + + $ `curl-config --cc --cflags --libs` -o example simple.c + +Daniel (14 January 2002) +- I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we + only need to address all writes (send) too and then I'm ready for another + pre-release... + +- Stoned Elipot patched the in_addr_t configure test to make it work better on + more platforms. + +Daniel (9 January 2002) +- Cris Bailiff found out that filling up curl's SSL session cache caused a + crash! + +- Posted the curl questionnaire on the web site. If you haven't posted your + opinions there yet, go there and do it now while it is still there: + + http://curl.haxx.se/q/ + +- Georg Horn quickly found out that the SSL reading no longer worked as + supposed since the switch to non-blocking sockets. I've made a quick patch + (for reading only) but we should improve it even further. + +Version 7.9.3-pre1 + +Daniel (7 January 2002) +- I made the 'bool' typedef use an "unsigned char". It makes it the same on + all platforms, no matter what the platform thinks the default format for + char is. This was noticed since we made a silly comparison involving such a + bool variable, and only one compiler/platform combination (on Debian Linux) + complained about it (that happened to have its char unsigned by default). + +- Bug report #495290 identified a cookie parsing problem that was corrected. + When a Set-Cookie: line is received without a trailing semicolon, libcurl + didn't read the last "name=value" pair of the line, leading to confusions... + +- Sterling committed his updated DNS cache code. + +- I worked with Georg Horn and comments from Götz Babin-Ebell and switched + curl's socket operations completely over to non-blocking for the entire + operation (previously we used non-blocking only for the connection phase). + We had to do this to make the SSL connection phase timeout properly without + the use of signals. A little extra code to deal with this was added. + +- T. Bharath pointed out a slightly obscure cookie engine flaw. + +- Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should. + 204-replies never provides a response-body. This resulted in bad persistant + behavior when 204 was received. + +Daniel (5 January 2002) +- SM updated the VC++ library Makefiles for the new source files. + +Daniel (4 January 2002) +- I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in + two places in the source code). One happened with VERBOSE set on connects, + and the other when VERBOSE was on and krb4 over nat was used... I honestly + don't think anyone has suffered from these mistakes. + +- I replaced a lot of silly occurances of printf() to instead use the more + appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were + affected. + +- Philip Gladstone found a few more problems with 64-bit archs (the 64-bit + sparc on solaris 8). + +- After discussions on the libcurl list with Raoul Cridlig, I just made FTP + response lines get passed to the header callback if such a one is + registered. It'll make it possible for any application to get all the + responses an FTP server sends to libcurl. + +Daniel (3 January 2002) +- Sterling Hughes brought a few buckets of code. Now, libcurl will + automatically cache DNS lookups and re-use the previous results first if any + such is available. It greatly improves speed when doing many repeated + operations to the same host. + +- As the test case uses --include and then --head, I had to modify src/main.c + to deal with this situation slightly better than previously. When done, we + have 100% good tests again in the main branch. + +Daniel (2 January 2002) +- Made test case 25 run again in the multi-dev branch. But it seems that the + changes done on dec-20 made test case 104 cease to work (in both branches). + +- Philip Gladstone pointed out a few portability problems in the source code + that didn't compile on 64-bit sparcs using Sun's native compiler. +Daniel (20 December 2001) +- Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause + libcurl to hang on transfers over proxy, when the proxy was specified with + an environment variable! + +- Added code to make ftp operations treat the NO_BODY and HEADERS options + better: + + NO_BODY set TRUE and HEADERS set TRUE: + Return a set of headers with file info + + NO_BODY set FALSE + Transfer data as usual, HEADERS is ignored + + NO_BODY set TRUE and HEADERS set FALSE + Don't transfer any data, don't return any headers. Just perform the set + of FTP commands. + +Daniel (17 December 2001) +- Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and + made libcurl support it! This allows libcurl to do SSL connections with the + private key stored in external hardware. + + To make this good, he had to add a bunch of new library options that'll be + useful to others as well: + + CURLOPT_SSLCERTTYPE set SSL cert type (PEM/DER) + CURLOPT_SSLKEY set SSL private key (file) + CURLOPT_SSLKEYTYPE: set SSL key type (PEM/DER/ENG) + CURLOPT_SSLKEYPASSWD: set the passphrase for your private key + (CURLOPT_SSLCERTPASSWD is an alias) + CURLOPT_SSLENGINE: set the name of the crypto engine + (returns CURLE_SSL_ENGINE_NOTFOUND on error) + CURLOPT_SSLENGINE_DEFAULT: set the default engine + + There are two new failure codes: + + CURLE_SSL_ENGINE_NOTFOUND + CURLE_SSL_ENGINE_SETFAILED + +Daniel (14 December 2001) +- We have "branched" the source-tree at a few places. Checkout the CVS sources + with the 'multi-dev' label to get the latest multi interface development + tree. The idea is to only branch affected files and to restrict the branch + to the v8 multi interface development only. + + *NOTE* that if we get bug reports and patches etc, we might need to apply + them in both branches! + + The multi-dev branch is what we are gonna use as main branch in the future + if it turns out successful. Thus, we must maintain both now in case we need + them. The current main branch will be used if we want to release a 7.9.3 or + perhaps a 7.10 release before version 8. Which is very likely. + +- Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for + curl_formadd(), that lets an application add a set of headers for that + particular part in a multipart/form-post. He also provided a section to the + man page that describes the new option. + +Daniel (11 December 2001) +- Ben Greear made me aware of the fact that the Curl_failf() usage internally + was a bit sloppy with adding newlines or not to the error messages. Let's + once and for all say that they do not belong there! + +- When uploading files with -T to give a local file name, and you end the URL + with a slash to have the local file name used remote too, we now no longer + use the local directory as well. Only the file part of the -T file name + will be appended to the right of the slash in the URL. + +Daniel (7 December 2001) +- Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the + link failed. Added a configure check and corrected source code. + +Version 7.9.2 + +Daniel (5 December 2001) +- Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then + on the same handle used CURLOPT_HTTPGET it would still attempt to upload. + His suggested fix was perfect. + +Daniel (4 December 2001) +- Incorporated more macos fixes and added four specific files in a new + subdirectory below src. + +Daniel (3 December 2001) +- Eric Lavigne reported two problems: + + First one in the curl_strnequal() function. I think this problem is rather + macos 9 specific, as most platform provides a function to use instead of the + one provided by libcurl. + + A second, more important, was in the way we take care of FTP responses. The + code would read a large chunk of data and search for the end-of-response + line within that chunk. When found, it would just skip the rest of the + data. However, when the network connections are special, or perhaps the + server is, we could actually get more than one response in that chunk of + data so that when the next invoke to this function was done, the response + had already been read and thrown away. Now, we cache the data not used in + one call, as it could be useful in the subsequent call. Test case 126 was + added and the test ftp server modified, to exercise this particular case. + +Version 7.9.2-pre8 + +Daniel (2 December 2001) +- Bug report #487825 correctly identified a problem when using a proxy and + following a redirection from HTTP to HTTPS. libcurl then re-used the same + proxy connection but without doing a proper HTTPS request. + +- Fixed win32 compiling quirks. + +Version 7.9.2-pre7 + +Daniel (30 November 2001) +- Documented --disable-epsv and CURLOPT_FTP_USE_EPSV. + +Daniel (29 November 2001) +- Added --disable-epsv as an option. When used, curl won't attempt to use the + EPSV command when doing passive FTP downloads. Wrote a test case for it. + +- Eric provided a few more fixes for building on Macs. He also pointed out + a flaw in the signal handler restoration code. + +Daniel (28 November 2001) +- Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared + only when using VERBOSE ftp transfers. Do we use a too small buffer for + gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the + hostent struct must be blanked before use? With Dimitris help and these + patches, the problems seem to be history. + +- CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl + from using the EPSV command before trying the normal PASV. Heikki Korpela + pointed out that some firewalls and similar don't like the EPSV so we must + be able to shut if off to work everywhere. + +- I added a configure check for 'in_addr_t' and made the ftp code use that to + receive the inet_addr() return code in. Works on Solaris and Linux at + least. The Linux man page for inet_addr() doesn't even mention in_addr_t... + +- Adjusted (almost) all FTP tests to the new command sequence. + +- FTP command sequence changes: + + EPSV is now always attempted before PASV. It is the final touch to make IPv6 + passive FTP downloads to work, but EPSV is not restricted to IPv6 but works + fine with IPv4 too on the servers that support it. + + SIZE is now always issued before RETR. It makes curl know the actual + download size before the download takes place, as it makes it less important + to find the size sent in RETR responses. Many sites don't include the size + in there. + + Both these changes made it necessary to change the test suite's ftp server + code, and all FTP test cases need to be checked and adjusted! + +Daniel (27 November 2001) +- Hans Steegers pointed out that the telnet code read from stdout, not stdin + as it is supposed to do! + +Version 7.9.2-pre6 + +Daniel (27 November 2001) +- Eric Lavigne's minor changes to build on MacOS before OS X were applied. + +- greep at mindspring.com provided a main index.html page for our release + archive docs directory. It just links to all the existing HTML files, but + I think it may come useful to people. + +- There's now some initial code to support the EPSV FTP command. That should + be used to do passive transfers IPv6-style. The code is still #if 0'ed in + lib/ftp.c as I have no IPv6 ftp server to test this with. + +Daniel (26 November 2001) +- Robert Schlabbach had problems to understand how to do resumed transfers, + and I clarified the man page -C section somewhat. + +Version 7.9.2-pre5 + +Daniel (22 November 2001) +- Andrés García helped me out to track down the roots of bug report #479537, + which was concerning curl returning the wrong error code when failing to + connect. This didn't happen on all systems, and more specificly I've so far + only seen this happen on IPv4-only Linux hosts. + +- I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS + port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP + response reader function. The latter write is however likely to occur in our + own buffer unless very big FTP server replies (>25K) are read. I've never + seen such a reply ever, so I think this is a relatively minor risk. + +Daniel (21 November 2001) +- Moonesamy provided code to prevent junk from being output when libcurl + returns an error code but no error description and that corrects how make is + run in the Makefile.dist file (that appears as root Makefile in release + archives). + +- Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS + (non-X). + +- Kevin Roth modified the cygwin files once again, now to build against the + shared OpenSSL DLLs. + +Version 7.9.2-pre4 + +Daniel (20 November 2001) +- Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME, + complete with man page updates! + +Daniel (19 November 2001) +- Miklos Nemeth provided details enough to update the Borland makefile + properly. + +- Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm + amazed we never saw this before! + +- Kevin Roth patched the cygwin Makfile. + +Daniel (16 November 2001) +- Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing + HTTP. + +Version 7.9.2-pre3 + +Daniel (14 November 2001) +- Samuel Listopad patched away the problem with SSL we got when someone call + curl_global_init() => curl_global_cleanup() => curl_global_init(). The + second init would not "take" and SSL would be unusable with curl from that + point. This doesn't change the fact that calling the functions that way is + wrong. curl_global_init() should be called exactly once and not more. + +Daniel (13 November 2001) +- Fixed some minor variable type mixups in ftp.c that caused compiler warnings + on HP-UX 11.00. + +- The FTP fix I did yesterday used an uninitialized variable that caused + spurious errors when doing FTP. + +Version 7.9.2-pre2 + +Daniel (12 November 2001) +- Ricardo Cadime fell over a multiple-requests problem when first a FTP + directory fetch failed and then a second request is made after that. The + second request happened to get the FTP server response back from the + previous request, when it did its initial CWD command. + +- Bjorn Reese pointed out that we could improve the time diff function to + prevent truncation a bit. + +- Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't + work for plain HTTP requests! So I made that work. + +Version 7.9.2-pre1 + +Daniel (12 November 2001) +- Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot + faster, it should also support such ("broken") proxies that John Lask + previously have reported problems with. His proxy sends a trailing zero byte + after the end of the (proxy-) headers. I've tested this myself and it seems + to work on a proxy the previous version also worked with...! This rewrite is + due to the problems John Lask previously experienced. + +- Andrés García found out why the "current speed" meter sometimes showed 2048K + for very quick transfers. It turned out the "time diff"-function returned a + zero millisecond diff. We now always say it is at least one millisecond! In + reality, these timers very rarely have that good resolution so even though + the time diff was longer than 1 millisecond, it was reported as no diff. + +- I also modified the getinfo() again when returning times, as Paul Harrington + reports that 7.9.1 only returns times with 1 second accuracy, which indeed + is wrong. + +Daniel (8 November 2001) +- Marcus Webster found out that curl_formadd() could read one byte outside a + buffer boundary, which then of course could lead to a crash. Marcus also + gracefully provided a patch for this this. + +- Glen Scott ran configure on his Cobalt Qube and it didn't figure out the + correct way of calling gethostbyname_r() and thus failed to resolve hosts. + This is two errors: it shouldn't continue the configure script if it finds + gethostbyname_r() but can't figure out how to use it, and it should really + figure out how to use it as it was running Linux and we know how that + works... + +Daniel (7 November 2001) +- docs/VERSIONS is a new file in the archive that explains the version number + system we use in the curl project. + +- Did some more fixes that now makes libcurl only ignore signals as long as + it needs to, and then restore (if any) previous signal handler again. + +Daniel (6 November 2001) +- Enrik Berkhan posted bug report #478780, in which he very correctly pointed + out two bad timeout matters in libcurl: we didn't restore the sigaction + struct (the alarm handler for SIGALRM) nor did we restore the previous + alarm() timeout that could've been set by a "parent" process or similar. + +- Kevin Roth made the cygwin binary get stripped before install. + +Daniel (5 November 2001) +- Detlef Schmier reported that curl didn't compile using Solaris 8 with the + native cc compiler. It was due to a bad function prototype. Fixed now. + Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds + though, as gcc then complains like crazy on OpenSSL include files... :-( + +- John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking + to work on all platforms. + +- John Lask added the -1/--TLSv1 options that forces SSL into using TLS + version 1 when speaking HTTPS. + +- John Lask brought a brand new VC++ makefile for the lib directory, that + works a lot better than the previous! + +- Ramana Mokkapati brought some clever insights on the LDAP failures (bug + report #475407), and his suggested changes are now applied. + +Version 7.9.1 + +Daniel (4 November 2001) +- I've added a number of new test cases the last few days. A few of them since + I got reports that hinted on problems on timeouts, so I added four tests + with timeouts for all sorts of protocols and stuff. I also came to think of + a few other error scenarios that we currently didn't test properly, so I + wrote up tests for a few of those too. + +Daniel (2 November 2001) +- Replaced read() and write() with recv() and send() for socket operations + even under normal unixes. + +Daniel (1 November 2001) +- When an FTP transfer was aborted due to a timeout, it wasn't really aware of + how many bytes that had been transferred and the error text always said 0 + bytes. I modified this to output the actually transferred amount! :-) + +- The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also + added more comments in the lib/ftp.c source file. + +- Minor updates to the FAQ, added a brand new section to the web site about + the name issue (who owns "curl"? will someone sue us? etc etc): + http://curl.haxx.se/legal/thename.html + +Version 7.9.1-pre7 + +Daniel (31 October 2001) +- The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as + the calculations used longs instead of doubles! Paul Harrington reported. + +- The SSL SocketIsDead() checks weren't good enough (as expected really), so I + had to add a generic internal try-it-out system. If the request on a re-used + connection seems to fail, then we go back and get a new (fresh) connection + and re-tries the request on that instead. It kind of makes the + SocketIsDead() check obsolete, but I think it is a quicker way for those + cases where it actually discovers that the connection is dead. + +- When fixing the above, I noticed that we did quite a few writes to sockets + in libcurl where we didn't check the return code (that it actually worked to + send the data). With the new "attempted request" system we must detect those + situations so I went over a bunch of functions, changed return types and + added checks for what they actually return. + +Version 7.9.1-pre6 + +Daniel (31 October 2001) +- Paul Harrington detected a problem with persistant SSL connections. Or to be + more exact, we didn't properly detect that the connection was dead and then + a second connection would try to re-use it wrongly. The solution to this + problem is still not very clear and I'm working on it. One OpenSSL insider + said there is no way to know if the SSL connection is alive or not without + actually trying an operation. + +Daniel (30 October 2001) +- If a cookie was read from a file, it could accidentally strdup() a NULL + pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26] + +- The MANUAL file now documents -t correctly. I also fixed the -T description + in the curl.1 man page. + +Daniel (29 October 2001) +- John Janssen found out that curl_formadd was missing in the libcurl.def file + and that the docs stated the wrong return type for the function. + +- Andrés García found a bug with multiple files in the curl_formadd() function, + that I removed with this patch [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/formdata.c.diff?r1=1.25&r2=1.26]. + +- Kevin Roth brought another patch that moved the cygwin package files to the + packages/Win32/cygwin directory. + +- A bug in the connection re-use logic made repeated requests to the same FTP + server (when using name+pasword in the URL) sometimes use more than one + connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167] + +- Moonesamy tracked down and fixed a problem with the new 7.9.1 connect + code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release + (test 19)... + [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14] + +Daniel (26 October 2001) +- Added test28 which verifies that "Location:"-following works even if the + contents is separated with more than one space. + +Daniel (25 October 2001) +- Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the + correct data has been output. + +Version 7.9.1-pre5 + +Daniel (24 October 2001) +- T. Bharath found a memory leak in the cookie engine. When we update a cookie + that we already knew about, we lost a chunk of memory in the progress... The + brand new test case 27 now tests for this occurrence. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.24&r2=1.25] + +Daniel (23 October 2001) +- pack_hostent() didn't properly align some pointers, so at least SPARC CPUs + would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35] + +Daniel (22 October 2001) +- Tom Benoist reported that this SGI IRIX compiler didn't handle indented + preprocessor instructions, so they're no longer in the source code! + +- Applied Kevin Roth's patches to make it easier to build cygwin packages from + the out-of-the-box curl release archives. + +- I forgot to mention it below, but libcurl now closes connections that report + transfer failures. Unconditionally. This could be made more nicely in the + future if we set a flag or something that the connection is still good to be + used for the errors that know that for a fact. We have to close the + connection for the cases where we abort for example a HTTP transfer in the + middle, or otherwise we might re-use that connection later with lots of data + still being sent to us on it. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.63&r2=1.64] + +Daniel (19 October 2001) +- CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return + anything, not even a header. test case 37 was added to test for this. + +- T. Bharath made curl_easy_duphandle() properly clone the cookie status as + well. + +Version 7.9.1-pre4 + +Daniel (18 October 2001) +- CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if + the HTTP return code is below 400. + +Daniel (17 October 2001) +- The test suite now kills any running test http server when you re-start the + tests. + +- We had to remove 'use strict' from two perl scripts, as the cygwin + adjustments didn't play nicely otherwise for some reason. Any perl wizard + out there who can put the scrict back and still make it run good on unix and + cygwin? + +- A potential memory leak pointed out to us by Yanick Pelletier was removed. + It would occur when a http file transfer fails. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.60&r2=1.61] + +- The memory debugging system should no longer display anything to stderr + if the curl_memdebug() hasn't been used to explicitly say so. This makes it + easier to use the memory debug system and switch the logging on/off. + +Daniel (16 October 2001) +- Kevin Roth provided fixes for building curl nicer in cygwin environments. + +Daniel (12 October 2001) +- Cleaning up the progress meter/info code. The "current speed" is now more + accurate than before as we now use the true time spent between the measures, + and not just "assuming" every-second-update like before. The output should + now also be of the same width at all times, never to show "extra" zeroes on + the right edge. + +- After talking about possible Location: bugs on the mailing list, I modified + the "absolute URL" checker in lib/transfer.c to be more strict when checking + if the redirected URL is absolute. + +Daniel (11 October 2001) +- Kevin Roth provided patches that make the test suite run fine on Windows + 2000 running cygwin. + +Daniel (10 October 2001) +- Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser. + Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work. + +Version 7.9.1-pre3 + +Daniel (9 October 2001) +- Added a new option to the command line client: -0/--http1.0. It uses the new + libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0 + requests instead of the default version (1.1). It should only be used if you + really MUST do that because of a silly remote server. + +- Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as + all public curl-symbols should. + +- libcurl now explicitly ignores the SIGPIPE signal. + +Daniel (8 October 2001) +- Kevin Roth's change to the cookie-jar comment (in the stored file) was + applied. + +- Lucas Adamski's minor bug in the bind error code failf() was fixed. + +Daniel (5 October 2001) +- Moonesamy fixed the Curl_connecthost() function to not give compiler errors + on a bunch of compilers, due to the argument named 'socket'. + +- Moonesamy also provided updated VC++ makefiles and project files. + +Version 7.9.1-pre2 + +Daniel (4 October 2001) +- Albert Chin provided a configure patch that makes the script detect proper + gethostbyname_r() method without actually running any code, only compiling + is necessary. This also removes the need of having a resolving 'localhost' + name. + +- Found and removed memory leakage (name resolve data) in libcurl on + IPv6-enabled hosts. These could sneak through because we didn't have any + resource tracing on the IPv6-related functions. We do now. + +Daniel (3 October 2001) +- Keith McGuigan patched away a (mainly Windows-) problem with the name + resolver data being kept in the static memory area, which is removed when a + thread is killed. The curl handle itself though perfectly handles being + passed between threads. + +- Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that + required an Authorization: header. Now, proxies are not supposed to require + that header, that is for true servers... + +- I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now. + +Version 7.9.1-pre1 + +Daniel (3 October 2001) +- Georg Huettenegger once again made an effort beyond the call of duty and not + only improved the curl_formadd() function, but also took care of adjusting + the curl command line client to use this new function instead of the + obsoleted curl_formparse. + +Daniel (2 October 2001) +- Major fix in how libcurl does TCP connects. It now does non-blocking + connects to enable good timeouts without signals, and it now tries all IP + addresses for any given host (if it resolves more than one and the first + one(s) don't connect). Added a new source file 'connect.c' to deal with all + the TCP connect stuff. + +- We now support IPv4-style IP-addresses in rfc2732-format, to better support + people writing scripts without knowing what address there is. + +Daniel (28 September 2001) +- Cleanups in the FTP source code. Divided the code into even more smaller + functions and generally tried to make the differences between IPv4 and IPv6 + get less noticable in the sources. + +- If the remote file time is not readable/accessable/understood by libcurl, + libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously + did. This should make curl not touch the file data unless there was a known + remote date when -R is used. + +Daniel (27 September 2001) +- Working on getting non-blocking connects working platform independent. We + will also make curl try all IPs for a given host if the first one should + fail. + +Daniel (26 September 2001) +- Kevin Roth provided a cookie example that proved the cookie jar + functionality wasn't working properly. I added test case 46 and made it + work. + +Daniel (25 September 2001) +- Jörn Hartroth updated the mingw32 makefiles. + +Version 7.9 + +Daniel (23 September 2001) +- Found and removed a 'socket leak' that would occur on IPv6 enabled hosts + when FTP RETR failed. + +- Made the FTP upload tests run fine on machines with IPv6 enabled. + +Version 7.9-pre8 + +Daniel (19 September 2001) +- Vojtech Minarik set up a special-purpose test server and provided me with + test certificates in order for me to repeat the bug reports #440068 and + #440373. It turned out we didn't check all the error codes properly. We do + now, and connecting with a unacceptable certificate will make libcurl fail + to connect with an error code returned. + +- Ramana Mokkapati found a case when the Location: following code did wrong. + I wrote a test case for this (45). + +Version 7.9-pre7 + +Daniel (17 September 2001) +- Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require + winsock 2.0. + +Version 7.9-pre6 + +- libtool 1.4.2 is now in use! + +Version 7.9-pre5 + +Daniel (14 September 2001) +- Added another 14 ftp tests. + +Daniel (13 September 2001) +- Added curl_easy_duphandle() to the easy.h header file. It has now been + tested and proved to work in a real-world tests by T Bharath. We still need + to write up some docs for this function. + +- Added four more ftp tests to the test suite. + +Daniel (12 September 2001) +- CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named + --ciphers. Use them to specify a list of ciphers to use in the SSL + connection. + +- T. Bharath found a memory leak in libcurl's windows version. It turned out + to be the new duphandle() that didn't quite work yet. + +Version 7.9-pre4 + +Daniel (11 September 2001) +- Added verbose output for SSL connections that output the server + certificate's start and expire dates. As suggested by Paul Harrington. + +- Heikki Korpela found problems in the perl ftp server used for the test + suite, when he runs on on OpenBSD with perl 5.6. Some changes have been + made, but nothing really certain. + +- T. Bharath has experienced problems with libcurl's stack usage on windows + and works on reducing it. + +Daniel (10 September 2001) +- Cris Bailiff fixed the perl interface. It stopped working since the changed + behavior with WRITEHEADER and NULL pointers. + +- The "output cookies" function could dump core if no cookies were enabled. + +Daniel (7 September 2001) +- SM pointed out that the SSL code didn't compile any longer if SSL was + disabled... Also, we needed to correct the #include for the utime stuff on + windows. + +Daniel (6 September 2001) +- T. Bharath pointed out a flaw in the SSL session cache code that made it + sometimes read from a NULL pointer. + +Version 7.9-pre3 + +Daniel (3 September 2001) +- Added the -R/--remote-time option, that uses the remote file's datestamp to + set the local file's datestamp. Thus, when you get a remote file your local + file will get the same time and date. Note that this only works when you use + -o or -O. + +- Installed libtool 1.4.1, libtoolized and everything. + +Daniel (1 September 2001) +- Heikki Korpela pointed out that I did not ship the proper libtool stuff in + the pre-releases, even though that was my intention. libtoolize has now + been re-run. + +- Heikki also patched away the bad use of 'make -C' in the test suite + makefile. make -C is not very portable and is now banned from here. + +Version 7.9-pre2 + +Daniel (31 August 2001) +- I just made a huge internal struct rehaul, and all the big internally used + structs have been renamed, redesigned and stuff have been moved around a bit + to make the source easier to follow, more logically grouped and to hopefully + decrease future bugs. I also hope that this will make new functions to get + easier to add, and make it less likely that we have bugs left like the URL- + free bug from August 23. + +Version 7.9-pre1 + +Daniel (29 August 2001) +- The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use + that to specify the file name in which you want to have all cookies curl + knows of, dumped to. It'll be written using the netscape cookie format. + + This is internally done with the new CURLOPT_COOKIEJAR option to libcurl, + which in turn dumps this information when curl_easy_cleanup() is invoked. + There might be reasons to re-consider my choice of putting it there. Perhaps + it is better placed to get done just before *_perform() is done. It is all + of course depending on how you guys want to use this feature... + +- Added ftpupload.c in the source examples section, based on source code posted + by Erick Nuwendam. + +Daniel (28 August 2001) +- Now running libtool CVS branch-1-4 to generate stuff. Should fix problems + on OpenBSD and hopefully on FreeBSD as well! + +- Georg Huettenegger modified the curl_formadd() functionality slightly, and + added support for error code 417 when doing form post and using the Expect: + header. Great work! + +- Made some tests with cached SSL session IDs, and they seem to work. There + should be a significant speed improvement in the SSL connection phase, but + in my tiny tests it just isn't possible to notice any difference. Like other + caching in libcurl, you must reuse the same handle for the caching to take + effect. SSL session ID caching is done on a per host-name and destination + port number basis. + + Set verbose, and you'll get informational tests when libcurl detects and + uses a previous SSL session ID. + +- Upgraded to automake 1.5 on my development/release machine. + +Daniel (27 August 2001) +- Slowly started writing SSL session ID caching code + +Daniel (24 August 2001) +- T. Bharath removed compiler warnings on windows and updated the MS project + files. + +- Kevin Roth reported two kinds of command line constructs with the new -G that + curl didn't really deal with the way one would like. + +- Tim Costello patched away a use of strcasecmp() in the SSL code. We have our + own portable version named strequal() that should be used! + +- Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix + debug object modules causing confusions. + +Daniel (23 August 2001) +- T. Bharath accurately found a libcurl bug that would happen when doing a + second invoke of curl_easy_perform() with a new URL when the previous invoke + followed a Location: header. + +- Started the improvement work on the cookie engine: + - Now keeps cookies in the same order as the cookie file + - A write to the possibly static string was removed + - Added a function that can output all cookies + - Now supports reading multiple cookie files + +- Steve Lhomme corrected a DLL naming issue in the MSVC++ project file. + +- Split up the monster function in lib/ftp.c to use more smallish functions to + increase readability and maintainability. + +Daniel (21 August 2001) +- Georg Huettenegger's big patch was applied. Now we have: + o "Expect: 100-continue" support. We will from now on send that header in + all rfc1867-posts, as that makes us abort much faster when the server + rejects our POST. Posting without the Expect: header is still possible in + the standard replace-internal-header style. + o curl_formadd() is a new formpost building function that is introduced to + replace the now deprecated curl_formparse() function. The latter function + will still hang around for a while, but the curl_formadd() is the new way + and correct way to build form posts. + o Documentation has been updated to reflect these changes + + These changes are reason enough to name the next curl release 7.9... + +- We now convert man pages to HTML pages and include them in the release + archive. For the pleasure of everyone without nroff within reach. + +- Andrés García's suggested flushing of the progress meter output stream was + added. It should make the progress meter look better on Windows. + +- Troy Engel pointed out a mistake in the configure script that made it fail + on many Red Hat boxes! + +Daniel (20 August 2001) +- We need an updated libtool to make a better build environment for OpenBSD + as well as FreeBSD + +Version 7.8.1 + +Daniel (20 August 2001) +- Brad pointed out that we ship two extra libtool files in the tarballs that + we really don't need to! Removing them makes the gz-archive about 60K + smaller! + +- Albert Chin brought fixes for the configure script to detect socklen_t + properly as well as moving lots of our custom autoconf macros to + acinclude.m4. + +Daniel (19 August 2001) +- Moonesamy improved his -G feature for host names only URLs... + +Daniel (17 August 2001) +- Finally cleaned up the kerberos code to use Curl_ prefixes on all global + symbols and to not use global variables. + +Version 7.8.1-pre6 + +Daniel (16 August 2001) +- S. Moonesamy added the -G option to curl, that converts the data specified + with -d to a GET request. Default action when using -d is POST. When -G is + used, the -d specified data will be appended to the URL with a '?' + separator. As suggested previously by Kevin Roth. + +- curl-config --libs should now display all linker options required to link + with libcurl. It includes the path and options for libcurl itself. + curl-config --cflags displays the compiler option(s) needed to compile + source files that use libcurl functions. Basically, that sets the include + path correct. + +Daniel (15 August 2001) +- Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses + were parsed and used. (RFC2732-format) + +- Bug #12733 over on php.net identified a problem in libcurl that made it core + dump if you used CURLOPT_POST without setting any data to post with + CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS + now equals setting it to no data at all. + +- Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work + properly when used for multiple URLs on a single command line. Indeed, the + variable was not reset between the requests. This is now fixed. + +- David James fixed the Borland makefile so that libcurl still compiles and + builds with that compiler. + +Daniel (14 August 2001) +- Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now. + +- An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for + windows users to curl_global_init(), that makes libcurl init the winsock + stuff. If libcurl is all socket stuff you do, then allowing it to fiddle + with this is a comfortable shortcut to fame. + +Version 7.8.1-pre5 + +Daniel (14 August 2001) +- Nico Baggus provided more feedback from his VMS porting efforts and a few + minor changes were necessary. + +- I modified configure.in so that --enable-debug sets more picky gcc options. + I then removed almost all the new warnings that appeared, and by doing so I + corrected the size_t-treated-as-signed problem that has been discussed on + the mailing list previously. I also removed a bunch of the just recently + added #ifdef VMS lines. + +- I removed the use of a global variable in the SSL code. It was once + necessary but hasn't been needed since OpenSSL 0.9.4. The old code should + (hopefully) still work if libcurl is built against an ancient version of + OpenSSL. + +Daniel (13 August 2001) +- Peter Todd posted a patch that now allows non-file rc1867-style form posts + to be larger than 4K. + +Daniel (10 August 2001) +- S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile + +Daniel (9 August 2001) +- The redirected error stream was closed before the curl_easy_cleanup() call + was made, and when VERBOSE was enabled, the cleanup function tried to use + the stream. It could lead to a segmentation fault. Also, the stream was + closed even if we looped to get more files. Corrects Dustin Boswell's bug + report #441610 + +- Now generates the release configure script with autoconf 2.52 + +Version 7.8.1-pre4 + +Daniel (8 August 2001) +- curl -E uses a colon to separate a file name from a passphrase. This turned + out really bad for the windows people who wants to include a drive letter in + the file name like "c:\cert.pem". There's now a win32 work-around + implemented that tries work around that, when the colon seems to be used for + this kind of construct. + +- Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl + verify the server's CN field when talking https://. If --cacert is not used, + any failures in matching is only displayed as information (-v). + +Daniel (7 August 2001) +- Wrote up nine more test cases, more or less converted from the former test + suite. + +Daniel (6 August 2001) +- Heikki Korpela posted a patch that makes 'curl-config --libs' include the + directory in which libcurl itself is installed in. While this wasn't my + initial intention with this option, it makes sense and makes linking with + libcurl easier. + +- Stefan Ulrich pointed out to us that other tools and libraries treat file:// + URLs with only one slash after the host name slighly different than libcurl + does. Since all the others seem to agree, we better follow them. + +- Nico Baggus provided us with a huge set of fixes to make curl compile and + build under OpenVMS. + +Version 7.8.1-pre3 + +Daniel (6 August 2001) +- Jonathan Hseu noticed that you couldn't get a header callback unless you + set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that + data. This is now fixed. + +Daniel (5 August 2001) +- Sergio Ballestrero provided a patch for reading responses from NCSA httpd + 1.5.x servers, as they return really screwed up response headers when asked + for with HTTP 1.1. + +- curl_escape() no longer treats already encoded characters in the input + string especially. + +Daniel (3 August 2001) +- I replaced the former lib/arpa_telnet.h file with one I wrote myself, to + avoid the BSD annoucement clause of the license in the former file. + +- Andrew Francis provided a new version of base64.c to work around the license + boiler plate that came with the previous one. I patched it, but the glory + should go to Andrew for his heads up. + +- Tomasz Lacki noticed that when you do repeated transfers with libcurl you + couldn't always reliably change HTTP request. This has now been fixed and a + new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP + requestr (back) to GET. + +- Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in + release archives. It should be now. + +Daniel (2 August 2001) +- Frank Keeney pointed out a manual mistake for certificate convertions. + +- Tomasz Lacki pointed out a problem in the transfer loop that could make the + select() loop use far too much CPU. + +- Pawel A. Gajda pointed out an output mistake done when using libcurl's + progress callback. + +Daniel (29 June 2001) +- Naveen Noel noticed that the Borland library makefile wasn't updated. + +- Nic Roets brought a fix for the certificate verification when using SSL. + +Daniel (27 June 2001) +- Made the FTP tests run OK even on machines running curl IPv6-enabled. + +- Troy Engel corrected some RPM package details. + +Version 7.8.1-pre2 + +Daniel (25 June 2001) +- Björn Stenberg correctly identified a problem that occurred when downloading + several files with curl, and using resume. The first file's resume index was + then used for all files, resulting in weird results... + +- Anton Kalmykov provided a fix that makes curl work with form field names + with spaces like when -F is used. + +Version 7.8.1-pre1 + +Daniel (20 June 2001) +- Mike Bytnar provided a fine report that proved that the --with-ssl option + for configure needed tweaking. It no longer searches the default directories + for OpenSSL libs or directories when a specified path is given. + +Daniel (19 June 2001) +- When an FTP transfer is cut off during transfer, curl could present a truly + garbaged error message and in worst case dump core. Thanks to detailed + reports from Shawn Poulson we nailed this. + +Daniel (12 June 2001) +- Salvador Dávila provided a fix for FTP range downloads. + +- Added a few more test cases from the former test suite to the new file + format. We're now at a total of 26 tests. + +Daniel (11 June 2001) +- libcurl's version-info was wrong, as noted by both Domenico Andreoli and + David Odin. + +Daniel (7 June 2001) +- Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def + +- I made SSL certificate failure messages to be more detailed. + +Version 7.8 + +Daniel (7 June 2001) +- SDavila provided a resumed download fix. + +Version 7.8-pre4 + +Daniel (1 June 2001) +- Sterling provided some new PHP examples. + +- Changed the CVS hierarchy and the older checkout instruction does no longer + work. We moved the entire source code into a CVS module named 'curl'. + +Daniel (31 May 2001) +- CURLOPT_MUTE does not exist anymore. It is still present in the include file + to not cause compiler errors for applications using it, but it isn't used + anywhere in the library. + +Version 7.8-pre3 + +Daniel (31 May 2001) +- Once and for all fixed the _REENTRANT mess for Solaris compiles to present + less warnings. + +- Sterling Hughes tirelessly points out and corrects my mistakes...! So, + curl_global_init() now lets the argument flags *SET* what parts to + init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all + known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely + necessary. Man page updated accordingly. + +- Fixed the strtok.h include file as it wouldn't compile on all platforms! + +Daniel (30 May 2001) +- Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were + set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE + option is subject for complete removal... + +Version 7.8-pre2 + +Daniel (30 May 2001) +- Cris Bailiff wrote a makefile for building Solaris packages. + +- Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and + we discussed and added a few CURL_GLOBAL_* flags in include/curl.h + +- Kjetil Jacobsen privately announced his python interface to libcurl, + available at http://pycurl.sourceforge.net/ + +Daniel (29 May 2001) +- Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread- + safe function. Now configure checks for a thread-safe version, and + lib/strtok.c offers one for the systems that don't come with one included! + +- Mettgut Jamalla correctly pointed out that the -# progress bar was written + to stderr even though --stderr redirection was used. This is now corrected. + +- I moved out the list of contributors from the curl.1 man page and made a + separate docs/THANKS file. It makes the list easier to find, and made it + easier for me to make a separate web page with that same information. + + I really do want all you guys mentioned in there to feel you get the credit + you deserve. + +- lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake + +Version 7.8-pre1 + +Daniel (28 May 2001) +- curl-config now supports '--vernum' that outputs a plain hexadecimal version + of the libcurl version number (using 8 bits for each 3 numbers). Version + 7.7.4 appears as 070704 + +- Wrote man pages for curl_global_init and curl_global_cleanup... + +- T. Bharath brought news about the usage of the OpenSSL interface that was + not previously taken into consideration and thus caused libcurl to leak + memory. The only somewhat sane approach to fix this dilemma, is adding two + two new functions curl_global_init() and curl_global_cleanup() that should + be called *ONCE* by the application using libcurl. The init should be done + only at startup, no matter how many threads the application is gonna use, + and the cleanup should be called when the application has finished using + libcurl completely. + + *** UPGRADE NOTICE *** + + If you write applications using libcurl, you really want to use the two + functions mentioned above !!! + + I can't say I think this is a very beautiful solution, but as OpenSSL + insists on making lots of stuff on a "global" scope, we're forced to walk + the path they point us to. + +- Moving more test cases into the new file format. + +Version 7.7.4-pre3 + +Daniel (23 May 2001) +- Introduced a new file format for storing test cases, and thus I had to + modify all the perl test scripts and more (I added a new one). I have not + "ported" all the old test cases to the new format yet, but it'll come. + + The main advantage of this new format is that all test data for each test + case is stored in a single file. It gives a better overview for each test + case and a lot less files. + +- Andrés García brought a fix for the netscape/mozilla cookie file parsing + function, as it turns out it doesn't always store the path! + +Daniel (22 May 2001) +- As was reported anonymously, when FAILONERROR was used, the httpcode was + not stored properly and thus wasn't possibly to read after a transfer with + the curl_easy_getinfo() function. This is now corrected. + +- Installed and made use of the following tool versions: + autoconf 2.50 + libtool 1.4 + automake 1.4-p1 + + I wouldn't recommend any developer to try to generate things with older + versions than these. Building from CVS will probably more or less require + at least these versions. + + As a result of this, the configure script grew to more than double its + previous size! + + Arkadiusz Miskiewicz helped me by pointing out I had to remove my + acinclude.m4 file before I could get it working! + +Daniel (21 May 2001) +- I made ftps:// work. Added test case 400 to the release archive, as the + first ftps:// test case. Requires stunnel. + +- Also made the test cases that runs ssl tests not run if libcurl isn't built + with ssl support. + +Daniel (19 May 2001) +- Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they + are actually needed. Albert Chin's and Domenico Andreoli's suggestions + helped out. + +Version 7.7.4-pre2 + +Daniel (18 May 2001) +- Nicer configure-check for the OpenSSL headers, which then sets the proper + variable to have curl-config be good. (Albert Chin provided the fix) + +- For systems that don't have theiw own 'strlcat()' libcurl provides its own. + It was now renamed to prevent collides with other libs. (After discussions + with Sterling Hughes and the implications this had on PHP builds.) + +Daniel (17 May 2001) +- Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that + turned out to be a problem with the debian-built 7.7.3-package that + contained files from the 7.7.2 release! + +- I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to + make programs that use it, not fail when compiling against this version of + libcurl. + +Daniel (14 May 2001) +- Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent + connections. + +Version 7.7.4-pre1 + +Daniel (14 May 2001) +- Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl. + +- Added the first HTTPS test to the test suite in the release archive. + +Daniel (12 May 2001) +- Jukka Pihl suggested that if (lib)curl is told to verify the peer's + certificate and the peer can't be verified, it should fail and return a + proper error code. I added a brand new error code named + CURLE_SSL_PEER_CERTIFICATE for this purpose. + +Daniel (11 May 2001) +- As was discussed with Frederic Lepied a while ago, I now made libcurl not + return error even though no data was transfered on upload/download resume + when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed + from the header file to make any implemenator that uses that to be aware of + the fact that it can't be returned anymore! + +- Improved general header-parsing to better allow white spaces and more. + +- Rodney Simmons proved the fix I did yesterday was bad and I had to post + another one. + +- Ingo Wilken patched away two redirect problems more! + +Daniel (10 May 2001) +- Cris Bailiff correctly noted that the space-after-header problem with + Location: is present on several other places in the libcurl sources. + +- Ingo Wilken patched away a problem libcurl had when following Location: + headers with an extra space after the colon. + +- Rodney Simmons found out that multiple FTP transfers did not treat relative + directories correctly. + +Daniel (9 May 2001) +- Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line), + makes curl use the non-standard ftp command "SIZE". If it failed, libcurl + returned error. Starting now, it just don't output the file size instead. + Anonymous bug report. + +- stunnel.pm was accidentally left out from the release archive, it is now + added (stunnel is needed to run the https-tests in the test suite) + +Daniel (7 May 2001) +- Corrected two minor compiler warnings due to the FILE * to void * conversion + that I missed at two places. Jörn Hartroth brought me patches. Sander Gates + filed a bug report on this. + +Version 7.7.3 + +Daniel (4 May 2001) +- All callback functions now take 'void *' instead of 'FILE *'. This is made + this way to make it more obvious to people that anything can be passed to + them (by using the apropriate option). After discussions with Sterling + Hughes. + +Daniel (3 May 2001) +- Cris Bailiff fixed a chunked transfer encoding problem with persistent + connection that made libcurl fail if the persistent connection used mixed + chunked and non-chunked transfers. + +- Cris Bailiff fixed a bad treatment of 304-replies, as they would not be + treated as content-length 0 replies but would cause a "hang" until the + server timed-out and closed the connection. + +- Brad Burdick found a minor problem in the docs/examples/Makefile.am + +Daniel (27 April 2001) +- Updated the INTERALS document again. It was lagging a bit. I think I made it + more easy to follow now as well. + +- Brad Burdick found a problem with persistent connections when curl received + a "Content-Length: 0" header. + +- Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl + compiled/built on win32. It seems to work for unixes though! + +- Dave Hamilton reported weird problems with CURL/PHP that I really can't + explain at the moment. I'm hoping on some help from the PHP crew. + +Daniel (26 April 2001) +- I rewrote the FTP command response function. I had to do it to make ftps + work, as the OpenSSL read()-function didn't work the same way the normal + unix read() does, but it was also a huge performance boost. Previously the + function read one byte at a time, now it reads very large chunks, and it + makes a notable speed difference. + +Daniel (25 April 2001) +- Connection re-use when not using a proxy didn't work properly for + non-default port numbers. + +Daniel (24 April 2001) +- I've noticed that FTPS doesn't work. We attempt to use ssl even for the + data transfer, which causes the transfer to 'hang'... We need to fix this. + +- Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on + the alredy written perl servers easily. + +Daniel (23 April 2001) +- The OpenSSL version string recently modified didn't zero terminate one + of the generated strings properly, which could lead to a crash or simply + weird version string output! + +Version 7.7.2 + +Daniel (22 April 2001) +- Rosimildo da Silva updated the Makefiles for Borland/Windows. + +- Eric Rautman pointed out a problem with persistent connections that would + lead to broken Host: headers in the second HTTP request. + +Daniel (20 April 2001) +- Added man pages for the curl_strequal() and curl_mprintf() families. Wrote + a 'libcurl overview' man page. + +- Spell-fixed some documents. + +- S. Moonesamy corrected mistakes in the man page. + +- Cris Bailiff fixed the curl_slists options in the perl interface, present + separately in the Curl::easy 1.1.4 package. + +Daniel (19 April 2001) +- Linus Nielsen Feltzing removed the decimals from the size variables in the + --write-out output. We hardly ever get fraction of bytes! :-) + +Version 7.7.2-pre1 + +Daniel (19 April 2001) + +- Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro. + +Daniel (18 April 2001) +- Input from Michael Mealling made me add --feature to curl-config. It + displays a list of features that have been built-in in the current + libcurl. The currently available features that can be listed are: SSL, KRB4 + and IPv6. + +- I committed Cris and Georg's perl interface work. They've got callbacks + working and options that receives those slist pointers. + +- Puneet Pawaia detected a problem with resumed downloads that use persistent + connections and I made a rather large writeup to correct this. It is + important that all session-data is stored in the connectdata struct and not + in the main struct as this previously did. + +Daniel (17 April 2001) +- Frederic Lepied fixed a ftp resumed download problem and introduced a new + error code that lets applications be able to detect when a resumed download + actually didn't download anything since the whole file is already present. + Should this return OK instead? + +- I added 'curl-config.in' to the root dir and configure script. Now, a + curl-config script is made when curl is built. The script can be used to + figure out compile time options used when libcurl was built, which in turn + should be options YOU should use to build applications that use libcurl. + + This *-config style is not a new idea, but something that has been used + successfully in other (library based) projects. + +- Phil Karn pointed out that libcurl wrongly did not always use GMT time zone + for the If-Modified-Since style headers. + +- Georg Schwarz pointed out an extra needed #include file needed in src/main.c + for curl to build on Ultrix. + +Daniel (11 April 2001) +- Cris Bailiff pointed out two problems that I corrected. First, libcurl's use + of the environment variable HTTP_PROXY in uppercase may become a security + hazard when people use libcurl in a server/cgi situation where the server + sets the HTTP_*-variables according to incoming headers in the HTTP + request. Thus, a "Proxy:"-header would set that environment variable! + + Then, invoking curl_easy_perform() without having an URL set caused a crash. + +- S. Moonesamy brought a patch that make curl use non-blocking connects on + windows when connection timeout is set, as it allows windows users to set + that timeout! + +- Hirotaka Matsuyuki wrote a Ruby interface to libcurl! + +- Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface. + +- I've written a first shot at a Java interface to libcurl. Many thanks to + Daniel Marell for tirelessly answering to all my basic Java questions. It + works, but it is still very basic. + +Daniel (10 April 2001) +- The progress display could get silly when doing multiple file transfers, as + it wasn't properly reset between transfers! + +- Discussions with Cris Bailiff who writes a Perl interface to libcurl, made + me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback + function for writing headers. Previously you could only set a different FILE + * when headers are written from within libcurl. + +Daniel (7 April 2001) +- Andrés García fixed a problem in curl_escape() and pointed out a flaw in + the curl_easy_setopt man page. + +Daniel (6 April 2001) +- Adjusted the version code to properly display OpenSSL 0.9.6a. They sure + change their version define format often... + +- curl_formfree() now accepts a NULL pointer without crashing! + +Version 7.7.1 + +Daniel (3 April 2001) +- Puneet Pawaia pointed out two serious problems. Libcurl would attempt to + read bad memory during situations when an (ftp) connection attempt failed. + Also, the lib/Makefile.vc6 was corrected. + +- More investigations in the Location: following code made me realize that + it was not clean enough to work transparantly with persistent and non- + persistent connections. I think I've fixed it now. + +Daniel (29 March 2001) +- Georg Horn mailed me some corrections for the Curl::easy perl interface. + +- Experimental ftps:// support added. It is basically FTP over SSL for the + control connection. It still makes all data transfers going over unencrypted + connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used + that to verify the functionality. + +Daniel (27 March 2001) +- Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried + to get a file from a site and it fails, the SIGALRM would still be sent + after the timeout-time, quite inexpectedly! + +- I added an ftp transfer example to docs/examples/ and I also wrote a tiny + example makefile that can be used as a start when building one of the + examples. + +Version 7.7.1-beta1 + +Daniel (26 March 2001) +- Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0 + connections (when the server replied a Connection: Keep-Alive) and this + problem was not properly dealt with in 7.7 either. A patch was posted to the + curl-and-php mailing list. + +Daniel (24 March 2001) +- Colin Watson reported about a problem and brought a patch that corrected it, + which was about the man page and lines starting with a single quote (') in a + way that gnroff doesn't like. + +Daniel (23 March 2001) +- Peter Bray reported correctly that the root makefile used make instead of + $(MAKE) for the test target. + +- Corrected the Curl::easy perl interface to use curl_easy_setopt() and not + curl_setopt() which was removed in 7.7! + +- S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ). + +- When following a Location:, libcurl would sometimes write to the URL string + in a way it shouldn't. As the pointer is passed-in to libcurl from an + application, we can't be allowed to write to it. The particular bug report + from 'nk' that brought this up was because he had a read-only URL that then + caused a libcurl crash! + +- No longer reads HEAD responses longer than to the last header. Previously, + curl would read the full reply if the connection was a "close" one. + +- libcurl did re-use connections way too much. Doing "curl + http://www.{microsoft,ibm}.com" would make it re-use the connection which + made the second request return very odd results. + +Daniel (22 March 2001) +- Edin Kadribasic made me aware that curl should not re-send POST requests + when following 302-redirects. I made 302 work like 303 which means curl uses + GET in the following request(s). + +- libcurl now reset the "followed-location" counter on each invoke of + curl_easy_perform() as it otherwise would sum up all redirects on the same + connection and thus could reach the maxredirs counter wrongly. + +- Jim Drash suggested curl_escape() should not re-encode what already looks + like an encoded sequence and I think that's a fair suggestion. + +Version 7.7 + +Daniel (22 March 2001) +- The configure script now fails with an error message if gethostbyname_r() is + detected but it couldn't figure out how to invoke it (what amount of + arguments it is supposed to get). Reports from Andrés García made me aware + of this need. + +- Talking with Jim Drash made me finally put the curl_escape and curl_unescape + functions in the curl.h include file and write man pages for them. The + escape function was modified to use the same interface as the unescape one + had. + +- No bug reports at all on the latest betas. Release time coming up. + +Version 7.7-beta5 + +Daniel (19 March 2001) +- Georg Ottinger reported problems with using -C together with -L in the sense + that the -C info got lost when it was redirected. I could not repeat this + problem on the 7.7 branch why I leave this for the moment. Test case 39 was + added to do exactly this, and it seems to do right. + +- Christian Robottom Reis reported how his 7.7 beta didn't successfully do + form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header + engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT + and POST operations that I need to add support for. Section 8.2.3 in RFC2616 + has all the details. Seems to work now! + +Daniel (16 March 2001) +- After having experienced another machine break-down, we're back. + +- Georg Horn's perl interface Curl::easy is now included in the curl release + archive. The perl/ directory is now present. Please help me with docs, + examples and updates you think fit. + +- Made a new php/ directory in the release archive and moved the PHP examples + into a subdirectory in there. Not much PHP info yet, but I plan to. Please + help me here as well! + +- Made libcurl return error if a transfer is aborted in the middle of a + "chunk". It actually enables libcurl to discover premature transfer aborts + even if the Content-Length: size is unknown. + +Daniel (15 March 2001) +- Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT + option in libcurl. It limits the time curl is allowed to spend in the + connection phase. This differs from -m/--max-time that limits the entire + file transfer operation. Requested by Larry Fahnoe and others. + + I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the + item from the TODO. + +Version 7.7-beta4 + +Daniel (14 March 2001) +- Made curl grok IPv6 with HTTP proxies and got everything to compile nicely + again when ENABLE_IPV6 is set. + + I need to remake things in the test suite. I can't test the FTP parts with + curl built for IPv6 as it uses a different set of FTP commands then! + +- I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was + a report meant for our project. Anyway, it said the .netrc parsing didn't + work as supposed, and as I agreed with Lars, I made the netrc parser use + getpwuid() to figure out the home directory of the effective user and try + that netrc. It still uses the environment variable HOME for those that don't + have that function or if the user doesn't return valid pwd info. + +- Edin Kadribaic posted a bug report where he got a crash when a fetch with + user+password in the URL followed a Location: to a second URL (absolute, + without name+password). This bug has been around for a long while and + crashes due to a read at address zero. Fixed now. Wrote test case 38, that + tests this. + +- Modified the test suite's httpserver slightly to append all client request + data to its log file so that the test script now better can verify a range + of requests and not only the last one, as it did previously. + +- Updated the curl man page with --random-file and --egd-file details. + +Version 7.7-beta3 + +Daniel (14 March 2001) +- Björn Stenberg provided similar fixes as Jörn did and some additional patches + for non-SSL compiles. + +- I increased the interface number for libcurl as I've removed the low level + functions from the interface. I also took this opportunity to rename the + Curl_strequal function to curl_strequal and Curl_strnequal to + curl_strnequal, as they're public libcurl functions (even if they're still + undocumented). + + This will make older programs not capable of using the new libcurl with + just a drop-in replacement. + +- Jörn Hartroth updated stuff for win32 compiles: + o config-win32.h was fixed for socklen_t + o lib/ssluse.c had a bad #endif placement + o lib/file.c was made to compile on win32 again + o lib/Makefile.m32 was updated with the new files + o lib/libcurl.def matches the current interface state + +Daniel (13 March 2001) +- It only took an hour or so before Jörn Hartroth found a problem in the + chunked transfer-encoding. Given his fine example-site, I could easily spot + the problem and when I re-read the spec (the part I have pasted in the top + of the http_chunks.h file), I realized I had made my state-machine slightly + wrong and didn't expect/handle the trailing CRLF that comes after the data + in each chunk (and those extra two bytes sure feel wasted). + + Had to modify test case 34 to match this as well. + +Version 7.7-beta2 + +Daniel (13 March 2001) +- Added the policy stuff to the curl_easy_setopt man page for the two supported + policies. + +- Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies + CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now + supported, and the "least recently used" is used as default if no policy + is chosen. + +Daniel (12 March 2001) +- Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the + SSL random engine. The random seeding support was also brought to the curl + client with the new options --random-file and --egd-file . I + need some people to really test this to know they work as supposed. Remember + that libcurl now informs (if verbose is on) if the random seed is considered + weak (HTTPS connections). + +- Made the chunked transfer-encoding engine detected bad formatted data length + and return error if so (we can't possibly extract sensible data if this is + the case). Added a test case that detects this. Number 36. Now there are 60 + test cases. + +- Added 5 new libcurl options to curl/curl.h that can be used to control the + persistent connection support in libcurl. They're also documented (fairly + thoroughly) in the curl_easy_setopt.3 man page. Three of them are now + implemented, although not really tested at this point... Anyway, the new + implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT, + CURLOPT_FORBID_REUSE. The ones still left to write code for are: + CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION. + +- Made curl (the actual command line tool) use the new libcurl 7.7 persistent + connection support by re-using the same curl handle for every specified file + transfer and after some more test case tweaking we have 100% test case OK. + I made some test cases return HTTP/1.0 now to make sure that works as well. + +- Had to add 'Connection: close' to the headers of a bunch of test cases so + that curl behaves "old-style" since the test http server doesn't do multiple + connections... Now I get 100% test case OK. + +- The curl.haxx.se site, the main curl mailing list and my personal email are + all dead today due to power blackout in the area where the main servers are + located. Horrible. + +- I've made persistance work over a squid HTTP proxy. I find it disturbing + that it uses headers that aren't present in any HTTP standard though + (Proxy-Connection:) and that makes me feel that I'm now on the edge of what + the standard actually defines. I need to get this code excercised on a lot + of different HTTP proxies before I feel safe. + + Now I'm facing the problem with my test suite servers (both FTP and HTTP) + not supporting persistent connections and libcurl is doing them now. I have + to fix the test servers to get all the test cases do OK. + +Daniel (8 March 2001) +- Guenole Bescon reported that libcurl did output errors to stderr even if + MUTE and NOPROGRESS was set. It turned out to be a bug and happens if + there's an error and no ERRORBUFFER is set. This is now corrected. + +Version 7.7-beta1 + +Daniel (8 March 2001) +- "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've + added two source files and I've run some test downloads that look fine. + +- HTTP HEAD works too, even on 1.1 servers. + +Daniel (5 March 2001) +- The current 57 test cases now pass OK. It would suggest that libcurl works + using the old-style with one connection per handle. The test suite doesn't + handle multiple connections yet so there are no test cases for this. + +- I patched the telnet.c heavily to not use any global variables anymore. It + should make it a lot nicer library-wise. + +- The file:// support was modified slightly to use the internal connect-first- + then-do approach. + +Daniel (4 March 2001) +- More bugs erased. + +Version 7.7-alpha2 + +Daniel (4 March 2001) +- Now, there's even a basic check that a re-used connection is still alive + before it is assumed so. A few first tests have proven that libcurl will + then re-connect instead of re-use the dead connection! + +Daniel (2 March 2001) +- Now they work intermixed as well. Major coolness! + +- More fiddling around, my 'tiny' client I have for testing purposes now has + proved to download both FTP and HTTP with persistent connections. They do + not work intermixed yet though. + +Daniel (1 March 2001) +- Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that + curl_slist_append() should take a const char * as second argument. It does + now. + +Daniel (22 February 2001) +- The persistent connections start to look good for HTTP. On a subsequent + request, it seems that libcurl now can pick an already existing connection + if a suitable one exists, or it opens a new one. + +- Douglas R. Horner mailed me corrections to the curl_formparse() man page + that I applied. + +Daniel (20 February 2001) +- Added the docs/examples/win32sockets.c file for our windows friends. + +- Linus Nielsen Feltzing provided brand new TELNET functionality and + improvements: + + * Negotiation is now passive. Curl does not negotiate until the peer does. + * Possibility to set negotiation options on the command line, currently only + XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV). + * Now sends the USER environment variable if the -u switch is used. + * Use -t to set telnet options (Linus even updated the man page, awesome!) + +- Haven't done this big changes to curl for a while. Moved around a lot of + struct fields and stuff to make multiple connections get connection specific + data in separate structs so that they can co-exist in a nice way. See the + mailing lists for discussions around how this is gonna be implemented. Docs + and more will follow. + + Studied the HTTP RFC to find out better how persistent connections should + work. Seems cool enough. + +Daniel (19 February 2001) +- Bob Schader brought me two files that help set up a MS VC++ libcurl project + easier. He also provided me with an up-to-date libcurl.def file. + +- I moved a bunch of prototypes from the public file to the + library private urldata.h. This is because of the upcoming changes. The + low level interface is no longer being planned to become reality. + +Daniel (15 February 2001) +- CURLOPT_POST is not required anymore. Just setting the POST string with + CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in + libcurl already works this way, i.e they require only the parameter to + switch on a feature so I think this works well with the rest. Setting a NULL + string switches off the POST again. + +- Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn + Reese helped me define a way how to incorporate persistent connections into + libcurl in a very smooth way. If done right, no change may have to be made + to older programs and they will just start using persistent connections when + applicable! + +Daniel (13 February 2001) +- Changed the word 'timeouted' to 'timed out' in two different error messages. + Suggested by Larry Fahnoe. + +Version 7.6.1 + +Daniel (9 February 2001) +- Frank Reid and Cain Hopwood provided information and research around a HTTPS + PUT/upload problem we seem to have. No solution found yet. + +Daniel (8 February 2001) +- An interesting discussion is how to specify an empty password without having + curl ask for it interactively? The current implmentation takes an empty + password as a request for a password prompt. However, I still want to + support a blank user field. Thus, today if you enter "-u :" (without user + and password) curl will prompt for the password. Tricky. How would you + specify you want the prompt otherwise? + +- Made the netrc parse result possible to use for other protocols than FTP and + HTTP (such as the upcoming TELNET fixes). + +- The previously mentioned "MSVC++ problems" turned out to be a non-issue. + +- Added a HTTP file upload code example in the docs/examples/ section on + request. + +- Adjusted the FTP response fix slightly. + +Version 7.6.1-pre3 + +Daniel (7 February 2001) +- S. Moonesamy found a flaw in the response reading function for FTP that + could make libcurl not get out of the loop properly when it should, if + libcurl got -1 returned when reading the socket. + +- I found a similar mistake in http.c when using a proxy and reading the + results from the proxy connection. + +Daniel (6 February 2001) +- S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set + for the debug build to work. + +- Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver + brought up yesterday. + +Daniel (5 February 2001) +- Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to + a bunch of different areas within libcurl. + +- Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with + the 'static' keyword on a number of libcurl functions. I might need to add a + patch that redefines static when libcurl is compiled with that compiler. + How do I know when VC++ compiles, anyone? + +Daniel (4 February 2001) +- curl_getinfo() was extended with two new options: + CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They + return the full assumed content length of the transfer in the given + direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length: + size of a HTTP download. Added descriptions to the man page as well. This + was done after discussions with Bob Schader. + +Daniel (3 February 2001) +- Ingo Ralf Blum provided another fix that makes curl build under the more + recent cygwin installations. It seems they've changed the preset defines to + not include WIN32 anymore. + +Version 7.6.1-pre2 + +Daniel (31 January 2001) +- Curl_read() and curl_read() now return a ssize_t for the size, as it had to + be able to return -1. The telnet support crashed due to this and there was a + possibility to weird behavior all over. Linus Nielsen Feltzing helped me + find this. + +- Added a configure.in check for a working getaddrinfo() if IPv6 is requested. + I also made the configure script feature --enable-debug which sets a couple + of compiler options when used. It assumes gcc. + +Daniel (30 January 2001) +- I finally took a stab at the long-term FIXME item I've had on myself, and + now libcurl will properly work when doing a HTTP range-request that follows + a Location:. Previously that would make libcurl fail saying that the server + doesn't seem to support range requests. + +Daniel (29 January 2001) +- I added a test case for the HTTP PUT resume thing (test case 33). + +Version 7.6.1-pre1 + +Daniel (29 January 2001) +- Yet another Content-Range change. Ok now? Bob Schader checks from his end + and it works for him. + +Daniel (27 January 2001) +- So the HTTP PUT resume fix wasn't good. There should appearantly be a + Content-Range header when resuming a PUT. + +- I noticed I broke the download-check that verifies that a resumed HTTP + download is actually resumed. It got broke because my new 'httpreq' field + in the main curl struct. I should get slapped. I added a test case for + this now, so I won't be able to ruin this again without noticing. + +- Added a test case for content-length verifying when downloading HTTP. + +- Made the progress meter title say if the transfer is being transfered. It + makes the output slightly better for resumes. + +- When dealing with Location: and HTTP return codes, libcurl will not attempt + to follow the spirit of RFC2616 better. It means that when POSTing to a + URL that is being following to a second place, the standard will judge on + what to do. All HTTP codes except 303 and 305 will cause curl to make a + second POST operation. 303 will make a GET and 305 is not yet supported. + + I also wrote two test cases for this POST/GET/Location stuff. + +Version 7.6 + +Daniel (26 January 2001) +- Lots of mails back and forth with Bob Schader finally made me add a small + piece of code in the HTTP engine so that HTTP upload resume works. You can + now do an operation like 'curl -T file -C ' and curl will PUT + the ending part of the file starting at given offet to the specified URL. + +Version 7.6-pre4 + +Daniel (25 January 2001) +- I took hold of Rick Jones' question why we don't use recv() and send() for + reading/writing to the sockets and I've now modified the sread() and + swrite() macros to use them instead. If nothing else, they could be tested + in the next beta-round coming right up. + +- Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied + his research results in how to fix this. It turns out we have to invoke the + function several times in some cases. The same goes for the SSL_write(). + + I made some rather drastic changes all over libcurl to make all writes and + reads get done on one single place so that this repeated-attempts thing + would only have to be implemented at one point. + +- Rick Jones spotted that the 'total time' counter really didn't measure the + total time very accurate on subsecond levels. + +- Johan Nilsson pointed out the need to more clearly specify that the timeout + value you set for a download is for the *entire* download. There's currently + no option available that sets a timeout for the connection phase only. + +Daniel (24 January 2001) +- Ingo Ralf Blum submitted a series of patches required to get curl to compile + properly with cygwin. + +- Robert Weaver posted a fix for the win32 section of the curl_getenv() code + that corrected a potential memory leak. + +- Added comments in a few files in a sudden attempt to make the sources more + easy to read and understand! + +Daniel (23 January 2001) +- Added simple IPv6 detection in the configure script and made the version + string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be + set if curl is compiled with IPv6 support enabled. + +- Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when + IPv6 gets enabled soon, we can use URLs like '[0::1]:80'... + +- Made the URL globbing in the client possible to fail silently if there's an + error in the globbing. It makes it almost intuitive, so when you don't + follow the syntax rules, globbing is simply switched off and the raw string + is used instead. + + I still think we'll get problems with IPv6-style IP-addresses when we *want* + globbing on parts of the URL as the initial part of the URL will for sure + seriously confuse the globber. + +Daniel (22 January 2001) +- Björn Stenberg supplied a progress meter patch that makes it look better even + during slow starts. Previously it made some silly assumptions... + +- Added two FTP tests for -Q and -Q - stuff since it was being discussed on + the mailing list. Had to correct the ftpserver.pl too as it bugged slightly. + +Daniel (19 January 2001) +- Made the Location: parsers deal with any-length URLs. Thus I removed the last + code that restricts the length of URLs that curl supports. + +- Added a --globoff test case (#28) and it quickly identified a memory problem + in src/main.c that I took care of. + +Version 7.6-pre3 + +Daniel (17 January 2001) +- Made the two former files lib/download.c and lib/highlevel.c become the new + lib/transfer.c which makes more sense. I also did the rename from Transfer() + to Curl_Transfer() in the other source files that use the transfer function + in the spirit of using Curl_ prefix for library-scoped global symbols. + +Daniel (11 January 2001) +- Added -g/--globoff that switches OFF the URL globbing and thus enables {}[] + letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly + mention these letters to be escaped. This was posted as a feature request by + Jorge Gutierrez and as a bug by Terry. + +- Short options to curl that requires parameters can now be specified without + having the option and its parameter space separated. -ofile works as good as + -o file. -m20 is equal to -m 20. Do note that this goes for single-letter + options only, verbose --long-style options still must be separated with + space from their parameters. + +Daniel (8 January 2001) +- Francis Dagenais reported that the SCO compiler still fails when compiling + curl due to that getpass_r() prototype. I've now put it around #ifndef + HAVE_GETPASS_R in an attempt to please the SCO systems. + +- Made some minor corrections to get the client to cleanup properly and I made + the separator work again when getting multiple globbed URLs to stdout. + +- Worked with Loic Dachary to get the make dist and make distcheck work + correctly. The 'maketgz' script is now using the automake generated 'make + dist' when creating release archives. Loic successfully made 'make rpms' + automatically build RPMs! + +Loic Dachary (6 January 2001) +- Automated generation of rpm packages, no need to be root. + +- make distcheck generates a proper distribution (EXTRA_DIST + in all Makefile.am modified to match FILES). + +Daniel (5 January 2001) +- Huge client-side hack: now multiple URLs are supported. Any number of URLs + can be specified on the command line, and they'll all be downloaded. There + must be a corresponding -o or -O for each URL or the data will be written to + stdout. This needs more testing, time to release a 7.6-pre package. + +- The krb4 support was broken in the release. Fixed now. + +- Huge internal symbol rename operation. All non-static but still lib-internal + symbols should now be prefixed with 'Curl_' to prevent collisions with other + libs. All public symbols should be prefixed with 'curl_' and the rest should + be static and thus invisible to the outside world. I updated the INTERNALS + document to say this as well. + +Version 7.5.2 + +Daniel (4 January 2001) +- As Kevin P Roth suggested, I've added text to the man page for every command + line option and what happens when you specify that option more than + once. That hasn't been exactly crystal clear before. + +- Made the configure script possible to run from outside the source-tree. For + odd reasons I can't build curl properly outside though. It has to do with + curl's dependencies on libcurl... + +- Cut off all older (dated 1999 and earlier) CHANGES entries from this file. + The older piece is named CHANGES.0 and is added to the CVS repository in + case anyone would need it. + +- I added another file 'CVS-INFO' to the CVS. It contains information about + files in the CVS that aren't included in release archives and how to build + curl when you get the sources off CVS. + +- Updated CONTRIBUTE and FAQ due to the new license. + +Daniel (3 January 2001) +- Renamed README.libcurl to LIBCURL + +- Changed headers in all sources files to the new dual license concept of + curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated + accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the + release archive. +Daniel (30 December 2000) +- Made all FTP commands get sent with the trailing CRLF in one single write() + as splitting them up seems to confuse at least some firewalls (FW-1 being + one major). + +Daniel (19 December 2000) +- Added file desrciptor and FILE handle leak detection to the memdebug system + and thus I found and removed a file descriptor leakage in the ftp parts + that happened when you did PORTed downloads. + +- Added an include in since it uses FILE *. + +Daniel (12 December 2000) +- Multiple URL downloads with -O was still bugging. Not anymore I think or + hope, or at least I've tried... :-O + +- Francois Petitjean fixed another -O problem + +Version 7.5.1 + +Daniel (11 December 2000) +- Cleaned up a few of the makefiles to use unix-style newlines only. As Kevin + P Roth found out, at least one CVS client behaved wrongly when it found + different newline conventions within the same file. + +- Albert Chin-A-Young corrected the LDFLAGS use in the configure script for + the SSL stuff. + +Daniel (6 December 2000) +- Massimo Squillace correctly described how libcurl could use session ids when + doing SSL connections. + +- James Griffiths found out that curl would crash if the file you specify with + -o is shorter than the URL! This took some hours to fully hunt down, but it + is fixed now. + +Daniel (5 December 2000) +- Jaepil Kim sent us makefiles that build curl using the free windows borland + compiler. The root makefile now accepts 'make borland' to build curl with + that compiler. + +- Stefan Radman pointed out that the test makefiles didn't use the PERL + variable that the configure scripts figure out. Actually, you still need + perl in the path for the test suite to run ok. + +- Rich Gray found numerous portability problems: + * The SCO compiler got an error on the getpass_r() prototype in getpass.h + since the curl one differed from the SCO one + * The HPUX compiler got an error because of how curl did the sigaction + stuff and used a define HPUX doesn't have (or need). + * A few more problems remain to be researched. + +- Paul Harrington experienced a core dump using https. Not much details yet. + +Daniel (4 December 2000) +- Jörn Hartroth fixed a problem with multiple URLs and -o/-O. + +Version 7.5 + +Daniel (1 December 2000) +- Craig Davison gave us his updates on the VC++ makefiles, so now curl should + build fine with the Microsoft compiler on windows too. + +- Fixed the libcurl versioning so that we don't ruin old programs when + releasing new shared library interfaces. + +Daniel (30 November 2000) +- Renamed docs/README.curl to docs/MANUAL to better reflect what the document + actually contains. + +Daniel (29 November 2000) +- I removed a bunch of '#if 0' sections from the code. They only make things + harder to follow. After all, we do have all older versions in the CVS. + +Version 7.5-pre5 + +Daniel (28 November 2000) +- I filled in more error codes in the man page error code list that had been + lagging. + +- James Griffiths mailed me a fine patch that introduces the CURLOPT_MAXREDIRS + libcurl option. When used, it'll prevent location following more than the + set number of times. It is useful to break out of endless redirect-loops. + +Daniel (27 November 2000) +- Added two test cases for file://. + +Daniel (22 November 2000) +- Added the libcurl CURLOPT_FILETIME setopt, when set it tries to get the + modified time of the remote document. This is a special option since it + involves an extra set of commands on FTP servers. (Using the MDTM command + which is not in the RFC959) + + curl_easy_getinfo() got a corresponding CURLINFO_FILETIME to get the time + after a transfer. It'll return a zero if CURLOPT_FILETIME wasn't used or if + the time wasn't possible to get. + + --head/-I used on a FTP server will now present a 'Last-Modified:' header + if curl could get the time of the specified file. + +- Added the option '--cacert [file]' to curl, which allows a specified PEM + file to be used to verify the peer's certificate when doing HTTPS + connections. This has been requested, rather recently by Hulka Bohuslav but + others have asked for it before as well. + +Daniel (21 November 2000) +- Numerous fixes the test suite has brought into the daylight: + + * curl_unescape() could return a too long string + * on ftp transfer failures, there could be memory leaks + * ftp CWD could use bad directory names + * memdebug now uses the mprintf() routines for better portability + * free(NULL) removed when doing resumed transfers + +- Added a bunch of test cases for FTP. + +- General cleanups to make less warnings with gcc -Wall -pedantic. + +- I made the tests/ftpserver.pl work with the most commonly used ftp + operations. PORT, PASV, RETR, STOR, LIST, SIZE, USER, PASS all work now. Now + all I have to do is integrate the ftp server doings in the runtests.pl + script so that ftp tests can be run the same way http tests already run. + +Daniel (20 November 2000) +- Made libcurl capable of dealing with any-length URLs. The former limit of + 4096 bytes was a bit annoying when people wanted to use curl to really make + life tough on a web server. Now, the command line limit is the most annoying + but that can be circumvented by using a config file. + + NOTE: there is still a 4096-byte limit on URLs extracted from Location: + headers. + +- Corrected the spelling of 'resolve' in two error messages. + +- Alexander Kourakos posted a bug report and a patch that corrected it! It + turned out that lynx and wget support lowercase environment variable names + where curl only looked for the uppercase versions. Now curl will use the + lowercase versions if they exist, but if they don't, it'll use the uppercase + versions. + +Daniel (17 November 2000) +- curl_formfree() was added. How come no one missed that one before? I ran the + test suite with the malloc debug enabled and got lots of "nice" warnings on + memory leaks. The most serious one was this. There were also leaks in the + cookie handling, and a few errors when curl failed to connect and similar + things. More tests cases were added to cover up and to verify that these + problems have been removed. + +- Mucho updated config file parser (I'm dead tired of all the bug reports and + weird behaviour I get on the former one). It works slightly differently now, + although I doubt many people will notice the differences. The main + difference being that if you use options that require parameters, they must + both be specified on the same line. With this new parser, you can also + specify long options without '--' and you may separate options and + parameters with : or =. It makes a config file line could look like: + + user-agent = "foobar and something" + + Parameters within quotes may contain spaces. Without quotes, they're + expected to be a single non-space word. + + Had to patch the command line argument parser a little to make this work. + +- Added --url as an option to allow the URL to be specified this way. It makes + way nicer config files. The previous way of specifying URLs in the config + file doesn't work anymore. + +Daniel (15 November 2000) +- Using certain characters in usernames or passwords for HTTP authentication + failed. This was due to the mprintf() that had a silly check for letters, + and if they weren't isprint() they weren't outputed "as-is". This caused + passwords and usernames using '§' (for example) to fail. + +Version 7.4.2 + +Daniel (15 November 2000) +- 'tests/runtests.pl' now sorts the test cases properly when 'all' is used. + +Daniel (14 November 2000) +- I fell over the draft-ietf-ftpext-mlst-12.txt Internet Draft titled + "Extensions to FTP" that contains a defined way how the ftp command SIZE + could be assumed to work. + +- Laurent Papier posted a bug report about using "-C -" and FTP uploading a + file that isn't prsent on the server. The server might then return a 550 and + curl will fail. Should it instead as Laurent Papier suggests, start + uploading from the beginning as a normal upload? + +Daniel (13 November 2000) +- Fixed a crash with the followlocation counter. + +- While writing test cases for the test suite, I discovered an old limitation + that prevented -o and -T to be used at the same time. I removed this + immediately as this has no relevance in the current libcurl. + +- Chris Faherty fixed a free-twice problem in lib/file.c + +- I fixed the perl http server problem in the test suite. + +Version 7.4.2 pre4 + +Daniel (10 November 2000) +- I've (finally) started working on the curl test suite. It is in the new + tests/ directory. It requires sh and perl. There's a TCP server in perl and + most of the other stuff running a pretty simple shell script. + + I've only made four test cases so far, but it proves the system can work. + +- Laurent Papier noticed that curl didn't set TYPE when doing --head checks + for sizes on FTP servers. Some servers seem to return different sizes + depending on whether ASCII or BINARY is used! + +- Laurent Papier detected that if you appended a FTP upload and everything was + already uploaded, curl would hang. + +- Angus Mackay's getpass_r() in lib/getpass.c is now compliant with the + getpass_r() function it seems some systems actually have. + +- Venkataramana Mokkapati detected a bug in the cookie parser and corrected + it. If the cookie was set for the full host name (domain=full.host.com), + the cookie was never sent back because of a faulty length comparison between + the set domain length and the current host name. + +Daniel (9 November 2000) +- Added a configure check for gethostbyname in -lsocket (OS/2 seems to need + it). Added a check for RSAglue/rsaref for the cases where libcrypto is found + but libssl isn't. I haven't verified this fix yet though, as I have no + system that requires those libs to build. + +Version 7.4.2 pre3 + +Daniel (7 November 2000) +- Removed perror() outputs from getpass.c. Angus Mackay also agreed to a + slightly modified license of the getpass.c file as the prototype was changed. + +Daniel (6 November 2000) +- Added possibility to set a password callback to use instead of the built-in. + They're controled with curl_easy_setopt() of course, the tags are + CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. + +- Used T. Bharath's thinking and fixed the timers that showed terribly wrong + times when location: headers were followed. + +- Emmanuel Tychon discovered that curl didn't really like user names only in + the URL. I corrected this and I also fixed the since long living problem + with URL encoded user names and passwords in the URLs. They should work now. + +Daniel (2 November 2000) +- When I added --interface, the new error code that was added with it was + inserted in the wrong place and thus all error codes from 35 and upwards got + increased one step. This is now corrected, we're back at the previous + numbers. All new exit codes should be added at the end. + +Daniel (1 November 2000) +- Added a check for signal() in the configure script so that if sigaction() + isn't present, we can use signal() instead. + +- I'm having a license discussion going on privately. The issue is yet again + GPL-licensed programs that have problems with MPL. I am leaning towards + making a kind of dual-license that will solve this once and for all... + +Daniel (31 October 2000) +- Added the packages/ directory. I intend to let this contain some docs and + templates on how to generate custom-format packages for various platforms. + I've now removed the RPM related curl.spec files from the archive root. + +Daniel (30 October 2000) +- T. Bharath brought a set of patches that bring new functionality to + curl_easy_getinfo() and curl_easy_setopt(). Now you can request peer + certificate verification with the *setopt() CURLOPT_SSL_VERIFYPEER option + and then use the CURLOPT_CAINFO to set the certificate to verify the remote + peer against. After an such an operation with a verification request, the + *_getinfo() option CURLINFO_SSL_VERIFYRESULT will return information about + whether the verification succeeded or not. + +Daniel (27 October 2000) +- Georg Horn brought us a splendid patch that solves the long-standing + annoying problem with timeouts that made curl exit with silly exit codes + (which as been commented out lately). This solution is sigaction() based and + of course then only works for unixes (and only those unixes that actually + have the sigaction() function). + +Daniel (26 October 2000) +- Björn Stenberg supplied a patch that fixed the flaw mentioned by Kevin Roth + that made the password get echoed when prompted for interactively. The + getpass() function (now known as my_getpass()) was also fixed to not use any + static buffers. This also means we cannot use the "standard" getpass() + function even for those systems that have it, since it isn't thread-safe. + +- Kevin Roth found out that if you'd write a config file with '-v url', the + url would not be used as "default URL" as documented, although if you wrote + it 'url -v' it worked! This has been corrected now. + +- Kevin Roth's idea of using multiple -d options on the same command line was + just brilliant, and I couldn't really think of any reason why we shouldn't + support it! The append function always append '&' and then the new -d + chunk. This enables constructs like the following: + + curl -d name=daniel -d age=unknown foobarsite.com + +Daniel (24 October 2000) +- I fixed the lib/memdebug.c source so that it compiles on Linux and other + systems. It will be useful one day when someone else but me wants to run the + memory debugging system. + +Daniel (23 October 2000) +- I modified the maketgz and configure scripts, so that the configure script + will fetch the version number from the include/curl/curl.h header files, and + then the maketgz doesn't have to rebuild the configure script when I build + release-archives. + +- Björn Stenberg and Linus Nielsen correctly pointed out that curl was silly + enough to not allow @-letters in passwords when they were specified with the + -u or -U flags (CURLOPT_USERPWD and CURLOPT_PROXYUSERPWD). This also + suggests that curl probably should url-decode the password piece of an URL + so that you could pass an encoded @-letter there... + +Daniel (20 October 2000) +- Yet another http server barfed on curl's request that include the port + number in the Host: header always. I now only include the port number if it + isn't the default (80 for HTTP, 443 for HTTPS). www.perl.com turned out to + run one of those nasty servers. + +- The PHP4 module for curl had problems with referer that seems to have been + corrected just yesterday. (Sterling Hughes of the PHP team confirmed this) + +Daniel (17 October 2000) +- Vladimir Oblomov reported that the -Y and -y options didn't work. They + didn't work for me either. This once again proves we should have that test + suite... + +- I finally changed the error message libcurl returns if you try a https:// + URL when the library wasn't build with SSL enabled. It will now return this + error: + "libcurl was built with SSL disabled, https: not supported!" + + I really hope it will make it a bit clearer to users where the actual + problem lies. + +Version 7.4.1 + +Daniel (16 October 2000) +- I forgot to remove some of the malloc debug defines from the makefiles in + the release archive (of course). + +Version 7.4 + +Daniel (16 October 2000) +- The buffer overflow mentioned below was posted to bugtraq on Friday 13th. + +Daniel (12 October 2000) +- Colin Robert Phipps elegantly corrected a buffer overflow. It could be used + by an evil ftp server to crash curl. I took the opportunity of replacing a + few other sprintf()s into snprintf()s as well. + +Daniel (11 October 2000) +- Found some more memory leaks. This new simple memory debugger has turned out + really useful! + +Version 7.4 pre6 + +Daniel (9 October 2000) +- Florian Koenig pointed out that the bool typedef in the curl/curl.h include + file was breaking PHP 4.0.3 compiling. The bool typedef is not used in the + public interface and was wrongly inserted in that header file. + +- Jörg Hartroth corrected a minor memory leak in the src/urlglob.c stuff. It + didn't harm anyone since the memory is free()ed on exit anyway. + +- Corrected the src/main.c. We use the _MPRINTF_REPLACE #define to use our + libcurl-printf() functions. This gives us snprintf() et al on all + platforms. I converted the allocated useragent string to one that uses a + local buffer. + +- I've set an #if 0 section around the Content-Transfer-Encoding header + generated in lib/formdata.c. This will hopefully make curl do more + PHP-friendly multi-part posts. + +Version 7.4 pre5 + +Daniel (9 October 2000) +- Nico Baggus found out that curl's ability to force a ASCII download when + using FTP was no longer working! I corrected this. This problem was probably + introduced when I redesigned libcurl for version 7. + +- Georg Horn provided a source example that proved a memory leak in libcurl. + I added simple memory debugging facilities and now we can make libcurl log + all memory fiddling functions. An additional perl script is used to analyze + the output logfile and to match malloc()s with free()s etc. The memory leak + Georg found turned out to be the main cookie struct that cookie_cleanup() + didn't free! The perl script is named memanalyze.pl and it is available in + the CVS respository, not in the release archive. + +Daniel (8 October 2000) +- Georg Horn found a GetHost() problem. It turned out it never assigned the + pointer in the third argument properly! This could make a crash, or at best + a memory leak! + +Version 7.4 pre4 + +Daniel (6 October 2000) +- Is the -F post following the RFC 1867 spec? We had this dicussion on the + mailing list since it appears curl can't post -F form posts to a PHP + receiver... I've been in touch with the PHP developers about this. + +- Domenico Andreoli found out that the long option '--proxy' wasn't working + anymore! The option parser got confused when I added the --proxytunnel for + 7.3. This was indeed a very old flaw that hasn't turned up until now... + +- Jörn Hartroth provided patches, updated makefiles and two new files for DLL + stuff on win32. He also pointed out that lib source files were compiled with + -I../src which isn't only wrong but plain stupid! + +- Troels Walsted Hansen fixed a problem with HTTP resume. Curl previously used + a local variable badly, that could lead to crashes. + +Version 7.4 pre3 + +Daniel (4 October 2000) +- More docs written. The curl_easy_getinfo.3 man page is now pretty accurate, + as is the -w section in curl.1. I added two options to enable the user to + get information about the received headers' size and the size of the HTTP + request. T. Bharath requested them. + +Daniel (3 October 2000) +- Corrected a sever free() before use in the new add_buffer_send()! ;-) + +Version 7.4 pre2 + +Daniel (3 October 2000) +- Jason S. Priebe sent me patches that changed the way curl issues HTTP + requests. The entire request is now issued in one single shot. It didn't do + this previously, and it has turned out that since the common browsers do it + this way, some sites have turned out to work with browsers but not with + curl! Although this is not a client-side problem, we want to be able to + fully emulate browsers, and thus we have now adjusted the networking layer + to slightly more appear as a browser. I adjusted Jason's patch, the faults + are probably mine. + +Daniel (2 October 2000) +- Anyone who ever uploaded data with curl on a slow link has noticed that the + progess meter is updated very infrequently. That is due to the large buffer + size curl is using. It reads 50Kb and sends it, updates the progress meter + and loops. 50Kb is very much on a slow link, although it is pretty neat to + use on a fast one. + + I've now made an adjustment that makes curl use a 2Kb buffer for uploads to + start with. If curl's average upload speed is faster than buffer size bytes + per second, curl will increase the used buffer size up to max 50Kb. It + should make the progress meter work better. + +Version 7.4 pre1 + +Daniel (29 September 2000) +- Ripped out the -w stuff from the library and put in the curl tool. It gets + all the relevant info from the library using the new curl_easy_getinfo() + function. + +- brad at openbsd.org mailed me a patch that corrected my kerberos mistake and + removed a compiler warning from hostip.c that OpenBSD people get. + +Daniel (28 September 2000) +- Of course (I should probably get punished somehow) I didn't properly correct + the #include lines for the base64 stuff in the kerberos sources in the just + released 7.3 package. They still include the *_krb.h files! Now, the error + is sooo very easy to spot and fix so I won't bother with a quick bug fix + release. I'll post a patch whenever one is needed instead. It'll be + available in the CVS in a few minutes anyway. + +Version 7.3 + +Daniel (28 September 2000) +- Removed the base64_krb.[ch] files. They've now replaced the former + base64.[ch] files. + +Daniel (26 September 2000) +- Updated some docs. + +- I changed the OpenSSL fix to work with older versions as well. The posted + patch was only working with 0.9.6 and no older ones. + +Version 7.3-pre8 + +Daniel (25 September 2000) +- Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and + showed us what needed to get patched in order to make it build properly + again. + +- Dirk Kruschewski found a bug in the cookie parser. I made an alternative + approach to the solution Dirk himself suggested. The bug made a cookie + header that didn't end with a trailing semicolon to not get parsed. + +- I've marked -c and -t deprecated now. If you use any of them, curl will tell + you to use "-C -" or "-T -" instead. I don't think occupying two letters for + nearly identical functions is good use. Also, -T - kind of follows the curl + tradition of using - for stdin where a file name is expected. + +Daniel (23 September 2000) +- Martin Hedenfalk provided the patch that finally made the krb4 ftp upload + work! + +Daniel (21 September 2000) +- The kerberos code is not quite thread-safe yet. There are a few more globals + that need to be take care of. Let's get the upload working first! + +Daniel (20 September 2000) +- Richard Prescott solved another name lookup buffer size problem. I took this + opportunity to rewrite the GetHost() function. With these large buffer + sizes, I think keeping them as local arrays quickly turn ugly. I now use + malloc() to get the buffer memory. Thanks to this, I now can realloc() to a + large buffer in case of demand (errno == ERANGE) in case a solution like + that would become necessary. I still want to avoid that kind of nastiness. + +- Tried to compile and run curl on Linux for alpha and FreeBSD for alpha. Went + as smooth as it could. + +- Added a docs/examples directory with two tiny example sources that show how + to use libcurl. I hope users will supply me with more useful examples + further on. + +- Applied a patch by Jörn Hartroth to no longer use the word 'inteface' in the + config struct in the src/main.c file since certain compilers have that word + "reservered". I figure that is some kind of C++ decease. + +- Updated the curl.1 man page with --interface and --krb4. + +- Modified the base64Encode() function to work like the kerberos one, so that + I could remove the use of that. There is no need for *two* base64 encoding + functions! ;-) + +Version 7.3pre5 + +Daniel (19 September 2000) +- The kerberos4-layer source code that is much "influenced" by the original + krb4 source code, through yafc into curl, was using quite a lot of global + variables. libcurl can't work properly with globals like that why I had to + clean up almost every function in the new security.c to make them use + connection specific variables instead of the globals. I just hope I didn't + destroy anything now... :-) configure updated, version string now reflects + krb4 built-in. It almost works now. Only uploads are still being naughty. + +Version 7.3pre3 + +Daniel (18 September 2000) +- Martin Hedenfalk supplied a major patch that introduces krb4-ftp support to + curl. Martin is the primary author of the ftp client named yafc and he did + not hesitate to help us implement this when I asked him. Many and sincere + thanks to a splendid effort. It didn't even take many hours! + +- Stephen Kick supplied a big patch that introduces the --interface flag to + the curl tool and CURLOPT_INTERFACE for libcurl. It allows you to specify an + outgoing interface to use for your request. This may not work on all + platforms. This needs testing. + +- Richard Prescott noticed that curl on Tru64 unix could core dumped if the + name didn't resolve properly. This was due to the GetHost() function not + returning an error even though it failed on some platforms! + +Daniel (15 September 2000) +- Updated all sorts of documents in regards to the new proxytunnel support. + +Version 7.3pre2 + +Daniel (15 September 2000) +- Kai-Uwe Rommel pointed out a problem in the httpproxytunnel stuff for ftp. + Adjusted it. Added better info message when setting up the tunnel and the + pasv message when doing the second connect. + +Version 7.3pre1 + +Daniel (15 September 2000) +- libcurl now allows "httpproxytunnel" to an arbitrary host and port name. The + second connection on ftp needed that. + +- TheArtOfHTTPScripting was corrected all over. I both type and spell really + bad at times! + +Daniel (14 September 2000) +- -p/--proxytunnel was added to 'curl'. It uses the new + CURLOPT_HTTPPROXYTUNNEL libcurl option that allows "any" protocol to tunnel + through the specified http proxy. At the moment, this should work with ftp. + +Daniel (13 September 2000) +- Jochen Schaeuble found that file:// didn't work as expected. Corrected this + and mailed the patch to the mailing list. + +Daniel (7 September 2000) +- I changed the #define T() in curl.h since it turned out it wasn't really + a good symbol to use (when you compiled PHP with curl as a module, that + define collided with some IMAP define or something). This was posted to the + PHP bug tracker. + +- I added extern "C" stuff in two header files to better allow libcurl usage + in C++ sorces. Discussions on the libcurl list with Danny Horswell lead to + this. + +Version 7.2.1 + +Daniel (31 August 2000) +- Albert Chin-A-Young fixed the configure script *again* and now it seems to + detect Linux name resolving properly! (heard that before?) + +- Troels Walsted Hansen pointed out that downloading a file containing the + letter '+' from an ftp server didn't work. It did work from HTTP though and + the reason was my lame URL decoder. + +- I happened to notice that -I didn't at all work on ftp anymore. I corrected + that. + +Version 7.2 + +Daniel (30 August 2000) +- Understanding AIX is a hard task. I believe I'll never figure out why they + solve things so differently from the other unixes. Now, I'm left with the + AIX 4.3 run-time warnings about duplicate symbols that according to this + article (http://www.geocrawler.com/archives/3/405/1999/9/0/2593428/) is a + libtool flaw. I tried the mentioned patch, although that stops the linking + completely. + + So, if I select to ignore the ld warnings there are compiler warnings that + fill the screen pretty bad when curl compiles. It turns out that if I want + to '#include ', I can get tid of the warnings by include the + following three include files before that one: + + #include + #include + #include + + Now, is it really sane to add those include files before arpa/inet.h in all + the source files that include it? + + Thanks to Albert Chin-A-Young at thewrittenword.com who gave me the AIX + login to try everything on. + +Daniel (24 August 2000) +- Jan Schmidt supplied us a new VC6 makefile for Windows as the previous one + was not up to date but lacked several object files. + +- More work on the naming. + +- Albert Chin-A-Young provided a configure-check for large file support, as + some systems seem to need that for them to work. Had to change the position + for the config.h include file in every .c file in the libcurl dir... + +- As suggested on the mailing list (by Troy Engel), I did use a --data-binary + option instead of the messy way I've left described below. It seems to + work. The libcurl fix remained the same as yesterday. + +Daniel (23 August 2000) +- Back on the -d stripping newlines thing. The 'plain post' thing was added + when I had no thought of that one could actually post binary data with + it. Now, I have to add this functionality in a graceful manner and I think + I've managed to come up with a way: '-d @file;binary' will thus post the + file binary, exactly as its contents are. It is implemented with a new + *setopt() option (CURLOPT_POSTFIELDSIZE) to set the postfield size, since + libcurl can't strlen() the data in these cases. + +- Albert Chin-A-Young made some very serious efforts and all the name + resolving problems seem to have been sorted out now on all the platforms + that previously showed them. I'll make another release now anyday because of + this. + +- The FAQ was much enhanced when it comes to the licensing issues thanks to + Bjorn Reese. + +Daniel (21 August 2000) +- Rick Welykochy pointed out a problem when you use -d to post and you want to + keep the newlines, as curl strips them off as a bonus before posting... + This needs to be addressed. + +Version 7.1.1 + +Daniel (21 August 2000) +- Got more people involved in the gethostbyname_r() mess. Caolan McNamara sent + me configure-code that turned out to be very similar to my existing tests + which only make me more sure I'm on the right path. I changed the order of + the tests slightly, as it seems that some compilers don't yell error if a + function is used with too many parameters. Thus, the first tested function + will seem ok... Let's hope more compilers think of too-few parameters as bad + manners, as we're now trying the functions in that order; fewer first. I + should also add that Lars Hecking mailed me and volunteered to run tests on + a few odd systems. Coalan is keeping his work over at + http://www.csn.ul.ie/~caolan/publink/gethostbyname_r/. Might be handy in the + future as well. + +Daniel (18 August 2000) +- I noticed I hadn't increased the name lookup buffer in lib/ftp.c. I don't + think this is the reason for the continued trouble though. + +Daniel (17 August 2000) +- Fred Noz corrected my stupid mistakes in the gethostbyname_r() fluff. It + should affect some AIX, Digital Unix and HPUX 10 systems. + +Daniel (15 August 2000) +- Mathieu Legare compiled and build 7.1 without errors on both AIX 4.2 as well + as AIX 4.3. Now why did problems occur before? + +- Fred Noz reported a -w/--write-out bug that caused it to malfunction when + used combined with multiple URL retrievales. All but the first display got + screwed up! + +Daniel (11 August 2000) +- Jason Priebe and an anonymous friend found some host names the Linux version + of curl could not resolve. It turned out the buffer used to retrieve that + information was too small. Fixed. One could argue about the usefulness of + not having the slightest trace of a man page for gethostbyname_r() on my + Linux Redhat installation... + +Daniel (10 August 2000) +- Balaji S Rao was first in line to note the missing possibility to replace + the Content-Type: and Content-Length: headers when doing -d posts. I added + the possibility just now. It seems some people wants to do standard posts + using custom Content-Types. + +Daniel (8 August 2000) +- Mike Dowell correctly discovered that curl did not approve of URLs with no + user name but password. As in 'http://:foo@haxx.se'. I corrected this. + +Version 7.1 + +Daniel (7 August 2000) +- My AIX 4 fix does not work. I need help from a AIX 4 hacker. + +- I added my new document in the docs directory. It is aimed to become a sort + of tutorial on how to do HTTP scripting with curl. + +Daniel (4 August 2000) +- Working with Rich Gray on compiling curl for lots of different platforms. + My fix for AIX 3.2 was not good enough and was slightly changed, I had to + move an include file before another, as is now described in the source. + + AIX 4.2 (4.X?) has different gethostbyname_r() and gethostbyaddr_r() + functions that the configure script didn't check for and thus the compile + broke with an error. I have now changed the gethostbyname_r() check in the + configure file to support all three versions of both these functions. My + implementation that uses the AIX-style is though not yet verified and I may + get problems to fix it if it turns out to bug since I don't have access to + any system using that. + + For problems like that, I made the configure script allow --disable-thread + to completely switch off the check for threadsafe versions of a few + functions and thus go with the "good old versions" that tend to work + although will break thread-safeness for libcurl. Most people won't use + libcurl for other things than curl though, and curl doesn't need a + thread-safe lib. + +- Working on my big tutorial about HTTP scripting with curl. + +Daniel (1 August 2000) +- Rich Gray spotted a problem in src/setup.h caused by a #define strequal() + that was just a left-over from passed times. The strequal() is now a true + function supplied by libcurl for a portable case insensitive string + comparison. I added the prototypes in include/curl.h and removed the + now obsolete #define. + +- Igor Khristophorov made a fix to allow resumed download from Sun's + JavaWebServer/1.1.1. It seems that their server sends bad Content-Range + headers. + +- The makefiles forced a static library build, which is bad since we now use + libtool and thus have excellent shared library support! Albert Chin-A-Young + found out. + +Version 7.0.11beta + +Daniel (1 August 2000) +- Albert Chin-A-Young pointed out that 'make install' did not properly create + the header include directory, why it failed to install the header files as + it should. Automake isn't really equipped to deal with subdirectories + without Makefiles in any nice way. I had to run ahead and add Makefiles in + both include and include/curl before I managed to create a top-level + makefile that succeeds in install everything properly! + +- Ok, no more "features" added now. Let's just verify that there's no major + flaws added now. + +Daniel (31 July 2000) +- Both Jeff Schasny and Ketil Froyn asked me how to tell curl not to send one + of those internally generated headers. They didn't settle with the blank + ones you could tell curl to use. I rewrote the header-replace stuff a + little. Now, if you replace an internal header with your own and that new + one is a blank header you will only remove the internal one and not get any + blank. I couldn't figure out any case when you want that blank header. + +Daniel (29 July 2000) +- It struck me that the lib used localtime() which is not thread-safe, so now + I use localtime_r() in the systems that has it. + +- I went through this entire document and removed all email addresses and left + names only. I've really made an effort to always note who brought be bug + reports or fixes, but more and more people ask me to remove the email + addresses since they become victims for spams this way. Gordon Beaton got me + working on this. + +Daniel (27 July 2000) +- Jörn Hartroth found out that when you specified a HTTP proxy in an + environment variable and used -L, curl failed in the second fetch. I + corrected this problem and posted a patch to the list. No need for an extra + beta release just for this. + +Version 7.0.10beta + +Daniel (27 July 2000) +- So, libtool replaced two of my files with symbolic links and I forgot to add + the two new libtool files to the release archive (and they were added as + symlinks as well!) This of course lead to that the configure script failed + on 7.0.9... + +Version 7.0.9beta + +Daniel (25 July 2000) +- Kristian Köhntopp brought a fix that makes libcurl + libtoolified, just as we've wanted for a while now. He also made the + recently added man pages get installed properly on 'make install' and some + other nice cleanups. + +- In a discussion with Eetu Ojanen it struck me that if we use curl to get a + page using a password, and that page then sends a Location: to another + server that curl follows, curl will send the user name and password to that + server as well. + + Now, I'll never be able to make curl do Location: following all that perfect + and you're all sooner or later required to write a script to do several + fetches when you're doing advanced stuff, but now I've modified curl to at + least *only* send the user name and password to the original server. Which + means that if get a page from server A with a password, that forwards curl + to server B, curl won't use the password there. If server B then forwards + curl back to server A again, the password will be used again. + + This is not a perfect implementation, as in a browser case it would only use + the password if the left-prefix of the first path is the same. I just think + that this fix prevents a somewhat lurky "security hole". + + As a side-note in this subject: HTTP passwords are sent in cleartext and + will never be considered to be safe or secure. Use HTTPS for that. + +- As discussed on the mailing list, I converted the FTP response reading + function into using select() which then allows timeouts (even under win32!) + if the command-reply session gets too slow or dies completely. I made a + default timeout on 3600 seconds unless anything else is specified, since I + don't think anyone wants to wait more than that for a single character to + get received... + +- Torsten Foertsch brought a set of fixes for + the rfc1867 form posts. He introduced 'name=, when transferring + files to/from FTP using type ASCII curl should not expect the transfer to be + the exact size reported by the server as the file size. Since ASCII may very + well mean that the content is translated while transfered, the final size + may very well differ. Therefor, curl now ignores the file size when doing + ASCII transfers in FTP. + +Daniel (24 July 2000) +- Added CURLOPT_PROXYPORT to the curl_easy_setopt() call to allow the proxy + port number to be set separately from the proxy host name. + +- Andrew pointed out a netrc manual bug. + +- The FTP transfer code now accepts a 250-code as well as the previously + accepted 226, after a successful file transfer. Mohan pointed this out. + +- The check for *both* nsl and socket was never added in the v7 configure.in + when I moved the main branch. I re-added that check to configure.in. This was + discovered by Rich Gray. + +- Howard, Blaise pointed out a missing free() in + curl_disconnect() which of course meant libcurl ate memory. + +- Brian E. Gallew noted that the HTTP 'Host:' header curl sent did not + properly include the port number if non-default ports were used. This should + now have been fixed. + +- HTTP connect errors now return errors earlier. This was most notably causing + problems when the HTTPS certificate had problems and later caused a crash. + Many thanks to Gregory Nicholls for discovering + and suggesting a fix... + +Daniel (21 June 2000) +- After a "bug report" I received where the user was using both -F and -I in a + HTTP request (it severly confused the library I should add), I added some + checks to src/main.c that prevents setting more than one HTTP request + command, no matter what the user wants! ;-) + +Version 7.0.8beta + +Daniel (20 June 2000) +- I did a major replace in many files to use the new curl domain haxx.se + instead of the previous one. + +- As Eetu Ojanen suggested, I finally took the step and now libcurl no longer + makes a POST after it has followed a location. When the initial POST has + been done, it'll turned into a GET for the further requests. This is only + interesting when using -L/--location *and* doing a POST at the same time. + + While messing with this, I added another weird feature I call 'auto + referer'. If you append ';auto' to the right of a given referer string (or + only use that string as referer), libcurl will automatically set the + previoud URL as refered when it follows a Location: and gets a succeeding + document. + +- My hero Rich Gray found the very obscure FTP bug that happened to him only + when passing through a particular firewall and using the PORT command. It + turned out that PORT was the only command in the lib/ftp.c source that + didn't send a proper \r\n sequence but instead used the faulty \n which as + it seemed is supported by most major ftp servers... :-O + +Version 7.0.7beta + +Daniel (16 June 2000) +- I had avoided this long enough now, so I moved the alternative progress bar + stuff from the lib and added it to the client code. This is now using the + recently added progress callback and it seems to work pretty much like + before. Since it is only one progress bar and you and download and upload at + the same time, this bar shows the combined progress of both directions. This + code was just ported from the old place to this, Lars is still our saviour! + ;-) This also made the documentation more accurate since I never removed + this function from any docs! Although I now removed the CURLOPT_PROGRESSMODE + from the library since the lib has only one internal progress meter and it + will never get another. It is although likely that the internal one also + will be moved to the client code in the future (when I have other means of + getting the writeout data and move that too to the client). + +- I took the opportunity to verify that standard progress meter works and I + found out it didn't get inited properly. Grrr. I corrected that as well. + +Daniel (15 June 2000) +- I thought I'd better verify that the -F option still works in v7 and of + course it didn't... :-/ Anyway, I had the problems I could discover + corrected. About one month of beta testing and not a single person has used + this feature with v7? + +- Björn correctly pointed out that the --progress-bar still doesn't work in + v7. Hm. + +Daniel (14 June 2000) +- Tim Tassonis discovered that curl 7 didn't handle normal http POST as it + should. I corrected this. + +Version 7.0.6beta + +Daniel (14 June 2000) +- Björn Stenberg pointed out several problems (related to win32 compiling): + lib/strequal.c had a bad #ifdef for one of the string comparisons (win32) + src/main.c had several minor problems + lib/makefile.m32 had getpass.[co] twice + src/config-win32.h lacked the HAVE_FCNTL_H define + both config-win32.h files now only set the HAVE_UNISTD_H define if the + define MINGW32 is set, and I modified src/makefile.m32 and lib/makefile.m32 + to set it. + +Version 7.0.5beta + +Daniel (14 June 2000) +- Applied Luong Dinh Dung's comments about a few win32 compile problems. + +- Applied Björn Stenberg's suggested fix that turns the win32 stdout to + binary. It won't do it if the -B / --use-ascii option is used. That option + is now an extended version of the previous -B /--ftp--ascii. The flag was + already in use be the ldap as well so the new name fits pretty good. The + libcyrl CURLOPT_TRANSFERTEXT was also introduced as an alias to the now + obsolete CURLOPT_FTPASCII. Can't verify this fix myself as I have no win32 + compiler around. + +Daniel (13 June 2000) +- Luong Dinh Dung found a problem in curl_easy_cleanup() + since it free()ed the main curl struct *twice*. This is now corrected. + +Daniel (9 June 2000) +- Updated the RESOURCES file, added a README.win32 file. + +Daniel (8 June 2000) +- So I finally added the progress callback to the *setopt() options and it + should work now. I don't have the energy to write any test program for it + right now. +- Made the callback function typedefs public in curl/curl.h for comfort. Just + in case anyone wanna fiddle with such pointers. +- Updated the curl_easy_setopt() man page accordingly. + +Version 7.0.4beta + +Daniel (2 June 2000) +- I noticed that when doing Location: following, we lost custom headers in all + but the first request. +- Removed the 'HttpPost' struct and moved the header stuff to the more generic + curl_slist. +- Added some better slist-cleanups in src/main.c + +Version 7.0.3beta + +Daniel (31 May 2000) +- So I discovered that I released the 7.0.2beta without it being able to + compile under Linux. gethostbyname_r() and gethostbyaddr_r() turned out to + feature a different amount of arguments on different systems so I had to add + a configure check for this and adjust the code slightly. + +Version 7.0.2beta + +Daniel (29 May 2000) +- Corrected the bits.* assignments when using CURLOPT options that only + toggles one of those bits. + +- Applied the huge patches from David LeBlanc that add + usage of the gethostbyname_r() and similar functions in case they're around, + since that make libcurl much better threadsafe in many systems (such as + solaris). I added the checks for these functions to the configure script. + + I can't explain why, but the inet_ntoa_r() function did not appear in my + Solaris include files, I had to add my own include file for this for now. + +Daniel (22 May 2000) +- Jörn Hartroth brought me fixes to make the win32 version compile properly as + well as a rename of the 'interface' field in the urldata struct, as it seems + to be reserved in some gcc versions! + +- Rich Gray struck back with yet some portability reports. Data General DG/UX + needed a little fix in lib/ldap.c since it doesn't have RTLD_GLOBAL defined. + More fixes are expected as a result of Richies very helpful work. + +Version 7.0.1beta + +Daniel (21 May 2000) +- Updated lots of #defines, enums and variable type names in the library. No + more weird URG or URLTAG prefixes. All types and names should be curl- + prefixed to avoid name space clashes. The FLAGS-parameter to the former + curl_urlget() has been converted into a bunch of flags to use in separate + setopt calls. I'm still focusing on the easy-interface, as the curl tool is + now using that. + +- Bjorn Reese has provided me with an asynchronous name resolver that I plan + to use in upcoming versions of curl to be able to gracefully timeout name + lookups. + +Version 7.0beta + +Daniel (18 May 2000) +- Introduced LIBCURL_VERSION_NUM to the curl.h include file to better allow + source codes to be dependent on the lib version. This define is now set to + a dexadecimal number, with 8 bits each for major number, minor number and + patch number. In other words, version 1.2.3 would make it 0x010203. It also + makes a larger number a newer version. + +Daniel (17 May 2000) +- Martin Kammerhofer correctly pointed out several flaws in the FTP range + option. I corrected them. +- Removed the win32 winsock init crap from the lib to the src/main.c file + in the application instead. They can't be in the lib, especially not for + multithreaded purposes. + +Daniel (16 May 2000) +- Rewrote the src/main.c source to use the new easy-interface to libcurl 7. + There is still more work to do, but the first step is now taken. + is the include file to use. + +Daniel (14 May 2000) +- FTP URLs are now treated slightly different, more according to RFC 1738. +- FTP sessions are now performed differently, with CWD commands to change + directory instead of RETR/STOR/LIST with the full path. Discussions with + Rich Gray made me notice these problems. +- Janne Johansson discovered and corrected a buffer overflow in the + src/usrglob.c file. +- I had to add a lib/strequal.c file for doing case insensitive string + compares on all platforms. + +Daniel (8 May 2000): +- Been working lots on the new lib. +- Together with Rich Gray, I've tried to adjust the configure script to work + better on the NCR MP-RAS Unix. + +Daniel (2 May 2000): +- Albert Chin-A-Young pointed out that I had a few too many instructions in + configure.in that didn't do any good. + +Daniel (24 April 2000): +- Added a new paragraph to the FAQ about what to do when configure can't + find OpenSSL even though it is installed. Supplied by Bob Allison + +Daniel (12 April 2000): +- Started messing around big-time to convert the old library interface to a + better one... + +Daniel (8 April 2000): +- Made the progress bar look better for file sizes between 9999 kilobytes + and 100 megabytes. They're now displayed XX.XM. +- I also noticed that ftp fetches through HTTP proxies didn't add the user + agent string. It does now. +- Habibie supplied a pretty good way to build RPMs + on a Linux machine. It still a) requires me to be root to do it, b) leaves + the rpm packages laying at some odd place on my disk c) doesn't work to + build the ssl version of curl since I didn't install openssl from an rpm + package so now the rpm crap thinks I don't have openssl and refuses to build + a package that depends on ssl... Did I mention I don't get along with RPM? +- Once again I received a bug report about autoconf not setting -L prior to -l + on the command line when checking for libs. In this case it made the native + cc compiler on Solaris 7 to fail the OpenSSL check. This has previously been + reported to cause problems on HP-UX and is a known flaw in autoconf 2.13. It + is a pity there's no newer release around... + +Daniel (4 April 2000): +- Marco G. Salvagno supplied me with two fixes that + appearantly makes the OS/2 port work better with multiple URLs. + +Daniel (2 April 2000): +- Another Location: fix. This time, when curl connected to a port and then + followed a location with an absolute URL to another port, it misbehaved. + +Daniel (27 March 2000): +- H. Daphne Luong pointed out that curl was wrongly + messing up the proxy string when fetching a document through a http proxy, + which screwed up multiple fetches such as in location: followings. + +Daniel (23 March 2000): +- Marco G. Salvagno corrected my badly applied patch he + actually already told me about! + +- H. Daphne Luong brought me a fix that now makes curl + ignore select() errors in the download if errno is EINTR, which turns out to + happen every now and then when using libcurl multi-threaded... + +Daniel (22 March 2000): +- Wham Bang supplied a couple of win32 fixes. HAVE_UNAME + was accidentally #defined in config-win32.h, which it shouldn't have been. + The HAVE_UNISTD_H is not defined when compiling with the Makefile.vc6 + makefile for MS VC++. + +Daniel (21 March 2000): +- I removed the AC_PROG_INSTALL macro from configure.in, since it appears that + one of the AM_* macros searches for a BSD compatible install already. Janne + Johansson made me aware of this. + +Version 6.5.2 + +Daniel (21 March 2000): +- Paul Harrington quickly pointed out to me that 6.5.1 + crashes hard. I upload 6.5.2 now as quickly as possible! The problem was + the -D adjustments in src/main.c. + +Version 6.5.1 + +Daniel (20 March 2000): +- An anonymous post on sourceforge correctly pointed out a possible buffer + overflow in the curl_unescape() function for URL conversions. The main + problem with this bug is that the ftp download uses that function and this + single- byte overflow could lead to very odd bugs (as one reported by Janne + Johansson). + +Daniel (19 March 2000): +- Marco G. Salvagno supplied me with a series of patches + that now allows curl to get compiled on OS/2. It even includes a section in + the INSTALL file. Very nice job! + +Daniel (17 March 2000): +- Wham Bang supplied a patch for the lib/Makefile.vc6 + file. We still need some fixes for the config-win32.h since it appears that + VC++ and mingw32 have different opinions about (at least) unistd.h's + existence. + +Daniel (15 March 2000): +- I modified the -D/--dump-header workings so that it doesn't write anything + to the file until it needs to. This way, you can actually use -b and -D + on the same file if you want repeated invokes to store and read the cookies + in that one single file. + +- Poked around in lots of texts. Added the BUGS file for bug reporting stuff. + Added the classic HTTP POST question to the FAQ, removed some #ifdef WIN32 + stuff from the sources (they're covered by the config-win32.h now). + +- Pascal Gaudette fixed a missing ldap.c problem in the + Makefile.vc6 file. He also addressed a problem in src/config-win32.h. + +Daniel (14 March 2000): +- Paul Harrington pointed out that the 'http_code' variable in the -w output + was never written. I fixed it now. + +- Janne Johansson reported the complaints that OpenBSD does + when getdate.c #includes malloc.h. It claims stdlib.h should be included + instead. I added #ifdef HAVE_MALLOC_H code in getdate.y and two checks in + the configure.in for malloc.h and stdlib.h. + +Version 6.5 + +Daniel (13 March 2000): +- pointed out that the way curl sent cookies in a + single line wasn't enjoyed by IIS4.0 servers. In my view, that is not what + the standards say, but I added a white space between the name/value pairs to + perhaps make them work better. + +- Added the perl check back in the configure.in again since the mkhelp.pl + script needs it! + +- Made some beautifications in the curl man page. + +Daniel (3 March 2000): +- Jörn helped me update the config-win32.h files with HAVE_SETVBUF and + HAVE_STRDUP. + +Daniel (3 March 2000): +- Uploaded the 6.5pre2 package. + +Daniel (2 March 2000): +- Removed the perl-programs from the distribution, they never made many people + happy and I'll still keep them available on the web. + +- Added the -w and -N stuff to the man page. Documented the new progress meter + display in README.curl. + +- Jörn Hartroth, Chris and Ulf + Möller from the openssl development team helped bringing me the details for + fixing an OpenSSL usage flaw. It became apparent when they released openssl + 0.9.5 since that barfed on curl's bad behavior (not seeding a random number + thing). + +- Yet another option: -N/--no-buffer disables buffering in the output stream. + Probably most useful for very slow transfers when you really want to get + every byte curl receives within some preferred time. Andrew + suggested this. + +- Damien Adant mailed me his fixes for making curl compile on Ultrix. + +Daniel (24 February 2000): +- Applied Jörn Hartroth's fixes for config-win32.h and lib/Makefile.w32. + + I should also make a note here, if nothing else to myself, that when using + the %-syntax for variables in DOS command prompts, you must use two %- + letters for each one since that is an escape letter there! Maybe I should + use another letter instead! + +- Added more variables to -w: + + 'http_code' + 'time_namelookup' + 'time_connect' + 'time_pretransfer' + 'url_effective' + +- Made -w@filename read the syntax from a file and -w@- reads the syntax from + stdin in the good old "standard" curl way. + +Daniel (22 February 2000): +- Released a 6.5pre1 version to get some test and user feedback. + +Daniel (21 February 2000): + +- I added the -w/--write-out flag and some variables to go with it. -w is a + single string, whatever you enter there will be written out when curl has + completed a successful request. There are some variable substitutions and + they are specified as '%{variable}' (without the quotes). Variables that + exist as of this moment are: + + total_time - total transfer time in seconds (with 2 decimals) + size_download - total downloaded amount of bytes + size_upload - total uploaded amount of bytes + speed_download - the average speed of the entire download + speed_upload - the average speed of the entire upload + + I will of course add more variables, but I need input on these and others. + +- It struck me that the -# progress bar will be hard to just apply on the new + progress bar concept. I need some feedback on this before that'll get re- + introduced! :-/ + +Daniel (16 February 2000): +- Jörn Hartroth brought me some fixes for the progress meter and I continued + working on it. It seems to work for http download, http post, ftp download + and ftp upload. It should be a pretty good test it works generally good. + +- Still need to add the -# progress bar into the new style progress interface. + +- Gonna have a go at my new output option parameter next. + +Daniel (15 February 2000): +- The progress meter stuff is slowly taking place. There's more left before it + is working ok and everything is tested, but we're reaching there. Slowly! + +Daniel (11 February 2000): +- Paul Marquis fixed the config file parsing of curl to + deal with any-length lines, removing the previous limit of 4K. + +- Eetu Ojanen's suggestion of supporting the @-style for -b + is implemented. Now -b@ works as well as the old style. -b@- also + similarly reads the cookies from stdin. + +- Reminder: -D should not write to the file until it needs to, in the same way + -o does. That would enable curl to use -b and -D on the same file... + +- Ellis Pritchard made getdate.y work for MacOS X. + +- Paul Harrington helped me out finding the crash in the + cookie parser. He also pointed out curl's habit of sending empty cookies to + the server. + +Daniel (8 February 2000): + - Ron Zapp corrected a problem in src/urlglob.c that + prevented curl from getting compiled on sunos 4. The problem had to do + with the difference in sprintf() return code types. + + - Transfer() should now be able to download and upload simultaneously. Let's + do some progress meter fixes later this week. + +Daniel (31 January 2000): + - Paul Harrington found another core dump in the cookie + parser. Curl doesn't properly recognize the 'version' keyword and I think + that is what caused this. I need to refresh some specs on cookies and see + what else curl lacks to improve this a bit more once and for all. + + RFC 2109 clearly specifies how cookies should be dealt with when they are + compliant with that spec. I don't think many servers are though... + + - Mark W. Eichin found that while curl is uploading a form + to a web site, it doesn't read incoming data why it'll hang after a while + since the socket "pipe" becomes full. + + It took me two hours to rewrite Download() and Upload() into the new + single function Transfer(). It even seems to work! More testing is required + of course... I should get the header-sending together in a kind of queue + and let them get "uploaded" in Transfer() as well. + + - Zhibiao Wu pointed out a curl bug in the location: area, + although I did not get a reproducible way to do this why I have to wait + with fixing anything. + + - Bob Schader suggested I should implement resume + support for the HTTP PUT operation, and as I think it is a valid suggestion + I'll work on it. + +Daniel (25 January 2000): + - M Travis Obenhaus pointed out a manual mixup with -y and -Y that was + corrected. + + - Jens Schleusener pointed out a problem to compile + curl on AIX 4.1.4 and gave me a solution. This problem was already fixed + by Jörn's recent #include modifications! + +Daniel (19 January 2000): + - Oskar Liljeblad pointed out and corrected a problem + in the Location: following system that made curl following a location: to a + different protocol to fail. + + At January 31st I re-considered this fix and the surrounding source code. I + could not really see that the patch did any difference, why I removed it + again for further research and debugging. (It disabled location: following + on server not running on default ports.) + + - Jörn Hartroth brought a fix that once again + made it possible to select progress bar. + + - Jörn also fixed a few include problems. + +Version 6.4 + +Daniel (17 January 2000): + - Based on suggestions from Björn Stenberg, I made the + progress deal better with larger files and added a "Time" field which shows + the time spent on the download so far. + - I'm now using the CVS repository on sourceforge.net, which also allows web + browsing. See http://curl.haxx.nu. + +Daniel (10 January 2000): + - Renumbered some enums in curl/curl.h since tag number 35 was used twice! + - Added "postquote" support to the ftp section that enables post-ftp-transfer + quote commands. + - Now made the -Q/--quote parameter recognize '-' as a prefix, which means + that command will be issued AFTER a successful ftp transfer. This can of + course be used to delete or rename a file after it has been uploaded or + downloaded. Use your imagination! ;-) + - Since I do the main development on solaris 2.6 now, I had to download and + install GNU groff to generate the hugehelp.c file. The solaris nroff cores + on the man page! So, in order to make the solaris configure script find a + better result I made gnroff get checked prior to the regular nroff. + - Added all the curl exit codes to the man page. + - Jim Gallagher properly tracked down a bug in autoconf + 2.13. The AC_CHECK_LIB() macro wrongfully uses the -l flag before the -L + flag to 'ld' which causes the HP-UX 10.20 flavour to fail on all libchecks + and therefore you can't make the configure script find the openssl libs! + +Daniel (28 December 1999): + - Tim Verhoeven correctly identified that curl + doesn't support URL formatted file names when getting ftp. Now, there's a + problem with getting very weird file names off FTP servers. RFC 959 defines + that the file name syntax to use should be the same as in the native OS of + the server. Since we don't know the peer server system we currently just + translate the URL syntax into plain letters. It is still better and with + the solaris 2.6-supplied ftp server it works with spaces in the file names. + +Daniel (27 December 1999): + - When curl parsed cookies straight off a remote site, it corrupted the input + data, which, if the downloaded headers were stored made very odd characters + in the saved data. Correctly identified and reported by Paul Harrington. + +Daniel (13 December 1999): + - General cleanups in the library interface. There had been some bad kludges + added during times of stress and I did my best to clean them off. It was + both regarding the lib API as well as include file confusions. + +Daniel (3 December 1999): + - A small --stderr bug was reported by Eetu Ojanen... + + - who also brought the suggestion of extending the -X flag to ftp list as + well. So, now it is and the long option is now --request instead. It is + only for ftp list for now (and the former http stuff too of course). + +Lars J. Aas (24 November 1999): + - Patched curl to compile and build under BeOS. Doesn't work yet though! + + - Corrected the Makefile.am files to allow putting object files in + different directories than the sources. + +Version 6.3.1 + +Daniel (23 November 1999): + - I've had this major disk crash. My good old trust-worthy source disk died + along with the machine that hosted it. Thank goodness most of all the + things I've done are either backed up elsewhere or stored in this CVS + server! + + - Michael S. Steuer pointed out a bug in the -F handling + that made curl hang if you posted an empty variable such as '-F name='. It + was one of those old bugs that never have worked properly... + + - Jason Baietto pointed out a general flaw in the HTTP + download. Curl didn't complain if it was prematurely aborted before the + entire download was completed. It does now. + +Daniel (19 November 1999): + - Chris Maltby very accurately criticized the lack of + return code checks on the fwrite() calls. I did a thorough check for all + occurrences and corrected this. + +Daniel (17 November 1999): + - Paul Harrington pointed out that the -m/--max-time option + doesn't work for the slow system calls like gethostbyname()... I don't have + any good fix yet, just a slightly less bad one that makes curl exit hard + when the timeout is reached. + + - Bjorn Reese helped me point out a possible problem that might be the reason + why Thomas Hurst experience problems in his Amiga version. + + Daniel (12 November 1999): + - I found a crash in the new cookie file parser. It crashed when you gave + a plain http header file as input... + +Version 6.3 + + Daniel (10 November 1999): + - I kind of found out that the HTTP time-conditional GETs (-z) aren't always + respected by the web server and the document is therefore sent in whole + again, even though it doesn't match the requested condition. After reading + section 13.3.4 of RFC 2616, I think I'm doing the right thing now when I do + my own check as well. If curl thinks the condition isn't met, the transfer + is aborted prematurely (after all the headers have been received). + + - After comments from Robert Linden I also rewrote some parts of the man page + to better describe how the -F works. + + - Michael Anti put up a new curl download mirror in + China: http://www.pshowing.com/curl/ + + - I added the list of download mirrors to the README file + + - I did add more explanations to the man page + + Daniel (8 November 1999): + - I made the -b/--cookie option capable of reading netscape formatted cookie + files as well as normal http-header files. It should be able to + transparently figure out what kind of file it got as input. + + Daniel (29 October 1999): + - Another one of Sebastiaan van Erk's ideas (that has been requested before + but I seem to have forgotten who it was), is to add support for ranges in + FTP downloads. As usual, one request is just a request, when they're two + it is a demand. I've added simple support for X-Y style fetches. X has to + be the lower number, though you may omit one of the numbers. Use the -r/ + --range switch (previously HTTP-only). + + - Sebastiaan van Erk suggested that curl should be + able to show the file size of a specified file. I think this is a splendid + idea and the -I flag is now working for FTP. It displays the file size in + this manner: + Content-Length: XXXX + As it resembles normal headers, and leaves us the opportunity to add more + info in that display if we can come up with more in the future! It also + makes sense since if you access ftp through a HTTP proxy, you'd get the + file size the same way. + + I changed the order of the QUOTE command executions. They're now executed + just after the login and before any other command. I made this to enable + quote commands to run before the -I stuff is done too. + + - I found out that -D/--dump-header and -V/--version weren't documented in + the man page. + + - Many HTTP/1.1 servers do not support ranges. Don't ask me why. I did add + some text about this in the man page for the range option. The thread in + the mailing list that started this was initiated by Michael Anti. + + - I get reports about nroff crashes on solaris 2.6+ when displaying the curl + man page. Switch to gnroff instead, it is reported to work(!). Adam Barclay + reported and brought the suggestion. + + - In a dialogue with Johannes G. Kristinsson we came + up with the idea to let -H/--header specified headers replace the + internally generated headers, if you happened to select to add a header + that curl normally uses by itself. The advantage with this is not entirely + obvious, but in Johannes' case it means that he can use another Host: than + the one curl would set. + + Daniel (27 October 1999): + - Jongki Suwandi brought a nice patch for (yet another) crash when following + a location:. This time you had to follow a https:// server's redirect to + get the core. + +Version 6.2 + + Daniel (21 October 1999): + - I think I managed to remove the suspicious (nil) that has been seen just + before the "Host:" in HTTP requests when -v was used. + - I found out that if you followed a location: when using a proxy, without + having specified http:// in the URL, the protocol part was added once again + when moving to the next URL! (The protocol part has to be added to the + URL when going through a proxy since it has no protocol-guessing system + such as curl has.) + - Benjamin Ritcey reported a core dump under solaris 2.6 + with OpenSSL 0.9.4. It turned out this was due to a bad free() in main.c + that occurred after the download was done and completed. + - Benjamin found ftp downloads to show the first line of the download meter + to get written twice, and I removed that problem. It was introduced with + the multiple URL support. + - Dan Zitter correctly pointed out that curl 6.1 and earlier versions didn't + honor RFC 2616 chapter 4 section 2, "Message Headers": "...Field names are + case-insensitive..." HTTP header parsing assumed a certain casing. Dan + also provided me with a patch that corrected this, which I took the liberty + of editing slightly. + - Dan Zitter also provided a nice patch for config.guess to better recognize + the Mac OS X + - Dan also corrected a minor problem in the lib/Makefile that caused linking + to fail on OS X. + + Daniel (19 October 1999): + - Len Marinaccio came up with some problems with curl. Since Windows has a + crippled shell, it can't redirect stderr and that causes trouble. I added + --stderr today which allows the user to redirect the stderr stream to a + file or stdout. + + Daniel (18 October 1999): + - The configure script now understands the '--without-ssl' flag, which now + totally disable SSL/https support. Previously it wasn't possible to force + the configure script to leave SSL alone. The previous functionality has + been retained. Troy Engel helped test this new one. + +Version 6.1 (October 17 1999) + + Daniel (17 October 1999): + - I ifdef'ed or commented all the zlib stuff in the sources and configure + script. It turned out we needed to mock more with zlib than I initially + thought, to make it capable of downloading compressed HTTP documents and + uncompress them on the fly. I didn't mean the zlib parts of curl to become + more than minor so this means I halt the zlib expedition for now and wait + until someone either writes the code or zlib gets updated and better + adjusted for this kind of usage. I won't get into details here, but a + short a summary is suitable: + - zlib can't automatically detect whether to use zlib or gzip + decompression methods. + - zlib is very neat for reading gzipped files from a file descriptor, + although not as nice for reading buffer-based data such as we would + want it. + - there are still some problems with the win32 version when reading from + a file descriptor if that is a socket + + Daniel (14 October 1999): + - Moved the (external) include files for libcurl into a subdirectory named + curl and adjusted all #include lines to use to maintain a + better name space and control of the headers. This has been requested. + + Daniel (12 October 1999): + - I modified the 'maketgz' script to perform a 'make' too before a release + archive is put together in an attempt to make the time stamps better and + hopefully avoid the double configure-running that use to occur. + + Daniel (11 October 1999): + - Applied Jörn's patches that fixes zlib for mingw32 compiles as well as + some other missing zlib #ifdef and more text on the multiple URL docs in + the man page. + +Version 6.1beta + + Daniel (6 October 1999): + - Douglas E. Wegscheid sent me a patch that made the exact same thing as I + just made: the -d switch is now capable of reading post data from a named + file or stdin. Use it similarly to the -F. To read the post data from a + given file: + + curl -d @path/to/filename www.postsite.com + + or let curl read it out from stdin: + + curl -d @- www.postit.com + + Jörn Hartroth (3 October 1999): + - Brought some more patches for multiple URL functionality. The MIME + separation ideas are almost scrapped now, and a custom separator is being + used instead. This is still compile-time "flagged". + + Daniel + - Updated curl.1 with multiple URL info. + + Daniel (30 September 1999): + - Felix von Leitner brought openssl-check fixes for configure.in to work + out-of-the-box when the openssl files are installed in the system default + dirs. + + Daniel (28 September 1999) + - Added libz functionality. This should enable decompressing gzip, compress + or deflate encoding HTTP documents. It also makes curl send an accept that + it accepts that kind of encoding. Compressed contents usually shortens + download time. I *need* someone to tell me a site that uses compressed HTTP + documents so that I can test this out properly. + + - As a result of the adding of zlib awareness, I changed the version string + a little. I plan to add openldap version reporting in there too. + + Daniel (17 September 1999) + - Made the -F option allow stdin when specifying files. By using '-' instead + of file name, the data will be read from stdin. + +Version 6.0 (September 14 1999) + + Daniel (13 September 1999) + - Added -X/--http-request to enable any HTTP command to be sent. + Do not that your server has to support the exact string you enter. This + should possibly a string like DELETE or TRACE. + + - Applied Douglas' mingw32-fixes for the makefiles. + + Daniel (10 September 1999) + - Douglas E. Wegscheid pointed out a problem. Curl didn't check the FTP + servers return code properly after the --quote commands were issued. It + took anything non 200 as an error, when all 2XX codes should be accepted as + OK. + + - Sending cookies to the same site in multiple lines like curl used to do + turned out to be bad and breaking the cookie specs. Curl now sends all + cookies on a single Cookie: line. Curl is not yet RFC 2109 compliant, but I + doubt that many servers do use that syntax (yet). + + Daniel (8 September 1999) + - Jörn helped me make sure it still compiles nicely with mingw32 under win32. + + Daniel (7 September 1999) + - FTP upload through proxy is now turned into a HTTP PUT. Requested by + Stefan Kanthak. + + - Added the ldap files to the .m32 makefile. + + Daniel (3 September 1999) + - Made cookie matching work while using HTTP proxy. + + Bjorn Reese (31 August 1999) + - Passed his ldap:// patch. Note that this requires the openldap shared + library to be installed and that LD_LIBRARY_PATH points to the + directory where the lib will be found when curl is run with a + ldap:// URL. + + Jörn Hartroth (31 August 1999) + - Made the Mingw32 makefiles into single files. + - Made file:// work for Win32. The same code is now used for unix as well for + performance reasons. + + Douglas E. Wegscheid (30 August 1999) + - Patched the Mingw32 makefiles for SSL builds. + + Matthew Clarke (30 August 1999) + - Made a cool patch for configure.in to allow --with-ssl to specify the + root dir of the openssl installation, as in + + ./configure --with-ssl=/usr/ssl_here + + - Corrected the 'reconf' script to work better with some shells. + + Jörn Hartroth (26 August 1999) + - Fixed the Mingw32 makefiles in lib/ and corrected the file.c for win32 + compiles. + +Version 5.11 + + Daniel (25 August 1999) + - John Weismiller pointed out a bug in the header-line + realloc() system in download.c. + + - I added lib/file.[ch] to offer a first, simple, file:// support. It + probably won't do much good on win32 system at this point, but I see it + as a start. + + - Made the release archives get a Makefile in the root dir, which can be + used to start the compiling/building process easier. I haven't really + changed any INSTALL text yet, I wanted to get some feed-back on this + first. + + Daniel (17 August 1999) + - Another Location: bug. Curl didn't do proper relative locations if the + original URL had cgi-parameters that contained a slash. Nusu's page + again. + + - Corrected the NO_PROXY usage. It is a list of substrings that if one of + them matches the tail of the host name it should connect to, curl should + not use a proxy to connect there. Pointed out to me by Douglas + E. Wegscheid. I also changed the README text a little regarding this. + + Daniel (16 August 1999) + - Fixed a memory bug with http-servers that sent Location: to a Location: + page. Nusu's page showed this too. + + - Made cookies work a lot better. Setting the same cookie name several times + used to add more cookies instead of replacing the former one which it + should've. Nusu brought me an URL that made this + painfully visible... + + Troy (15 August 1999) + - Brought new .spec files as well as a patch for configure.in that lets the + configure script find the openssl files better, even when the include + files are in /usr/include/openssl + +Version 5.10 + + Daniel (13 August 1999) + - SSL_CTX_set_default_passwd_cb() has been modified in the 0.9.4 version of + OpenSSL. Now why couldn't they simply add a *new* function instead of + modifying the parameters of an already existing function? This way, we get + a compiler warning if compiling with 0.9.4 but not with earlier. So, I had + to come up with a #if construction that deals with this... + + - Made curl output the SSL version number get displayed properly with 0.9.4. + + Troy (12 August 1999) + - Added MingW32 (GCC-2.95) support under Win32. The INSTALL file was also + a bit rearranged. + + Daniel (12 August 1999) + - I had to copy a good include file into the curl source + tree to enable the silly win32 systems to compile. The distribution rights + allows us to do that as long as the file remains unmodified. + + - I corrected a few minor things that made the compiler complain when + -Wall -pedantic was used. + + - I'm moving the official curl web page to http://curl.haxx.nu. I think it + will make it easier to remember as it is a lot shorter and less cryptic. + The old one still works and shows the same info. + + Daniel (11 August 1999) + - Albert Chin-A-Young mailed me another correction for NROFF in the + configure.in that is supposed to be better for IRIX users. + + Daniel (10 August 1999) + - Albert Chin-A-Young helped me with some stupid Makefile things, as well as + some fiddling with the getdate.c stuff that he had problems with under + HP-UX v10. getdate.y will now be compiled into getdate.c if the appropriate + yacc or bison is found by the configure script. Since this is slightly new, + we need to test the output getdate.c with win32 systems to make sure it + still compiles there. + + Daniel (5 August 1999) + - I've just setup a new mailing list with the intention to keep discussions + around libcurl development in it. I mainly expect it to be for thoughts and + brainstorming around a "next generation" library, rather than nitpicking + about the current implementation or details in the current libcurl. + + To join our happy bunch of future-looking geeks, enter 'subscribe +
' in the body of a mail and send it to + libcurl-request@listserv.fts.frontec.se. Curl bug reports, the usual curl + talk and everything else should still be kept in this mailing list. I've + started to archive this mailing list and have put the libcurl web page at + www.fts.frontec.se/~dast/libcurl/. + + - Stefan Kanthak contacted me regarding a few problems in the configure + script which he discovered when trying to make curl compile and build under + Siemens SINIX-Z V5.42B2004! + + - Marcus Klein very accurately informed me that src/version.h was not present + in the CVS repository. Oh, how silly... + + - Linus Nielsen rewrote the telnet:// part and now curl offers limited telnet + support. If you run curl like 'curl telnet://host' you'll get all output on + the screen and curl will read input from stdin. You'll be able to login and + run commands etc, but since the output is buffered, expect to get a little + weird output. + + This is still in its infancy and it might get changed. We need your + feed-back and input in how this is best done. + + WIN32 NOTE: I bet we'll get problems when trying to compile the current + lib/telnet.c on win32, but I think we can sort them out in time. + + - David Sanderson reported that FORCE_ALLOCA_H or HAVE_ALLOCA_H must be + defined for getdate.c to compile properly on HP-UX 11.0. I updated the + configure script to check for alloca.h which should make it. + + Daniel (4 August 1999) + - I finally got to understand Marcus Klein's ftp download resume problem, + which turns out to be due to different outputs from different ftp + servers. It makes ftp download resuming a little trickier, but I've made + some modifications I really believe will work for most ftp servers and I do + hope you report if you have problems with this! + + - Added text about file transfer resuming to README.curl. + + Daniel (2 August 1999) + - Applied a progress-bar patch from Lars J. Aas. It offers + a new styled progress bar enabled with -#/--progress-bar. + + T. Yamada (30 July 1999) + - It breaks with segfault when 1) curl is using .netrc to obtain + username/password (option '-n'), and 2) is automatically redirected to + another location (option '-L'). + + There is a small bug in lib/url.c (block starting from line 641), which + tries to take out username/password from user- supplied command-line + argument ('-u' option). This block is never executed on first attempt since + CONF_USERPWD bit isn't set at first, but curl later turns it on when it + checks for CONF_NETRC bit. So when curl tries to redo everything due to + redirection, it segfaults trying to access *data->userpwd. + +Version 5.9.1 + + Daniel (30 July 1999) + - Steve Walch pointed out that there is a memory leak in the formdata + functions. I added a FormFree() function that is now used and supposed to + correct this flaw. + + - Mark Wotton reported: + 'curl -L https://www.cwa.com.au/' core dumps. I managed to cure this by + correcting the cleanup procedure. The bug seems to be gone with my OpenSSL + 0.9.2b, although still occurs when I run the ~100 years old SSLeay 0.8.0. I + don't know whether it is curl or SSLeay that is to blame for that. + + - Marcus Klein: + Reported an FTP upload resume bug that I really can't repeat nor understand. + I leave it here so that it won't be forgotten. + + Daniel (29 July 1999) + - Costya Shulyupin suggested support for longer URLs when following Location: + and I could only agree and fix it! + + - Leigh Purdie found a problem in the upload/POST department. It turned out + that http.c accidentaly cleared the pointer instead of the byte counter + when supposed to. + + - Costya Shulyupin pointed out a problem with port numbers and Location:. If + you had a server at a non-standard port that redirected to an URL using a + standard port number, curl still used that first port number. + + - Ralph Beckmann pointed out a problem when using both CONF_FOLLOWLOCATION + and CONF_FAILONERROR simultaneously. Since the CONF_FAILONERROR exits on + the 302-code that the follow location header outputs it will never show any + html on location: pages. I have now made it look for >=400 codes if + CONF_FOLLOWLOCATION is set. + + - 'struct slist' is now renamed to 'struct curl_slist' (as suggested by Ralph + Beckmann). + + - Joshua Swink and Rick Welykochy were the first to point out to me that the + latest OpenSSL package now have moved the standard include path. It is now + in /usr/local/ssl/include/openssl and I have now modified the --enable-ssl + option for the configure script to use that as the primary path, and I + leave the former path too to work with older packages of OpenSSL too. + + Daniel (9 June 1999) + - I finally understood the IRIX problem and now it seem to compile on it! + I am gonna remove those #define strcasecmp() things once and for all now. + + Daniel (4 June 1999) + - I adjusted the FTP reply 227 parser to make the PASV command work better + with more ftp servers. Appearantly the Roxen Challanger server replied + something curl 5.9 could deal with! :-( Reported by Ashley Reid-Montanaro + and Mark Butler brought a solution for it. + + Daniel (26 May 1999) + - Rearranged. README is new, the old one is now README.curl and I added a + README.libcurl with text I got from Ralph Beckmann. + + - I also updated the INSTALL text. + + Daniel (25 May 1999) + - David Jonathan Lowsky correctly pointed out that curl didn't properly deal + with form posting where the variable shouldn't have any content, as in curl + -F "form=" www.site.com. It was now fixed. + +Version 5.9 (May 22 1999) + + Daniel (22 May 1999) + - I've got a bug report from Aaron Scarisbrick in which he states he has some + problems with -L under FreeBSD 3.0. I have previously got another bug + report from Stefan Grether which points at an error with similar sympthoms + when using win32. I made the allocation of the new url string a bit faster + and different, don't know if it actually improves anything though... + + Daniel (20 May 1999) + - Made the cookie parser deal with CRLF newlines too. + + Daniel (19 May 1999) + - Download() didn't properly deal with failing return codes from the sread() + function. Adam Coyne found the problem in the win32 version, and Troy Engel + helped me out isolating it. + + Daniel (16 May 1999) + - Richard Adams pointed out a bug I introduced in 5.8. --dump-header doesn't + work anymore! :-/ I fixed it now. + + - After a suggestion by Joshua Swink I added -S / --show-error to force curl + to display the error message in case of an error, even if -s/--silent was + used. + + Daniel (10 May 1999) + - I moved the stuff concerning HTTP, DICT and TELNET it their own source + files now. It is a beginning on my clean-up of the sources to make them + layer all those protocols better to enable more to be added easier in the + future! + + - Leon Breedt sent me some files I've not put into the main curl + archive. They're for creating the Debian package thingie. He also sent me a + debian package that I've made available for download at the web page + + Daniel (9 May 1999) + - Made it compile on cygwin too. + + Troy Engel (7 May 1999) + - Brought a series of patches to allow curl to compile smoothly on MSVC++ 6 + again! + + Daniel (6 May 1999) + - I changed the #ifdef HAVE_STRFTIME placement for the -z code so that it + will be easier to discover systems that don't have that function and thus + can't use -z successfully. Made the strftime() get used if WIN32 is defined + too. + +Version 5.8 + + Daniel (5 May 1999) + - I've had it with this autoconf/automake mess. It seems to work allright + for most people who don't have automake installed, but for those who have + there are problems all over. + + I've got like five different bug reports on this only the last + week... Claudio Neves and Federico Bianchi and root are some of them reporting this. + + Currently, I have no really good fix since I want to use automake myself to + generate the Makefile.in files. I've found out that the @SHELL@-problems + can often be fixed by manually invoking 'automake' in the archive root + before you run ./configure... I've hacked my maketgz script now to fiddle + a bit with this and my tests seem to work better than before at least! + + Daniel (4 May 1999) + - mkhelp.pl has been doing badly lately. I corrected a case problem in + the regexes. + + - I've now remade the -o option to not touch the file unless it needs to. + I had to do this to make -z option really fine, since now you can make a + curl fetch and use a local copy's time when downloading to that file, as + in: + + curl -z dump -o dump remote.site.com/file.html + + This will only get the file if the remote one is newer than the local. + I'm aware that this alters previous behaviour a little. Some scripts out + there may depend on that the file is always touched... + + - Corrected a bug in the SSLv2/v3 selection. + + - Felix von Leitner requested that curl should be able to send + "If-Modified-Since" headers, which indeed is a fair idea. I implemented it + right away! Try -z where expression is a full GNU date + expression or a file name to get the date from! + + Stephan Lagerholm (30 Apr 1999) + - Pointed out a problem with the src/Makefile for FreeBSD. The RM variable + isn't set and causes the make to fail. + + Daniel (26 April 1999) + - Am I silly or what? Irving Wolfe pointed out to me that the curl version + number was not set properly. Hasn't been since 5.6. This was due to a bug + in my maketgz script! + + David Eriksson (25 Apr 1999) + - Found a bug in cookies.c that made it crash at times. + +Version 5.7.1 + + Doug Kaufman (23 Apr 1999) + - Brought two sunos 4 fixes. One of them being the hostip.c fix mentioned + below and the other one a correction in include/stdcheaders.h + + - Added a paragraph about compiling with the US-version of openssl to the + INSTALL file. + + Daniel + - New mailing list address. Info updated on the web page as well as in the + README file + + Greg Onufer (20 Apr 1999) + - hostip.c didn't compile properly on SunOS 5.5.1. + It needs an #include + +Version 5.7 + + Daniel (Apr 20 1999) + - Decided to upload a non-beta version right now! + + - Made curl support any-length HTTP headers. The destination buffer is now + simply enlarged every time it turns out to be too small! + + - Added the FAQ file to the archive. Still a bit smallish, but it is a + start. + + Eric Thelin (15 Apr 1999) + - Made -D accept '-' instead of filename to write to stdout. + +Version 5.6.3beta + + Daniel (Apr 12 1999) + + - Changed two #ifdef WIN32 to better #ifdef when connect()ing + in url.c and ftp.c. Makes cygwin32 deal with them better too. We should + try to get some decent win32-replacement there. Anyone? + + - The old -3/--crlf option is now ONLY --crlf! + + - I changed the "SSL fix" to a more lame one, but that doesn't remove as + much functionality. Now I've enabled the lib to select what SSL version it + should try first. Appearantly some older SSL-servers don't like when you + talk v3 with them so you need to be able to force curl to talk v2 from the + start. The fix dated April 6 and posted on the mailing list forced curl to + use v2 at all times using a modern OpenSSL version, but we don't really + want such a crippled solution. + + - Marc Boucher sent me a patch that corrected a math error for the + "Curr.Speed" progress meter. + + - Eric Thelin sent me a patch that enables '-K -' to read a config file from + stdin. + + - I found out we didn't close the file properly before so I added it! + + Daniel (Apr 9 1999) + - Yu Xin pointed out a problem with ftp download resume. It didn't work at + all! ;-O + + Daniel (Apr 6 1999) + - Corrected the version string part generated for the SSL version. + + - I found a way to make some other SSL page work with openssl 0.9.1+ that + previously didn't (ssleay 0.8.0 works with it though!). Trying to get + some real info from the OpenSSL guys to see how I should do to behave the + best way. SSLeay 0.8.0 shouldn't be that much in use anyway these days! + +Version 5.6.2beta + + Daniel (Apr 4 1999) + - Finally have curl more cookie "aware". Now read carefully. This is how + it works. + To make curl read cookies from an already existing file, in plain header- + format (like from the headers of a previous fetch) invoke curl with the + -b flag like: + + curl -b file http://site/foo.html + + Curl will then use all cookies it finds matching. The old style that sets + a single cookie with -b is still supported and is used if the string + following -b includes a '=' letter, as in "-b name=daniel". + + To make curl read the cookies sent in combination with a location: (which + sites often do) point curl to read a non-existing file at first (i.e + to start with no existing cookies), like: + + curl -b nowhere http://site/setcookieandrelocate.html + + - Added a paragraph in the TODO file about the SSL problems recently + reported. Evidently, some kind of SSL-problem curl may need to address. + + - Better "Location:" following. + + Douglas E. Wegscheid (Tue, 30 Mar 1999) + - A subsecond display patch. + + Daniel (Mar 14 1999) + - I've separated the version number of libcurl and curl now. To make + things a little easier, I decided to start the curl numbering from + 5.6 and the former version number known as "curl" is now the one + set for libcurl. + + - Removed the 'enable-no-pass' from configure, I doubt anyone wanted + that. + + - Made lots of tiny adjustments to compile smoothly with cygwin under + win32. It's a killer for porting this to win32, bye bye VC++! ;-) + Compiles and builds out-of-the-box now. See the new wordings in + INSTALL for details. + + - Beginning experiments with downloading multiple document from a http + server while remaining connected. + +Version 5.6beta + + Daniel (Mar 13 1999) + - Since I've changed so much, I thought I'd just go ahead and implement the + suggestion from Douglas E. Wegscheid. -D or --dump-header is now storing + HTTP headers separately in the specified file. + + - Added new text to INSTALL on what to do to build this on win32 now. + + - Aaargh. I had to take a step back and prefix the shared #include files + in the sources with "../include/" to please VC++... + + Daniel (Mar 12 1999) + - Split the url.c source into many tiny sources for better readability + and smaller size. + + Daniel (Mar 11 1999) + - Started to change stuff for a move to make libcurl and a more separate + curl application that uses the libcurl. Made the libcurl sources into + the new lib directory while the curl application will remain in src as + before. New makefiles, adjusted configure script and so. + + libcurl.a built quickly and easily. I better make a better interface to + the lib functions though. + + The new root dir include/ is supposed to contain the public information + about the new libcurl. It is a little ugly so far :-) + + + Daniel (Mar 1 1999) + - Todd Kaufmann sent me a good link to Netscape's cookie spec as well as the + info that RFC 2109 specifies how to use them. The link is now in the + README and the RFC in the RESOURCES. + + Daniel (Feb 23 1999) + - Finally made configure accept --with-ssl to look for SSL libs and includes + in the "standard" place /usr/local/ssl... + + Daniel (Feb 22 1999) + - Verified that curl linked fine with OpenSSL 0.9.1c which seems to be + the most recent. + + Henri Gomez (Fri Feb 5 1999) + - Sent in an updated curl-ssl.spec. I still miss the script that builds an + RPM automatically... + +Version 5.5.1 + + Mark Butler (27 Jan 1999) + - Corrected problems in Download(). + + Danitel Stenberg (25 Jan 1999) + - Jeremie Petit pointed out a few flaws in the source that prevented it from + compile warning free with the native compiler under Digital Unix v4.0d. + +Version 5.5 + + Daniel Stenberg (15 Jan 1999) + - Added Bjorns small text to the README about the DICT protocol. + + Daniel Stenberg (11 Jan 1999) + - reported about the win32-versioin: "Doesn't use + ALL_PROXY environment variable". Turned out to be because of the static- + buffer nature of the win32 environment variable calls! + + Bjorn Reese (10 Jan 1999) + - I have attached a simple addition for the DICT protocol (RFC 2229). + It performs dictionary lookups. The output still needs to be better + formatted. + + To test it try (the exact format, and more examples are described in + the RFC) + + dict://dict.org/m:hello + dict://dict.org/m:hello::soundex + + + Vicente Garcia (10 Jan 1999) + - Corrected the progress meter for files larger than 20MB. + + Daniel Stenberg (7 Jan 1999) + - Corrected the -t and -T help texts. They claimed to be FTP only. + +Version 5.4 + + Daniel Stenberg + (7 Jan 1999) + - Irving Wolfe reported that curl -s didn't always supress the progress + reporting. It was the form post that autoamtically always switched it on + again. This is now corrected! + + (4 Jan 1999) + - Andreas Kostyrka suggested I'd add PUT and he helped me out to test it. If + you use -t or -T now on a http or https server, PUT will be used for file + upload. + + I removed the former use of -T with HTTP. I doubt anyone ever really used + that. + + (4 Jan 1999) + - Erik Jacobsen found a width bug in the mprintf() function. I corrected it + now. + + (4 Jan 1999) + - As John V. Chow pointed out to me, curl accepted very limited URL sizes. It + should now accept path parts that are up to at least 4096 bytes. + + - Somehow I screwed up when applying the AIX fix from Gilbert Ramirez, so + I redid that now. + +Version 5.3a (win32 only) + + Troy Engel + - Corrected a win32 bug in the environment variable part. + +Version 5.3 + + Gilbert Ramirez Jr. (21 Dec 1998) + - I have implemented the "quote" function of FTP clients. It allows you to + send arbitrary commands to the remote FTP server. I chose the -Q/--quote + command-line arguments. + + You can have more than one quoted string, and curl will apply them in + order. This is what I use for my MVS upload: + + curl -B --crlf -Q "site lrecl=80" -Q "site blk=8000" -T file ftp://os390/test + + Curl will send the two quoted "site" commands in the proper order. + + - Made it compile smoothly on AIX. + + Gilbert Ramirez Jr. (18 Dec 1998) + - Brought an MVS patch: -3/--mvs, for ftp upload to the MVS ftp server. + + Troy Engel (17 Dec 1998) + - Brought a correction that fixes the win32 curl bug. + + Daniel Stenberg + - A bug, pointed out to me by Dr H. T. Leung, caused curl to crash on the -A + flag on certain systems. Actually, all systems should've! + + - Added a few defines to make directories/file names get build nicer (with _ + instead of . and \ instead of / in win32). + + - steve reported a weird bug that occured if the + ftp server response line had a parenthesis on the line before the (size) + info. I hope it works better now! + +Version 5.2.1 + + Steven G. Johnson (Dec 14, 1998) + - Brought a fix that corrected a crash in 5.2 due to bad treatment of the + environment variables. + +Version 5.2 + + Daniel Stenberg (Dec 14, 1998) + - Rewrote the mkhelp script and now, the mkhelp.pl script generates the + hugehelp.c file from the README *and* the man page file curl.1. By using + both files, I no longer need to have double information in both the man + page and the README as well. So, win32-users will only have the hugehelp.c + file for all info, but then, they download the plain binary most times + anyway. + + - gcc2.8.1 with the -Wall flag complaints a lot on subscript has type `char' + if I don't explicitly typecast the argument to isdigit() or isspace() to + int. So I did to compile warning free with that too. + + - Added checks for 'long double' and 'long long' in the configure script. I + need those for the mprintf.c source to compile well on non long long + comforming systems! + +Version 5.1 (not publicly released) + + Daniel Stenberg (Dec 10, 1998) + - I got a request for a pre-compiled NT Alpha version. Anyone? + + - Added Lynx/CERN www lib proxy environment variable support. That means curl + now reads and understands the following environment variables: + + HTTP_PROXY, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY + + They should be set for protocol-specific proxies. General proxy should be + set with + + ALL_PROXY + + And a comma-separated list of host names that shouldn't go through any + proxy is set in (only an asterisk, '*' matches all hosts). + + NO_PROXY + + The usage of the -x/--proxy flag overrides the environment variables. + + - Proxy can now be specified with a procotol:// prefix. + + - Wrote the curl.1 man page. + + - Introduced a whole new dynamic buffer system for all sprintf()s. It is + based on the *printf() package by yours truly and Bjorn Reese. Hopefully, + there aren't that many buffer overflow risks left now. + + - Ah, I should mention I've compiled and built curl successfully under + solaris 2.6 with gcc now, gcc 2.7.2 won't work but 2.8.1 did ok. + + Oren Tirosh (Dec 3, 1998) + - Brought two .spec files, to use when creating (Linux) Redhat style RPM + packages. They're named curl.spec and curl-ssl.spec. + + Troy Engel + - Supplied the src/Makefile.vc6 for easy compiling with VC++ under Win32. + +Version 5.0 + + Daniel Stenberg (Dec 1, 1998) + - Not a single bug report in ages. + - Corrected getpass.c and main.c to compile warning and error free with the + Win32 VC++ crap. + +Version 5.0 beta 24 + + Daniel Stenberg (Nov 20, 1998) + + HOW TO BUILD A RELEASE ARCHIVE: + + * Pre-requisite software: + What To build what Reads data from + ==== ============= =============== + GNU automake Makefile.in, aclocal.m4 configure.in + GNU make(1) - " - + GNU gcc(1) - " - + GNU autoconf configure configure.in + GNU autoheader(2) config.h.in configure.in, acconfig.h + + * Make sure all files that should be part of the archive are put in FILES. + + * Run './maketgz' and enter version number of the new to become archive. + + maketgz does: + + - Enters the newly created version number in url.h. + - (If you don't have automake, this script will warn about that, but unless + you have changed the Makefile.am files, that is nothing to care about.) + If you have it, it'll run it. + - If you have autoconf, the configure.in will be edited to get the newly + created version number and autoconf will be run. + - Creates a new directory named curl-. (Actually, it uses the base + name of the current directory up to the first '-'.) + - Copies all files mentioned in FILES to the new directory. Saving + permissions and directory structure. + - Uses tar to create an archive of it all, named curl-.tar.gz + - gzips the archive + - Removes the new directory and all its contents. + + * When done, you have an archive stored in your directory named + curl-.tar.gz. + + Done! + + (1) They're required to make automake run properly. + (2) It is distributed as a part of the GNU autoconf archive. + + Daniel Stenberg (Nov 18, 1998) + - I changed the TAG-system. If you ever used urlget() from this package in + another product, you need to recompile with the new headers. I did this + new stuff to better deal with different compilers and system with different + variable sizes. I think it makes it a little more portable. This proves + to compile warning free with the problematic IRIX compiler! + - Win32 compiled with a silly error. Corrected now. + - Brian Chaplin reported yet another problem in + multiline FTP responses. I've tried to correct it. I mailed him a new + version and I hope he gets back soon with positive feedback! + - Improved the 'maketgz' to create a temporary directory tree which it makes + an archive from instead of the previous renaming of the current one. + - Mailing list opened (see README). + - Made -v more verbose on the PASV section of ftp transfers. Now it tells + host name and IP of the new host (and port number). I also added a section + about PORT vs PASV in the README. + +Version 5.0 beta 21 + + Angus Mackay (Nov 15, 1998) + - Introduced automake stuff. + + Daniel Stenberg (Nov 13, 1998) + - Just made a successful GET of a document from an SSL-server using my own + private certificate for authentication! The certificate has to be in PEM + format. You do that the easiest way (although not *that* easy) by + downloading the SSLyeay PKCS#12-patch by Dr Stephen N. Henson from his site + at: http://www.drh-consultancy.demon.co.uk/. Using his tool, you can + convert any modern Netscape or (even) MSIE certificate to PEM-format. Use + it with 'curl -E https://site.com'. If this isn't a + cool feature, then I don't know what cool features look like! ;-) + - Working slowly on telnet connections. #define TRY_TELNET to try it out. + (curl -u user:passwd "telnet://host.com/cat .login" is one example) I do + have problem to define how it should work. The prime purpose for this must + be to get (8bit clean) files via telnet, and it really isn't that easy to + get files this way. Still having problems with \n being converted to \r\n. + + Angus Mackay (Nov 12, 1998) + - Corrected another bug in the long parameter name parser. + - Modified getpass.c (NOTE: see the special licensing in the top of that + source file). + + Daniel Stenberg (Nov 12, 1998) + - We may have removed the silly warnings from url.c when compiled under IRIX. + Thanks again to Bjorn Reese and Martin Staael. + - Wrote formfind.pl which is a new perl script intended to help you find out + how a FORM submission should be done. This needs a little more work to get + really good. + + Daniel Stenberg (Nov 11, 1998) + - Made the HTTP header-checker accept white spaces before the HTTP/1.? line. + Appearantly some proxies/sites add such at times (my test proxy did when I + downloaded a gopher page with it)! + - Moved the former -h to -M and made -h show the short help text instead. I + had to enable a forced help text option. Now an even shorter help text will + be presented when an unknown option and similar, is used. + - stdcheaders.h didn't work with IRIX 6.4 native cc compiler. I hope my + changes don't make other versions go nuts instead. + + Daniel Stenberg (Nov 10, 1998) + - Added a weird check in the configure script to check for the silly AIX + warnings about my #define strcasecmp() stuff. I do that define to prevent + me and other contributors to accidentaly use that function name instead + of strequal()... + - I bugfixed Angus's getpass.c very little. + - Fixed the verbose flag names to getopt-style, i.e 'curl --loc' will be + sufficient instead of --location as "loc" is a unique prefix. Also, anything + after a '--' is treated as an URL. So if you do have a host with a weeeird + name you can do 'curl -- -host.com'. + - Another getopt-adjust; curl now accepts flags after the URL on the command + line. 'curl www.foo.com -O' is perfectly valid. + - Corrected the .curlrc parser so that strtok() is no longer used and I + believe it works better. Even URLs can be specified in it now. + + Angus Mackay (Nov 9, 1998) + - Replaced getpass.c with a newly written one, not under GPL license + - Changed OS to a #define in config.h instead of compiler flag + - Makefile now uses -DHAVE_CONFIG_H + + Daniel Stenberg (Nov 9, 1998) + - Ok, I expanded the tgz-target to update the version string on each occation + I build a release archive! + - I reacted on Angus Mackay's initiative and remade the parameter parser to + be more getopt compliant. Curl now supports "merged" flags as in + curl -lsv ftp.site.com + Do note that I had to move three short-names of the options. Parameters + that needs an additional string such as -x must be stand-alone or the + last in a merged sequence: + curl -lsx my-proxy ftp.site.com + is ok, but using the flags in a different order like '-lxs' would cause + unexpected results (as the 's' option would be skipped). + - I've changed the headers in all files that are subject to the MozPL + license, as they are supposed to look like when conforming. + - Made the configure script make the config.h. The former config.h is now + setup.h. + - The RESOURCES and TODO files have been added to the archive. + + Angus Mackay (Nov 5, 1998) + - Fixed getpass.c and various configure stuff + + Daniel Stenberg (Nov 3, 1998) + - Use -H/--header for custom HTTP-headers. Lets you pass on your own + specified headers to the remote server. I wouldn't recommend trying to use + a header with a defined usage according to standards. Use this flag once + for every custom header you want to add. + - Use -B/--ftp-ascii to force ftp to use ASCII mode when transfering files. + - Corrected the 'getlinks.pl' script, I accidentally left my silly proxy + usage in there! Since the introduction of the .curlrc file, it is easier to + write scripts that use curl since proxies and stuff should be in the + .curlrc file anyway. + - Introducing the new -F flag for HTTP POST. It supports multipart/form-data + which means it is gonna be possible to upload files etc through HTTP POST. + Shiraz Kanga asked for the feature and my brother, + Björn Stenberg helped me design the user + interface for this beast. This feature requires quite some docs, + since it has turned out not only quite capable, but also complicated! :-) + - A note here, since I've received mail about it. SSLeay versions prior to + 0.8 will *not* work with curl! + - Wil Langford reported a bug that occurred since curl + did not properly use CRLF when issuing ftp commands. I fixed it. + - Rearranged the order config files are read. .curlrc is now *always* read + first and before the command line flags. -K config files then act as + additional config items. + - Use -q AS THE FIRST OPTION specified to prevent .curlrc from being read. + - You can now disable a proxy by using -x "". Useful if the .curlrc file + specifies a proxy and you wanna fetch something without going through + that. + - I'm thinking of dropping the -p support. Its really not useful since ports + could (and should?) be specified as : appended on the host name + instead, both in URLs and to proxy host names. + - Martin Staael reports curl -L bugs under Windows NT + (test with URL http://come.to/scsde). This bug is not present in this + version anymore. + - Added support for the weird FTP URL type= thing. You can download a file + using ASCII transfer by appending ";type=A" to the right of it. Other + available types are type=D for dir-list (NLST) and type=I for binary + transfer. I can't say I've ever seen anyone use this kind of URL though! + :-) + - Troy Engel pointed out a bug in my getenv("HOME") + usage for win32 systems. I introduce getenv.c to better cope with + this. Mr Engel helps me with the details around that... + - A little note to myself and others, I should make the win32-binary built + with SSL support... + - Ryan Nelson sent me comments about building curl + with SSL under FreeBSD. See the Makefile for details. Using the configure + script, it should work better and automatically now... + - Cleaned up in the port number mess in the source. No longer stores and uses + proxy port number separate from normal port number. + - 'configure' script working. Confirmed compiles on: + Host SSL Compiler + SunOS 5.5 no gcc + SunOS 5.5.1 yes gcc + SunOS 5.6 no cc (with gcc, it has the "gcc include files" problem) + SunOS 4.1.3 no gcc (without ANSI C headers) + SunOS 4.1.2 no gcc (native compiler failed) + Linux 2.0.18 no gcc + Linux 2.0.32 yes gcc + Linux 2.0.35 no gcc (with glibc) + IRIX 6.2 no gcc (cc compiles generate a few warnings) + IRIX 6.4 no cc (generated warnings though) + Win32 no Borland + OSF4.0 no ? + + - Ooops. The 5beta (and 4.10) under win32 failed if the HOME variable wasn't + set. + - When using a proxy, curl now guesses and uses the protocol part in cases + like: + curl -x proxy:80 www.site.com + Proxies normally go nuts unless http:// is prepended to the host name, so + if curl is used like this, it guesses protocol and appends the protocol + string before passing it to the proxy. It already did this when used + without proxy. + - Better port usage with SSL through proxy now. If you specified a different + https-port when accessing through a proxy, it didn't use that number + correctly. I also rewrote the code that parses the stuff read from the + proxy when you wanna connect through it with SSL. + - Bjorn Reese helped me work around one of the compiler + warnings on IRIX native cc compiles. + +Version 4.10 (Oct 26, 1998) + Daniel Stenberg + - John A. Bristor suggested a config file switch, + and since I've been having that idea kind of in the background for a long + time I rewrote the parameter parsing function a little and now I introduce + the -K/--config flag. I also made curl *always* (unless -K is used) try to + load the .curlrc file for command line parameters. The syntax for the + config file is the standard command line argument style. Details in 'curl + -h' or the README. + - I removed the -k option. Keep-alive isn't really anything anyone would + want to enable with curl anyway. + - Martin Staael helped me add the 'irix' target. Now + "make irix" should build curl successfully on non-gcc SGI machines. + - Single switches now toggle behaviours. I.e if you use -v -v the second + will switch off the verbose mode the first one enabled. This is so that + you can disable a default setting a .curlrc file enables etc. + +Version 4.9 (Oct 7, 1998) + Daniel Stenberg + - Martin Staael suggested curl would support cookies. + I added -b/--cookie to enable free-text cookie data to be passed. There's + also a little blurb about general cookie stuff in the README/help text. + - dmh suggested HTTP resume capabilities. Although you could + manually get curl to resume HTTP documents, I made the -c resume flag work + for HTTP too (unless -r is used too, which would be very odd anyway). + - Added checklinks.pl to the archive. It is a still experimental perl script + that checks all links of a web page by using curl. + - Rearranged the archive hierarchy a little. Build the executable in the + src/ dir from now on! + - Version 4.9 and hereafter, is no longer released under the GPL license. + I have now updated the LEGAL file etc and now this is released using the + Mozilla Public License to avoid the plague known as "the GPL virus". You + must make the source available if you decide to change and/or redistribute + curl, but if you decide to use curl within something else you do not need + to offer the world the source to that too. + - Curl did not like HTTP servers that sent no headers at all on a GET + request. It is a violation of RFC2068 but appearantly some servers do + that anyway. Thanks to Gordon Beaton for the report! + - -L/--location was added after a suggestion from Martin Staael. This makes + curl ATTEMPT to follow the Location: redirect if one is present in the HTTP + headers. If -i or -I is used with this flag, you will see headers from all + sites the Location: points to. Do note that the first server can point to a + second that points to a third etc. It seems the Location: parameter (said + to be an AbsoluteURI in RFC2068) isn't always absolute.. :-/ Anyway, I've + made curl ATTEMPT to do the best it can to deal with the reality. + - Added getlinks.pl to the archive. getlinks.pl selectively downloads + files that a web page links to. + +Version 4.8.4 + Daniel Stenberg + - As Julian Romero Nieto reported, curl reported wrong version number. + - As Teemu Yli-Elsila pointed out, the win32 version of 4.8 (and probably all + other versions for win32) didn't work with binary files since I'm too used + to the Unix style fopen() where binary and text don't differ... + - Ralph Beckmann brought me some changes that lets curl compile error and + warning free with -Wall -pedantic with g++. I also took the opportunity to + clean off some unused variables and similar. + - Ralph Beckmann made me aware of a really odd bug now corrected. When curl + read a set of headers from a HTTP server, divided into more than one read + and the first read showed a full line *exactly* (i.e ending with a + newline), curl did not behave well. + +Version 4.8.3 + Daniel Stenberg + - I was too quick to release 4.8.2 with too little testing. One of the + changes is now reverted slightly to the 4.8.1 way since 4.8.2 couldn't + upload files. I still think both problems corrected in 4.8.2 remain + corrected. Reported by Julian Romero Nieto. + +Version 4.8.2 + Daniel Stenberg + - Bernhard Iselborn reported two FTP protocol errors curl did. They're now + corrected. Both appeared when getting files from a MS FTP server! :-) + +Version 4.8.1 + Daniel Stenberg + - Added a last update of the progress meter when the transfer is done. The + final output on the screen didn't have to be the final size transfered + which made it sometimes look odd. + - Thanks to David Long I got rid of a silly bug that happened if a HTTP-page + had nothing but header. Appearantly Solaris deals with negative sizes in + fwrite() calls a lot better than Linux does... =B-] + +Version 4.8 (Aug 31, 1998) + Daniel Stenberg + - Continue FTP file transfer. -c is the switch. Note that you need to + specify a file name if you wanna resume a download (you can't resume a + download sent to stdout). Resuming upload may be limited by the server + since curl is then using the non-RFC959 command SIZE to get the size of + the target file before upload begins (to figure out which offset to + use). Use -C to specify the offset yourself! -C is handy if you're doing + the output to something else but a plain file or when you just want to get + the end of a file. + - recursiveftpget.pl now features a maximum recursive level argument. + +Version 4.7 + Daniel Stenberg + - Added support to abort a download if the speed is below a certain amount + (speed-limit) bytes per second for a certain (speed-time) time. + - Wrote a perl script 'recursiveftpget.pl' to recursively use curl to get a + whole ftp directory tree. It is meant as an example of how curl can be + used. I agree it isn't the wisest thing to do to make a separate new + connection for each file and directory for this. + +Version 4.6 + Daniel Stenberg + - Added a first attempt to optionally parse the .netrc file for login user + and password. If used with http, it enables user authentication. -n is + the new switch. + - Removed the extra newlines on the default user-agent string. + - Corrected the missing ftp upload error messages when it failed without the + verbose flag set. Gary W. Swearingen found it. + - Now using alarm() to enable second-precision timeout even on the name + resolving/connecting phase. The timeout is although reset after that first + sequence. (This should be corrected.) Gary W. Swearingen reported. + - Now spells "Unknown" properly, as in "Unknown option 'z'"... :-) + - Added bug report email address in the README. + - Added a "current speed" field to the progress meter. It shows the average + speed the last 5 seconds. The other speed field shows the average speed of + the entire transfer so far. + +Version 4.5.1 + Linas Vepstas + - SSL through proxy fix + - Added -A to allow User-Agent: changes + + Daniel Stenberg + - Made the -A work when SSL-through-proxy. + +Version 4.5 + Linas Vepstas + - More SSL corrections + - I've added a port to AIX. + - running SSL through a proxy causes a chunk of code to be executred twice. + one of those blocks needs to be deleted. + + Daniel Stenberg + - Made -i and -I work again + +Version 4.4 + Linas Vepstas + - -x can now also specify proxyport when used as in 'proxyhost:proxyport' + - SSL fixes + +Version 4.3 + Daniel Stenberg + - Adjusted to compile under win32 (VisualC++ 5). The -P switch does not + support network interface names in win32. I couldn't figure out how! + +Version 4.2 + Linas Vepstas / Sampo Kellomaki + - Added SSL / SSLeay support (https://) + - Added the -T usage for HTTP POST. + + Daniel Stenberg + - Bugfixed the SSL implementation. + - Made -P a lot better to use other IP addresses. It now accepts a following + parameter that can be either + interface - i.e "eth0" to specify which interface's IP address you + want to use + IP address - i.e "192.168.10.1" to specify exact IP number + host name - i.e "my.host.domain" to specify machine + "-" - (any single-letter string) to make it pick the machine's + default + - The Makefile is now ready to compile for solaris, sunos4 and linux right + out of the box. + - Better generated version string seen with 'curl -V' + +Version 4.1 + Daniel Stenberg + - The IP number returned by the ftp server as a reply to PASV does no longer + have to DNS resolve. In fact, no IP-number-only addresses have to anymore. + - Binds better to available port when -P is used. + - Now LISTs ./ instead of / when used as in ftp://ftp.funet.fi/. The reason + for this is that exactly that site, ftp.funet.fi, does not allow LIST / + while LIST ./ is fine. Any objections? + +Version 4 (1998-03-20) + Daniel Stenberg + - I took another huge step and changed both version number and project name! + The reason for the new name is that there are just one too many programs + named urlget already and this program already can a lot more than merely + getting URLs, and the reason for the version number is that I did add the + pretty big change in -P and since I changed name I wanted to start with + something fresh! + - The --style flags are working better now. + - Listing directories with FTP often reported that the file transfer was + incomplete. Wrong assumptions were too common for directories, why no + size will be attempted to get compared on them from now on. + - Implemented the -P flag that let's the ftp control issue a PORT command + instead of the standard PASV. + - -a for appending FTP uploads works. + +*************************************************************************** + +Version 3.12 (14 March 1998) + Daniel Stenberg + - End-of-header tracking still lacked support for \r\n or just \n at the + end of the last header line. + Sergio Barresi + - Added PROXY authentication. + Rafael Sagula + - Fixed some little bugs. + +Version 3.11 + Daniel Stenberg + - The header parsing was still not correct since the 3.2 modification... + +Version 3.10 + Daniel Stenberg + - 3.7 and 3.9 were simultaneously developed and merged into this version. + - FTP upload did not work correctly since 3.2. + +Version 3.9 + Rafael Sagula + - Added the "-e / --referer " option where we can specify + the referer page. Obviously, this is necessary only to fool the + server, but... + +Version 3.7 + Daniel Stenberg + - Now checks the last error code sent from the ftp server after a file has + been received or uploaded. Wasn't done previously. + - When 'urlget ' is used without a 'protocol://' first in the host part, + it now checks for host names starting with ftp or gopher and if it does, + it uses that protocol by default instead of http. + +Version 3.6 + Daniel Stenberg + - Silly mistake made the POST bug. This has now also been tested to work with + proxy. + +Version 3.5 + Daniel Stenberg + - Highly inspired by Rafael Sagula's changes to the 3.1 that added an almost + functional POST, I applied his changes into this version and made them work. + (It seems POST requires the Content-Type and Content-Length headers.) It is + now usable with the -d switch. + +Version 3.3 - 3.4 + Passed to avoid confusions + +Version 3.2 + Daniel Stenberg + - Major rewrite of two crucial parts of this code: upload and download. + They are both now using a select() switch, that allows much better + progress meter and time control. + - alarm() usage removed completely + - FTP get can now list directory contents if the path ends with a slash '/'. + Urlget on a ftp-path that doesn't end with a slash means urlget will + attempt getting it as a file name. + - FTP directory view supports -l for "list-only" which lists the file names + only. + - All operations support -m for max time usage in seconds allowed. + - FTP upload now allows the size of the uploaded file to be provided, and + thus it can better check it actually uploaded the whole file. It also + makes the progress meter for uploads much better! + - Made the parameter parsing fail in cases like 'urlget -r 900' which + previously tried to connect to the host named '900'. + +Version 3.1 + Kjell Ericson + - Pointed out how to correct the 3 warnings in win32-compiles. + + Daniel Stenberg + - Removed all calls to exit(). + - Made the short help text get written to stdout instead of stderr. + - Made this file instead of keeping these comments in the source. + - Made two callback hooks, that enable external programs to use urlget() + easier and to grab the output/offer the input easier. + - It is evident that Win32-compiles are painful. I watched the output from + the Borland C++ v5 and it was awful. Just ignore all those warnings. + +Version 3.0 + Daniel Stenberg + - Added FTP upload capabilities. The name urlget gets a bit silly now + when we can put too... =) + - Restructured the source quite a lot. + Changed the urlget() interface. This way, we will survive changes much + better. New features can come and old can be removed without us needing + to change the interface. I've written a small explanation in urlget.h + that explains it. + - New flags include -t, -T, -O and -h. The -h text is generated by the new + mkhelp script. + +Version 2.9 + Remco van Hooff + - Added a fix to make it compile smoothly on Amiga using the SAS/C + compiler. + + Daniel Stenberg + - Believe it or not, but the STUPID Novell web server seems to require + that the Host: keyword is used, so well I use it and I (re-introduce) the + urlget User-Agent:. I still have to check that this Host: usage works with + proxies... 'Host:' is required for HTTP/1.1 GET according to RFC2068. + +Version 2.8 + Rafael Sagula + - some little modifications + +Version 2.7 + Daniel Stenberg + - Removed the -l option and introduced the -f option instead. Now I'll + rewrite the former -l kludge in an external script that'll use urlget to + fetch multipart files like that. + - '-f' is introduced, it means Fail without output in case of HTTP server + errors (return code >=400). + - Added support for -r, ranges. Specify which part of a document you + want, and only that part is returned. Only with HTTP/1.1-servers. + - Split up the source in 3 parts. Now all pure URL functions are in + urlget.c and stuff that deals with the stand-alone program is in main.c. + - I took a few minutes and wrote an embryo of a README file to explain + a few things. + +Version 2.6 + Daniel Stenberg + - Made the -l (loop) thing use the new CONF_FAILONERROR which makes + urlget() return error code if non-successful. It also won't output anything + then. Now finally removed the HTTP 1.0 and error 404 dependencies. + - Added -I which uses the HEAD request to get the header only from a + http-server. + +Version 2.5 + Rafael Sagula + - Made the progress meter use HHH:MM:SS instead of only seconds. + +Version 2.4 + Daniel Stenberg + - Added progress meter. It appears when downloading > BUFFER SIZE and + mute is not selected. I found out that when downloading large files from + really really slow sites, it is desirable to know the status of the + download. Do note that some downloads are done unawaring of the size, which + makes the progress meter less thrilling ;) If the output is sent to a tty, + the progress meter is shut off. + - Increased buffer size used for reading. + - Added length checks in the user+passwd parsing. + - Made it grok user+passwd for HTTP fetches. The trick is to base64 + encode the user+passwd and send an extra header line. Read chapter 11.1 in + RFC2068 for details. I added it to be used just like the ftp one. To get a + http document from a place that requires user and password, use an URL + like: + + http://user:passwd@www.site.to.leach/doc.html + + I also added the -u flag, since WHEN USING A PROXY YOU CAN'T SPECIFY THE + USER AND PASSWORD WITH HTTP LIKE THAT. The -u flag works for ftp too, but + not if used with proxy. To do the same as the above one, you can invoke: + + urlget -u user:passwd http://www.site.to.leach/doc.html + +Version 2.3 + Rafael Sagula + - Added "-o" option (output file) + - Added URG_HTTP_NOT_FOUND return code. + (Daniel's note:) + Perhaps we should detect all kinds of errors and instead of writing that + custom string for the particular 404-error, use the error text we actually + get from the server. See further details in RFC2068 (HTTP 1.1 + definition). The current way also relies on a HTTP/1.0 reply, which newer + servers might not do. + - Looping mode ("-l" option). It's easier to get various split files. + (Daniel's note:) + Use it like 'urlget -l 1 http://from.this.site/file%d.html', which will + make urlget to attempt to fetch all files named file1.html, file2.html etc + until no more files are found. This is only a modification of the + STAND_ALONE part, nothing in the urlget() function was modfified for this. + Daniel Stenberg + - Changed the -h to be -i instead. -h should be preserved to help use. + - Bjorn Reese indicated that Borland _might_ use '_WIN32' instead of the + VC++ WIN32 define and therefore I added a little fix for that. + +Version 2.2 + Johan Andersson + - The urlget function didn't set the path to url when using proxy. + - Fixed bug with IMC proxy. Now using (almost) complete GET command. + + Daniel Stenberg + - Made it compile on Solaris. Had to reorganize the includes a bit. + (so Win32, Linux, SunOS 4 and Solaris 2 compile fine.) + - Made Johan's keepalive keyword optional with the -k flag (since it + makes a lot of urlgets take a lot longer time). + - Made a '-h' switch in case you want the HTTP-header in the output. + +Version 2.1 + Daniel Stenberg and Kjell Ericson + - Win32-compilable + - No more global variables + - Mute option (no output at all to stderr) + - Full range of return codes from urlget(), which is now written to be a + function for easy-to-use in [other] programs. + - Define STAND_ALONE to compile the stand alone urlget program + - Now compiles with gcc options -ansi -Wall -pedantic ;) + +Version 2.0 + - Introducing ftp GET support. The FTP URL type is recognized and used. + - Renamed the project to 'urlget'. + - Supports the user+passwd in the FTP URL (otherwise it tries anonymous + login with a weird email address as password). + +Version 1.5 + Daniel Stenberg + - The skip_header() crap messed it up big-time. By simply removing that + one we can all of a sudden download anything ;) + - No longer requires a trailing slash on the URLs. + - If the given URL isn't prefixed with 'http://', HTTP is assumed and + given a try! + - 'void main()' is history. + +Version 1.4 + Daniel Stenberg + - The gopher source used the ppath variable instead of path which could + lead to disaster. + +Version 1.3 + Daniel Stenberg + - Well, I added a lame text about the time it took to get the data. I also + fought against Johan to prevent his -f option (to specify a file name + that should be written instead of stdout)! =) + - Made it write 'connection refused' for that particular connect() + problem. + - Renumbered the version. Let's not make silly 1.0.X versions, this is + a plain 1.3 instead. + +Version 1.2 + Johan Andersson + - Discovered and fixed the problem with getting binary files. puts() is + now replaced with fwrite(). (Daniel's note: this also fixed the buffer + overwrite problem I found in the previous version.) + + Rafael Sagula + - Let "-p" before "-x". + + Daniel Stenberg + - Bugfixed the proxy usage. It should *NOT* use nor strip the port number + from the URL but simply pass that information to the proxy. This also + made the user/password fields possible to use in proxy [ftp-] URLs. + (like in ftp://user:password@ftp.my.site:8021/README) + + Johan Andersson + - Implemented HTTP proxy support. + - Receive byte counter added. + + Bjorn Reese + - Implemented URLs (and skipped the old syntax). + - Output is written to stdout, so to achieve the above example, do: + httpget http://143.54.10.6/info_logo.gif > test.gif + +Version 1.1 + Daniel Stenberg + - Adjusted it slightly to accept named hosts on the command line. We + wouldn't wanna use IP numbers for the rest of our lifes, would we? + +Version 1.0 + Rafael Sagula + - Wrote the initial httpget, which started all this! diff --git a/CMake/CheckTypeSize.c.in b/CMake/CheckTypeSize.c.in deleted file mode 100644 index 8ff07bf..0000000 --- a/CMake/CheckTypeSize.c.in +++ /dev/null @@ -1,44 +0,0 @@ -#cmakedefine CHECK_TYPE_SIZE_TYPE @CHECK_TYPE_SIZE_TYPE@ -#ifdef CHECK_TYPE_SIZE_TYPE - -@CHECK_TYPE_SIZE_PREINCLUDE@ -#ifdef HAVE_SYS_TYPES_H -# include -#endif /* HAVE_SYS_TYPES_H */ - -#ifdef HAVE_SYS_SOCKET_H -# include -#endif - -#ifdef _WIN32 -# include -# include -#endif - - -#ifdef HAVE_STDINT_H -# include -#endif /* HAVE_STDINT_H */ - -#ifdef HAVE_STDDEF_H -# include -#endif /* HAVE_STDDEF_H */ - -@CHECK_TYPE_SIZE_PREMAIN@ - -#ifdef __CLASSIC_C__ -int main(){ - int ac; - char*av[]; -#else -int main(int ac, char*av[]){ -#endif - if(ac > 1000){return *av[0];} - return sizeof(CHECK_TYPE_SIZE_TYPE); -} - -#else /* CHECK_TYPE_SIZE_TYPE */ - -# error "CHECK_TYPE_SIZE_TYPE has to specify the type" - -#endif /* CHECK_TYPE_SIZE_TYPE */ diff --git a/CMake/CheckTypeSize.cmake b/CMake/CheckTypeSize.cmake deleted file mode 100644 index 2c2ceab..0000000 --- a/CMake/CheckTypeSize.cmake +++ /dev/null @@ -1,57 +0,0 @@ -# - Check sizeof a type -# CHECK_TYPE_SIZE(TYPE VARIABLE) -# Check if the type exists and determine size of type. if the type -# exists, the size will be stored to the variable. -# -# VARIABLE - variable to store size if the type exists. -# HAVE_${VARIABLE} - does the variable exists or not - -macro(CHECK_TYPE_SIZE TYPE VARIABLE) - set(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1) - if(NOT DEFINED ${VARIABLE}) - if("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") - set(CHECK_TYPE_SIZE_TYPE "${TYPE}") - set(MACRO_CHECK_TYPE_SIZE_FLAGS - "${CMAKE_REQUIRED_FLAGS}") - foreach(def HAVE_SYS_TYPES_H - HAVE_STDINT_H HAVE_STDDEF_H HAVE_SYS_SOCKET_H) - if("${def}") - set(MACRO_CHECK_TYPE_SIZE_FLAGS - "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}") - endif("${def}") - endforeach(def) - set(CHECK_TYPE_SIZE_PREMAIN) - foreach(def ${CMAKE_EXTRA_INCLUDE_FILES}) - set(CHECK_TYPE_SIZE_PREMAIN "${CHECK_TYPE_SIZE_PREMAIN}#include \"${def}\"\n") - endforeach(def) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/CheckTypeSize.c.in" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c" - IMMEDIATE @ONLY) - file(READ - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c" - CHECK_TYPE_SIZE_FILE_CONTENT) - message(STATUS "Check size of ${TYPE}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CHECK_TYPE_SIZE_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - endif(CMAKE_REQUIRED_LIBRARIES) - try_run(${VARIABLE} HAVE_${VARIABLE} - ${CMAKE_BINARY_DIR} - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c" - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS} - "${CHECK_TYPE_SIZE_ADD_LIBRARIES}" - OUTPUT_VARIABLE OUTPUT) - if(HAVE_${VARIABLE}) - message(STATUS "Check size of ${TYPE} - done") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n") - else(HAVE_${VARIABLE}) - message(STATUS "Check size of ${TYPE} - failed") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSize.c:\n${CHECK_TYPE_SIZE_FILE_CONTENT}\n\n") - endif(HAVE_${VARIABLE}) - endif("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") - endif(NOT DEFINED ${VARIABLE}) - set(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS ) -endmacro(CHECK_TYPE_SIZE) diff --git a/CMake/CurlCheckCSourceCompiles.cmake b/CMake/CurlCheckCSourceCompiles.cmake deleted file mode 100644 index b632768..0000000 --- a/CMake/CurlCheckCSourceCompiles.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# - Check if the source code provided in the SOURCE argument compiles. -# CURL_CHECK_C_SOURCE_COMPILES(SOURCE VAR) -# - macro which checks if the source code compiles -# SOURCE - source code to try to compile -# VAR - variable to store whether the source code compiled -# -# The following variables may be set before calling this macro to -# modify the way the check is run: -# -# CMAKE_REQUIRED_FLAGS = string of compile command line flags -# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) -# CMAKE_REQUIRED_INCLUDES = list of include directories -# CMAKE_REQUIRED_LIBRARIES = list of libraries to link - -macro(CURL_CHECK_C_SOURCE_COMPILES SOURCE VAR) - if("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") - set(message "${VAR}") - # If the number of arguments is greater than 2 (SOURCE VAR) - if(${ARGC} GREATER 2) - # then add the third argument as a message - set(message "${ARGV2} (${VAR})") - endif(${ARGC} GREATER 2) - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - else(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES) - endif(CMAKE_REQUIRED_LIBRARIES) - if(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES - "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") - else(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) - endif(CMAKE_REQUIRED_INCLUDES) - set(src "") - foreach(def ${EXTRA_DEFINES}) - set(src "${src}#define ${def} 1\n") - endforeach(def) - foreach(inc ${HEADER_INCLUDES}) - set(src "${src}#include <${inc}>\n") - endforeach(inc) - - set(src "${src}\nint main() { ${SOURCE} ; return 0; }") - set(CMAKE_CONFIGURABLE_FILE_CONTENT "${src}") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeConfigurableFile.in - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" - IMMEDIATE) - message(STATUS "Performing Test ${message}") - try_compile(${VAR} - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c - COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}" - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}" - OUTPUT_VARIABLE OUTPUT) - if(${VAR}) - set(${VAR} 1 CACHE INTERNAL "Test ${message}") - message(STATUS "Performing Test ${message} - Success") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Performing C SOURCE FILE Test ${message} succeded with the following output:\n" - "${OUTPUT}\n" - "Source file was:\n${src}\n") - else(${VAR}) - message(STATUS "Performing Test ${message} - Failed") - set(${VAR} "" CACHE INTERNAL "Test ${message}") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Performing C SOURCE FILE Test ${message} failed with the following output:\n" - "${OUTPUT}\n" - "Source file was:\n${src}\n") - endif(${VAR}) - endif("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") -endmacro(CURL_CHECK_C_SOURCE_COMPILES) diff --git a/CMake/CurlCheckCSourceRuns.cmake b/CMake/CurlCheckCSourceRuns.cmake deleted file mode 100644 index 6b14af8..0000000 --- a/CMake/CurlCheckCSourceRuns.cmake +++ /dev/null @@ -1,83 +0,0 @@ -# - Check if the source code provided in the SOURCE argument compiles and runs. -# CURL_CHECK_C_SOURCE_RUNS(SOURCE VAR) -# - macro which checks if the source code runs -# SOURCE - source code to try to compile -# VAR - variable to store size if the type exists. -# -# The following variables may be set before calling this macro to -# modify the way the check is run: -# -# CMAKE_REQUIRED_FLAGS = string of compile command line flags -# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) -# CMAKE_REQUIRED_INCLUDES = list of include directories -# CMAKE_REQUIRED_LIBRARIES = list of libraries to link - -macro(CURL_CHECK_C_SOURCE_RUNS SOURCE VAR) - if("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") - set(message "${VAR}") - # If the number of arguments is greater than 2 (SOURCE VAR) - if(${ARGC} GREATER 2) - # then add the third argument as a message - set(message "${ARGV2} (${VAR})") - endif(${ARGC} GREATER 2) - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${VAR} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - else(CMAKE_REQUIRED_LIBRARIES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES) - endif(CMAKE_REQUIRED_LIBRARIES) - if(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES - "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") - else(CMAKE_REQUIRED_INCLUDES) - set(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) - endif(CMAKE_REQUIRED_INCLUDES) - set(src "") - foreach(def ${EXTRA_DEFINES}) - set(src "${src}#define ${def} 1\n") - endforeach(def) - foreach(inc ${HEADER_INCLUDES}) - set(src "${src}#include <${inc}>\n") - endforeach(inc) - - set(src "${src}\nint main() { ${SOURCE} ; return 0; }") - set(CMAKE_CONFIGURABLE_FILE_CONTENT "${src}") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeConfigurableFile.in - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" - IMMEDIATE) - message(STATUS "Performing Test ${message}") - try_run(${VAR} ${VAR}_COMPILED - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c - COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}" - "${CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}" - OUTPUT_VARIABLE OUTPUT) - # if it did not compile make the return value fail code of 1 - if(NOT ${VAR}_COMPILED) - set(${VAR} 1) - endif(NOT ${VAR}_COMPILED) - # if the return value was 0 then it worked - set(result_var ${${VAR}}) - if("${result_var}" EQUAL 0) - set(${VAR} 1 CACHE INTERNAL "Test ${message}") - message(STATUS "Performing Test ${message} - Success") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Performing C SOURCE FILE Test ${message} succeded with the following output:\n" - "${OUTPUT}\n" - "Return value: ${${VAR}}\n" - "Source file was:\n${src}\n") - else("${result_var}" EQUAL 0) - message(STATUS "Performing Test ${message} - Failed") - set(${VAR} "" CACHE INTERNAL "Test ${message}") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Performing C SOURCE FILE Test ${message} failed with the following output:\n" - "${OUTPUT}\n" - "Return value: ${result_var}\n" - "Source file was:\n${src}\n") - endif("${result_var}" EQUAL 0) - endif("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN") -endmacro(CURL_CHECK_C_SOURCE_RUNS) diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c index 0943458..04d5e7e 100644 --- a/CMake/CurlTests.c +++ b/CMake/CurlTests.c @@ -1,3 +1,24 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2014, Daniel Stenberg, , 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 http://curl.haxx.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. + * + ***************************************************************************/ #ifdef TIME_WITH_SYS_TIME /* Time with sys/time test */ @@ -50,264 +71,88 @@ main () } #endif -#ifdef HAVE_GETHOSTBYADDR_R_5 +/* tests for gethostbyaddr_r or gethostbyname_r */ +#if defined(HAVE_GETHOSTBYADDR_R_5_REENTRANT) || \ + defined(HAVE_GETHOSTBYADDR_R_7_REENTRANT) || \ + defined(HAVE_GETHOSTBYADDR_R_8_REENTRANT) || \ + defined(HAVE_GETHOSTBYNAME_R_3_REENTRANT) || \ + defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) || \ + defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) +# define _REENTRANT + /* no idea whether _REENTRANT is always set, just invent a new flag */ +# define TEST_GETHOSTBYFOO_REENTRANT +#endif +#if defined(HAVE_GETHOSTBYADDR_R_5) || \ + defined(HAVE_GETHOSTBYADDR_R_7) || \ + defined(HAVE_GETHOSTBYADDR_R_8) || \ + defined(HAVE_GETHOSTBYNAME_R_3) || \ + defined(HAVE_GETHOSTBYNAME_R_5) || \ + defined(HAVE_GETHOSTBYNAME_R_6) || \ + defined(TEST_GETHOSTBYFOO_REENTRANT) #include #include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -struct hostent_data hdata; -int rc; -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, &hdata); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_5_REENTRANT -#define _REENTRANT -#include -#include -int -main () -{ - -char * address; -int length;q -int type; -struct hostent h; -struct hostent_data hdata; -int rc; -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, &hdata); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_7 -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -hp = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_7_REENTRANT -#define _REENTRANT -#include -#include -int -main () +int main(void) { - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -hp = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &h_errnop); - ; - return 0; -} + char *address = "example.com"; + int length = 0; + int type = 0; + struct hostent h; + int rc = 0; +#if defined(HAVE_GETHOSTBYADDR_R_5) || \ + defined(HAVE_GETHOSTBYADDR_R_5_REENTRANT) || \ + \ + defined(HAVE_GETHOSTBYNAME_R_3) || \ + defined(HAVE_GETHOSTBYNAME_R_3_REENTRANT) + struct hostent_data hdata; +#elif defined(HAVE_GETHOSTBYADDR_R_7) || \ + defined(HAVE_GETHOSTBYADDR_R_7_REENTRANT) || \ + defined(HAVE_GETHOSTBYADDR_R_8) || \ + defined(HAVE_GETHOSTBYADDR_R_8_REENTRANT) || \ + \ + defined(HAVE_GETHOSTBYNAME_R_5) || \ + defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) || \ + defined(HAVE_GETHOSTBYNAME_R_6) || \ + defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) + char buffer[8192]; + int h_errnop; + struct hostent *hp; #endif -#ifdef HAVE_GETHOSTBYADDR_R_8 -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; -int rc; - -#ifndef gethostbyaddr_r - (void)gethostbyaddr_r; -#endif -rc = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &hp, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYADDR_R_8_REENTRANT -#define _REENTRANT -#include -#include -int -main () -{ - -char * address; -int length; -int type; -struct hostent h; -char buffer[8192]; -int h_errnop; -struct hostent * hp; -int rc; #ifndef gethostbyaddr_r (void)gethostbyaddr_r; #endif -rc = gethostbyaddr_r(address, length, type, &h, - buffer, 8192, &hp, &h_errnop); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_3 -#include -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -struct hostent_data data; -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_3_REENTRANT -#define _REENTRANT -#include -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -struct hostent_data data; -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_5 -#include -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_5_REENTRANT -#define _REENTRANT -#include -#include -#undef NULL -#define NULL (void *)0 -int -main () -{ - -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL); - ; +#if defined(HAVE_GETHOSTBYADDR_R_5) || \ + defined(HAVE_GETHOSTBYADDR_R_5_REENTRANT) + rc = gethostbyaddr_r(address, length, type, &h, &hdata); +#elif defined(HAVE_GETHOSTBYADDR_R_7) || \ + defined(HAVE_GETHOSTBYADDR_R_7_REENTRANT) + hp = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &h_errnop); + (void)hp; +#elif defined(HAVE_GETHOSTBYADDR_R_8) || \ + defined(HAVE_GETHOSTBYADDR_R_8_REENTRANT) + rc = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &hp, &h_errnop); +#endif + +#if defined(HAVE_GETHOSTBYNAME_R_3) || \ + defined(HAVE_GETHOSTBYNAME_R_3_REENTRANT) + rc = gethostbyname_r(address, &h, &hdata); +#elif defined(HAVE_GETHOSTBYNAME_R_5) || \ + defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) + rc = gethostbyname_r(address, &h, buffer, 8192, 0, &h_errnop); + (void)hp; /* not used for test */ +#elif defined(HAVE_GETHOSTBYNAME_R_6) || \ + defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) + rc = gethostbyname_r(address, &h, buffer, 8192, &hp, &h_errnop); +#endif + + (void)length; + (void)type; + (void)rc; return 0; } #endif -#ifdef HAVE_GETHOSTBYNAME_R_6 -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL); - ; - return 0; -} -#endif -#ifdef HAVE_GETHOSTBYNAME_R_6_REENTRANT -#define _REENTRANT -#include -#include -#undef NULL -#define NULL (void *)0 - -int -main () -{ - -#ifndef gethostbyname_r - (void)gethostbyname_r; -#endif -gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL); - ; - return 0; -} -#endif #ifdef HAVE_SOCKLEN_T #ifdef _WIN32 #include diff --git a/CMake/FindCARES.cmake b/CMake/FindCARES.cmake new file mode 100644 index 0000000..c4ab5f1 --- /dev/null +++ b/CMake/FindCARES.cmake @@ -0,0 +1,42 @@ +# - Find c-ares +# Find the c-ares includes and library +# This module defines +# CARES_INCLUDE_DIR, where to find ares.h, etc. +# CARES_LIBRARIES, the libraries needed to use c-ares. +# CARES_FOUND, If false, do not try to use c-ares. +# also defined, but not for general use are +# CARES_LIBRARY, where to find the c-ares library. + +FIND_PATH(CARES_INCLUDE_DIR ares.h + /usr/local/include + /usr/include + ) + +SET(CARES_NAMES ${CARES_NAMES} cares) +FIND_LIBRARY(CARES_LIBRARY + NAMES ${CARES_NAMES} + PATHS /usr/lib /usr/local/lib + ) + +IF (CARES_LIBRARY AND CARES_INCLUDE_DIR) + SET(CARES_LIBRARIES ${CARES_LIBRARY}) + SET(CARES_FOUND "YES") +ELSE (CARES_LIBRARY AND CARES_INCLUDE_DIR) + SET(CARES_FOUND "NO") +ENDIF (CARES_LIBRARY AND CARES_INCLUDE_DIR) + + +IF (CARES_FOUND) + IF (NOT CARES_FIND_QUIETLY) + MESSAGE(STATUS "Found c-ares: ${CARES_LIBRARIES}") + ENDIF (NOT CARES_FIND_QUIETLY) +ELSE (CARES_FOUND) + IF (CARES_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find c-ares library") + ENDIF (CARES_FIND_REQUIRED) +ENDIF (CARES_FOUND) + +MARK_AS_ADVANCED( + CARES_LIBRARY + CARES_INCLUDE_DIR + ) diff --git a/CMake/FindGSS.cmake b/CMake/FindGSS.cmake new file mode 100644 index 0000000..4986a8e --- /dev/null +++ b/CMake/FindGSS.cmake @@ -0,0 +1,289 @@ +# - Try to find the GSS Kerberos library +# Once done this will define +# +# GSS_ROOT_DIR - Set this variable to the root installation of GSS +# +# Read-Only variables: +# GSS_FOUND - system has the Heimdal library +# GSS_FLAVOUR - "MIT" or "Heimdal" if anything found. +# GSS_INCLUDE_DIR - the Heimdal include directory +# GSS_LIBRARIES - The libraries needed to use GSS +# GSS_LINK_DIRECTORIES - Directories to add to linker search path +# GSS_LINKER_FLAGS - Additional linker flags +# GSS_COMPILER_FLAGS - Additional compiler flags +# GSS_VERSION - This is set to version advertised by pkg-config or read from manifest. +# In case the library is found but no version info availabe it'll be set to "unknown" + +set(_MIT_MODNAME mit-krb5-gssapi) +set(_HEIMDAL_MODNAME heimdal-gssapi) + +include(CheckIncludeFile) +include(CheckIncludeFiles) +include(CheckTypeSize) + +set(_GSS_ROOT_HINTS + "${GSS_ROOT_DIR}" + "$ENV{GSS_ROOT_DIR}" +) + +# try to find library using system pkg-config if user didn't specify root dir +if(NOT GSS_ROOT_DIR AND NOT "$ENV{GSS_ROOT_DIR}") + if(UNIX) + find_package(PkgConfig QUIET) + pkg_search_module(_GSS_PKG ${_MIT_MODNAME} ${_HEIMDAL_MODNAME}) + list(APPEND _GSS_ROOT_HINTS "${_GSS_PKG_PREFIX}") + elseif(WIN32) + list(APPEND _GSS_ROOT_HINTS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos;InstallDir]") + endif() +endif() + +if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approach. + find_file(_GSS_CONFIGURE_SCRIPT + NAMES + "krb5-config" + HINTS + ${_GSS_ROOT_HINTS} + PATH_SUFFIXES + bin + NO_CMAKE_PATH + NO_CMAKE_ENVIRONMENT_PATH + ) + + # if not found in user-supplied directories, maybe system knows better + find_file(_GSS_CONFIGURE_SCRIPT + NAMES + "krb5-config" + PATH_SUFFIXES + bin + ) + + if(_GSS_CONFIGURE_SCRIPT) + execute_process( + COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi" + OUTPUT_VARIABLE _GSS_CFLAGS + RESULT_VARIABLE _GSS_CONFIGURE_FAILED + ) +message(STATUS "CFLAGS: ${_GSS_CFLAGS}") + if(NOT _GSS_CONFIGURE_FAILED) # 0 means success + # should also work in an odd case when multiple directories are given + string(STRIP "${_GSS_CFLAGS}" _GSS_CFLAGS) + string(REGEX REPLACE " +-I" ";" _GSS_CFLAGS "${_GSS_CFLAGS}") + string(REGEX REPLACE " +-([^I][^ \\t;]*)" ";-\\1"_GSS_CFLAGS "${_GSS_CFLAGS}") + + foreach(_flag ${_GSS_CFLAGS}) + if(_flag MATCHES "^-I.*") + string(REGEX REPLACE "^-I" "" _val "${_flag}") + list(APPEND _GSS_INCLUDE_DIR "${_val}") + else() + list(APPEND _GSS_COMPILER_FLAGS "${_flag}") + endif() + endforeach() + endif() + + execute_process( + COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi" + OUTPUT_VARIABLE _GSS_LIB_FLAGS + RESULT_VARIABLE _GSS_CONFIGURE_FAILED + ) +message(STATUS "LDFLAGS: ${_GSS_LIB_FLAGS}") + if(NOT _GSS_CONFIGURE_FAILED) # 0 means success + # this script gives us libraries and link directories. Blah. We have to deal with it. + string(STRIP "${_GSS_LIB_FLAGS}" _GSS_LIB_FLAGS) + string(REGEX REPLACE " +-(L|l)" ";-\\1" _GSS_LIB_FLAGS "${_GSS_LIB_FLAGS}") + string(REGEX REPLACE " +-([^Ll][^ \\t;]*)" ";-\\1"_GSS_LIB_FLAGS "${_GSS_LIB_FLAGS}") + + foreach(_flag ${_GSS_LIB_FLAGS}) + if(_flag MATCHES "^-l.*") + string(REGEX REPLACE "^-l" "" _val "${_flag}") + list(APPEND _GSS_LIBRARIES "${_val}") + elseif(_flag MATCHES "^-L.*") + string(REGEX REPLACE "^-L" "" _val "${_flag}") + list(APPEND _GSS_LINK_DIRECTORIES "${_val}") + else() + list(APPEND _GSS_LINKER_FLAGS "${_flag}") + endif() + endforeach() + endif() + + + execute_process( + COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version" + OUTPUT_VARIABLE _GSS_VERSION + RESULT_VARIABLE _GSS_CONFIGURE_FAILED + ) + + # older versions may not have the "--version" parameter. In this case we just don't care. + if(_GSS_CONFIGURE_FAILED) + set(_GSS_VERSION 0) + endif() + + + execute_process( + COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor" + OUTPUT_VARIABLE _GSS_VENDOR + RESULT_VARIABLE _GSS_CONFIGURE_FAILED + ) + + # older versions may not have the "--vendor" parameter. In this case we just don't care. + if(_GSS_CONFIGURE_FAILED) + set(GSS_FLAVOUR "Heimdal") # most probably, shouldn't really matter + else() + if(_GSS_VENDOR MATCHES ".*H|heimdal.*") + set(GSS_FLAVOUR "Heimdal") + else() + set(GSS_FLAVOUR "MIT") + endif() + endif() + + else() # either there is no config script or we are on platform that doesn't provide one (Windows?) + + find_path(_GSS_INCLUDE_DIR + NAMES + "gssapi/gssapi.h" + HINTS + ${_GSS_ROOT_HINTS} + PATH_SUFFIXES + include + inc + ) + + if(_GSS_INCLUDE_DIR) #jay, we've found something + set(CMAKE_REQUIRED_INCLUDES "${_GSS_INCLUDE_DIR}") + check_include_files( "gssapi/gssapi_generic.h;gssapi/gssapi_krb5.h" _GSS_HAVE_MIT_HEADERS) + + if(_GSS_HAVE_MIT_HEADERS) + set(GSS_FLAVOUR "MIT") + else() + # prevent compiling the header - just check if we can include it + set(CMAKE_REQUIRED_DEFINITIONS "-D__ROKEN_H__") + check_include_file( "roken.h" _GSS_HAVE_ROKEN_H) + + check_include_file( "heimdal/roken.h" _GSS_HAVE_HEIMDAL_ROKEN_H) + if(_GSS_HAVE_ROKEN_H OR _GSS_HAVE_HEIMDAL_ROKEN_H) + set(GSS_FLAVOUR "Heimdal") + endif() + set(CMAKE_REQUIRED_DEFINITIONS "") + endif() + else() + # I'm not convienced if this is the right way but this is what autotools do at the moment + find_path(_GSS_INCLUDE_DIR + NAMES + "gssapi.h" + HINTS + ${_GSS_ROOT_HINTS} + PATH_SUFFIXES + include + inc + ) + + if(_GSS_INCLUDE_DIR) + set(GSS_FLAVOUR "Heimdal") + endif() + endif() + + # if we have headers, check if we can link libraries + if(GSS_FLAVOUR) + set(_GSS_LIBDIR_SUFFIXES "") + set(_GSS_LIBDIR_HINTS ${_GSS_ROOT_HINTS}) + get_filename_component(_GSS_CALCULATED_POTENTIAL_ROOT "${_GSS_INCLUDE_DIR}" PATH) + list(APPEND _GSS_LIBDIR_HINTS ${_GSS_CALCULATED_POTENTIAL_ROOT}) + + if(WIN32) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + list(APPEND _GSS_LIBDIR_SUFFIXES "lib/AMD64") + if(GSS_FLAVOUR STREQUAL "MIT") + set(_GSS_LIBNAME "gssapi64") + else() + set(_GSS_LIBNAME "libgssapi") + endif() + else() + list(APPEND _GSS_LIBDIR_SUFFIXES "lib/i386") + if(GSS_FLAVOUR STREQUAL "MIT") + set(_GSS_LIBNAME "gssapi32") + else() + set(_GSS_LIBNAME "libgssapi") + endif() + endif() + else() + list(APPEND _GSS_LIBDIR_SUFFIXES "lib;lib64") # those suffixes are not checked for HINTS + if(GSS_FLAVOUR STREQUAL "MIT") + set(_GSS_LIBNAME "gssapi_krb5") + else() + set(_GSS_LIBNAME "gssapi") + endif() + endif() + + find_library(_GSS_LIBRARIES + NAMES + ${_GSS_LIBNAME} + HINTS + ${_GSS_LIBDIR_HINTS} + PATH_SUFFIXES + ${_GSS_LIBDIR_SUFFIXES} + ) + + endif() + + endif() +else() + if(_GSS_PKG_${_MIT_MODNAME}_VERSION) + set(GSS_FLAVOUR "MIT") + set(_GSS_VERSION _GSS_PKG_${_MIT_MODNAME}_VERSION) + else() + set(GSS_FLAVOUR "Heimdal") + set(_GSS_VERSION _GSS_PKG_${_MIT_HEIMDAL}_VERSION) + endif() +endif() + +set(GSS_INCLUDE_DIR ${_GSS_INCLUDE_DIR}) +set(GSS_LIBRARIES ${_GSS_LIBRARIES}) +set(GSS_LINK_DIRECTORIES ${_GSS_LINK_DIRECTORIES}) +set(GSS_LINKER_FLAGS ${_GSS_LINKER_FLAGS}) +set(GSS_COMPILER_FLAGS ${_GSS_COMPILER_FLAGS}) +set(GSS_VERSION ${_GSS_VERSION}) + +if(GSS_FLAVOUR) + + if(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "Heimdal") + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(HEIMDAL_MANIFEST_FILE "Heimdal.Application.amd64.manifest") + else() + set(HEIMDAL_MANIFEST_FILE "Heimdal.Application.x86.manifest") + endif() + + if(EXISTS "${GSS_INCLUDE_DIR}/${HEIMDAL_MANIFEST_FILE}") + file(STRINGS "${GSS_INCLUDE_DIR}/${HEIMDAL_MANIFEST_FILE}" heimdal_version_str + REGEX "^.*version=\"[0-9]\\.[^\"]+\".*$") + + string(REGEX MATCH "[0-9]\\.[^\"]+" + GSS_VERSION "${heimdal_version_str}") + endif() + + if(NOT GSS_VERSION) + set(GSS_VERSION "Heimdal Unknown") + endif() + elseif(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "MIT") + get_filename_component(_MIT_VERSION "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos\\SDK\\CurrentVersion;VersionString]" NAME CACHE) + if(WIN32 AND _MIT_VERSION) + set(GSS_VERSION "${_MIT_VERSION}") + else() + set(GSS_VERSION "MIT Unknown") + endif() + endif() +endif() + + +include(FindPackageHandleStandardArgs) + +set(_GSS_REQUIRED_VARS GSS_LIBRARIES GSS_FLAVOUR) + +find_package_handle_standard_args(GSS + REQUIRED_VARS + ${_GSS_REQUIRED_VARS} + VERSION_VAR + GSS_VERSION + FAIL_MESSAGE + "Could NOT find GSS, try to set the path to GSS root folder in the system variable GSS_ROOT_DIR" +) + +mark_as_advanced(GSS_INCLUDE_DIR GSS_LIBRARIES) diff --git a/CMake/FindLibSSH2.cmake b/CMake/FindLibSSH2.cmake new file mode 100644 index 0000000..12a7c61 --- /dev/null +++ b/CMake/FindLibSSH2.cmake @@ -0,0 +1,35 @@ +# - Try to find the libssh2 library +# Once done this will define +# +# LIBSSH2_FOUND - system has the libssh2 library +# LIBSSH2_INCLUDE_DIR - the libssh2 include directory +# LIBSSH2_LIBRARY - the libssh2 library name + +if (LIBSSH2_INCLUDE_DIR AND LIBSSH2_LIBRARY) + set(LibSSH2_FIND_QUIETLY TRUE) +endif (LIBSSH2_INCLUDE_DIR AND LIBSSH2_LIBRARY) + +FIND_PATH(LIBSSH2_INCLUDE_DIR libssh2.h +) + +FIND_LIBRARY(LIBSSH2_LIBRARY NAMES ssh2 +) + +if(LIBSSH2_INCLUDE_DIR) + file(STRINGS "${LIBSSH2_INCLUDE_DIR}/libssh2.h" libssh2_version_str REGEX "^#define[\t ]+LIBSSH2_VERSION_NUM[\t ]+0x[0-9][0-9][0-9][0-9][0-9][0-9].*") + + string(REGEX REPLACE "^.*LIBSSH2_VERSION_NUM[\t ]+0x([0-9][0-9]).*$" "\\1" LIBSSH2_VERSION_MAJOR "${libssh2_version_str}") + string(REGEX REPLACE "^.*LIBSSH2_VERSION_NUM[\t ]+0x[0-9][0-9]([0-9][0-9]).*$" "\\1" LIBSSH2_VERSION_MINOR "${libssh2_version_str}") + string(REGEX REPLACE "^.*LIBSSH2_VERSION_NUM[\t ]+0x[0-9][0-9][0-9][0-9]([0-9][0-9]).*$" "\\1" LIBSSH2_VERSION_PATCH "${libssh2_version_str}") + + string(REGEX REPLACE "^0(.+)" "\\1" LIBSSH2_VERSION_MAJOR "${LIBSSH2_VERSION_MAJOR}") + string(REGEX REPLACE "^0(.+)" "\\1" LIBSSH2_VERSION_MINOR "${LIBSSH2_VERSION_MINOR}") + string(REGEX REPLACE "^0(.+)" "\\1" LIBSSH2_VERSION_PATCH "${LIBSSH2_VERSION_PATCH}") + + set(LIBSSH2_VERSION "${LIBSSH2_VERSION_MAJOR}.${LIBSSH2_VERSION_MINOR}.${LIBSSH2_VERSION_PATCH}") +endif(LIBSSH2_INCLUDE_DIR) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibSSH2 DEFAULT_MSG LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY ) + +MARK_AS_ADVANCED(LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY LIBSSH2_VERSION_MAJOR LIBSSH2_VERSION_MINOR LIBSSH2_VERSION_PATCH LIBSSH2_VERSION) diff --git a/CMake/FindOpenSSL.cmake b/CMake/FindOpenSSL.cmake deleted file mode 100644 index 63a9d60..0000000 --- a/CMake/FindOpenSSL.cmake +++ /dev/null @@ -1,19 +0,0 @@ -# Extension of the standard FindOpenSSL.cmake -# Adds OPENSSL_INCLUDE_DIRS and libeay32 -include("${CMAKE_ROOT}/Modules/FindOpenSSL.cmake") - -# Bill Hoffman told that libeay32 is necessary for him: -find_library(SSL_LIBEAY NAMES libeay32) - -if(OPENSSL_FOUND) - if(SSL_LIBEAY) - list(APPEND OPENSSL_LIBRARIES ${SSL_LIBEAY}) - else() - set(OPENSSL_FOUND FALSE) - endif() -endif() - - -if(OPENSSL_FOUND) - set(OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) -endif() diff --git a/CMake/FindZLIB.cmake b/CMake/FindZLIB.cmake deleted file mode 100644 index 87f1d4f..0000000 --- a/CMake/FindZLIB.cmake +++ /dev/null @@ -1,8 +0,0 @@ -# Locate zlib -include("${CMAKE_ROOT}/Modules/FindZLIB.cmake") - -find_library(ZLIB_LIBRARY_DEBUG NAMES zd zlibd zdlld zlib1d ) - -if(ZLIB_FOUND AND ZLIB_LIBRARY_DEBUG) - set( ZLIB_LIBRARIES optimized "${ZLIB_LIBRARY}" debug ${ZLIB_LIBRARY_DEBUG}) -endif() diff --git a/CMake/Macros.cmake b/CMake/Macros.cmake new file mode 100644 index 0000000..dab005f --- /dev/null +++ b/CMake/Macros.cmake @@ -0,0 +1,95 @@ +#File defines convenience macros for available feature testing + +# This macro checks if the symbol exists in the library and if it +# does, it prepends library to the list. It is intended to be called +# multiple times with a sequence of possibly dependent libraries in +# order of least-to-most-dependent. Some libraries depend on others +# to link correctly. +macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE) + check_library_exists("${LIBRARY};${CURL_LIBS}" ${SYMBOL} "${CMAKE_LIBRARY_PATH}" + ${VARIABLE}) + if(${VARIABLE}) + set(CURL_LIBS ${LIBRARY} ${CURL_LIBS}) + endif(${VARIABLE}) +endmacro(CHECK_LIBRARY_EXISTS_CONCAT) + +# Check if header file exists and add it to the list. +# This macro is intended to be called multiple times with a sequence of +# possibly dependent header files. Some headers depend on others to be +# compiled correctly. +macro(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE) + check_include_files("${CURL_INCLUDES};${FILE}" ${VARIABLE}) + if(${VARIABLE}) + set(CURL_INCLUDES ${CURL_INCLUDES} ${FILE}) + set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -D${VARIABLE}") + endif(${VARIABLE}) +endmacro(CHECK_INCLUDE_FILE_CONCAT) + +# For other curl specific tests, use this macro. +macro(CURL_INTERNAL_TEST CURL_TEST) + if(NOT DEFINED "${CURL_TEST}") + set(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${CURL_TEST} ${CURL_TEST_DEFINES} ${CMAKE_REQUIRED_FLAGS}") + if(CMAKE_REQUIRED_LIBRARIES) + set(CURL_TEST_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + endif(CMAKE_REQUIRED_LIBRARIES) + + message(STATUS "Performing Curl Test ${CURL_TEST}") + try_compile(${CURL_TEST} + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CURL_TEST_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + if(${CURL_TEST}) + set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") + message(STATUS "Performing Curl Test ${CURL_TEST} - Success") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Performing Curl Test ${CURL_TEST} passed with the following output:\n" + "${OUTPUT}\n") + else(${CURL_TEST}) + message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") + set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Performing Curl Test ${CURL_TEST} failed with the following output:\n" + "${OUTPUT}\n") + endif(${CURL_TEST}) + endif() +endmacro(CURL_INTERNAL_TEST) + +macro(CURL_INTERNAL_TEST_RUN CURL_TEST) + if(NOT DEFINED "${CURL_TEST}_COMPILE") + set(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}") + if(CMAKE_REQUIRED_LIBRARIES) + set(CURL_TEST_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + endif(CMAKE_REQUIRED_LIBRARIES) + + message(STATUS "Performing Curl Test ${CURL_TEST}") + try_run(${CURL_TEST} ${CURL_TEST}_COMPILE + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CURL_TEST_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + if(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") + message(STATUS "Performing Curl Test ${CURL_TEST} - Success") + else(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") + set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") + file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" + "Performing Curl Test ${CURL_TEST} failed with the following output:\n" + "${OUTPUT}") + if(${CURL_TEST}_COMPILE) + file(APPEND + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" + "There was a problem running this test\n") + endif(${CURL_TEST}_COMPILE) + file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" + "\n\n") + endif(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + endif() +endmacro(CURL_INTERNAL_TEST_RUN) diff --git a/CMake/OtherTests.cmake b/CMake/OtherTests.cmake index 89d0048..4f07f22 100644 --- a/CMake/OtherTests.cmake +++ b/CMake/OtherTests.cmake @@ -1,15 +1,10 @@ -include(CurlCheckCSourceCompiles) -set(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2") -set(HEADER_INCLUDES) -set(headers_hack) +include(CheckCSourceCompiles) +# The begin of the sources (macros and includes) +set(_source_epilogue "#undef inline") macro(add_header_include check header) if(${check}) - set(headers_hack - "${headers_hack}\n#include <${header}>") - #SET(HEADER_INCLUDES - # ${HEADER_INCLUDES} - # "${header}") + set(_source_epilogue "${_source_epilogue}\n#include <${header}>") endif(${check}) endmacro(add_header_include) @@ -18,22 +13,23 @@ if(HAVE_WINDOWS_H) add_header_include(HAVE_WINDOWS_H "windows.h") add_header_include(HAVE_WINSOCK2_H "winsock2.h") add_header_include(HAVE_WINSOCK_H "winsock.h") - set(EXTRA_DEFINES ${EXTRA_DEFINES} - "__unused7\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#define __unused3") + set(_source_epilogue + "${_source_epilogue}\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif") set(signature_call_conv "PASCAL") + if(HAVE_LIBWS2_32) + set(CMAKE_REQUIRED_LIBRARIES ws2_32) + endif() else(HAVE_WINDOWS_H) add_header_include(HAVE_SYS_TYPES_H "sys/types.h") add_header_include(HAVE_SYS_SOCKET_H "sys/socket.h") endif(HAVE_WINDOWS_H) -set(EXTRA_DEFINES_BACKUP "${EXTRA_DEFINES}") -set(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5") -curl_check_c_source_compiles("recv(0, 0, 0, 0)" curl_cv_recv) +check_c_source_compiles("${_source_epilogue} +int main(void) { + recv(0, 0, 0, 0); + return 0; +}" curl_cv_recv) if(curl_cv_recv) - # AC_CACHE_CHECK([types of arguments and return type for recv], - #[curl_cv_func_recv_args], [ - #SET(curl_cv_func_recv_args "unknown") - #for recv_retv in 'int' 'ssize_t'; do if(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown") foreach(recv_retv "int" "ssize_t" ) foreach(recv_arg1 "int" "ssize_t" "SOCKET") @@ -41,17 +37,23 @@ if(curl_cv_recv) foreach(recv_arg3 "size_t" "int" "socklen_t" "unsigned int") foreach(recv_arg4 "int" "unsigned int") if(NOT curl_cv_func_recv_done) - set(curl_cv_func_recv_test "UNKNOWN") - set(extern_line "extern ${recv_retv} ${signature_call_conv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})\;") - set(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5") - curl_check_c_source_compiles(" + unset(curl_cv_func_recv_test CACHE) + check_c_source_compiles(" + ${_source_epilogue} + extern ${recv_retv} ${signature_call_conv} + recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4}); + int main(void) { ${recv_arg1} s=0; ${recv_arg2} buf=0; ${recv_arg3} len=0; ${recv_arg4} flags=0; - ${recv_retv} res = recv(s, buf, len, flags)" - curl_cv_func_recv_test - "${recv_retv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})") + ${recv_retv} res = recv(s, buf, len, flags); + (void) res; + return 0; + }" + curl_cv_func_recv_test) + message(STATUS + "Tested: ${recv_retv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})") if(curl_cv_func_recv_test) set(curl_cv_func_recv_args "${recv_arg1},${recv_arg2},${recv_arg3},${recv_arg4},${recv_retv}") @@ -69,18 +71,13 @@ if(curl_cv_recv) endforeach(recv_arg2) endforeach(recv_arg1) endforeach(recv_retv) - else(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown") + else() string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG1 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG2 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG3 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$" "\\1" RECV_TYPE_ARG4 "${curl_cv_func_recv_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$" "\\1" RECV_TYPE_RETV "${curl_cv_func_recv_args}") - #MESSAGE("RECV_TYPE_ARG1 ${RECV_TYPE_ARG1}") - #MESSAGE("RECV_TYPE_ARG2 ${RECV_TYPE_ARG2}") - #MESSAGE("RECV_TYPE_ARG3 ${RECV_TYPE_ARG3}") - #MESSAGE("RECV_TYPE_ARG4 ${RECV_TYPE_ARG4}") - #MESSAGE("RECV_TYPE_RETV ${RECV_TYPE_RETV}") - endif(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown") + endif() if("${curl_cv_func_recv_args}" STREQUAL "unknown") message(FATAL_ERROR "Cannot find proper types to use for recv args") @@ -91,12 +88,12 @@ endif(curl_cv_recv) set(curl_cv_func_recv_args "${curl_cv_func_recv_args}" CACHE INTERNAL "Arguments for recv") set(HAVE_RECV 1) -curl_check_c_source_compiles("send(0, 0, 0, 0)" curl_cv_send) +check_c_source_compiles("${_source_epilogue} +int main(void) { + send(0, 0, 0, 0); + return 0; +}" curl_cv_send) if(curl_cv_send) - # AC_CACHE_CHECK([types of arguments and return type for send], - #[curl_cv_func_send_args], [ - #SET(curl_cv_func_send_args "unknown") - #for send_retv in 'int' 'ssize_t'; do if(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown") foreach(send_retv "int" "ssize_t" ) foreach(send_arg1 "int" "ssize_t" "SOCKET") @@ -104,19 +101,24 @@ if(curl_cv_send) foreach(send_arg3 "size_t" "int" "socklen_t" "unsigned int") foreach(send_arg4 "int" "unsigned int") if(NOT curl_cv_func_send_done) - set(curl_cv_func_send_test "UNKNOWN") - set(extern_line "extern ${send_retv} ${signature_call_conv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})\;") - set(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5") - curl_check_c_source_compiles(" + unset(curl_cv_func_send_test CACHE) + check_c_source_compiles(" + ${_source_epilogue} + extern ${send_retv} ${signature_call_conv} + send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4}); + int main(void) { ${send_arg1} s=0; ${send_arg2} buf=0; ${send_arg3} len=0; ${send_arg4} flags=0; - ${send_retv} res = send(s, buf, len, flags)" - curl_cv_func_send_test - "${send_retv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})") + ${send_retv} res = send(s, buf, len, flags); + (void) res; + return 0; + }" + curl_cv_func_send_test) + message(STATUS + "Tested: ${send_retv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})") if(curl_cv_func_send_test) - #MESSAGE("Found arguments: ${curl_cv_func_send_test}") string(REGEX REPLACE "(const) .*" "\\1" send_qual_arg2 "${send_arg2}") string(REGEX REPLACE "const (.*)" "\\1" send_arg2 "${send_arg2}") set(curl_cv_func_send_args @@ -135,20 +137,14 @@ if(curl_cv_send) endforeach(send_arg2) endforeach(send_arg1) endforeach(send_retv) - else(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown") + else() string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG1 "${curl_cv_func_send_args}") string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG2 "${curl_cv_func_send_args}") string(REGEX REPLACE "^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG3 "${curl_cv_func_send_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG4 "${curl_cv_func_send_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$" "\\1" SEND_TYPE_RETV "${curl_cv_func_send_args}") string(REGEX REPLACE "^[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$" "\\1" SEND_QUAL_ARG2 "${curl_cv_func_send_args}") - #MESSAGE("SEND_TYPE_ARG1 ${SEND_TYPE_ARG1}") - #MESSAGE("SEND_TYPE_ARG2 ${SEND_TYPE_ARG2}") - #MESSAGE("SEND_TYPE_ARG3 ${SEND_TYPE_ARG3}") - #MESSAGE("SEND_TYPE_ARG4 ${SEND_TYPE_ARG4}") - #MESSAGE("SEND_TYPE_RETV ${SEND_TYPE_RETV}") - #MESSAGE("SEND_QUAL_ARG2 ${SEND_QUAL_ARG2}") - endif(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown") + endif() if("${curl_cv_func_send_args}" STREQUAL "unknown") message(FATAL_ERROR "Cannot find proper types to use for send args") @@ -160,88 +156,71 @@ endif(curl_cv_send) set(curl_cv_func_send_args "${curl_cv_func_send_args}" CACHE INTERNAL "Arguments for send") set(HAVE_SEND 1) -set(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5") -curl_check_c_source_compiles("int flag = MSG_NOSIGNAL" HAVE_MSG_NOSIGNAL) +check_c_source_compiles("${_source_epilogue} + int main(void) { + int flag = MSG_NOSIGNAL; + (void)flag; + return 0; + }" HAVE_MSG_NOSIGNAL) -set(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2") -set(HEADER_INCLUDES) -set(headers_hack) - -macro(add_header_include check header) - if(${check}) - set(headers_hack - "${headers_hack}\n#include <${header}>") - #SET(HEADER_INCLUDES - # ${HEADER_INCLUDES} - # "${header}") - endif(${check}) -endmacro(add_header_include header) - -if(HAVE_WINDOWS_H) - set(EXTRA_DEFINES ${EXTRA_DEFINES} - "__unused7\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#define __unused3") - add_header_include(HAVE_WINDOWS_H "windows.h") - add_header_include(HAVE_WINSOCK2_H "winsock2.h") - add_header_include(HAVE_WINSOCK_H "winsock.h") -else(HAVE_WINDOWS_H) - add_header_include(HAVE_SYS_TYPES_H "sys/types.h") +if(NOT HAVE_WINDOWS_H) add_header_include(HAVE_SYS_TIME_H "sys/time.h") add_header_include(TIME_WITH_SYS_TIME "time.h") add_header_include(HAVE_TIME_H "time.h") -endif(HAVE_WINDOWS_H) -set(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5") -curl_check_c_source_compiles("struct timeval ts;\nts.tv_sec = 0;\nts.tv_usec = 0" HAVE_STRUCT_TIMEVAL) - - -include(CurlCheckCSourceRuns) -set(EXTRA_DEFINES) -set(HEADER_INCLUDES) +endif() +check_c_source_compiles("${_source_epilogue} +int main(void) { + struct timeval ts; + ts.tv_sec = 0; + ts.tv_usec = 0; + (void)ts; + return 0; +}" HAVE_STRUCT_TIMEVAL) + + +include(CheckCSourceRuns) +set(CMAKE_REQUIRED_FLAGS) if(HAVE_SYS_POLL_H) - set(HEADER_INCLUDES "sys/poll.h") + set(CMAKE_REQUIRED_FLAGS "-DHAVE_SYS_POLL_H") endif(HAVE_SYS_POLL_H) -curl_check_c_source_runs("return poll((void *)0, 0, 10 /*ms*/)" HAVE_POLL_FINE) +check_c_source_runs(" + #ifdef HAVE_SYS_POLL_H + # include + #endif + int main(void) { + return poll((void *)0, 0, 10 /*ms*/); + }" HAVE_POLL_FINE) set(HAVE_SIG_ATOMIC_T 1) -set(EXTRA_DEFINES) -set(HEADER_INCLUDES) +set(CMAKE_REQUIRED_FLAGS) if(HAVE_SIGNAL_H) - set(HEADER_INCLUDES "signal.h") + set(CMAKE_REQUIRED_FLAGS "-DHAVE_SIGNAL_H") set(CMAKE_EXTRA_INCLUDE_FILES "signal.h") endif(HAVE_SIGNAL_H) check_type_size("sig_atomic_t" SIZEOF_SIG_ATOMIC_T) if(HAVE_SIZEOF_SIG_ATOMIC_T) - curl_check_c_source_compiles("static volatile sig_atomic_t dummy = 0" HAVE_SIG_ATOMIC_T_NOT_VOLATILE) + check_c_source_compiles(" + #ifdef HAVE_SIGNAL_H + # include + #endif + int main(void) { + static volatile sig_atomic_t dummy = 0; + (void)dummy; + return 0; + }" HAVE_SIG_ATOMIC_T_NOT_VOLATILE) if(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE) set(HAVE_SIG_ATOMIC_T_VOLATILE 1) endif(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE) endif(HAVE_SIZEOF_SIG_ATOMIC_T) -set(CHECK_TYPE_SIZE_PREINCLUDE - "#undef inline") - if(HAVE_WINDOWS_H) - set(CHECK_TYPE_SIZE_PREINCLUDE "${CHECK_TYPE_SIZE_PREINCLUDE} - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif - #include ") - if(HAVE_WINSOCK2_H) - set(CHECK_TYPE_SIZE_PREINCLUDE "${CHECK_TYPE_SIZE_PREINCLUDE}\n#include ") - endif(HAVE_WINSOCK2_H) -else(HAVE_WINDOWS_H) + set(CMAKE_EXTRA_INCLUDE_FILES winsock2.h) +else() + set(CMAKE_EXTRA_INCLUDE_FILES) if(HAVE_SYS_SOCKET_H) - set(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} - "sys/socket.h") + set(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h) endif(HAVE_SYS_SOCKET_H) - if(HAVE_NETINET_IN_H) - set(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} - "netinet/in.h") - endif(HAVE_NETINET_IN_H) - if(HAVE_ARPA_INET_H) - set(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} - "arpa/inet.h") - endif(HAVE_ARPA_INET_H) -endif(HAVE_WINDOWS_H) +endif() check_type_size("struct sockaddr_storage" SIZEOF_STRUCT_SOCKADDR_STORAGE) if(HAVE_SIZEOF_STRUCT_SOCKADDR_STORAGE) diff --git a/CMake/Platforms/WindowsCache.cmake b/CMake/Platforms/WindowsCache.cmake index 49161f8..6fc2991 100644 --- a/CMake/Platforms/WindowsCache.cmake +++ b/CMake/Platforms/WindowsCache.cmake @@ -5,6 +5,7 @@ if(NOT UNIX) set(HAVE_LIBSOCKET 0) set(NOT_NEED_LIBNSL 0) set(HAVE_LIBNSL 0) + set(HAVE_GETHOSTNAME 1) set(HAVE_LIBZ 0) set(HAVE_LIBCRYPTO 0) @@ -14,7 +15,6 @@ if(NOT UNIX) set(HAVE_ARPA_INET_H 0) set(HAVE_DLFCN_H 0) set(HAVE_FCNTL_H 1) - set(HAVE_FEATURES_H 0) set(HAVE_INTTYPES_H 0) set(HAVE_IO_H 1) set(HAVE_MALLOC_H 1) @@ -108,7 +108,11 @@ if(NOT UNIX) set(HAVE_IN_ADDR_T 0) set(HAVE_INET_NTOA_R_DECL 0) set(HAVE_INET_NTOA_R_DECL_REENTRANT 0) - set(HAVE_GETADDRINFO 0) + if(ENABLE_IPV6) + set(HAVE_GETADDRINFO 1) + else() + set(HAVE_GETADDRINFO 0) + endif() set(STDC_HEADERS 1) set(RETSIGTYPE_TEST 1) diff --git a/CMakeLists.txt b/CMakeLists.txt index 244085b..fc75d59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,24 @@ +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 1998 - 2014, Daniel Stenberg, , 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 http://curl.haxx.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. +# +########################################################################### # cURL/libcurl CMake script # by Tetetest and Sukender (Benoit Neil) @@ -17,35 +38,27 @@ # To check: # (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not. # (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options. -cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) +cmake_minimum_required(VERSION 2.8 FATAL_ERROR) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}") include(Utilities) +include(Macros) project( CURL C ) +message(WARNING "the curl cmake build system is poorly maintained. Be aware") file (READ ${CURL_SOURCE_DIR}/include/curl/curlver.h CURL_VERSION_H_CONTENTS) -string (REGEX MATCH "LIBCURL_VERSION_MAJOR[ \t]+([0-9]+)" - LIBCURL_VERSION_MJ ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" - LIBCURL_VERSION_MJ ${LIBCURL_VERSION_MJ}) -string (REGEX MATCH - "LIBCURL_VERSION_MINOR[ \t]+([0-9]+)" - LIBCURL_VERSION_MI ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MI ${LIBCURL_VERSION_MI}) -string (REGEX MATCH - "LIBCURL_VERSION_PATCH[ \t]+([0-9]+)" - LIBCURL_VERSION_PT ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_PT ${LIBCURL_VERSION_PT}) -set (CURL_MAJOR_VERSION ${LIBCURL_VERSION_MJ}) -set (CURL_MINOR_VERSION ${LIBCURL_VERSION_MI}) -set (CURL_PATCH_VERSION ${LIBCURL_VERSION_PT}) +string (REGEX MATCH "#define LIBCURL_VERSION \"[^\"]*" + CURL_VERSION ${CURL_VERSION_H_CONTENTS}) +string (REGEX REPLACE "[^\"]+\"" "" CURL_VERSION ${CURL_VERSION}) +string (REGEX MATCH "#define LIBCURL_VERSION_NUM 0x[0-9a-fA-F]+" + CURL_VERSION_NUM ${CURL_VERSION_H_CONTENTS}) +string (REGEX REPLACE "[^0]+0x" "" CURL_VERSION_NUM ${CURL_VERSION_NUM}) include_regular_expression("^.*$") # Sukender: Is it necessary? # Setup package meta-data # SET(PACKAGE "curl") -set(CURL_VERSION ${CURL_MAJOR_VERSION}.${CURL_MINOR_VERSION}.${CURL_PATCH_VERSION}) message(STATUS "curl version=[${CURL_VERSION}]") # SET(PACKAGE_TARNAME "curl") # SET(PACKAGE_NAME "curl") @@ -58,19 +71,20 @@ set(OS "\"${CMAKE_SYSTEM_NAME}\"") include_directories(${PROJECT_BINARY_DIR}/include/curl) include_directories( ${CURL_SOURCE_DIR}/include ) -if(WIN32) - set(NATIVE_WINDOWS ON) -endif() - option(BUILD_CURL_EXE "Set to ON to build cURL executable." ON) option(BUILD_CURL_TESTS "Set to ON to build cURL tests." ON) option(CURL_STATICLIB "Set to ON to build libcurl with static linking." OFF) -option(CURL_USE_ARES "Set to ON to enable c-ares support" OFF) +option(ENABLE_ARES "Set to ON to enable c-ares support" OFF) +option(ENABLE_THREADED_RESOLVER "Set to ON to enable POSIX threaded DNS lookup" OFF) # initialize CURL_LIBS set(CURL_LIBS "") -if(CURL_USE_ARES) - set(USE_ARES ${CURL_USE_ARES}) +if(ENABLE_THREADED_RESOLVER AND ENABLE_ARES) + message(FATAL_ERROR "Options ENABLE_THREADED_RESOLVER and ENABLE_ARES are mutually exclusive") +endif() + +if(ENABLE_ARES) + set(USE_ARES 1) find_package(CARES REQUIRED) list(APPEND CURL_LIBS ${CARES_LIBRARY} ) set(CURL_LIBS ${CURL_LIBS} ${CARES_LIBRARY}) @@ -114,26 +128,33 @@ mark_as_advanced(CURL_DISABLE_HTTP) option(CURL_DISABLE_LDAPS "to disable LDAPS" OFF) mark_as_advanced(CURL_DISABLE_LDAPS) -if(WIN32) - set(CURL_DEFAULT_DISABLE_LDAP OFF) - # some windows compilers do not have wldap32 - if( NOT HAVE_WLDAP32) - set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) - message(STATUS "wldap32 not found CURL_DISABLE_LDAP set ON") - option(CURL_LDAP_WIN "Use Windows LDAP implementation" OFF) - else() - option(CURL_LDAP_WIN "Use Windows LDAP implementation" ON) - endif() - mark_as_advanced(CURL_LDAP_WIN) -endif() + +option(CURL_DISABLE_RTSP "to disable RTSP" OFF) +mark_as_advanced(CURL_DISABLE_RTSP) +option(CURL_DISABLE_PROXY "to disable proxy" OFF) +mark_as_advanced(CURL_DISABLE_PROXY) +option(CURL_DISABLE_POP3 "to disable POP3" OFF) +mark_as_advanced(CURL_DISABLE_POP3) +option(CURL_DISABLE_IMAP "to disable IMAP" OFF) +mark_as_advanced(CURL_DISABLE_IMAP) +option(CURL_DISABLE_SMTP "to disable SMTP" OFF) +mark_as_advanced(CURL_DISABLE_SMTP) +option(CURL_DISABLE_GOPHER "to disable Gopher" OFF) +mark_as_advanced(CURL_DISABLE_GOPHER) if(HTTP_ONLY) set(CURL_DISABLE_FTP ON) set(CURL_DISABLE_LDAP ON) + set(CURL_DISABLE_LDAPS ON) set(CURL_DISABLE_TELNET ON) set(CURL_DISABLE_DICT ON) set(CURL_DISABLE_FILE ON) set(CURL_DISABLE_TFTP ON) + set(CURL_DISABLE_RTSP ON) + set(CURL_DISABLE_POP3 ON) + set(CURL_DISABLE_IMAP ON) + set(CURL_DISABLE_SMTP ON) + set(CURL_DISABLE_GOPHER ON) endif() option(CURL_DISABLE_COOKIES "to disable cookies support" OFF) @@ -145,24 +166,53 @@ option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF) mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS) option(DISABLED_THREADSAFE "Set to explicitly specify we don't want to use thread-safe functions" OFF) mark_as_advanced(DISABLED_THREADSAFE) -option(ENABLE_IPV6 "Define if you want to enable IPv6 support" OFF) +option(ENABLE_IPV6 "Define if you want to enable IPv6 support" ON) mark_as_advanced(ENABLE_IPV6) +if(ENABLE_IPV6) + include(CheckStructHasMember) + check_struct_has_member("struct sockaddr_in6" sin6_addr "netinet/in.h" + HAVE_SOCKADDR_IN6_SIN6_ADDR) + check_struct_has_member("struct sockaddr_in6" sin6_scope_id "netinet/in.h" + HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID) + if(NOT HAVE_SOCKADDR_IN6_SIN6_ADDR) + message(WARNING "struct sockaddr_in6 not available, disabling IPv6 support") + # Force the feature off as this name is used as guard macro... + set(ENABLE_IPV6 OFF + CACHE BOOL "Define if you want to enable IPv6 support" FORCE) + endif() +endif() -if(WIN32) - list_spaces_append_once(CMAKE_C_STANDARD_LIBRARIES wsock32.lib ws2_32.lib) # bufferoverflowu.lib - if(CURL_DISABLE_LDAP) - # Remove wldap32.lib from space-separated list - string(REPLACE " " ";" _LIST ${CMAKE_C_STANDARD_LIBRARIES}) - list(REMOVE_ITEM _LIST "wldap32.lib") - to_list_spaces(_LIST CMAKE_C_STANDARD_LIBRARIES) +option(ENABLE_MANUAL "to provide the built-in manual" ON) +unset(USE_MANUAL CACHE) # TODO: cache NROFF/NROFF_MANOPT/USE_MANUAL vars? +if(ENABLE_MANUAL) + find_program(NROFF NAMES gnroff nroff) + if(NROFF) + # Need a way to write to stdin, this will do + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt" "test") + # Tests for a valid nroff option to generate a manpage + foreach(_MANOPT "-man" "-mandoc") + execute_process(COMMAND "${NROFF}" ${_MANOPT} + OUTPUT_VARIABLE NROFF_MANOPT_OUTPUT + INPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt" + ERROR_QUIET) + # Save the option if it was valid + if(NROFF_MANOPT_OUTPUT) + message("Found *nroff option: -- ${_MANOPT}") + set(NROFF_MANOPT ${_MANOPT}) + set(USE_MANUAL 1) + break() + endif() + endforeach() + # No need for the temporary file + file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/nroff-input.txt") + if(NOT USE_MANUAL) + message(WARNING "Found no *nroff option to get plaintext from man pages") + endif() else() - # Append wldap32.lib - list_spaces_append_once(CMAKE_C_STANDARD_LIBRARIES wldap32.lib) + message(WARNING "Found no *nroff program") endif() - set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) endif() - # We need ansi c-flags, especially on HP set(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}") set(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS}) @@ -183,28 +233,25 @@ include (CheckIncludeFile) include (CheckIncludeFiles) include (CheckLibraryExists) include (CheckSymbolExists) -# if crosscompiling is on, the CHECK_TYPE_SIZE macro coming with cmake uses -# TRY_COMPILE instead of TRY_RUN which makes crosscompiling easier, Alex -if(CMAKE_CROSSCOMPILING) - include ("${CMAKE_MODULE_PATH}/CheckTypeSize.cmake") -else(CMAKE_CROSSCOMPILING) - include (CheckTypeSize) -endif(CMAKE_CROSSCOMPILING) +include (CheckTypeSize) +include (CheckCSourceCompiles) # On windows preload settings if(WIN32) include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake) endif(WIN32) -# This macro checks if the symbol exists in the library and if it -# does, it appends library to the list. -macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE) - check_library_exists("${LIBRARY};${CURL_LIBS}" ${SYMBOL} "" - ${VARIABLE}) - if(${VARIABLE}) - set(CURL_LIBS ${CURL_LIBS} ${LIBRARY}) - endif(${VARIABLE}) -endmacro(CHECK_LIBRARY_EXISTS_CONCAT) +if(ENABLE_THREADED_RESOLVER) + check_include_file_concat("pthread.h" HAVE_PTHREAD_H) + if(HAVE_PTHREAD_H) + set(CMAKE_THREAD_PREFER_PTHREAD 1) + find_package(Threads) + if(CMAKE_USE_PTHREADS_INIT) + set(CURL_LIBS ${CURL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) + set(USE_THREADS_POSIX 1) + endif() + endif() +endif() # Check for all needed libraries check_library_exists_concat("dl" dlopen HAVE_LIBDL) @@ -222,73 +269,271 @@ if(NOT NOT_NEED_LIBNSL) check_library_exists_concat("nsl" gethostbyname HAVE_LIBNSL) endif(NOT NOT_NEED_LIBNSL) -check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32) -check_library_exists_concat("winmm" getch HAVE_LIBWINMM) -check_library_exists("wldap32" cldap_open "" HAVE_WLDAP32) +check_function_exists(gethostname HAVE_GETHOSTNAME) -# IF(NOT CURL_SPECIAL_LIBZ) -# CHECK_LIBRARY_EXISTS_CONCAT("z" inflateEnd HAVE_LIBZ) -# ENDIF(NOT CURL_SPECIAL_LIBZ) +if(WIN32) + check_library_exists_concat("ws2_32" getch HAVE_LIBWS2_32) + check_library_exists_concat("winmm" getch HAVE_LIBWINMM) +endif() option(CMAKE_USE_OPENSSL "Use OpenSSL code. Experimental" ON) mark_as_advanced(CMAKE_USE_OPENSSL) + +set(USE_SSLEAY OFF) +set(USE_OPENSSL OFF) +set(HAVE_LIBCRYPTO OFF) +set(HAVE_LIBSSL OFF) + if(CMAKE_USE_OPENSSL) + find_package(OpenSSL) + if(OPENSSL_FOUND) + list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES}) + set(USE_SSLEAY ON) + set(USE_OPENSSL ON) + set(HAVE_LIBCRYPTO ON) + set(HAVE_LIBSSL ON) + include_directories(${OPENSSL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + check_include_file_concat("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H) + check_include_file_concat("openssl/engine.h" HAVE_OPENSSL_ENGINE_H) + check_include_file_concat("openssl/err.h" HAVE_OPENSSL_ERR_H) + check_include_file_concat("openssl/pem.h" HAVE_OPENSSL_PEM_H) + check_include_file_concat("openssl/pkcs12.h" HAVE_OPENSSL_PKCS12_H) + check_include_file_concat("openssl/rsa.h" HAVE_OPENSSL_RSA_H) + check_include_file_concat("openssl/ssl.h" HAVE_OPENSSL_SSL_H) + check_include_file_concat("openssl/x509.h" HAVE_OPENSSL_X509_H) + check_include_file_concat("openssl/rand.h" HAVE_OPENSSL_RAND_H) + endif() +endif() + +if(NOT CURL_DISABLE_LDAP) + if(WIN32) - find_package(OpenSSL) - if(OPENSSL_FOUND) - set(USE_SSLEAY TRUE) - set(USE_OPENSSL TRUE) - list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES} ) + option(CURL_LDAP_WIN "Use Windows LDAP implementation" ON) + if(CURL_LDAP_WIN) + check_library_exists("wldap32" cldap_open "" HAVE_WLDAP32) + if(NOT HAVE_WLDAP32) + set(CURL_LDAP_WIN OFF) + endif() + endif() + endif() + + option(CMAKE_USE_OPENLDAP "Use OpenLDAP code." OFF) + mark_as_advanced(CMAKE_USE_OPENLDAP) + set(CMAKE_LDAP_LIB "ldap" CACHE STRING "Name or full path to ldap library") + set(CMAKE_LBER_LIB "lber" CACHE STRING "Name or full path to lber library") + + if(CMAKE_USE_OPENLDAP AND CURL_LDAP_WIN) + message(FATAL_ERROR "Cannot use CURL_LDAP_WIN and CMAKE_USE_OPENLDAP at the same time") + endif() + + # Now that we know, we're not using windows LDAP... + if(NOT CURL_LDAP_WIN) + # Check for LDAP + set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES}) + check_library_exists_concat(${CMAKE_LDAP_LIB} ldap_init HAVE_LIBLDAP) + check_library_exists_concat(${CMAKE_LBER_LIB} ber_init HAVE_LIBLBER) + else() + check_include_file_concat("winldap.h" HAVE_WINLDAP_H) + check_include_file_concat("winber.h" HAVE_WINBER_H) + endif() + + set(CMAKE_LDAP_INCLUDE_DIR "" CACHE STRING "Path to LDAP include directory") + if(CMAKE_LDAP_INCLUDE_DIR) + set(CMAKE_REQUIRED_INCLUDES ${CMAKE_LDAP_INCLUDE_DIR}) + endif() + check_include_file_concat("ldap.h" HAVE_LDAP_H) + check_include_file_concat("lber.h" HAVE_LBER_H) + + if(NOT HAVE_LDAP_H) + message(STATUS "LDAP_H not found CURL_DISABLE_LDAP set ON") + set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) + elseif(NOT HAVE_LIBLDAP) + message(STATUS "LDAP library '${CMAKE_LDAP_LIB}' not found CURL_DISABLE_LDAP set ON") + set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) + else() + if(CMAKE_USE_OPENLDAP) + set(USE_OPENLDAP ON) + endif() + if(CMAKE_LDAP_INCLUDE_DIR) + include_directories(${CMAKE_LDAP_INCLUDE_DIR}) + endif() + set(NEED_LBER_H ON) + set(_HEADER_LIST) + if(HAVE_WINDOWS_H) + list(APPEND _HEADER_LIST "windows.h") + endif() + if(HAVE_SYS_TYPES_H) + list(APPEND _HEADER_LIST "sys/types.h") + endif() + list(APPEND _HEADER_LIST "ldap.h") + + set(_SRC_STRING "") + foreach(_HEADER ${_HEADER_LIST}) + set(_INCLUDE_STRING "${_INCLUDE_STRING}#include <${_HEADER}>\n") + endforeach() + + set(_SRC_STRING + " + ${_INCLUDE_STRING} + int main(int argc, char ** argv) + { + BerValue *bvp = NULL; + BerElement *bep = ber_init(bvp); + ber_free(bep, 1); + return 0; + }" + ) + set(CMAKE_REQUIRED_DEFINITIONS "-DLDAP_DEPRECATED=1" "-DWIN32_LEAN_AND_MEAN") + list(APPEND CMAKE_REQUIRED_LIBRARIES ${CMAKE_LDAP_LIB}) + if(HAVE_LIBLBER) + list(APPEND CMAKE_REQUIRED_LIBRARIES ${CMAKE_LBER_LIB}) + endif() + check_c_source_compiles("${_SRC_STRING}" NOT_NEED_LBER_H) + + if(NOT_NEED_LBER_H) + set(NEED_LBER_H OFF) else() - set(CMAKE_USE_OPENSSL FALSE) - message(STATUS "OpenSSL NOT Found, disabling CMAKE_USE_OPENSSL") + set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -DNEED_LBER_H") endif() - else(WIN32) - check_library_exists_concat("crypto" CRYPTO_lock HAVE_LIBCRYPTO) - check_library_exists_concat("ssl" SSL_connect HAVE_LIBSSL) - endif(WIN32) -endif(CMAKE_USE_OPENSSL) + endif() + +endif() + +# No ldap, no ldaps. +if(CURL_DISABLE_LDAP) + if(NOT CURL_DISABLE_LDAPS) + message(STATUS "LDAP needs to be enabled to support LDAPS") + set(CURL_DISABLE_LDAPS ON CACHE BOOL "" FORCE) + endif() +endif() + +if(NOT CURL_DISABLE_LDAPS) + check_include_file_concat("ldap_ssl.h" HAVE_LDAP_SSL_H) + check_include_file_concat("ldapssl.h" HAVE_LDAPSSL_H) +endif() # Check for idn check_library_exists_concat("idn" idna_to_ascii_lz HAVE_LIBIDN) -# Check for LDAP -check_library_exists_concat("ldap" ldap_init HAVE_LIBLDAP) -# if(NOT HAVE_LIBLDAP) -# SET(CURL_DISABLE_LDAP ON) -# endif(NOT HAVE_LIBLDAP) - # Check for symbol dlopen (same as HAVE_LIBDL) check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN) -# For other tests to use the same libraries -set(CMAKE_REQUIRED_LIBRARIES ${CURL_LIBS}) - option(CURL_ZLIB "Set to ON to enable building cURL with zlib support." ON) set(HAVE_LIBZ OFF) set(HAVE_ZLIB_H OFF) set(HAVE_ZLIB OFF) -if(CURL_ZLIB) # AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE +if(CURL_ZLIB) find_package(ZLIB QUIET) if(ZLIB_FOUND) set(HAVE_ZLIB_H ON) set(HAVE_ZLIB ON) set(HAVE_LIBZ ON) + list(APPEND CURL_LIBS ${ZLIB_LIBRARIES}) + include_directories(${ZLIB_INCLUDE_DIRS}) endif() endif() -# If we have features.h, then do the _BSD_SOURCE magic -check_include_file("features.h" HAVE_FEATURES_H) +#libSSH2 +option(CMAKE_USE_LIBSSH2 "Use libSSH2" ON) +mark_as_advanced(CMAKE_USE_LIBSSH2) +set(USE_LIBSSH2 OFF) +set(HAVE_LIBSSH2 OFF) +set(HAVE_LIBSSH2_H OFF) + +if(CMAKE_USE_LIBSSH2) + find_package(LibSSH2) + if(LIBSSH2_FOUND) + list(APPEND CURL_LIBS ${LIBSSH2_LIBRARY}) + set(CMAKE_REQUIRED_LIBRARIES ${LIBSSH2_LIBRARY}) + set(CMAKE_REQUIRED_INCLUDES "${LIBSSH2_INCLUDE_DIR}") + include_directories("${LIBSSH2_INCLUDE_DIR}") + set(HAVE_LIBSSH2 ON) + set(USE_LIBSSH2 ON) + + # find_package has already found the headers + set(HAVE_LIBSSH2_H ON) + set(CURL_INCLUDES ${CURL_INCLUDES} "${LIBSSH2_INCLUDE_DIR}/libssh2.h") + set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -DHAVE_LIBSSH2_H") + + # now check for specific libssh2 symbols as they were added in different versions + set(CMAKE_EXTRA_INCLUDE_FILES "libssh2.h") + check_function_exists(libssh2_version HAVE_LIBSSH2_VERSION) + check_function_exists(libssh2_init HAVE_LIBSSH2_INIT) + check_function_exists(libssh2_exit HAVE_LIBSSH2_EXIT) + check_function_exists(libssh2_scp_send64 HAVE_LIBSSH2_SCP_SEND64) + check_function_exists(libssh2_session_handshake HAVE_LIBSSH2_SESSION_HANDSHAKE) + set(CMAKE_EXTRA_INCLUDE_FILES "") + + endif(LIBSSH2_FOUND) +endif(CMAKE_USE_LIBSSH2) + +option(CMAKE_USE_GSSAPI "Use GSSAPI implementation (right now only Heimdal is supported with CMake build)" OFF) +mark_as_advanced(CMAKE_USE_GSSAPI) + +if(CMAKE_USE_GSSAPI) + find_package(GSS) + + set(HAVE_GSS_API ${GSS_FOUND}) + if(GSS_FOUND) + + message(STATUS "Found ${GSS_FLAVOUR} GSSAPI version: \"${GSS_VERSION}\"") + + set(CMAKE_REQUIRED_INCLUDES ${GSS_INCLUDE_DIR}) + check_include_file_concat("gssapi/gssapi.h" HAVE_GSSAPI_GSSAPI_H) + check_include_file_concat("gssapi/gssapi_generic.h" HAVE_GSSAPI_GSSAPI_GENERIC_H) + check_include_file_concat("gssapi/gssapi_krb5.h" HAVE_GSSAPI_GSSAPI_KRB5_H) + + if(GSS_FLAVOUR STREQUAL "Heimdal") + set(HAVE_GSSHEIMDAL ON) + else() # MIT + set(HAVE_GSSMIT ON) + set(_INCLUDE_LIST "") + if(HAVE_GSSAPI_GSSAPI_H) + list(APPEND _INCLUDE_LIST "gssapi/gssapi.h") + endif() + if(HAVE_GSSAPI_GSSAPI_GENERIC_H) + list(APPEND _INCLUDE_LIST "gssapi/gssapi_generic.h") + endif() + if(HAVE_GSSAPI_GSSAPI_KRB5_H) + list(APPEND _INCLUDE_LIST "gssapi/gssapi_krb5.h") + endif() + + string(REPLACE ";" " " _COMPILER_FLAGS_STR "${GSS_COMPILER_FLAGS}") + string(REPLACE ";" " " _LINKER_FLAGS_STR "${GSS_LINKER_FLAGS}") + + foreach(_dir ${GSS_LINK_DIRECTORIES}) + set(_LINKER_FLAGS_STR "${_LINKER_FLAGS_STR} -L\"${_dir}\"") + endforeach() + + set(CMAKE_REQUIRED_FLAGS "${_COMPILER_FLAGS_STR} ${_LINKER_FLAGS_STR}") + set(CMAKE_REQUIRED_LIBRARIES ${GSS_LIBRARIES}) + check_symbol_exists("GSS_C_NT_HOSTBASED_SERVICE" ${_INCLUDE_LIST} HAVE_GSS_C_NT_HOSTBASED_SERVICE) + if(NOT HAVE_GSS_C_NT_HOSTBASED_SERVICE) + set(HAVE_OLD_GSSMIT ON) + endif() -# Check if header file exists and add it to the list. -macro(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE) - check_include_files("${CURL_INCLUDES};${FILE}" ${VARIABLE}) - if(${VARIABLE}) - set(CURL_INCLUDES ${CURL_INCLUDES} ${FILE}) - set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -D${VARIABLE}") - endif(${VARIABLE}) -endmacro(CHECK_INCLUDE_FILE_CONCAT) + endif() + include_directories(${GSS_INCLUDE_DIR}) + link_directories(${GSS_LINK_DIRECTORIES}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GSS_COMPILER_FLAGS}") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${GSS_LINKER_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GSS_LINKER_FLAGS}") + list(APPEND CURL_LIBS ${GSS_LIBRARIES}) + + else() + message(WARNING "GSSAPI support has been requested but no supporting libraries found. Skipping.") + endif() +endif() + +option(ENABLE_UNIX_SOCKETS "Define if you want Unix domain sockets support" ON) +if(ENABLE_UNIX_SOCKETS) + include(CheckStructHasMember) + check_struct_has_member("struct sockaddr_un" sun_path "sys/un.h" USE_UNIX_SOCKETS) +else() + unset(USE_UNIX_SOCKETS CACHE) +endif() # Check for header files if(NOT UNIX) @@ -325,29 +570,18 @@ check_include_file_concat("des.h" HAVE_DES_H) check_include_file_concat("err.h" HAVE_ERR_H) check_include_file_concat("errno.h" HAVE_ERRNO_H) check_include_file_concat("fcntl.h" HAVE_FCNTL_H) -check_include_file_concat("gssapi/gssapi.h" HAVE_GSSAPI_GSSAPI_H) -check_include_file_concat("gssapi/gssapi_generic.h" HAVE_GSSAPI_GSSAPI_GENERIC_H) -check_include_file_concat("gssapi/gssapi_krb5.h" HAVE_GSSAPI_GSSAPI_KRB5_H) check_include_file_concat("idn-free.h" HAVE_IDN_FREE_H) check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H) check_include_file_concat("io.h" HAVE_IO_H) check_include_file_concat("krb.h" HAVE_KRB_H) check_include_file_concat("libgen.h" HAVE_LIBGEN_H) -check_include_file_concat("libssh2.h" HAVE_LIBSSH2_H) check_include_file_concat("limits.h" HAVE_LIMITS_H) check_include_file_concat("locale.h" HAVE_LOCALE_H) check_include_file_concat("net/if.h" HAVE_NET_IF_H) check_include_file_concat("netdb.h" HAVE_NETDB_H) check_include_file_concat("netinet/in.h" HAVE_NETINET_IN_H) check_include_file_concat("netinet/tcp.h" HAVE_NETINET_TCP_H) -check_include_file_concat("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H) -check_include_file_concat("openssl/engine.h" HAVE_OPENSSL_ENGINE_H) -check_include_file_concat("openssl/err.h" HAVE_OPENSSL_ERR_H) -check_include_file_concat("openssl/pem.h" HAVE_OPENSSL_PEM_H) -check_include_file_concat("openssl/pkcs12.h" HAVE_OPENSSL_PKCS12_H) -check_include_file_concat("openssl/rsa.h" HAVE_OPENSSL_RSA_H) -check_include_file_concat("openssl/ssl.h" HAVE_OPENSSL_SSL_H) -check_include_file_concat("openssl/x509.h" HAVE_OPENSSL_X509_H) + check_include_file_concat("pem.h" HAVE_PEM_H) check_include_file_concat("poll.h" HAVE_POLL_H) check_include_file_concat("pwd.h" HAVE_PWD_H) @@ -376,21 +610,12 @@ check_include_file_concat("stddef.h" HAVE_STDDEF_H) check_include_file_concat("dlfcn.h" HAVE_DLFCN_H) check_include_file_concat("malloc.h" HAVE_MALLOC_H) check_include_file_concat("memory.h" HAVE_MEMORY_H) -check_include_file_concat("ldap.h" HAVE_LDAP_H) check_include_file_concat("netinet/if_ether.h" HAVE_NETINET_IF_ETHER_H) check_include_file_concat("stdint.h" HAVE_STDINT_H) check_include_file_concat("sockio.h" HAVE_SOCKIO_H) check_include_file_concat("sys/utsname.h" HAVE_SYS_UTSNAME_H) check_include_file_concat("idna.h" HAVE_IDNA_H) -if(CMAKE_USE_OPENSSL) - check_include_file_concat("openssl/rand.h" HAVE_OPENSSL_RAND_H) -endif(CMAKE_USE_OPENSSL) - -if(NOT HAVE_LDAP_H) - message(STATUS "LDAP_H not found CURL_DISABLE_LDAP set ON") - set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE) -endif() check_type_size(size_t SIZEOF_SIZE_T) @@ -431,7 +656,7 @@ if(SIZEOF_LONG EQUAL 8) set(CURL_FORMAT_CURL_OFF_TU "lu") set(CURL_FORMAT_OFF_T "%ld") set(CURL_SUFFIX_CURL_OFF_T L) - set(CURL_SUFFIX_CURL_OFF_TU LU) + set(CURL_SUFFIX_CURL_OFF_TU UL) endif(SIZEOF_LONG EQUAL 8) if(SIZEOF_LONG_LONG EQUAL 8) @@ -441,7 +666,7 @@ if(SIZEOF_LONG_LONG EQUAL 8) set(CURL_FORMAT_CURL_OFF_TU "llu") set(CURL_FORMAT_OFF_T "%lld") set(CURL_SUFFIX_CURL_OFF_T LL) - set(CURL_SUFFIX_CURL_OFF_TU LLU) + set(CURL_SUFFIX_CURL_OFF_TU ULL) endif(SIZEOF_LONG_LONG EQUAL 8) if(NOT CURL_TYPEOF_CURL_OFF_T) @@ -464,6 +689,12 @@ find_file(RANDOM_FILE urandom /dev) mark_as_advanced(RANDOM_FILE) # Check for some functions that are used +if(HAVE_LIBWS2_32) + set(CMAKE_REQUIRED_LIBRARIES ws2_32) +elseif(HAVE_LIBSOCKET) + set(CMAKE_REQUIRED_LIBRARIES socket) +endif() + check_symbol_exists(basename "${CURL_INCLUDES}" HAVE_BASENAME) check_symbol_exists(socket "${CURL_INCLUDES}" HAVE_SOCKET) check_symbol_exists(poll "${CURL_INCLUDES}" HAVE_POLL) @@ -527,6 +758,7 @@ check_symbol_exists(strerror_r "${CURL_INCLUDES}" HAVE_STRERROR_R) check_symbol_exists(siginterrupt "${CURL_INCLUDES}" HAVE_SIGINTERRUPT) check_symbol_exists(perror "${CURL_INCLUDES}" HAVE_PERROR) check_symbol_exists(fork "${CURL_INCLUDES}" HAVE_FORK) +check_symbol_exists(getaddrinfo "${CURL_INCLUDES}" HAVE_GETADDRINFO) check_symbol_exists(freeaddrinfo "${CURL_INCLUDES}" HAVE_FREEADDRINFO) check_symbol_exists(freeifaddrs "${CURL_INCLUDES}" HAVE_FREEIFADDRS) check_symbol_exists(pipe "${CURL_INCLUDES}" HAVE_PIPE) @@ -565,75 +797,6 @@ if(NOT HAVE_STRICMP) set(HAVE_LDAP_URL_PARSE 1) endif(NOT HAVE_STRICMP) -# For other curl specific tests, use this macro. -macro(CURL_INTERNAL_TEST CURL_TEST) - if("${CURL_TEST}" MATCHES "^${CURL_TEST}$") - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${CURL_TEST} ${CURL_TEST_DEFINES} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_TEST_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - endif(CMAKE_REQUIRED_LIBRARIES) - - message(STATUS "Performing Curl Test ${CURL_TEST}") - try_compile(${CURL_TEST} - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_TEST_ADD_LIBRARIES}" - OUTPUT_VARIABLE OUTPUT) - if(${CURL_TEST}) - set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") - message(STATUS "Performing Curl Test ${CURL_TEST} - Success") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Performing Curl Test ${CURL_TEST} passed with the following output:\n" - "${OUTPUT}\n") - else(${CURL_TEST}) - message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") - set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Performing Curl Test ${CURL_TEST} failed with the following output:\n" - "${OUTPUT}\n") - endif(${CURL_TEST}) - endif("${CURL_TEST}" MATCHES "^${CURL_TEST}$") -endmacro(CURL_INTERNAL_TEST) - -macro(CURL_INTERNAL_TEST_RUN CURL_TEST) - if("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") - set(MACRO_CHECK_FUNCTION_DEFINITIONS - "-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CURL_TEST_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - endif(CMAKE_REQUIRED_LIBRARIES) - - message(STATUS "Performing Curl Test ${CURL_TEST}") - try_run(${CURL_TEST} ${CURL_TEST}_COMPILE - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} - "${CURL_TEST_ADD_LIBRARIES}" - OUTPUT_VARIABLE OUTPUT) - if(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) - set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") - message(STATUS "Performing Curl Test ${CURL_TEST} - Success") - else(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) - message(STATUS "Performing Curl Test ${CURL_TEST} - Failed") - set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") - file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" - "Performing Curl Test ${CURL_TEST} failed with the following output:\n" - "${OUTPUT}") - if(${CURL_TEST}_COMPILE) - file(APPEND - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" - "There was a problem running this test\n") - endif(${CURL_TEST}_COMPILE) - file(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log" - "\n\n") - endif(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) - endif("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") -endmacro(CURL_INTERNAL_TEST_RUN) - # Do curl specific tests foreach(CURL_TEST HAVE_FCNTL_O_NONBLOCK @@ -781,9 +944,15 @@ endif(CMAKE_COMPILER_IS_GNUCC AND APPLE) if(HAVE_SOCKLEN_T) set(CURL_TYPEOF_CURL_SOCKLEN_T "socklen_t") + if(WIN32) + set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h;ws2tcpip.h") + elseif(HAVE_SYS_SOCKET_H) + set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h") + endif() check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) + set(CMAKE_EXTRA_INCLUDE_FILES) if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T) - message(FATAL_ERROR + message(FATAL_ERROR "Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log") endif() else() @@ -791,6 +960,17 @@ else() set(CURL_SIZEOF_CURL_SOCKLEN_T ${SIZEOF_INT}) endif() +# TODO test which of these headers are required for the typedefs used in curlbuild.h +if(WIN32) + set(CURL_PULL_WS2TCPIP_H ${HAVE_WS2TCPIP_H}) +else() + set(CURL_PULL_SYS_TYPES_H ${HAVE_SYS_TYPES_H}) + set(CURL_PULL_SYS_SOCKET_H ${HAVE_SYS_SOCKET_H}) + set(CURL_PULL_SYS_POLL_H ${HAVE_SYS_POLL_H}) +endif() +set(CURL_PULL_STDINT_H ${HAVE_STDINT_H}) +set(CURL_PULL_INTTYPES_H ${HAVE_INTTYPES_H}) + include(CMake/OtherTests.cmake) add_definitions(-DHAVE_CONFIG_H) @@ -804,26 +984,6 @@ if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) endif(MSVC) -# Sets up the dependencies (zlib, OpenSSL, etc.) of a cURL subproject according to options. -# TODO This is far to be complete! -function(SETUP_CURL_DEPENDENCIES TARGET_NAME) - if(CURL_ZLIB AND ZLIB_FOUND) - include_directories(${ZLIB_INCLUDE_DIR}) - endif() - if(CURL_ZLIB AND ZLIB_FOUND) - target_link_libraries(${TARGET_NAME} ${ZLIB_LIBRARIES}) - #ADD_DEFINITIONS( -DHAVE_ZLIB_H -DHAVE_ZLIB -DHAVE_LIBZ ) - endif() - - if(CMAKE_USE_OPENSSL AND OPENSSL_FOUND) - include_directories(${OPENSSL_INCLUDE_DIR}) - endif() - if(CMAKE_USE_OPENSSL AND CURL_CONFIG_HAS_BEEN_RUN_BEFORE) - target_link_libraries(${TARGET_NAME} ${OPENSSL_LIBRARIES}) - #ADD_DEFINITIONS( -DUSE_SSLEAY ) - endif() -endfunction() - # Ugly (but functional) way to include "Makefile.inc" by transforming it (= regenerate it). function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE) file(READ ${INPUT_FILE} MAKEFILE_INC_TEXT) @@ -848,7 +1008,154 @@ if(BUILD_CURL_TESTS) add_subdirectory(tests) endif() +# TODO support GNUTLS, NSS, POLARSSL, AXTLS, CYASSL, WINSSL, DARWINSSL +if(USE_OPENSSL) + set(SSL_ENABLED 1) +endif() + +# Helper to populate a list (_items) with a label when conditions (the remaining +# args) are satisfied +function(_add_if label) + # TODO need to disable policy CMP0054 (CMake 3.1) to allow this indirection + if(${ARGN}) + set(_items ${_items} "${label}" PARENT_SCOPE) + endif() +endfunction() + +# Clear list and try to detect available features +set(_items) +_add_if("SSL" SSL_ENABLED) +_add_if("IPv6" ENABLE_IPV6) +_add_if("unix-sockets" USE_UNIX_SOCKETS) +_add_if("libz" HAVE_LIBZ) +_add_if("AsynchDNS" USE_ARES OR USE_THREADS_POSIX) +_add_if("IDN" HAVE_LIBIDN) +# TODO SSP1 (WinSSL) check is missing +_add_if("SSPI" USE_WINDOWS_SSPI) +_add_if("GSS-API" HAVE_GSS_API) +# TODO SSP1 missing for SPNEGO +_add_if("SPNEGO" NOT CURL_DISABLE_CRYPTO_AUTH AND + (HAVE_GSS_API OR USE_WINDOWS_SSPI)) +_add_if("Kerberos" NOT CURL_DISABLE_CRYPTO_AUTH AND + (HAVE_GSS_API OR USE_WINDOWS_SSPI)) +# NTLM support requires crypto function adaptions from various SSL libs +# TODO alternative SSL libs tests for SSP1, GNUTLS, NSS, DARWINSSL +if(NOT CURL_DISABLE_CRYPTO_AUTH AND (USE_OPENSSL OR + USE_WINDOWS_SSPI OR GNUTLS_ENABLED OR NSS_ENABLED OR DARWINSSL_ENABLED)) + _add_if("NTLM" 1) + # TODO missing option (autoconf: --enable-ntlm-wb) + _add_if("NTLM_WB" NOT CURL_DISABLE_HTTP AND NTLM_WB_ENABLED) +endif() +# TODO missing option (--enable-tls-srp), depends on GNUTLS_SRP/OPENSSL_SRP +_add_if("TLS-SRP" USE_TLS_SRP) +# TODO option --with-nghttp2 tests for nghttp2 lib and nghttp2/nghttp2.h header +_add_if("HTTP2" USE_NGHTTP2) +string(REPLACE ";" " " SUPPORT_FEATURES "${_items}") +message(STATUS "Enabled features: ${SUPPORT_FEATURES}") + +# Clear list and try to detect available protocols +set(_items) +_add_if("HTTP" NOT CURL_DISABLE_HTTP) +_add_if("HTTPS" NOT CURL_DISABLE_HTTP AND SSL_ENABLED) +_add_if("FTP" NOT CURL_DISABLE_FTP) +_add_if("FTPS" NOT CURL_DISABLE_FTP AND SSL_ENABLED) +_add_if("FILE" NOT CURL_DISABLE_FILE) +_add_if("TELNET" NOT CURL_DISABLE_TELNET) +_add_if("LDAP" NOT CURL_DISABLE_LDAP) +# CURL_DISABLE_LDAP implies CURL_DISABLE_LDAPS +# TODO check HAVE_LDAP_SSL (in autoconf this is enabled with --enable-ldaps) +_add_if("LDAPS" NOT CURL_DISABLE_LDAPS AND + ((USE_OPENLDAP AND SSL_ENABLED) OR + (NOT USE_OPENLDAP AND HAVE_LDAP_SSL))) +_add_if("DICT" NOT CURL_DISABLE_DICT) +_add_if("TFTP" NOT CURL_DISABLE_TFTP) +_add_if("GOPHER" NOT CURL_DISABLE_GOPHER) +_add_if("POP3" NOT CURL_DISABLE_POP3) +_add_if("POP3S" NOT CURL_DISABLE_POP3 AND SSL_ENABLED) +_add_if("IMAP" NOT CURL_DISABLE_IMAP) +_add_if("IMAPS" NOT CURL_DISABLE_IMAP AND SSL_ENABLED) +_add_if("SMTP" NOT CURL_DISABLE_SMTP) +_add_if("SMTPS" NOT CURL_DISABLE_SMTP AND SSL_ENABLED) +_add_if("SCP" USE_LIBSSH2) +_add_if("SFTP" USE_LIBSSH2) +_add_if("RTSP" NOT CURL_DISABLE_RTSP) +_add_if("RTMP" USE_LIBRTMP) +list(SORT _items) +string(REPLACE ";" " " SUPPORT_PROTOCOLS "${_items}") +message(STATUS "Enabled protocols: ${SUPPORT_PROTOCOLS}") + +# curl-config needs the following options to be set. +set(CC "${CMAKE_C_COMPILER}") +# TODO probably put a -D... options here? +set(CONFIGURE_OPTIONS "") +# TODO when to set "-DCURL_STATICLIB" for CPPFLAG_CURL_STATICLIB? +set(CPPFLAG_CURL_STATICLIB "") +# TODO need to set this (see CURL_CHECK_CA_BUNDLE in acinclude.m4) +set(CURL_CA_BUNDLE "") +set(CURLVERSION "${CURL_VERSION}") +set(ENABLE_SHARED "yes") +if(CURL_STATICLIB) + # Broken: LIBCURL_LIBS below; .a lib is not built + message(WARNING "Static linking is broken!") + set(ENABLE_STATIC "no") +else() + set(ENABLE_STATIC "no") +endif() +set(exec_prefix "\${prefix}") +set(includedir "\${prefix}/include") +set(LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") +set(LIBCURL_LIBS "") +set(libdir "${CMAKE_INSTALL_PREFIX}/lib") +# TODO CURL_LIBS also contains absolute paths which don't work with static -l... +foreach(_lib ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CURL_LIBS}) + set(LIBCURL_LIBS "${LIBCURL_LIBS} -l${_lib}") +endforeach() +# "a" (Linux) or "lib" (Windows) +string(REPLACE "." "" libext "${CMAKE_STATIC_LIBRARY_SUFFIX}") +set(prefix "${CMAKE_INSTALL_PREFIX}") +# Set this to "yes" to append all libraries on which -lcurl is dependent +set(REQUIRE_LIB_DEPS "no") +# SUPPORT_FEATURES +# SUPPORT_PROTOCOLS +set(VERSIONNUM "${CURL_VERSION_NUM}") + +# Finally generate a "curl-config" matching this config +configure_file("${CURL_SOURCE_DIR}/curl-config.in" + "${CURL_BINARY_DIR}/curl-config" @ONLY) +install(FILES "${CMAKE_BINARY_DIR}/curl-config" + DESTINATION bin + PERMISSIONS + OWNER_READ OWNER_WRITE OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE) + +# Finally generate a pkg-config file matching this config +configure_file("${CURL_SOURCE_DIR}/libcurl.pc.in" + "${CURL_BINARY_DIR}/libcurl.pc" @ONLY) +install(FILES "${CMAKE_BINARY_DIR}/libcurl.pc" + DESTINATION lib/pkgconfig) + # This needs to be run very last so other parts of the scripts can take advantage of this. if(NOT CURL_CONFIG_HAS_BEEN_RUN_BEFORE) set(CURL_CONFIG_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether this is the first time running CMake or if CMake has been configured before") endif() + +# Installation. +# First, install generated curlbuild.h +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/curl/curlbuild.h" + DESTINATION include/curl ) +# Next, install other headers excluding curlbuild.h +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl" + DESTINATION include + FILES_MATCHING PATTERN "*.h" + PATTERN "curlbuild.h" EXCLUDE) + + +# Workaround for MSVS10 to avoid the Dialog Hell +# FIXME: This could be removed with future version of CMake. +if(MSVC_VERSION EQUAL 1600) + set(CURL_SLN_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/CURL.sln") + if(EXISTS "${CURL_SLN_FILENAME}") + file(APPEND "${CURL_SLN_FILENAME}" "\n# This should be regenerated!\n") + endif() +endif() diff --git a/COPYING b/COPYING index 163b299..6b5d59f 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ COPYRIGHT AND PERMISSION NOTICE -Copyright (c) 1996 - 2010, Daniel Stenberg, . +Copyright (c) 1996 - 2015, Daniel Stenberg, . All rights reserved. diff --git a/CTestConfig.cmake b/CTestConfig.cmake new file mode 100644 index 0000000..6b1e798 --- /dev/null +++ b/CTestConfig.cmake @@ -0,0 +1,13 @@ +## This file should be placed in the root directory of your project. +## Then modify the CMakeLists.txt file in the root directory of your +## project to incorporate the testing dashboard. +## # The following are required to uses Dart and the Cdash dashboard +## ENABLE_TESTING() +## INCLUDE(Dart) +set(CTEST_PROJECT_NAME "CURL") +set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") + +set(CTEST_DROP_METHOD "http") +set(CTEST_DROP_SITE "my.cdash.org") +set(CTEST_DROP_LOCATION "/submit.php?project=CURL") +set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/GIT-INFO b/GIT-INFO new file mode 100644 index 0000000..16f4a22 --- /dev/null +++ b/GIT-INFO @@ -0,0 +1,67 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +GIT-INFO + +This file is only present in git - never in release archives. It contains +information about other files and things that the git repository keeps in its +inner sanctum. + +Compile and build instructions follow below. + + CHANGES.0 contains ancient changes + CHANGES contains the most recent changes + + Makefile.dist is included as the root Makefile in distribution archives + + perl/ is a subdirectory with various perl scripts + +To build in environments that support configure, after having extracted +everything from git, do this: + +./buildconf +./configure +make + + Daniel uses a ./configure line similar to this for easier development: + + ./configure --disable-shared --enable-debug --enable-maintainer-mode + +In environments that don't support configure (i.e. Microsoft), do this: + +buildconf.bat + + +REQUIREMENTS + + For buildconf (not buildconf.bat) to work, you need the following software +installed: + + o autoconf 2.57 (or later) + o automake 1.7 (or later) + o libtool 1.4.2 (or later) + o GNU m4 (required by autoconf) + + o nroff + perl + + If you don't have nroff and perl and you for some reason don't want to + install them, you can rename the source file src/tool_hugehelp.c.cvs to + src/tool_hugehelp.c and avoid having to generate this file. This will + give you a stubbed version of the file that doesn't contain actual content. + +MAC OS X + + With Mac OS X 10.2 and the associated Developer Tools, the installed versions + of the build tools are adequate. For Mac OS X 10.1 users, Guido Neitzer + wrote the following step-by-step guide: + + 1. Install fink (http://fink.sourceforge.net) + 2. Update fink to the newest version (with the installed fink) + 3. Install the latest version of autoconf, automake and m4 with fink + 4. Install version 1.4.1 of libtool - you find it in the "unstable" section + (read the manual to see how to get unstable versions) + 5. Get cURL from git + 6. Build cURL with "./buildconf", "./configure", "make", "sudo make install" diff --git a/MacOSX-Framework b/MacOSX-Framework index 0c97acd..9863b78 100755 --- a/MacOSX-Framework +++ b/MacOSX-Framework @@ -10,6 +10,10 @@ # 10.5 is the *ONLY* SDK that support PPC64 :( -- 10.6 do not have ppc64 support #If you need to have PPC64 support then change below to 1 PPC64_NEEDED=0 +# Apple does not support building for PPC anymore in Xcode 4 and later. +# If you're using Xcode 3 or earlier and need PPC support, then change +# the setting below to 1 +PPC_NEEDED=0 # For me the default is to develop for the platform I am on, and if you #desire compatibility with older versions then change USE_OLD to 1 :) @@ -24,9 +28,16 @@ FRAMEWORK_VERSION=Versions/Release-$VERSION # and setup the right paths to this version, leaving the system version # "intact", so you can "fix" it later with the links to Versions/A/... - -OLD_SDK=`ls /Developer/SDKs|head -1` -NEW_SDK=`ls -r /Developer/SDKs|head -1` +DEVELOPER_PATH=`xcode-select --print-path` +# Around Xcode 4.3, SDKs were moved from the Developer folder into the +# MacOSX.platform folder +if test -d "$DEVELOPER_PATH/Platforms/MacOSX.platform/Developer/SDKs"; then + SDK_PATH="$DEVELOPER_PATH/Platforms/MacOSX.platform/Developer/SDKs" +else + SDK_PATH="$DEVELOPER_PATH/SDKs"; +fi +OLD_SDK=`ls $SDK_PATH|head -1` +NEW_SDK=`ls -r $SDK_PATH|head -1` if test "0"$USE_OLD -gt 0 then @@ -37,21 +48,24 @@ fi MACVER=`echo $SDK32|sed -e s/[a-zA-Z]//g -e s/.\$//` -SDK32_DIR='/Developer/SDKs/'$SDK32 +SDK32_DIR=$SDK_PATH/$SDK32 MINVER32='-mmacosx-version-min='$MACVER -ARCHES32='-arch i386 -arch ppc' - +if test $PPC_NEEDED -gt 0; then + ARCHES32='-arch i386 -arch ppc' +else + ARCHES32='-arch i386' +fi if test $PPC64_NEEDED -gt 0 then SDK64=10.5 ARCHES64='-arch x86_64 -arch ppc64' - SDK64=`ls /Developer/SDKs|grep 10.5|head -1` + SDK64=`ls $SDK_PATH|grep 10.5|head -1` else ARCHES64='-arch x86_64' #We "know" that 10.4 and earlier do not support 64bit - OLD_SDK64=`ls /Developer/SDKs|egrep -v "10.[0-4]"|head -1` - NEW_SDK64=`ls -r /Developer/SDKs|egrep -v "10.[0-4]"|head -1` + OLD_SDK64=`ls $SDK_PATH|egrep -v "10.[0-4]"|head -1` + NEW_SDK64=`ls -r $SDK_PATH|egrep -v "10.[0-4]"|head -1` if test $USE_OLD -gt 0 then SDK64=$OLD_SDK64 @@ -60,7 +74,7 @@ else fi fi -SDK64_DIR='/Developer/SDKs/'$SDK64 +SDK64_DIR=$SDK_PATH/$SDK64 MACVER64=`echo $SDK64|sed -e s/[a-zA-Z]//g -e s/.\$//` MINVER64='-mmacosx-version-min='$MACVER64 @@ -68,13 +82,13 @@ MINVER64='-mmacosx-version-min='$MACVER64 if test ! -z $SDK32; then echo "----Configuring libcurl for 32 bit universal framework..." make clean - ./configure --disable-dependency-tracking --disable-static --with-gssapi \ - CFLAGS="-Os -isysroot $SDK32_DIR $ARCHES32 $MINVER32" \ - LDFLAGS="-Wl,-syslibroot,$SDK32_DIR $ARCHES32 $MINVER32 -Wl,-headerpad_max_install_names" \ + ./configure --disable-dependency-tracking --disable-static --with-gssapi --with-darwinssl \ + CFLAGS="-Os -isysroot $SDK32_DIR $ARCHES32" \ + LDFLAGS="-Wl,-syslibroot,$SDK32_DIR $ARCHES32 -Wl,-headerpad_max_install_names" \ CC=$CC echo "----Building 32 bit libcurl..." - make + make -j `sysctl -n hw.logicalcpu_max` echo "----Creating 32 bit framework..." rm -r libcurl.framework @@ -89,21 +103,21 @@ if test ! -z $SDK32; then ln -fs ${FRAMEWORK_VERSION}/Resources Resources ln -fs ${FRAMEWORK_VERSION}/Headers Headers cd Versions - ln -fs ${FRAMEWORK_VERSION} Current + ln -fs $(basename "${FRAMEWORK_VERSION}") Current - echo TEsting for SDK64 + echo Testing for SDK64 if test -d $SDK64_DIR; then echo entering... popd make clean echo "----Configuring libcurl for 64 bit universal framework..." - ./configure --disable-dependency-tracking --disable-static --with-gssapi \ - CFLAGS="-Os -isysroot $SDK64_DIR $ARCHES64 $MINVER64" \ - LDFLAGS="-Wl,-syslibroot,$SDK64_DIR $ARCHES64 $MINVER64 -Wl,-headerpad_max_install_names" \ + ./configure --disable-dependency-tracking --disable-static --with-gssapi --with-darwinssl \ + CFLAGS="-Os -isysroot $SDK64_DIR $ARCHES64" \ + LDFLAGS="-Wl,-syslibroot,$SDK64_DIR $ARCHES64 -Wl,-headerpad_max_install_names" \ CC=$CC echo "----Building 64 bit libcurl..." - make + make -j `sysctl -n hw.logicalcpu_max` echo "----Appending 64 bit framework to 32 bit framework..." cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 diff --git a/Makefile b/Makefile deleted file mode 100644 index 29f13af..0000000 --- a/Makefile +++ /dev/null @@ -1,309 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2010, Daniel Stenberg, , 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 http://curl.haxx.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. -# -########################################################################### - -VC=vc6 - -all: - ./configure - make - -ssl: - ./configure --with-ssl - make - -borland: - cd lib - make -f Makefile.b32 - cd ..\src - make -f Makefile.b32 - -borland-ssl: - cd lib - make -f Makefile.b32 WITH_SSL=1 - cd ..\src - make -f Makefile.b32 WITH_SSL=1 - -borland-ssl-zlib: - cd lib - make -f Makefile.b32 WITH_SSL=1 WITH_ZLIB=1 - cd ..\src - make -f Makefile.b32 WITH_SSL=1 WITH_ZLIB=1 - -borland-clean: - cd lib - make -f Makefile.b32 clean - cd ..\src - make -f Makefile.b32 clean - -watcom: .SYMBOLIC - cd lib && $(MAKE) -u -f Makefile.Watcom - cd src && $(MAKE) -u -f Makefile.Watcom - -watcom-clean: .SYMBOLIC - cd lib && $(MAKE) -u -f Makefile.Watcom clean - cd src && $(MAKE) -u -f Makefile.Watcom clean - -watcom-vclean: .SYMBOLIC - cd lib && $(MAKE) -u -f Makefile.Watcom vclean - cd src && $(MAKE) -u -f Makefile.Watcom vclean - -mingw32: - $(MAKE) -C lib -f Makefile.m32 - $(MAKE) -C src -f Makefile.m32 - -mingw32-zlib: - $(MAKE) -C lib -f Makefile.m32 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 ZLIB=1 - -mingw32-ssl-zlib: - $(MAKE) -C lib -f Makefile.m32 SSL=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 SSL=1 ZLIB=1 - -mingw32-ssh2-ssl-zlib: - $(MAKE) -C lib -f Makefile.m32 SSH2=1 SSL=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 SSH2=1 SSL=1 ZLIB=1 - -mingw32-ssh2-ssl-sspi-zlib: - $(MAKE) -C lib -f Makefile.m32 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - -mingw32-rtmp-ssh2-ssl-sspi-zlib: - $(MAKE) -C lib -f Makefile.m32 RTMP=1 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 RTMP=1 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - -mingw32-clean: - $(MAKE) -C lib -f Makefile.m32 clean - $(MAKE) -C src -f Makefile.m32 clean - -vc-clean: $(VC) - cd lib - nmake -f Makefile.$(VC) clean - cd ..\src - nmake -f Makefile.$(VC) clean - -vc-all: $(VC) - cd lib - nmake -f Makefile.$(VC) cfg=release - nmake -f Makefile.$(VC) cfg=release-ssl - nmake -f Makefile.$(VC) cfg=release-zlib - nmake -f Makefile.$(VC) cfg=release-ssl-zlib - nmake -f Makefile.$(VC) cfg=release-ssl-dll - nmake -f Makefile.$(VC) cfg=release-zlib-dll - nmake -f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=release-dll - nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll - nmake -f Makefile.$(VC) cfg=release-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=debug - nmake -f Makefile.$(VC) cfg=debug-ssl - nmake -f Makefile.$(VC) cfg=debug-zlib - nmake -f Makefile.$(VC) cfg=debug-ssl-zlib - nmake -f Makefile.$(VC) cfg=debug-ssl-dll - nmake -f Makefile.$(VC) cfg=debug-zlib-dll - nmake -f Makefile.$(VC) cfg=debug-ssl-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=debug-dll - nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll - nmake -f Makefile.$(VC) cfg=debug-dll-zlib-dll - nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll-zlib-dll - -vc: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release - cd ..\src - nmake /f Makefile.$(VC) - -vc-x64: $(VC) - cd lib - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release - cd ..\src - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release - -vc-zlib: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-zlib - cd ..\src - nmake /f Makefile.$(VC) cfg=release-zlib - -vc-ssl: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl - -vc-ssl-zlib: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl-zlib - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl-zlib - -vc-x64-ssl-zlib: $(VC) - cd lib - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib - cd ..\src - nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib - -vc-ssl-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl-dll - -vc-dll-ssl-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll - -vc-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll - -vc-dll-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll-zlib-dll - -vc-dll-ssl-dll-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll - -vc-ssl-dll-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll - -vc-zlib-dll: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release-zlib-dll - cd ..\src - nmake /f Makefile.$(VC) cfg=release-zlib-dll - -vc-sspi: $(VC) - cd lib - nmake /f Makefile.$(VC) cfg=release WINDOWS_SSPI=1 - cd ..\src - nmake /f Makefile.$(VC) cfg=release WINDOWS_SSPI=1 - -djgpp: - $(MAKE) -C lib -f Makefile.dj - $(MAKE) -C src -f Makefile.dj - -cygwin: - ./configure - make - -cygwin-ssl: - ./configure --with-ssl - make - -amiga: - cd ./lib && make -f makefile.amiga - cd ./src && make -f makefile.amiga - -netware: - $(MAKE) -C lib -f Makefile.netware - $(MAKE) -C src -f Makefile.netware - -netware-ares: - $(MAKE) -C lib -f Makefile.netware WITH_ARES=1 - $(MAKE) -C src -f Makefile.netware WITH_ARES=1 - -netware-ssl: - $(MAKE) -C lib -f Makefile.netware WITH_SSL=1 - $(MAKE) -C src -f Makefile.netware WITH_SSL=1 - -netware-ssl-zlib: - $(MAKE) -C lib -f Makefile.netware WITH_SSL=1 WITH_ZLIB=1 - $(MAKE) -C src -f Makefile.netware WITH_SSL=1 WITH_ZLIB=1 - -netware-ssh2-ssl-zlib: - $(MAKE) -C lib -f Makefile.netware WITH_SSH2=1 WITH_SSL=1 WITH_ZLIB=1 - $(MAKE) -C src -f Makefile.netware WITH_SSH2=1 WITH_SSL=1 WITH_ZLIB=1 - -netware-zlib: - $(MAKE) -C lib -f Makefile.netware WITH_ZLIB=1 - $(MAKE) -C src -f Makefile.netware WITH_ZLIB=1 - -netware-clean: - $(MAKE) -C lib -f Makefile.netware clean - $(MAKE) -C src -f Makefile.netware clean - -netware-install: - $(MAKE) -C lib -f Makefile.netware install - $(MAKE) -C src -f Makefile.netware install - -unix: all - -unix-ssl: ssl - -linux: all - -linux-ssl: ssl - -# We don't need to do anything for vc6. -vc6: - -vc8: lib/Makefile.vc8 src/Makefile.vc8 - -lib/Makefile.vc8: lib/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib bufferoverflowu.lib/g" -e "s/VC6/VC8/g" lib/Makefile.vc6 > lib/Makefile.vc8 - -src/Makefile.vc8: src/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib bufferoverflowu.lib/g" -e "s/VC6/VC8/g" src/Makefile.vc6 > src/Makefile.vc8 - -# VC9 makefiles are for use with VS2008 -vc9: lib/Makefile.vc9 src/Makefile.vc9 - -lib/Makefile.vc9: lib/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc9/g" -e "s/VC6/VC9/g" lib/Makefile.vc6 > lib/Makefile.vc9 - -src/Makefile.vc9: src/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc9/g" -e "s/VC6/VC9/g" src/Makefile.vc6 > src/Makefile.vc9 - -# VC10 makefiles are for use with VS2010 -vc10: lib/Makefile.vc10 src/Makefile.vc10 - -lib/Makefile.vc10: lib/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc10/g" -e "s/VC6/VC10/g" lib/Makefile.vc6 > lib/Makefile.vc10 - -src/Makefile.vc10: src/Makefile.vc6 - @echo "generate $@" - @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc10/g" -e "s/VC6/VC10/g" src/Makefile.vc6 > src/Makefile.vc10 - -ca-bundle: lib/mk-ca-bundle.pl - @echo "generate a fresh ca-bundle.crt" - @perl $< -b -l -u lib/ca-bundle.crt - -ca-firefox: lib/firefox-db2pem.sh - @echo "generate a fresh ca-bundle.crt" - ./lib/firefox-db2pem.sh lib/ca-bundle.crt diff --git a/Makefile.am b/Makefile.am index 15836e9..3b91e83 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. +# Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -24,24 +24,120 @@ AUTOMAKE_OPTIONS = foreign ACLOCAL_AMFLAGS = -I m4 -CMAKE_DIST = CMakeLists.txt CMake/CheckTypeSize.c.in CMake/CheckTypeSize.cmake \ -CMake/CMakeConfigurableFile.in CMake/CurlCheckCSourceCompiles.cmake \ -CMake/CurlCheckCSourceRuns.cmake CMake/CurlTests.c CMake/FindOpenSSL.cmake \ -CMake/FindZLIB.cmake CMake/OtherTests.cmake CMake/Platforms/WindowsCache.cmake \ -CMake/Utilities.cmake include/curl/curlbuild.h.cmake +CMAKE_DIST = CMakeLists.txt CMake/CMakeConfigurableFile.in \ + CMake/CurlTests.c CMake/FindGSS.cmake CMake/OtherTests.cmake \ + CMake/Platforms/WindowsCache.cmake CMake/Utilities.cmake \ + include/curl/curlbuild.h.cmake CMake/Macros.cmake + +VC6_LIBTMPL = projects/Windows/VC6/lib/libcurl.tmpl +VC6_LIBDSP = projects/Windows/VC6/lib/libcurl.dsp +VC6_LIBDSP_DEPS = $(VC6_LIBTMPL) Makefile.am lib/Makefile.inc +VC6_SRCTMPL = projects/Windows/VC6/src/curlsrc.tmpl +VC6_SRCDSP = projects/Windows/VC6/src/curlsrc.dsp +VC6_SRCDSP_DEPS = $(VC6_SRCTMPL) Makefile.am src/Makefile.inc + +VC7_LIBTMPL = projects/Windows/VC7/lib/libcurl.tmpl +VC7_LIBVCPROJ = projects/Windows/VC7/lib/libcurl.vcproj +VC7_LIBVCPROJ_DEPS = $(VC7_LIBTMPL) Makefile.am lib/Makefile.inc +VC7_SRCTMPL = projects/Windows/VC7/src/curlsrc.tmpl +VC7_SRCVCPROJ = projects/Windows/VC7/src/curlsrc.vcproj +VC7_SRCVCPROJ_DEPS = $(VC7_SRCTMPL) Makefile.am src/Makefile.inc + +VC71_LIBTMPL = projects/Windows/VC7.1/lib/libcurl.tmpl +VC71_LIBVCPROJ = projects/Windows/VC7.1/lib/libcurl.vcproj +VC71_LIBVCPROJ_DEPS = $(VC71_LIBTMPL) Makefile.am lib/Makefile.inc +VC71_SRCTMPL = projects/Windows/VC7.1/src/curlsrc.tmpl +VC71_SRCVCPROJ = projects/Windows/VC7.1/src/curlsrc.vcproj +VC71_SRCVCPROJ_DEPS = $(VC71_SRCTMPL) Makefile.am src/Makefile.inc + +VC8_LIBTMPL = projects/Windows/VC8/lib/libcurl.tmpl +VC8_LIBVCPROJ = projects/Windows/VC8/lib/libcurl.vcproj +VC8_LIBVCPROJ_DEPS = $(VC8_LIBTMPL) Makefile.am lib/Makefile.inc +VC8_SRCTMPL = projects/Windows/VC8/src/curlsrc.tmpl +VC8_SRCVCPROJ = projects/Windows/VC8/src/curlsrc.vcproj +VC8_SRCVCPROJ_DEPS = $(VC8_SRCTMPL) Makefile.am src/Makefile.inc + +VC9_LIBTMPL = projects/Windows/VC9/lib/libcurl.tmpl +VC9_LIBVCPROJ = projects/Windows/VC9/lib/libcurl.vcproj +VC9_LIBVCPROJ_DEPS = $(VC9_LIBTMPL) Makefile.am lib/Makefile.inc +VC9_SRCTMPL = projects/Windows/VC9/src/curlsrc.tmpl +VC9_SRCVCPROJ = projects/Windows/VC9/src/curlsrc.vcproj +VC9_SRCVCPROJ_DEPS = $(VC9_SRCTMPL) Makefile.am src/Makefile.inc + +VC10_LIBTMPL = projects/Windows/VC10/lib/libcurl.tmpl +VC10_LIBVCXPROJ = projects/Windows/VC10/lib/libcurl.vcxproj +VC10_LIBVCXPROJ_DEPS = $(VC10_LIBTMPL) Makefile.am lib/Makefile.inc +VC10_SRCTMPL = projects/Windows/VC10/src/curlsrc.tmpl +VC10_SRCVCXPROJ = projects/Windows/VC10/src/curlsrc.vcxproj +VC10_SRCVCXPROJ_DEPS = $(VC10_SRCTMPL) Makefile.am src/Makefile.inc + +VC11_LIBTMPL = projects/Windows/VC11/lib/libcurl.tmpl +VC11_LIBVCXPROJ = projects/Windows/VC11/lib/libcurl.vcxproj +VC11_LIBVCXPROJ_DEPS = $(VC11_LIBTMPL) Makefile.am lib/Makefile.inc +VC11_SRCTMPL = projects/Windows/VC11/src/curlsrc.tmpl +VC11_SRCVCXPROJ = projects/Windows/VC11/src/curlsrc.vcxproj +VC11_SRCVCXPROJ_DEPS = $(VC11_SRCTMPL) Makefile.am src/Makefile.inc + +VC12_LIBTMPL = projects/Windows/VC12/lib/libcurl.tmpl +VC12_LIBVCXPROJ = projects/Windows/VC12/lib/libcurl.vcxproj +VC12_LIBVCXPROJ_DEPS = $(VC12_LIBTMPL) Makefile.am lib/Makefile.inc +VC12_SRCTMPL = projects/Windows/VC12/src/curlsrc.tmpl +VC12_SRCVCXPROJ = projects/Windows/VC12/src/curlsrc.vcxproj +VC12_SRCVCXPROJ_DEPS = $(VC12_SRCTMPL) Makefile.am src/Makefile.inc + +VC_DIST = projects/README \ + projects/build-openssl.bat \ + projects/checksrc.bat \ + projects/Windows/VC6/curl.dsw \ + projects/Windows/VC6/lib/libcurl.dsw $(VC6_LIBDSP) \ + projects/Windows/VC6/src/curlsrc.dsw $(VC6_SRCDSP) \ + projects/Windows/VC7/curl.sln \ + projects/Windows/VC7/lib/libcurl.sln $(VC7_LIBVCPROJ) \ + projects/Windows/VC7/src/curlsrc.sln $(VC7_SRCVCPROJ) \ + projects/Windows/VC7.1/curl.sln \ + projects/Windows/VC7.1/lib/libcurl.sln $(VC71_LIBVCPROJ) \ + projects/Windows/VC7.1/src/curlsrc.sln $(VC71_SRCVCPROJ) \ + projects/Windows/VC8/curl.sln \ + projects/Windows/VC8/lib/libcurl.sln $(VC8_LIBVCPROJ) \ + projects/Windows/VC8/src/curlsrc.sln $(VC8_SRCVCPROJ) \ + projects/Windows/VC9/curl.sln \ + projects/Windows/VC9/lib/libcurl.sln $(VC9_LIBVCPROJ) \ + projects/Windows/VC9/src/curlsrc.sln $(VC9_SRCVCPROJ) \ + projects/Windows/VC10/curl.sln \ + projects/Windows/VC10/lib/libcurl.sln $(VC10_LIBVCXPROJ) \ + projects/Windows/VC10/src/curlsrc.sln $(VC10_SRCVCXPROJ) \ + projects/Windows/VC11/curl.sln \ + projects/Windows/VC11/lib/libcurl.sln $(VC11_LIBVCXPROJ) \ + projects/Windows/VC11/src/curlsrc.sln $(VC11_SRCVCXPROJ) \ + projects/Windows/VC12/curl.sln \ + projects/Windows/VC12/lib/libcurl.sln $(VC12_LIBVCXPROJ) \ + projects/Windows/VC12/src/curlsrc.sln $(VC12_SRCVCXPROJ) + +WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \ + winbuild/MakefileBuild.vc winbuild/Makefile.vc \ + winbuild/Makefile.msvc.names EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \ - curl-style.el sample.emacs RELEASE-NOTES buildconf \ - libcurl.pc.in vc6curl.dsw MacOSX-Framework Android.mk $(CMAKE_DIST) + RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \ + $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) lib/libcurl.vers.in + +CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \ + $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \ + $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \ + $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) bin_SCRIPTS = curl-config -SUBDIRS = lib src -DIST_SUBDIRS = $(SUBDIRS) tests include packages docs +SUBDIRS = lib src include +DIST_SUBDIRS = $(SUBDIRS) tests packages docs pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libcurl.pc +# List of files required to generate VC IDE .dsp, .vcproj and .vcxproj files +include lib/Makefile.inc +include src/Makefile.inc + dist-hook: rm -rf $(top_builddir)/tests/log find $(distdir) -name "*.dist" -exec rm {} \; @@ -77,14 +173,21 @@ test-full: test-torture: @(cd tests; $(MAKE) all torture-test) +test-am: + @(cd tests; $(MAKE) all am-test) + endif examples: @(cd docs/examples; $(MAKE) check) +# This is a hook to have 'make clean' also clean up the docs and the tests +# dir. The extra check for the Makefiles being present is necessary because +# 'make distcheck' will make clean first in these directories _before_ it runs +# this hook. clean-local: - @(cd tests; $(MAKE) clean) - @(cd docs; $(MAKE) clean) + @(if test -f tests/Makefile; then cd tests; $(MAKE) clean; fi) + @(if test -f docs/Makefile; then cd docs; $(MAKE) clean; fi) # # Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros @@ -145,9 +248,283 @@ uninstall-hook: cd docs && $(MAKE) uninstall ca-bundle: lib/mk-ca-bundle.pl - @echo "generate a fresh ca-bundle.crt" + @echo "generating a fresh ca-bundle.crt" @perl $< -b -l -u lib/ca-bundle.crt ca-firefox: lib/firefox-db2pem.sh - @echo "generate a fresh ca-bundle.crt" + @echo "generating a fresh ca-bundle.crt" ./lib/firefox-db2pem.sh lib/ca-bundle.crt + +checksrc: + cd lib && $(MAKE) checksrc + cd src && $(MAKE) checksrc + +.PHONY: vc-ide + +vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \ + $(VC7_SRCVCPROJ_DEPS) $(VC71_LIBVCPROJ_DEPS) $(VC71_SRCVCPROJ_DEPS) \ + $(VC8_LIBVCPROJ_DEPS) $(VC8_SRCVCPROJ_DEPS) $(VC9_LIBVCPROJ_DEPS) \ + $(VC9_SRCVCPROJ_DEPS) $(VC10_LIBVCXPROJ_DEPS) $(VC10_SRCVCXPROJ_DEPS) \ + $(VC11_LIBVCXPROJ_DEPS) $(VC11_SRCVCXPROJ_DEPS) $(VC12_LIBVCXPROJ_DEPS) \ + $(VC12_SRCVCXPROJ_DEPS) + @(win32_lib_srcs='$(LIB_CFILES)'; \ + win32_lib_hdrs='$(LIB_HFILES) config-win32.h'; \ + win32_lib_rc='$(LIB_RCFILES)'; \ + win32_lib_vtls_srcs='$(LIB_VTLS_CFILES)'; \ + win32_lib_vtls_hdrs='$(LIB_VTLS_HFILES)'; \ + win32_src_srcs='$(CURL_CFILES)'; \ + win32_src_hdrs='$(CURL_HFILES)'; \ + win32_src_rc='$(CURL_RCFILES)'; \ + win32_src_x_srcs='$(CURLX_CFILES)'; \ + win32_src_x_hdrs='$(CURLX_HFILES) ../lib/config-win32.h'; \ + \ + sorted_lib_srcs=`for file in $$win32_lib_srcs; do echo $$file; done | sort`; \ + sorted_lib_hdrs=`for file in $$win32_lib_hdrs; do echo $$file; done | sort`; \ + sorted_lib_vtls_srcs=`for file in $$win32_lib_vtls_srcs; do echo $$file; done | sort`; \ + sorted_lib_vtls_hdrs=`for file in $$win32_lib_vtls_hdrs; do echo $$file; done | sort`; \ + sorted_src_srcs=`for file in $$win32_src_srcs; do echo $$file; done | sort`; \ + sorted_src_hdrs=`for file in $$win32_src_hdrs; do echo $$file; done | sort`; \ + sorted_src_x_srcs=`for file in $$win32_src_x_srcs; do echo $$file; done | sort`; \ + sorted_src_x_hdrs=`for file in $$win32_src_x_hdrs; do echo $$file; done | sort`; \ + \ + awk_code='\ +function gen_element(type, dir, file)\ +{\ + sub(/vtls\//, "", file);\ +\ + spaces=" ";\ + if(dir == "lib\\vtls")\ + tabs=" ";\ + else\ + tabs=" ";\ +\ + if(type == "dsp") {\ + printf("# Begin Source File\r\n");\ + printf("\r\n");\ + printf("SOURCE=..\\..\\..\\..\\%s\\%s\r\n", dir, file);\ + printf("# End Source File\r\n");\ + }\ + else if(type == "vcproj1") {\ + printf("%s\r\n",\ + tabs, dir, file);\ + printf("%s\r\n", tabs);\ + }\ + else if(type == "vcproj2") {\ + printf("%s\r\n", tabs);\ + printf("%s\r\n", tabs);\ + }\ + else if(type == "vcxproj") {\ + i = index(file, ".");\ + ext = substr(file, i == 0 ? 0 : i + 1);\ +\ + if(ext == "c")\ + printf("%s\r\n",\ + spaces, dir, file);\ + else if(ext == "h")\ + printf("%s\r\n",\ + spaces, dir, file);\ + else if(ext == "rc")\ + printf("%s\r\n",\ + spaces, dir, file);\ + }\ +}\ +\ +{\ +\ + if($$0 == "CURL_LIB_C_FILES") {\ + split(lib_srcs, arr);\ + for(val in arr) gen_element(proj_type, "lib", arr[val]);\ + }\ + else if($$0 == "CURL_LIB_H_FILES") {\ + split(lib_hdrs, arr);\ + for(val in arr) gen_element(proj_type, "lib", arr[val]);\ + }\ + else if($$0 == "CURL_LIB_RC_FILES") {\ + split(lib_rc, arr);\ + for(val in arr) gen_element(proj_type, "lib", arr[val]);\ + }\ + else if($$0 == "CURL_LIB_VTLS_C_FILES") {\ + split(lib_vtls_srcs, arr);\ + for(val in arr) gen_element(proj_type, "lib\\vtls", arr[val]);\ + }\ + else if($$0 == "CURL_LIB_VTLS_H_FILES") {\ + split(lib_vtls_hdrs, arr);\ + for(val in arr) gen_element(proj_type, "lib\\vtls", arr[val]);\ + }\ + else if($$0 == "CURL_SRC_C_FILES") {\ + split(src_srcs, arr);\ + for(val in arr) gen_element(proj_type, "src", arr[val]);\ + }\ + else if($$0 == "CURL_SRC_H_FILES") {\ + split(src_hdrs, arr);\ + for(val in arr) gen_element(proj_type, "src", arr[val]);\ + }\ + else if($$0 == "CURL_SRC_RC_FILES") {\ + split(src_rc, arr);\ + for(val in arr) gen_element(proj_type, "src", arr[val]);\ + }\ + else if($$0 == "CURL_SRC_X_C_FILES") {\ + split(src_x_srcs, arr);\ + for(val in arr) {\ + sub(/..\/lib\//, "", arr[val]);\ + gen_element(proj_type, "lib", arr[val]);\ + }\ + }\ + else if($$0 == "CURL_SRC_X_H_FILES") {\ + split(src_x_hdrs, arr);\ + for(val in arr) {\ + sub(/..\/lib\//, "", arr[val]);\ + gen_element(proj_type, "lib", arr[val]);\ + }\ + }\ + else\ + printf("%s\r\n", $$0);\ +}';\ + \ + echo "generating '$(VC6_LIBDSP)'"; \ + awk -v proj_type=dsp \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC6_LIBTMPL) > $(VC6_LIBDSP) || { exit 1; }; \ + \ + echo "generating '$(VC6_SRCDSP)'"; \ + awk -v proj_type=dsp \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC6_SRCTMPL) > $(VC6_SRCDSP) || { exit 1; }; \ + \ + echo "generating '$(VC7_LIBVCPROJ)'"; \ + awk -v proj_type=vcproj1 \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC7_LIBTMPL) > $(VC7_LIBVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC7_SRCVCPROJ)'"; \ + awk -v proj_type=vcproj1 \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC7_SRCTMPL) > $(VC7_SRCVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC71_LIBVCPROJ)'"; \ + awk -v proj_type=vcproj1 \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC71_LIBTMPL) > $(VC71_LIBVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC71_SRCVCPROJ)'"; \ + awk -v proj_type=vcproj1 \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC71_SRCTMPL) > $(VC71_SRCVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC8_LIBVCPROJ)'"; \ + awk -v proj_type=vcproj2 \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC8_LIBTMPL) > $(VC8_LIBVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC8_SRCVCPROJ)'"; \ + awk -v proj_type=vcproj2 \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC8_SRCTMPL) > $(VC8_SRCVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC9_LIBVCPROJ)'"; \ + awk -v proj_type=vcproj2 \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC9_LIBTMPL) > $(VC9_LIBVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC9_SRCVCPROJ)'"; \ + awk -v proj_type=vcproj2 \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC9_SRCTMPL) > $(VC9_SRCVCPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC10_LIBVCXPROJ)'"; \ + awk -v proj_type=vcxproj \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC10_LIBTMPL) > $(VC10_LIBVCXPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC10_SRCVCXPROJ)'"; \ + awk -v proj_type=vcxproj \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC10_SRCTMPL) > $(VC10_SRCVCXPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC11_LIBVCXPROJ)'"; \ + awk -v proj_type=vcxproj \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC11_LIBTMPL) > $(VC11_LIBVCXPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC11_SRCVCXPROJ)'"; \ + awk -v proj_type=vcxproj \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC11_SRCTMPL) > $(VC11_SRCVCXPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC12_LIBVCXPROJ)'"; \ + awk -v proj_type=vcxproj \ + -v lib_srcs="$$sorted_lib_srcs" \ + -v lib_hdrs="$$sorted_lib_hdrs" \ + -v lib_rc="$$win32_lib_rc" \ + -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \ + -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \ + "$$awk_code" $(srcdir)/$(VC12_LIBTMPL) > $(VC12_LIBVCXPROJ) || { exit 1; }; \ + \ + echo "generating '$(VC12_SRCVCXPROJ)'"; \ + awk -v proj_type=vcxproj \ + -v src_srcs="$$sorted_src_srcs" \ + -v src_hdrs="$$sorted_src_hdrs" \ + -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ + "$$awk_code" $(srcdir)/$(VC12_SRCTMPL) > $(VC12_SRCVCXPROJ) || { exit 1; };) diff --git a/Makefile.dist b/Makefile.dist new file mode 100644 index 0000000..f0f50d8 --- /dev/null +++ b/Makefile.dist @@ -0,0 +1,575 @@ +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 1998 - 2014, Daniel Stenberg, , 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 http://curl.haxx.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. +# +########################################################################### + +VC=vc6 + +all: + ./configure + make + +ssl: + ./configure --with-ssl + make + +borland: + cd lib + $(MAKE) -f Makefile.b32 + cd ..\src + $(MAKE) -f Makefile.b32 + +borland-ssl: + cd lib + $(MAKE) -f Makefile.b32 WITH_SSL=1 + cd ..\src + $(MAKE) -f Makefile.b32 WITH_SSL=1 + +borland-ssl-zlib: + cd lib + $(MAKE) -f Makefile.b32 WITH_SSL=1 WITH_ZLIB=1 + cd ..\src + $(MAKE) -f Makefile.b32 WITH_SSL=1 WITH_ZLIB=1 + +borland-clean: + cd lib + $(MAKE) -f Makefile.b32 clean + cd ..\src + $(MAKE) -f Makefile.b32 clean + +watcom: .SYMBOLIC + cd lib && $(MAKE) -u -f Makefile.Watcom + cd src && $(MAKE) -u -f Makefile.Watcom + +watcom-clean: .SYMBOLIC + cd lib && $(MAKE) -u -f Makefile.Watcom clean + cd src && $(MAKE) -u -f Makefile.Watcom clean + +watcom-vclean: .SYMBOLIC + cd lib && $(MAKE) -u -f Makefile.Watcom vclean + cd src && $(MAKE) -u -f Makefile.Watcom vclean + +mingw32: + $(MAKE) -C lib -f Makefile.m32 + $(MAKE) -C src -f Makefile.m32 + +mingw32-clean: + $(MAKE) -C lib -f Makefile.m32 clean + $(MAKE) -C src -f Makefile.m32 clean + $(MAKE) -C docs/examples -f Makefile.m32 clean + +mingw32-vclean mingw32-distclean: + $(MAKE) -C lib -f Makefile.m32 vclean + $(MAKE) -C src -f Makefile.m32 vclean + $(MAKE) -C docs/examples -f Makefile.m32 vclean + +mingw32-examples%: + $(MAKE) -C docs/examples -f Makefile.m32 CFG=$@ + +mingw32%: + $(MAKE) -C lib -f Makefile.m32 CFG=$@ + $(MAKE) -C src -f Makefile.m32 CFG=$@ + +vc-clean: $(VC) + cd lib + nmake -f Makefile.$(VC) clean + cd ..\src + nmake -f Makefile.$(VC) clean + +vc-all: $(VC) + cd lib + nmake -f Makefile.$(VC) cfg=release + nmake -f Makefile.$(VC) cfg=release-ssl + nmake -f Makefile.$(VC) cfg=release-zlib + nmake -f Makefile.$(VC) cfg=release-ssl-zlib + nmake -f Makefile.$(VC) cfg=release-ssl-dll + nmake -f Makefile.$(VC) cfg=release-zlib-dll + nmake -f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll + nmake -f Makefile.$(VC) cfg=release-dll + nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll + nmake -f Makefile.$(VC) cfg=release-dll-zlib-dll + nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll + nmake -f Makefile.$(VC) cfg=debug + nmake -f Makefile.$(VC) cfg=debug-ssl + nmake -f Makefile.$(VC) cfg=debug-zlib + nmake -f Makefile.$(VC) cfg=debug-ssl-zlib + nmake -f Makefile.$(VC) cfg=debug-ssl-dll + nmake -f Makefile.$(VC) cfg=debug-zlib-dll + nmake -f Makefile.$(VC) cfg=debug-ssl-dll-zlib-dll + nmake -f Makefile.$(VC) cfg=debug-dll + nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll + nmake -f Makefile.$(VC) cfg=debug-dll-zlib-dll + nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll-zlib-dll + +vc: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release + cd ..\src + nmake /f Makefile.$(VC) + +vc-x64: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release + +vc-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release WINDOWS_SSPI=1 + +vc-x64-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release WINDOWS_SSPI=1 + +vc-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release USE_IDN=1 + +vc-x64-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release USE_IDN=1 + +vc-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release USE_IDN=1 WINDOWS_SSPI=1 + +vc-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-zlib + cd ..\src + nmake /f Makefile.$(VC) cfg=release-zlib + +vc-x64-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib + +vc-zlib-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-zlib WINDOWS_SSPI=1 + +vc-x64-zlib-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib WINDOWS_SSPI=1 + +vc-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-zlib USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-zlib USE_IDN=1 + +vc-x64-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib USE_IDN=1 + +vc-zlib-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-zlib-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-ssl: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl + +vc-x64-ssl: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl + +vc-ssl-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl WINDOWS_SSPI=1 + +vc-x64-ssl-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl WINDOWS_SSPI=1 + +vc-ssl-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl USE_IDN=1 + +vc-x64-ssl-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl USE_IDN=1 + +vc-ssl-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-ssl-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl USE_IDN=1 WINDOWS_SSPI=1 + +vc-ssl-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-zlib + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-zlib + +vc-x64-ssl-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib + +vc-ssl-zlib-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-zlib WINDOWS_SSPI=1 + +vc-x64-ssl-zlib-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib WINDOWS_SSPI=1 + +vc-ssl-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-zlib USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-zlib USE_IDN=1 + +vc-x64-ssl-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib USE_IDN=1 + +vc-ssl-zlib-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-ssl-zlib-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-ssl-ssh2-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib + +vc-x64-ssl-ssh2-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib + +vc-ssl-ssh2-zlib-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib WINDOWS_SSPI=1 + +vc-x64-ssl-ssh2-zlib-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib WINDOWS_SSPI=1 + +vc-ssl-ssh2-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib USE_IDN=1 + +vc-x64-ssl-ssh2-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib USE_IDN=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib USE_IDN=1 + +vc-ssl-ssh2-zlib-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-ssh2-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-ssl-ssh2-zlib-idn-sspi: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-ssl-ssh2-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-winssl: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-winssl WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-winssl WINDOWS_SSPI=1 + +vc-x64-winssl: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl WINDOWS_SSPI=1 + +vc-winssl-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-winssl USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-winssl USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-winssl-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl USE_IDN=1 WINDOWS_SSPI=1 + +vc-winssl-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-winssl-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-winssl-zlib WINDOWS_SSPI=1 + +vc-x64-winssl-zlib: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl-zlib WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl-zlib WINDOWS_SSPI=1 + +vc-winssl-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-winssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) cfg=release-winssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-x64-winssl-zlib-idn: $(VC) + cd lib + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + cd ..\src + nmake /f Makefile.$(VC) MACHINE=x64 cfg=release-winssl-zlib USE_IDN=1 WINDOWS_SSPI=1 + +vc-ssl-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-dll + +vc-dll-ssl-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll + +vc-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-dll + +vc-dll-zlib-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-dll-zlib-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-dll-zlib-dll + +vc-dll-ssl-dll-zlib-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll + +vc-ssl-dll-zlib-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll + +vc-zlib-dll: $(VC) + cd lib + nmake /f Makefile.$(VC) cfg=release-zlib-dll + cd ..\src + nmake /f Makefile.$(VC) cfg=release-zlib-dll + +djgpp: + $(MAKE) -C lib -f Makefile.dj + $(MAKE) -C src -f Makefile.dj + +cygwin: + ./configure + make + +cygwin-ssl: + ./configure --with-ssl + make + +amiga: + cd ./lib && make -f makefile.amiga + cd ./src && make -f makefile.amiga + +netware: + $(MAKE) -C lib -f Makefile.netware + $(MAKE) -C src -f Makefile.netware + +netware-clean: + $(MAKE) -C lib -f Makefile.netware clean + $(MAKE) -C src -f Makefile.netware clean + $(MAKE) -C docs/examples -f Makefile.netware clean + +netware-vclean netware-distclean: + $(MAKE) -C lib -f Makefile.netware vclean + $(MAKE) -C src -f Makefile.netware vclean + $(MAKE) -C docs/examples -f Makefile.netware vclean + +netware-install: + $(MAKE) -C lib -f Makefile.netware install + $(MAKE) -C src -f Makefile.netware install + +netware-examples-%: + $(MAKE) -C docs/examples -f Makefile.netware CFG=$@ + +netware-%: + $(MAKE) -C lib -f Makefile.netware CFG=$@ + $(MAKE) -C src -f Makefile.netware CFG=$@ + +unix: all + +unix-ssl: ssl + +linux: all + +linux-ssl: ssl + +# We don't need to do anything for vc6. +vc6: + +# VC7 makefiles are for use with VS.NET and VS.NET 2003 +vc7: lib/Makefile.vc7 src/Makefile.vc7 + +lib/Makefile.vc7: lib/Makefile.vc6 + @echo "generate $@" + @sed -e "s/VC6/VC7/g" lib/Makefile.vc6 > lib/Makefile.vc7 + +src/Makefile.vc7: src/Makefile.vc6 + @echo "generate $@" + @sed -e "s/VC6/VC7/g" src/Makefile.vc6 > src/Makefile.vc7 + +# VC8 makefiles are for use with VS2005 +vc8: lib/Makefile.vc8 src/Makefile.vc8 + +lib/Makefile.vc8: lib/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib bufferoverflowu.lib/g" -e "s/VC6/VC8/g" lib/Makefile.vc6 > lib/Makefile.vc8 + +src/Makefile.vc8: src/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib bufferoverflowu.lib/g" -e "s/VC6/VC8/g" src/Makefile.vc6 > src/Makefile.vc8 + +# VC9 makefiles are for use with VS2008 +vc9: lib/Makefile.vc9 src/Makefile.vc9 + +lib/Makefile.vc9: lib/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc9/g" -e "s/VC6/VC9/g" lib/Makefile.vc6 > lib/Makefile.vc9 + +src/Makefile.vc9: src/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc9/g" -e "s/VC6/VC9/g" src/Makefile.vc6 > src/Makefile.vc9 + +# VC10 makefiles are for use with VS2010 +vc10: lib/Makefile.vc10 src/Makefile.vc10 + +lib/Makefile.vc10: lib/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc10/g" -e "s/VC6/VC10/g" lib/Makefile.vc6 > lib/Makefile.vc10 + +src/Makefile.vc10: src/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc10/g" -e "s/VC6/VC10/g" src/Makefile.vc6 > src/Makefile.vc10 + +# VC11 makefiles are for use with VS2012 +vc11: lib/Makefile.vc11 src/Makefile.vc11 + +lib/Makefile.vc11: lib/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc11/g" -e "s/VC6/VC11/g" lib/Makefile.vc6 > lib/Makefile.vc11 + +src/Makefile.vc11: src/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc11/g" -e "s/VC6/VC11/g" src/Makefile.vc6 > src/Makefile.vc11 + +# VC12 makefiles are for use with VS2013 +vc12: lib/Makefile.vc12 src/Makefile.vc12 + +lib/Makefile.vc12: lib/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc12/g" -e "s/VC6/VC12/g" lib/Makefile.vc6 > lib/Makefile.vc12 + +src/Makefile.vc12: src/Makefile.vc6 + @echo "generate $@" + @sed -e "s#/GX /DWIN32 /YX#/EHsc /DWIN32#" -e "s#/GZ#/RTC1#" -e "s/ws2_32.lib/ws2_32.lib/g" -e "s/vc6/vc12/g" -e "s/VC6/VC12/g" src/Makefile.vc6 > src/Makefile.vc12 + +ca-bundle: lib/mk-ca-bundle.pl + @echo "generate a fresh ca-bundle.crt" + @perl $< -b -l -u lib/ca-bundle.crt + +ca-firefox: lib/firefox-db2pem.sh + @echo "generate a fresh ca-bundle.crt" + ./lib/firefox-db2pem.sh lib/ca-bundle.crt diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 661fe8d..0000000 --- a/Makefile.in +++ /dev/null @@ -1,893 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2009, Daniel Stenberg, , 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 http://curl.haxx.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. -# -########################################################################### - - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/curl-config.in \ - $(srcdir)/libcurl.pc.in $(top_srcdir)/configure COPYING \ - compile config.guess config.sub depcomp install-sh ltmain.sh \ - missing mkinstalldirs -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \ - $(top_srcdir)/m4/curl-confopts.m4 \ - $(top_srcdir)/m4/curl-functions.m4 \ - $(top_srcdir)/m4/curl-override.m4 \ - $(top_srcdir)/m4/curl-reentrant.m4 \ - $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \ - $(top_builddir)/src/curl_config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = curl-config libcurl.pc -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)" -binSCRIPT_INSTALL = $(INSTALL_SCRIPT) -SCRIPTS = $(bin_SCRIPTS) -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -pkgconfigDATA_INSTALL = $(INSTALL_DATA) -DATA = $(pkgconfig_DATA) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_LIBHOSTNAME_FALSE = @BUILD_LIBHOSTNAME_FALSE@ -BUILD_LIBHOSTNAME_TRUE = @BUILD_LIBHOSTNAME_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURLDEBUG_FALSE = @CURLDEBUG_FALSE@ -CURLDEBUG_TRUE = @CURLDEBUG_TRUE@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ -CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ -CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ -CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_SHARED = @ENABLE_SHARED@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -KRB4_ENABLED = @KRB4_ENABLED@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANOPT = @MANOPT@ -MIMPURE_FALSE = @MIMPURE_FALSE@ -MIMPURE_TRUE = @MIMPURE_TRUE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ -NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ -NROFF = @NROFF@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH = @PATH@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@ -SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@ -SSL_ENABLED = @SSL_ENABLED@ -STATICLIB_FALSE = @STATICLIB_FALSE@ -STATICLIB_TRUE = @STATICLIB_TRUE@ -STRIP = @STRIP@ -SUPPORT_FEATURES = @SUPPORT_FEATURES@ -SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_ARES = @USE_ARES@ -USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@ -USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@ -USE_GNUTLS = @USE_GNUTLS@ -USE_LIBRTMP = @USE_LIBRTMP@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_OPENLDAP = @USE_OPENLDAP@ -USE_POLARSSL = @USE_POLARSSL@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -AUTOMAKE_OPTIONS = foreign -ACLOCAL_AMFLAGS = -I m4 -CMAKE_DIST = CMakeLists.txt CMake/CheckTypeSize.c.in CMake/CheckTypeSize.cmake \ -CMake/CMakeConfigurableFile.in CMake/CurlCheckCSourceCompiles.cmake \ -CMake/CurlCheckCSourceRuns.cmake CMake/CurlTests.c CMake/FindOpenSSL.cmake \ -CMake/FindZLIB.cmake CMake/OtherTests.cmake CMake/Platforms/WindowsCache.cmake \ -CMake/Utilities.cmake include/curl/curlbuild.h.cmake - -EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \ - curl-style.el sample.emacs RELEASE-NOTES buildconf \ - libcurl.pc.in vc6curl.dsw MacOSX-Framework Android.mk $(CMAKE_DIST) - -bin_SCRIPTS = curl-config -SUBDIRS = lib src -DIST_SUBDIRS = $(SUBDIRS) tests include packages docs -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libcurl.pc -all: all-recursive - -.SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -curl-config: $(top_builddir)/config.status $(srcdir)/curl-config.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -libcurl.pc: $(top_builddir)/config.status $(srcdir)/libcurl.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f $$d$$p; then \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ - else :; fi; \ - done - -uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ - $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ - rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/CMake $(distdir)/CMake/Platforms $(distdir)/include/curl $(distdir)/m4 $(distdir)/packages/AIX/RPM $(distdir)/packages/EPM $(distdir)/packages/Linux/RPM - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile $(SCRIPTS) $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: install-pkgconfigDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-data-hook - -install-exec-am: install-binSCRIPTS - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-binSCRIPTS uninstall-info-am \ - uninstall-pkgconfigDATA - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) uninstall-hook - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am clean clean-generic clean-libtool clean-local \ - clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-binSCRIPTS install-data \ - install-data-am install-data-hook install-exec install-exec-am \ - install-info install-info-am install-man install-pkgconfigDATA \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am \ - uninstall-binSCRIPTS uninstall-hook uninstall-info-am \ - uninstall-pkgconfigDATA - - -dist-hook: - rm -rf $(top_builddir)/tests/log - find $(distdir) -name "*.dist" -exec rm {} \; - (distit=`find $(srcdir) -name "*.dist" | grep -v ./ares/`; \ - for file in $$distit; do \ - strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \ - cp $$file $(distdir)$$strip; \ - done) - -html: - cd docs; make html - -pdf: - cd docs; make pdf - -check: test examples - -@CROSSCOMPILING_TRUE@test-full: test -@CROSSCOMPILING_TRUE@test-torture: test - -@CROSSCOMPILING_TRUE@test: -@CROSSCOMPILING_TRUE@ @echo "NOTICE: we can't run the tests when cross-compiling!" - -@CROSSCOMPILING_FALSE@test: -@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all quiet-test) - -@CROSSCOMPILING_FALSE@test-full: -@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all full-test) - -@CROSSCOMPILING_FALSE@test-torture: -@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all torture-test) - -examples: - @(cd docs/examples; $(MAKE) check) - -clean-local: - @(cd tests; $(MAKE) clean) - @(cd docs; $(MAKE) clean) - -# -# Build source and binary rpms. For rpm-3.0 and above, the ~/.rpmmacros -# must contain the following line: -# %_topdir /home/loic/local/rpm -# and that /home/loic/local/rpm contains the directory SOURCES, BUILD etc. -# -# cd /home/loic/local/rpm ; mkdir -p SOURCES BUILD RPMS/i386 SPECS SRPMS -# -# If additional configure flags are needed to build the package, add the -# following in ~/.rpmmacros -# %configure CFLAGS="%{optflags}" ./configure %{_target_platform} --prefix=%{_prefix} ${AM_CONFIGFLAGS} -# and run make rpm in the following way: -# AM_CONFIGFLAGS='--with-uri=/home/users/loic/local/RedHat-6.2' make rpm -# - -rpms: - $(MAKE) RPMDIST=curl rpm - $(MAKE) RPMDIST=curl-ssl rpm - -rpm: - RPM_TOPDIR=`rpm --showrc | $(PERL) -n -e 'print if(s/.*_topdir\s+(.*)/$$1/)'` ; \ - cp $(srcdir)/packages/Linux/RPM/$(RPMDIST).spec $$RPM_TOPDIR/SPECS ; \ - cp $(PACKAGE)-$(VERSION).tar.gz $$RPM_TOPDIR/SOURCES ; \ - rpm -ba --clean --rmsource $$RPM_TOPDIR/SPECS/$(RPMDIST).spec ; \ - mv $$RPM_TOPDIR/RPMS/i386/$(RPMDIST)-*.rpm . ; \ - mv $$RPM_TOPDIR/SRPMS/$(RPMDIST)-*.src.rpm . - -# -# Build a Solaris pkgadd format file -# run 'make pkgadd' once you've done './configure' and 'make' to make a Solaris pkgadd format -# file (which ends up back in this directory). -# The pkgadd file is in 'pkgtrans' format, so to install on Solaris, do -# pkgadd -d ./HAXXcurl-* -# - -# gak - libtool requires an absoulte directory, hence the pwd below... -pkgadd: - umask 022 ; \ - make install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \ - cat COPYING > $(srcdir)/packages/Solaris/copyright ; \ - cd $(srcdir)/packages/Solaris && $(MAKE) package - -# -# Build a cygwin binary tarball installation file -# resulting .tar.bz2 file will end up at packages/Win32/cygwin -cygwinbin: - $(MAKE) -C packages/Win32/cygwin cygwinbin - -# We extend the standard install with a custom hook: -install-data-hook: - cd include && $(MAKE) install - cd docs && $(MAKE) install - -# We extend the standard uninstall with a custom hook: -uninstall-hook: - cd include && $(MAKE) uninstall - cd docs && $(MAKE) uninstall - -ca-bundle: lib/mk-ca-bundle.pl - @echo "generate a fresh ca-bundle.crt" - @perl $< -b -l -u lib/ca-bundle.crt - -ca-firefox: lib/firefox-db2pem.sh - @echo "generate a fresh ca-bundle.crt" - ./lib/firefox-db2pem.sh lib/ca-bundle.crt -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 70ac0dc..259211d 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -1,51 +1,33 @@ -Curl and libcurl 7.21.3 +Curl and libcurl 7.40.1 - Public curl releases: 119 - Command line options: 143 - curl_easy_setopt() options: 185 + Public curl releases: 144 + Command line options: 162 + curl_easy_setopt() options: 208 Public functions in libcurl: 58 - Known libcurl bindings: 39 - Contributors: 827 + Contributors: 1233 This release includes the following changes: - o Added --noconfigure switch to testcurl.pl - o Added --xattr option - o Added CURLOPT_RESOLVE and --resolve - o Added CURLAUTH_ONLY - o Added version-check.pl to the examples dir + o NetWare build: added TLS-SRP enabled build + o winbuild: Added option to build with c-ares + o This release includes the following bugfixes: - o check for libcurl features for some command line options - o Curl_setopt: disallow CURLOPT_USE_SSL without SSL support - o http_chunks: remove debug output - o URL-parsing: consider ? a divider - o SSH: avoid using the libssh2_ prefix - o SSH: use libssh2_session_handshake() to work on win64 - o ftp: prevent server from hanging on closed data connection when stopping - a transfer before the end of the full transfer (ranges) - o LDAP: detect non-binary attributes properly - o ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT - o gnutls->handshake: improved timeout handling - o security: Pass the right parameter to init - o krb5: Use GSS_ERROR to check for error - o TFTP: resend the correct data - o configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected - o GnuTLS: now detects socket errors on Windows - o symbols-in-versions: updated en masse - o added a couple examples that were missing from the tar ball - o Curl_send/recv_plain: return errno on failure - o Curl_wait_for_resolv (for c-ares): correct timeout - o ossl_connect_common: detect connection re-use - o configure: Prevent link errors with --librtmp - o openldap: use remote port in URL passed to ldap_init_fd() - o url: provide dead_connection flag in Curl_handler::disconnect - o lots of compiler warning fixes - o ssh: fix a download resume point calculation - o fix getinfo CURLINFO_LOCAL* for reused connections - o multi: the returned running handles conuter could turn negative - o multi: only ever consider pipelining for connections doing HTTP(S) + o sasl_gssapi: Fixed build on NetBSD with built-in GSS-API [1] + o FTP: fix IPv6 host using link-local address [2] + o FTP: if EPSV fails on IPV6 connections, bail out + o gssapi: Remove need for duplicated GSS_C_NT_HOSTBASED_SERVICE definitions + o NSS: fix compiler error when built http2-enabled + o mingw build: allow to pass custom CFLAGS [3] + o add -m64 CFLAGS when targeting mingw64, add -m32/-m64 to LDFLAGS [4] + o curl_schannel.c: mark session as removed from cache if not freed [5] + o Curl_pretransfer: reset expected transfer sizes [6] + o curl.h: remove extra space [7] + o curl_endian: Fixed build when 64-bit integers are not supported [8] + o checksrc.bat: Better detection of Perl installation + o build-openssl.bat: Added check for Perl installation + o This release includes the following known bugs: @@ -54,8 +36,20 @@ This release includes the following known bugs: This release would not have looked like this without help, code, reports and advice from friends like these: - Dan Fandrich, Guenter Knauf, Pat Ray, Hongli Lai, Kamil Dudka, - Stefan Tomanek, Alfred Gebert, Yang Tse, Julien Chaffraix, Adam Light, - Rutger Hofman, Matthias Bolte, Heinrich Ko, Dmitri Shubin + Daniel Stenberg, Guenter Knauf, Jean-Francois Durand, John E. Malmberg, + Marc Hoersken, Mohammad AlSaleh, Sam Schanken, Steve Holme, Thomas Klausner, + Viktor Szakats, Vojtěch Král, Yun SangHo Thanks! (and sorry if I forgot to mention someone) + +References to bug reports and discussions on issues: + + [1] = http://curl.haxx.se/bug/view.cgi?id=1469 + [2] = http://curl.haxx.se/bug/view.cgi?id=1468 + [3] = https://github.com/bagder/curl/pull/136 + [4] = https://github.com/bagder/curl/pull/134 + [5] = http://curl.haxx.se/mail/lib-2015-01/0036.html + [6] = http://curl.haxx.se/mail/lib-2015-01/0065.html + [7] = https://github.com/bagder/curl/pull/137 + [8] = http://curl.haxx.se/mail/lib-2015-01/0094.html + [9] = diff --git a/acinclude.m4 b/acinclude.m4 index 9f79052..453358d 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. +# Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -51,7 +51,7 @@ CURL_DEF_TOKEN $1 ],[ tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[[ ]]//' 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[[ ]][[ ]]*//' 2>/dev/null | \ "$SED" 's/[["]][[ ]]*[["]]//g' 2>/dev/null` if test -z "$tmp_exp" || test "$tmp_exp" = "$1"; then tmp_exp="" @@ -130,7 +130,7 @@ int main (void) ]]) ],[ tst_lib_xnet_required="yes" - LIBS="$LIBS -lxnet" + LIBS="-lxnet $LIBS" ]) AC_MSG_RESULT([$tst_lib_xnet_required]) ]) @@ -150,6 +150,7 @@ AC_DEFUN([CURL_CHECK_AIX_ALL_SOURCE], [ #endif]) AC_BEFORE([$0], [AC_SYS_LARGEFILE])dnl AC_BEFORE([$0], [CURL_CONFIGURE_REENTRANT])dnl + AC_BEFORE([$0], [CURL_CONFIGURE_PULL_SYS_POLL])dnl AC_MSG_CHECKING([if OS is AIX (to define _ALL_SOURCE)]) AC_EGREP_CPP([yes_this_is_aix],[ #ifdef _AIX @@ -228,12 +229,7 @@ AC_DEFUN([CURL_CHECK_NATIVE_WINDOWS], [ ]) fi ]) - case "$ac_cv_native_windows" in - yes) - AC_DEFINE_UNQUOTED(NATIVE_WINDOWS, 1, - [Define to 1 if you are building a native Windows target.]) - ;; - esac + AM_CONDITIONAL(DOING_NATIVE_WINDOWS, test "x$ac_cv_native_windows" = xyes) ]) @@ -1601,200 +1597,6 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [ fi ]) - -dnl CURL_CHECK_FUNC_RECVFROM -dnl ------------------------------------------------- -dnl Test if the socket recvfrom() function is available, -dnl and check its return type and the types of its -dnl arguments. If the function succeeds HAVE_RECVFROM -dnl will be defined, defining the types of the arguments -dnl in RECVFROM_TYPE_ARG1, RECVFROM_TYPE_ARG2, and so on -dnl to RECVFROM_TYPE_ARG6, defining also the type of the -dnl function return value in RECVFROM_TYPE_RETV. -dnl Notice that the types returned for pointer arguments -dnl will actually be the type pointed by the pointer. - -AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [ - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl - AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl - AC_CHECK_HEADERS(sys/types.h sys/socket.h) - # - AC_MSG_CHECKING([for recvfrom]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - ]],[[ - recvfrom(0, 0, 0, 0, 0, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - curl_cv_recvfrom="yes" - ],[ - AC_MSG_RESULT([no]) - curl_cv_recvfrom="no" - ]) - # - if test "$curl_cv_recvfrom" = "yes"; then - AC_CACHE_CHECK([types of args and return type for recvfrom], - [curl_cv_func_recvfrom_args], [ - curl_cv_func_recvfrom_args="unknown" - for recvfrom_retv in 'int' 'ssize_t'; do - for recvfrom_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recvfrom_arg2 in 'char *' 'void *'; do - for recvfrom_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recvfrom_arg4 in 'int' 'unsigned int'; do - for recvfrom_arg5 in 'struct sockaddr *' 'void *'; do - for recvfrom_arg6 in 'socklen_t *' 'int *' 'unsigned int *' 'size_t *' 'void *'; do - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVFROMCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVFROMCALLCONV -#endif - extern $recvfrom_retv RECVFROMCALLCONV - recvfrom($recvfrom_arg1, $recvfrom_arg2, - $recvfrom_arg3, $recvfrom_arg4, - $recvfrom_arg5, $recvfrom_arg6); - ]],[[ - $recvfrom_arg1 s=0; - $recvfrom_arg2 buf=0; - $recvfrom_arg3 len=0; - $recvfrom_arg4 flags=0; - $recvfrom_arg5 addr=0; - $recvfrom_arg6 addrlen=0; - $recvfrom_retv res=0; - res = recvfrom(s, buf, len, flags, addr, addrlen); - ]]) - ],[ - curl_cv_func_recvfrom_args="$recvfrom_arg1,$recvfrom_arg2,$recvfrom_arg3,$recvfrom_arg4,$recvfrom_arg5,$recvfrom_arg6,$recvfrom_retv" - ]) - fi - done - done - done - done - done - done - done - ]) # AC-CACHE-CHECK - # Nearly last minute change for this release starts here - AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1, - [Define to 1 if you have the recvfrom function.]) - ac_cv_func_recvfrom="yes" - # Nearly last minute change for this release ends here - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - AC_MSG_WARN([Cannot find proper types to use for recvfrom args]) - else - recvfrom_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recvfrom_args" | sed 's/\*/\*/g'` - IFS=$recvfrom_prev_IFS - shift - # - recvfrom_ptrt_arg2=$[2] - recvfrom_ptrt_arg5=$[5] - recvfrom_ptrt_arg6=$[6] - # - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG1, $[1], - [Define to the type of arg 1 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG3, $[3], - [Define to the type of arg 3 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG4, $[4], - [Define to the type of arg 4 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_RETV, $[7], - [Define to the function return type for recvfrom.]) - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'` - recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'` - recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'` - # - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $recvfrom_type_arg2, - [Define to the type pointed by arg 2 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $recvfrom_type_arg5, - [Define to the type pointed by arg 5 for recvfrom.]) - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $recvfrom_type_arg6, - [Define to the type pointed by arg 6 for recvfrom.]) - # - if test "$recvfrom_type_arg2" = "void"; then - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2_IS_VOID, 1, - [Define to 1 if the type pointed by arg 2 for recvfrom is void.]) - fi - if test "$recvfrom_type_arg5" = "void"; then - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5_IS_VOID, 1, - [Define to 1 if the type pointed by arg 5 for recvfrom is void.]) - fi - if test "$recvfrom_type_arg6" = "void"; then - AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6_IS_VOID, 1, - [Define to 1 if the type pointed by arg 6 for recvfrom is void.]) - fi - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1, - [Define to 1 if you have the recvfrom function.]) - ac_cv_func_recvfrom="yes" - fi - else - AC_MSG_WARN([Unable to link function recvfrom]) - fi -]) - - dnl CURL_CHECK_MSG_NOSIGNAL dnl ------------------------------------------------- dnl Check for MSG_NOSIGNAL @@ -2145,7 +1947,6 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ else LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" fi - CURL_LIBS="$CURL_LIBS $curl_cv_gclk_LIBS" AC_MSG_RESULT([$curl_cv_gclk_LIBS]) ac_cv_func_clock_gettime="yes" ;; @@ -2302,6 +2103,8 @@ AC_DEFUN([CURL_CONFIGURE_CURL_SOCKLEN_T], [ AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl # + AC_BEFORE([$0], [CURL_CONFIGURE_PULL_SYS_POLL])dnl + # AC_MSG_CHECKING([for curl_socklen_t data type]) curl_typeof_curl_socklen_t="unknown" for arg1 in int SOCKET; do @@ -2410,6 +2213,45 @@ AC_DEFUN([CURL_CONFIGURE_CURL_SOCKLEN_T], [ ]) +dnl CURL_CONFIGURE_PULL_SYS_POLL +dnl ------------------------------------------------- +dnl Find out if system header file sys/poll.h must be included by the +dnl external interface, making appropriate definitions for template file +dnl include/curl/curlbuild.h.in to properly configure and use the library. +dnl +dnl The need for the sys/poll.h inclusion arises mainly to properly +dnl interface AIX systems which define macros 'events' and 'revents'. + +AC_DEFUN([CURL_CONFIGURE_PULL_SYS_POLL], [ + AC_REQUIRE([CURL_INCLUDES_POLL])dnl + # + tst_poll_events_macro_defined="unknown" + # + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $curl_includes_poll + ]],[[ +#if defined(events) || defined(revents) + return 0; +#else + force compilation error +#endif + ]]) + ],[ + tst_poll_events_macro_defined="yes" + ],[ + tst_poll_events_macro_defined="no" + ]) + # + if test "$tst_poll_events_macro_defined" = "yes"; then + if test "x$ac_cv_header_sys_poll_h" = "xyes"; then + CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_POLL_H]) + fi + fi + # +]) + + dnl CURL_CHECK_FUNC_SELECT dnl ------------------------------------------------- dnl Test if the socket select() function is available, @@ -2772,52 +2614,56 @@ AC_HELP_STRING([--without-ca-path], [Don't use a default CA path]), capath="no" elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then dnl --with-ca-path given - if test "x$OPENSSL_ENABLED" != "x1"; then - AC_MSG_ERROR([--with-ca-path only works with openSSL]) + if test "x$OPENSSL_ENABLED" != "x1" -a "x$POLARSSL_ENABLED" != "x1"; then + AC_MSG_ERROR([--with-ca-path only works with openSSL or PolarSSL]) fi capath="$want_capath" ca="no" else - dnl neither of --with-ca-* given dnl first try autodetecting a CA bundle , then a CA path dnl both autodetections can be skipped by --without-ca-* ca="no" capath="no" - if test "x$want_ca" = "xunset"; then - dnl the path we previously would have installed the curl ca bundle - dnl to, and thus we now check for an already existing cert in that place - dnl in case we find no other - if test "x$prefix" != xNONE; then - cac="${prefix}/share/curl/curl-ca-bundle.crt" - else - cac="$ac_default_prefix/share/curl/curl-ca-bundle.crt" - fi - - for a in /etc/ssl/certs/ca-certificates.crt \ - /etc/pki/tls/certs/ca-bundle.crt \ - /usr/share/ssl/certs/ca-bundle.crt \ - /usr/local/share/certs/ca-root.crt \ - /etc/ssl/cert.pem \ - "$cac"; do - if test -f "$a"; then - ca="$a" - break - fi - done - fi - if test "x$want_capath" = "xunset" -a "x$ca" = "xno" -a \ - "x$OPENSSL_ENABLED" = "x1"; then - for a in /etc/ssl/certs/; do - if test -d "$a" && ls "$a"/[[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]].0 >/dev/null 2>/dev/null; then - capath="$a" - break + if test "x$cross_compiling" != "xyes"; then + dnl NOT cross-compiling and... + dnl neither of the --with-ca-* options are provided + if test "x$want_ca" = "xunset"; then + dnl the path we previously would have installed the curl ca bundle + dnl to, and thus we now check for an already existing cert in that + dnl place in case we find no other + if test "x$prefix" != xNONE; then + cac="${prefix}/share/curl/curl-ca-bundle.crt" + else + cac="$ac_default_prefix/share/curl/curl-ca-bundle.crt" fi - done + + for a in /etc/ssl/certs/ca-certificates.crt \ + /etc/pki/tls/certs/ca-bundle.crt \ + /usr/share/ssl/certs/ca-bundle.crt \ + /usr/local/share/certs/ca-root.crt \ + /etc/ssl/cert.pem \ + "$cac"; do + if test -f "$a"; then + ca="$a" + break + fi + done + fi + if test "x$want_capath" = "xunset" -a "x$ca" = "xno" -a \ + "x$OPENSSL_ENABLED" = "x1"; then + for a in /etc/ssl/certs/; do + if test -d "$a" && ls "$a"/[[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]].0 >/dev/null 2>/dev/null; then + capath="$a" + break + fi + done + fi + else + dnl no option given and cross-compiling + AC_MSG_WARN([skipped the ca-cert path detection when cross-compiling]) fi fi - - if test "x$ca" != "xno"; then CURL_CA_BUNDLE='"'$ca'"' AC_DEFINE_UNQUOTED(CURL_CA_BUNDLE, "$ca", [Location of default ca bundle]) @@ -2843,7 +2689,7 @@ AC_DEFUN([DO_CURL_OFF_T_CHECK], [ tmp_includes="" tmp_source="" tmp_fmt="" - case AS_TR_SH([$1]) in + case XC_SH_TR_SH([$1]) in int64_t) tmp_includes="$curl_includes_inttypes" tmp_source="char f@<:@@:>@ = PRId64;" @@ -2901,7 +2747,7 @@ AC_DEFUN([DO_CURL_OFF_T_SUFFIX_CHECK], [ curl_suffix_curl_off_t="unknown" curl_suffix_curl_off_tu="unknown" # - case AS_TR_SH([$1]) in + case XC_SH_TR_SH([$1]) in long_long | __longlong | __longlong_t) tst_suffixes="LL::" ;; @@ -3073,7 +2919,7 @@ AC_DEFUN([CURL_CONFIGURE_CURL_OFF_T], [ curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/D$/U/'` else x_pull_headers="no" - case AS_TR_SH([$curl_typeof_curl_off_t]) in + case XC_SH_TR_SH([$curl_typeof_curl_off_t]) in long_long | __longlong | __longlong_t) curl_format_curl_off_t="lld" curl_format_curl_off_tu="llu" @@ -3181,7 +3027,7 @@ AC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [ ;; win32_small_files) AC_MSG_RESULT([yes (large file disabled)]) - AC_DEFINE_UNQUOTED(USE_WIN32_LARGE_FILES, 1, + AC_DEFINE_UNQUOTED(USE_WIN32_SMALL_FILES, 1, [Define to 1 if you are building a Windows target without large file support.]) ;; *) @@ -3207,8 +3053,8 @@ AC_DEFUN([CURL_EXPORT_PCDIR], [ dnl CURL_CHECK_PKGCONFIG ($module, [$pcdir]) dnl ------------------------ -dnl search for the pkg-config tool (if not cross-compiling). Set the PKGCONFIG -dnl variable to hold the path to it, or 'no' if not found/present. +dnl search for the pkg-config tool. Set the PKGCONFIG variable to hold the +dnl path to it, or 'no' if not found/present. dnl dnl If pkg-config is present, check that it has info about the $module or dnl return "no" anyway! @@ -3220,15 +3066,7 @@ AC_DEFUN([CURL_CHECK_PKGCONFIG], [ PKGCONFIG="no" - if test x$cross_compiling = xyes; then - dnl see if there's a pkg-specific for this host setup - AC_PATH_PROG( PKGCONFIG, ${host}-pkg-config, no, - $PATH:/usr/bin:/usr/local/bin) - fi - - if test x$PKGCONFIG = xno; then - AC_PATH_PROG( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin) - fi + AC_PATH_TOOL( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin) if test x$PKGCONFIG != xno; then AC_MSG_CHECKING([for $1 options with pkg-config]) diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index e05a191..0000000 --- a/aclocal.m4 +++ /dev/null @@ -1,903 +0,0 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.6])]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 7 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 3 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 12 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.58])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) -AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/curl-compilers.m4]) -m4_include([m4/curl-confopts.m4]) -m4_include([m4/curl-functions.m4]) -m4_include([m4/curl-override.m4]) -m4_include([m4/curl-reentrant.m4]) -m4_include([m4/curl-system.m4]) -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) -m4_include([acinclude.m4]) diff --git a/buildconf b/buildconf index f77ed76..f3f0bd5 100755 --- a/buildconf +++ b/buildconf @@ -6,7 +6,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. +# Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -21,23 +21,24 @@ # ########################################################################### +#-------------------------------------------------------------------------- +# die prints argument string to stdout and exits this shell script. +# die(){ - echo "$@" - exit + echo "buildconf: $@" + exit 1 } #-------------------------------------------------------------------------- # findtool works as 'which' but we use a different name to make it more # obvious we aren't using 'which'! ;-) +# Unlike 'which' does, the current directory is ignored. # findtool(){ file="$1" - if { echo $file | grep "/" >/dev/null 2>&1; } then - # we only check for the explicit file name if the file is given - # including a slash. Use ./ for current dir. Previously this would - # otherwise always cause findtool to search the local dir first, which - # is wrong. + if { echo "$file" | grep "/" >/dev/null 2>&1; } then + # when file is given with a path check it first if test -f "$file"; then echo "$file" return @@ -49,7 +50,7 @@ findtool(){ do IFS=$old_IFS # echo "checks for $file in $path" >&2 - if test -f "$path/$file"; then + if test "$path" -a "$path" != '.' -a -f "$path/$file"; then echo "$path/$file" return fi @@ -80,16 +81,19 @@ removethis(){ # Ensure that buildconf runs from the subdirectory where configure.ac lives # if test ! -f configure.ac || - test ! -f src/main.c || + test ! -f src/tool_main.c || test ! -f lib/urldata.h || - test ! -f include/curl/curl.h; then + test ! -f include/curl/curl.h || + test ! -f m4/curl-functions.m4; then echo "Can not run buildconf from outside of curl's source subdirectory!" echo "Change to the subdirectory where buildconf is found, and try again." exit 1 fi #-------------------------------------------------------------------------- -# autoconf 2.57 or newer +# autoconf 2.57 or newer. Unpatched version 2.67 does not generate proper +# configure script. Unpatched version 2.68 is simply unusable, we should +# disallow 2.68 usage. # need_autoconf="2.57" ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|head -n 1| sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'` @@ -108,7 +112,15 @@ if test "$1" = "2" -a "$2" -lt "57" || test "$1" -lt "2"; then exit 1 fi -echo "buildconf: autoconf version $ac_version (ok)" +if test "$1" = "2" -a "$2" -eq "67"; then + echo "buildconf: autoconf version $ac_version (BAD)" + echo " Unpatched version generates broken configure script." +elif test "$1" = "2" -a "$2" -eq "68"; then + echo "buildconf: autoconf version $ac_version (BAD)" + echo " Unpatched version generates unusable configure script." +else + echo "buildconf: autoconf version $ac_version (ok)" +fi am4te_version=`${AUTOM4TE:-autom4te} --version 2>/dev/null|head -n 1| sed -e 's/autom4te\(.*\)/\1/' -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'` if test -z "$am4te_version"; then @@ -178,72 +190,67 @@ else fi #-------------------------------------------------------------------------- -# libtool check +# GNU libtoolize preliminary check # -LIBTOOL_WANTED_MAJOR=1 -LIBTOOL_WANTED_MINOR=4 -LIBTOOL_WANTED_PATCH=2 -LIBTOOL_WANTED_VERSION=1.4.2 - -# this approach that tries 'glibtool' first is some kind of work-around for -# some BSD-systems I believe that use to provide the GNU libtool named -# glibtool, with 'libtool' being something completely different. -libtool=`findtool glibtool 2>/dev/null` -if test ! -x "$libtool"; then - libtool=`findtool ${LIBTOOL:-libtool}` -fi +want_lt_major=1 +want_lt_minor=4 +want_lt_patch=2 +want_lt_version=1.4.2 -if test -z "$LIBTOOLIZE"; then - # set the LIBTOOLIZE here so that glibtoolize is used if glibtool was found - # $libtool is already the full path - libtoolize="${libtool}ize" -else - libtoolize=`findtool $LIBTOOLIZE` +# This approach that tries 'glibtoolize' first is intended for systems that +# have GNU libtool named as 'glibtoolize' and libtoolize not being GNU's. + +libtoolize=`findtool glibtoolize 2>/dev/null` +if test ! -x "$libtoolize"; then + libtoolize=`findtool ${LIBTOOLIZE:-libtoolize}` +fi +if test -z "$libtoolize"; then + echo "buildconf: libtoolize not found." + echo " You need GNU libtoolize $want_lt_version or newer installed." + exit 1 fi -lt_pver=`$libtool --version 2>/dev/null|head -n 1` +lt_pver=`$libtoolize --version 2>/dev/null|head -n 1` lt_qver=`echo $lt_pver|sed -e "s/([^)]*)//g" -e "s/^[^0-9]*//g"` lt_version=`echo $lt_qver|sed -e "s/[- ].*//" -e "s/\([a-z]*\)$//"` if test -z "$lt_version"; then - echo "buildconf: libtool not found." - echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed" + echo "buildconf: libtoolize not found." + echo " You need GNU libtoolize $want_lt_version or newer installed." exit 1 fi old_IFS=$IFS; IFS='.'; set $lt_version; IFS=$old_IFS lt_major=$1 lt_minor=$2 lt_patch=$3 -lt_status="good" -if test "$lt_major" = "$LIBTOOL_WANTED_MAJOR"; then - if test "$lt_minor" -lt "$LIBTOOL_WANTED_MINOR"; then - lt_status="bad" - elif test -n "$LIBTOOL_WANTED_PATCH"; then - if test "$lt_minor" -gt "$LIBTOOL_WANTED_MINOR"; then - lt_status="good" - elif test -n "$lt_patch"; then - if test "$lt_patch" -lt "$LIBTOOL_WANTED_PATCH"; then - lt_status="bad" - fi - else - lt_status="bad" - fi - fi +if test -z "$lt_major"; then + lt_status="bad" +elif test "$lt_major" -gt "$want_lt_major"; then + lt_status="good" +elif test "$lt_major" -lt "$want_lt_major"; then + lt_status="bad" +elif test -z "$lt_minor"; then + lt_status="bad" +elif test "$lt_minor" -gt "$want_lt_minor"; then + lt_status="good" +elif test "$lt_minor" -lt "$want_lt_minor"; then + lt_status="bad" +elif test -z "$lt_patch"; then + lt_status="bad" +elif test "$lt_patch" -gt "$want_lt_patch"; then + lt_status="good" +elif test "$lt_patch" -lt "$want_lt_patch"; then + lt_status="bad" +else + lt_status="good" fi -if test $lt_status != "good"; then - echo "buildconf: libtool version $lt_version found." - echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed" +if test "$lt_status" != "good"; then + echo "buildconf: libtoolize version $lt_version found." + echo " You need GNU libtoolize $want_lt_version or newer installed." exit 1 fi -echo "buildconf: libtool version $lt_version (ok)" - -if test -f "$libtoolize"; then - echo "buildconf: libtoolize found" -else - echo "buildconf: libtoolize not found. Weird libtool installation!" - exit 1 -fi +echo "buildconf: libtoolize version $lt_version (ok)" #-------------------------------------------------------------------------- # m4 check @@ -266,6 +273,10 @@ fi # perl check # PERL=`findtool ${PERL:-perl}` +if test -z "$PERL"; then + echo "buildconf: perl not found" + exit 1 +fi #-------------------------------------------------------------------------- # Remove files generated on previous buildconf/configure run. @@ -301,6 +312,7 @@ for fname in .deps \ libcurl.pc \ libtool \ libtool.m4 \ + libtool.m4.tmp \ ltmain.sh \ ltoptions.m4 \ ltsugar.m4 \ @@ -317,32 +329,49 @@ done # echo "buildconf: running libtoolize" -$libtoolize --copy --automake --force || die "The libtoolize command failed" +${libtoolize} --copy --automake --force || die "libtoolize command failed" + +# When using libtool 1.5.X (X < 26) we copy libtool.m4 to our local m4 +# subdirectory and this local copy is patched to fix some warnings that +# are triggered when running aclocal and using autoconf 2.62 or later. + +if test "$lt_major" = "1" && test "$lt_minor" = "5"; then + if test -z "$lt_patch" || test "$lt_patch" -lt "26"; then + echo "buildconf: copying libtool.m4 to local m4 subdir" + ac_dir=`${ACLOCAL:-aclocal} --print-ac-dir` + if test -f $ac_dir/libtool.m4; then + cp -f $ac_dir/libtool.m4 m4/libtool.m4 + else + echo "buildconf: $ac_dir/libtool.m4 not found" + fi + if test -f m4/libtool.m4; then + echo "buildconf: renaming some variables in local m4/libtool.m4" + $PERL -i.tmp -pe \ + 's/lt_prog_compiler_pic_works/lt_cv_prog_compiler_pic_works/g; \ + s/lt_prog_compiler_static_works/lt_cv_prog_compiler_static_works/g;' \ + m4/libtool.m4 + rm -f m4/libtool.m4.tmp + fi + fi +fi -if test ! -f m4/curl-functions.m4; then - echo "buildconf: cURL m4 macros not found" - exit 1 +if test -f m4/libtool.m4; then + echo "buildconf: converting all mv to mv -f in local m4/libtool.m4" + $PERL -i.tmp -pe 's/\bmv +([^-\s])/mv -f $1/g' m4/libtool.m4 + rm -f m4/libtool.m4.tmp fi echo "buildconf: running aclocal" -${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "The aclocal command line failed" +${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "aclocal command failed" -if test -n "$PERL"; then - echo "buildconf: running aclocal hack to convert all mv to mv -f" - $PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4 -else - echo "buildconf: perl not found" - exit 1 -fi +echo "buildconf: converting all mv to mv -f in local aclocal.m4" +$PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4 echo "buildconf: running autoheader" -${AUTOHEADER:-autoheader} || die "The autoheader command failed" - -echo "buildconf: cp lib/curl_config.h.in src/curl_config.h.in" -cp lib/curl_config.h.in src/curl_config.h.in +${AUTOHEADER:-autoheader} || die "autoheader command failed" echo "buildconf: running autoconf" -${AUTOCONF:-autoconf} || die "The autoconf command failed" +${AUTOCONF:-autoconf} || die "autoconf command failed" if test -d ares; then cd ares @@ -352,14 +381,15 @@ if test -d ares; then fi echo "buildconf: running automake" -${AUTOMAKE:-automake} -a -c || die "The automake command failed" +${AUTOMAKE:-automake} --add-missing --copy || die "automake command failed" #-------------------------------------------------------------------------- +# GNU libtool complementary check +# # Depending on the libtool and automake versions being used, config.guess # might not be installed in the subdirectory until automake has finished. # So we can not attempt to use it until this very last buildconf stage. # - if test ! -f ./config.guess; then echo "buildconf: config.guess not found" else @@ -403,7 +433,7 @@ else if test "$lt_status" != "good"; then need_lt_version="$need_lt_major.$need_lt_minor.$need_lt_patch" echo "buildconf: libtool version $lt_version found." - echo " $buildhost requires libtool $need_lt_version or newer installed." + echo " $buildhost requires GNU libtool $need_lt_version or newer installed." rm -f configure exit 1 fi @@ -411,8 +441,7 @@ else fi #-------------------------------------------------------------------------- -# Finished succesfully. +# Finished successfully. # - echo "buildconf: OK" exit 0 diff --git a/buildconf.bat b/buildconf.bat new file mode 100644 index 0000000..dc55fab --- /dev/null +++ b/buildconf.bat @@ -0,0 +1,38 @@ +@echo off +REM +REM +REM This batch file must be used to set up a git tree to build on +REM systems where there is no autotools support (i.e. Microsoft). +REM +REM This file is not included nor needed for curl's release +REM archives, neither for curl's daily snapshot archives. + +if exist GIT-INFO goto start_doing +ECHO ERROR: This file shall only be used with a curl git tree checkout. +goto end_all +:start_doing + +REM create tool_hugehelp.c +if not exist src\tool_hugehelp.c.cvs goto end_hugehelp_c +copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c +:end_hugehelp_c + +REM create Makefile +if not exist Makefile.dist goto end_makefile +copy /Y Makefile.dist Makefile +:end_makefile + +REM create curlbuild.h +if not exist include\curl\curlbuild.h.dist goto end_curlbuild_h +copy /Y include\curl\curlbuild.h.dist include\curl\curlbuild.h +:end_curlbuild_h + +REM setup c-ares git tree +if not exist ares\buildconf.bat goto end_c_ares +cd ares +call buildconf.bat +cd .. +:end_c_ares + +:end_all + diff --git a/compile b/compile deleted file mode 100755 index 1b1d232..0000000 --- a/compile +++ /dev/null @@ -1,142 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. - -scriptversion=2005-05-14.22 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; -esac - -ofile= -cfile= -eat= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/config.guess b/config.guess deleted file mode 100755 index c2246a4..0000000 --- a/config.guess +++ /dev/null @@ -1,1502 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. - -timestamp='2009-12-30' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.sub b/config.sub deleted file mode 100755 index c2d1257..0000000 --- a/config.sub +++ /dev/null @@ -1,1714 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. - -timestamp='2010-01-22' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile-* | tilegx-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze) - basic_machine=microblaze-xilinx - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - # This must be matched before tile*. - tilegx*) - basic_machine=tilegx-unknown - os=-linux-gnu - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/configure b/configure deleted file mode 100755 index a730b0a..0000000 --- a/configure +++ /dev/null @@ -1,37624 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for curl -. -# -# Report bugs to . -# -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -# -# Copyright (c) 1998 - 2010 Daniel Stenberg, -# This configure script may be copied, distributed and modified under the -# terms of the curl license; see COPYING for more details -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - - - if test -z "$curl_cv_PATH_SEPARATOR"; then - if test -z "$PATH"; then - as_fn_error $? "PATH not set. Cannot continue without PATH being set." - fi - tst_dirs_col=0 - tst_save_IFS=$IFS; IFS=':' - for tst_dir in $PATH; do - IFS=$tst_save_IFS - test -d "$tst_dir" && tst_dirs_col=`expr $tst_dirs_col + 1` - done - IFS=$tst_save_IFS - tst_dirs_sem=0 - tst_save_IFS=$IFS; IFS=';' - for tst_dir in $PATH; do - IFS=$tst_save_IFS - test -d "$tst_dir" && tst_dirs_sem=`expr $tst_dirs_sem + 1` - done - IFS=$tst_save_IFS - if test $tst_dirs_sem -eq $tst_dirs_col; then - if test -z "$PATH_SEPARATOR"; then - as_fn_error $? "PATH_SEPARATOR not set. Cannot continue without it." - fi - else - if test $tst_dirs_sem -gt $tst_dirs_col; then - tst_auto_separator=';' - else - tst_auto_separator=':' - fi - if test -z "$PATH_SEPARATOR"; then - PATH_SEPARATOR="$tst_auto_separator" - fi - fi - curl_cv_PATH_SEPARATOR="$PATH_SEPARATOR" - fi - - - - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and a suitable curl -$0: mailing list: http://curl.haxx.se/mail/ about your -$0: system, including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -$* -_LT_EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='curl' -PACKAGE_TARNAME='curl' -PACKAGE_VERSION='-' -PACKAGE_STRING='curl -' -PACKAGE_BUGREPORT='a suitable curl mailing list: http://curl.haxx.se/mail/' -PACKAGE_URL='' - -ac_unique_file="lib/urldata.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -enable_option_checking=no -ac_subst_vars='LTLIBOBJS -LIBOBJS -SUPPORT_PROTOCOLS -SUPPORT_FEATURES -ENABLE_SHARED -CROSSCOMPILING_FALSE -CROSSCOMPILING_TRUE -CURL_NETWORK_LIBS -TEST_SERVER_LIBS -CURL_LIBS -LIBCURL_LIBS -SONAME_BUMP_FALSE -SONAME_BUMP_TRUE -USE_WINDOWS_SSPI -BUILD_LIBHOSTNAME_FALSE -BUILD_LIBHOSTNAME_TRUE -USE_EMBEDDED_ARES_FALSE -USE_EMBEDDED_ARES_TRUE -USE_ARES -subdirs -USE_MANUAL_FALSE -USE_MANUAL_TRUE -MANOPT -NROFF -PERL -IPV6_ENABLED -IDN_ENABLED -USE_LIBRTMP -USE_LIBSSH2 -CURL_CA_BUNDLE -SSL_ENABLED -USE_NSS -HAVE_PK11_CREATEGENERICOBJECT -USE_POLARSSL -USE_GNUTLS -RANDOM_FILE -HAVE_LIBZ_FALSE -HAVE_LIBZ_TRUE -HAVE_LIBZ -USE_SSLEAY -PKGCONFIG -KRB4_ENABLED -USE_OPENLDAP -CURL_DISABLE_GOPHER -CURL_DISABLE_SMTP -CURL_DISABLE_IMAP -CURL_DISABLE_POP3 -CURL_DISABLE_TFTP -CURL_DISABLE_TELNET -CURL_DISABLE_DICT -CURL_DISABLE_PROXY -HAVE_LDAP_SSL -CURL_DISABLE_LDAPS -CURL_DISABLE_LDAP -CURL_DISABLE_FILE -CURL_DISABLE_FTP -CURL_DISABLE_RTSP -CURL_DISABLE_HTTP -CURLDEBUG_FALSE -CURLDEBUG_TRUE -NO_UNDEFINED_FALSE -NO_UNDEFINED_TRUE -REQUIRE_LIB_DEPS -STATICLIB_FALSE -STATICLIB_TRUE -MIMPURE_FALSE -MIMPURE_TRUE -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -lt_ECHO -RANLIB -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -LIBTOOL -OBJDUMP -DLLTOOL -AS -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -PKGADD_VENDOR -PKGADD_NAME -PKGADD_PKG -VERSIONNUM -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -libext -AR -EGREP -GREP -SED -CURL_CFLAG_EXTRAS -CONFIGURE_OPTIONS -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -SHELL -PATH -PATH_SEPARATOR' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_maintainer_mode -enable_debug -enable_optimize -enable_warnings -enable_werror -enable_curldebug -enable_ares -enable_dependency_tracking -enable_largefile -enable_shared -enable_static -with_pic -enable_fast_install -with_gnu_ld -enable_libtool_lock -enable_http -enable_ftp -enable_file -enable_ldap -enable_ldaps -enable_rtsp -enable_proxy -enable_dict -enable_telnet -enable_tftp -enable_pop3 -enable_imap -enable_smtp -enable_gopher -enable_manual -enable_libgcc -with_ldap_lib -with_lber_lib -enable_ipv6 -with_krb4_includes -with_krb4_libs -with_krb4 -with_spnego -with_gssapi_includes -with_gssapi_libs -with_gssapi -with_ssl -with_zlib -with_egd_socket -with_random -with_gnutls -with_polarssl -with_nss -with_ca_bundle -with_ca_path -with_libssh2 -with_librtmp -with_libidn -enable_nonblocking -enable_threaded_resolver -enable_verbose -enable_sspi -enable_crypto_auth -enable_cookies -enable_hidden_symbols -enable_soname_bump -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' -ac_subdirs_all='ares' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures curl - to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/curl] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of curl -:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-debug Enable debug build options - --disable-debug Disable debug build options - --enable-optimize Enable compiler optimizations - --disable-optimize Disable compiler optimizations - --enable-warnings Enable strict compiler warnings - --disable-warnings Disable strict compiler warnings - --enable-werror Enable compiler warnings as errors - --disable-werror Disable compiler warnings as errors - --enable-curldebug Enable curl debug memory tracking - --disable-curldebug Disable curl debug memory tracking - --enable-ares[=PATH] Enable c-ares for DNS lookups - --disable-ares Disable c-ares for DNS lookups - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --disable-largefile omit support for large files - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-http Enable HTTP support - --disable-http Disable HTTP support - --enable-ftp Enable FTP support - --disable-ftp Disable FTP support - --enable-file Enable FILE support - --disable-file Disable FILE support - --enable-ldap Enable LDAP support - --disable-ldap Disable LDAP support - --enable-ldaps Enable LDAPS support - --disable-ldaps Disable LDAPS support - --enable-rtsp Enable RTSP support - --disable-rtsp Disable RTSP support - --enable-proxy Enable proxy support - --disable-proxy Disable proxy support - --enable-dict Enable DICT support - --disable-dict Disable DICT support - --enable-telnet Enable TELNET support - --disable-telnet Disable TELNET support - --enable-tftp Enable TFTP support - --disable-tftp Disable TFTP support - --enable-pop3 Enable POP3 support - --disable-pop3 Disable POP3 support - --enable-imap Enable IMAP support - --disable-imap Disable IMAP support - --enable-smtp Enable SMTP support - --disable-smtp Disable SMTP support - --enable-gopher Enable Gopher support - --disable-gopher Disable Gopher support - --enable-manual Enable built-in manual - --disable-manual Disable built-in manual - --enable-libgcc use libgcc when linking - --enable-ipv6 Enable ipv6 (with ipv4) support - --disable-ipv6 Disable ipv6 support - --enable-nonblocking Enable non-blocking communications - --disable-nonblocking Disable non-blocking communications - --enable-threaded-resolver - Enable threaded resolver - --disable-threaded-resolver - Disable threaded resolver - --enable-verbose Enable verbose strings - --disable-verbose Disable verbose strings - --enable-sspi Enable SSPI - --disable-sspi Disable SSPI - --enable-crypto-auth Enable cryptographic authentication - --disable-crypto-auth Disable cryptographic authentication - --enable-cookies Enable cookies support - --disable-cookies Disable cookies support - --enable-hidden-symbols Hide internal symbols in library - --disable-hidden-symbols - Leave all symbols with default visibility in library - --enable-soname-bump Enable enforced SONAME bump - --disable-soname-bump Disable enforced SONAME bump - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-ldap-lib=libname Specify name of ldap lib file - --with-lber-lib=libname Specify name of lber lib file - --with-krb4-includes=DIR - Specify location of kerberos4 headers - --with-krb4-libs=DIR Specify location of kerberos4 libs - --with-krb4=DIR where to look for Kerberos4 - --with-spnego=DIR Specify location of SPNEGO library fbopenssl - --with-gssapi-includes=DIR - Specify location of GSSAPI header - --with-gssapi-libs=DIR Specify location of GSSAPI libs - --with-gssapi=DIR Where to look for GSSAPI - --with-ssl=PATH Where to look for OpenSSL, PATH points to the SSL - installation (default: /usr/local/ssl); when - possible, set the PKG_CONFIG_PATH environment - variable instead of using this option - --without-ssl disable OpenSSL - --with-zlib=PATH search for zlib in PATH - --without-zlib disable use of zlib - --with-egd-socket=FILE Entropy Gathering Daemon socket pathname - --with-random=FILE read randomness from FILE (default=/dev/urandom) - --with-gnutls=PATH where to look for GnuTLS, PATH points to the - installation root (default: /usr/local/) - --without-gnutls disable GnuTLS detection - --with-polarssl=PATH where to look for PolarSSL, PATH points to the - installation root (default: /usr/local/) - --without-polarssl disable PolarSSL detection - --with-nss=PATH where to look for NSS, PATH points to the - installation root (default: /usr/local/) - --without-nss disable NSS detection - --with-ca-bundle=FILE File name to use as CA bundle - --without-ca-bundle Don't use a default CA bundle - --with-ca-path=DIRECTORY - Directory to use as CA path - --without-ca-path Don't use a default CA path - --with-libssh2=PATH Where to look for libssh2, PATH points to the - LIBSSH2 installation (default: /usr/local/lib); when - possible, set the PKG_CONFIG_PATH environment - variable instead of using this option - --without-libssh2 disable LIBSSH2 - --with-librtmp=PATH Where to look for librtmp, PATH points to the - LIBRTMP installation (default: /usr/local/lib); when - possible, set the PKG_CONFIG_PATH environment - variable instead of using this option - --without-librtmp disable LIBRTMP - --with-libidn=PATH Enable libidn usage - --without-libidn Disable libidn usage - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -curl configure - -generated by GNU Autoconf 2.67 - -Copyright (C) 2010 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. - -Copyright (c) 1998 - 2010 Daniel Stenberg, -This configure script may be copied, distributed and modified under the -terms of the curl license; see COPYING for more details -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int main (void) -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define $2 innocuous_$2 -#ifdef __STDC__ -# include -#else -# include -#endif -#undef $2 -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int main (void) -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_func - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ---------------------------------------------------------------------- ## -## Report this to a suitable curl mailing list: http://curl.haxx.se/mail/ ## -## ---------------------------------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int main (void) -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_type -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by curl $as_me -, which was -generated by GNU Autoconf 2.67. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - -# using curl-override.m4 - - - - - -ac_config_headers="$ac_config_headers lib/curl_config.h src/curl_config.h include/curl/curlbuild.h" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debug build options" >&5 -$as_echo_n "checking whether to enable debug build options... " >&6; } - OPT_DEBUG_BUILD="default" - # Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; OPT_DEBUG_BUILD=$enableval -fi - - case "$OPT_DEBUG_BUILD" in - no) - want_debug="no" - ;; - default) - want_debug="no" - ;; - *) - want_debug="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_debug" >&5 -$as_echo "$want_debug" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler optimizer" >&5 -$as_echo_n "checking whether to enable compiler optimizer... " >&6; } - OPT_COMPILER_OPTIMIZE="default" - # Check whether --enable-optimize was given. -if test "${enable_optimize+set}" = set; then : - enableval=$enable_optimize; OPT_COMPILER_OPTIMIZE=$enableval -fi - - case "$OPT_COMPILER_OPTIMIZE" in - no) - want_optimize="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - default) - if test "$want_debug" = "yes"; then - want_optimize="assume_no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) no" >&5 -$as_echo "(assumed) no" >&6; } - else - want_optimize="assume_yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5 -$as_echo "(assumed) yes" >&6; } - fi - ;; - *) - want_optimize="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable strict compiler warnings" >&5 -$as_echo_n "checking whether to enable strict compiler warnings... " >&6; } - OPT_COMPILER_WARNINGS="default" - # Check whether --enable-warnings was given. -if test "${enable_warnings+set}" = set; then : - enableval=$enable_warnings; OPT_COMPILER_WARNINGS=$enableval -fi - - case "$OPT_COMPILER_WARNINGS" in - no) - want_warnings="no" - ;; - default) - want_warnings="$want_debug" - ;; - *) - want_warnings="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_warnings" >&5 -$as_echo "$want_warnings" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler warnings as errors" >&5 -$as_echo_n "checking whether to enable compiler warnings as errors... " >&6; } - OPT_COMPILER_WERROR="default" - # Check whether --enable-werror was given. -if test "${enable_werror+set}" = set; then : - enableval=$enable_werror; OPT_COMPILER_WERROR=$enableval -fi - - case "$OPT_COMPILER_WERROR" in - no) - want_werror="no" - ;; - default) - want_werror="no" - ;; - *) - want_werror="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_werror" >&5 -$as_echo "$want_werror" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable curl debug memory tracking" >&5 -$as_echo_n "checking whether to enable curl debug memory tracking... " >&6; } - OPT_CURLDEBUG_BUILD="default" - # Check whether --enable-curldebug was given. -if test "${enable_curldebug+set}" = set; then : - enableval=$enable_curldebug; OPT_CURLDEBUG_BUILD=$enableval -fi - - case "$OPT_CURLDEBUG_BUILD" in - no) - want_curldebug="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - default) - if test "$want_debug" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5 -$as_echo "(assumed) yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - want_curldebug_assumed="yes" - want_curldebug="$want_debug" - ;; - *) - want_curldebug="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable c-ares for DNS lookups" >&5 -$as_echo_n "checking whether to enable c-ares for DNS lookups... " >&6; } - OPT_ARES="default" - # Check whether --enable-ares was given. -if test "${enable_ares+set}" = set; then : - enableval=$enable_ares; OPT_ARES=$enableval -fi - - case "$OPT_ARES" in - no) - want_ares="no" - ;; - default) - want_ares="no" - ;; - *) - want_ares="yes" - if test -n "$enableval" && test "$enableval" != "yes"; then - want_ares_path="$enableval" - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_ares" >&5 -$as_echo "$want_ares" >&6; } - - - - - -# -# save the configure arguments -# -CONFIGURE_OPTIONS="\"$ac_configure_args\"" - - -CURL_CFLAG_EXTRAS="" -if test X"$want_werror" = Xyes; then - CURL_CFLAG_EXTRAS="-Werror" -fi - - -if test -z "$SED"; then - # Extract the first word of "sed", so it can be a program name with args. -set dummy sed; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $SED in - [\\/]* | ?:[\\/]*) - ac_cv_path_SED="$SED" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_SED" && ac_cv_path_SED="not_found" - ;; -esac -fi -SED=$ac_cv_path_SED -if test -n "$SED"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 -$as_echo "$SED" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -z "$SED" || test "$SED" = "not_found"; then - as_fn_error $? "sed not found in PATH. Cannot continue without sed." "$LINENO" 5 - fi -fi - - -if test -z "$GREP"; then - # Extract the first word of "grep", so it can be a program name with args. -set dummy grep; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $GREP in - [\\/]* | ?:[\\/]*) - ac_cv_path_GREP="$GREP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GREP" && ac_cv_path_GREP="not_found" - ;; -esac -fi -GREP=$ac_cv_path_GREP -if test -n "$GREP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 -$as_echo "$GREP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -z "$GREP" || test "$GREP" = "not_found"; then - as_fn_error $? "grep not found in PATH. Cannot continue without grep." "$LINENO" 5 - fi -fi - - -if test -z "$EGREP"; then - if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } - EGREP="$GREP -E" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5 -$as_echo "$EGREP" >&6; } - else - # Extract the first word of "egrep", so it can be a program name with args. -set dummy egrep; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $EGREP in - [\\/]* | ?:[\\/]*) - ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_EGREP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_EGREP" && ac_cv_path_EGREP="not_found" - ;; -esac -fi -EGREP=$ac_cv_path_EGREP -if test -n "$EGREP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5 -$as_echo "$EGREP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$EGREP" || test "$EGREP" = "not_found"; then - as_fn_error $? "egrep not found in PATH. Cannot continue without egrep." "$LINENO" 5 -fi - - -if test -z "$AR"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $AR in - [\\/]* | ?:[\\/]*) - ac_cv_path_AR="$AR" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -AR=$ac_cv_path_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_AR"; then - ac_pt_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_AR in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ac_pt_AR="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_AR=$ac_cv_path_ac_pt_AR -if test -n "$ac_pt_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5 -$as_echo "$ac_pt_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_AR" = x; then - AR="not_found" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_pt_AR - fi -else - AR="$ac_cv_path_AR" -fi - - if test -z "$AR" || test "$AR" = "not_found"; then - as_fn_error $? "ar not found in PATH. Cannot continue without ar." "$LINENO" 5 - fi -fi - - - - -if test -f ${srcdir}/include/curl/curlbuild.h; then - rm -f ${srcdir}/include/curl/curlbuild.h -fi - -VERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h` -am__api_version="1.9" -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} \"$am_aux_dir/missing\"" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE=curl - VERSION=$VERSION - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking curl version" >&5 -$as_echo_n "checking curl version... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $VERSION" >&5 -$as_echo "$VERSION" >&6; } - -VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h` - - -PKGADD_PKG="HAXXcurl" -PKGADD_NAME="cURL - a client that groks URLs" -PKGADD_VENDOR="curl.haxx.se" - - - - - curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl} )" - curl_ssh_msg="no (--with-libssh2)" - curl_zlib_msg="no (--with-zlib)" - curl_krb4_msg="no (--with-krb4*)" - curl_gss_msg="no (--with-gssapi)" - curl_spnego_msg="no (--with-spnego)" - curl_res_msg="default (--enable-ares / --enable-threaded-resolver)" - curl_ipv6_msg="no (--enable-ipv6)" - curl_idn_msg="no (--with-libidn)" - curl_manual_msg="no (--enable-manual)" -curl_verbose_msg="enabled (--disable-verbose)" - curl_sspi_msg="no (--enable-sspi)" - curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)" - curl_ldaps_msg="no (--enable-ldaps)" - curl_rtsp_msg="no (--enable-rtsp)" - curl_rtmp_msg="no (--with-librtmp)" - -ALL_LIBS=$LIBS - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - -cat >>confdefs.h <<_ACEOF -#define OS "${host}" -_ACEOF - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - - - ac_save_CFLAGS="$CFLAGS" - ac_save_CPPFLAGS="$CPPFLAGS" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5 ; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5 ; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int main (void) -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5 ; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5 ; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int main (void) -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - CFLAGS="$ac_save_CFLAGS" - CPPFLAGS="$ac_save_CPPFLAGS" - - - - -curl_includes_inttypes="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -/* includes end */" - case $host_os in - irix*) - ac_cv_header_stdint_h="no" - ;; - esac - for ac_header in sys/types.h stdint.h inttypes.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_inttypes -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - # - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - # - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5 -$as_echo_n "checking size of void*... " >&6; } -if test "${ac_cv_sizeof_voidp+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_voidp" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (void*) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_voidp=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_voidp" >&5 -$as_echo "$ac_cv_sizeof_voidp" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOIDP $ac_cv_sizeof_voidp -_ACEOF - - - # - if test -z "$ac_cv_sizeof_long" || - test "$ac_cv_sizeof_long" -eq "0"; then - as_fn_error $? "cannot find out size of long." "$LINENO" 5 - fi - if test -z "$ac_cv_sizeof_voidp" || - test "$ac_cv_sizeof_voidp" -eq "0"; then - as_fn_error $? "cannot find out size of void*." "$LINENO" 5 - fi - # - x_LP64_long="" - x_LP32_long="" - x_LP16_long="" - # - if test "$ac_cv_sizeof_long" -eq "8" && - test "$ac_cv_sizeof_voidp" -ge "8"; then - x_LP64_long="long" - elif test "$ac_cv_sizeof_long" -eq "4" && - test "$ac_cv_sizeof_voidp" -ge "4"; then - x_LP32_long="long" - elif test "$ac_cv_sizeof_long" -eq "2" && - test "$ac_cv_sizeof_voidp" -ge "2"; then - x_LP16_long="long" - fi - # - # - curl_typeof_curl_off_t="unknown" - curl_sizeof_curl_off_t="unknown" - curl_format_curl_off_t="unknown" - curl_format_curl_off_tu="unknown" - # - if test "$curl_typeof_curl_off_t" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit curl_off_t data type" >&5 -$as_echo_n "checking for 64-bit curl_off_t data type... " >&6; } - for t8 in \ - "$x_LP64_long" \ - 'int64_t' \ - '__int64' \ - 'long long' \ - '__longlong' \ - '__longlong_t' ; do - - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$t8"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case `$as_echo "$t8" | $as_tr_sh` in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId16;" - tmp_fmt="PRId16" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $t8 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == 8 ? 1 : -1]; - -int main (void) -{ - - $tmp_source - curl_off_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$t8" - curl_sizeof_curl_off_t="8" - else - - as_ac_HaveDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_ac_Def=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_inttypes -#ifdef $tmp_fmt -CURL_DEF_TOKEN $tmp_fmt -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$tmp_fmt"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - eval "$as_ac_HaveDef=no" - - else - eval "$as_ac_HaveDef=yes" - eval "$as_ac_Def=\$tmp_exp" - - fi - - as_tmp_HaveFmtDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_tmp_FmtDef=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test `eval 'as_val=${'$as_tmp_HaveFmtDef'};$as_echo "$as_val"'` = "yes"; then - curl_format_curl_off_t=`eval 'as_val=${'$as_tmp_FmtDef'};$as_echo "$as_val"'` - curl_typeof_curl_off_t="$t8" - curl_sizeof_curl_off_t="8" - fi - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_off_t" >&5 -$as_echo "$curl_typeof_curl_off_t" >&6; } - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 32-bit curl_off_t data type" >&5 -$as_echo_n "checking for 32-bit curl_off_t data type... " >&6; } - for t4 in \ - "$x_LP32_long" \ - 'int32_t' \ - '__int32' \ - 'int' ; do - - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$t4"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case `$as_echo "$t4" | $as_tr_sh` in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId16;" - tmp_fmt="PRId16" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $t4 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == 4 ? 1 : -1]; - -int main (void) -{ - - $tmp_source - curl_off_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$t4" - curl_sizeof_curl_off_t="4" - else - - as_ac_HaveDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_ac_Def=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_inttypes -#ifdef $tmp_fmt -CURL_DEF_TOKEN $tmp_fmt -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$tmp_fmt"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - eval "$as_ac_HaveDef=no" - - else - eval "$as_ac_HaveDef=yes" - eval "$as_ac_Def=\$tmp_exp" - - fi - - as_tmp_HaveFmtDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_tmp_FmtDef=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test `eval 'as_val=${'$as_tmp_HaveFmtDef'};$as_echo "$as_val"'` = "yes"; then - curl_format_curl_off_t=`eval 'as_val=${'$as_tmp_FmtDef'};$as_echo "$as_val"'` - curl_typeof_curl_off_t="$t4" - curl_sizeof_curl_off_t="4" - fi - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_off_t" >&5 -$as_echo "$curl_typeof_curl_off_t" >&6; } - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 16-bit curl_off_t data type" >&5 -$as_echo_n "checking for 16-bit curl_off_t data type... " >&6; } - for t2 in \ - "$x_LP16_long" \ - 'int16_t' \ - '__int16' \ - 'int' ; do - - if test "$curl_typeof_curl_off_t" = "unknown" && test ! -z "$t2"; then - tmp_includes="" - tmp_source="" - tmp_fmt="" - case `$as_echo "$t2" | $as_tr_sh` in - int64_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId64;" - tmp_fmt="PRId64" - ;; - int32_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId32;" - tmp_fmt="PRId32" - ;; - int16_t) - tmp_includes="$curl_includes_inttypes" - tmp_source="char f[] = PRId16;" - tmp_fmt="PRId16" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $t2 curl_off_t; - typedef char dummy_arr[sizeof(curl_off_t) == 2 ? 1 : -1]; - -int main (void) -{ - - $tmp_source - curl_off_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - if test -z "$tmp_fmt"; then - curl_typeof_curl_off_t="$t2" - curl_sizeof_curl_off_t="2" - else - - as_ac_HaveDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_ac_Def=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_inttypes -#ifdef $tmp_fmt -CURL_DEF_TOKEN $tmp_fmt -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "$tmp_fmt"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - eval "$as_ac_HaveDef=no" - - else - eval "$as_ac_HaveDef=yes" - eval "$as_ac_Def=\$tmp_exp" - - fi - - as_tmp_HaveFmtDef=`$as_echo "curl_cv_have_def_$tmp_fmt" | $as_tr_sh` - as_tmp_FmtDef=`$as_echo "curl_cv_def_$tmp_fmt" | $as_tr_sh` - if test `eval 'as_val=${'$as_tmp_HaveFmtDef'};$as_echo "$as_val"'` = "yes"; then - curl_format_curl_off_t=`eval 'as_val=${'$as_tmp_FmtDef'};$as_echo "$as_val"'` - curl_typeof_curl_off_t="$t2" - curl_sizeof_curl_off_t="2" - fi - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_off_t" >&5 -$as_echo "$curl_typeof_curl_off_t" >&6; } - fi - if test "$curl_typeof_curl_off_t" = "unknown"; then - as_fn_error $? "cannot find data type for curl_off_t." "$LINENO" 5 - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of curl_off_t" >&5 -$as_echo_n "checking size of curl_off_t... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_sizeof_curl_off_t" >&5 -$as_echo "$curl_sizeof_curl_off_t" >&6; } - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking formatting string directive for curl_off_t" >&5 -$as_echo_n "checking formatting string directive for curl_off_t... " >&6; } - if test "$curl_format_curl_off_t" != "unknown"; then - x_pull_headers="yes" - curl_format_curl_off_t=`echo "$curl_format_curl_off_t" | "$SED" 's/["]//g'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_t" | "$SED" 's/i$/u/'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/d$/u/'` - curl_format_curl_off_tu=`echo "$curl_format_curl_off_tu" | "$SED" 's/D$/U/'` - else - x_pull_headers="no" - case `$as_echo "$curl_typeof_curl_off_t" | $as_tr_sh` in - long_long | __longlong | __longlong_t) - curl_format_curl_off_t="lld" - curl_format_curl_off_tu="llu" - ;; - long) - curl_format_curl_off_t="ld" - curl_format_curl_off_tu="lu" - ;; - int) - curl_format_curl_off_t="d" - curl_format_curl_off_tu="u" - ;; - __int64) - curl_format_curl_off_t="I64d" - curl_format_curl_off_tu="I64u" - ;; - __int32) - curl_format_curl_off_t="I32d" - curl_format_curl_off_tu="I32u" - ;; - __int16) - curl_format_curl_off_t="I16d" - curl_format_curl_off_tu="I16u" - ;; - *) - as_fn_error $? "cannot find print format string for curl_off_t." "$LINENO" 5 - ;; - esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$curl_format_curl_off_t\"" >&5 -$as_echo "\"$curl_format_curl_off_t\"" >&6; } - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking formatting string directive for unsigned curl_off_t" >&5 -$as_echo_n "checking formatting string directive for unsigned curl_off_t... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$curl_format_curl_off_tu\"" >&5 -$as_echo "\"$curl_format_curl_off_tu\"" >&6; } - # - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking constant suffix string for curl_off_t" >&5 -$as_echo_n "checking constant suffix string for curl_off_t... " >&6; } - # - curl_suffix_curl_off_t="unknown" - curl_suffix_curl_off_tu="unknown" - # - case `$as_echo "$curl_typeof_curl_off_t" | $as_tr_sh` in - long_long | __longlong | __longlong_t) - tst_suffixes="LL::" - ;; - long) - tst_suffixes="L::" - ;; - int) - tst_suffixes="::" - ;; - __int64 | int64_t) - tst_suffixes="LL:i64::" - ;; - __int32 | int32_t) - tst_suffixes="L:i32::" - ;; - __int16 | int16_t) - tst_suffixes="L:i16::" - ;; - *) - as_fn_error $? "unexpected data type $curl_typeof_curl_off_t" "$LINENO" 5 - ;; - esac - # - old_IFS=$IFS; IFS=':' - for tmp_ssuf in $tst_suffixes ; do - IFS=$old_IFS - if test "x$curl_suffix_curl_off_t" = "xunknown"; then - case $tmp_ssuf in - i64 | i32 | i16) - tmp_usuf="u$tmp_ssuf" - ;; - LL | L) - tmp_usuf="U$tmp_ssuf" - ;; - *) - tmp_usuf="" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_inttypes - typedef $curl_typeof_curl_off_t new_t; - -int main (void) -{ - - new_t s1; - new_t s2; - s1 = -10$tmp_ssuf ; - s2 = 20$tmp_ssuf ; - if(s1 > s2) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_suffix_curl_off_t="$tmp_ssuf" - curl_suffix_curl_off_tu="$tmp_usuf" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - IFS=$old_IFS - # - if test "x$curl_suffix_curl_off_t" = "xunknown"; then - as_fn_error $? "cannot find constant suffix string for curl_off_t." "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_suffix_curl_off_t" >&5 -$as_echo "$curl_suffix_curl_off_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking constant suffix string for unsigned curl_off_t" >&5 -$as_echo_n "checking constant suffix string for unsigned curl_off_t... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_suffix_curl_off_tu" >&5 -$as_echo "$curl_suffix_curl_off_tu" >&6; } - fi - # - - # - if test "$x_pull_headers" = "yes"; then - if test "x$ac_cv_header_sys_types_h" = "xyes"; then - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_TYPES_H 1 -_EOF - - fi - if test "x$ac_cv_header_stdint_h" = "xyes"; then - -cat >>confdefs.h <<_EOF -#define CURL_PULL_STDINT_H 1 -_EOF - - fi - if test "x$ac_cv_header_inttypes_h" = "xyes"; then - -cat >>confdefs.h <<_EOF -#define CURL_PULL_INTTYPES_H 1 -_EOF - - fi - fi - # - -cat >>confdefs.h <<_EOF -#define CURL_TYPEOF_CURL_OFF_T $curl_typeof_curl_off_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_FORMAT_CURL_OFF_T "$curl_format_curl_off_t" -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_FORMAT_CURL_OFF_TU "$curl_format_curl_off_tu" -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_FORMAT_OFF_T "%$curl_format_curl_off_t" -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SIZEOF_CURL_OFF_T $curl_sizeof_curl_off_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SUFFIX_CURL_OFF_T $curl_suffix_curl_off_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SUFFIX_CURL_OFF_TU $curl_suffix_curl_off_tu -_EOF - - # - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OS is AIX (to define _ALL_SOURCE)" >&5 -$as_echo_n "checking if OS is AIX (to define _ALL_SOURCE)... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _AIX - yes_this_is_aix -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes_this_is_aix" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f conftest* - - - - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is already defined" >&5 -$as_echo_n "checking if _THREAD_SAFE is already defined... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#ifdef _THREAD_SAFE - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tmp_thread_safe_initially_defined="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tmp_thread_safe_initially_defined="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - if test "$tmp_thread_safe_initially_defined" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is actually needed" >&5 -$as_echo_n "checking if _THREAD_SAFE is actually needed... " >&6; } - - case $host_os in - aix[123].* | aix4.[012].*) - tmp_need_thread_safe="no" - ;; - aix*) - tmp_need_thread_safe="yes" - ;; - *) - tmp_need_thread_safe="no" - ;; - esac - - if test "$tmp_need_thread_safe" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is onwards defined" >&5 -$as_echo_n "checking if _THREAD_SAFE is onwards defined... " >&6; } - if test "$tmp_thread_safe_initially_defined" = "yes" || - test "$tmp_need_thread_safe" = "yes"; then - - -$as_echo "#define NEED_THREAD_SAFE 1" >>confdefs.h - -cat >>confdefs.h <<_EOF -#ifndef _THREAD_SAFE -# define _THREAD_SAFE -#endif -_EOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - # - - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is already defined" >&5 -$as_echo_n "checking if _REENTRANT is already defined... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#ifdef _REENTRANT - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tmp_reentrant_initially_defined="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tmp_reentrant_initially_defined="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - if test "$tmp_reentrant_initially_defined" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is actually needed" >&5 -$as_echo_n "checking if _REENTRANT is actually needed... " >&6; } - - case $host_os in - solaris*) - tmp_need_reentrant="yes" - ;; - *) - tmp_need_reentrant="no" - ;; - esac - - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - if(0 != errno) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_errno="yes" - -else - - tmp_errno="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_errno" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - -#ifdef errno - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_errno="errno_macro_defined" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define _REENTRANT -#include - -int main (void) -{ - -#ifdef errno - int dummy=1; -#else - force compilation error -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_errno="errno_macro_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gmtime_r innocuous_gmtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gmtime_r -#ifdef __cplusplus -extern "C" -#endif -char gmtime_r (); -#if defined __stub_gmtime_r || defined __stub___gmtime_r -choke me -#endif - -int main (void) -{ -return gmtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_gmtime_r="yes" - -else - - tmp_gmtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_gmtime_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gmtime_r" >/dev/null 2>&1; then : - - tmp_gmtime_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gmtime_r" >/dev/null 2>&1; then : - - tmp_gmtime_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define localtime_r innocuous_localtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef localtime_r -#ifdef __cplusplus -extern "C" -#endif -char localtime_r (); -#if defined __stub_localtime_r || defined __stub___localtime_r -choke me -#endif - -int main (void) -{ -return localtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_localtime_r="yes" - -else - - tmp_localtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_localtime_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "localtime_r" >/dev/null 2>&1; then : - - tmp_localtime_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "localtime_r" >/dev/null 2>&1; then : - - tmp_localtime_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strerror_r innocuous_strerror_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strerror_r -#ifdef __cplusplus -extern "C" -#endif -char strerror_r (); -#if defined __stub_strerror_r || defined __stub___strerror_r -choke me -#endif - -int main (void) -{ -return strerror_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_strerror_r="yes" - -else - - tmp_strerror_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_strerror_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strerror_r" >/dev/null 2>&1; then : - - tmp_strerror_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strerror_r" >/dev/null 2>&1; then : - - tmp_strerror_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strtok_r innocuous_strtok_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strtok_r -#ifdef __cplusplus -extern "C" -#endif -char strtok_r (); -#if defined __stub_strtok_r || defined __stub___strtok_r -choke me -#endif - -int main (void) -{ -return strtok_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_strtok_r="yes" - -else - - tmp_strtok_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_strtok_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtok_r" >/dev/null 2>&1; then : - - tmp_strtok_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtok_r" >/dev/null 2>&1; then : - - tmp_strtok_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_ntoa_r innocuous_inet_ntoa_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_ntoa_r -#ifdef __cplusplus -extern "C" -#endif -char inet_ntoa_r (); -#if defined __stub_inet_ntoa_r || defined __stub___inet_ntoa_r -choke me -#endif - -int main (void) -{ -return inet_ntoa_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_inet_ntoa_r="yes" - -else - - tmp_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_inet_ntoa_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntoa_r" >/dev/null 2>&1; then : - - tmp_inet_ntoa_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntoa_r" >/dev/null 2>&1; then : - - tmp_inet_ntoa_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyaddr_r innocuous_gethostbyaddr_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyaddr_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyaddr_r (); -#if defined __stub_gethostbyaddr_r || defined __stub___gethostbyaddr_r -choke me -#endif - -int main (void) -{ -return gethostbyaddr_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_gethostbyaddr_r="yes" - -else - - tmp_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_gethostbyaddr_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr_r" >/dev/null 2>&1; then : - - tmp_gethostbyaddr_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr_r" >/dev/null 2>&1; then : - - tmp_gethostbyaddr_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyname_r innocuous_gethostbyname_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyname_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname_r (); -#if defined __stub_gethostbyname_r || defined __stub___gethostbyname_r -choke me -#endif - -int main (void) -{ -return gethostbyname_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_gethostbyname_r="yes" - -else - - tmp_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_gethostbyname_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname_r" >/dev/null 2>&1; then : - - tmp_gethostbyname_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname_r" >/dev/null 2>&1; then : - - tmp_gethostbyname_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getprotobyname_r innocuous_getprotobyname_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getprotobyname_r -#ifdef __cplusplus -extern "C" -#endif -char getprotobyname_r (); -#if defined __stub_getprotobyname_r || defined __stub___getprotobyname_r -choke me -#endif - -int main (void) -{ -return getprotobyname_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_getprotobyname_r="yes" - -else - - tmp_getprotobyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_getprotobyname_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getprotobyname_r" >/dev/null 2>&1; then : - - tmp_getprotobyname_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getprotobyname_r" >/dev/null 2>&1; then : - - tmp_getprotobyname_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - if test "$tmp_need_reentrant" = "no"; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getservbyport_r innocuous_getservbyport_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getservbyport_r -#ifdef __cplusplus -extern "C" -#endif -char getservbyport_r (); -#if defined __stub_getservbyport_r || defined __stub___getservbyport_r -choke me -#endif - -int main (void) -{ -return getservbyport_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_getservbyport_r="yes" - -else - - tmp_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$tmp_getservbyport_r" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getservbyport_r" >/dev/null 2>&1; then : - - tmp_getservbyport_r="proto_declared" - -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#define _REENTRANT -#include -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getservbyport_r" >/dev/null 2>&1; then : - - tmp_getservbyport_r="proto_needs_reentrant" - tmp_need_reentrant="yes" - -fi -rm -f conftest* - - -fi -rm -f conftest* - - fi - - fi - - fi - if test "$tmp_need_reentrant" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is onwards defined" >&5 -$as_echo_n "checking if _REENTRANT is onwards defined... " >&6; } - if test "$tmp_reentrant_initially_defined" = "yes" || - test "$tmp_need_reentrant" = "yes"; then - - -$as_echo "#define NEED_REENTRANT 1" >>confdefs.h - -cat >>confdefs.h <<_EOF -#ifndef _REENTRANT -# define _REENTRANT -#endif -_EOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - # - - -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if test "${ac_cv_sys_largefile_CC+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test "${ac_cv_sys_file_offset_bits+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if test "${ac_cv_sys_large_files+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi -fi - - -enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)" >&5 -$as_echo_n "checking if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)... " >&6; } -case $host in - x86_64*linux*|amd64*freebsd*|ia64*freebsd*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - with_pic=yes - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is icc (to build with PIC)" >&5 -$as_echo_n "checking if compiler is icc (to build with PIC)... " >&6; } -case $CC in - icc | */icc) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - with_pic=yes - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.2.6b' -macro_revision='1.3017' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$ac_tool_prefix"; then - for ac_prog in "dumpbin -symbols" "link -dump -symbols" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in "dumpbin -symbols" "link -dump -symbols" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if test "${lt_cv_nm_interface+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:7909: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:7912: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:7915: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -fi - -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - - - - - - - - - - - - - - - - - - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 9117 "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL64+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - -# Set options - - - - enable_dlopen=no - - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - - - - - - - - - - - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10375: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10379: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - - - - - - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10714: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10718: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10819: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:10823: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10874: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:10878: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu) - link_all_deplibs=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag= - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' - archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - link_all_deplibs=no - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo(void) {} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = x""yes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int main (void) -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int main (void) -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line 13240 "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line 13336 "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need -mimpure-text" >&5 -$as_echo_n "checking if we need -mimpure-text... " >&6; } -mimpure=no -case $host in - *-*-solaris2*) - if test "$GCC" = "yes"; then - mimpure="yes" - fi - ;; - *) - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mimpure" >&5 -$as_echo "$mimpure" >&6; } - - -if test x$mimpure = xyes; then - MIMPURE_TRUE= - MIMPURE_FALSE='#' -else - MIMPURE_TRUE='#' - MIMPURE_FALSE= -fi - - - - -if false; then - STATICLIB_TRUE= - STATICLIB_FALSE='#' -else - STATICLIB_TRUE='#' - STATICLIB_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need BUILDING_LIBCURL" >&5 -$as_echo_n "checking if we need BUILDING_LIBCURL... " >&6; } -case $host in - *-*-mingw*) - -$as_echo "#define BUILDING_LIBCURL 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need CURL_STATICLIB" >&5 -$as_echo_n "checking if we need CURL_STATICLIB... " >&6; } - if test "X$enable_shared" = "Xno" - then - -$as_echo "#define CURL_STATICLIB 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - -if true; then - STATICLIB_TRUE= - STATICLIB_FALSE='#' -else - STATICLIB_TRUE='#' - STATICLIB_FALSE= -fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -esac - -# Determine whether all dependent libraries must be specified when linking -if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno" -then - REQUIRE_LIB_DEPS=no -else - REQUIRE_LIB_DEPS=yes -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if test "${ac_cv_c_inline+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - - - - # - compiler_id="unknown" - compiler_num="0" - # - flags_dbg_all="unknown" - flags_dbg_yes="unknown" - flags_dbg_off="unknown" - flags_opt_all="unknown" - flags_opt_yes="unknown" - flags_opt_off="unknown" - # - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is DEC/Compaq/HP C" >&5 -$as_echo_n "checking if compiler is DEC/Compaq/HP C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __DECC -CURL_DEF_TOKEN __DECC -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__DECC"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___DECC=no - - else - curl_cv_have_def___DECC=yes - curl_cv_def___DECC=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __DECC_VER -CURL_DEF_TOKEN __DECC_VER -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__DECC_VER"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___DECC_VER=no - - else - curl_cv_have_def___DECC_VER=yes - curl_cv_def___DECC_VER=$tmp_exp - - fi - - if test "$curl_cv_have_def___DECC" = "yes" && - test "$curl_cv_have_def___DECC_VER" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="DEC_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g2" - flags_dbg_off="-g0" - flags_opt_all="-O -O0 -O1 -O2 -O3 -O4" - flags_opt_yes="-O1" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is HP-UX C" >&5 -$as_echo_n "checking if compiler is HP-UX C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __HP_cc -CURL_DEF_TOKEN __HP_cc -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__HP_cc"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___HP_cc=no - - else - curl_cv_have_def___HP_cc=yes - curl_cv_def___HP_cc=$tmp_exp - - fi - - if test "$curl_cv_have_def___HP_cc" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="HP_UX_C" - flags_dbg_all="-g -s" - flags_dbg_yes="-g" - flags_dbg_off="-s" - flags_opt_all="-O +O0 +O1 +O2 +O3 +O4" - flags_opt_yes="+O2" - flags_opt_off="+O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is IBM C" >&5 -$as_echo_n "checking if compiler is IBM C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __IBMC__ -CURL_DEF_TOKEN __IBMC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__IBMC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___IBMC__=no - - else - curl_cv_have_def___IBMC__=yes - curl_cv_def___IBMC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___IBMC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="IBM_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5" - flags_opt_all="$flags_opt_all -qnooptimize" - flags_opt_all="$flags_opt_all -qoptimize=0" - flags_opt_all="$flags_opt_all -qoptimize=1" - flags_opt_all="$flags_opt_all -qoptimize=2" - flags_opt_all="$flags_opt_all -qoptimize=3" - flags_opt_all="$flags_opt_all -qoptimize=4" - flags_opt_all="$flags_opt_all -qoptimize=5" - flags_opt_yes="-O2" - flags_opt_off="-qnooptimize" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Intel C" >&5 -$as_echo_n "checking if compiler is Intel C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __INTEL_COMPILER -CURL_DEF_TOKEN __INTEL_COMPILER -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__INTEL_COMPILER"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___INTEL_COMPILER=no - - else - curl_cv_have_def___INTEL_COMPILER=yes - curl_cv_def___INTEL_COMPILER=$tmp_exp - - fi - - if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_num="$curl_cv_def___INTEL_COMPILER" - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __unix__ -CURL_DEF_TOKEN __unix__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = ""; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___unix__=no - - else - curl_cv_have_def___unix__=yes - curl_cv_def___unix__=$tmp_exp - - fi - - if test "$curl_cv_have_def___unix__" = "yes"; then - compiler_id="INTEL_UNIX_C" - flags_dbg_all="-g -g0" - flags_dbg_yes="-g" - flags_dbg_off="-g0" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - compiler_id="INTEL_WINDOWS_C" - flags_dbg_all="/ZI /Zi /zI /zi /ZD /Zd /zD /zd /Z7 /z7 /Oy /Oy-" - flags_dbg_all="$flags_dbg_all /debug" - flags_dbg_all="$flags_dbg_all /debug:none" - flags_dbg_all="$flags_dbg_all /debug:minimal" - flags_dbg_all="$flags_dbg_all /debug:partial" - flags_dbg_all="$flags_dbg_all /debug:full" - flags_dbg_all="$flags_dbg_all /debug:semantic_stepping" - flags_dbg_all="$flags_dbg_all /debug:extended" - flags_dbg_yes="/Zi /Oy-" - flags_dbg_off="/debug:none /Oy-" - flags_opt_all="/O /O0 /O1 /O2 /O3 /Od /Og /Og- /Oi /Oi-" - flags_opt_yes="/O2" - flags_opt_off="/Od" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is clang" >&5 -$as_echo_n "checking if compiler is clang... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __clang__ -CURL_DEF_TOKEN __clang__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__clang__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___clang__=no - - else - curl_cv_have_def___clang__=yes - curl_cv_def___clang__=$tmp_exp - - fi - - if test "$curl_cv_have_def___clang__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="CLANG" - clangver=`$CC -dumpversion` - clangvhi=`echo $clangver | cut -d . -f1` - clangvlo=`echo $clangver | cut -d . -f2` - compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null` - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_all="$flags_dbg_all -ggdb" - flags_dbg_all="$flags_dbg_all -gstabs" - flags_dbg_all="$flags_dbg_all -gstabs+" - flags_dbg_all="$flags_dbg_all -gcoff" - flags_dbg_all="$flags_dbg_all -gxcoff" - flags_dbg_all="$flags_dbg_all -gdwarf-2" - flags_dbg_all="$flags_dbg_all -gvms" - flags_dbg_yes="-g" - flags_dbg_off="-g0" - flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4" - flags_opt_yes="-Os" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is GNU C" >&5 -$as_echo_n "checking if compiler is GNU C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __GNUC__ -CURL_DEF_TOKEN __GNUC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___GNUC__=no - - else - curl_cv_have_def___GNUC__=yes - curl_cv_def___GNUC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___GNUC__" = "yes" && - test "$compiler_id" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="GNU_C" - gccver=`$CC -dumpversion` - gccvhi=`echo $gccver | cut -d . -f1` - gccvlo=`echo $gccver | cut -d . -f2` - compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null` - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_all="$flags_dbg_all -ggdb" - flags_dbg_all="$flags_dbg_all -gstabs" - flags_dbg_all="$flags_dbg_all -gstabs+" - flags_dbg_all="$flags_dbg_all -gcoff" - flags_dbg_all="$flags_dbg_all -gxcoff" - flags_dbg_all="$flags_dbg_all -gdwarf-2" - flags_dbg_all="$flags_dbg_all -gvms" - flags_dbg_yes="-g" - flags_dbg_off="-g0" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is LCC" >&5 -$as_echo_n "checking if compiler is LCC... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __LCC__ -CURL_DEF_TOKEN __LCC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__LCC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___LCC__=no - - else - curl_cv_have_def___LCC__=yes - curl_cv_def___LCC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___LCC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="LCC" - flags_dbg_all="-g" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="" - flags_opt_yes="" - flags_opt_off="" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPSpro C" >&5 -$as_echo_n "checking if compiler is SGI MIPSpro C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __GNUC__ -CURL_DEF_TOKEN __GNUC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___GNUC__=no - - else - curl_cv_have_def___GNUC__=yes - curl_cv_def___GNUC__=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef _COMPILER_VERSION -CURL_DEF_TOKEN _COMPILER_VERSION -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "_COMPILER_VERSION"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def__COMPILER_VERSION=no - - else - curl_cv_have_def__COMPILER_VERSION=yes - curl_cv_def__COMPILER_VERSION=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef _SGI_COMPILER_VERSION -CURL_DEF_TOKEN _SGI_COMPILER_VERSION -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "_SGI_COMPILER_VERSION"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def__SGI_COMPILER_VERSION=no - - else - curl_cv_have_def__SGI_COMPILER_VERSION=yes - curl_cv_def__SGI_COMPILER_VERSION=$tmp_exp - - fi - - if test "$curl_cv_have_def___GNUC__" = "no" && - (test "$curl_cv_have_def__SGI_COMPILER_VERSION" = "yes" || - test "$curl_cv_have_def__COMPILER_VERSION" = "yes"); then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="SGI_MIPSPRO_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g" - flags_dbg_off="-g0" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPS C" >&5 -$as_echo_n "checking if compiler is SGI MIPS C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __GNUC__ -CURL_DEF_TOKEN __GNUC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___GNUC__=no - - else - curl_cv_have_def___GNUC__=yes - curl_cv_def___GNUC__=$tmp_exp - - fi - - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __sgi -CURL_DEF_TOKEN __sgi -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__sgi"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___sgi=no - - else - curl_cv_have_def___sgi=yes - curl_cv_def___sgi=$tmp_exp - - fi - - if test "$curl_cv_have_def___GNUC__" = "no" && - test "$curl_cv_have_def___sgi" = "yes" && - test "$compiler_id" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="SGI_MIPS_C" - flags_dbg_all="-g -g0 -g1 -g2 -g3" - flags_dbg_yes="-g" - flags_dbg_off="-g0" - flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is SunPro C" >&5 -$as_echo_n "checking if compiler is SunPro C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __SUNPRO_C -CURL_DEF_TOKEN __SUNPRO_C -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__SUNPRO_C"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___SUNPRO_C=no - - else - curl_cv_have_def___SUNPRO_C=yes - curl_cv_def___SUNPRO_C=$tmp_exp - - fi - - if test "$curl_cv_have_def___SUNPRO_C" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="SUNPRO_C" - flags_dbg_all="-g -s" - flags_dbg_yes="-g" - flags_dbg_off="-s" - flags_opt_all="-O -xO -xO1 -xO2 -xO3 -xO4 -xO5" - flags_opt_yes="-xO2" - flags_opt_off="" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Tiny C" >&5 -$as_echo_n "checking if compiler is Tiny C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __TINYC__ -CURL_DEF_TOKEN __TINYC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__TINYC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___TINYC__=no - - else - curl_cv_have_def___TINYC__=yes - curl_cv_def___TINYC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___TINYC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - compiler_id="TINY_C" - flags_dbg_all="-g -b" - flags_dbg_yes="-g" - flags_dbg_off="" - flags_opt_all="" - flags_opt_yes="" - flags_opt_off="" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is Watcom C" >&5 -$as_echo_n "checking if compiler is Watcom C... " >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __WATCOMC__ -CURL_DEF_TOKEN __WATCOMC__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__WATCOMC__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___WATCOMC__=no - - else - curl_cv_have_def___WATCOMC__=yes - curl_cv_def___WATCOMC__=$tmp_exp - - fi - - if test "$curl_cv_have_def___WATCOMC__" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -z "$SED"; then - as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 - fi - if test -z "$GREP"; then - as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 - fi - - tmp_exp="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __UNIX__ -CURL_DEF_TOKEN __UNIX__ -#endif - - -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - - tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ - "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ - "$SED" 's/.*CURL_DEF_TOKEN[ ]//' 2>/dev/null | \ - "$SED" 's/["][ ]*["]//g' 2>/dev/null` - if test -z "$tmp_exp" || test "$tmp_exp" = "__UNIX__"; then - tmp_exp="" - fi - -fi -rm -f conftest.err conftest.i conftest.$ac_ext - if test -z "$tmp_exp"; then - curl_cv_have_def___UNIX__=no - - else - curl_cv_have_def___UNIX__=yes - curl_cv_def___UNIX__=$tmp_exp - - fi - - if test "$curl_cv_have_def___UNIX__" = "yes"; then - compiler_id="WATCOM_UNIX_C" - flags_dbg_all="-g1 -g1+ -g2 -g3" - flags_dbg_yes="-g2" - flags_dbg_off="" - flags_opt_all="-O0 -O1 -O2 -O3" - flags_opt_yes="-O2" - flags_opt_off="-O0" - else - compiler_id="WATCOM_WINDOWS_C" - flags_dbg_all="" - flags_dbg_yes="" - flags_dbg_off="" - flags_opt_all="" - flags_opt_yes="" - flags_opt_off="" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - # - if test "$compiler_id" = "unknown"; then - cat <<_EOF 1>&2 -*** -*** Warning: This configure script does not have information about the -*** compiler you are using, relative to the flags required to enable or -*** disable generation of debug info, optimization options or warnings. -*** -*** Whatever settings are present in CFLAGS will be used for this run. -*** -*** If you wish to help the cURL project to better support your compiler -*** you can report this and the required info on the libcurl development -*** mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ -*** -_EOF - fi - - -squeeze() { - _sqz_result="" - eval _sqz_input=\$$1 - for _sqz_token in $_sqz_input; do - if test -z "$_sqz_result"; then - _sqz_result="$_sqz_token" - else - _sqz_result="$_sqz_result $_sqz_token" - fi - done - eval $1=\$_sqz_result - return 0 -} - - - # - if test "$compiler_id" != "unknown"; then - # - if test "$compiler_id" = "GNU_C" || - test "$compiler_id" = "CLANG"; then - - tmp_has_include="no" - tmp_chg_FLAGS="$CFLAGS" - for word1 in $tmp_chg_FLAGS; do - case "$word1" in - -I*) - tmp_has_include="yes" - ;; - esac - done - if test "$tmp_has_include" = "yes"; then - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` - CFLAGS="$tmp_chg_FLAGS" - squeeze CFLAGS - fi - tmp_has_include="no" - tmp_chg_FLAGS="$CPPFLAGS" - for word1 in $tmp_chg_FLAGS; do - case "$word1" in - -I*) - tmp_has_include="yes" - ;; - esac - done - if test "$tmp_has_include" = "yes"; then - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` - tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` - CPPFLAGS="$tmp_chg_FLAGS" - squeeze CPPFLAGS - fi - - fi - # - tmp_save_CPPFLAGS="$CPPFLAGS" - tmp_save_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="" - tmp_CFLAGS="" - # - case "$compiler_id" in - # - CLANG) - # - tmp_CFLAGS="$tmp_CFLAGS -Qunused-arguments" - ;; - # - DEC_C) - # - tmp_CFLAGS="$tmp_CFLAGS -std1" - tmp_CFLAGS="$tmp_CFLAGS -noansi_alias" - tmp_CFLAGS="$tmp_CFLAGS -warnprotos" - tmp_CFLAGS="$tmp_CFLAGS -msg_fatal toofewargs,toomanyargs" - ;; - # - GNU_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - HP_UX_C) - # - tmp_CFLAGS="$tmp_CFLAGS -z" - tmp_CFLAGS="$tmp_CFLAGS +W 4227,4255" - ;; - # - IBM_C) - # - tmp_CFLAGS="$tmp_CFLAGS -qthreaded" - tmp_CFLAGS="$tmp_CFLAGS -qnoansialias" - tmp_CFLAGS="$tmp_CFLAGS -qhalt=e" - ;; - # - INTEL_UNIX_C) - # - tmp_CFLAGS="$tmp_CFLAGS -std=gnu89" - tmp_CPPFLAGS="$tmp_CPPFLAGS -we 140,147,165,266" - tmp_CPPFLAGS="$tmp_CPPFLAGS -wd 279,981,1469" - ;; - # - INTEL_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - LCC) - # - tmp_CFLAGS="$tmp_CFLAGS -n" - ;; - # - SGI_MIPS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - SGI_MIPSPRO_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - SUNPRO_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - TINY_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - WATCOM_UNIX_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - WATCOM_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - esac - # - squeeze tmp_CPPFLAGS - squeeze tmp_CFLAGS - # - if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts some basic options" >&5 -$as_echo_n "checking if compiler accepts some basic options... " >&6; } - CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - fi - # - fi - - - # - if test "$compiler_id" != "unknown"; then - # - tmp_save_CFLAGS="$CFLAGS" - tmp_save_CPPFLAGS="$CPPFLAGS" - # - tmp_options="" - tmp_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="$CPPFLAGS" - - ac_var_stripped="" - for word1 in $tmp_CFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_dbg_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CFLAGS="$ac_var_stripped" - squeeze tmp_CFLAGS - - - ac_var_stripped="" - for word1 in $tmp_CPPFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_dbg_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CPPFLAGS="$ac_var_stripped" - squeeze tmp_CPPFLAGS - - # - if test "$want_debug" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug enabling options" >&5 -$as_echo_n "checking if compiler accepts debug enabling options... " >&6; } - tmp_options="$flags_dbg_yes" - fi - if test "$want_debug" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug disabling options" >&5 -$as_echo_n "checking if compiler accepts debug disabling options... " >&6; } - tmp_options="$flags_dbg_off" - fi - # - CPPFLAGS="$tmp_CPPFLAGS" - CFLAGS="$tmp_CFLAGS $tmp_options" - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5 -$as_echo "$as_me: compiler options added: $tmp_options" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - # - fi - - - # - if test "$compiler_id" != "unknown"; then - # - tmp_save_CFLAGS="$CFLAGS" - tmp_save_CPPFLAGS="$CPPFLAGS" - # - tmp_options="" - tmp_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="$CPPFLAGS" - honor_optimize_option="yes" - # - # - if test "$want_optimize" = "assume_no" || - test "$want_optimize" = "assume_yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler optimizer assumed setting might be used" >&5 -$as_echo_n "checking if compiler optimizer assumed setting might be used... " >&6; } - - - ac_var_match_word="no" - for word1 in $tmp_CFLAGS; do - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_match_word="yes" - fi - done - done - - if test "$ac_var_match_word" = "yes"; then - - honor_optimize_option="no" - - - fi - - - - ac_var_match_word="no" - for word1 in $tmp_CPPFLAGS; do - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_match_word="yes" - fi - done - done - - if test "$ac_var_match_word" = "yes"; then - - honor_optimize_option="no" - - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $honor_optimize_option" >&5 -$as_echo "$honor_optimize_option" >&6; } - if test "$honor_optimize_option" = "yes"; then - if test "$want_optimize" = "assume_yes"; then - want_optimize="yes" - fi - if test "$want_optimize" = "assume_no"; then - want_optimize="no" - fi - fi - fi - # - if test "$honor_optimize_option" = "yes"; then - - ac_var_stripped="" - for word1 in $tmp_CFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CFLAGS="$ac_var_stripped" - squeeze tmp_CFLAGS - - - ac_var_stripped="" - for word1 in $tmp_CPPFLAGS; do - ac_var_strip_word="no" - for word2 in $flags_opt_all; do - if test "$word1" = "$word2"; then - ac_var_strip_word="yes" - fi - done - if test "$ac_var_strip_word" = "no"; then - ac_var_stripped="$ac_var_stripped $word1" - fi - done - tmp_CPPFLAGS="$ac_var_stripped" - squeeze tmp_CPPFLAGS - - if test "$want_optimize" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer enabling options" >&5 -$as_echo_n "checking if compiler accepts optimizer enabling options... " >&6; } - tmp_options="$flags_opt_yes" - fi - if test "$want_optimize" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer disabling options" >&5 -$as_echo_n "checking if compiler accepts optimizer disabling options... " >&6; } - tmp_options="$flags_opt_off" - fi - CPPFLAGS="$tmp_CPPFLAGS" - CFLAGS="$tmp_CFLAGS $tmp_options" - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5 -$as_echo "$as_me: compiler options added: $tmp_options" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - fi - # - fi - - - # - if test "$compiler_id" != "unknown"; then - # - tmp_save_CPPFLAGS="$CPPFLAGS" - tmp_save_CFLAGS="$CFLAGS" - tmp_CPPFLAGS="" - tmp_CFLAGS="" - # - case "$compiler_id" in - # - CLANG) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -pedantic" - tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" - tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" - tmp_CFLAGS="$tmp_CFLAGS -Wshadow" - tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" - tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" - tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" - tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" - tmp_CFLAGS="$tmp_CFLAGS -Wundef" - tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" - tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" - tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" - tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" - tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" - tmp_CFLAGS="$tmp_CFLAGS -Wshorten-64-to-32" - # - if test "$compiler_num" -ge "101"; then - tmp_CFLAGS="$tmp_CFLAGS -Wunused" - fi - fi - ;; - # - DEC_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -msg_enable level3" - fi - ;; - # - GNU_C) - # - if test "$want_warnings" = "yes"; then - # - if test "x$cross_compiling" != "xyes" || - test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -pedantic" - fi - # - tmp_CFLAGS="$tmp_CFLAGS -Wall -W" - # - if test "$compiler_num" -ge "104"; then - tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" - if test "x$cross_compiling" != "xyes" || - test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -Wunused -Wshadow" - fi - fi - # - if test "$compiler_num" -ge "207"; then - tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" - if test "x$cross_compiling" != "xyes" || - test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" - fi - fi - # - if test "$compiler_num" -ge "295"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" - fi - # - if test "$compiler_num" -ge "296"; then - tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" - tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" - tmp_CFLAGS="$tmp_CFLAGS -Wundef" - fi - # - if test "$compiler_num" -ge "297"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" - fi - # - if test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS" - fi - # - if test "$compiler_num" -ge "303"; then - tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" - fi - # - if test "$compiler_num" -ge "304"; then - tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" - fi - # - if test "$compiler_num" -ge "402"; then - tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" - fi - if test "$compiler_num" -ge "403"; then - tmp_CFLAGS="$tmp_CFLAGS -Wtype-limits -Wold-style-declaration" - tmp_CFLAGS="$tmp_CFLAGS -Wmissing-parameter-type -Wempty-body" - tmp_CFLAGS="$tmp_CFLAGS -Wclobbered -Wignored-qualifiers" - tmp_CFLAGS="$tmp_CFLAGS -Wconversion -Wno-sign-conversion -Wvla" - fi - # - fi - # - if test "$compiler_num" -ge "300"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" - else - if test "x$cross_compiling" = "xyes"; then - if test "$compiler_num" -ge "104"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow" - fi - if test "$compiler_num" -ge "207"; then - tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-declarations" - tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes" - fi - fi - fi - ;; - # - HP_UX_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS +w1" - fi - ;; - # - IBM_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - INTEL_UNIX_C) - # - if test "$want_warnings" = "yes"; then - if test "$compiler_num" -gt "600"; then - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wall -w2" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcheck" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcomment" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wdeprecated" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wmissing-prototypes" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wp64" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wpointer-arith" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wreturn-type" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wshadow" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wuninitialized" - tmp_CPPFLAGS="$tmp_CPPFLAGS -Wunused-function" - fi - fi - tmp_CFLAGS="$tmp_CFLAGS -fno-omit-frame-pointer" - tmp_CFLAGS="$tmp_CFLAGS -fno-strict-aliasing" - tmp_CFLAGS="$tmp_CFLAGS -fp-model precise" - if test "$compiler_num" -ge "1000"; then - tmp_CFLAGS="$tmp_CFLAGS -vec-report0" - fi - ;; - # - INTEL_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - LCC) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS" - fi - ;; - # - SGI_MIPS_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -fullwarn" - fi - ;; - # - SGI_MIPSPRO_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -fullwarn" - tmp_CFLAGS="$tmp_CFLAGS -woff 1209" - fi - ;; - # - SUNPRO_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -v" - fi - ;; - # - TINY_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -Wall" - tmp_CFLAGS="$tmp_CFLAGS -Wwrite-strings" - tmp_CFLAGS="$tmp_CFLAGS -Wunsupported" - fi - ;; - # - WATCOM_UNIX_C) - # - if test "$want_warnings" = "yes"; then - tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" - fi - ;; - # - WATCOM_WINDOWS_C) - # - tmp_CFLAGS="$tmp_CFLAGS" - ;; - # - esac - # - squeeze tmp_CPPFLAGS - squeeze tmp_CFLAGS - # - if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler accepts strict warning options" >&5 -$as_echo_n "checking if compiler accepts strict warning options... " >&6; } - CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" - squeeze CPPFLAGS - squeeze CFLAGS - - tmp_compiler_works="unknown" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/cc-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tmp_compiler_works" = "yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - int i = 1; - return i; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - sed 's/^/link-fail: /' conftest.err >&6 - echo " " >&6 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$cross_compiling" != "xyes" && - test "$tmp_compiler_works" = "yes"; then - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -# ifdef __STDC__ -# include -# endif - -int main (void) -{ - - int i = 0; - exit(i); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - tmp_compiler_works="yes" - -else - - tmp_compiler_works="no" - echo " " >&6 - echo "run-fail: test program exited with status $ac_status" >&6 - echo " " >&6 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - if test "$tmp_compiler_works" = "yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;} - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 -$as_echo "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;} - CPPFLAGS="$tmp_save_CPPFLAGS" - CFLAGS="$tmp_save_CFLAGS" - - fi - - fi - # - fi - - -if test "$compiler_id" = "INTEL_UNIX_C"; then - # - if test "$compiler_num" -ge "1000"; then - CFLAGS="$CFLAGS -shared-intel" - elif test "$compiler_num" -ge "900"; then - CFLAGS="$CFLAGS -i-dynamic" - fi - # -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5 -$as_echo_n "checking if compiler halts on compilation errors... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - force compilation error - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "compiler does not halt on compilation errors." "$LINENO" 5 - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler halts on negative sized arrays" >&5 -$as_echo_n "checking if compiler halts on negative sized arrays... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - typedef char bad_t[sizeof(char) == sizeof(int) ? -1 : -1 ]; - -int main (void) -{ - - bad_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "compiler does not halt on negative sized arrays." "$LINENO" 5 - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if shared libraries need -no-undefined" >&5 -$as_echo_n "checking if shared libraries need -no-undefined... " >&6; } - need_no_undefined="no" - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc* | *-*-aix*) - need_no_undefined="yes" - ;; - esac - if test "x$allow_undefined" = "xno"; then - need_no_undefined="yes" - elif test "x$allow_undefined_flag" = "xunsupported"; then - need_no_undefined="yes" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $need_no_undefined" >&5 -$as_echo "$need_no_undefined" >&6; } - - - -if test x$need_no_undefined = xyes; then - NO_UNDEFINED_TRUE= - NO_UNDEFINED_FALSE='#' -else - NO_UNDEFINED_TRUE='#' - NO_UNDEFINED_FALSE= -fi - - - - supports_curldebug="unknown" - if test "$want_curldebug" = "yes"; then - if test "x$enable_shared" != "xno" && - test "x$enable_shared" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_shared setting." >&5 -$as_echo "$as_me: WARNING: unknown enable_shared setting." >&2;} - supports_curldebug="no" - fi - if test "x$enable_static" != "xno" && - test "x$enable_static" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown enable_static setting." >&5 -$as_echo "$as_me: WARNING: unknown enable_static setting." >&2;} - supports_curldebug="no" - fi - if test "$supports_curldebug" != "no"; then - if test "$enable_shared" = "yes" && - test "$need_no_undefined" = "yes"; then - supports_curldebug="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: shared library does not support undefined symbols." >&5 -$as_echo "$as_me: WARNING: shared library does not support undefined symbols." >&2;} - fi - fi - fi - # - if test "$want_curldebug" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if curl debug memory tracking can be enabled" >&5 -$as_echo_n "checking if curl debug memory tracking can be enabled... " >&6; } - test "$supports_curldebug" = "no" || supports_curldebug="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports_curldebug" >&5 -$as_echo "$supports_curldebug" >&6; } - if test "$supports_curldebug" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot enable curl debug memory tracking." >&5 -$as_echo "$as_me: WARNING: cannot enable curl debug memory tracking." >&2;} - want_curldebug="no" - fi - fi - # - if test "$want_curldebug" = "yes"; then - CPPFLAGS="$CPPFLAGS -DCURLDEBUG" - squeeze CPPFLAGS - fi - if test "$want_debug" = "yes"; then - CPPFLAGS="$CPPFLAGS -DDEBUGBUILD" - squeeze CPPFLAGS - fi - - - -if test x$want_curldebug = xyes; then - CURLDEBUG_TRUE= - CURLDEBUG_FALSE='#' -else - CURLDEBUG_TRUE='#' - CURLDEBUG_FALSE= -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 -$as_echo_n "checking for windows.h... " >&6; } -if test "${ac_cv_header_windows_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_windows_h="yes" - -else - - ac_cv_header_windows_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 -$as_echo "$ac_cv_header_windows_h" >&6; } - case "$ac_cv_header_windows_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define WIN32_LEAN_AND_MEAN 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target is a native Windows one" >&5 -$as_echo_n "checking whether build target is a native Windows one... " >&6; } -if test "${ac_cv_native_windows+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - if test "$ac_cv_header_windows_h" = "no"; then - ac_cv_native_windows="no" - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if defined(__MINGW32__) || defined(__MINGW32CE__) || \ - (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64))) - int dummy=1; -#else - Not a native Windows build target. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_native_windows="yes" - -else - - ac_cv_native_windows="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_native_windows" >&5 -$as_echo "$ac_cv_native_windows" >&6; } - case "$ac_cv_native_windows" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NATIVE_WINDOWS 1 -_ACEOF - - ;; - esac - -case X-"$ac_cv_native_windows" in - X-yes) - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5 -$as_echo_n "checking for winsock.h... " >&6; } -if test "${ac_cv_header_winsock_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINSOCK_H shall not be defined. -#else - int dummy=WSACleanup(); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock_h="yes" - -else - - ac_cv_header_winsock_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock_h" >&5 -$as_echo "$ac_cv_header_winsock_h" >&6; } - case "$ac_cv_header_winsock_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 -$as_echo_n "checking for winsock2.h... " >&6; } -if test "${ac_cv_header_winsock2_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock2_h="yes" - -else - - ac_cv_header_winsock2_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 -$as_echo "$ac_cv_header_winsock2_h" >&6; } - case "$ac_cv_header_winsock2_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK2_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5 -$as_echo_n "checking for ws2tcpip.h... " >&6; } -if test "${ac_cv_header_ws2tcpip_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WS2TCPIP_H shall not be defined. -#else - int dummy=2*IP_PKTINFO; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ws2tcpip_h="yes" - -else - - ac_cv_header_ws2tcpip_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ws2tcpip_h" >&5 -$as_echo "$ac_cv_header_ws2tcpip_h" >&6; } - case "$ac_cv_header_ws2tcpip_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WS2TCPIP_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winldap.h" >&5 -$as_echo_n "checking for winldap.h... " >&6; } -if test "${ac_cv_header_winldap_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINLDAP_H shall not be defined. -#else - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - ULONG res = ldap_unbind(ldp); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winldap_h="yes" - -else - - ac_cv_header_winldap_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winldap_h" >&5 -$as_echo "$ac_cv_header_winldap_h" >&6; } - case "$ac_cv_header_winldap_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINLDAP_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winber.h" >&5 -$as_echo_n "checking for winber.h... " >&6; } -if test "${ac_cv_header_winber_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINBER_H shall not be defined. -#else - BERVAL *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winber_h="yes" - -else - - ac_cv_header_winber_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winber_h" >&5 -$as_echo "$ac_cv_header_winber_h" >&6; } - case "$ac_cv_header_winber_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINBER_H 1 -_ACEOF - - ;; - esac - - ;; - *) - ac_cv_header_winsock_h="no" - ac_cv_header_winsock2_h="no" - ac_cv_header_ws2tcpip_h="no" - ac_cv_header_winldap_h="no" - ac_cv_header_winber_h="no" - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build target supports WIN32 file API" >&5 -$as_echo_n "checking whether build target supports WIN32 file API... " >&6; } - curl_win32_file_api="no" - if test "$ac_cv_header_windows_h" = "yes"; then - if test x"$enable_largefile" != "xno"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if !defined(_WIN32_WCE) && \ - (defined(__MINGW32__) || \ - (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64)))) - int dummy=1; -#else - WIN32 large file API not supported. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_win32_file_api="win32_large_files" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$curl_win32_file_api" = "no"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - -#if defined(_WIN32_WCE) || defined(__MINGW32__) || defined(_MSC_VER) - int dummy=1; -#else - WIN32 small file API not supported. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_win32_file_api="win32_small_files" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - fi - case "$curl_win32_file_api" in - win32_large_files) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (large file enabled)" >&5 -$as_echo "yes (large file enabled)" >&6; } - -cat >>confdefs.h <<_ACEOF -#define USE_WIN32_LARGE_FILES 1 -_ACEOF - - ;; - win32_small_files) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (large file disabled)" >&5 -$as_echo "yes (large file disabled)" >&6; } - -cat >>confdefs.h <<_ACEOF -#define USE_WIN32_LARGE_FILES 1 -_ACEOF - - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support http" >&5 -$as_echo_n "checking whether to support http... " >&6; } -# Check whether --enable-http was given. -if test "${enable_http+set}" = set; then : - enableval=$enable_http; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_HTTP 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disable HTTP disables FTP over proxy and RTSP" >&5 -$as_echo "$as_me: WARNING: disable HTTP disables FTP over proxy and RTSP" >&2;} - CURL_DISABLE_HTTP=1 - - -$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h - - CURL_DISABLE_RTSP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ftp" >&5 -$as_echo_n "checking whether to support ftp... " >&6; } -# Check whether --enable-ftp was given. -if test "${enable_ftp+set}" = set; then : - enableval=$enable_ftp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_FTP 1" >>confdefs.h - - CURL_DISABLE_FTP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support file" >&5 -$as_echo_n "checking whether to support file... " >&6; } -# Check whether --enable-file was given. -if test "${enable_file+set}" = set; then : - enableval=$enable_file; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_FILE 1" >>confdefs.h - - CURL_DISABLE_FILE=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ldap" >&5 -$as_echo_n "checking whether to support ldap... " >&6; } -# Check whether --enable-ldap was given. -if test "${enable_ldap+set}" = set; then : - enableval=$enable_ldap; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support ldaps" >&5 -$as_echo_n "checking whether to support ldaps... " >&6; } -# Check whether --enable-ldaps was given. -if test "${enable_ldaps+set}" = set; then : - enableval=$enable_ldaps; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - ;; - *) if test "x$CURL_DISABLE_LDAP" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: LDAP needs to be enabled to support LDAPS" >&5 -$as_echo "LDAP needs to be enabled to support LDAPS" >&6; } - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_LDAP_SSL 1" >>confdefs.h - - HAVE_LDAP_SSL=1 - - fi - ;; - esac -else - - if test "x$CURL_DISABLE_LDAP" = "x1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_LDAP_SSL 1" >>confdefs.h - - HAVE_LDAP_SSL=1 - - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support rtsp" >&5 -$as_echo_n "checking whether to support rtsp... " >&6; } -# Check whether --enable-rtsp was given. -if test "${enable_rtsp+set}" = set; then : - enableval=$enable_rtsp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_RTSP 1" >>confdefs.h - - CURL_DISABLE_RTSP=1 - - ;; - *) if test x$CURL_DISABLE_HTTP = x1 ; then - as_fn_error $? "HTTP support needs to be enabled in order to enable RTSP support!" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_rtsp_msg="enabled" - fi - ;; - esac -else - if test "x$CURL_DISABLE_HTTP" != "x1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_rtsp_msg="enabled" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support proxies" >&5 -$as_echo_n "checking whether to support proxies... " >&6; } -# Check whether --enable-proxy was given. -if test "${enable_proxy+set}" = set; then : - enableval=$enable_proxy; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_PROXY 1" >>confdefs.h - - CURL_DISABLE_PROXY=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support dict" >&5 -$as_echo_n "checking whether to support dict... " >&6; } -# Check whether --enable-dict was given. -if test "${enable_dict+set}" = set; then : - enableval=$enable_dict; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_DICT 1" >>confdefs.h - - CURL_DISABLE_DICT=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support telnet" >&5 -$as_echo_n "checking whether to support telnet... " >&6; } -# Check whether --enable-telnet was given. -if test "${enable_telnet+set}" = set; then : - enableval=$enable_telnet; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_TELNET 1" >>confdefs.h - - CURL_DISABLE_TELNET=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support tftp" >&5 -$as_echo_n "checking whether to support tftp... " >&6; } -# Check whether --enable-tftp was given. -if test "${enable_tftp+set}" = set; then : - enableval=$enable_tftp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_TFTP 1" >>confdefs.h - - CURL_DISABLE_TFTP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support pop3" >&5 -$as_echo_n "checking whether to support pop3... " >&6; } -# Check whether --enable-pop3 was given. -if test "${enable_pop3+set}" = set; then : - enableval=$enable_pop3; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_POP3 1" >>confdefs.h - - CURL_DISABLE_POP3=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support imap" >&5 -$as_echo_n "checking whether to support imap... " >&6; } -# Check whether --enable-imap was given. -if test "${enable_imap+set}" = set; then : - enableval=$enable_imap; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_IMAP 1" >>confdefs.h - - CURL_DISABLE_IMAP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support smtp" >&5 -$as_echo_n "checking whether to support smtp... " >&6; } -# Check whether --enable-smtp was given. -if test "${enable_smtp+set}" = set; then : - enableval=$enable_smtp; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_SMTP 1" >>confdefs.h - - CURL_DISABLE_SMTP=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support gopher" >&5 -$as_echo_n "checking whether to support gopher... " >&6; } -# Check whether --enable-gopher was given. -if test "${enable_gopher+set}" = set; then : - enableval=$enable_gopher; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_GOPHER 1" >>confdefs.h - - CURL_DISABLE_GOPHER=1 - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to provide built-in manual" >&5 -$as_echo_n "checking whether to provide built-in manual... " >&6; } -# Check whether --enable-manual was given. -if test "${enable_manual+set}" = set; then : - enableval=$enable_manual; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - USE_MANUAL="1" - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - USE_MANUAL="1" - -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if X/Open network library is required" >&5 -$as_echo_n "checking if X/Open network library is required... " >&6; } - tst_lib_xnet_required="no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int main (void) -{ -#if defined(__hpux) && defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600) - return 0; -#elif defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) - return 0; -#else - force compilation error -#endif -} - - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_lib_xnet_required="yes" - LIBS="$LIBS -lxnet" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_lib_xnet_required" >&5 -$as_echo "$tst_lib_xnet_required" >&6; } - - -ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_gethostbyname=yes -else - ac_cv_lib_nsl_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnsl" - -fi - - -fi - - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5 -$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_gethostbyname=yes -else - ac_cv_lib_socket_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5 -$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; } -if test "x$ac_cv_lib_socket_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lsocket" - -fi - -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname with both nsl and socket libs" >&5 -$as_echo_n "checking for gethostbyname with both nsl and socket libs... " >&6; } - my_ac_save_LIBS=$LIBS - LIBS="-lnsl -lsocket $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - gethostbyname(); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - LIBS=$my_ac_save_LIBS - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - if test "$ac_cv_header_windows_h" = "yes"; then - if test "$ac_cv_header_winsock_h" = "yes"; then - case $host in - *-*-mingw32ce*) - winsock_LIB="-lwinsock" - ;; - *) - winsock_LIB="-lwsock32" - ;; - esac - fi - if test "$ac_cv_header_winsock2_h" = "yes"; then - winsock_LIB="-lws2_32" - fi - if test ! -z "$winsock_LIB"; then - my_ac_save_LIBS=$LIBS - LIBS="$winsock_LIB $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in $winsock_LIB" >&5 -$as_echo_n "checking for gethostbyname in $winsock_LIB... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif - -int main (void) -{ - - gethostbyname("www.dummysite.com"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - winsock_LIB="" - LIBS=$my_ac_save_LIBS - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - fi -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for Minix 3" >&5 -$as_echo_n "checking for gethostbyname for Minix 3... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -/* Older Minix versions may need here instead */ -#include - -int main (void) -{ - - gethostbyname("www.dummysite.com"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for eCos" >&5 -$as_echo_n "checking for gethostbyname for eCos... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include -#include - -int main (void) -{ - - gethostbyname("www.dummysite.com"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_GETHOSTBYNAME="1" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnetwork" >&5 -$as_echo_n "checking for gethostbyname in -lnetwork... " >&6; } -if test "${ac_cv_lib_network_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnetwork $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_network_gethostbyname=yes -else - ac_cv_lib_network_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_gethostbyname" >&5 -$as_echo "$ac_cv_lib_network_gethostbyname" >&6; } -if test "x$ac_cv_lib_network_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnetwork" - -fi - -fi - -if test "$HAVE_GETHOSTBYNAME" != "1" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnet" >&5 -$as_echo_n "checking for gethostbyname in -lnet... " >&6; } -if test "${ac_cv_lib_net_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnet $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int main (void) -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_net_gethostbyname=yes -else - ac_cv_lib_net_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_net_gethostbyname" >&5 -$as_echo "$ac_cv_lib_net_gethostbyname" >&6; } -if test "x$ac_cv_lib_net_gethostbyname" = x""yes; then : - HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnet" - -fi - -fi - - -if test "$HAVE_GETHOSTBYNAME" != "1"; then - as_fn_error $? "couldn't find libraries for gethostbyname()" "$LINENO" 5 -fi - -ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = x""yes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasecmp in -lresolve" >&5 -$as_echo_n "checking for strcasecmp in -lresolve... " >&6; } -if test "${ac_cv_lib_resolve_strcasecmp+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolve $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char strcasecmp (); -int main (void) -{ -return strcasecmp (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolve_strcasecmp=yes -else - ac_cv_lib_resolve_strcasecmp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolve_strcasecmp" >&5 -$as_echo "$ac_cv_lib_resolve_strcasecmp" >&6; } -if test "x$ac_cv_lib_resolve_strcasecmp" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLVE 1 -_ACEOF - - LIBS="-lresolve $LIBS" - -fi - -fi - - -if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasecmp in -lresolve" >&5 -$as_echo_n "checking for strcasecmp in -lresolve... " >&6; } -if test "${ac_cv_lib_resolve_strcasecmp+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolve -lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char strcasecmp (); -int main (void) -{ -return strcasecmp (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolve_strcasecmp=yes -else - ac_cv_lib_resolve_strcasecmp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolve_strcasecmp" >&5 -$as_echo "$ac_cv_lib_resolve_strcasecmp" >&6; } -if test "x$ac_cv_lib_resolve_strcasecmp" = x""yes; then : - LIBS="-lresolve $LIBS" -fi - -fi -ac_cv_func_strcasecmp="no" - - -curl_includes_winsock2="\ -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# else -# ifdef HAVE_WINSOCK_H -# include -# endif -# endif -#endif -/* includes end */" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 -$as_echo_n "checking for windows.h... " >&6; } -if test "${ac_cv_header_windows_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_windows_h="yes" - -else - - ac_cv_header_windows_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 -$as_echo "$ac_cv_header_windows_h" >&6; } - case "$ac_cv_header_windows_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define WIN32_LEAN_AND_MEAN 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5 -$as_echo_n "checking for winsock.h... " >&6; } -if test "${ac_cv_header_winsock_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINSOCK_H shall not be defined. -#else - int dummy=WSACleanup(); -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock_h="yes" - -else - - ac_cv_header_winsock_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock_h" >&5 -$as_echo "$ac_cv_header_winsock_h" >&6; } - case "$ac_cv_header_winsock_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 -$as_echo_n "checking for winsock2.h... " >&6; } -if test "${ac_cv_header_winsock2_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock2_h="yes" - -else - - ac_cv_header_winsock2_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 -$as_echo "$ac_cv_header_winsock2_h" >&6; } - case "$ac_cv_header_winsock2_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK2_H 1 -_ACEOF - - ;; - esac - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in libraries" >&5 -$as_echo_n "checking for connect in libraries... " >&6; } - tst_connect_save_LIBS="$LIBS" - tst_connect_need_LIBS="unknown" - for tst_lib in '' '-lsocket' ; do - if test "$tst_connect_need_LIBS" = "unknown"; then - LIBS="$tst_lib $tst_connect_save_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - #ifndef HAVE_WINDOWS_H - int connect(int, void*, int); - #endif - -int main (void) -{ - - if(0 != connect(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - tst_connect_need_LIBS="$tst_lib" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - LIBS="$tst_connect_save_LIBS" - # - case X-"$tst_connect_need_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find connect" >&5 -$as_echo "cannot find connect" >&6; } - as_fn_error $? "cannot find connect function in libraries." "$LINENO" 5 - ;; - X-) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_connect_need_LIBS" >&5 -$as_echo "$tst_connect_need_LIBS" >&6; } - LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS" - ;; - esac - - -CURL_NETWORK_LIBS=$LIBS - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int main (void) -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - for ac_header in sys/types.h sys/time.h time.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for monotonic clock_gettime" >&5 -$as_echo_n "checking for monotonic clock_gettime... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - -int main (void) -{ - - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ac_cv_func_clock_gettime="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_clock_gettime="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - # - if test "$ac_cv_func_clock_gettime" = "yes"; then - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in libraries" >&5 -$as_echo_n "checking for clock_gettime in libraries... " >&6; } - # - curl_cv_save_LIBS="$LIBS" - curl_cv_gclk_LIBS="unknown" - # - for x_xlibs in '' '-lrt' '-lposix4' ; do - if test "$curl_cv_gclk_LIBS" = "unknown"; then - if test -z "$x_xlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_xlibs $curl_cv_save_LIBS" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - -int main (void) -{ - - struct timespec ts; - (void)clock_gettime(CLOCK_MONOTONIC, &ts); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - curl_cv_gclk_LIBS="$x_xlibs" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_gclk_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find clock_gettime" >&5 -$as_echo "cannot find clock_gettime" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;} - ac_cv_func_clock_gettime="no" - ;; - X-) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5 -$as_echo "no additional lib required" >&6; } - ac_cv_func_clock_gettime="yes" - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_gclk_LIBS" - else - LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" - fi - CURL_LIBS="$CURL_LIBS $curl_cv_gclk_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_gclk_LIBS" >&5 -$as_echo "$curl_cv_gclk_LIBS" >&6; } - ac_cv_func_clock_gettime="yes" - ;; - esac - # - if test "x$cross_compiling" != "xyes" && - test "$ac_cv_func_clock_gettime" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if monotonic clock_gettime works" >&5 -$as_echo_n "checking if monotonic clock_gettime works... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif - -int main (void) -{ - - struct timespec ts; - if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) - exit(0); - else - exit(1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;} - ac_cv_func_clock_gettime="no" - LIBS="$curl_cv_save_LIBS" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - case "$ac_cv_func_clock_gettime" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME_MONOTONIC 1 -_ACEOF - - ;; - esac - # - fi - # - - -TEST_SERVER_LIBS=$LIBS - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use libgcc" >&5 -$as_echo_n "checking whether to use libgcc... " >&6; } -# Check whether --enable-libgcc was given. -if test "${enable_libgcc+set}" = set; then : - enableval=$enable_libgcc; case "$enableval" in - yes) - ALL_LIBS="$ALL_LIBS -lgcc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -LDAPLIBNAME="" - -# Check whether --with-ldap-lib was given. -if test "${with_ldap_lib+set}" = set; then : - withval=$with_ldap_lib; LDAPLIBNAME="$withval" -fi - - -LBERLIBNAME="" - -# Check whether --with-lber-lib was given. -if test "${with_lber_lib+set}" = set; then : - withval=$with_lber_lib; LBERLIBNAME="$withval" -fi - - -if test x$CURL_DISABLE_LDAP != x1 ; then - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lber.h" >&5 -$as_echo_n "checking for lber.h... " >&6; } -if test "${ac_cv_header_lber_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#include - -int main (void) -{ - - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_lber_h="yes" - -else - - ac_cv_header_lber_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_lber_h" >&5 -$as_echo "$ac_cv_header_lber_h" >&6; } - if test "$ac_cv_header_lber_h" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_LBER_H 1 -_ACEOF - - # - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#include - -int main (void) -{ - - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - ber_free(bep, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_need_header_lber_h="no" - -else - - curl_cv_need_header_lber_h="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - case "$curl_cv_need_header_lber_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NEED_LBER_H 1 -_ACEOF - - ;; - esac - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap.h" >&5 -$as_echo_n "checking for ldap.h... " >&6; } -if test "${ac_cv_header_ldap_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#include - -int main (void) -{ - - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - int res = ldap_unbind(ldp); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ldap_h="yes" - -else - - ac_cv_header_ldap_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ldap_h" >&5 -$as_echo "$ac_cv_header_ldap_h" >&6; } - case "$ac_cv_header_ldap_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_LDAP_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldapssl.h" >&5 -$as_echo_n "checking for ldapssl.h... " >&6; } -if test "${ac_cv_header_ldapssl_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif -#include - -int main (void) -{ - - char *cert_label = NULL; - LDAP *ldp = ldap_ssl_init("dummy", LDAPS_PORT, cert_label); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ldapssl_h="yes" - -else - - ac_cv_header_ldapssl_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ldapssl_h" >&5 -$as_echo "$ac_cv_header_ldapssl_h" >&6; } - case "$ac_cv_header_ldapssl_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_LDAPSSL_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_ssl.h" >&5 -$as_echo_n "checking for ldap_ssl.h... " >&6; } -if test "${ac_cv_header_ldap_ssl_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif -#include - -int main (void) -{ - - LDAP *ldp = ldapssl_init("dummy", LDAPS_PORT, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ldap_ssl_h="yes" - -else - - ac_cv_header_ldap_ssl_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ldap_ssl_h" >&5 -$as_echo "$ac_cv_header_ldap_ssl_h" >&6; } - case "$ac_cv_header_ldap_ssl_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_LDAP_SSL_H 1 -_ACEOF - - ;; - esac - - - if test -z "$LDAPLIBNAME" ; then - if test "$ac_cv_native_windows" = "yes"; then - LDAPLIBNAME="wldap32" - LBERLIBNAME="no" - fi - fi - - if test "$LDAPLIBNAME" ; then - as_ac_Lib=`$as_echo "ac_cv_lib_"$LDAPLIBNAME"''_ldap_init" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_init in -l\"$LDAPLIBNAME\"" >&5 -$as_echo_n "checking for ldap_init in -l\"$LDAPLIBNAME\"... " >&6; } -if eval "test \"\${$as_ac_Lib+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l"$LDAPLIBNAME" $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ldap_init (); -int main (void) -{ -return ldap_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_LIB"$LDAPLIBNAME"" | $as_tr_cpp` 1 -_ACEOF - - LIBS="-l"$LDAPLIBNAME" $LIBS" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&5 -$as_echo "$as_me: WARNING: \"$LDAPLIBNAME\" is not an LDAP library: LDAP disabled" >&2;} - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - -fi - - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - else - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP libraries" >&5 -$as_echo_n "checking for LDAP libraries... " >&6; } - # - u_libs="" - # - - # - curl_cv_save_LIBS="$LIBS" - curl_cv_ldap_LIBS="unknown" - # - for x_nlibs in '' "$u_libs" \ - '-lldap' \ - '-llber -lldap' \ - '-lldap -llber' \ - '-lldapssl -lldapx -lldapsdk' \ - '-lldapsdk -lldapx -lldapssl' ; do - if test "$curl_cv_ldap_LIBS" = "unknown"; then - if test -z "$x_nlibs"; then - LIBS="$curl_cv_save_LIBS" - else - LIBS="$x_nlibs $curl_cv_save_LIBS" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#endif -#ifndef NULL -#define NULL (void *)0 -#endif -#ifndef LDAP_DEPRECATED -#define LDAP_DEPRECATED 1 -#endif -#ifdef NEED_LBER_H -#include -#endif -#ifdef HAVE_LDAP_H -#include -#endif - -int main (void) -{ - - BerValue *bvp = NULL; - BerElement *bep = ber_init(bvp); - LDAP *ldp = ldap_init("dummy", LDAP_PORT); - int res = ldap_unbind(ldp); - ber_free(bep, 1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - curl_cv_ldap_LIBS="$x_nlibs" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - # - LIBS="$curl_cv_save_LIBS" - # - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot find LDAP libraries" >&5 -$as_echo "cannot find LDAP libraries" >&6; } - ;; - X-) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5 -$as_echo "no additional lib required" >&6; } - ;; - *) - if test -z "$curl_cv_save_LIBS"; then - LIBS="$curl_cv_ldap_LIBS" - else - LIBS="$curl_cv_ldap_LIBS $curl_cv_save_LIBS" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_ldap_LIBS" >&5 -$as_echo "$curl_cv_ldap_LIBS" >&6; } - ;; - esac - # - - case X-"$curl_cv_ldap_LIBS" in - X-unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&5 -$as_echo "$as_me: WARNING: Cannot find libraries for LDAP support: LDAP disabled" >&2;} - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - ;; - esac - fi -fi - -if test x$CURL_DISABLE_LDAP != x1 ; then - - if test "$LBERLIBNAME" ; then - if test "$LBERLIBNAME" != "no" ; then - as_ac_Lib=`$as_echo "ac_cv_lib_"$LBERLIBNAME"''_ber_free" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ber_free in -l\"$LBERLIBNAME\"" >&5 -$as_echo_n "checking for ber_free in -l\"$LBERLIBNAME\"... " >&6; } -if eval "test \"\${$as_ac_Lib+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l"$LBERLIBNAME" $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ber_free (); -int main (void) -{ -return ber_free (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_LIB"$LBERLIBNAME"" | $as_tr_cpp` 1 -_ACEOF - - LIBS="-l"$LBERLIBNAME" $LIBS" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&5 -$as_echo "$as_me: WARNING: \"$LBERLIBNAME\" is not an LBER library: LDAP disabled" >&2;} - -$as_echo "#define CURL_DISABLE_LDAP 1" >>confdefs.h - - CURL_DISABLE_LDAP=1 - -fi - - -$as_echo "#define CURL_DISABLE_LDAPS 1" >>confdefs.h - - CURL_DISABLE_LDAPS=1 - - fi - fi -fi - -if test x$CURL_DISABLE_LDAP != x1 ; then - for ac_func in ldap_url_parse ldap_init_fd -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - if test "$LDAPLIBNAME" = "wldap32"; then - curl_ldap_msg="enabled (winldap)" - -$as_echo "#define CURL_LDAP_WIN 1" >>confdefs.h - - else - curl_ldap_msg="enabled (OpenLDAP)" - if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then - -$as_echo "#define USE_OPENLDAP 1" >>confdefs.h - - USE_OPENLDAP=1 - - fi - fi -fi - -if test x$CURL_DISABLE_LDAPS != x1 ; then - curl_ldaps_msg="enabled" -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ipv6" >&5 -$as_echo_n "checking whether to enable ipv6... " >&6; } -# Check whether --enable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then : - enableval=$enable_ipv6; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ipv6=yes - ;; - esac -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - /* is AF_INET6 available? */ -#include -#include -main() -{ - if (socket(AF_INET6, SOCK_STREAM, 0) < 0) - exit(1); - else - exit(0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ipv6=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ipv6=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - -if test "$ipv6" = "yes"; then - curl_ipv6_msg="enabled" -fi - -# Check if struct sockaddr_in6 have sin6_scope_id member -if test "$ipv6" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5 -$as_echo_n "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main (void) -{ -struct sockaddr_in6 s; s.sin6_scope_id = 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - have_sin6_scope_id=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$have_sin6_scope_id" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if argv can be written to" >&5 -$as_echo_n "checking if argv can be written to... " >&6; } -if test "$cross_compiling" = yes; then : - - curl_cv_writable_argv=cross - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int main(int argc, char ** argv) { - argv[0][0] = ' '; - return (argv[0][0] == ' ')?0:1; -} - - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - curl_cv_writable_argv=yes - -else - - curl_cv_writable_argv=no - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -case $curl_cv_writable_argv in -yes) - -$as_echo "#define HAVE_WRITABLE_ARGV 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; -no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the previous check could not be made default was used" >&5 -$as_echo "$as_me: WARNING: the previous check could not be made default was used" >&2;} - ;; -esac - - - -# Check whether --with-krb4-includes was given. -if test "${with_krb4_includes+set}" = set; then : - withval=$with_krb4_includes; - CPPFLAGS="$CPPFLAGS -I$withval" - KRB4INC="$withval" - want_krb4=yes - -fi - - - -# Check whether --with-krb4-libs was given. -if test "${with_krb4_libs+set}" = set; then : - withval=$with_krb4_libs; - LDFLAGS="$LDFLAGS -L$withval" - KRB4LIB="$withval" - want_krb4=yes - -fi - - - -OPT_KRB4=off - -# Check whether --with-krb4 was given. -if test "${with_krb4+set}" = set; then : - withval=$with_krb4; - OPT_KRB4="$withval" - if test X"$OPT_KRB4" != Xno; then - want_krb4="yes" - if test X"$OPT_KRB4" != Xyes; then - LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff" - KRB4LIB="$OPT_KRB4/lib$libsuff" - CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include" - KRB4INC="$OPT_KRB4/include" - fi - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Kerberos4 support is requested" >&5 -$as_echo_n "checking if Kerberos4 support is requested... " >&6; } - -if test "$want_krb4" = yes -then - if test "$ipv6" = "yes"; then - echo krb4 is not compatible with IPv6 - exit 1 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to look for Kerberos4" >&5 -$as_echo_n "checking where to look for Kerberos4... " >&6; } - if test X"$OPT_KRB4" = Xyes - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaults" >&5 -$as_echo "defaults" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: libs in $KRB4LIB, headers in $KRB4INC" >&5 -$as_echo "libs in $KRB4LIB, headers in $KRB4INC" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_pcbc_encrypt in -ldes" >&5 -$as_echo_n "checking for des_pcbc_encrypt in -ldes... " >&6; } -if test "${ac_cv_lib_des_des_pcbc_encrypt+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldes $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char des_pcbc_encrypt (); -int main (void) -{ -return des_pcbc_encrypt (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_des_des_pcbc_encrypt=yes -else - ac_cv_lib_des_des_pcbc_encrypt=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_pcbc_encrypt" >&5 -$as_echo "$ac_cv_lib_des_des_pcbc_encrypt" >&6; } -if test "x$ac_cv_lib_des_des_pcbc_encrypt" = x""yes; then : - - for ac_header in des.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "des.h" "ac_cv_header_des_h" "$ac_includes_default" -if test "x$ac_cv_header_des_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DES_H 1 -_ACEOF - -fi - -done - - - ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" -if test "x$ac_cv_func_res_search" = x""yes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 -$as_echo_n "checking for res_search in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_res_search+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char res_search (); -int main (void) -{ -return res_search (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolv_res_search=yes -else - ac_cv_lib_resolv_res_search=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5 -$as_echo "$ac_cv_lib_resolv_res_search" >&6; } -if test "x$ac_cv_lib_resolv_res_search" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 -_ACEOF - - LIBS="-lresolv $LIBS" - -fi - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_net_read in -lkrb" >&5 -$as_echo_n "checking for krb_net_read in -lkrb... " >&6; } -if test "${ac_cv_lib_krb_krb_net_read+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lkrb $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char krb_net_read (); -int main (void) -{ -return krb_net_read (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_krb_krb_net_read=yes -else - ac_cv_lib_krb_krb_net_read=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb_krb_net_read" >&5 -$as_echo "$ac_cv_lib_krb_krb_net_read" >&6; } -if test "x$ac_cv_lib_krb_krb_net_read" = x""yes; then : - - for ac_header in krb.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "krb.h" "ac_cv_header_krb_h" "$ac_includes_default" -if test "x$ac_cv_header_krb_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_KRB_H 1 -_ACEOF - -fi - -done - - - LIBS="-lkrb -lcom_err -ldes $LIBS" - - for ac_func in krb_get_our_ip_for_realm -do : - ac_fn_c_check_func "$LINENO" "krb_get_our_ip_for_realm" "ac_cv_func_krb_get_our_ip_for_realm" -if test "x$ac_cv_func_krb_get_our_ip_for_realm" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_KRB_GET_OUR_IP_FOR_REALM 1 -_ACEOF - -fi -done - - - -$as_echo "#define HAVE_KRB4 1" >>confdefs.h - - - KRB4_ENABLED=1 - - - curl_krb4_msg="enabled" - - for ac_func in strlcpy -do : - ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy" -if test "x$ac_cv_func_strlcpy" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STRLCPY 1 -_ACEOF - -fi -done - - - -fi - - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -# Check whether --with-spnego was given. -if test "${with_spnego+set}" = set; then : - withval=$with_spnego; - SPNEGO_ROOT="$withval" - if test x"$SPNEGO_ROOT" != xno; then - want_spnego="yes" - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if SPNEGO support is requested" >&5 -$as_echo_n "checking if SPNEGO support is requested... " >&6; } -if test x"$want_spnego" = xyes; then - - if test X"$SPNEGO_ROOT" = Xyes; then - as_fn_error $? "FBOpenSSL libs and/or directories were not found where specified!" "$LINENO" 5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - if test -z "$SPNEGO_LIB_DIR"; then - LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl" - else - LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_SPNEGO 1" >>confdefs.h - - curl_spnego_msg="enabled" - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -GSSAPI_ROOT="/usr" - -# Check whether --with-gssapi-includes was given. -if test "${with_gssapi_includes+set}" = set; then : - withval=$with_gssapi_includes; GSSAPI_INCS="-I$withval" - want_gss="yes" - -fi - - - -# Check whether --with-gssapi-libs was given. -if test "${with_gssapi_libs+set}" = set; then : - withval=$with_gssapi_libs; GSSAPI_LIB_DIR="-L$withval" - want_gss="yes" - -fi - - - -# Check whether --with-gssapi was given. -if test "${with_gssapi+set}" = set; then : - withval=$with_gssapi; - GSSAPI_ROOT="$withval" - if test x"$GSSAPI_ROOT" != xno; then - want_gss="yes" - if test x"$GSSAPI_ROOT" = xyes; then - GSSAPI_ROOT="/usr" - fi - fi - -fi - - -save_CPPFLAGS="$CPPFLAGS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GSSAPI support is requested" >&5 -$as_echo_n "checking if GSSAPI support is requested... " >&6; } -if test x"$want_gss" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -z "$GSSAPI_INCS"; then - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then - GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` - elif test "$GSSAPI_ROOT" != "yes"; then - GSSAPI_INCS="-I$GSSAPI_ROOT/include" - fi - fi - - CPPFLAGS="$CPPFLAGS $GSSAPI_INCS" - - ac_fn_c_check_header_mongrel "$LINENO" "gss.h" "ac_cv_header_gss_h" "$ac_includes_default" -if test "x$ac_cv_header_gss_h" = x""yes; then : - - -$as_echo "#define HAVE_GSSGNU 1" >>confdefs.h - - gnu_gss=yes - -else - - for ac_header in gssapi/gssapi.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_gssapi_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GSSAPI_GSSAPI_H 1 -_ACEOF - -else - not_mit=1 -fi - -done - - for ac_header in gssapi/gssapi_generic.h gssapi/gssapi_krb5.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " -$ac_includes_default -#ifdef HAVE_GSSAPI_GSSAPI_H -#include -#endif - -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -else - not_mit=1 -fi - -done - - if test "x$not_mit" = "x1"; then - ac_fn_c_check_header_mongrel "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" -if test "x$ac_cv_header_gssapi_h" = x""yes; then : - - -$as_echo "#define HAVE_GSSHEIMDAL 1" >>confdefs.h - - -else - - want_gss=no - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling GSSAPI since no header files was found" >&5 -$as_echo "$as_me: WARNING: disabling GSSAPI since no header files was found" >&2;} - - -fi - - - else - -$as_echo "#define HAVE_GSSMIT 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE" >&5 -$as_echo_n "checking if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include -#include -#include - -int main (void) -{ - - gss_import_name( - (OM_uint32 *)0, - (gss_buffer_t)0, - GSS_C_NT_HOSTBASED_SERVICE, - (gss_name_t *)0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define HAVE_OLD_GSSMIT 1" >>confdefs.h - - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - -fi - - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -if test x"$want_gss" = xyes; then - -$as_echo "#define HAVE_GSSAPI 1" >>confdefs.h - - - curl_gss_msg="enabled (MIT/Heimdal)" - - if test -n "$gnu_gss"; then - curl_gss_msg="enabled (GNU GSS)" - LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgss" - elif test -z "$GSSAPI_LIB_DIR"; then - case $host in - *-*-darwin*) - LIBS="$LIBS -lgssapi_krb5 -lresolv" - ;; - *) - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then - gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi` - LIBS="$LIBS $gss_libs" - elif test "$GSSAPI_ROOT" != "yes"; then - LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" - LIBS="$LIBS -lgssapi" - else - LIBS="$LIBS -lgssapi" - fi - ;; - esac - else - LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgssapi" - fi -else - CPPFLAGS="$save_CPPFLAGS" -fi - - -OPT_SSL=off -ca="no" - -# Check whether --with-ssl was given. -if test "${with_ssl+set}" = set; then : - withval=$with_ssl; OPT_SSL=$withval -fi - - -if test X"$OPT_SSL" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_SSL" in - yes) - if test x$cross_compiling != xyes; then - PKGTEST="yes" - fi - PREFIX_OPENSSL=/usr/local/ssl - LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" - ;; - off) - if test x$cross_compiling != xyes; then - PKGTEST="yes" - fi - PREFIX_OPENSSL= - ;; - *) - PKGTEST="no" - PREFIX_OPENSSL=$OPT_SSL - - OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig" - { $as_echo "$as_me:${as_lineno-$LINENO}: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&5 -$as_echo "$as_me: PKG_CONFIG_LIBDIR will be set to \"$OPENSSL_PCDIR\"" >&6;} - if test -e "$OPENSSL_PCDIR/openssl.pc"; then - PKGTEST="yes" - fi - - LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff" - if test "$PREFIX_OPENSSL" != "/usr" ; then - SSL_LDFLAGS="-L$LIB_OPENSSL" - SSL_CPPFLAGS="-I$PREFIX_OPENSSL/include" - fi - SSL_CPPFLAGS="$SSL_CPPFLAGS -I$PREFIX_OPENSSL/include/openssl" - ;; - esac - - if test "$PKGTEST" = "yes"; then - - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl options with pkg-config" >&5 -$as_echo_n "checking for openssl options with pkg-config... " >&6; } - itexists=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists openssl >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - SSL_LIBS=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-l openssl 2>/dev/null` - - SSL_LDFLAGS=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --libs-only-L openssl 2>/dev/null` - - SSL_CPPFLAGS=` - if test -n "$OPENSSL_PCDIR"; then - PKG_CONFIG_LIBDIR="$OPENSSL_PCDIR" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --cflags-only-I openssl 2>/dev/null` - - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&5 -$as_echo "$as_me: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&5 -$as_echo "$as_me: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&5 -$as_echo "$as_me: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&6;} - - LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'` - - LIBS="$LIBS $SSL_LIBS" - fi - fi - - CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" - LDFLAGS="$LDFLAGS $SSL_LDFLAGS" - - case $host in - *-*-msys* | *-*-mingw*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdi32" >&5 -$as_echo_n "checking for gdi32... " >&6; } - my_ac_save_LIBS=$LIBS - LIBS="-lgdi32 $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int main (void) -{ -GdiFlush(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - LIBS=$my_ac_save_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_lock in -lcrypto" >&5 -$as_echo_n "checking for CRYPTO_lock in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_CRYPTO_lock+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char CRYPTO_lock (); -int main (void) -{ -return CRYPTO_lock (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_CRYPTO_lock=yes -else - ac_cv_lib_crypto_CRYPTO_lock=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_lock" >&5 -$as_echo "$ac_cv_lib_crypto_CRYPTO_lock" >&6; } -if test "x$ac_cv_lib_crypto_CRYPTO_lock" = x""yes; then : - - HAVECRYPTO="yes" - LIBS="-lcrypto $LIBS" - -else - - LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL" - CPPFLAGS="$CLEANCPPFLAGS -I$PREFIX_OPENSSL/include/openssl -I$PREFIX_OPENSSL/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_add_lock in -lcrypto" >&5 -$as_echo_n "checking for CRYPTO_add_lock in -lcrypto... " >&6; } -if test "${ac_cv_lib_crypto_CRYPTO_add_lock+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char CRYPTO_add_lock (); -int main (void) -{ -return CRYPTO_add_lock (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_CRYPTO_add_lock=yes -else - ac_cv_lib_crypto_CRYPTO_add_lock=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_add_lock" >&5 -$as_echo "$ac_cv_lib_crypto_CRYPTO_add_lock" >&6; } -if test "x$ac_cv_lib_crypto_CRYPTO_add_lock" = x""yes; then : - - HAVECRYPTO="yes" - LIBS="-lcrypto $LIBS" -else - - LDFLAGS="$CLEANLDFLAGS" - CPPFLAGS="$CLEANCPPFLAGS" - LIBS="$CLEANLIBS" - -fi - - -fi - - - - if test X"$HAVECRYPTO" = X"yes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5 -$as_echo_n "checking for SSL_connect in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_connect+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char SSL_connect (); -int main (void) -{ -return SSL_connect (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssl_SSL_connect=yes -else - ac_cv_lib_ssl_SSL_connect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5 -$as_echo "$ac_cv_lib_ssl_SSL_connect" >&6; } -if test "x$ac_cv_lib_ssl_SSL_connect" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSL 1 -_ACEOF - - LIBS="-lssl $LIBS" - -fi - - - if test "$ac_cv_lib_ssl_SSL_connect" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssl with RSAglue/rsaref libs in use" >&5 -$as_echo_n "checking for ssl with RSAglue/rsaref libs in use... " >&6; }; - OLIBS=$LIBS - LIBS="$LIBS -lRSAglue -lrsaref" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_connect in -lssl" >&5 -$as_echo_n "checking for SSL_connect in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_connect+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char SSL_connect (); -int main (void) -{ -return SSL_connect (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssl_SSL_connect=yes -else - ac_cv_lib_ssl_SSL_connect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_connect" >&5 -$as_echo "$ac_cv_lib_ssl_SSL_connect" >&6; } -if test "x$ac_cv_lib_ssl_SSL_connect" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSL 1 -_ACEOF - - LIBS="-lssl $LIBS" - -fi - - if test "$ac_cv_lib_ssl_SSL_connect" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - LIBS=$OLIBS - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - else - - for ac_header in openssl/x509.h openssl/rsa.h openssl/crypto.h \ - openssl/pem.h openssl/ssl.h openssl/err.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - curl_ssl_msg="enabled (OpenSSL)" - OPENSSL_ENABLED=1 - -$as_echo "#define USE_OPENSSL 1" >>confdefs.h - -fi - -done - - - if test $ac_cv_header_openssl_x509_h = no; then - for ac_header in x509.h rsa.h crypto.h pem.h ssl.h err.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - if test $ac_cv_header_x509_h = yes && - test $ac_cv_header_crypto_h = yes && - test $ac_cv_header_ssl_h = yes; then - curl_ssl_msg="enabled (OpenSSL)" - OPENSSL_ENABLED=1 - fi - fi - fi - - if test X"$OPENSSL_ENABLED" = X"1"; then - -$as_echo "#define USE_SSLEAY 1" >>confdefs.h - - - for ac_header in openssl/pkcs12.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "openssl/pkcs12.h" "ac_cv_header_openssl_pkcs12_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_pkcs12_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENSSL_PKCS12_H 1 -_ACEOF - -fi - -done - - else - LIBS="$CLEANLIBS" - fi - USE_SSLEAY="$OPENSSL_ENABLED" - - - if test X"$OPT_SSL" != Xoff && - test "$OPENSSL_ENABLED" != "1"; then - as_fn_error $? "OpenSSL libs and/or directories were not found where specified!" "$LINENO" 5 - fi - fi - - if test X"$OPENSSL_ENABLED" = X"1"; then - ac_fn_c_check_func "$LINENO" "ENGINE_init" "ac_cv_func_ENGINE_init" -if test "x$ac_cv_func_ENGINE_init" = x""yes; then : - - for ac_header in openssl/engine.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "openssl/engine.h" "ac_cv_header_openssl_engine_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_engine_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENSSL_ENGINE_H 1 -_ACEOF - -fi - -done - - for ac_func in ENGINE_load_builtin_engines -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -fi - - - - for ac_func in RAND_status \ - RAND_screen \ - RAND_egd \ - ENGINE_cleanup \ - CRYPTO_cleanup_all_ex_data \ - SSL_get_shutdown -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yaSSL using OpenSSL compatibility mode" >&5 -$as_echo_n "checking for yaSSL using OpenSSL compatibility mode... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - -#if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER) - int dummy = SSL_ERROR_NONE; -#else - Not the yaSSL OpenSSL compatibility header. -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define USE_YASSLEMUL 1 -_ACEOF - - curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - if test "$OPENSSL_ENABLED" = "1"; then - if test -n "$LIB_OPENSSL"; then - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $LIB_OPENSSL to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $LIB_OPENSSL to LD_LIBRARY_PATH" >&6;} - fi - fi - -fi - - - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS - -# Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : - withval=$with_zlib; OPT_ZLIB="$withval" -fi - - -if test "$OPT_ZLIB" = "no" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5 -$as_echo "$as_me: WARNING: zlib disabled" >&2;} -else - if test "$OPT_ZLIB" = "yes" ; then - OPT_ZLIB="" - fi - - if test -z "$OPT_ZLIB" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateEnd in -lz" >&5 -$as_echo_n "checking for inflateEnd in -lz... " >&6; } -if test "${ac_cv_lib_z_inflateEnd+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char inflateEnd (); -int main (void) -{ -return inflateEnd (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_inflateEnd=yes -else - ac_cv_lib_z_inflateEnd=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateEnd" >&5 -$as_echo "$ac_cv_lib_z_inflateEnd" >&6; } -if test "x$ac_cv_lib_z_inflateEnd" = x""yes; then : - HAVE_LIBZ="1" -else - OPT_ZLIB="/usr/local" -fi - - - fi - - if test -n "$OPT_ZLIB"; then - CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include" - LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff" - fi - - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : - - HAVE_ZLIB_H="1" - if test "$HAVE_LIBZ" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 -$as_echo_n "checking for gzread in -lz... " >&6; } -if test "${ac_cv_lib_z_gzread+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gzread (); -int main (void) -{ -return gzread (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_gzread=yes -else - ac_cv_lib_z_gzread=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 -$as_echo "$ac_cv_lib_z_gzread" >&6; } -if test "x$ac_cv_lib_z_gzread" = x""yes; then : - - HAVE_LIBZ="1" - -else - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags -fi - - fi - -else - - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - -fi - - - - if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz lib, not the header file!" >&5 -$as_echo "$as_me: WARNING: configure found only the libz lib, not the header file!" >&2;} - HAVE_LIBZ="" - elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1" - then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configure found only the libz header file, not the lib!" >&5 -$as_echo "$as_me: WARNING: configure found only the libz header file, not the lib!" >&2;} - elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1" - then - - -$as_echo "#define HAVE_ZLIB_H 1" >>confdefs.h - - -$as_echo "#define HAVE_LIBZ 1" >>confdefs.h - - - CURL_LIBS="$CURL_LIBS -lz" - LIBS="$LIBS -lz" - - AMFIXLIB="1" - { $as_echo "$as_me:${as_lineno-$LINENO}: found both libz and libz.h header" >&5 -$as_echo "$as_me: found both libz and libz.h header" >&6;} - curl_zlib_msg="enabled" - fi -fi - - - -if test x"$AMFIXLIB" = x1; then - HAVE_LIBZ_TRUE= - HAVE_LIBZ_FALSE='#' -else - HAVE_LIBZ_TRUE='#' - HAVE_LIBZ_FALSE= -fi - - - -if test X"$OPENSSL_ENABLED" = X"1"; then - -# Check whether --with-egd-socket was given. -if test "${with_egd_socket+set}" = set; then : - withval=$with_egd_socket; EGD_SOCKET="$withval" - -fi - - if test -n "$EGD_SOCKET" ; then - -cat >>confdefs.h <<_ACEOF -#define EGD_SOCKET "$EGD_SOCKET" -_ACEOF - - fi - - -# Check whether --with-random was given. -if test "${with_random+set}" = set; then : - withval=$with_random; RANDOM_FILE="$withval" -else - - as_ac_File=`$as_echo "ac_cv_file_"/dev/urandom"" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"/dev/urandom\"" >&5 -$as_echo_n "checking for \"/dev/urandom\"... " >&6; } -if eval "test \"\${$as_ac_File+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - test "$cross_compiling" = yes && - as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 -if test -r ""/dev/urandom""; then - eval "$as_ac_File=yes" -else - eval "$as_ac_File=no" -fi -fi -eval ac_res=\$$as_ac_File - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_File"\" = x"yes"; then : - RANDOM_FILE="/dev/urandom" -fi - - - -fi - - if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then - - -cat >>confdefs.h <<_ACEOF -#define RANDOM_FILE "$RANDOM_FILE" -_ACEOF - - fi -fi - - -OPT_GNUTLS=no - - -# Check whether --with-gnutls was given. -if test "${with_gnutls+set}" = set; then : - withval=$with_gnutls; OPT_GNUTLS=$withval -fi - - -if test "$OPENSSL_ENABLED" != "1"; then - - if test X"$OPT_GNUTLS" != Xno; then - - addld="" - if test "x$OPT_GNUTLS" = "xyes"; then - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls options with pkg-config" >&5 -$as_echo_n "checking for gnutls options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists gnutls >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - addlib=`$PKGCONFIG --libs-only-l gnutls` - addld=`$PKGCONFIG --libs-only-L gnutls` - addcflags=`$PKGCONFIG --cflags-only-I gnutls` - version=`$PKGCONFIG --modversion gnutls` - gtlslib=`echo $addld | $SED -e 's/-L//'` - else - check=`libgnutls-config --version 2>/dev/null` - if test -n "$check"; then - addlib=`libgnutls-config --libs` - addcflags=`libgnutls-config --cflags` - version=`libgnutls-config --version` - gtlslib=`libgnutls-config --prefix`/lib$libsuff - fi - fi - else - cfg=$OPT_GNUTLS/bin/libgnutls-config - check=`$cfg --version 2>/dev/null` - if test -n "$check"; then - addlib=`$cfg --libs` - addcflags=`$cfg --cflags` - version=`$cfg --version` - gtlslib=`$cfg --prefix`/lib$libsuff - else - addlib=-lgnutls - addld=-L$OPT_GNUTLS/lib$libsuff - addcflags=-I$OPT_GNUTLS/include - version="" # we just don't know - gtlslib=$OPT_GNUTLS/lib$libsuff - fi - fi - - if test -z "$version"; then - version="unknown" - fi - - if test -n "$addlib"; then - - CLEANLIBS="$LIBS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEADLDFLAGS="$LDFLAGS" - - LIBS="$LIBS $addlib" - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_check_version in -lgnutls" >&5 -$as_echo_n "checking for gnutls_check_version in -lgnutls... " >&6; } -if test "${ac_cv_lib_gnutls_gnutls_check_version+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgnutls $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gnutls_check_version (); -int main (void) -{ -return gnutls_check_version (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gnutls_gnutls_check_version=yes -else - ac_cv_lib_gnutls_gnutls_check_version=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_check_version" >&5 -$as_echo "$ac_cv_lib_gnutls_gnutls_check_version" >&6; } -if test "x$ac_cv_lib_gnutls_gnutls_check_version" = x""yes; then : - - -$as_echo "#define USE_GNUTLS 1" >>confdefs.h - - USE_GNUTLS=1 - - GNUTLS_ENABLED=1 - USE_GNUTLS="yes" - curl_ssl_msg="enabled (GnuTLS)" - -else - - LIBS="$CLEANLIBS" - CPPFLAGS="$CLEANCPPFLAGS" - -fi - - - if test "x$USE_GNUTLS" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected GnuTLS version $version" >&5 -$as_echo "$as_me: detected GnuTLS version $version" >&6;} - - if test -n "$gtlslib"; then - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $gtlslib to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $gtlslib to LD_LIBRARY_PATH" >&6;} - fi - fi - - fi - - fi -fi - -if test "$GNUTLS_ENABLED" = "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_control in -lgcrypt" >&5 -$as_echo_n "checking for gcry_control in -lgcrypt... " >&6; } -if test "${ac_cv_lib_gcrypt_gcry_control+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgcrypt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char gcry_control (); -int main (void) -{ -return gcry_control (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gcrypt_gcry_control=yes -else - ac_cv_lib_gcrypt_gcry_control=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcrypt_gcry_control" >&5 -$as_echo "$ac_cv_lib_gcrypt_gcry_control" >&6; } -if test "x$ac_cv_lib_gcrypt_gcry_control" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBGCRYPT 1 -_ACEOF - - LIBS="-lgcrypt $LIBS" - -else - - as_fn_error $? "need GnuTLS built with gcrypt to function with GnuTLS" "$LINENO" 5 - -fi - -fi - - -OPT_POLARSSL=no - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS - -# Check whether --with-polarssl was given. -if test "${with_polarssl+set}" = set; then : - withval=$with_polarssl; OPT_POLARSSL=$withval -fi - - -if test "$OPENSSL_ENABLED" != "1"; then - - if test X"$OPT_POLARSSL" != Xno; then - - if test "$OPT_POLARSSL" = "yes"; then - OPT_POLARSSL="" - fi - - if test -z "$OPT_POLARSSL" ; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for havege_init in -lpolarssl" >&5 -$as_echo_n "checking for havege_init in -lpolarssl... " >&6; } -if test "${ac_cv_lib_polarssl_havege_init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpolarssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char havege_init (); -int main (void) -{ -return havege_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_polarssl_havege_init=yes -else - ac_cv_lib_polarssl_havege_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_polarssl_havege_init" >&5 -$as_echo "$ac_cv_lib_polarssl_havege_init" >&6; } -if test "x$ac_cv_lib_polarssl_havege_init" = x""yes; then : - - -$as_echo "#define USE_POLARSSL 1" >>confdefs.h - - USE_POLARSSL=1 - - POLARSSL_ENABLED=1 - USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" - -fi - - fi - - if test "x$USE_POLARSSL" != "xyes"; then - addld=-L$OPT_POLARSSL/lib$libsuff - addcflags=-I$OPT_POLARSSL/include - polarssllib=$OPT_POLARSSL/lib$libsuff - - LDFLAGS="$LDFLAGS $addld" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssl_init in -lpolarssl" >&5 -$as_echo_n "checking for ssl_init in -lpolarssl... " >&6; } -if test "${ac_cv_lib_polarssl_ssl_init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpolarssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char ssl_init (); -int main (void) -{ -return ssl_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_polarssl_ssl_init=yes -else - ac_cv_lib_polarssl_ssl_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_polarssl_ssl_init" >&5 -$as_echo "$ac_cv_lib_polarssl_ssl_init" >&6; } -if test "x$ac_cv_lib_polarssl_ssl_init" = x""yes; then : - - -$as_echo "#define USE_POLARSSL 1" >>confdefs.h - - USE_POLARSSL=1 - - POLARSSL_ENABLED=1 - USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" - -else - - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags - -fi - - fi - - if test "x$USE_POLARSSL" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected PolarSSL" >&5 -$as_echo "$as_me: detected PolarSSL" >&6;} - - CURL_LIBS="$CURL_LIBS -lpolarssl" - LIBS="$LIBS -lpolarssl" - - if test -n "$polarssllib"; then - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $polarssllib to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $polarssllib to LD_LIBRARY_PATH" >&6;} - fi - - fi - - fi -fi - -OPT_NSS=no - - -# Check whether --with-nss was given. -if test "${with_nss+set}" = set; then : - withval=$with_nss; OPT_NSS=$withval -fi - - -if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then - - if test X"$OPT_NSS" != Xno; then - if test "x$OPT_NSS" = "xyes"; then - - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nss options with pkg-config" >&5 -$as_echo_n "checking for nss options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists nss >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - addlib=`$PKGCONFIG --libs nss` - addcflags=`$PKGCONFIG --cflags nss` - version=`$PKGCONFIG --modversion nss` - nssprefix=`$PKGCONFIG --variable=prefix nss` - else - - check=`nss-config --version 2>/dev/null` - if test -n "$check"; then - addlib=`nss-config --libs` - addcflags=`nss-config --cflags` - version=`nss-config --version` - nssprefix=`nss-config --prefix` - else - addlib="-lnss3" - addcflags="" - version="unknown" - fi - fi - else - # Without pkg-config, we'll kludge in some defaults - addlib="-L$OPT_NSS/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl" - addcflags="-I$OPT_NSS/include" - version="unknown" - nssprefix=$OPT_NSS - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PK11_CreateGenericObject in -lnss3" >&5 -$as_echo_n "checking for PK11_CreateGenericObject in -lnss3... " >&6; } -if test "${ac_cv_lib_nss3_PK11_CreateGenericObject+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnss3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char PK11_CreateGenericObject (); -int main (void) -{ -return PK11_CreateGenericObject (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nss3_PK11_CreateGenericObject=yes -else - ac_cv_lib_nss3_PK11_CreateGenericObject=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nss3_PK11_CreateGenericObject" >&5 -$as_echo "$ac_cv_lib_nss3_PK11_CreateGenericObject" >&6; } -if test "x$ac_cv_lib_nss3_PK11_CreateGenericObject" = x""yes; then : - - -$as_echo "#define HAVE_PK11_CREATEGENERICOBJECT 1" >>confdefs.h - - HAVE_PK11_CREATEGENERICOBJECT=1 - - -fi - - if test -n "$addlib"; then - - CLEANLIBS="$LIBS" - CLEANCPPFLAGS="$CPPFLAGS" - - LIBS="$LIBS $addlib" - if test "$addcflags" != "-I/usr/include"; then - CPPFLAGS="$CPPFLAGS $addcflags" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS_Initialize in -lnss3" >&5 -$as_echo_n "checking for NSS_Initialize in -lnss3... " >&6; } -if test "${ac_cv_lib_nss3_NSS_Initialize+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnss3 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char NSS_Initialize (); -int main (void) -{ -return NSS_Initialize (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nss3_NSS_Initialize=yes -else - ac_cv_lib_nss3_NSS_Initialize=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nss3_NSS_Initialize" >&5 -$as_echo "$ac_cv_lib_nss3_NSS_Initialize" >&6; } -if test "x$ac_cv_lib_nss3_NSS_Initialize" = x""yes; then : - - -$as_echo "#define USE_NSS 1" >>confdefs.h - - USE_NSS=1 - - USE_NSS="yes" - NSS_ENABLED=1 - curl_ssl_msg="enabled (NSS)" - -else - - LIBS="$CLEANLIBS" - CPPFLAGS="$CLEANCPPFLAGS" - -fi - - - if test "x$USE_NSS" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: detected NSS version $version" >&5 -$as_echo "$as_me: detected NSS version $version" >&6;} - - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH" >&6;} - fi - - fi - - fi -fi -if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED" = "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&5 -$as_echo "$as_me: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl or --with-nss to address this." >&5 -$as_echo "$as_me: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl or --with-nss to address this." >&2;} -else - # SSL is enabled, genericly - - SSL_ENABLED="1" -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking default CA cert bundle/path" >&5 -$as_echo_n "checking default CA cert bundle/path... " >&6; } - - -# Check whether --with-ca-bundle was given. -if test "${with_ca_bundle+set}" = set; then : - withval=$with_ca_bundle; - want_ca="$withval" - if test "x$want_ca" = "xyes"; then - as_fn_error $? "--with-ca-bundle=FILE requires a path to the CA bundle" "$LINENO" 5 - fi - -else - want_ca="unset" -fi - - -# Check whether --with-ca-path was given. -if test "${with_ca_path+set}" = set; then : - withval=$with_ca_path; - want_capath="$withval" - if test "x$want_capath" = "xyes"; then - as_fn_error $? "--with-ca-path=DIRECTORY requires a path to the CA path directory" "$LINENO" 5 - fi - -else - want_capath="unset" -fi - - - if test "x$want_ca" != "xno" -a "x$want_ca" != "xunset" -a \ - "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then - as_fn_error $? "Can't specify both --with-ca-bundle and --with-ca-path." "$LINENO" 5 - elif test "x$want_ca" != "xno" -a "x$want_ca" != "xunset"; then - ca="$want_ca" - capath="no" - elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then - if test "x$OPENSSL_ENABLED" != "x1"; then - as_fn_error $? "--with-ca-path only works with openSSL" "$LINENO" 5 - fi - capath="$want_capath" - ca="no" - else - ca="no" - capath="no" - if test "x$want_ca" = "xunset"; then - if test "x$prefix" != xNONE; then - cac="${prefix}/share/curl/curl-ca-bundle.crt" - else - cac="$ac_default_prefix/share/curl/curl-ca-bundle.crt" - fi - - for a in /etc/ssl/certs/ca-certificates.crt \ - /etc/pki/tls/certs/ca-bundle.crt \ - /usr/share/ssl/certs/ca-bundle.crt \ - /usr/local/share/certs/ca-root.crt \ - /etc/ssl/cert.pem \ - "$cac"; do - if test -f "$a"; then - ca="$a" - break - fi - done - fi - if test "x$want_capath" = "xunset" -a "x$ca" = "xno" -a \ - "x$OPENSSL_ENABLED" = "x1"; then - for a in /etc/ssl/certs/; do - if test -d "$a" && ls "$a"/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].0 >/dev/null 2>/dev/null; then - capath="$a" - break - fi - done - fi - fi - - - - if test "x$ca" != "xno"; then - CURL_CA_BUNDLE='"'$ca'"' - -cat >>confdefs.h <<_ACEOF -#define CURL_CA_BUNDLE "$ca" -_ACEOF - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ca" >&5 -$as_echo "$ca" >&6; } - elif test "x$capath" != "xno"; then - CURL_CA_PATH="\"$capath\"" - -cat >>confdefs.h <<_ACEOF -#define CURL_CA_PATH "$capath" -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $capath (capath)" >&5 -$as_echo "$capath (capath)" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - - -OPT_LIBSSH2=off - -# Check whether --with-libssh2 was given. -if test "${with_libssh2+set}" = set; then : - withval=$with_libssh2; OPT_LIBSSH2=$withval -fi - - -if test X"$OPT_LIBSSH2" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_LIBSSH2" in - yes) - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2 options with pkg-config" >&5 -$as_echo_n "checking for libssh2 options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists libssh2 >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - LIB_SSH2=`$PKGCONFIG --libs-only-l libssh2` - LD_SSH2=`$PKGCONFIG --libs-only-L libssh2` - CPP_SSH2=`$PKGCONFIG --cflags-only-I libssh2` - version=`$PKGCONFIG --modversion libssh2` - DIR_SSH2=`echo $LD_SSH2 | $SED -e 's/-L//'` - fi - - ;; - off) - ;; - *) - PREFIX_SSH2=$OPT_LIBSSH2 - ;; - esac - - if test -n "$PREFIX_SSH2"; then - LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff - CPP_SSH2=-I${PREFIX_SSH2}/include - DIR_SSH2=${PREFIX_SSH2}/lib$libsuff - fi - - LDFLAGS="$LDFLAGS $LD_SSH2" - CPPFLAGS="$CPPFLAGS $CPP_SSH2" - LIBS="$LIBS $LIB_SSH2" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2_channel_open_ex in -lssh2" >&5 -$as_echo_n "checking for libssh2_channel_open_ex in -lssh2... " >&6; } -if test "${ac_cv_lib_ssh2_libssh2_channel_open_ex+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssh2 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char libssh2_channel_open_ex (); -int main (void) -{ -return libssh2_channel_open_ex (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ssh2_libssh2_channel_open_ex=yes -else - ac_cv_lib_ssh2_libssh2_channel_open_ex=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh2_libssh2_channel_open_ex" >&5 -$as_echo "$ac_cv_lib_ssh2_libssh2_channel_open_ex" >&6; } -if test "x$ac_cv_lib_ssh2_libssh2_channel_open_ex" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSH2 1 -_ACEOF - - LIBS="-lssh2 $LIBS" - -fi - - - for ac_header in libssh2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "libssh2.h" "ac_cv_header_libssh2_h" "$ac_includes_default" -if test "x$ac_cv_header_libssh2_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSH2_H 1 -_ACEOF - curl_ssh_msg="enabled (libSSH2)" - LIBSSH2_ENABLED=1 - -$as_echo "#define USE_LIBSSH2 1" >>confdefs.h - - USE_LIBSSH2=1 - - -fi - -done - - - if test X"$OPT_LIBSSH2" != Xoff && - test "$LIBSSH2_ENABLED" != "1"; then - as_fn_error $? "libSSH2 libs and/or directories were not found where specified!" "$LINENO" 5 - fi - - if test "$LIBSSH2_ENABLED" = "1"; then - if test -n "$DIR_SSH2"; then - - for ac_func in libssh2_version libssh2_init libssh2_exit \ - libssh2_scp_send64 libssh2_session_handshake -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2" - export LD_LIBRARY_PATH - { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_SSH2 to LD_LIBRARY_PATH" >&5 -$as_echo "$as_me: Added $DIR_SSH2 to LD_LIBRARY_PATH" >&6;} - fi - else - LDFLAGS=$CLEANLDFLAGS - CPPFLAGS=$CLEANCPPFLAGS - LIBS=$CLEANLIBS - fi -fi - - -OPT_LIBRTMP=off - -# Check whether --with-librtmp was given. -if test "${with_librtmp+set}" = set; then : - withval=$with_librtmp; OPT_LIBRTMP=$withval -fi - - -if test X"$OPT_LIBRTMP" != Xno; then - CLEANLDFLAGS="$LDFLAGS" - CLEANCPPFLAGS="$CPPFLAGS" - CLEANLIBS="$LIBS" - - case "$OPT_LIBRTMP" in - yes) - - - PKGCONFIG="no" - - if test x$cross_compiling = xyes; then - # Extract the first word of "${host}-pkg-config", so it can be a program name with args. -set dummy ${host}-pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG = xno; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKGCONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PKGCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no" - ;; -esac -fi -PKGCONFIG=$ac_cv_path_PKGCONFIG -if test -n "$PKGCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 -$as_echo "$PKGCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - - if test x$PKGCONFIG != xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for librtmp options with pkg-config" >&5 -$as_echo_n "checking for librtmp options with pkg-config... " >&6; } - itexists=` - if test -n ""; then - PKG_CONFIG_LIBDIR="" - export PKG_CONFIG_LIBDIR - fi - $PKGCONFIG --exists librtmp >/dev/null 2>&1 && echo 1` - - if test -z "$itexists"; then - PKGCONFIG="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - fi - fi - - - if test "$PKGCONFIG" != "no" ; then - LIB_RTMP=`$PKGCONFIG --libs-only-l librtmp` - LD_RTMP=`$PKGCONFIG --libs-only-L librtmp` - CPP_RTMP=`$PKGCONFIG --cflags-only-I librtmp` - version=`$PKGCONFIG --modversion librtmp` - DIR_RTMP=`echo $LD_RTMP | $SED -e 's/-L//'` - else - as_fn_error $? "--librtmp was specified but could not find librtmp pkgconfig file." "$LINENO" 5 - fi - - ;; - off) - LIB_RTMP="-lrtmp" - ;; - *) - PREFIX_RTMP=$OPT_LIBRTMP - ;; - esac - - if test -n "$PREFIX_RTMP"; then - LD_RTMP=-L${PREFIX_RTMP}/lib$libsuff - CPP_RTMP=-I${PREFIX_RTMP}/include - DIR_RTMP=${PREFIX_RTMP}/lib$libsuff - fi - - LDFLAGS="$LDFLAGS $LD_RTMP" - CPPFLAGS="$CPPFLAGS $CPP_RTMP" - LIBS="$LIBS $LIB_RTMP" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTMP_Init in -lrtmp" >&5 -$as_echo_n "checking for RTMP_Init in -lrtmp... " >&6; } -if test "${ac_cv_lib_rtmp_RTMP_Init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrtmp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char RTMP_Init (); -int main (void) -{ -return RTMP_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rtmp_RTMP_Init=yes -else - ac_cv_lib_rtmp_RTMP_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rtmp_RTMP_Init" >&5 -$as_echo "$ac_cv_lib_rtmp_RTMP_Init" >&6; } -if test "x$ac_cv_lib_rtmp_RTMP_Init" = x""yes; then : - - for ac_header in librtmp/rtmp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "librtmp/rtmp.h" "ac_cv_header_librtmp_rtmp_h" "$ac_includes_default" -if test "x$ac_cv_header_librtmp_rtmp_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRTMP_RTMP_H 1 -_ACEOF - curl_rtmp_msg="enabled (librtmp)" - LIBRTMP_ENABLED=1 - -$as_echo "#define USE_LIBRTMP 1" >>confdefs.h - - USE_LIBRTMP=1 - - -fi - -done - - -else - LDFLAGS=$CLEANLDFLAGS - CPPFLAGS=$CLEANCPPFLAGS - LIBS=$CLEANLIBS - -fi - - - if test X"$OPT_LIBRTMP" != Xoff && - test "$LIBRTMP_ENABLED" != "1"; then - as_fn_error $? "librtmp libs and/or directories were not found where specified!" "$LINENO" 5 - fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with libidn" >&5 -$as_echo_n "checking whether to build with libidn... " >&6; } - -# Check whether --with-libidn was given. -if test "${with_libidn+set}" = set; then : - withval=$with_libidn; LIBIDN="$withval" -fi - - -case "$LIBIDN" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - idn="" - if test -n "$LIBIDN"; then - if test "x$LIBIDN" != "xyes"; then - oldLDFLAGS=$LDFLAGS - oldCPPFLAGS=$CPPFLAGS - LDFLAGS="$LDFLAGS -L$LIBIDN/lib" - CPPFLAGS="$CPPFLAGS -I$LIBIDN/include" - idn="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for idna_to_ascii_4i in -lidn" >&5 -$as_echo_n "checking for idna_to_ascii_4i in -lidn... " >&6; } -if test "${ac_cv_lib_idn_idna_to_ascii_4i+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lidn $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char idna_to_ascii_4i (); -int main (void) -{ -return idna_to_ascii_4i (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_idn_idna_to_ascii_4i=yes -else - ac_cv_lib_idn_idna_to_ascii_4i=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_idn_idna_to_ascii_4i" >&5 -$as_echo "$ac_cv_lib_idn_idna_to_ascii_4i" >&6; } -if test "x$ac_cv_lib_idn_idna_to_ascii_4i" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBIDN 1 -_ACEOF - - LIBS="-lidn $LIBS" - -else - idn="" - LDFLAGS=$oldLDFLAGS - CPPFLAGS=$oldCPPFLAGS -fi - - fi - fi - - if test "x$idn" != "xyes"; then - idn="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for idna_to_ascii_lz in -lidn" >&5 -$as_echo_n "checking for idna_to_ascii_lz in -lidn... " >&6; } -if test "${ac_cv_lib_idn_idna_to_ascii_lz+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lidn $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char idna_to_ascii_lz (); -int main (void) -{ -return idna_to_ascii_lz (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_idn_idna_to_ascii_lz=yes -else - ac_cv_lib_idn_idna_to_ascii_lz=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_idn_idna_to_ascii_lz" >&5 -$as_echo "$ac_cv_lib_idn_idna_to_ascii_lz" >&6; } -if test "x$ac_cv_lib_idn_idna_to_ascii_lz" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBIDN 1 -_ACEOF - - LIBS="-lidn $LIBS" - -else - idn="" -fi - - fi - - if test "x$idn" = "xyes"; then - curl_idn_msg="enabled" - IDN_ENABLED=1 - - for ac_func in idn_free idna_strerror tld_strerror -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - for ac_header in idn-free.h tld.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - fi - - ;; -esac - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for malloc.h" >&5 -$as_echo_n "checking for malloc.h... " >&6; } -if test "${ac_cv_header_malloc_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_malloc_h="yes" - -else - - ac_cv_header_malloc_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_malloc_h" >&5 -$as_echo "$ac_cv_header_malloc_h" >&6; } - if test "$ac_cv_header_malloc_h" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_MALLOC_H 1 -_ACEOF - - # - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_need_header_malloc_h="no" - -else - - curl_cv_need_header_malloc_h="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - case "$curl_cv_need_header_malloc_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NEED_MALLOC_H 1 -_ACEOF - - ;; - esac - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memory.h" >&5 -$as_echo_n "checking for memory.h... " >&6; } -if test "${ac_cv_header_memory_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_memory_h="yes" - -else - - ac_cv_header_memory_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_memory_h" >&5 -$as_echo "$ac_cv_header_memory_h" >&6; } - if test "$ac_cv_header_memory_h" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_MEMORY_H 1 -_ACEOF - - # - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - -int main (void) -{ - - void *p = malloc(10); - void *q = calloc(10,10); - free(p); - free(q); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_need_header_memory_h="no" - -else - - curl_cv_need_header_memory_h="yes" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - # - case "$curl_cv_need_header_memory_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define NEED_MEMORY_H 1 -_ACEOF - - ;; - esac - fi - - -for ac_header in sys/types.h \ - sys/time.h \ - sys/select.h \ - sys/socket.h \ - sys/ioctl.h \ - sys/uio.h \ - assert.h \ - unistd.h \ - stdlib.h \ - limits.h \ - arpa/inet.h \ - net/if.h \ - netinet/in.h \ - sys/un.h \ - netinet/tcp.h \ - netdb.h \ - sys/sockio.h \ - sys/stat.h \ - sys/param.h \ - termios.h \ - termio.h \ - sgtty.h \ - fcntl.h \ - alloca.h \ - time.h \ - io.h \ - pwd.h \ - utime.h \ - sys/utime.h \ - sys/poll.h \ - poll.h \ - socket.h \ - sys/resource.h \ - libgen.h \ - locale.h \ - errno.h \ - stdbool.h \ - arpa/tftp.h \ - sys/filio.h \ - setjmp.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_SYS_UN_H -#include -#endif - - -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main (void) -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of C99 variadic macro style" >&5 -$as_echo_n "checking for compiler support of C99 variadic macro style... " >&6; } -if test "${curl_cv_variadic_macros_c99+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__) -#define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__) - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - int fun3(int arg1, int arg2, int arg3) - { return arg1 + arg2 + arg3; } - int fun2(int arg1, int arg2) - { return arg1 + arg2; } - -int main (void) -{ - - int res3 = c99_vmacro3(1, 2, 3); - int res2 = c99_vmacro2(1, 2); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_variadic_macros_c99="yes" - -else - - curl_cv_variadic_macros_c99="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_c99" >&5 -$as_echo "$curl_cv_variadic_macros_c99" >&6; } - case "$curl_cv_variadic_macros_c99" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_VARIADIC_MACROS_C99 1 -_ACEOF - - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of old gcc variadic macro style" >&5 -$as_echo_n "checking for compiler support of old gcc variadic macro style... " >&6; } -if test "${curl_cv_variadic_macros_gcc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gcc_vmacro3(first, args...) fun3(first, args) -#define gcc_vmacro2(first, args...) fun2(first, args) - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - int fun3(int arg1, int arg2, int arg3) - { return arg1 + arg2 + arg3; } - int fun2(int arg1, int arg2) - { return arg1 + arg2; } - -int main (void) -{ - - int res3 = gcc_vmacro3(1, 2, 3); - int res2 = gcc_vmacro2(1, 2); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_variadic_macros_gcc="yes" - -else - - curl_cv_variadic_macros_gcc="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_variadic_macros_gcc" >&5 -$as_echo "$curl_cv_variadic_macros_gcc" >&6; } - case "$curl_cv_variadic_macros_gcc" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_VARIADIC_MACROS_GCC 1 -_ACEOF - - ;; - esac - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = x""yes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int main (void) -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - for ac_header in sys/types.h sys/time.h time.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 -$as_echo_n "checking for struct timeval... " >&6; } -if test "${ac_cv_struct_timeval+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif - -int main (void) -{ - - struct timeval ts; - ts.tv_sec = 0; - ts.tv_usec = 0; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_struct_timeval="yes" - -else - - ac_cv_struct_timeval="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_timeval" >&5 -$as_echo "$ac_cv_struct_timeval" >&6; } - case "$ac_cv_struct_timeval" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TIMEVAL 1 -_ACEOF - - ;; - esac - - - - if test "x$cross_compiling" != xyes; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking run-time libs availability" >&5 -$as_echo_n "checking run-time libs availability... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -main() -{ - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: fine" >&5 -$as_echo "fine" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } - as_fn_error $? "one or more libs available at link-time are not available run-time. Libs used at link-time: $LIBS" "$LINENO" 5 - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - - fi - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 -$as_echo_n "checking size of size_t... " >&6; } -if test "${ac_cv_sizeof_size_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_size_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (size_t) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_size_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -$as_echo "$ac_cv_sizeof_size_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if test "${ac_cv_sizeof_short+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - - - if test -z "$ac_cv_sizeof_long" || - test "$ac_cv_sizeof_long" -eq "0"; then - as_fn_error $? "cannot find out size of long." "$LINENO" 5 - fi - -cat >>confdefs.h <<_EOF -#define CURL_SIZEOF_LONG $ac_cv_sizeof_long -_EOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5 -$as_echo_n "checking size of time_t... " >&6; } -if test "${ac_cv_sizeof_time_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_time_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (time_t) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_time_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 -$as_echo "$ac_cv_sizeof_time_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_TIME_T $ac_cv_sizeof_time_t -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_off_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (off_t) -See \`config.log' for more details" "$LINENO" 5 ; } - else - ac_cv_sizeof_off_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t -_ACEOF - - - -soname_bump=no -if test x"$ac_cv_native_windows" != "xyes" && - test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This libcurl built is probably not ABI compatible with previous" >&5 -$as_echo "$as_me: WARNING: This libcurl built is probably not ABI compatible with previous" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: builds! You MUST read lib/README.curl_off_t to figure it out." >&5 -$as_echo "$as_me: WARNING: builds! You MUST read lib/README.curl_off_t to figure it out." >&2;} - soname_bump=yes -fi - - -ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" -if test "x$ac_cv_type_long_long" = x""yes; then : - -$as_echo "#define HAVE_LONGLONG 1" >>confdefs.h - - longlong="yes" - -fi - - -if test "xyes" = "x$longlong"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if numberLL works" >&5 -$as_echo_n "checking if numberLL works... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - long long val = 1000LL; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_LL 1" >>confdefs.h - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - -# check for ssize_t -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = x""yes; then : - -else - -$as_echo "#define ssize_t int" >>confdefs.h - -fi - - -# check for bool type -ac_fn_c_check_type "$LINENO" "bool" "ac_cv_type_bool" " -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_STDBOOL_H -#include -#endif - -" -if test "x$ac_cv_type_bool" = x""yes; then : - - -$as_echo "#define HAVE_BOOL_T 1" >>confdefs.h - - -fi - - - -curl_includes_ws2tcpip="\ -/* includes start */ -#ifdef HAVE_WINDOWS_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# ifdef HAVE_WINSOCK2_H -# include -# ifdef HAVE_WS2TCPIP_H -# include -# endif -# endif -#endif -/* includes end */" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 -$as_echo_n "checking for windows.h... " >&6; } -if test "${ac_cv_header_windows_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) - HAVE_WINDOWS_H shall not be defined. -#else - int dummy=2*WINVER; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_windows_h="yes" - -else - - ac_cv_header_windows_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 -$as_echo "$ac_cv_header_windows_h" >&6; } - case "$ac_cv_header_windows_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define WIN32_LEAN_AND_MEAN 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 -$as_echo_n "checking for winsock2.h... " >&6; } -if test "${ac_cv_header_winsock2_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WINSOCK2_H shall not be defined. -#else - int dummy=2*IPPROTO_ESP; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_winsock2_h="yes" - -else - - ac_cv_header_winsock2_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 -$as_echo "$ac_cv_header_winsock2_h" >&6; } - case "$ac_cv_header_winsock2_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WINSOCK2_H 1 -_ACEOF - - ;; - esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5 -$as_echo_n "checking for ws2tcpip.h... " >&6; } -if test "${ac_cv_header_ws2tcpip_h+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include - -int main (void) -{ - -#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) - HAVE_WS2TCPIP_H shall not be defined. -#else - int dummy=2*IP_PKTINFO; -#endif - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_header_ws2tcpip_h="yes" - -else - - ac_cv_header_ws2tcpip_h="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ws2tcpip_h" >&5 -$as_echo "$ac_cv_header_ws2tcpip_h" >&6; } - case "$ac_cv_header_ws2tcpip_h" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_WS2TCPIP_H 1 -_ACEOF - - ;; - esac - - - -curl_includes_sys_socket="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_socket -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -curl_preprocess_callconv="\ -/* preprocess start */ -#ifdef HAVE_WINDOWS_H -# define FUNCALLCONV __stdcall -#else -# define FUNCALLCONV -#endif -/* preprocess end */" - - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_socklen_t data type" >&5 -$as_echo_n "checking for curl_socklen_t data type... " >&6; } - curl_typeof_curl_socklen_t="unknown" - for arg1 in int SOCKET; do - for arg2 in 'struct sockaddr' void; do - for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do - if test "$curl_typeof_curl_socklen_t" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_preprocess_callconv - extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *); - -int main (void) -{ - - $t *lenptr = 0; - if(0 != getpeername(0, 0, lenptr)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_typeof_curl_socklen_t="$t" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - for t in socklen_t int; do - if test "$curl_typeof_curl_socklen_t" = "void"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - typedef $t curl_socklen_t; - -int main (void) -{ - - curl_socklen_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_typeof_curl_socklen_t="$t" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_socklen_t" >&5 -$as_echo "$curl_typeof_curl_socklen_t" >&6; } - if test "$curl_typeof_curl_socklen_t" = "void" || - test "$curl_typeof_curl_socklen_t" = "unknown"; then - as_fn_error $? "cannot find data type for curl_socklen_t." "$LINENO" 5 - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of curl_socklen_t" >&5 -$as_echo_n "checking size of curl_socklen_t... " >&6; } - curl_sizeof_curl_socklen_t="unknown" - curl_pull_headers_socklen_t="unknown" - if test "$ac_cv_header_ws2tcpip_h" = "yes"; then - tst_pull_header_checks='none ws2tcpip' - tst_size_checks='4' - else - tst_pull_header_checks='none systypes syssocket' - tst_size_checks='4 8 2' - fi - for tst_size in $tst_size_checks; do - for tst_pull_headers in $tst_pull_header_checks; do - if test "$curl_sizeof_curl_socklen_t" = "unknown"; then - case $tst_pull_headers in - ws2tcpip) - tmp_includes="$curl_includes_ws2tcpip" - ;; - systypes) - tmp_includes="$curl_includes_sys_types" - ;; - syssocket) - tmp_includes="$curl_includes_sys_socket" - ;; - *) - tmp_includes="" - ;; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $tmp_includes - typedef $curl_typeof_curl_socklen_t curl_socklen_t; - typedef char dummy_arr[sizeof(curl_socklen_t) == $tst_size ? 1 : -1]; - -int main (void) -{ - - curl_socklen_t dummy; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_sizeof_curl_socklen_t="$tst_size" - curl_pull_headers_socklen_t="$tst_pull_headers" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_sizeof_curl_socklen_t" >&5 -$as_echo "$curl_sizeof_curl_socklen_t" >&6; } - if test "$curl_sizeof_curl_socklen_t" = "unknown"; then - as_fn_error $? "cannot find out size of curl_socklen_t." "$LINENO" 5 - fi - # - case $curl_pull_headers_socklen_t in - ws2tcpip) - -cat >>confdefs.h <<_EOF -#define CURL_PULL_WS2TCPIP_H 1 -_EOF - - ;; - systypes) - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_TYPES_H 1 -_EOF - - ;; - syssocket) - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_TYPES_H 1 -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_PULL_SYS_SOCKET_H 1 -_EOF - - ;; - esac - -cat >>confdefs.h <<_EOF -#define CURL_TYPEOF_CURL_SOCKLEN_T $curl_typeof_curl_socklen_t -_EOF - - -cat >>confdefs.h <<_EOF -#define CURL_SIZEOF_CURL_SOCKLEN_T $curl_sizeof_curl_socklen_t -_EOF - - - - - ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" " -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - -" -if test "x$ac_cv_type_in_addr_t" = x""yes; then : - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for in_addr_t equivalent" >&5 -$as_echo_n "checking for in_addr_t equivalent... " >&6; } -if test "${curl_cv_in_addr_t_equiv+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_in_addr_t_equiv="unknown" - for t in "unsigned long" int size_t unsigned long; do - if test "$curl_cv_in_addr_t_equiv" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - -int main (void) -{ - - $t data = inet_addr ("1.2.3.4"); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - curl_cv_in_addr_t_equiv="$t" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_in_addr_t_equiv" >&5 -$as_echo "$curl_cv_in_addr_t_equiv" >&6; } - case "$curl_cv_in_addr_t_equiv" in - unknown) - as_fn_error $? "Cannot find a type to use in place of in_addr_t" "$LINENO" 5 - ;; - *) - -cat >>confdefs.h <<_ACEOF -#define in_addr_t $curl_cv_in_addr_t_equiv -_ACEOF - - ;; - esac - -fi - - - - - ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - -" -if test "x$ac_cv_type_struct_sockaddr_storage" = x""yes; then : - -$as_echo "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h - -fi - - - - - for ac_header in signal.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default" -if test "x$ac_cv_header_signal_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SIGNAL_H 1 -_ACEOF - -fi - -done - - ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" " -#ifdef HAVE_SIGNAL_H -#include -#endif - -" -if test "x$ac_cv_type_sig_atomic_t" = x""yes; then : - - -$as_echo "#define HAVE_SIG_ATOMIC_T 1" >>confdefs.h - - -fi - - case "$ac_cv_type_sig_atomic_t" in - yes) - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sig_atomic_t is already defined as volatile" >&5 -$as_echo_n "checking if sig_atomic_t is already defined as volatile... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_SIGNAL_H -#include -#endif - -int main (void) -{ - - static volatile sig_atomic_t dummy = 0; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_sig_atomic_t_volatile="no" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ac_cv_sig_atomic_t_volatile="yes" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$ac_cv_sig_atomic_t_volatile" = "yes"; then - -$as_echo "#define HAVE_SIG_ATOMIC_T_VOLATILE 1" >>confdefs.h - - fi - ;; - esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if test "${ac_cv_type_signal+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int main (void) -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - - - for ac_header in sys/select.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for select" >&5 -$as_echo_n "checking for select... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifndef HAVE_WINDOWS_H -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - select(0, 0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_select="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_select="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_select" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for select" >&5 -$as_echo_n "checking types of args and return type for select... " >&6; } -if test "${curl_cv_func_select_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_select_args="unknown" - for sel_retv in 'int' 'ssize_t'; do - for sel_arg1 in 'int' 'ssize_t' 'size_t' 'unsigned long int' 'unsigned int'; do - for sel_arg234 in 'fd_set *' 'int *' 'void *'; do - for sel_arg5 in 'struct timeval *' 'const struct timeval *'; do - if test "$curl_cv_func_select_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define SELECTCALLCONV PASCAL -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#ifdef TIME_WITH_SYS_TIME -#include -#endif -#else -#ifdef HAVE_TIME_H -#include -#endif -#endif -#ifndef HAVE_WINDOWS_H -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define SELECTCALLCONV -#endif -#ifndef HAVE_STRUCT_TIMEVAL - struct timeval { - long tv_sec; - long tv_usec; - }; -#endif - extern $sel_retv SELECTCALLCONV select($sel_arg1, - $sel_arg234, - $sel_arg234, - $sel_arg234, - $sel_arg5); - -int main (void) -{ - - $sel_arg1 nfds=0; - $sel_arg234 rfds=0; - $sel_arg234 wfds=0; - $sel_arg234 efds=0; - $sel_retv res = select(nfds, rfds, wfds, efds, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_select_args="$sel_arg1,$sel_arg234,$sel_arg5,$sel_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_select_args" >&5 -$as_echo "$curl_cv_func_select_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_select_args" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for select args" >&5 -$as_echo "$as_me: WARNING: Cannot find proper types to use for select args" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_SELECT will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_SELECT will not be defined" >&2;} - else - select_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_select_args" | sed 's/\*/\*/g'` - IFS=$select_prev_IFS - shift - # - sel_qual_type_arg5=$3 - # - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG234 $2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_RETV $4 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$sel_qual_type_arg5" in - const*) - sel_qual_arg5=const - sel_type_arg5=`echo $sel_qual_type_arg5 | sed 's/^const //'` - ;; - *) - sel_qual_arg5= - sel_type_arg5=$sel_qual_type_arg5 - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define SELECT_QUAL_ARG5 $sel_qual_arg5 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG5 $sel_type_arg5 -_ACEOF - - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_SELECT 1 -_ACEOF - - ac_cv_func_select="yes" - fi - fi - - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recv" >&5 -$as_echo_n "checking for recv... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - recv(0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_recv="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_recv="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_recv" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recv" >&5 -$as_echo_n "checking types of args and return type for recv... " >&6; } -if test "${curl_cv_func_recv_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_recv_args="unknown" - for recv_retv in 'int' 'ssize_t'; do - for recv_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recv_arg2 in 'char *' 'void *'; do - for recv_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recv_arg4 in 'int' 'unsigned int'; do - if test "$curl_cv_func_recv_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVCALLCONV -#endif - extern $recv_retv RECVCALLCONV - recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); - -int main (void) -{ - - $recv_arg1 s=0; - $recv_arg2 buf=0; - $recv_arg3 len=0; - $recv_arg4 flags=0; - $recv_retv res = recv(s, buf, len, flags); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recv_args" >&5 -$as_echo "$curl_cv_func_recv_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_recv_args" = "unknown"; then - as_fn_error $? "Cannot find proper types to use for recv args" "$LINENO" 5 - else - recv_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recv_args" | sed 's/\*/\*/g'` - IFS=$recv_prev_IFS - shift - # - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG2 $2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG3 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_ARG4 $4 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECV_TYPE_RETV $5 -_ACEOF - - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_RECV 1 -_ACEOF - - ac_cv_func_recv="yes" - fi - else - as_fn_error $? "Unable to link function recv" "$LINENO" 5 - fi - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recvfrom" >&5 -$as_echo_n "checking for recvfrom... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - recvfrom(0, 0, 0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_recvfrom="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_recvfrom="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_recvfrom" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recvfrom" >&5 -$as_echo_n "checking types of args and return type for recvfrom... " >&6; } -if test "${curl_cv_func_recvfrom_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_recvfrom_args="unknown" - for recvfrom_retv in 'int' 'ssize_t'; do - for recvfrom_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for recvfrom_arg2 in 'char *' 'void *'; do - for recvfrom_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for recvfrom_arg4 in 'int' 'unsigned int'; do - for recvfrom_arg5 in 'struct sockaddr *' 'void *'; do - for recvfrom_arg6 in 'socklen_t *' 'int *' 'unsigned int *' 'size_t *' 'void *'; do - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define RECVFROMCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define RECVFROMCALLCONV -#endif - extern $recvfrom_retv RECVFROMCALLCONV - recvfrom($recvfrom_arg1, $recvfrom_arg2, - $recvfrom_arg3, $recvfrom_arg4, - $recvfrom_arg5, $recvfrom_arg6); - -int main (void) -{ - - $recvfrom_arg1 s=0; - $recvfrom_arg2 buf=0; - $recvfrom_arg3 len=0; - $recvfrom_arg4 flags=0; - $recvfrom_arg5 addr=0; - $recvfrom_arg6 addrlen=0; - $recvfrom_retv res=0; - res = recvfrom(s, buf, len, flags, addr, addrlen); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_recvfrom_args="$recvfrom_arg1,$recvfrom_arg2,$recvfrom_arg3,$recvfrom_arg4,$recvfrom_arg5,$recvfrom_arg6,$recvfrom_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recvfrom_args" >&5 -$as_echo "$curl_cv_func_recvfrom_args" >&6; } # AC-CACHE-CHECK - # Nearly last minute change for this release starts here - -cat >>confdefs.h <<_ACEOF -#define HAVE_RECVFROM 1 -_ACEOF - - ac_cv_func_recvfrom="yes" - # Nearly last minute change for this release ends here - if test "$curl_cv_func_recvfrom_args" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for recvfrom args" >&5 -$as_echo "$as_me: WARNING: Cannot find proper types to use for recvfrom args" >&2;} - else - recvfrom_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_recvfrom_args" | sed 's/\*/\*/g'` - IFS=$recvfrom_prev_IFS - shift - # - recvfrom_ptrt_arg2=$2 - recvfrom_ptrt_arg5=$5 - recvfrom_ptrt_arg6=$6 - # - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG3 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG4 $4 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_RETV $7 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'` - recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'` - recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'` - # - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG2 $recvfrom_type_arg2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG5 $recvfrom_type_arg5 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG6 $recvfrom_type_arg6 -_ACEOF - - # - if test "$recvfrom_type_arg2" = "void"; then - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG2_IS_VOID 1 -_ACEOF - - fi - if test "$recvfrom_type_arg5" = "void"; then - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG5_IS_VOID 1 -_ACEOF - - fi - if test "$recvfrom_type_arg6" = "void"; then - -cat >>confdefs.h <<_ACEOF -#define RECVFROM_TYPE_ARG6_IS_VOID 1 -_ACEOF - - fi - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_RECVFROM 1 -_ACEOF - - ac_cv_func_recvfrom="yes" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to link function recvfrom" >&5 -$as_echo "$as_me: WARNING: Unable to link function recvfrom" >&2;} - fi - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for send" >&5 -$as_echo_n "checking for send... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - send(0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_send="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_send="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_send" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of args and return type for send" >&5 -$as_echo_n "checking types of args and return type for send... " >&6; } -if test "${curl_cv_func_send_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_send_args="unknown" - for send_retv in 'int' 'ssize_t'; do - for send_arg1 in 'int' 'ssize_t' 'SOCKET'; do - for send_arg2 in 'char *' 'void *' 'const char *' 'const void *'; do - for send_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do - for send_arg4 in 'int' 'unsigned int'; do - if test "$curl_cv_func_send_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#define SENDCALLCONV PASCAL -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#define SENDCALLCONV -#endif - extern $send_retv SENDCALLCONV - send($send_arg1, $send_arg2, $send_arg3, $send_arg4); - -int main (void) -{ - - $send_arg1 s=0; - $send_arg3 len=0; - $send_arg4 flags=0; - $send_retv res = send(s, 0, len, flags); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_send_args" >&5 -$as_echo "$curl_cv_func_send_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_send_args" = "unknown"; then - as_fn_error $? "Cannot find proper types to use for send args" "$LINENO" 5 - else - send_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_send_args" | sed 's/\*/\*/g'` - IFS=$send_prev_IFS - shift - # - send_qual_type_arg2=$2 - # - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG3 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG4 $4 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_RETV $5 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$send_qual_type_arg2" in - const*) - send_qual_arg2=const - send_type_arg2=`echo $send_qual_type_arg2 | sed 's/^const //'` - ;; - *) - send_qual_arg2= - send_type_arg2=$send_qual_type_arg2 - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define SEND_QUAL_ARG2 $send_qual_arg2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SEND_TYPE_ARG2 $send_type_arg2 -_ACEOF - - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_SEND 1 -_ACEOF - - ac_cv_func_send="yes" - fi - else - as_fn_error $? "Unable to link function send" "$LINENO" 5 - fi - - - for ac_header in sys/types.h sys/socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MSG_NOSIGNAL" >&5 -$as_echo_n "checking for MSG_NOSIGNAL... " >&6; } -if test "${ac_cv_msg_nosignal+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#else -#ifdef HAVE_WINSOCK_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#endif - -int main (void) -{ - - int flag=MSG_NOSIGNAL; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_msg_nosignal="yes" - -else - - ac_cv_msg_nosignal="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_msg_nosignal" >&5 -$as_echo "$ac_cv_msg_nosignal" >&6; } - case "$ac_cv_msg_nosignal" in - yes) - -cat >>confdefs.h <<_ACEOF -#define HAVE_MSG_NOSIGNAL 1 -_ACEOF - - ;; - esac - - - -curl_includes_unistd="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_unistd -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_alarm="unknown" - tst_proto_alarm="unknown" - tst_compi_alarm="unknown" - tst_allow_alarm="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm can be linked" >&5 -$as_echo_n "checking if alarm can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define alarm innocuous_alarm -#ifdef __STDC__ -# include -#else -# include -#endif -#undef alarm -#ifdef __cplusplus -extern "C" -#endif -char alarm (); -#if defined __stub_alarm || defined __stub___alarm -choke me -#endif - -int main (void) -{ -return alarm (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_alarm="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_alarm="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm is prototyped" >&5 -$as_echo_n "checking if alarm is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "alarm" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_alarm="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_alarm="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm is compilable" >&5 -$as_echo_n "checking if alarm is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_unistd - -int main (void) -{ - - if(0 != alarm(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_alarm="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_alarm="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm usage allowed" >&5 -$as_echo_n "checking if alarm usage allowed... " >&6; } - if test "x$curl_disallow_alarm" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_alarm="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_alarm="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if alarm might be used" >&5 -$as_echo_n "checking if alarm might be used... " >&6; } - if test "$tst_links_alarm" = "yes" && - test "$tst_proto_alarm" = "yes" && - test "$tst_compi_alarm" = "yes" && - test "$tst_allow_alarm" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_ALARM 1 -_ACEOF - - ac_cv_func_alarm="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_alarm="no" - fi - - -curl_includes_string="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STRING_H -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h string.h strings.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_string -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -curl_includes_libgen="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_LIBGEN_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h libgen.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_libgen -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_basename="unknown" - tst_proto_basename="unknown" - tst_compi_basename="unknown" - tst_allow_basename="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename can be linked" >&5 -$as_echo_n "checking if basename can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define basename innocuous_basename -#ifdef __STDC__ -# include -#else -# include -#endif -#undef basename -#ifdef __cplusplus -extern "C" -#endif -char basename (); -#if defined __stub_basename || defined __stub___basename -choke me -#endif - -int main (void) -{ -return basename (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_basename="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_basename="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename is prototyped" >&5 -$as_echo_n "checking if basename is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - $curl_includes_libgen - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "basename" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_basename="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_basename="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename is compilable" >&5 -$as_echo_n "checking if basename is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - $curl_includes_libgen - $curl_includes_unistd - -int main (void) -{ - - if(0 != basename(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_basename="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_basename="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename usage allowed" >&5 -$as_echo_n "checking if basename usage allowed... " >&6; } - if test "x$curl_disallow_basename" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_basename="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_basename="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename might be used" >&5 -$as_echo_n "checking if basename might be used... " >&6; } - if test "$tst_links_basename" = "yes" && - test "$tst_proto_basename" = "yes" && - test "$tst_compi_basename" = "yes" && - test "$tst_allow_basename" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_BASENAME 1 -_ACEOF - - ac_cv_func_basename="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_basename="no" - fi - - -curl_includes_socket="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SOCKET_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h socket.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_socket -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_closesocket="unknown" - tst_proto_closesocket="unknown" - tst_compi_closesocket="unknown" - tst_allow_closesocket="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket can be linked" >&5 -$as_echo_n "checking if closesocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_socket - -int main (void) -{ - - if(0 != closesocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_closesocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_closesocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket is prototyped" >&5 -$as_echo_n "checking if closesocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "closesocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_closesocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_closesocket="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket is compilable" >&5 -$as_echo_n "checking if closesocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_socket - -int main (void) -{ - - if(0 != closesocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_closesocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_closesocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket usage allowed" >&5 -$as_echo_n "checking if closesocket usage allowed... " >&6; } - if test "x$curl_disallow_closesocket" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_closesocket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_closesocket="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if closesocket might be used" >&5 -$as_echo_n "checking if closesocket might be used... " >&6; } - if test "$tst_links_closesocket" = "yes" && - test "$tst_proto_closesocket" = "yes" && - test "$tst_compi_closesocket" = "yes" && - test "$tst_allow_closesocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_CLOSESOCKET 1 -_ACEOF - - ac_cv_func_closesocket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_closesocket="no" - fi - - - # - tst_links_closesocket_camel="unknown" - tst_proto_closesocket_camel="unknown" - tst_compi_closesocket_camel="unknown" - tst_allow_closesocket_camel="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket can be linked" >&5 -$as_echo_n "checking if CloseSocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != CloseSocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_closesocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_closesocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is prototyped" >&5 -$as_echo_n "checking if CloseSocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "CloseSocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_closesocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_closesocket_camel="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is compilable" >&5 -$as_echo_n "checking if CloseSocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != CloseSocket(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_closesocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_closesocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket usage allowed" >&5 -$as_echo_n "checking if CloseSocket usage allowed... " >&6; } - if test "x$curl_disallow_closesocket_camel" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_closesocket_camel="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_closesocket_camel="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CloseSocket might be used" >&5 -$as_echo_n "checking if CloseSocket might be used... " >&6; } - if test "$tst_links_closesocket_camel" = "yes" && - test "$tst_proto_closesocket_camel" = "yes" && - test "$tst_compi_closesocket_camel" = "yes" && - test "$tst_allow_closesocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_CLOSESOCKET_CAMEL 1 -_ACEOF - - ac_cv_func_closesocket_camel="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_closesocket_camel="no" - fi - - - # - tst_links_connect="unknown" - tst_proto_connect="unknown" - tst_compi_connect="unknown" - tst_allow_connect="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect can be linked" >&5 -$as_echo_n "checking if connect can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != connect(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_connect="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_connect="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect is prototyped" >&5 -$as_echo_n "checking if connect is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "connect" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_connect="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_connect="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect is compilable" >&5 -$as_echo_n "checking if connect is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != connect(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_connect="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_connect="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect usage allowed" >&5 -$as_echo_n "checking if connect usage allowed... " >&6; } - if test "x$curl_disallow_connect" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_connect="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_connect="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if connect might be used" >&5 -$as_echo_n "checking if connect might be used... " >&6; } - if test "$tst_links_connect" = "yes" && - test "$tst_proto_connect" = "yes" && - test "$tst_compi_connect" = "yes" && - test "$tst_allow_connect" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_CONNECT 1 -_ACEOF - - ac_cv_func_connect="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_connect="no" - fi - - -curl_includes_fcntl="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_FCNTL_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h unistd.h fcntl.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_fcntl -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_fcntl="unknown" - tst_proto_fcntl="unknown" - tst_compi_fcntl="unknown" - tst_allow_fcntl="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl can be linked" >&5 -$as_echo_n "checking if fcntl can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define fcntl innocuous_fcntl -#ifdef __STDC__ -# include -#else -# include -#endif -#undef fcntl -#ifdef __cplusplus -extern "C" -#endif -char fcntl (); -#if defined __stub_fcntl || defined __stub___fcntl -choke me -#endif - -int main (void) -{ -return fcntl (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_fcntl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_fcntl="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl is prototyped" >&5 -$as_echo_n "checking if fcntl is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_fcntl - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "fcntl" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_fcntl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_fcntl="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl is compilable" >&5 -$as_echo_n "checking if fcntl is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_fcntl - -int main (void) -{ - - if(0 != fcntl(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fcntl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fcntl="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl usage allowed" >&5 -$as_echo_n "checking if fcntl usage allowed... " >&6; } - if test "x$curl_disallow_fcntl" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fcntl="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fcntl="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl might be used" >&5 -$as_echo_n "checking if fcntl might be used... " >&6; } - if test "$tst_links_fcntl" = "yes" && - test "$tst_proto_fcntl" = "yes" && - test "$tst_compi_fcntl" = "yes" && - test "$tst_allow_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FCNTL 1 -_ACEOF - - ac_cv_func_fcntl="yes" - - # - tst_compi_fcntl_o_nonblock="unknown" - tst_allow_fcntl_o_nonblock="unknown" - # - case $host_os in - sunos4* | aix3* | beos*) - curl_disallow_fcntl_o_nonblock="yes" - ;; - esac - # - if test "$ac_cv_func_fcntl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK is compilable" >&5 -$as_echo_n "checking if fcntl O_NONBLOCK is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_fcntl - -int main (void) -{ - - int flags = 0; - if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fcntl_o_nonblock="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fcntl_o_nonblock="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_fcntl_o_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK usage allowed" >&5 -$as_echo_n "checking if fcntl O_NONBLOCK usage allowed... " >&6; } - if test "x$curl_disallow_fcntl_o_nonblock" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fcntl_o_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fcntl_o_nonblock="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK might be used" >&5 -$as_echo_n "checking if fcntl O_NONBLOCK might be used... " >&6; } - if test "$tst_compi_fcntl_o_nonblock" = "yes" && - test "$tst_allow_fcntl_o_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FCNTL_O_NONBLOCK 1 -_ACEOF - - ac_cv_func_fcntl_o_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fcntl_o_nonblock="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fcntl="no" - fi - - -curl_includes_stdio="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STDIO_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h stdio.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stdio -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_fdopen="unknown" - tst_proto_fdopen="unknown" - tst_compi_fdopen="unknown" - tst_allow_fdopen="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen can be linked" >&5 -$as_echo_n "checking if fdopen can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define fdopen innocuous_fdopen -#ifdef __STDC__ -# include -#else -# include -#endif -#undef fdopen -#ifdef __cplusplus -extern "C" -#endif -char fdopen (); -#if defined __stub_fdopen || defined __stub___fdopen -choke me -#endif - -int main (void) -{ -return fdopen (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_fdopen="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_fdopen="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen is prototyped" >&5 -$as_echo_n "checking if fdopen is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stdio - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "fdopen" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_fdopen="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_fdopen="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen is compilable" >&5 -$as_echo_n "checking if fdopen is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdio - -int main (void) -{ - - if(0 != fdopen(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fdopen="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fdopen="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen usage allowed" >&5 -$as_echo_n "checking if fdopen usage allowed... " >&6; } - if test "x$curl_disallow_fdopen" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fdopen="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fdopen="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fdopen might be used" >&5 -$as_echo_n "checking if fdopen might be used... " >&6; } - if test "$tst_links_fdopen" = "yes" && - test "$tst_proto_fdopen" = "yes" && - test "$tst_compi_fdopen" = "yes" && - test "$tst_allow_fdopen" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FDOPEN 1 -_ACEOF - - ac_cv_func_fdopen="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fdopen="no" - fi - - -curl_includes_netdb="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_NETDB_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h netdb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_netdb -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_freeaddrinfo="unknown" - tst_proto_freeaddrinfo="unknown" - tst_compi_freeaddrinfo="unknown" - tst_allow_freeaddrinfo="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo can be linked" >&5 -$as_echo_n "checking if freeaddrinfo can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - freeaddrinfo(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_freeaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_freeaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is prototyped" >&5 -$as_echo_n "checking if freeaddrinfo is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "freeaddrinfo" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_freeaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_freeaddrinfo="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is compilable" >&5 -$as_echo_n "checking if freeaddrinfo is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - freeaddrinfo(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_freeaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_freeaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo usage allowed" >&5 -$as_echo_n "checking if freeaddrinfo usage allowed... " >&6; } - if test "x$curl_disallow_freeaddrinfo" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_freeaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_freeaddrinfo="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo might be used" >&5 -$as_echo_n "checking if freeaddrinfo might be used... " >&6; } - if test "$tst_links_freeaddrinfo" = "yes" && - test "$tst_proto_freeaddrinfo" = "yes" && - test "$tst_compi_freeaddrinfo" = "yes" && - test "$tst_allow_freeaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FREEADDRINFO 1 -_ACEOF - - ac_cv_func_freeaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_freeaddrinfo="no" - fi - - -curl_includes_ifaddrs="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_NETINET_IN_H -# include -#endif -#ifdef HAVE_IFADDRS_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/socket.h netinet/in.h ifaddrs.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_ifaddrs -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_freeifaddrs="unknown" - tst_proto_freeifaddrs="unknown" - tst_compi_freeifaddrs="unknown" - tst_allow_freeifaddrs="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs can be linked" >&5 -$as_echo_n "checking if freeifaddrs can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define freeifaddrs innocuous_freeifaddrs -#ifdef __STDC__ -# include -#else -# include -#endif -#undef freeifaddrs -#ifdef __cplusplus -extern "C" -#endif -char freeifaddrs (); -#if defined __stub_freeifaddrs || defined __stub___freeifaddrs -choke me -#endif - -int main (void) -{ -return freeifaddrs (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_freeifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_freeifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs is prototyped" >&5 -$as_echo_n "checking if freeifaddrs is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ifaddrs - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "freeifaddrs" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_freeifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_freeifaddrs="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs is compilable" >&5 -$as_echo_n "checking if freeifaddrs is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ifaddrs - -int main (void) -{ - - freeifaddrs(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_freeifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_freeifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs usage allowed" >&5 -$as_echo_n "checking if freeifaddrs usage allowed... " >&6; } - if test "x$curl_disallow_freeifaddrs" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_freeifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_freeifaddrs="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if freeifaddrs might be used" >&5 -$as_echo_n "checking if freeifaddrs might be used... " >&6; } - if test "$tst_links_freeifaddrs" = "yes" && - test "$tst_proto_freeifaddrs" = "yes" && - test "$tst_compi_freeifaddrs" = "yes" && - test "$tst_allow_freeifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FREEIFADDRS 1 -_ACEOF - - ac_cv_func_freeifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_freeifaddrs="no" - fi - - -curl_includes_sys_xattr="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_XATTR_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/xattr.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_xattr -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_fsetxattr="unknown" - tst_proto_fsetxattr="unknown" - tst_compi_fsetxattr="unknown" - tst_allow_fsetxattr="unknown" - tst_nargs_fsetxattr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr can be linked" >&5 -$as_echo_n "checking if fsetxattr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define fsetxattr innocuous_fsetxattr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef fsetxattr -#ifdef __cplusplus -extern "C" -#endif -char fsetxattr (); -#if defined __stub_fsetxattr || defined __stub___fsetxattr -choke me -#endif - -int main (void) -{ -return fsetxattr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_fsetxattr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_fsetxattr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is prototyped" >&5 -$as_echo_n "checking if fsetxattr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_xattr - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "fsetxattr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_fsetxattr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_fsetxattr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_fsetxattr" = "yes"; then - if test "$tst_nargs_fsetxattr" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 5 args." >&5 -$as_echo_n "checking if fsetxattr takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_xattr - -int main (void) -{ - - if(0 != fsetxattr(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fsetxattr="yes" - tst_nargs_fsetxattr="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fsetxattr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_fsetxattr" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr takes 6 args." >&5 -$as_echo_n "checking if fsetxattr takes 6 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_xattr - -int main (void) -{ - - if(0 != fsetxattr(0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_fsetxattr="yes" - tst_nargs_fsetxattr="6" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_fsetxattr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr is compilable" >&5 -$as_echo_n "checking if fsetxattr is compilable... " >&6; } - if test "$tst_compi_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr usage allowed" >&5 -$as_echo_n "checking if fsetxattr usage allowed... " >&6; } - if test "x$curl_disallow_fsetxattr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_fsetxattr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_fsetxattr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fsetxattr might be used" >&5 -$as_echo_n "checking if fsetxattr might be used... " >&6; } - if test "$tst_links_fsetxattr" = "yes" && - test "$tst_proto_fsetxattr" = "yes" && - test "$tst_compi_fsetxattr" = "yes" && - test "$tst_allow_fsetxattr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FSETXATTR 1 -_ACEOF - - # - if test "$tst_nargs_fsetxattr" -eq "5"; then - -$as_echo "#define HAVE_FSETXATTR_5 1" >>confdefs.h - - elif test "$tst_nargs_fsetxattr" -eq "6"; then - -$as_echo "#define HAVE_FSETXATTR_6 1" >>confdefs.h - - fi - # - ac_cv_func_fsetxattr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_fsetxattr="no" - fi - - - # - tst_links_ftruncate="unknown" - tst_proto_ftruncate="unknown" - tst_compi_ftruncate="unknown" - tst_allow_ftruncate="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate can be linked" >&5 -$as_echo_n "checking if ftruncate can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define ftruncate innocuous_ftruncate -#ifdef __STDC__ -# include -#else -# include -#endif -#undef ftruncate -#ifdef __cplusplus -extern "C" -#endif -char ftruncate (); -#if defined __stub_ftruncate || defined __stub___ftruncate -choke me -#endif - -int main (void) -{ -return ftruncate (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ftruncate="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ftruncate="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate is prototyped" >&5 -$as_echo_n "checking if ftruncate is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "ftruncate" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ftruncate="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ftruncate="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate is compilable" >&5 -$as_echo_n "checking if ftruncate is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_unistd - -int main (void) -{ - - if(0 != ftruncate(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ftruncate="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ftruncate="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate usage allowed" >&5 -$as_echo_n "checking if ftruncate usage allowed... " >&6; } - if test "x$curl_disallow_ftruncate" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ftruncate="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ftruncate="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ftruncate might be used" >&5 -$as_echo_n "checking if ftruncate might be used... " >&6; } - if test "$tst_links_ftruncate" = "yes" && - test "$tst_proto_ftruncate" = "yes" && - test "$tst_compi_ftruncate" = "yes" && - test "$tst_allow_ftruncate" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_FTRUNCATE 1 -_ACEOF - - ac_cv_func_ftruncate="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ftruncate="no" - fi - - -curl_includes_stdlib="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_STDLIB_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h stdlib.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stdlib -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_getaddrinfo="unknown" - tst_proto_getaddrinfo="unknown" - tst_compi_getaddrinfo="unknown" - tst_works_getaddrinfo="unknown" - tst_allow_getaddrinfo="unknown" - tst_tsafe_getaddrinfo="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo can be linked" >&5 -$as_echo_n "checking if getaddrinfo can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - if(0 != getaddrinfo(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_getaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is prototyped" >&5 -$as_echo_n "checking if getaddrinfo is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getaddrinfo" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_getaddrinfo="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is compilable" >&5 -$as_echo_n "checking if getaddrinfo is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - if(0 != getaddrinfo(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getaddrinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo seems to work" >&5 -$as_echo_n "checking if getaddrinfo seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_stdlib - $curl_includes_string - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ - - struct addrinfo hints; - struct addrinfo *ai = 0; - int error; - - memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_NUMERICHOST; - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - error = getaddrinfo("127.0.0.1", 0, &hints, &ai); - if(error || !ai) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_getaddrinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_getaddrinfo="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_getaddrinfo" = "yes" && - test "$tst_works_getaddrinfo" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo usage allowed" >&5 -$as_echo_n "checking if getaddrinfo usage allowed... " >&6; } - if test "x$curl_disallow_getaddrinfo" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_getaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_getaddrinfo="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo might be used" >&5 -$as_echo_n "checking if getaddrinfo might be used... " >&6; } - if test "$tst_links_getaddrinfo" = "yes" && - test "$tst_proto_getaddrinfo" = "yes" && - test "$tst_compi_getaddrinfo" = "yes" && - test "$tst_allow_getaddrinfo" = "yes" && - test "$tst_works_getaddrinfo" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETADDRINFO 1 -_ACEOF - - ac_cv_func_getaddrinfo="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_getaddrinfo="no" - ac_cv_func_getaddrinfo_threadsafe="no" - fi - # - if test "$ac_cv_func_getaddrinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is threadsafe" >&5 -$as_echo_n "checking if getaddrinfo is threadsafe... " >&6; } - case $host_os in - aix[1234].* | aix5.[01].*) - tst_tsafe_getaddrinfo="no" - ;; - aix*) - tst_tsafe_getaddrinfo="yes" - ;; - darwin[12345].*) - tst_tsafe_getaddrinfo="no" - ;; - darwin*) - tst_tsafe_getaddrinfo="yes" - ;; - freebsd[1234].* | freebsd5.[1234]*) - tst_tsafe_getaddrinfo="no" - ;; - freebsd*) - tst_tsafe_getaddrinfo="yes" - ;; - hpux[123456789].* | hpux10.* | hpux11.0* | hpux11.10*) - tst_tsafe_getaddrinfo="no" - ;; - hpux*) - tst_tsafe_getaddrinfo="yes" - ;; - netbsd[123].*) - tst_tsafe_getaddrinfo="no" - ;; - netbsd*) - tst_tsafe_getaddrinfo="yes" - ;; - *bsd*) - tst_tsafe_getaddrinfo="no" - ;; - solaris2*) - tst_tsafe_getaddrinfo="yes" - ;; - esac - if test "$tst_tsafe_getaddrinfo" = "unknown"; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ws2tcpip - $curl_includes_sys_socket - $curl_includes_netdb - -int main (void) -{ -#ifdef h_errno - return 0; -#else - force compilation error -#endif -} - - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_symbol_defined="yes" - -else - - tst_symbol_defined="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$tst_symbol_defined" = "yes"; then - curl_cv_have_def_h_errno=yes - - else - curl_cv_have_def_h_errno=no - - fi - - if test "$curl_cv_have_def_h_errno" = "no"; then - tst_tsafe_getaddrinfo="no" - fi - fi - if test "$tst_tsafe_getaddrinfo" = "unknown"; then - tst_tsafe_getaddrinfo="yes" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_tsafe_getaddrinfo" >&5 -$as_echo "$tst_tsafe_getaddrinfo" >&6; } - if test "$tst_tsafe_getaddrinfo" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETADDRINFO_THREADSAFE 1 -_ACEOF - - ac_cv_func_getaddrinfo_threadsafe="yes" - else - ac_cv_func_getaddrinfo_threadsafe="no" - fi - fi - - - # - tst_links_gethostbyaddr="unknown" - tst_proto_gethostbyaddr="unknown" - tst_compi_gethostbyaddr="unknown" - tst_allow_gethostbyaddr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr can be linked" >&5 -$as_echo_n "checking if gethostbyaddr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyaddr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr is prototyped" >&5 -$as_echo_n "checking if gethostbyaddr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyaddr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr is compilable" >&5 -$as_echo_n "checking if gethostbyaddr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr usage allowed" >&5 -$as_echo_n "checking if gethostbyaddr usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyaddr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyaddr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr might be used" >&5 -$as_echo_n "checking if gethostbyaddr might be used... " >&6; } - if test "$tst_links_gethostbyaddr" = "yes" && - test "$tst_proto_gethostbyaddr" = "yes" && - test "$tst_compi_gethostbyaddr" = "yes" && - test "$tst_allow_gethostbyaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYADDR 1 -_ACEOF - - ac_cv_func_gethostbyaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyaddr="no" - fi - - - # - tst_links_gethostbyaddr_r="unknown" - tst_proto_gethostbyaddr_r="unknown" - tst_compi_gethostbyaddr_r="unknown" - tst_allow_gethostbyaddr_r="unknown" - tst_nargs_gethostbyaddr_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r can be linked" >&5 -$as_echo_n "checking if gethostbyaddr_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyaddr_r innocuous_gethostbyaddr_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyaddr_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyaddr_r (); -#if defined __stub_gethostbyaddr_r || defined __stub___gethostbyaddr_r -choke me -#endif - -int main (void) -{ -return gethostbyaddr_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyaddr_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r is prototyped" >&5 -$as_echo_n "checking if gethostbyaddr_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyaddr_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyaddr_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyaddr_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyaddr_r" = "yes"; then - if test "$tst_nargs_gethostbyaddr_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r takes 5 args." >&5 -$as_echo_n "checking if gethostbyaddr_r takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr_r(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr_r="yes" - tst_nargs_gethostbyaddr_r="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyaddr_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r takes 7 args." >&5 -$as_echo_n "checking if gethostbyaddr_r takes 7 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr_r(0, 0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr_r="yes" - tst_nargs_gethostbyaddr_r="7" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyaddr_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r takes 8 args." >&5 -$as_echo_n "checking if gethostbyaddr_r takes 8 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyaddr_r(0, 0, 0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyaddr_r="yes" - tst_nargs_gethostbyaddr_r="8" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyaddr_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r is compilable" >&5 -$as_echo_n "checking if gethostbyaddr_r is compilable... " >&6; } - if test "$tst_compi_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r usage allowed" >&5 -$as_echo_n "checking if gethostbyaddr_r usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyaddr_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyaddr_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyaddr_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr_r might be used" >&5 -$as_echo_n "checking if gethostbyaddr_r might be used... " >&6; } - if test "$tst_links_gethostbyaddr_r" = "yes" && - test "$tst_proto_gethostbyaddr_r" = "yes" && - test "$tst_compi_gethostbyaddr_r" = "yes" && - test "$tst_allow_gethostbyaddr_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYADDR_R 1 -_ACEOF - - # - if test "$tst_nargs_gethostbyaddr_r" -eq "5"; then - -$as_echo "#define HAVE_GETHOSTBYADDR_R_5 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyaddr_r" -eq "7"; then - -$as_echo "#define HAVE_GETHOSTBYADDR_R_7 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyaddr_r" -eq "8"; then - -$as_echo "#define HAVE_GETHOSTBYADDR_R_8 1" >>confdefs.h - - fi - # - ac_cv_func_gethostbyaddr_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyaddr_r="no" - fi - - - # - tst_links_gethostbyname="unknown" - tst_proto_gethostbyname="unknown" - tst_compi_gethostbyname="unknown" - tst_allow_gethostbyname="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname can be linked" >&5 -$as_echo_n "checking if gethostbyname can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyname="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is prototyped" >&5 -$as_echo_n "checking if gethostbyname is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyname="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is compilable" >&5 -$as_echo_n "checking if gethostbyname is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname usage allowed" >&5 -$as_echo_n "checking if gethostbyname usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyname" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyname="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname might be used" >&5 -$as_echo_n "checking if gethostbyname might be used... " >&6; } - if test "$tst_links_gethostbyname" = "yes" && - test "$tst_proto_gethostbyname" = "yes" && - test "$tst_compi_gethostbyname" = "yes" && - test "$tst_allow_gethostbyname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME 1 -_ACEOF - - ac_cv_func_gethostbyname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyname="no" - fi - - - # - tst_links_gethostbyname_r="unknown" - tst_proto_gethostbyname_r="unknown" - tst_compi_gethostbyname_r="unknown" - tst_allow_gethostbyname_r="unknown" - tst_nargs_gethostbyname_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r can be linked" >&5 -$as_echo_n "checking if gethostbyname_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gethostbyname_r innocuous_gethostbyname_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gethostbyname_r -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname_r (); -#if defined __stub_gethostbyname_r || defined __stub___gethostbyname_r -choke me -#endif - -int main (void) -{ -return gethostbyname_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostbyname_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is prototyped" >&5 -$as_echo_n "checking if gethostbyname_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostbyname_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostbyname_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostbyname_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostbyname_r" = "yes"; then - if test "$tst_nargs_gethostbyname_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 3 args." >&5 -$as_echo_n "checking if gethostbyname_r takes 3 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname_r="yes" - tst_nargs_gethostbyname_r="3" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyname_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 5 args." >&5 -$as_echo_n "checking if gethostbyname_r takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname_r(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname_r="yes" - tst_nargs_gethostbyname_r="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_gethostbyname_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r takes 6 args." >&5 -$as_echo_n "checking if gethostbyname_r takes 6 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != gethostbyname_r(0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostbyname_r="yes" - tst_nargs_gethostbyname_r="6" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostbyname_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r is compilable" >&5 -$as_echo_n "checking if gethostbyname_r is compilable... " >&6; } - if test "$tst_compi_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r usage allowed" >&5 -$as_echo_n "checking if gethostbyname_r usage allowed... " >&6; } - if test "x$curl_disallow_gethostbyname_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostbyname_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostbyname_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostbyname_r might be used" >&5 -$as_echo_n "checking if gethostbyname_r might be used... " >&6; } - if test "$tst_links_gethostbyname_r" = "yes" && - test "$tst_proto_gethostbyname_r" = "yes" && - test "$tst_compi_gethostbyname_r" = "yes" && - test "$tst_allow_gethostbyname_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME_R 1 -_ACEOF - - # - if test "$tst_nargs_gethostbyname_r" -eq "3"; then - -$as_echo "#define HAVE_GETHOSTBYNAME_R_3 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyname_r" -eq "5"; then - -$as_echo "#define HAVE_GETHOSTBYNAME_R_5 1" >>confdefs.h - - elif test "$tst_nargs_gethostbyname_r" -eq "6"; then - -$as_echo "#define HAVE_GETHOSTBYNAME_R_6 1" >>confdefs.h - - fi - # - ac_cv_func_gethostbyname_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostbyname_r="no" - fi - - - # - tst_links_gethostname="unknown" - tst_proto_gethostname="unknown" - tst_compi_gethostname="unknown" - tst_allow_gethostname="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname can be linked" >&5 -$as_echo_n "checking if gethostname can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_unistd - -int main (void) -{ - - if(0 != gethostname(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gethostname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gethostname="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname is prototyped" >&5 -$as_echo_n "checking if gethostname is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_unistd - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gethostname" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gethostname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gethostname="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname is compilable" >&5 -$as_echo_n "checking if gethostname is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_unistd - -int main (void) -{ - - if(0 != gethostname(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gethostname="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gethostname="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname usage allowed" >&5 -$as_echo_n "checking if gethostname usage allowed... " >&6; } - if test "x$curl_disallow_gethostname" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gethostname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gethostname="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gethostname might be used" >&5 -$as_echo_n "checking if gethostname might be used... " >&6; } - if test "$tst_links_gethostname" = "yes" && - test "$tst_proto_gethostname" = "yes" && - test "$tst_compi_gethostname" = "yes" && - test "$tst_allow_gethostname" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTNAME 1 -_ACEOF - - ac_cv_func_gethostname="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gethostname="no" - fi - - - # - tst_links_getifaddrs="unknown" - tst_proto_getifaddrs="unknown" - tst_compi_getifaddrs="unknown" - tst_works_getifaddrs="unknown" - tst_allow_getifaddrs="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs can be linked" >&5 -$as_echo_n "checking if getifaddrs can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getifaddrs innocuous_getifaddrs -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getifaddrs -#ifdef __cplusplus -extern "C" -#endif -char getifaddrs (); -#if defined __stub_getifaddrs || defined __stub___getifaddrs -choke me -#endif - -int main (void) -{ -return getifaddrs (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_getifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_getifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is prototyped" >&5 -$as_echo_n "checking if getifaddrs is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_ifaddrs - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getifaddrs" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_getifaddrs="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_getifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs is compilable" >&5 -$as_echo_n "checking if getifaddrs is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_ifaddrs - -int main (void) -{ - - if(0 != getifaddrs(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getifaddrs="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_getifaddrs" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs seems to work" >&5 -$as_echo_n "checking if getifaddrs seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_ifaddrs - -int main (void) -{ - - struct ifaddrs *ifa = 0; - int error; - - error = getifaddrs(&ifa); - if(error || !ifa) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_getifaddrs="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_getifaddrs="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_getifaddrs" = "yes" && - test "$tst_works_getifaddrs" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs usage allowed" >&5 -$as_echo_n "checking if getifaddrs usage allowed... " >&6; } - if test "x$curl_disallow_getifaddrs" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_getifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_getifaddrs="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs might be used" >&5 -$as_echo_n "checking if getifaddrs might be used... " >&6; } - if test "$tst_links_getifaddrs" = "yes" && - test "$tst_proto_getifaddrs" = "yes" && - test "$tst_compi_getifaddrs" = "yes" && - test "$tst_allow_getifaddrs" = "yes" && - test "$tst_works_getifaddrs" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETIFADDRS 1 -_ACEOF - - ac_cv_func_getifaddrs="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_getifaddrs="no" - fi - - - # - tst_links_getservbyport_r="unknown" - tst_proto_getservbyport_r="unknown" - tst_compi_getservbyport_r="unknown" - tst_allow_getservbyport_r="unknown" - tst_nargs_getservbyport_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r can be linked" >&5 -$as_echo_n "checking if getservbyport_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getservbyport_r innocuous_getservbyport_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getservbyport_r -#ifdef __cplusplus -extern "C" -#endif -char getservbyport_r (); -#if defined __stub_getservbyport_r || defined __stub___getservbyport_r -choke me -#endif - -int main (void) -{ -return getservbyport_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_getservbyport_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r is prototyped" >&5 -$as_echo_n "checking if getservbyport_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_netdb - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getservbyport_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_getservbyport_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_getservbyport_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_getservbyport_r" = "yes"; then - if test "$tst_nargs_getservbyport_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 4 args." >&5 -$as_echo_n "checking if getservbyport_r takes 4 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != getservbyport_r(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getservbyport_r="yes" - tst_nargs_getservbyport_r="4" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_getservbyport_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 5 args." >&5 -$as_echo_n "checking if getservbyport_r takes 5 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != getservbyport_r(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getservbyport_r="yes" - tst_nargs_getservbyport_r="5" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_getservbyport_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 6 args." >&5 -$as_echo_n "checking if getservbyport_r takes 6 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_netdb - -int main (void) -{ - - if(0 != getservbyport_r(0, 0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_getservbyport_r="yes" - tst_nargs_getservbyport_r="6" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_getservbyport_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r is compilable" >&5 -$as_echo_n "checking if getservbyport_r is compilable... " >&6; } - if test "$tst_compi_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r usage allowed" >&5 -$as_echo_n "checking if getservbyport_r usage allowed... " >&6; } - if test "x$curl_disallow_getservbyport_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_getservbyport_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_getservbyport_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r might be used" >&5 -$as_echo_n "checking if getservbyport_r might be used... " >&6; } - if test "$tst_links_getservbyport_r" = "yes" && - test "$tst_proto_getservbyport_r" = "yes" && - test "$tst_compi_getservbyport_r" = "yes" && - test "$tst_allow_getservbyport_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETSERVBYPORT_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETSERVBYPORT_R_ARGS $tst_nargs_getservbyport_r -_ACEOF - - if test "$tst_nargs_getservbyport_r" -eq "4"; then - -$as_echo "#define GETSERVBYPORT_R_BUFSIZE sizeof(struct servent_data)" >>confdefs.h - - else - -$as_echo "#define GETSERVBYPORT_R_BUFSIZE 4096" >>confdefs.h - - fi - ac_cv_func_getservbyport_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_getservbyport_r="no" - fi - - -curl_includes_time="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_TIME_H -# include -# ifdef TIME_WITH_SYS_TIME -# include -# endif -#else -# ifdef HAVE_TIME_H -# include -# endif -#endif -/* includes end */" - for ac_header in sys/types.h sys/time.h time.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_time -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_gmtime_r="unknown" - tst_proto_gmtime_r="unknown" - tst_compi_gmtime_r="unknown" - tst_works_gmtime_r="unknown" - tst_allow_gmtime_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r can be linked" >&5 -$as_echo_n "checking if gmtime_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define gmtime_r innocuous_gmtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef gmtime_r -#ifdef __cplusplus -extern "C" -#endif -char gmtime_r (); -#if defined __stub_gmtime_r || defined __stub___gmtime_r -choke me -#endif - -int main (void) -{ -return gmtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_gmtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_gmtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is prototyped" >&5 -$as_echo_n "checking if gmtime_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_time - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "gmtime_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_gmtime_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_gmtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r is compilable" >&5 -$as_echo_n "checking if gmtime_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_time - -int main (void) -{ - - if(0 != gmtime_r(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_gmtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_gmtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r seems to work" >&5 -$as_echo_n "checking if gmtime_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_time - -int main (void) -{ - - time_t local = 1170352587; - struct tm *gmt = 0; - struct tm result; - gmt = gmtime_r(&local, &result); - if(gmt) - exit(0); - else - exit(1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_gmtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_gmtime_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_gmtime_r" = "yes" && - test "$tst_works_gmtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r usage allowed" >&5 -$as_echo_n "checking if gmtime_r usage allowed... " >&6; } - if test "x$curl_disallow_gmtime_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_gmtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_gmtime_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r might be used" >&5 -$as_echo_n "checking if gmtime_r might be used... " >&6; } - if test "$tst_links_gmtime_r" = "yes" && - test "$tst_proto_gmtime_r" = "yes" && - test "$tst_compi_gmtime_r" = "yes" && - test "$tst_allow_gmtime_r" = "yes" && - test "$tst_works_gmtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_GMTIME_R 1 -_ACEOF - - ac_cv_func_gmtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_gmtime_r="no" - fi - - -curl_includes_arpa_inet="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_NETINET_IN_H -# include -#endif -#ifdef HAVE_ARPA_INET_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/socket.h netinet/in.h arpa/inet.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_arpa_inet -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_inet_ntoa_r="unknown" - tst_proto_inet_ntoa_r="unknown" - tst_compi_inet_ntoa_r="unknown" - tst_allow_inet_ntoa_r="unknown" - tst_nargs_inet_ntoa_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r can be linked" >&5 -$as_echo_n "checking if inet_ntoa_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_ntoa_r innocuous_inet_ntoa_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_ntoa_r -#ifdef __cplusplus -extern "C" -#endif -char inet_ntoa_r (); -#if defined __stub_inet_ntoa_r || defined __stub___inet_ntoa_r -choke me -#endif - -int main (void) -{ -return inet_ntoa_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_inet_ntoa_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r is prototyped" >&5 -$as_echo_n "checking if inet_ntoa_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_arpa_inet - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntoa_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_inet_ntoa_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_inet_ntoa_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_inet_ntoa_r" = "yes"; then - if test "$tst_nargs_inet_ntoa_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r takes 2 args." >&5 -$as_echo_n "checking if inet_ntoa_r takes 2 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - struct in_addr addr; - if(0 != inet_ntoa_r(addr, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_ntoa_r="yes" - tst_nargs_inet_ntoa_r="2" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "$tst_nargs_inet_ntoa_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r takes 3 args." >&5 -$as_echo_n "checking if inet_ntoa_r takes 3 args.... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - struct in_addr addr; - if(0 != inet_ntoa_r(addr, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_ntoa_r="yes" - tst_nargs_inet_ntoa_r="3" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_ntoa_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r is compilable" >&5 -$as_echo_n "checking if inet_ntoa_r is compilable... " >&6; } - if test "$tst_compi_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - # - if test "$tst_compi_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r usage allowed" >&5 -$as_echo_n "checking if inet_ntoa_r usage allowed... " >&6; } - if test "x$curl_disallow_inet_ntoa_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_inet_ntoa_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_inet_ntoa_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntoa_r might be used" >&5 -$as_echo_n "checking if inet_ntoa_r might be used... " >&6; } - if test "$tst_links_inet_ntoa_r" = "yes" && - test "$tst_proto_inet_ntoa_r" = "yes" && - test "$tst_compi_inet_ntoa_r" = "yes" && - test "$tst_allow_inet_ntoa_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_INET_NTOA_R 1 -_ACEOF - - # - if test "$tst_nargs_inet_ntoa_r" -eq "2"; then - -$as_echo "#define HAVE_INET_NTOA_R_2 1" >>confdefs.h - - elif test "$tst_nargs_inet_ntoa_r" -eq "3"; then - -$as_echo "#define HAVE_INET_NTOA_R_3 1" >>confdefs.h - - fi - # - ac_cv_func_inet_ntoa_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_inet_ntoa_r="no" - fi - - - # - tst_links_inet_ntop="unknown" - tst_proto_inet_ntop="unknown" - tst_compi_inet_ntop="unknown" - tst_works_inet_ntop="unknown" - tst_allow_inet_ntop="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop can be linked" >&5 -$as_echo_n "checking if inet_ntop can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_ntop innocuous_inet_ntop -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_ntop -#ifdef __cplusplus -extern "C" -#endif -char inet_ntop (); -#if defined __stub_inet_ntop || defined __stub___inet_ntop -choke me -#endif - -int main (void) -{ -return inet_ntop (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_inet_ntop="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_inet_ntop" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is prototyped" >&5 -$as_echo_n "checking if inet_ntop is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_arpa_inet - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_ntop" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_inet_ntop="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_inet_ntop" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is compilable" >&5 -$as_echo_n "checking if inet_ntop is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - if(0 != inet_ntop(0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_ntop="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_inet_ntop" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop seems to work" >&5 -$as_echo_n "checking if inet_ntop seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_arpa_inet - $curl_includes_string - -int main (void) -{ - - char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; - char ipv4res[sizeof "255.255.255.255"]; - unsigned char ipv6a[26]; - unsigned char ipv4a[5]; - char *ipv6ptr = 0; - char *ipv4ptr = 0; - /* - */ - ipv4res[0] = '\0'; - ipv4a[0] = 0xc0; - ipv4a[1] = 0xa8; - ipv4a[2] = 0x64; - ipv4a[3] = 0x01; - ipv4a[4] = 0x01; - /* - */ - ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res)); - if(!ipv4ptr) - exit(1); /* fail */ - if(ipv4ptr != ipv4res) - exit(1); /* fail */ - if(!ipv4ptr[0]) - exit(1); /* fail */ - if(memcmp(ipv4res, "192.168.100.1", 13) != 0) - exit(1); /* fail */ - /* - */ - ipv6res[0] = '\0'; - memset(ipv6a, 0, sizeof(ipv6a)); - ipv6a[0] = 0xfe; - ipv6a[1] = 0x80; - ipv6a[8] = 0x02; - ipv6a[9] = 0x14; - ipv6a[10] = 0x4f; - ipv6a[11] = 0xff; - ipv6a[12] = 0xfe; - ipv6a[13] = 0x0b; - ipv6a[14] = 0x76; - ipv6a[15] = 0xc8; - ipv6a[25] = 0x01; - /* - */ - ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res)); - if(!ipv6ptr) - exit(1); /* fail */ - if(ipv6ptr != ipv6res) - exit(1); /* fail */ - if(!ipv6ptr[0]) - exit(1); /* fail */ - if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0) - exit(1); /* fail */ - /* - */ - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_inet_ntop="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_inet_ntop="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_inet_ntop" = "yes" && - test "$tst_works_inet_ntop" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop usage allowed" >&5 -$as_echo_n "checking if inet_ntop usage allowed... " >&6; } - if test "x$curl_disallow_inet_ntop" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_inet_ntop="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_inet_ntop="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop might be used" >&5 -$as_echo_n "checking if inet_ntop might be used... " >&6; } - if test "$tst_links_inet_ntop" = "yes" && - test "$tst_proto_inet_ntop" = "yes" && - test "$tst_compi_inet_ntop" = "yes" && - test "$tst_allow_inet_ntop" = "yes" && - test "$tst_works_inet_ntop" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_INET_NTOP 1 -_ACEOF - - ac_cv_func_inet_ntop="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_inet_ntop="no" - fi - - - # - tst_links_inet_pton="unknown" - tst_proto_inet_pton="unknown" - tst_compi_inet_pton="unknown" - tst_works_inet_pton="unknown" - tst_allow_inet_pton="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton can be linked" >&5 -$as_echo_n "checking if inet_pton can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define inet_pton innocuous_inet_pton -#ifdef __STDC__ -# include -#else -# include -#endif -#undef inet_pton -#ifdef __cplusplus -extern "C" -#endif -char inet_pton (); -#if defined __stub_inet_pton || defined __stub___inet_pton -choke me -#endif - -int main (void) -{ -return inet_pton (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_inet_pton="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_inet_pton" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton is prototyped" >&5 -$as_echo_n "checking if inet_pton is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_arpa_inet - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "inet_pton" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_inet_pton="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_inet_pton" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton is compilable" >&5 -$as_echo_n "checking if inet_pton is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_arpa_inet - -int main (void) -{ - - if(0 != inet_pton(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_inet_pton="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_inet_pton" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton seems to work" >&5 -$as_echo_n "checking if inet_pton seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_arpa_inet - $curl_includes_string - -int main (void) -{ - - unsigned char ipv6a[16+1]; - unsigned char ipv4a[4+1]; - const char *ipv6src = "fe80::214:4fff:fe0b:76c8"; - const char *ipv4src = "192.168.100.1"; - /* - */ - memset(ipv4a, 1, sizeof(ipv4a)); - if(1 != inet_pton(AF_INET, ipv4src, ipv4a)) - exit(1); /* fail */ - /* - */ - if( (ipv4a[0] != 0xc0) || - (ipv4a[1] != 0xa8) || - (ipv4a[2] != 0x64) || - (ipv4a[3] != 0x01) || - (ipv4a[4] != 0x01) ) - exit(1); /* fail */ - /* - */ - memset(ipv6a, 1, sizeof(ipv6a)); - if(1 != inet_pton(AF_INET6, ipv6src, ipv6a)) - exit(1); /* fail */ - /* - */ - if( (ipv6a[0] != 0xfe) || - (ipv6a[1] != 0x80) || - (ipv6a[8] != 0x02) || - (ipv6a[9] != 0x14) || - (ipv6a[10] != 0x4f) || - (ipv6a[11] != 0xff) || - (ipv6a[12] != 0xfe) || - (ipv6a[13] != 0x0b) || - (ipv6a[14] != 0x76) || - (ipv6a[15] != 0xc8) || - (ipv6a[16] != 0x01) ) - exit(1); /* fail */ - /* - */ - if( (ipv6a[2] != 0x0) || - (ipv6a[3] != 0x0) || - (ipv6a[4] != 0x0) || - (ipv6a[5] != 0x0) || - (ipv6a[6] != 0x0) || - (ipv6a[7] != 0x0) ) - exit(1); /* fail */ - /* - */ - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_inet_pton="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_inet_pton="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_inet_pton" = "yes" && - test "$tst_works_inet_pton" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton usage allowed" >&5 -$as_echo_n "checking if inet_pton usage allowed... " >&6; } - if test "x$curl_disallow_inet_pton" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_inet_pton="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_inet_pton="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton might be used" >&5 -$as_echo_n "checking if inet_pton might be used... " >&6; } - if test "$tst_links_inet_pton" = "yes" && - test "$tst_proto_inet_pton" = "yes" && - test "$tst_compi_inet_pton" = "yes" && - test "$tst_allow_inet_pton" = "yes" && - test "$tst_works_inet_pton" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_INET_PTON 1 -_ACEOF - - ac_cv_func_inet_pton="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_inet_pton="no" - fi - - -curl_includes_stropts="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include -#endif -#ifdef HAVE_SYS_IOCTL_H -# include -#endif -#ifdef HAVE_STROPTS_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h unistd.h sys/socket.h sys/ioctl.h stropts.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_stropts -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_ioctl="unknown" - tst_proto_ioctl="unknown" - tst_compi_ioctl="unknown" - tst_allow_ioctl="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl can be linked" >&5 -$as_echo_n "checking if ioctl can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define ioctl innocuous_ioctl -#ifdef __STDC__ -# include -#else -# include -#endif -#undef ioctl -#ifdef __cplusplus -extern "C" -#endif -char ioctl (); -#if defined __stub_ioctl || defined __stub___ioctl -choke me -#endif - -int main (void) -{ -return ioctl (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ioctl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ioctl="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl is prototyped" >&5 -$as_echo_n "checking if ioctl is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stropts - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "ioctl" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ioctl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ioctl="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl is compilable" >&5 -$as_echo_n "checking if ioctl is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - if(0 != ioctl(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctl="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctl="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl usage allowed" >&5 -$as_echo_n "checking if ioctl usage allowed... " >&6; } - if test "x$curl_disallow_ioctl" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctl="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctl="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl might be used" >&5 -$as_echo_n "checking if ioctl might be used... " >&6; } - if test "$tst_links_ioctl" = "yes" && - test "$tst_proto_ioctl" = "yes" && - test "$tst_compi_ioctl" = "yes" && - test "$tst_allow_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTL 1 -_ACEOF - - ac_cv_func_ioctl="yes" - - # - tst_compi_ioctl_fionbio="unknown" - tst_allow_ioctl_fionbio="unknown" - # - if test "$ac_cv_func_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO is compilable" >&5 -$as_echo_n "checking if ioctl FIONBIO is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - int flags = 0; - if(0 != ioctl(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctl_fionbio="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctl_fionbio="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctl_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO usage allowed" >&5 -$as_echo_n "checking if ioctl FIONBIO usage allowed... " >&6; } - if test "x$curl_disallow_ioctl_fionbio" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctl_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctl_fionbio="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO might be used" >&5 -$as_echo_n "checking if ioctl FIONBIO might be used... " >&6; } - if test "$tst_compi_ioctl_fionbio" = "yes" && - test "$tst_allow_ioctl_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTL_FIONBIO 1 -_ACEOF - - ac_cv_func_ioctl_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctl_fionbio="no" - fi - - - # - tst_compi_ioctl_siocgifaddr="unknown" - tst_allow_ioctl_siocgifaddr="unknown" - # - if test "$ac_cv_func_ioctl" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR is compilable" >&5 -$as_echo_n "checking if ioctl SIOCGIFADDR is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - #include - -int main (void) -{ - - struct ifreq ifr; - if(0 != ioctl(0, SIOCGIFADDR, &ifr)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctl_siocgifaddr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctl_siocgifaddr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR usage allowed" >&5 -$as_echo_n "checking if ioctl SIOCGIFADDR usage allowed... " >&6; } - if test "x$curl_disallow_ioctl_siocgifaddr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctl_siocgifaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctl_siocgifaddr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR might be used" >&5 -$as_echo_n "checking if ioctl SIOCGIFADDR might be used... " >&6; } - if test "$tst_compi_ioctl_siocgifaddr" = "yes" && - test "$tst_allow_ioctl_siocgifaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTL_SIOCGIFADDR 1 -_ACEOF - - ac_cv_func_ioctl_siocgifaddr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctl_siocgifaddr="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctl="no" - fi - - - # - tst_links_ioctlsocket="unknown" - tst_proto_ioctlsocket="unknown" - tst_compi_ioctlsocket="unknown" - tst_allow_ioctlsocket="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket can be linked" >&5 -$as_echo_n "checking if ioctlsocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - -int main (void) -{ - - if(0 != ioctlsocket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ioctlsocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ioctlsocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is prototyped" >&5 -$as_echo_n "checking if ioctlsocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "ioctlsocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ioctlsocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ioctlsocket="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is compilable" >&5 -$as_echo_n "checking if ioctlsocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - -int main (void) -{ - - if(0 != ioctlsocket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket usage allowed" >&5 -$as_echo_n "checking if ioctlsocket usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket might be used" >&5 -$as_echo_n "checking if ioctlsocket might be used... " >&6; } - if test "$tst_links_ioctlsocket" = "yes" && - test "$tst_proto_ioctlsocket" = "yes" && - test "$tst_compi_ioctlsocket" = "yes" && - test "$tst_allow_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET 1 -_ACEOF - - ac_cv_func_ioctlsocket="yes" - - # - tst_compi_ioctlsocket_fionbio="unknown" - tst_allow_ioctlsocket_fionbio="unknown" - # - if test "$ac_cv_func_ioctlsocket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO is compilable" >&5 -$as_echo_n "checking if ioctlsocket FIONBIO is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - -int main (void) -{ - - int flags = 0; - if(0 != ioctlsocket(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket_fionbio="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket_fionbio="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO usage allowed" >&5 -$as_echo_n "checking if ioctlsocket FIONBIO usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket_fionbio" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket_fionbio="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO might be used" >&5 -$as_echo_n "checking if ioctlsocket FIONBIO might be used... " >&6; } - if test "$tst_compi_ioctlsocket_fionbio" = "yes" && - test "$tst_allow_ioctlsocket_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET_FIONBIO 1 -_ACEOF - - ac_cv_func_ioctlsocket_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket_fionbio="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket="no" - fi - - - # - tst_links_ioctlsocket_camel="unknown" - tst_proto_ioctlsocket_camel="unknown" - tst_compi_ioctlsocket_camel="unknown" - tst_allow_ioctlsocket_camel="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket can be linked" >&5 -$as_echo_n "checking if IoctlSocket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define IoctlSocket innocuous_IoctlSocket -#ifdef __STDC__ -# include -#else -# include -#endif -#undef IoctlSocket -#ifdef __cplusplus -extern "C" -#endif -char IoctlSocket (); -#if defined __stub_IoctlSocket || defined __stub___IoctlSocket -choke me -#endif - -int main (void) -{ -return IoctlSocket (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_ioctlsocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_ioctlsocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is prototyped" >&5 -$as_echo_n "checking if IoctlSocket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stropts - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "IoctlSocket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_ioctlsocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_ioctlsocket_camel="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is compilable" >&5 -$as_echo_n "checking if IoctlSocket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - if(0 != IoctlSocket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket_camel="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket_camel="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket usage allowed" >&5 -$as_echo_n "checking if IoctlSocket usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket_camel" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket_camel="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket_camel="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket might be used" >&5 -$as_echo_n "checking if IoctlSocket might be used... " >&6; } - if test "$tst_links_ioctlsocket_camel" = "yes" && - test "$tst_proto_ioctlsocket_camel" = "yes" && - test "$tst_compi_ioctlsocket_camel" = "yes" && - test "$tst_allow_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET_CAMEL 1 -_ACEOF - - ac_cv_func_ioctlsocket_camel="yes" - - # - tst_compi_ioctlsocket_camel_fionbio="unknown" - tst_allow_ioctlsocket_camel_fionbio="unknown" - # - if test "$ac_cv_func_ioctlsocket_camel" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO is compilable" >&5 -$as_echo_n "checking if IoctlSocket FIONBIO is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stropts - -int main (void) -{ - - long flags = 0; - if(0 != ioctlsocket(0, FIONBIO, &flags)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_ioctlsocket_camel_fionbio="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_ioctlsocket_camel_fionbio="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO usage allowed" >&5 -$as_echo_n "checking if IoctlSocket FIONBIO usage allowed... " >&6; } - if test "x$curl_disallow_ioctlsocket_camel_fionbio" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_ioctlsocket_camel_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_ioctlsocket_camel_fionbio="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO might be used" >&5 -$as_echo_n "checking if IoctlSocket FIONBIO might be used... " >&6; } - if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && - test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1 -_ACEOF - - ac_cv_func_ioctlsocket_camel_fionbio="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket_camel_fionbio="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_ioctlsocket_camel="no" - fi - - - # - tst_links_localtime_r="unknown" - tst_proto_localtime_r="unknown" - tst_compi_localtime_r="unknown" - tst_works_localtime_r="unknown" - tst_allow_localtime_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r can be linked" >&5 -$as_echo_n "checking if localtime_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define localtime_r innocuous_localtime_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef localtime_r -#ifdef __cplusplus -extern "C" -#endif -char localtime_r (); -#if defined __stub_localtime_r || defined __stub___localtime_r -choke me -#endif - -int main (void) -{ -return localtime_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_localtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_localtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r is prototyped" >&5 -$as_echo_n "checking if localtime_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_time - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "localtime_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_localtime_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_localtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r is compilable" >&5 -$as_echo_n "checking if localtime_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_time - -int main (void) -{ - - if(0 != localtime_r(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_localtime_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_localtime_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r seems to work" >&5 -$as_echo_n "checking if localtime_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_time - -int main (void) -{ - - time_t clock = 1170352587; - struct tm *tmp = 0; - struct tm result; - tmp = localtime_r(&clock, &result); - if(tmp) - exit(0); - else - exit(1); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_localtime_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_localtime_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_localtime_r" = "yes" && - test "$tst_works_localtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r usage allowed" >&5 -$as_echo_n "checking if localtime_r usage allowed... " >&6; } - if test "x$curl_disallow_localtime_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_localtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_localtime_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r might be used" >&5 -$as_echo_n "checking if localtime_r might be used... " >&6; } - if test "$tst_links_localtime_r" = "yes" && - test "$tst_proto_localtime_r" = "yes" && - test "$tst_compi_localtime_r" = "yes" && - test "$tst_allow_localtime_r" = "yes" && - test "$tst_works_localtime_r" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_LOCALTIME_R 1 -_ACEOF - - ac_cv_func_localtime_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_localtime_r="no" - fi - - - # - tst_links_memrchr="unknown" - tst_macro_memrchr="unknown" - tst_proto_memrchr="unknown" - tst_compi_memrchr="unknown" - tst_allow_memrchr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr can be linked" >&5 -$as_echo_n "checking if memrchr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define memrchr innocuous_memrchr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef memrchr -#ifdef __cplusplus -extern "C" -#endif -char memrchr (); -#if defined __stub_memrchr || defined __stub___memrchr -choke me -#endif - -int main (void) -{ -return memrchr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_memrchr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_memrchr" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr seems a macro" >&5 -$as_echo_n "checking if memrchr seems a macro... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != memrchr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_macro_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_macro_memrchr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$tst_links_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr is prototyped" >&5 -$as_echo_n "checking if memrchr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memrchr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_memrchr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_memrchr" = "yes" || - test "$tst_macro_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr is compilable" >&5 -$as_echo_n "checking if memrchr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != memrchr(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_memrchr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_memrchr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr usage allowed" >&5 -$as_echo_n "checking if memrchr usage allowed... " >&6; } - if test "x$curl_disallow_memrchr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_memrchr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_memrchr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memrchr might be used" >&5 -$as_echo_n "checking if memrchr might be used... " >&6; } - if (test "$tst_proto_memrchr" = "yes" || - test "$tst_macro_memrchr" = "yes") && - test "$tst_compi_memrchr" = "yes" && - test "$tst_allow_memrchr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_MEMRCHR 1 -_ACEOF - - ac_cv_func_memrchr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_memrchr="no" - fi - - -curl_includes_poll="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_POLL_H -# include -#endif -#ifdef HAVE_SYS_POLL_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h poll.h sys/poll.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_poll -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_poll="unknown" - tst_proto_poll="unknown" - tst_compi_poll="unknown" - tst_works_poll="unknown" - tst_allow_poll="unknown" - # - case $host_os in - darwin*|interix*) - curl_disallow_poll="yes" - ;; - esac - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll can be linked" >&5 -$as_echo_n "checking if poll can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_poll - -int main (void) -{ - - if(0 != poll(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_poll="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_poll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll is prototyped" >&5 -$as_echo_n "checking if poll is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_poll - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "poll" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_poll="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_poll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll is compilable" >&5 -$as_echo_n "checking if poll is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_poll - -int main (void) -{ - - if(0 != poll(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_poll="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_compi_poll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll seems to work" >&5 -$as_echo_n "checking if poll seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_poll - -int main (void) -{ - - if(0 != poll(0, 0, 10)) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_poll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_poll="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_poll" = "yes" && - test "$tst_works_poll" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll usage allowed" >&5 -$as_echo_n "checking if poll usage allowed... " >&6; } - if test "x$curl_disallow_poll" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_poll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_poll="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll might be used" >&5 -$as_echo_n "checking if poll might be used... " >&6; } - if test "$tst_links_poll" = "yes" && - test "$tst_proto_poll" = "yes" && - test "$tst_compi_poll" = "yes" && - test "$tst_allow_poll" = "yes" && - test "$tst_works_poll" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_POLL 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define HAVE_POLL_FINE 1 -_ACEOF - - ac_cv_func_poll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_poll="no" - fi - - - # - tst_links_setsockopt="unknown" - tst_proto_setsockopt="unknown" - tst_compi_setsockopt="unknown" - tst_allow_setsockopt="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt can be linked" >&5 -$as_echo_n "checking if setsockopt can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != setsockopt(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_setsockopt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_setsockopt="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt is prototyped" >&5 -$as_echo_n "checking if setsockopt is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_sys_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "setsockopt" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_setsockopt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_setsockopt="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt is compilable" >&5 -$as_echo_n "checking if setsockopt is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != setsockopt(0, 0, 0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_setsockopt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_setsockopt="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt usage allowed" >&5 -$as_echo_n "checking if setsockopt usage allowed... " >&6; } - if test "x$curl_disallow_setsockopt" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_setsockopt="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_setsockopt="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt might be used" >&5 -$as_echo_n "checking if setsockopt might be used... " >&6; } - if test "$tst_links_setsockopt" = "yes" && - test "$tst_proto_setsockopt" = "yes" && - test "$tst_compi_setsockopt" = "yes" && - test "$tst_allow_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SETSOCKOPT 1 -_ACEOF - - ac_cv_func_setsockopt="yes" - - # - tst_compi_setsockopt_so_nonblock="unknown" - tst_allow_setsockopt_so_nonblock="unknown" - # - if test "$ac_cv_func_setsockopt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK is compilable" >&5 -$as_echo_n "checking if setsockopt SO_NONBLOCK is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - -int main (void) -{ - - if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_setsockopt_so_nonblock="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_setsockopt_so_nonblock="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_setsockopt_so_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK usage allowed" >&5 -$as_echo_n "checking if setsockopt SO_NONBLOCK usage allowed... " >&6; } - if test "x$curl_disallow_setsockopt_so_nonblock" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_setsockopt_so_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_setsockopt_so_nonblock="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK might be used" >&5 -$as_echo_n "checking if setsockopt SO_NONBLOCK might be used... " >&6; } - if test "$tst_compi_setsockopt_so_nonblock" = "yes" && - test "$tst_allow_setsockopt_so_nonblock" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SETSOCKOPT_SO_NONBLOCK 1 -_ACEOF - - ac_cv_func_setsockopt_so_nonblock="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_setsockopt_so_nonblock="no" - fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_setsockopt="no" - fi - - -curl_includes_signal="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SIGNAL_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h signal.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_signal -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_sigaction="unknown" - tst_proto_sigaction="unknown" - tst_compi_sigaction="unknown" - tst_allow_sigaction="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction can be linked" >&5 -$as_echo_n "checking if sigaction can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define sigaction innocuous_sigaction -#ifdef __STDC__ -# include -#else -# include -#endif -#undef sigaction -#ifdef __cplusplus -extern "C" -#endif -char sigaction (); -#if defined __stub_sigaction || defined __stub___sigaction -choke me -#endif - -int main (void) -{ -return sigaction (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_sigaction="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_sigaction="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction is prototyped" >&5 -$as_echo_n "checking if sigaction is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_signal - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sigaction" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_sigaction="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_sigaction="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction is compilable" >&5 -$as_echo_n "checking if sigaction is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_signal - -int main (void) -{ - - if(0 != sigaction(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_sigaction="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_sigaction="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction usage allowed" >&5 -$as_echo_n "checking if sigaction usage allowed... " >&6; } - if test "x$curl_disallow_sigaction" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_sigaction="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_sigaction="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigaction might be used" >&5 -$as_echo_n "checking if sigaction might be used... " >&6; } - if test "$tst_links_sigaction" = "yes" && - test "$tst_proto_sigaction" = "yes" && - test "$tst_compi_sigaction" = "yes" && - test "$tst_allow_sigaction" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGACTION 1 -_ACEOF - - ac_cv_func_sigaction="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_sigaction="no" - fi - - - # - tst_links_siginterrupt="unknown" - tst_proto_siginterrupt="unknown" - tst_compi_siginterrupt="unknown" - tst_allow_siginterrupt="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt can be linked" >&5 -$as_echo_n "checking if siginterrupt can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define siginterrupt innocuous_siginterrupt -#ifdef __STDC__ -# include -#else -# include -#endif -#undef siginterrupt -#ifdef __cplusplus -extern "C" -#endif -char siginterrupt (); -#if defined __stub_siginterrupt || defined __stub___siginterrupt -choke me -#endif - -int main (void) -{ -return siginterrupt (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_siginterrupt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_siginterrupt="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is prototyped" >&5 -$as_echo_n "checking if siginterrupt is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_signal - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "siginterrupt" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_siginterrupt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_siginterrupt="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt is compilable" >&5 -$as_echo_n "checking if siginterrupt is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_signal - -int main (void) -{ - - if(0 != siginterrupt(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_siginterrupt="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_siginterrupt="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt usage allowed" >&5 -$as_echo_n "checking if siginterrupt usage allowed... " >&6; } - if test "x$curl_disallow_siginterrupt" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_siginterrupt="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_siginterrupt="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if siginterrupt might be used" >&5 -$as_echo_n "checking if siginterrupt might be used... " >&6; } - if test "$tst_links_siginterrupt" = "yes" && - test "$tst_proto_siginterrupt" = "yes" && - test "$tst_compi_siginterrupt" = "yes" && - test "$tst_allow_siginterrupt" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINTERRUPT 1 -_ACEOF - - ac_cv_func_siginterrupt="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_siginterrupt="no" - fi - - - # - tst_links_signal="unknown" - tst_proto_signal="unknown" - tst_compi_signal="unknown" - tst_allow_signal="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal can be linked" >&5 -$as_echo_n "checking if signal can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define signal innocuous_signal -#ifdef __STDC__ -# include -#else -# include -#endif -#undef signal -#ifdef __cplusplus -extern "C" -#endif -char signal (); -#if defined __stub_signal || defined __stub___signal -choke me -#endif - -int main (void) -{ -return signal (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_signal="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_signal="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal is prototyped" >&5 -$as_echo_n "checking if signal is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_signal - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "signal" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_signal="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_signal="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal is compilable" >&5 -$as_echo_n "checking if signal is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_signal - -int main (void) -{ - - if(0 != signal(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_signal="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_signal="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal usage allowed" >&5 -$as_echo_n "checking if signal usage allowed... " >&6; } - if test "x$curl_disallow_signal" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_signal="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_signal="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal might be used" >&5 -$as_echo_n "checking if signal might be used... " >&6; } - if test "$tst_links_signal" = "yes" && - test "$tst_proto_signal" = "yes" && - test "$tst_compi_signal" = "yes" && - test "$tst_allow_signal" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGNAL 1 -_ACEOF - - ac_cv_func_signal="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_signal="no" - fi - - -curl_includes_setjmp="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SETJMP_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h setjmp.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_setjmp -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_sigsetjmp="unknown" - tst_macro_sigsetjmp="unknown" - tst_proto_sigsetjmp="unknown" - tst_compi_sigsetjmp="unknown" - tst_allow_sigsetjmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp can be linked" >&5 -$as_echo_n "checking if sigsetjmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define sigsetjmp innocuous_sigsetjmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef sigsetjmp -#ifdef __cplusplus -extern "C" -#endif -char sigsetjmp (); -#if defined __stub_sigsetjmp || defined __stub___sigsetjmp -choke me -#endif - -int main (void) -{ -return sigsetjmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_sigsetjmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_sigsetjmp" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp seems a macro" >&5 -$as_echo_n "checking if sigsetjmp seems a macro... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_setjmp - -int main (void) -{ - - sigjmp_buf env; - if(0 != sigsetjmp(env, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_macro_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_macro_sigsetjmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$tst_links_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is prototyped" >&5 -$as_echo_n "checking if sigsetjmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_setjmp - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sigsetjmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_sigsetjmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_sigsetjmp" = "yes" || - test "$tst_macro_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp is compilable" >&5 -$as_echo_n "checking if sigsetjmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_setjmp - -int main (void) -{ - - sigjmp_buf env; - if(0 != sigsetjmp(env, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_sigsetjmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_sigsetjmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp usage allowed" >&5 -$as_echo_n "checking if sigsetjmp usage allowed... " >&6; } - if test "x$curl_disallow_sigsetjmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_sigsetjmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_sigsetjmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sigsetjmp might be used" >&5 -$as_echo_n "checking if sigsetjmp might be used... " >&6; } - if (test "$tst_proto_sigsetjmp" = "yes" || - test "$tst_macro_sigsetjmp" = "yes") && - test "$tst_compi_sigsetjmp" = "yes" && - test "$tst_allow_sigsetjmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGSETJMP 1 -_ACEOF - - ac_cv_func_sigsetjmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_sigsetjmp="no" - fi - - - # - tst_links_socket="unknown" - tst_proto_socket="unknown" - tst_compi_socket="unknown" - tst_allow_socket="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket can be linked" >&5 -$as_echo_n "checking if socket can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != socket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_socket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_socket="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket is prototyped" >&5 -$as_echo_n "checking if socket is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "socket" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_socket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_socket="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket is compilable" >&5 -$as_echo_n "checking if socket is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_winsock2 - $curl_includes_sys_socket - $curl_includes_socket - -int main (void) -{ - - if(0 != socket(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_socket="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_socket="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket usage allowed" >&5 -$as_echo_n "checking if socket usage allowed... " >&6; } - if test "x$curl_disallow_socket" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_socket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_socket="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if socket might be used" >&5 -$as_echo_n "checking if socket might be used... " >&6; } - if test "$tst_links_socket" = "yes" && - test "$tst_proto_socket" = "yes" && - test "$tst_compi_socket" = "yes" && - test "$tst_allow_socket" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_SOCKET 1 -_ACEOF - - ac_cv_func_socket="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_socket="no" - fi - - - # - tst_links_strcasecmp="unknown" - tst_proto_strcasecmp="unknown" - tst_compi_strcasecmp="unknown" - tst_allow_strcasecmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5 -$as_echo_n "checking if strcasecmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strcasecmp innocuous_strcasecmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strcasecmp -#ifdef __cplusplus -extern "C" -#endif -char strcasecmp (); -#if defined __stub_strcasecmp || defined __stub___strcasecmp -choke me -#endif - -int main (void) -{ -return strcasecmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strcasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strcasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5 -$as_echo_n "checking if strcasecmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strcasecmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strcasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strcasecmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5 -$as_echo_n "checking if strcasecmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strcasecmp(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strcasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strcasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5 -$as_echo_n "checking if strcasecmp usage allowed... " >&6; } - if test "x$curl_disallow_strcasecmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strcasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strcasecmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5 -$as_echo_n "checking if strcasecmp might be used... " >&6; } - if test "$tst_links_strcasecmp" = "yes" && - test "$tst_proto_strcasecmp" = "yes" && - test "$tst_compi_strcasecmp" = "yes" && - test "$tst_allow_strcasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRCASECMP 1 -_ACEOF - - ac_cv_func_strcasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strcasecmp="no" - fi - - - # - tst_links_strcasestr="unknown" - tst_proto_strcasestr="unknown" - tst_compi_strcasestr="unknown" - tst_allow_strcasestr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr can be linked" >&5 -$as_echo_n "checking if strcasestr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strcasestr innocuous_strcasestr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strcasestr -#ifdef __cplusplus -extern "C" -#endif -char strcasestr (); -#if defined __stub_strcasestr || defined __stub___strcasestr -choke me -#endif - -int main (void) -{ -return strcasestr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strcasestr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strcasestr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr is prototyped" >&5 -$as_echo_n "checking if strcasestr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strcasestr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strcasestr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strcasestr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr is compilable" >&5 -$as_echo_n "checking if strcasestr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strcasestr(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strcasestr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strcasestr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr usage allowed" >&5 -$as_echo_n "checking if strcasestr usage allowed... " >&6; } - if test "x$curl_disallow_strcasestr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strcasestr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strcasestr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcasestr might be used" >&5 -$as_echo_n "checking if strcasestr might be used... " >&6; } - if test "$tst_links_strcasestr" = "yes" && - test "$tst_proto_strcasestr" = "yes" && - test "$tst_compi_strcasestr" = "yes" && - test "$tst_allow_strcasestr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRCASESTR 1 -_ACEOF - - ac_cv_func_strcasestr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strcasestr="no" - fi - - - # - tst_links_strcmpi="unknown" - tst_proto_strcmpi="unknown" - tst_compi_strcmpi="unknown" - tst_allow_strcmpi="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5 -$as_echo_n "checking if strcmpi can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strcmpi innocuous_strcmpi -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strcmpi -#ifdef __cplusplus -extern "C" -#endif -char strcmpi (); -#if defined __stub_strcmpi || defined __stub___strcmpi -choke me -#endif - -int main (void) -{ -return strcmpi (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strcmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strcmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5 -$as_echo_n "checking if strcmpi is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strcmpi" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strcmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strcmpi="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5 -$as_echo_n "checking if strcmpi is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strcmpi(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strcmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strcmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5 -$as_echo_n "checking if strcmpi usage allowed... " >&6; } - if test "x$curl_disallow_strcmpi" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strcmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strcmpi="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5 -$as_echo_n "checking if strcmpi might be used... " >&6; } - if test "$tst_links_strcmpi" = "yes" && - test "$tst_proto_strcmpi" = "yes" && - test "$tst_compi_strcmpi" = "yes" && - test "$tst_allow_strcmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRCMPI 1 -_ACEOF - - ac_cv_func_strcmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strcmpi="no" - fi - - - # - tst_links_strdup="unknown" - tst_proto_strdup="unknown" - tst_compi_strdup="unknown" - tst_allow_strdup="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup can be linked" >&5 -$as_echo_n "checking if strdup can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strdup innocuous_strdup -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strdup -#ifdef __cplusplus -extern "C" -#endif -char strdup (); -#if defined __stub_strdup || defined __stub___strdup -choke me -#endif - -int main (void) -{ -return strdup (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strdup="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strdup="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup is prototyped" >&5 -$as_echo_n "checking if strdup is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strdup" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strdup="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strdup="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup is compilable" >&5 -$as_echo_n "checking if strdup is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strdup(0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strdup="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strdup="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup usage allowed" >&5 -$as_echo_n "checking if strdup usage allowed... " >&6; } - if test "x$curl_disallow_strdup" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strdup="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strdup="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strdup might be used" >&5 -$as_echo_n "checking if strdup might be used... " >&6; } - if test "$tst_links_strdup" = "yes" && - test "$tst_proto_strdup" = "yes" && - test "$tst_compi_strdup" = "yes" && - test "$tst_allow_strdup" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRDUP 1 -_ACEOF - - ac_cv_func_strdup="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strdup="no" - fi - - - # - tst_links_strerror_r="unknown" - tst_proto_strerror_r="unknown" - tst_compi_strerror_r="unknown" - tst_glibc_strerror_r="unknown" - tst_posix_strerror_r="unknown" - tst_allow_strerror_r="unknown" - tst_works_glibc_strerror_r="unknown" - tst_works_posix_strerror_r="unknown" - tst_glibc_strerror_r_type_arg3="unknown" - tst_posix_strerror_r_type_arg3="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r can be linked" >&5 -$as_echo_n "checking if strerror_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strerror_r innocuous_strerror_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strerror_r -#ifdef __cplusplus -extern "C" -#endif -char strerror_r (); -#if defined __stub_strerror_r || defined __stub___strerror_r -choke me -#endif - -int main (void) -{ -return strerror_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strerror_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is prototyped" >&5 -$as_echo_n "checking if strerror_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strerror_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strerror_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is compilable" >&5 -$as_echo_n "checking if strerror_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strerror_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strerror_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is glibc like" >&5 -$as_echo_n "checking if strerror_r is glibc like... " >&6; } - tst_glibc_strerror_r_type_arg3="unknown" - for arg3 in 'size_t' 'int' 'unsigned int'; do - if test "$tst_glibc_strerror_r_type_arg3" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - char *strerror_r(int errnum, char *workbuf, $arg3 bufsize); - if(0 != strerror_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_glibc_strerror_r_type_arg3="$arg3" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - case "$tst_glibc_strerror_r_type_arg3" in - unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_glibc_strerror_r="no" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_glibc_strerror_r="yes" - ;; - esac - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_glibc_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5 -$as_echo_n "checking if strerror_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_string -# include - -int main (void) -{ - - char buffer[1024]; - char *string = 0; - buffer[0] = '\0'; - string = strerror_r(EACCES, buffer, sizeof(buffer)); - if(!string) - exit(1); /* fail */ - if(!string[0]) - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_glibc_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_glibc_strerror_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_compi_strerror_r" = "yes" && - test "$tst_works_glibc_strerror_r" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r is POSIX like" >&5 -$as_echo_n "checking if strerror_r is POSIX like... " >&6; } - tst_posix_strerror_r_type_arg3="unknown" - for arg3 in 'size_t' 'int' 'unsigned int'; do - if test "$tst_posix_strerror_r_type_arg3" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - int strerror_r(int errnum, char *resultbuf, $arg3 bufsize); - if(0 != strerror_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - tst_posix_strerror_r_type_arg3="$arg3" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - case "$tst_posix_strerror_r_type_arg3" in - unknown) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_posix_strerror_r="no" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_posix_strerror_r="yes" - ;; - esac - fi - # - if test "x$cross_compiling" != "xyes" && - test "$tst_posix_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5 -$as_echo_n "checking if strerror_r seems to work... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5 ; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - $curl_includes_string -# include - -int main (void) -{ - - char buffer[1024]; - int error = 1; - buffer[0] = '\0'; - error = strerror_r(EACCES, buffer, sizeof(buffer)); - if(error) - exit(1); /* fail */ - if(buffer[0] == '\0') - exit(1); /* fail */ - else - exit(0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_works_posix_strerror_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_works_posix_strerror_r="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - # - if test "$tst_works_glibc_strerror_r" = "yes"; then - tst_posix_strerror_r="no" - fi - if test "$tst_works_posix_strerror_r" = "yes"; then - tst_glibc_strerror_r="no" - fi - if test "$tst_glibc_strerror_r" = "yes" && - test "$tst_works_glibc_strerror_r" != "no" && - test "$tst_posix_strerror_r" != "yes"; then - tst_allow_strerror_r="check" - fi - if test "$tst_posix_strerror_r" = "yes" && - test "$tst_works_posix_strerror_r" != "no" && - test "$tst_glibc_strerror_r" != "yes"; then - tst_allow_strerror_r="check" - fi - if test "$tst_allow_strerror_r" = "check"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r usage allowed" >&5 -$as_echo_n "checking if strerror_r usage allowed... " >&6; } - if test "x$curl_disallow_strerror_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strerror_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strerror_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r might be used" >&5 -$as_echo_n "checking if strerror_r might be used... " >&6; } - if test "$tst_links_strerror_r" = "yes" && - test "$tst_proto_strerror_r" = "yes" && - test "$tst_compi_strerror_r" = "yes" && - test "$tst_allow_strerror_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "$tst_glibc_strerror_r" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define HAVE_GLIBC_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define STRERROR_R_TYPE_ARG3 $tst_glibc_strerror_r_type_arg3 -_ACEOF - - fi - if test "$tst_posix_strerror_r" = "yes"; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define HAVE_POSIX_STRERROR_R 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define STRERROR_R_TYPE_ARG3 $tst_posix_strerror_r_type_arg3 -_ACEOF - - fi - ac_cv_func_strerror_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strerror_r="no" - fi - # - if test "$tst_compi_strerror_r" = "yes" && - test "$tst_allow_strerror_r" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&5 -$as_echo "$as_me: WARNING: cannot determine strerror_r() style: edit lib/curl_config.h manually." >&2;} - fi - # - - - # - tst_links_stricmp="unknown" - tst_proto_stricmp="unknown" - tst_compi_stricmp="unknown" - tst_allow_stricmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5 -$as_echo_n "checking if stricmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define stricmp innocuous_stricmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef stricmp -#ifdef __cplusplus -extern "C" -#endif -char stricmp (); -#if defined __stub_stricmp || defined __stub___stricmp -choke me -#endif - -int main (void) -{ -return stricmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_stricmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_stricmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5 -$as_echo_n "checking if stricmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "stricmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_stricmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_stricmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5 -$as_echo_n "checking if stricmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != stricmp(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_stricmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_stricmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5 -$as_echo_n "checking if stricmp usage allowed... " >&6; } - if test "x$curl_disallow_stricmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_stricmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_stricmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5 -$as_echo_n "checking if stricmp might be used... " >&6; } - if test "$tst_links_stricmp" = "yes" && - test "$tst_proto_stricmp" = "yes" && - test "$tst_compi_stricmp" = "yes" && - test "$tst_allow_stricmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRICMP 1 -_ACEOF - - ac_cv_func_stricmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_stricmp="no" - fi - - - # - tst_links_strlcat="unknown" - tst_proto_strlcat="unknown" - tst_compi_strlcat="unknown" - tst_allow_strlcat="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat can be linked" >&5 -$as_echo_n "checking if strlcat can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strlcat innocuous_strlcat -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strlcat -#ifdef __cplusplus -extern "C" -#endif -char strlcat (); -#if defined __stub_strlcat || defined __stub___strlcat -choke me -#endif - -int main (void) -{ -return strlcat (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strlcat="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strlcat="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat is prototyped" >&5 -$as_echo_n "checking if strlcat is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strlcat" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strlcat="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strlcat="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat is compilable" >&5 -$as_echo_n "checking if strlcat is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strlcat(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strlcat="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strlcat="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat usage allowed" >&5 -$as_echo_n "checking if strlcat usage allowed... " >&6; } - if test "x$curl_disallow_strlcat" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strlcat="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strlcat="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strlcat might be used" >&5 -$as_echo_n "checking if strlcat might be used... " >&6; } - if test "$tst_links_strlcat" = "yes" && - test "$tst_proto_strlcat" = "yes" && - test "$tst_compi_strlcat" = "yes" && - test "$tst_allow_strlcat" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRLCAT 1 -_ACEOF - - ac_cv_func_strlcat="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strlcat="no" - fi - - - # - tst_links_strncasecmp="unknown" - tst_proto_strncasecmp="unknown" - tst_compi_strncasecmp="unknown" - tst_allow_strncasecmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp can be linked" >&5 -$as_echo_n "checking if strncasecmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strncasecmp innocuous_strncasecmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strncasecmp -#ifdef __cplusplus -extern "C" -#endif -char strncasecmp (); -#if defined __stub_strncasecmp || defined __stub___strncasecmp -choke me -#endif - -int main (void) -{ -return strncasecmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strncasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strncasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp is prototyped" >&5 -$as_echo_n "checking if strncasecmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strncasecmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strncasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strncasecmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp is compilable" >&5 -$as_echo_n "checking if strncasecmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strncasecmp(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strncasecmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strncasecmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp usage allowed" >&5 -$as_echo_n "checking if strncasecmp usage allowed... " >&6; } - if test "x$curl_disallow_strncasecmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strncasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strncasecmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncasecmp might be used" >&5 -$as_echo_n "checking if strncasecmp might be used... " >&6; } - if test "$tst_links_strncasecmp" = "yes" && - test "$tst_proto_strncasecmp" = "yes" && - test "$tst_compi_strncasecmp" = "yes" && - test "$tst_allow_strncasecmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRNCASECMP 1 -_ACEOF - - ac_cv_func_strncasecmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strncasecmp="no" - fi - - - # - tst_links_strncmpi="unknown" - tst_proto_strncmpi="unknown" - tst_compi_strncmpi="unknown" - tst_allow_strncmpi="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi can be linked" >&5 -$as_echo_n "checking if strncmpi can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strncmpi innocuous_strncmpi -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strncmpi -#ifdef __cplusplus -extern "C" -#endif -char strncmpi (); -#if defined __stub_strncmpi || defined __stub___strncmpi -choke me -#endif - -int main (void) -{ -return strncmpi (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strncmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strncmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi is prototyped" >&5 -$as_echo_n "checking if strncmpi is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strncmpi" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strncmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strncmpi="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi is compilable" >&5 -$as_echo_n "checking if strncmpi is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strncmpi(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strncmpi="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strncmpi="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi usage allowed" >&5 -$as_echo_n "checking if strncmpi usage allowed... " >&6; } - if test "x$curl_disallow_strncmpi" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strncmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strncmpi="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strncmpi might be used" >&5 -$as_echo_n "checking if strncmpi might be used... " >&6; } - if test "$tst_links_strncmpi" = "yes" && - test "$tst_proto_strncmpi" = "yes" && - test "$tst_compi_strncmpi" = "yes" && - test "$tst_allow_strncmpi" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRNCMPI 1 -_ACEOF - - ac_cv_func_strncmpi="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strncmpi="no" - fi - - - # - tst_links_strnicmp="unknown" - tst_proto_strnicmp="unknown" - tst_compi_strnicmp="unknown" - tst_allow_strnicmp="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp can be linked" >&5 -$as_echo_n "checking if strnicmp can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strnicmp innocuous_strnicmp -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strnicmp -#ifdef __cplusplus -extern "C" -#endif -char strnicmp (); -#if defined __stub_strnicmp || defined __stub___strnicmp -choke me -#endif - -int main (void) -{ -return strnicmp (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strnicmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strnicmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp is prototyped" >&5 -$as_echo_n "checking if strnicmp is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strnicmp" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strnicmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strnicmp="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp is compilable" >&5 -$as_echo_n "checking if strnicmp is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strnicmp(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strnicmp="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strnicmp="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp usage allowed" >&5 -$as_echo_n "checking if strnicmp usage allowed... " >&6; } - if test "x$curl_disallow_strnicmp" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strnicmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strnicmp="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strnicmp might be used" >&5 -$as_echo_n "checking if strnicmp might be used... " >&6; } - if test "$tst_links_strnicmp" = "yes" && - test "$tst_proto_strnicmp" = "yes" && - test "$tst_compi_strnicmp" = "yes" && - test "$tst_allow_strnicmp" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRNICMP 1 -_ACEOF - - ac_cv_func_strnicmp="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strnicmp="no" - fi - - - # - tst_links_strstr="unknown" - tst_proto_strstr="unknown" - tst_compi_strstr="unknown" - tst_allow_strstr="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr can be linked" >&5 -$as_echo_n "checking if strstr can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strstr innocuous_strstr -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strstr -#ifdef __cplusplus -extern "C" -#endif -char strstr (); -#if defined __stub_strstr || defined __stub___strstr -choke me -#endif - -int main (void) -{ -return strstr (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strstr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strstr="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr is prototyped" >&5 -$as_echo_n "checking if strstr is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strstr" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strstr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strstr="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr is compilable" >&5 -$as_echo_n "checking if strstr is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strstr(0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strstr="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strstr="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr usage allowed" >&5 -$as_echo_n "checking if strstr usage allowed... " >&6; } - if test "x$curl_disallow_strstr" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strstr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strstr="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strstr might be used" >&5 -$as_echo_n "checking if strstr might be used... " >&6; } - if test "$tst_links_strstr" = "yes" && - test "$tst_proto_strstr" = "yes" && - test "$tst_compi_strstr" = "yes" && - test "$tst_allow_strstr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRSTR 1 -_ACEOF - - ac_cv_func_strstr="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strstr="no" - fi - - - # - tst_links_strtok_r="unknown" - tst_proto_strtok_r="unknown" - tst_compi_strtok_r="unknown" - tst_allow_strtok_r="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r can be linked" >&5 -$as_echo_n "checking if strtok_r can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strtok_r innocuous_strtok_r -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strtok_r -#ifdef __cplusplus -extern "C" -#endif -char strtok_r (); -#if defined __stub_strtok_r || defined __stub___strtok_r -choke me -#endif - -int main (void) -{ -return strtok_r (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strtok_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strtok_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r is prototyped" >&5 -$as_echo_n "checking if strtok_r is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_string - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtok_r" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strtok_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strtok_r="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r is compilable" >&5 -$as_echo_n "checking if strtok_r is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_string - -int main (void) -{ - - if(0 != strtok_r(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strtok_r="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strtok_r="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r usage allowed" >&5 -$as_echo_n "checking if strtok_r usage allowed... " >&6; } - if test "x$curl_disallow_strtok_r" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strtok_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strtok_r="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtok_r might be used" >&5 -$as_echo_n "checking if strtok_r might be used... " >&6; } - if test "$tst_links_strtok_r" = "yes" && - test "$tst_proto_strtok_r" = "yes" && - test "$tst_compi_strtok_r" = "yes" && - test "$tst_allow_strtok_r" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRTOK_R 1 -_ACEOF - - ac_cv_func_strtok_r="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strtok_r="no" - fi - - - # - tst_links_strtoll="unknown" - tst_proto_strtoll="unknown" - tst_compi_strtoll="unknown" - tst_allow_strtoll="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll can be linked" >&5 -$as_echo_n "checking if strtoll can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define strtoll innocuous_strtoll -#ifdef __STDC__ -# include -#else -# include -#endif -#undef strtoll -#ifdef __cplusplus -extern "C" -#endif -char strtoll (); -#if defined __stub_strtoll || defined __stub___strtoll -choke me -#endif - -int main (void) -{ -return strtoll (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_strtoll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_strtoll="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll is prototyped" >&5 -$as_echo_n "checking if strtoll is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_stdlib - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "strtoll" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_strtoll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_strtoll="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll is compilable" >&5 -$as_echo_n "checking if strtoll is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_stdlib - -int main (void) -{ - - if(0 != strtoll(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_strtoll="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_strtoll="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll usage allowed" >&5 -$as_echo_n "checking if strtoll usage allowed... " >&6; } - if test "x$curl_disallow_strtoll" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_strtoll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_strtoll="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if strtoll might be used" >&5 -$as_echo_n "checking if strtoll might be used... " >&6; } - if test "$tst_links_strtoll" = "yes" && - test "$tst_proto_strtoll" = "yes" && - test "$tst_compi_strtoll" = "yes" && - test "$tst_allow_strtoll" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRTOLL 1 -_ACEOF - - ac_cv_func_strtoll="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_strtoll="no" - fi - - -curl_includes_sys_uio="\ -/* includes start */ -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_UIO_H -# include -#endif -/* includes end */" - for ac_header in sys/types.h sys/uio.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_uio -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - # - tst_links_writev="unknown" - tst_proto_writev="unknown" - tst_compi_writev="unknown" - tst_allow_writev="unknown" - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev can be linked" >&5 -$as_echo_n "checking if writev can be linked... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define writev innocuous_writev -#ifdef __STDC__ -# include -#else -# include -#endif -#undef writev -#ifdef __cplusplus -extern "C" -#endif -char writev (); -#if defined __stub_writev || defined __stub___writev -choke me -#endif - -int main (void) -{ -return writev (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_links_writev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_links_writev="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$tst_links_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev is prototyped" >&5 -$as_echo_n "checking if writev is prototyped... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $curl_includes_sys_uio - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "writev" >/dev/null 2>&1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_proto_writev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_proto_writev="no" - -fi -rm -f conftest* - - fi - # - if test "$tst_proto_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev is compilable" >&5 -$as_echo_n "checking if writev is compilable... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - $curl_includes_sys_uio - -int main (void) -{ - - if(0 != writev(0, 0, 0)) - return 1; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_compi_writev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_compi_writev="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - # - if test "$tst_compi_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev usage allowed" >&5 -$as_echo_n "checking if writev usage allowed... " >&6; } - if test "x$curl_disallow_writev" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - tst_allow_writev="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - tst_allow_writev="no" - fi - fi - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if writev might be used" >&5 -$as_echo_n "checking if writev might be used... " >&6; } - if test "$tst_links_writev" = "yes" && - test "$tst_proto_writev" = "yes" && - test "$tst_compi_writev" = "yes" && - test "$tst_allow_writev" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<_ACEOF -#define HAVE_WRITEV 1 -_ACEOF - - ac_cv_func_writev="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ac_cv_func_writev="no" - fi - - -case $host in - *msdosdjgpp) - ac_cv_func_pipe=no - skipcheck_pipe=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: skip check for pipe on msdosdjgpp" >&5 -$as_echo "$as_me: skip check for pipe on msdosdjgpp" >&6;} - ;; -esac - -for ac_func in fork \ - geteuid \ - getpass_r \ - getppid \ - getprotobyname \ - getpwuid \ - getrlimit \ - gettimeofday \ - inet_addr \ - perror \ - pipe \ - setlocale \ - setmode \ - setrlimit \ - uname \ - utime - -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - - -else - - func="$ac_func" - eval skipcheck=\$skipcheck_$func - if test "x$skipcheck" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper for $func" >&5 -$as_echo_n "checking deeper for $func... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - $func (); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - eval "ac_cv_func_$func=yes" - -cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$func" | $as_tr_cpp` 1 -_ACEOF - - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 -$as_echo "but still no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - -fi -done - - - - for ac_header in sys/types.h sys/socket.h netdb.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo" >&5 -$as_echo_n "checking for getnameinfo... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define getnameinfo innocuous_getnameinfo -#ifdef __STDC__ -# include -#else -# include -#endif -#undef getnameinfo -#ifdef __cplusplus -extern "C" -#endif -char getnameinfo (); -#if defined __stub_getnameinfo || defined __stub___getnameinfo -choke me -#endif - -int main (void) -{ -return getnameinfo (); - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_getnameinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - curl_cv_getnameinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - # - if test "$curl_cv_getnameinfo" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper for getnameinfo" >&5 -$as_echo_n "checking deeper for getnameinfo... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - - -int main (void) -{ - - getnameinfo(); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_getnameinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 -$as_echo "but still no" >&6; } - curl_cv_getnameinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$curl_cv_getnameinfo" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking deeper and deeper for getnameinfo" >&5 -$as_echo_n "checking deeper and deeper for getnameinfo... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#endif - -int main (void) -{ - - getnameinfo(0, 0, 0, 0, 0, 0, 0); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - curl_cv_getnameinfo="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 -$as_echo "but still no" >&6; } - curl_cv_getnameinfo="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - # - if test "$curl_cv_getnameinfo" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for getnameinfo" >&5 -$as_echo_n "checking types of arguments for getnameinfo... " >&6; } -if test "${curl_cv_func_getnameinfo_args+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - curl_cv_func_getnameinfo_args="unknown" - for gni_arg1 in 'struct sockaddr *' 'const struct sockaddr *' 'void *'; do - for gni_arg2 in 'socklen_t' 'size_t' 'int'; do - for gni_arg46 in 'size_t' 'int' 'socklen_t' 'unsigned int' 'DWORD'; do - for gni_arg7 in 'int' 'unsigned int'; do - if test "$curl_cv_func_getnameinfo_args" = "unknown"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#if (!defined(_WIN32_WINNT)) || (_WIN32_WINNT < 0x0501) -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0501 -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#endif -#define GNICALLCONV WSAAPI -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#define GNICALLCONV -#endif - extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, - char *, $gni_arg46, - char *, $gni_arg46, - $gni_arg7); - -int main (void) -{ - - $gni_arg2 salen=0; - $gni_arg46 hostlen=0; - $gni_arg46 servlen=0; - $gni_arg7 flags=0; - int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - done - done - done - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_getnameinfo_args" >&5 -$as_echo "$curl_cv_func_getnameinfo_args" >&6; } # AC-CACHE-CHECK - if test "$curl_cv_func_getnameinfo_args" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for getnameinfo args" >&5 -$as_echo "$as_me: WARNING: Cannot find proper types to use for getnameinfo args" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_GETNAMEINFO will not be defined" >&5 -$as_echo "$as_me: WARNING: HAVE_GETNAMEINFO will not be defined" >&2;} - else - gni_prev_IFS=$IFS; IFS=',' - set dummy `echo "$curl_cv_func_getnameinfo_args" | sed 's/\*/\*/g'` - IFS=$gni_prev_IFS - shift - # - gni_qual_type_arg1=$1 - # - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG2 $2 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG46 $3 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG7 $4 -_ACEOF - - # - prev_sh_opts=$- - # - case $prev_sh_opts in - *f*) - ;; - *) - set -f - ;; - esac - # - case "$gni_qual_type_arg1" in - const*) - gni_qual_arg1=const - gni_type_arg1=`echo $gni_qual_type_arg1 | sed 's/^const //'` - ;; - *) - gni_qual_arg1= - gni_type_arg1=$gni_qual_type_arg1 - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_QUAL_ARG1 $gni_qual_arg1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define GETNAMEINFO_TYPE_ARG1 $gni_type_arg1 -_ACEOF - - # - case $prev_sh_opts in - *f*) - ;; - *) - set +f - ;; - esac - # - -cat >>confdefs.h <<_ACEOF -#define HAVE_GETNAMEINFO 1 -_ACEOF - - ac_cv_func_getnameinfo="yes" - fi - fi - - -if test "$ipv6" = "yes"; then - if test "$ac_cv_func_getaddrinfo" = "yes"; then - -$as_echo "#define ENABLE_IPV6 1" >>confdefs.h - - IPV6_ENABLED=1 - - fi - - for ac_header in stdio.h sys/types.h sys/socket.h \ - netdb.h netinet/in.h arpa/inet.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working NI_WITHSCOPEID" >&5 -$as_echo_n "checking for working NI_WITHSCOPEID... " >&6; } -if test "${ac_cv_working_ni_withscopeid+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - if test "$cross_compiling" = yes; then : - - # Program is not run when cross-compiling. So we assume - # NI_WITHSCOPEID will work if we are able to compile it. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include -#include -#include - -int main (void) -{ - - unsigned int dummy= NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - ac_cv_working_ni_withscopeid="yes" - -else - - ac_cv_working_ni_withscopeid="no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # AC-COMPILE-IFELSE - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef HAVE_STDLIB_H -#include -#endif -#ifdef HAVE_STDIO_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif - -int main (void) -{ - -#if defined(NI_WITHSCOPEID) && defined(HAVE_GETNAMEINFO) -#ifdef HAVE_STRUCT_SOCKADDR_STORAGE - struct sockaddr_storage sa; -#else - unsigned char sa[256]; -#endif - char hostbuf[NI_MAXHOST]; - int rc; - GETNAMEINFO_TYPE_ARG2 salen = (GETNAMEINFO_TYPE_ARG2)sizeof(sa); - GETNAMEINFO_TYPE_ARG46 hostlen = (GETNAMEINFO_TYPE_ARG46)sizeof(hostbuf); - GETNAMEINFO_TYPE_ARG7 flags = NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; - int fd = socket(AF_INET6, SOCK_STREAM, 0); - if(fd < 0) { - perror("socket()"); - return 1; /* Error creating socket */ - } - rc = getsockname(fd, (GETNAMEINFO_TYPE_ARG1)&sa, &salen); - if(rc) { - perror("getsockname()"); - return 2; /* Error retrieving socket name */ - } - rc = getnameinfo((GETNAMEINFO_TYPE_ARG1)&sa, salen, hostbuf, hostlen, NULL, 0, flags); - if(rc) { - printf("rc = %s\n", gai_strerror(rc)); - return 3; /* Error translating socket address */ - } - return 0; /* Ok, NI_WITHSCOPEID works */ -#else - return 4; /* Error, NI_WITHSCOPEID not defined or no getnameinfo() */ -#endif - - ; - return 0; -} # AC-LANG-PROGRAM - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - - # Exit code == 0. Program worked. - ac_cv_working_ni_withscopeid="yes" - -else - - # Exit code != 0. Program failed. - ac_cv_working_ni_withscopeid="no" - -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - # AC-RUN-IFELSE - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_ni_withscopeid" >&5 -$as_echo "$ac_cv_working_ni_withscopeid" >&6; } # AC-CACHE-CHECK - case "$ac_cv_working_ni_withscopeid" in - yes) - -$as_echo "#define HAVE_NI_WITHSCOPEID 1" >>confdefs.h - - ;; - esac - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable non-blocking communications" >&5 -$as_echo_n "checking whether to enable non-blocking communications... " >&6; } - OPT_NONBLOCKING="default" - # Check whether --enable-nonblocking was given. -if test "${enable_nonblocking+set}" = set; then : - enableval=$enable_nonblocking; OPT_NONBLOCKING=$enableval -fi - - case "$OPT_NONBLOCKING" in - no) - want_nonblocking="no" - ;; - default) - want_nonblocking="yes" - ;; - *) - want_nonblocking="yes" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_nonblocking" >&5 -$as_echo "$want_nonblocking" >&6; } - - - # - tst_method="unknown" - if test "$want_nonblocking" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to set a socket into non-blocking mode" >&5 -$as_echo_n "checking how to set a socket into non-blocking mode... " >&6; } - if test "x$ac_cv_func_fcntl_o_nonblock" = "xyes"; then - tst_method="fcntl O_NONBLOCK" - elif test "x$ac_cv_func_ioctl_fionbio" = "xyes"; then - tst_method="ioctl FIONBIO" - elif test "x$ac_cv_func_ioctlsocket_fionbio" = "xyes"; then - tst_method="ioctlsocket FIONBIO" - elif test "x$ac_cv_func_ioctlsocket_camel_fionbio" = "xyes"; then - tst_method="IoctlSocket FIONBIO" - elif test "x$ac_cv_func_setsockopt_so_nonblock" = "xyes"; then - tst_method="setsockopt SO_NONBLOCK" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tst_method" >&5 -$as_echo "$tst_method" >&6; } - if test "$tst_method" = "unknown"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine non-blocking socket method." >&5 -$as_echo "$as_me: WARNING: cannot determine non-blocking socket method." >&2;} - fi - fi - if test "$tst_method" = "unknown"; then - -cat >>confdefs.h <<_ACEOF -#define USE_BLOCKING_SOCKETS 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: non-blocking sockets disabled." >&5 -$as_echo "$as_me: WARNING: non-blocking sockets disabled." >&2;} - fi - - - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PERL+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin " -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PERL=$ac_cv_path_PERL -if test -n "$PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -$as_echo "$PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -for ac_prog in gnroff nroff -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_NROFF+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $NROFF in - [\\/]* | ?:[\\/]*) - ac_cv_path_NROFF="$NROFF" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin/:/usr/local/bin " -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_NROFF="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -NROFF=$ac_cv_path_NROFF -if test -n "$NROFF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5 -$as_echo "$NROFF" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$NROFF" && break -done - - - -if test -n "$NROFF"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to use *nroff to get plain text from man pages" >&5 -$as_echo_n "checking how to use *nroff to get plain text from man pages... " >&6; } - MANOPT="-man" - mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null` - if test -z "$mancheck"; then - MANOPT="-mandoc" - mancheck=`echo foo | $NROFF $MANOPT 2>/dev/null` - if test -z "$mancheck"; then - MANOPT="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: found no *nroff option to get plaintext from man pages" >&5 -$as_echo "$as_me: WARNING: found no *nroff option to get plaintext from man pages" >&2;} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5 -$as_echo "$MANOPT" >&6; } - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANOPT" >&5 -$as_echo "$MANOPT" >&6; } - fi - -fi - -if test -z "$MANOPT" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling built-in manual" >&5 -$as_echo "$as_me: WARNING: disabling built-in manual" >&2;} - USE_MANUAL="no"; -fi - - -if test "$USE_MANUAL" = "1"; then - -$as_echo "#define USE_MANUAL 1" >>confdefs.h - - curl_manual_msg="enabled" -fi - - - -if test x"$USE_MANUAL" = x1; then - USE_MANUAL_TRUE= - USE_MANUAL_FALSE='#' -else - USE_MANUAL_TRUE='#' - USE_MANUAL_FALSE= -fi - - - - - - # - if test "$want_ares" = "yes"; then - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LIBS="$LIBS" - embedded_ares="unknown" - configure_runpath=`pwd` - embedded_ares_builddir="$configure_runpath/ares" - if test -n "$want_ares_path"; then - ares_CPPFLAGS="-I$want_ares_path/include" - ares_LDFLAGS="-L$want_ares_path/lib" - ares_LIBS="-lcares" - else - if test -d "$srcdir/ares"; then - embedded_ares="yes" - subdirs="$subdirs ares" - - ares_CPPFLAGS="" - ares_LDFLAGS="-L$embedded_ares_builddir" - ares_LIBS="-lcares" - else - ares_CPPFLAGS="" - ares_LDFLAGS="" - ares_LIBS="-lcares" - fi - fi - # - CPPFLAGS="$ares_CPPFLAGS $clean_CPPFLAGS" - LDFLAGS="$ares_LDFLAGS $clean_LDFLAGS" - LIBS="$ares_LIBS $clean_LIBS" - # - if test "$embedded_ares" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking that c-ares is good and recent enough" >&5 -$as_echo_n "checking that c-ares is good and recent enough... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include - /* set of dummy functions in case c-ares was built with debug */ - void curl_dofree() { } - void curl_sclose() { } - void curl_domalloc() { } - void curl_docalloc() { } - void curl_socket() { } - -int main (void) -{ - - ares_channel channel; - ares_cancel(channel); /* added in 1.2.0 */ - ares_process_fd(channel, 0, 0); /* added in 1.4.0 */ - ares_dup(&channel, channel); /* added in 1.6.0 */ - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "c-ares library defective or too old" "$LINENO" 5 - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LIBS="$clean_LIBS" - # prevent usage - want_ares="no" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "$want_ares" = "yes"; then - -$as_echo "#define USE_ARES 1" >>confdefs.h - - USE_ARES=1 - - curl_res_msg="c-ares" - fi - fi - - - -if test x$embedded_ares = xyes; then - USE_EMBEDDED_ARES_TRUE= - USE_EMBEDDED_ARES_FALSE='#' -else - USE_EMBEDDED_ARES_TRUE='#' - USE_EMBEDDED_ARES_FALSE= -fi - - -if test "x$enable_shared" = "xyes"; then - build_libhostname=yes -else - build_libhostname=no -fi - - -if test x$build_libhostname = xyes; then - BUILD_LIBHOSTNAME_TRUE= - BUILD_LIBHOSTNAME_FALSE='#' -else - BUILD_LIBHOSTNAME_TRUE='#' - BUILD_LIBHOSTNAME_FALSE= -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the threaded resolver" >&5 -$as_echo_n "checking whether to enable the threaded resolver... " >&6; } - OPT_THRES="default" - # Check whether --enable-threaded_resolver was given. -if test "${enable_threaded_resolver+set}" = set; then : - enableval=$enable_threaded_resolver; OPT_THRES=$enableval -fi - - case "$OPT_THRES" in - yes) - want_thres="yes" - ;; - *) - want_thres="no" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_thres" >&5 -$as_echo "$want_thres" >&6; } - - -if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then - as_fn_error $? "Options --enable-threaded-resolver and --enable-ares are mutually exclusive" "$LINENO" 5 -fi - -if test "$want_thres" = "yes"; then - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = x""yes; then : - -$as_echo "#define HAVE_PTHREAD_H 1" >>confdefs.h - - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pthread" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -$as_echo_n "checking for pthread_create in -lpthread... " >&6; } -if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#ifdef __cplusplus -extern "C" -#endif -char pthread_create (); -int main (void) -{ -return pthread_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_create=yes -else - ac_cv_lib_pthread_pthread_create=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } -if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: using POSIX threaded DNS lookup" >&5 -$as_echo "$as_me: using POSIX threaded DNS lookup" >&6;} - -$as_echo "#define USE_THREADS_POSIX 1" >>confdefs.h - - USE_THREADS_POSIX=1 - curl_res_msg="threaded" - -else - CFLAGS="$save_CFLAGS" -fi - - -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable verbose strings" >&5 -$as_echo_n "checking whether to enable verbose strings... " >&6; } -# Check whether --enable-verbose was given. -if test "${enable_verbose+set}" = set; then : - enableval=$enable_verbose; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_VERBOSE_STRINGS 1" >>confdefs.h - - curl_verbose_msg="no" - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable SSPI support (Windows native builds only)" >&5 -$as_echo_n "checking whether to enable SSPI support (Windows native builds only)... " >&6; } -# Check whether --enable-sspi was given. -if test "${enable_sspi+set}" = set; then : - enableval=$enable_sspi; case "$enableval" in - yes) - if test "$ac_cv_native_windows" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define USE_WINDOWS_SSPI 1" >>confdefs.h - - USE_WINDOWS_SSPI=1 - - curl_sspi_msg="enabled" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&5 -$as_echo "$as_me: WARNING: --enable-sspi Ignored. Only supported on native Windows builds." >&2;} - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable cryptographic authentication methods" >&5 -$as_echo_n "checking whether to enable cryptographic authentication methods... " >&6; } -# Check whether --enable-crypto-auth was given. -if test "${enable_crypto_auth+set}" = set; then : - enableval=$enable_crypto_auth; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_CRYPTO_AUTH 1" >>confdefs.h - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable support for cookies" >&5 -$as_echo_n "checking whether to enable support for cookies... " >&6; } -# Check whether --enable-cookies was given. -if test "${enable_cookies+set}" = set; then : - enableval=$enable_cookies; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define CURL_DISABLE_COOKIES 1" >>confdefs.h - - ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable hidden symbols in the library" >&5 -$as_echo_n "checking whether to enable hidden symbols in the library... " >&6; } -# Check whether --enable-hidden-symbols was given. -if test "${enable_hidden_symbols+set}" = set; then : - enableval=$enable_hidden_symbols; case "$enableval" in - no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports it" >&5 -$as_echo_n "checking whether $CC supports it... " >&6; } - if test "$GCC" = yes ; then - if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null || - test "$compiler_id" = "CLANG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define CURL_HIDDEN_SYMBOLS 1" >>confdefs.h - - -$as_echo "#define CURL_EXTERN_SYMBOL __attribute__ ((visibility (\"default\")))" >>confdefs.h - - CFLAGS="$CFLAGS -fvisibility=hidden" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - else - if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define CURL_HIDDEN_SYMBOLS 1" >>confdefs.h - - -$as_echo "#define CURL_EXTERN_SYMBOL __global" >>confdefs.h - - CFLAGS="$CFLAGS -xldscope=hidden" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enforce SONAME bump" >&5 -$as_echo_n "checking whether to enforce SONAME bump... " >&6; } -# Check whether --enable-soname-bump was given. -if test "${enable_soname_bump+set}" = set; then : - enableval=$enable_soname_bump; case "$enableval" in - yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - soname_bump=yes - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $soname_bump" >&5 -$as_echo "$soname_bump" >&6; } - -fi - - - -if test x$soname_bump = xyes; then - SONAME_BUMP_TRUE= - SONAME_BUMP_FALSE='#' -else - SONAME_BUMP_TRUE='#' - SONAME_BUMP_FALSE= -fi - - - -if test ! -z "$winsock_LIB"; then - - - LIBS="$LIBS $winsock_LIB" - TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB" - -fi - -LIBCURL_LIBS=$LIBS - - - - - -LIBS=$ALL_LIBS - - -if test x$cross_compiling = xyes; then - CROSSCOMPILING_TRUE= - CROSSCOMPILING_FALSE='#' -else - CROSSCOMPILING_TRUE='#' - CROSSCOMPILING_FALSE= -fi - - -ENABLE_SHARED="$enable_shared" - - - -if test "x$USE_SSLEAY" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" -elif test -n "$SSL_ENABLED"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" -fi -if test "@KRB4_ENABLED@" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4" -fi -if test "x$IPV6_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6" -fi -if test "x$HAVE_LIBZ" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES libz" -fi -if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS" -fi -if test "x$IDN_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES IDN" -fi -if test "x$USE_WINDOWS_SSPI" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI" -fi -if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \ - -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM" -fi - - - -if test "x$CURL_DISABLE_HTTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS" - fi -fi -if test "x$CURL_DISABLE_FTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FTPS" - fi -fi -if test "x$CURL_DISABLE_FILE" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS FILE" -fi -if test "x$CURL_DISABLE_TELNET" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET" -fi -if test "x$CURL_DISABLE_LDAP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP" - if test "x$CURL_DISABLE_LDAPS" != "x1"; then - if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") || - (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS" - fi - fi -fi -if test "x$CURL_DISABLE_DICT" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS DICT" -fi -if test "x$CURL_DISABLE_TFTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TFTP" -fi -if test "x$CURL_DISABLE_GOPHER" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS GOPHER" -fi -if test "x$CURL_DISABLE_POP3" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS POP3S" - fi -fi -if test "x$CURL_DISABLE_IMAP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS" - fi -fi -if test "x$CURL_DISABLE_SMTP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP" - if test "x$SSL_ENABLED" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTPS" - fi -fi -if test "x$USE_LIBSSH2" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" -fi -if test "x$CURL_DISABLE_RTSP" != "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" -fi -if test "x$USE_LIBRTMP" = "x1"; then - SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTMP" -fi - -SUPPORT_PROTOCOLS=`echo $SUPPORT_PROTOCOLS | tr ' ' '\012' | sort | tr '\012' ' '` - - - - -squeeze CFLAGS -squeeze CPPFLAGS -squeeze DEFS -squeeze LDFLAGS -squeeze LIBS - -squeeze CURL_LIBS -squeeze LIBCURL_LIBS -squeeze TEST_SERVER_LIBS -squeeze CURL_NETWORK_LIBS - -squeeze SUPPORT_FEATURES -squeeze SUPPORT_PROTOCOLS - -if test "x$want_curldebug_assumed" = "xyes" && - test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then - ac_configure_args="$ac_configure_args --enable-curldebug" -fi - -ac_config_files="$ac_config_files Makefile docs/Makefile docs/examples/Makefile docs/libcurl/Makefile include/Makefile include/curl/Makefile src/Makefile lib/Makefile tests/Makefile tests/data/Makefile tests/server/Makefile tests/libtest/Makefile packages/Makefile packages/Win32/Makefile packages/Win32/cygwin/Makefile packages/Linux/Makefile packages/Linux/RPM/Makefile packages/Linux/RPM/curl.spec packages/Linux/RPM/curl-ssl.spec packages/Solaris/Makefile packages/EPM/curl.list packages/EPM/Makefile packages/vms/Makefile packages/AIX/Makefile packages/AIX/RPM/Makefile packages/AIX/RPM/curl.spec curl-config libcurl.pc" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${MIMPURE_TRUE}" && test -z "${MIMPURE_FALSE}"; then - as_fn_error $? "conditional \"MIMPURE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${STATICLIB_TRUE}" && test -z "${STATICLIB_FALSE}"; then - as_fn_error $? "conditional \"STATICLIB\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${STATICLIB_TRUE}" && test -z "${STATICLIB_FALSE}"; then - as_fn_error $? "conditional \"STATICLIB\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NO_UNDEFINED_TRUE}" && test -z "${NO_UNDEFINED_FALSE}"; then - as_fn_error $? "conditional \"NO_UNDEFINED\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${CURLDEBUG_TRUE}" && test -z "${CURLDEBUG_FALSE}"; then - as_fn_error $? "conditional \"CURLDEBUG\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_LIBZ_TRUE}" && test -z "${HAVE_LIBZ_FALSE}"; then - as_fn_error $? "conditional \"HAVE_LIBZ\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_MANUAL_TRUE}" && test -z "${USE_MANUAL_FALSE}"; then - as_fn_error $? "conditional \"USE_MANUAL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${USE_EMBEDDED_ARES_TRUE}" && test -z "${USE_EMBEDDED_ARES_FALSE}"; then - as_fn_error $? "conditional \"USE_EMBEDDED_ARES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_LIBHOSTNAME_TRUE}" && test -z "${BUILD_LIBHOSTNAME_FALSE}"; then - as_fn_error $? "conditional \"BUILD_LIBHOSTNAME\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SONAME_BUMP_TRUE}" && test -z "${SONAME_BUMP_FALSE}"; then - as_fn_error $? "conditional \"SONAME_BUMP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${CROSSCOMPILING_TRUE}" && test -z "${CROSSCOMPILING_FALSE}"; then - as_fn_error $? "conditional \"CROSSCOMPILING\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: ${CONFIG_STATUS=./config.status} -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by curl $as_me -, which was -generated by GNU Autoconf 2.67. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -curl config.status - -configured by $0, generated by GNU Autoconf 2.67, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' -macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' -macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' -enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' -pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' -host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' -host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' -host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' -build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' -build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' -build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' -SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' -Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' -GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' -EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' -FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' -LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' -NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' -LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' -ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' -exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' -lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' -reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' -AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' -STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' -RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' -compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' -GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' -SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' -ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' -need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' -LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' -libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' -version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' -runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' -libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' -soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' -old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' -striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# Quote evaled strings. -for var in SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -deplibs_check_method \ -file_magic_cmd \ -AR \ -AR_FLAGS \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -SHELL \ -ECHO \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ -lt_prog_compiler_pic \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ -hardcode_libdir_separator \ -fix_srcfile_path \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` - ;; -esac - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "lib/curl_config.h") CONFIG_HEADERS="$CONFIG_HEADERS lib/curl_config.h" ;; - "src/curl_config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/curl_config.h" ;; - "include/curl/curlbuild.h") CONFIG_HEADERS="$CONFIG_HEADERS include/curl/curlbuild.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; - "docs/examples/Makefile") CONFIG_FILES="$CONFIG_FILES docs/examples/Makefile" ;; - "docs/libcurl/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libcurl/Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "include/curl/Makefile") CONFIG_FILES="$CONFIG_FILES include/curl/Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; - "tests/data/Makefile") CONFIG_FILES="$CONFIG_FILES tests/data/Makefile" ;; - "tests/server/Makefile") CONFIG_FILES="$CONFIG_FILES tests/server/Makefile" ;; - "tests/libtest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/libtest/Makefile" ;; - "packages/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Makefile" ;; - "packages/Win32/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Win32/Makefile" ;; - "packages/Win32/cygwin/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Win32/cygwin/Makefile" ;; - "packages/Linux/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Linux/Makefile" ;; - "packages/Linux/RPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/Makefile" ;; - "packages/Linux/RPM/curl.spec") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/curl.spec" ;; - "packages/Linux/RPM/curl-ssl.spec") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/curl-ssl.spec" ;; - "packages/Solaris/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Solaris/Makefile" ;; - "packages/EPM/curl.list") CONFIG_FILES="$CONFIG_FILES packages/EPM/curl.list" ;; - "packages/EPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/EPM/Makefile" ;; - "packages/vms/Makefile") CONFIG_FILES="$CONFIG_FILES packages/vms/Makefile" ;; - "packages/AIX/Makefile") CONFIG_FILES="$CONFIG_FILES packages/AIX/Makefile" ;; - "packages/AIX/RPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/AIX/RPM/Makefile" ;; - "packages/AIX/RPM/curl.spec") CONFIG_FILES="$CONFIG_FILES packages/AIX/RPM/curl.spec" ;; - "curl-config") CONFIG_FILES="$CONFIG_FILES curl-config" ;; - "libcurl.pc") CONFIG_FILES="$CONFIG_FILES libcurl.pc" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - "$ac_file" | "$ac_file":* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Assembler program. -AS=$AS - -# DLL creation program. -DLLTOOL=$DLLTOOL - -# Object dumper program. -OBJDUMP=$OBJDUMP - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $* )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} - -# sed scripts: -my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[^=]*=//' - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$@"` -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` -} - -_LT_EOF -esac - -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1+=\$2" -} -_LT_EOF - ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1=\$$1\$2" -} - -_LT_EOF - ;; - esac - - - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi - -# -# CONFIG_SUBDIRS section. -# -if test "$no_recursion" != yes; then - - # Remove --cache-file, --srcdir, and --disable-option-checking arguments - # so they do not pile up. - ac_sub_configure_args= - ac_prev= - eval "set x $ac_configure_args" - shift - for ac_arg - do - if test -n "$ac_prev"; then - ac_prev= - continue - fi - case $ac_arg in - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ - | --c=*) - ;; - --config-cache | -C) - ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - ;; - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - ;; - --disable-option-checking) - ;; - *) - case $ac_arg in - *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append ac_sub_configure_args " '$ac_arg'" ;; - esac - done - - # Always prepend --prefix to ensure using the same prefix - # in subdir configurations. - ac_arg="--prefix=$prefix" - case $ac_arg in - *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" - - # Pass --silent - if test "$silent" = yes; then - ac_sub_configure_args="--silent $ac_sub_configure_args" - fi - - # Always prepend --disable-option-checking to silence warnings, since - # different subdirs can have different --enable and --with options. - ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" - - ac_popdir=`pwd` - for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue - - # Do not complain, so a configure script can configure whichever - # parts of a large source tree are present. - test -d "$srcdir/$ac_dir" || continue - - ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" - $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 - $as_echo "$ac_msg" >&6 - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - cd "$ac_dir" - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f "$ac_srcdir/configure.gnu"; then - ac_sub_configure=$ac_srcdir/configure.gnu - elif test -f "$ac_srcdir/configure"; then - ac_sub_configure=$ac_srcdir/configure - elif test -f "$ac_srcdir/configure.in"; then - # This should be Cygnus configure. - ac_sub_configure=$ac_aux_dir/configure - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 -$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} - ac_sub_configure= - fi - - # The recursion is here. - if test -n "$ac_sub_configure"; then - # Make the cache file name correct relative to the subdirectory. - case $cache_file in - [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; - *) # Relative name. - ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 -$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} - # The eval makes quoting arguments work. - eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ - --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || - as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 - fi - - cd "$ac_popdir" - done -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - - - tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null` - if test -z "$tmp_cpp"; then - tmp_cpp='cpp' - fi - cat >./tests/configurehelp.pm <<_EOF -# This is a generated file. Do not edit. - -package configurehelp; - -use strict; -use warnings; -use Exporter; - -use vars qw( - @ISA - @EXPORT_OK - \$Cpreprocessor - ); - -@ISA = qw(Exporter); - -@EXPORT_OK = qw( - \$Cpreprocessor - ); - -\$Cpreprocessor = '$tmp_cpp'; - -1; -_EOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: Configured to build curl/libcurl: - - curl version: ${VERSION} - Host setup: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - SSL support: ${curl_ssl_msg} - SSH support: ${curl_ssh_msg} - zlib support: ${curl_zlib_msg} - krb4 support: ${curl_krb4_msg} - GSSAPI support: ${curl_gss_msg} - SPNEGO support: ${curl_spnego_msg} - resolver: ${curl_res_msg} - ipv6 support: ${curl_ipv6_msg} - IDN support: ${curl_idn_msg} - Build libcurl: Shared=${enable_shared}, Static=${enable_static} - Built-in manual: ${curl_manual_msg} - Verbose errors: ${curl_verbose_msg} - SSPI support: ${curl_sspi_msg} - ca cert bundle: ${ca} - ca cert path: ${capath} - LDAP support: ${curl_ldap_msg} - LDAPS support: ${curl_ldaps_msg} - RTSP support: ${curl_rtsp_msg} - RTMP support: ${curl_rtmp_msg} - Protocols: ${SUPPORT_PROTOCOLS} -" >&5 -$as_echo "$as_me: Configured to build curl/libcurl: - - curl version: ${VERSION} - Host setup: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - SSL support: ${curl_ssl_msg} - SSH support: ${curl_ssh_msg} - zlib support: ${curl_zlib_msg} - krb4 support: ${curl_krb4_msg} - GSSAPI support: ${curl_gss_msg} - SPNEGO support: ${curl_spnego_msg} - resolver: ${curl_res_msg} - ipv6 support: ${curl_ipv6_msg} - IDN support: ${curl_idn_msg} - Build libcurl: Shared=${enable_shared}, Static=${enable_static} - Built-in manual: ${curl_manual_msg} - Verbose errors: ${curl_verbose_msg} - SSPI support: ${curl_sspi_msg} - ca cert bundle: ${ca} - ca cert path: ${capath} - LDAP support: ${curl_ldap_msg} - LDAPS support: ${curl_ldaps_msg} - RTSP support: ${curl_rtsp_msg} - RTMP support: ${curl_rtmp_msg} - Protocols: ${SUPPORT_PROTOCOLS} -" >&6;} - -if test "x$soname_bump" = "xyes"; then - -cat <, et al. +# Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -26,15 +26,18 @@ AC_PREREQ(2.57) dnl We don't know the version number "statically" so we use a dash here AC_INIT([curl], [-], [a suitable curl mailing list: http://curl.haxx.se/mail/]) +XC_OVR_ZZ50 +XC_OVR_ZZ60 CURL_OVERRIDE_AUTOCONF dnl configure script copyright -AC_COPYRIGHT([Copyright (c) 1998 - 2010 Daniel Stenberg, +AC_COPYRIGHT([Copyright (c) 1998 - 2014 Daniel Stenberg, This configure script may be copied, distributed and modified under the terms of the curl license; see COPYING for more details]) AC_CONFIG_SRCDIR([lib/urldata.h]) -AM_CONFIG_HEADER(lib/curl_config.h src/curl_config.h include/curl/curlbuild.h) +AC_CONFIG_HEADERS(lib/curl_config.h include/curl/curlbuild.h) +AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE CURL_CHECK_OPTION_DEBUG @@ -42,9 +45,10 @@ CURL_CHECK_OPTION_OPTIMIZE CURL_CHECK_OPTION_WARNINGS CURL_CHECK_OPTION_WERROR CURL_CHECK_OPTION_CURLDEBUG +CURL_CHECK_OPTION_SYMBOL_HIDING CURL_CHECK_OPTION_ARES -CURL_CHECK_PATH_SEPARATOR_REQUIRED +XC_CHECK_PATH_SEPARATOR # # save the configure arguments @@ -120,10 +124,13 @@ if test -f ${srcdir}/include/curl/curlbuild.h; then fi dnl figure out the libcurl version -VERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h` -AM_INIT_AUTOMAKE(curl,$VERSION) +CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h` +XC_CHECK_PROG_CC +XC_AUTOMAKE AC_MSG_CHECKING([curl version]) -AC_MSG_RESULT($VERSION) +AC_MSG_RESULT($CURLVERSION) + +AC_SUBST(CURLVERSION) dnl dnl we extract the numerical version for curl-config only @@ -140,27 +147,32 @@ AC_SUBST(PKGADD_VENDOR) dnl dnl initialize all the info variables - curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl} )" + curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )" curl_ssh_msg="no (--with-libssh2)" curl_zlib_msg="no (--with-zlib)" - curl_krb4_msg="no (--with-krb4*)" curl_gss_msg="no (--with-gssapi)" - curl_spnego_msg="no (--with-spnego)" +curl_tls_srp_msg="no (--enable-tls-srp)" curl_res_msg="default (--enable-ares / --enable-threaded-resolver)" curl_ipv6_msg="no (--enable-ipv6)" - curl_idn_msg="no (--with-libidn)" +curl_unix_sockets_msg="no (--enable-unix-sockets)" + curl_idn_msg="no (--with-{libidn,winidn})" curl_manual_msg="no (--enable-manual)" +curl_libcurl_msg="enabled (--disable-libcurl-option)" curl_verbose_msg="enabled (--disable-verbose)" curl_sspi_msg="no (--enable-sspi)" curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)" curl_ldaps_msg="no (--enable-ldaps)" curl_rtsp_msg="no (--enable-rtsp)" curl_rtmp_msg="no (--with-librtmp)" + curl_mtlnk_msg="no (--with-libmetalink)" + + init_ssl_msg=${curl_ssl_msg} dnl -dnl Save anything in $LIBS for later +dnl Save some initial values the user might have provided dnl -ALL_LIBS=$LIBS +INITIAL_LDFLAGS=$LDFLAGS +INITIAL_LIBS=$LIBS dnl dnl Detect the canonical host and target build environment @@ -171,7 +183,6 @@ dnl Get system canonical name AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS]) dnl Checks for programs. -CURL_CHECK_PROG_CC dnl Our curl_off_t internal and external configure settings CURL_CONFIGURE_CURL_OFF_T @@ -186,72 +197,50 @@ CURL_CONFIGURE_REENTRANT dnl check for how to do large files AC_SYS_LARGEFILE -dnl support building of Windows DLLs -AC_LIBTOOL_WIN32_DLL +XC_LIBTOOL -dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD -AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)]) -case $host in - x86_64*linux*|amd64*freebsd*|ia64*freebsd*) - AC_MSG_RESULT([yes]) - with_pic=yes - ;; - *) - AC_MSG_RESULT([no]) - ;; -esac +# +# Automake conditionals based on libtool related checks +# -AC_MSG_CHECKING([if compiler is icc (to build with PIC)]) -case $CC in - icc | */icc) - AC_MSG_RESULT([yes]) - with_pic=yes - ;; - *) - AC_MSG_RESULT([no]) - ;; -esac +AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSION_INFO], + [test "x$xc_lt_shlib_use_version_info" = 'xyes']) +AM_CONDITIONAL([CURL_LT_SHLIB_USE_NO_UNDEFINED], + [test "x$xc_lt_shlib_use_no_undefined" = 'xyes']) +AM_CONDITIONAL([CURL_LT_SHLIB_USE_MIMPURE_TEXT], + [test "x$xc_lt_shlib_use_mimpure_text" = 'xyes']) -dnl libtool setup -AC_PROG_LIBTOOL +# +# Due to libtool and automake machinery limitations of not allowing +# specifying separate CPPFLAGS or CFLAGS when compiling objects for +# inclusion of these in shared or static libraries, we are forced to +# build using separate configure runs for shared and static libraries +# on systems where different CPPFLAGS or CFLAGS are mandatory in order +# to compile objects for each kind of library. Notice that relying on +# the '-DPIC' CFLAG that libtool provides is not valid given that the +# user might for example choose to build static libraries with PIC. +# -AC_MSG_CHECKING([if we need -mimpure-text]) -mimpure=no -case $host in - *-*-solaris2*) - if test "$GCC" = "yes"; then - mimpure="yes" - fi - ;; - *) - ;; -esac -AC_MSG_RESULT($mimpure) -AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes) +# +# Make our Makefile.am files use the staticlib CPPFLAG only when strictly +# targeting a static library and not building its shared counterpart. +# -dnl 'STATICLIB' is, in spite of its name, not generic but only for static-only -dnl builds on Windows -AM_CONDITIONAL(STATICLIB, false) +AM_CONDITIONAL([USE_CPPFLAG_CURL_STATICLIB], + [test "x$xc_lt_build_static_only" = 'xyes']) + +# +# Make staticlib CPPFLAG variable and its definition visible in output +# files unconditionally, providing an empty definition unless strictly +# targeting a static library and not building its shared counterpart. +# + +CPPFLAG_CURL_STATICLIB= +if test "x$xc_lt_build_static_only" = 'xyes'; then + CPPFLAG_CURL_STATICLIB='-DCURL_STATICLIB' +fi +AC_SUBST([CPPFLAG_CURL_STATICLIB]) -AC_MSG_CHECKING([if we need BUILDING_LIBCURL]) -case $host in - *-*-mingw*) - AC_DEFINE(BUILDING_LIBCURL, 1, [when building libcurl itself]) - AC_MSG_RESULT(yes) - AC_MSG_CHECKING([if we need CURL_STATICLIB]) - if test "X$enable_shared" = "Xno" - then - AC_DEFINE(CURL_STATICLIB, 1, [when not building a shared library]) - AC_MSG_RESULT(yes) - AM_CONDITIONAL(STATICLIB, true) - else - AC_MSG_RESULT(no) - fi - ;; - *) - AC_MSG_RESULT(no) - ;; -esac # Determine whether all dependent libraries must be specified when linking if test "X$enable_shared" = "Xyes" -a "X$link_all_deplibs" = "Xno" @@ -261,10 +250,7 @@ else REQUIRE_LIB_DEPS=yes fi AC_SUBST(REQUIRE_LIB_DEPS) - -dnl The install stuff has already been taken care of by the automake stuff -dnl AC_PROG_INSTALL -AC_PROG_MAKE_SET +AM_CONDITIONAL(USE_EXPLICIT_LIB_DEPS, test x$REQUIRE_LIB_DEPS = xyes) dnl check if there's a way to force code inline AC_C_INLINE @@ -293,13 +279,50 @@ fi CURL_CHECK_COMPILER_HALT_ON_ERROR CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE - -CURL_CHECK_NO_UNDEFINED -AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes) +CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH +CURL_CHECK_COMPILER_SYMBOL_HIDING CURL_CHECK_CURLDEBUG AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes) +supports_unittests=yes +# cross-compilation of unit tests static library/programs fails when +# libcurl shared library is built. This might be due to a libtool or +# automake issue. In this case we disable unit tests. +if test "x$cross_compiling" != "xno" && + test "x$enable_shared" != "xno"; then + supports_unittests=no +fi + +# IRIX 6.5.24 gcc 3.3 autobuilds fail unittests library compilation due to +# a problem related with OpenSSL headers and library versions not matching. +# Disable unit tests while time to further investigate this is found. +case $host in + mips-sgi-irix6.5) + if test "$compiler_id" = "GNU_C"; then + supports_unittests=no + fi + ;; +esac + +# All AIX autobuilds fails unit tests linking against unittests library +# due to unittests library being built with no symbols or members. Libtool ? +# Disable unit tests while time to further investigate this is found. +case $host_os in + aix*) + supports_unittests=no + ;; +esac + +dnl Build unit tests when option --enable-debug is given. +if test "x$want_debug" = "xyes" && + test "x$supports_unittests" = "xyes"; then + want_unittests=yes +else + want_unittests=no +fi +AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes) + dnl ********************************************************************** dnl Compilation based checks should not be done before this point. dnl ********************************************************************** @@ -552,6 +575,22 @@ AC_HELP_STRING([--disable-imap],[Disable IMAP support]), ) +AC_MSG_CHECKING([whether to support smb]) +AC_ARG_ENABLE(smb, +AC_HELP_STRING([--enable-smb],[Enable SMB/CIFS support]) +AC_HELP_STRING([--disable-smb],[Disable SMB/CIFS support]), +[ case "$enableval" in + no) + AC_MSG_RESULT(no) + AC_DEFINE(CURL_DISABLE_SMB, 1, [to disable SMB/CIFS]) + AC_SUBST(CURL_DISABLE_SMB, [1]) + ;; + *) AC_MSG_RESULT(yes) + ;; + esac ], + AC_MSG_RESULT(yes) +) + AC_MSG_CHECKING([whether to support smtp]) AC_ARG_ENABLE(smtp, AC_HELP_STRING([--enable-smtp],[Enable SMTP support]) @@ -607,10 +646,43 @@ AC_HELP_STRING([--disable-manual],[Disable built-in manual]), dnl The actual use of the USE_MANUAL variable is done much later in this dnl script to allow other actions to disable it as well. +dnl ************************************************************ +dnl disable C code generation support +dnl +AC_MSG_CHECKING([whether to enable generation of C code]) +AC_ARG_ENABLE(libcurl_option, +AC_HELP_STRING([--enable-libcurl-option],[Enable --libcurl C code generation support]) +AC_HELP_STRING([--disable-libcurl-option],[Disable --libcurl C code generation support]), +[ case "$enableval" in + no) + AC_MSG_RESULT(no) + AC_DEFINE(CURL_DISABLE_LIBCURL_OPTION, 1, [to disable --libcurl C code generation option]) + curl_libcurl_msg="no" + ;; + *) AC_MSG_RESULT(yes) + ;; + esac ], + AC_MSG_RESULT(yes) +) + dnl ********************************************************************** dnl Checks for libraries. dnl ********************************************************************** +AC_MSG_CHECKING([whether to use libgcc]) +AC_ARG_ENABLE(libgcc, +AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]), +[ case "$enableval" in + yes) + LIBS="-lgcc $LIBS" + AC_MSG_RESULT(yes) + ;; + *) AC_MSG_RESULT(no) + ;; + esac ], + AC_MSG_RESULT(no) +) + CURL_CHECK_LIB_XNET dnl gethostbyname without lib or in the nsl lib? @@ -619,7 +691,7 @@ AC_CHECK_FUNC(gethostbyname, ], [ AC_CHECK_LIB(nsl, gethostbyname, [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnsl" + LIBS="-lnsl $LIBS" ]) ]) @@ -628,7 +700,18 @@ then dnl gethostbyname in the socket lib? AC_CHECK_LIB(socket, gethostbyname, [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lsocket" + LIBS="-lsocket $LIBS" + ]) +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + dnl gethostbyname in the watt lib? + AC_CHECK_LIB(watt, gethostbyname, + [HAVE_GETHOSTBYNAME="1" + CPPFLAGS="-I/dev/env/WATT_ROOT/inc" + LDFLAGS="-L/dev/env/WATT_ROOT/lib" + LIBS="-lwatt $LIBS" ]) fi @@ -747,7 +830,7 @@ then dnl gethostbyname in the network lib - for Haiku OS AC_CHECK_LIB(network, gethostbyname, [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnetwork" + LIBS="-lnetwork $LIBS" ]) fi @@ -756,7 +839,7 @@ then dnl gethostbyname in the net lib - for BeOS AC_CHECK_LIB(net, gethostbyname, [HAVE_GETHOSTBYNAME="1" - LIBS="$LIBS -lnet" + LIBS="-lnet $LIBS" ]) fi @@ -788,25 +871,108 @@ CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC dnl ********************************************************************** dnl The preceding library checks are all potentially useful for test -dnl servers (for providing networking support). Save the list of required -dnl libraries at this point for use while linking those test servers. +dnl servers and libtest cases which require networking and clock_gettime +dnl support. Save the list of required libraries at this point for use +dnl while linking those test servers and programs. dnl ********************************************************************** -TEST_SERVER_LIBS=$LIBS +CURL_NETWORK_AND_TIME_LIBS=$LIBS dnl ********************************************************************** -AC_MSG_CHECKING([whether to use libgcc]) -AC_ARG_ENABLE(libgcc, -AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]), -[ case "$enableval" in - yes) - ALL_LIBS="$ALL_LIBS -lgcc" - AC_MSG_RESULT(yes) - ;; - *) AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT(no) -) +dnl Check for the presence of ZLIB libraries and headers +dnl ********************************************************************** + +dnl Check for & handle argument to --with-zlib. + +clean_CPPFLAGS=$CPPFLAGS +clean_LDFLAGS=$LDFLAGS +clean_LIBS=$LIBS +ZLIB_LIBS="" +AC_ARG_WITH(zlib, +AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH]) +AC_HELP_STRING([--without-zlib],[disable use of zlib]), + [OPT_ZLIB="$withval"]) + +if test "$OPT_ZLIB" = "no" ; then + AC_MSG_WARN([zlib disabled]) +else + if test "$OPT_ZLIB" = "yes" ; then + OPT_ZLIB="" + fi + + if test -z "$OPT_ZLIB" ; then + dnl check for the lib first without setting any new path, since many + dnl people have it in the default path + + AC_CHECK_LIB(z, inflateEnd, + dnl libz found, set the variable + [HAVE_LIBZ="1" + LIBS="-lz $LIBS"], + dnl if no lib found, try /usr/local + [OPT_ZLIB="/usr/local"]) + + fi + + dnl Add a nonempty path to the compiler flags + if test -n "$OPT_ZLIB"; then + CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include" + LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff" + fi + + AC_CHECK_HEADER(zlib.h, + [ + dnl zlib.h was found + HAVE_ZLIB_H="1" + dnl if the lib wasn't found already, try again with the new paths + if test "$HAVE_LIBZ" != "1"; then + AC_CHECK_LIB(z, gzread, + [ + dnl the lib was found! + HAVE_LIBZ="1" + LIBS="-lz $LIBS" + ], + [ CPPFLAGS=$clean_CPPFLAGS + LDFLAGS=$clean_LDFLAGS]) + fi + ], + [ + dnl zlib.h was not found, restore the flags + CPPFLAGS=$clean_CPPFLAGS + LDFLAGS=$clean_LDFLAGS] + ) + + if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1" + then + AC_MSG_WARN([configure found only the libz lib, not the header file!]) + HAVE_LIBZ="" + CPPFLAGS=$clean_CPPFLAGS + LDFLAGS=$clean_LDFLAGS + LIBS=$clean_LIBS + elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1" + then + AC_MSG_WARN([configure found only the libz header file, not the lib!]) + CPPFLAGS=$clean_CPPFLAGS + LDFLAGS=$clean_LDFLAGS + LIBS=$clean_LIBS + elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1" + then + dnl both header and lib were found! + AC_SUBST(HAVE_LIBZ) + AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file]) + AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available]) + + ZLIB_LIBS="-lz" + LIBS="-lz $clean_LIBS" + + dnl replace 'HAVE_LIBZ' in the automake makefile.ams + AMFIXLIB="1" + AC_MSG_NOTICE([found both libz and libz.h header]) + curl_zlib_msg="enabled" + fi +fi + +dnl set variable for use in automakefile(s) +AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1) +AC_SUBST(ZLIB_LIBS) dnl ********************************************************************** dnl Check for LDAP @@ -841,9 +1007,9 @@ if test x$CURL_DISABLE_LDAP != x1 ; then AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [ AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled]) AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) - AC_SUBST(CURL_DISABLE_LDAP, [1])]) + AC_SUBST(CURL_DISABLE_LDAP, [1]) AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1]) + AC_SUBST(CURL_DISABLE_LDAPS, [1])]) else dnl Try to find the right ldap libraries for this system CURL_CHECK_LIBS_LDAP @@ -868,9 +1034,9 @@ if test x$CURL_DISABLE_LDAP != x1 ; then AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [ AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled]) AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) - AC_SUBST(CURL_DISABLE_LDAP, [1])]) + AC_SUBST(CURL_DISABLE_LDAP, [1]) AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS]) - AC_SUBST(CURL_DISABLE_LDAPS, [1]) + AC_SUBST(CURL_DISABLE_LDAPS, [1])]) fi fi fi @@ -898,10 +1064,10 @@ dnl ********************************************************************** dnl Checks for IPv6 dnl ********************************************************************** -AC_MSG_CHECKING([whether to enable ipv6]) +AC_MSG_CHECKING([whether to enable IPv6]) AC_ARG_ENABLE(ipv6, -AC_HELP_STRING([--enable-ipv6],[Enable ipv6 (with ipv4) support]) -AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]), +AC_HELP_STRING([--enable-ipv6],[Enable IPv6 (with IPv4) support]) +AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]), [ case "$enableval" in no) AC_MSG_RESULT(no) @@ -915,6 +1081,7 @@ AC_HELP_STRING([--disable-ipv6],[Disable ipv6 support]), AC_TRY_RUN([ /* is AF_INET6 available? */ #include #include +#include /* for exit() */ main() { if (socket(AF_INET6, SOCK_STREAM, 0) < 0) @@ -984,159 +1151,29 @@ no) esac dnl ********************************************************************** -dnl Check for the presence of Kerberos4 libraries and headers -dnl ********************************************************************** - -AC_ARG_WITH(krb4-includes, -AC_HELP_STRING([--with-krb4-includes=DIR], - [Specify location of kerberos4 headers]),[ - CPPFLAGS="$CPPFLAGS -I$withval" - KRB4INC="$withval" - want_krb4=yes - ]) - -AC_ARG_WITH(krb4-libs, -AC_HELP_STRING([--with-krb4-libs=DIR],[Specify location of kerberos4 libs]),[ - LDFLAGS="$LDFLAGS -L$withval" - KRB4LIB="$withval" - want_krb4=yes - ]) - - -OPT_KRB4=off -AC_ARG_WITH(krb4,dnl -AC_HELP_STRING([--with-krb4=DIR],[where to look for Kerberos4]),[ - OPT_KRB4="$withval" - if test X"$OPT_KRB4" != Xno; then - want_krb4="yes" - if test X"$OPT_KRB4" != Xyes; then - LDFLAGS="$LDFLAGS -L$OPT_KRB4/lib$libsuff" - KRB4LIB="$OPT_KRB4/lib$libsuff" - CPPFLAGS="$CPPFLAGS -I$OPT_KRB4/include" - KRB4INC="$OPT_KRB4/include" - fi - fi - ]) - -AC_MSG_CHECKING([if Kerberos4 support is requested]) - -if test "$want_krb4" = yes -then - if test "$ipv6" = "yes"; then - echo krb4 is not compatible with IPv6 - exit 1 - fi - AC_MSG_RESULT(yes) - - dnl Check for & handle argument to --with-krb4 - - AC_MSG_CHECKING(where to look for Kerberos4) - if test X"$OPT_KRB4" = Xyes - then - AC_MSG_RESULT([defaults]) - else - AC_MSG_RESULT([libs in $KRB4LIB, headers in $KRB4INC]) - fi - - dnl Check for DES library - AC_CHECK_LIB(des, des_pcbc_encrypt, - [ - AC_CHECK_HEADERS(des.h) - - dnl resolv lib? - AC_CHECK_FUNC(res_search, , [AC_CHECK_LIB(resolv, res_search)]) - - dnl Check for the Kerberos4 library - AC_CHECK_LIB(krb, krb_net_read, - [ - dnl Check for header files - AC_CHECK_HEADERS(krb.h) - - dnl we found the required libraries, add to LIBS - LIBS="-lkrb -lcom_err -ldes $LIBS" - - dnl Check for function krb_get_our_ip_for_realm - dnl this is needed for NAT networks - AC_CHECK_FUNCS(krb_get_our_ip_for_realm) - - dnl add define KRB4 - AC_DEFINE(HAVE_KRB4, 1, - [if you have the Kerberos4 libraries (including -ldes)]) - - dnl substitute it too! - KRB4_ENABLED=1 - AC_SUBST(KRB4_ENABLED) - - curl_krb4_msg="enabled" - - dnl the krb4 stuff needs a strlcpy() - AC_CHECK_FUNCS(strlcpy) - - ]) - ]) -else - AC_MSG_RESULT(no) -fi - -dnl ********************************************************************** -dnl Check for FBopenssl(SPNEGO) libraries -dnl ********************************************************************** - -AC_ARG_WITH(spnego, - AC_HELP_STRING([--with-spnego=DIR], - [Specify location of SPNEGO library fbopenssl]), [ - SPNEGO_ROOT="$withval" - if test x"$SPNEGO_ROOT" != xno; then - want_spnego="yes" - fi -]) - -AC_MSG_CHECKING([if SPNEGO support is requested]) -if test x"$want_spnego" = xyes; then - - if test X"$SPNEGO_ROOT" = Xyes; then - AC_MSG_ERROR([FBOpenSSL libs and/or directories were not found where specified!]) - AC_MSG_RESULT(no) - else - if test -z "$SPNEGO_LIB_DIR"; then - LDFLAGS="$LDFLAGS -L$SPNEGO_ROOT -lfbopenssl" - else - LDFLAGS="$LDFLAGS $SPNEGO_LIB_DIR" - fi - - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SPNEGO, 1, - [Define this if you have the SPNEGO library fbopenssl]) - curl_spnego_msg="enabled" - fi -else - AC_MSG_RESULT(no) -fi - -dnl ********************************************************************** dnl Check for GSS-API libraries dnl ********************************************************************** -dnl check for gss stuff in the /usr as default +dnl check for GSS-API stuff in the /usr as default GSSAPI_ROOT="/usr" AC_ARG_WITH(gssapi-includes, AC_HELP_STRING([--with-gssapi-includes=DIR], - [Specify location of GSSAPI header]), + [Specify location of GSS-API headers]), [ GSSAPI_INCS="-I$withval" want_gss="yes" ] ) AC_ARG_WITH(gssapi-libs, AC_HELP_STRING([--with-gssapi-libs=DIR], - [Specify location of GSSAPI libs]), + [Specify location of GSS-API libs]), [ GSSAPI_LIB_DIR="-L$withval" want_gss="yes" ] ) AC_ARG_WITH(gssapi, AC_HELP_STRING([--with-gssapi=DIR], - [Where to look for GSSAPI]), [ + [Where to look for GSS-API]), [ GSSAPI_ROOT="$withval" if test x"$GSSAPI_ROOT" != xno; then want_gss="yes" @@ -1148,12 +1185,14 @@ AC_ARG_WITH(gssapi, ]) save_CPPFLAGS="$CPPFLAGS" -AC_MSG_CHECKING([if GSSAPI support is requested]) +AC_MSG_CHECKING([if GSS-API support is requested]) if test x"$want_gss" = xyes; then AC_MSG_RESULT(yes) if test -z "$GSSAPI_INCS"; then - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then + if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then + GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi` + elif test -f "$GSSAPI_ROOT/bin/krb5-config"; then GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` elif test "$GSSAPI_ROOT" != "yes"; then GSSAPI_INCS="-I$GSSAPI_ROOT/include" @@ -1165,7 +1204,7 @@ if test x"$want_gss" = xyes; then AC_CHECK_HEADER(gss.h, [ dnl found in the given dirs - AC_DEFINE(HAVE_GSSGNU, 1, [if you have the GNU gssapi libraries]) + AC_DEFINE(HAVE_GSSGNU, 1, [if you have GNU GSS]) gnu_gss=yes ], [ @@ -1186,19 +1225,19 @@ AC_INCLUDES_DEFAULT AC_CHECK_HEADER(gssapi.h, [ dnl found - AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries]) + AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have Heimdal]) ], [ dnl no header found, disabling GSS want_gss=no - AC_MSG_WARN(disabling GSSAPI since no header files was found) + AC_MSG_WARN(disabling GSS-API support since no header files were found) ] ) else dnl MIT found - AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries]) - dnl check if we have a really old MIT kerberos (<= 1.2) - AC_MSG_CHECKING([if gssapi headers declare GSS_C_NT_HOSTBASED_SERVICE]) + AC_DEFINE(HAVE_GSSMIT, 1, [if you have MIT Kerberos]) + dnl check if we have a really old MIT Kerberos version (<= 1.2) + AC_MSG_CHECKING([if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE]) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #include @@ -1216,7 +1255,7 @@ AC_INCLUDES_DEFAULT ],[ AC_MSG_RESULT([no]) AC_DEFINE(HAVE_OLD_GSSMIT, 1, - [if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE]) + [if you have an old MIT Kerberos version, lacking GSS_C_NT_HOSTBASED_SERVICE]) ]) fi ] @@ -1225,42 +1264,117 @@ else AC_MSG_RESULT(no) fi if test x"$want_gss" = xyes; then - AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries]) - - curl_gss_msg="enabled (MIT/Heimdal)" + AC_DEFINE(HAVE_GSSAPI, 1, [if you have GSS-API libraries]) + HAVE_GSSAPI=1 + curl_gss_msg="enabled (MIT Kerberos/Heimdal)" if test -n "$gnu_gss"; then curl_gss_msg="enabled (GNU GSS)" LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgss" + LIBS="-lgss $LIBS" elif test -z "$GSSAPI_LIB_DIR"; then case $host in *-*-darwin*) - LIBS="$LIBS -lgssapi_krb5 -lresolv" + LIBS="-lgssapi_krb5 -lresolv $LIBS" ;; *) - if test -f "$GSSAPI_ROOT/bin/krb5-config"; then + if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then + dnl krb5-config doesn't have --libs-only-L or similar, put everything + dnl into LIBS + gss_libs=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --libs gssapi` + LIBS="$gss_libs $LIBS" + elif test -f "$GSSAPI_ROOT/bin/krb5-config"; then dnl krb5-config doesn't have --libs-only-L or similar, put everything dnl into LIBS gss_libs=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi` - # LIBS="$LIBS $gss_libs" - LIBS="$LIBS -lgssapi_krb5" - elif test "$GSSAPI_ROOT" != "yes"; then - LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" - LIBS="$LIBS -lgssapi" + LIBS="$gss_libs $LIBS" else - LIBS="$LIBS -lgssapi" + case $host in + *-hp-hpux*) + gss_libname="gss" + ;; + *) + gss_libname="gssapi" + ;; + esac + + if test "$GSSAPI_ROOT" != "yes"; then + LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" + LIBS="-l$gss_libname $LIBS" + else + LIBS="-l$gss_libname $LIBS" + fi fi ;; esac else LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" - LIBS="$LIBS -lgssapi" + case $host in + *-hp-hpux*) + LIBS="-lgss $LIBS" + ;; + *) + LIBS="-lgssapi $LIBS" + ;; + esac fi else CPPFLAGS="$save_CPPFLAGS" fi +dnl ------------------------------------------------- +dnl check winssl option before other SSL libraries +dnl ------------------------------------------------- + +OPT_WINSSL=no +AC_ARG_WITH(winssl,dnl +AC_HELP_STRING([--with-winssl],[enable Windows native SSL/TLS]) +AC_HELP_STRING([--without-winssl], [disable Windows native SSL/TLS]), + OPT_WINSSL=$withval) + +AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)]) +if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test "x$OPT_WINSSL" != "xno" && + test "x$ac_cv_native_windows" = "xyes"; then + AC_MSG_RESULT(yes) + AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support]) + AC_SUBST(USE_SCHANNEL, [1]) + curl_ssl_msg="enabled (Windows-native)" + WINSSL_ENABLED=1 + # --with-winssl implies --enable-sspi + AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support]) + AC_SUBST(USE_WINDOWS_SSPI, [1]) + curl_sspi_msg="enabled" + else + AC_MSG_RESULT(no) + fi +else + AC_MSG_RESULT(no) +fi + +OPT_DARWINSSL=no +AC_ARG_WITH(darwinssl,dnl +AC_HELP_STRING([--with-darwinssl],[enable iOS/Mac OS X native SSL/TLS]) +AC_HELP_STRING([--without-darwinssl], [disable iOS/Mac OS X native SSL/TLS]), + OPT_DARWINSSL=$withval) + +AC_MSG_CHECKING([whether to enable iOS/Mac OS X native SSL/TLS]) +if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test "x$OPT_DARWINSSL" != "xno" && + test -d "/System/Library/Frameworks/Security.framework"; then + AC_MSG_RESULT(yes) + AC_DEFINE(USE_DARWINSSL, 1, [to enable iOS/Mac OS X native SSL/TLS support]) + AC_SUBST(USE_DARWINSSL, [1]) + curl_ssl_msg="enabled (iOS/Mac OS X-native)" + DARWINSSL_ENABLED=1 + LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security" + else + AC_MSG_RESULT(no) + fi +else + AC_MSG_RESULT(no) +fi + dnl ********************************************************************** dnl Check for the presence of SSL libraries and headers dnl ********************************************************************** @@ -1274,7 +1388,7 @@ AC_HELP_STRING([--with-ssl=PATH],[Where to look for OpenSSL, PATH points to the AC_HELP_STRING([--without-ssl], [disable OpenSSL]), OPT_SSL=$withval) -if test X"$OPT_SSL" != Xno; then +if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then dnl backup the pre-ssl variables CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" @@ -1308,7 +1422,7 @@ if test X"$OPT_SSL" != Xno; then dnl the user told us to look OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig" AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"]) - if test -e "$OPENSSL_PCDIR/openssl.pc"; then + if test -f "$OPENSSL_PCDIR/openssl.pc"; then PKGTEST="yes" fi @@ -1349,7 +1463,7 @@ if test X"$OPT_SSL" != Xno; then dnl the argument to --with-ssl we don't know what dnl additional libs may be necessary. Hope that we dnl don't need any. - LIBS="$LIBS $SSL_LIBS" + LIBS="$SSL_LIBS $LIBS" fi fi @@ -1401,7 +1515,7 @@ if test X"$OPT_SSL" != Xno; then dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use); OLIBS=$LIBS - LIBS="$LIBS -lRSAglue -lrsaref" + LIBS="-lRSAglue -lrsaref $LIBS" AC_CHECK_LIB(ssl, SSL_connect) if test "$ac_cv_lib_ssl_SSL_connect" != yes; then dnl still no SSL_connect @@ -1472,7 +1586,8 @@ if test X"$OPT_SSL" != Xno; then RAND_egd \ ENGINE_cleanup \ CRYPTO_cleanup_all_ex_data \ - SSL_get_shutdown ) + SSL_get_shutdown \ + SSLv2_client_method ) dnl Make an attempt to detect if this is actually yassl's headers and dnl OpenSSL emulation layer. We still leave everything else believing @@ -1504,102 +1619,18 @@ if test X"$OPT_SSL" != Xno; then dnl when the ssl shared libs were found in a path that the run-time dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH dnl to prevent further configure tests to fail due to this - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH]) + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_OPENSSL" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $LIB_OPENSSL to LD_LIBRARY_PATH]) + fi fi + CURL_CHECK_OPENSSL_API fi fi dnl ********************************************************************** -dnl Check for the presence of ZLIB libraries and headers -dnl ********************************************************************** - -dnl Check for & handle argument to --with-zlib. - -_cppflags=$CPPFLAGS -_ldflags=$LDFLAGS -AC_ARG_WITH(zlib, -AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH]) -AC_HELP_STRING([--without-zlib],[disable use of zlib]), - [OPT_ZLIB="$withval"]) - -if test "$OPT_ZLIB" = "no" ; then - AC_MSG_WARN([zlib disabled]) -else - if test "$OPT_ZLIB" = "yes" ; then - OPT_ZLIB="" - fi - - if test -z "$OPT_ZLIB" ; then - dnl check for the lib first without setting any new path, since many - dnl people have it in the default path - - AC_CHECK_LIB(z, inflateEnd, - dnl libz found, set the variable - [HAVE_LIBZ="1"], - dnl if no lib found, try /usr/local - [OPT_ZLIB="/usr/local"]) - - fi - - dnl Add a nonempty path to the compiler flags - if test -n "$OPT_ZLIB"; then - CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include" - LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib$libsuff" - fi - - AC_CHECK_HEADER(zlib.h, - [ - dnl zlib.h was found - HAVE_ZLIB_H="1" - dnl if the lib wasn't found already, try again with the new paths - if test "$HAVE_LIBZ" != "1"; then - AC_CHECK_LIB(z, gzread, - [ - dnl the lib was found! - HAVE_LIBZ="1" - ], - [ CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags]) - fi - ], - [ - dnl zlib.h was not found, restore the flags - CPPFLAGS=$_cppflags - LDFLAGS=$_ldflags] - ) - - if test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" != "1" - then - AC_MSG_WARN([configure found only the libz lib, not the header file!]) - HAVE_LIBZ="" - elif test "$HAVE_LIBZ" != "1" && test "$HAVE_ZLIB_H" = "1" - then - AC_MSG_WARN([configure found only the libz header file, not the lib!]) - elif test "$HAVE_LIBZ" = "1" && test "$HAVE_ZLIB_H" = "1" - then - dnl both header and lib were found! - AC_SUBST(HAVE_LIBZ) - AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file]) - AC_DEFINE(HAVE_LIBZ, 1, [if zlib is available]) - - CURL_LIBS="$CURL_LIBS -lz" - LIBS="$LIBS -lz" - - dnl replace 'HAVE_LIBZ' in the automake makefile.ams - AMFIXLIB="1" - AC_MSG_NOTICE([found both libz and libz.h header]) - curl_zlib_msg="enabled" - fi -fi - -dnl set variable for use in automakefile(s) -AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIXLIB" = x1) - -dnl ********************************************************************** dnl Check for the random seed preferences dnl ********************************************************************** @@ -1620,8 +1651,12 @@ if test X"$OPENSSL_ENABLED" = X"1"; then [read randomness from FILE (default=/dev/urandom)]), [ RANDOM_FILE="$withval" ], [ - dnl Check for random device - AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] ) + if test x$cross_compiling != xyes; then + dnl Check for random device + AC_CHECK_FILE("/dev/urandom", [ RANDOM_FILE="/dev/urandom"] ) + else + AC_MSG_WARN([skipped the /dev/urandom detection when cross-compiling]) + fi ] ) if test -n "$RANDOM_FILE" && test X"$RANDOM_FILE" != Xno ; then @@ -1631,6 +1666,17 @@ if test X"$OPENSSL_ENABLED" = X"1"; then fi fi +dnl --- +dnl We require OpenSSL with SRP support. +dnl --- +if test "$OPENSSL_ENABLED" = "1"; then + AC_CHECK_LIB(crypto, SRP_Calc_client_key, + [ + AC_DEFINE(HAVE_SSLEAY_SRP, 1, [if you have the function SRP_Calc_client_key]) + AC_SUBST(HAVE_SSLEAY_SRP, [1]) + ]) +fi + dnl ---------------------------------------------------- dnl check for GnuTLS dnl ---------------------------------------------------- @@ -1639,15 +1685,20 @@ dnl Default to compiler & linker defaults for GnuTLS files & libraries. OPT_GNUTLS=no AC_ARG_WITH(gnutls,dnl -AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root (default: /usr/local/)]) +AC_HELP_STRING([--with-gnutls=PATH],[where to look for GnuTLS, PATH points to the installation root]) AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]), OPT_GNUTLS=$withval) -if test "$OPENSSL_ENABLED" != "1"; then +if test "$curl_ssl_msg" = "$init_ssl_msg"; then if test X"$OPT_GNUTLS" != Xno; then addld="" + addlib="" + gtlslib="" + version="" + addcflags="" + if test "x$OPT_GNUTLS" = "xyes"; then dnl this is with no partiular path given CURL_CHECK_PKGCONFIG(gnutls) @@ -1698,9 +1749,9 @@ if test "$OPENSSL_ENABLED" != "1"; then CLEANLIBS="$LIBS" CLEANCPPFLAGS="$CPPFLAGS" - CLEADLDFLAGS="$LDFLAGS" + CLEANLDFLAGS="$LDFLAGS" - LIBS="$LIBS $addlib" + LIBS="$addlib $LIBS" LDFLAGS="$LDFLAGS $addld" if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" @@ -1727,10 +1778,11 @@ if test "$OPENSSL_ENABLED" != "1"; then dnl linker doesn't search through, we need to add it to dnl LD_LIBRARY_PATH to prevent further configure tests to fail dnl due to this - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH]) + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH]) + fi fi fi @@ -1738,20 +1790,47 @@ if test "$OPENSSL_ENABLED" != "1"; then fi dnl GNUTLS not disabled -fi dnl OPENSSL != 1 +fi dnl --- -dnl If GnuTLS is enabled, we MUST verify that it uses libgcrypt since -dnl curl code relies on that but recent GnuTLS versions can in fact build -dnl with different crypto libraries which curl right now cannot handle +dnl Check which crypto backend GnuTLS uses dnl --- if test "$GNUTLS_ENABLED" = "1"; then - AC_CHECK_LIB(gcrypt, - gcry_control, , - [ - AC_MSG_ERROR([need GnuTLS built with gcrypt to function with GnuTLS]) - ]) + USE_GNUTLS_NETTLE= + # First check if we can detect either crypto library via transitive linking + AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ]) + if test "$USE_GNUTLS_NETTLE" = ""; then + AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ]) + fi + # If not, try linking directly to both of them to see if they are available + if test "$USE_GNUTLS_NETTLE" = ""; then + AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ]) + fi + if test "$USE_GNUTLS_NETTLE" = ""; then + AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ]) + fi + if test "$USE_GNUTLS_NETTLE" = ""; then + AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found]) + fi + if test "$USE_GNUTLS_NETTLE" = "1"; then + AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend]) + AC_SUBST(USE_GNUTLS_NETTLE, [1]) + LIBS="-lnettle $LIBS" + else + LIBS="-lgcrypt $LIBS" + fi +fi + +dnl --- +dnl We require GnuTLS with SRP support. +dnl --- +if test "$GNUTLS_ENABLED" = "1"; then + AC_CHECK_LIB(gnutls, gnutls_srp_verifier, + [ + AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier]) + AC_SUBST(HAVE_GNUTLS_SRP, [1]) + ]) fi dnl ---------------------------------------------------- @@ -1764,11 +1843,11 @@ OPT_POLARSSL=no _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(polarssl,dnl -AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root (default: /usr/local/)]) +AC_HELP_STRING([--with-polarssl=PATH],[where to look for PolarSSL, PATH points to the installation root]) AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]), OPT_POLARSSL=$withval) -if test "$OPENSSL_ENABLED" != "1"; then +if test "$curl_ssl_msg" = "$init_ssl_msg"; then if test X"$OPT_POLARSSL" != Xno; then @@ -1790,6 +1869,11 @@ if test "$OPENSSL_ENABLED" != "1"; then ]) fi + addld="" + addlib="" + addcflags="" + polarssllib="" + if test "x$USE_POLARSSL" != "xyes"; then dnl add the path and test again addld=-L$OPT_POLARSSL/lib$libsuff @@ -1818,25 +1902,119 @@ if test "$OPENSSL_ENABLED" != "1"; then if test "x$USE_POLARSSL" = "xyes"; then AC_MSG_NOTICE([detected PolarSSL]) - CURL_LIBS="$CURL_LIBS -lpolarssl" - LIBS="$LIBS -lpolarssl" + LIBS="-lpolarssl $LIBS" if test -n "$polarssllib"; then dnl when shared libs were found in a path that the run-time dnl linker doesn't search through, we need to add it to dnl LD_LIBRARY_PATH to prevent further configure tests to fail dnl due to this + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH]) + fi + fi + fi - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$polarssllib" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $polarssllib to LD_LIBRARY_PATH]) + fi dnl PolarSSL not disabled + +fi + +dnl ---------------------------------------------------- +dnl check for CyaSSL +dnl ---------------------------------------------------- + +dnl Default to compiler & linker defaults for CyaSSL files & libraries. +OPT_CYASSL=no + +_cppflags=$CPPFLAGS +_ldflags=$LDFLAGS +AC_ARG_WITH(cyassl,dnl +AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)]) +AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]), + OPT_CYASSL=$withval) + +if test "$curl_ssl_msg" = "$init_ssl_msg"; then + + if test X"$OPT_CYASSL" != Xno; then + + if test "$OPT_CYASSL" = "yes"; then + OPT_CYASSL="" + fi + + if test -z "$OPT_CYASSL" ; then + dnl check for lib in system default first + + AC_CHECK_LIB(cyassl, CyaSSL_Init, + dnl libcyassl found, set the variable + [ + AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled]) + AC_SUBST(USE_CYASSL, [1]) + CYASSL_ENABLED=1 + USE_CYASSL="yes" + curl_ssl_msg="enabled (CyaSSL)" + ]) + fi + + addld="" + addlib="" + addcflags="" + cyassllib="" + + if test "x$USE_CYASSL" != "xyes"; then + dnl add the path and test again + addld=-L$OPT_CYASSL/lib$libsuff + addcflags=-I$OPT_CYASSL/include + cyassllib=$OPT_CYASSL/lib$libsuff + + LDFLAGS="$LDFLAGS $addld" + if test "$addcflags" != "-I/usr/include"; then + CPPFLAGS="$CPPFLAGS $addcflags" fi + AC_CHECK_LIB(cyassl, CyaSSL_Init, + [ + AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled]) + AC_SUBST(USE_CYASSL, [1]) + CYASSL_ENABLED=1 + USE_CYASSL="yes" + curl_ssl_msg="enabled (CyaSSL)" + ], + [ + CPPFLAGS=$_cppflags + LDFLAGS=$_ldflags + ]) fi - fi dnl PolarSSL not disabled + if test "x$USE_CYASSL" = "xyes"; then + AC_MSG_NOTICE([detected CyaSSL]) + + dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined! + AC_CHECK_SIZEOF(long long) + + dnl Versions since at least 2.9.4 renamed error.h to error-ssl.h + AC_CHECK_HEADERS(cyassl/error-ssl.h) + + LIBS="-lcyassl -lm $LIBS" + + if test -n "$cyassllib"; then + dnl when shared libs were found in a path that the run-time + dnl linker doesn't search through, we need to add it to + dnl LD_LIBRARY_PATH to prevent further configure tests to fail + dnl due to this + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH]) + fi + fi + + fi -fi dnl OPENSSL != 1 + fi dnl CyaSSL not disabled + +fi dnl ---------------------------------------------------- dnl NSS. Only check if GnuTLS and OpenSSL are not enabled @@ -1846,13 +2024,20 @@ dnl Default to compiler & linker defaults for NSS files & libraries. OPT_NSS=no AC_ARG_WITH(nss,dnl -AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root (default: /usr/local/)]) +AC_HELP_STRING([--with-nss=PATH],[where to look for NSS, PATH points to the installation root]) AC_HELP_STRING([--without-nss], [disable NSS detection]), OPT_NSS=$withval) -if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then +if test "$curl_ssl_msg" = "$init_ssl_msg"; then + + if test X"$OPT_NSS" != Xno; then + + addld="" + addlib="" + addcflags="" + nssprefix="" + version="" - if test X"$OPT_NSS" != Xno; then if test "x$OPT_NSS" = "xyes"; then CURL_CHECK_PKGCONFIG(nss) @@ -1885,24 +2070,18 @@ if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then nssprefix=$OPT_NSS fi - dnl Check for functionPK11_CreateGenericObject - dnl this is needed for using the PEM PKCS#11 module - AC_CHECK_LIB(nss3, PK11_CreateGenericObject, - [ - AC_DEFINE(HAVE_PK11_CREATEGENERICOBJECT, 1, [if you have the function PK11_CreateGenericObject]) - AC_SUBST(HAVE_PK11_CREATEGENERICOBJECT, [1]) - ]) if test -n "$addlib"; then CLEANLIBS="$LIBS" CLEANCPPFLAGS="$CPPFLAGS" - LIBS="$LIBS $addlib" + LIBS="$addlib $LIBS" if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" fi - AC_CHECK_LIB(nss3, NSS_Initialize, + dnl The function SSL_VersionRangeSet() is needed to enable TLS > 1.0 + AC_CHECK_LIB(nss3, SSL_VersionRangeSet, [ AC_DEFINE(USE_NSS, 1, [if NSS is enabled]) AC_SUBST(USE_NSS, [1]) @@ -1918,25 +2097,86 @@ if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then if test "x$USE_NSS" = "xyes"; then AC_MSG_NOTICE([detected NSS version $version]) + dnl needed when linking the curl tool without USE_EXPLICIT_LIB_DEPS + NSS_LIBS=$addlib + AC_SUBST([NSS_LIBS]) + dnl when shared libs were found in a path that the run-time dnl linker doesn't search through, we need to add it to dnl LD_LIBRARY_PATH to prevent further configure tests to fail dnl due to this - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH]) + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$nssprefix/lib$libsuff" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $nssprefix/lib$libsuff to LD_LIBRARY_PATH]) + fi fi fi fi dnl NSS not disabled -fi dnl OPENSSL != 1 -a GNUTLS_ENABLED != 1 +fi dnl curl_ssl_msg = init_ssl_msg + +OPT_AXTLS=off + +AC_ARG_WITH(axtls,dnl +AC_HELP_STRING([--with-axtls=PATH],[Where to look for axTLS, PATH points to the axTLS installation prefix (default: /usr/local). Ignored if another SSL engine is selected.]) +AC_HELP_STRING([--without-axtls], [disable axTLS]), + OPT_AXTLS=$withval) + +if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test X"$OPT_AXTLS" != Xno; then + dnl backup the pre-axtls variables + CLEANLDFLAGS="$LDFLAGS" + CLEANCPPFLAGS="$CPPFLAGS" + CLEANLIBS="$LIBS" + + case "$OPT_AXTLS" in + yes) + dnl --with-axtls (without path) used + PREFIX_AXTLS=/usr/local + LIB_AXTLS="$PREFIX_AXTLS/lib" + LDFLAGS="$LDFLAGS -L$LIB_AXTLS" + CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include" + ;; + off) + dnl no --with-axtls option given, just check default places + PREFIX_AXTLS= + ;; + *) + dnl check the given --with-axtls spot + PREFIX_AXTLS=$OPT_AXTLS + LIB_AXTLS="$PREFIX_AXTLS/lib" + LDFLAGS="$LDFLAGS -L$LIB_AXTLS" + CPPFLAGS="$CPPFLAGS -I$PREFIX_AXTLS/include" + ;; + esac + + AC_CHECK_LIB(axtls, ssl_version,[ + LIBS="-laxtls $LIBS" + AC_DEFINE(USE_AXTLS, 1, [if axTLS is enabled]) + AC_SUBST(USE_AXTLS, [1]) + AXTLS_ENABLED=1 + USE_AXTLS="yes" + curl_ssl_msg="enabled (axTLS)" + + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $LIB_AXTLS to LD_LIBRARY_PATH]) + fi + ],[ + LDFLAGS="$CLEANLDFLAGS" + CPPFLAGS="$CLEANCPPFLAGS" + LIBS="$CLEANLIBS" + ]) + fi +fi -if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED" = "x"; then +if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.]) - AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl or --with-nss to address this.]) + AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.]) else # SSL is enabled, genericly AC_SUBST(SSL_ENABLED) @@ -1950,13 +2190,101 @@ dnl ********************************************************************** CURL_CHECK_CA_BUNDLE dnl ********************************************************************** +dnl Check for libmetalink +dnl ********************************************************************** + +OPT_LIBMETALINK=no + +AC_ARG_WITH(libmetalink,dnl +AC_HELP_STRING([--with-libmetalink=PATH],[where to look for libmetalink, PATH points to the installation root]) +AC_HELP_STRING([--without-libmetalink], [disable libmetalink detection]), + OPT_LIBMETALINK=$withval) + +if test X"$OPT_LIBMETALINK" != Xno; then + + addld="" + addlib="" + addcflags="" + version="" + libmetalinklib="" + + PKGTEST="no" + if test "x$OPT_LIBMETALINK" = "xyes"; then + dnl this is with no partiular path given + PKGTEST="yes" + CURL_CHECK_PKGCONFIG(libmetalink) + else + dnl When particular path is given, set PKG_CONFIG_LIBDIR using the path. + LIBMETALINK_PCDIR="$OPT_LIBMETALINK/lib/pkgconfig" + AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$LIBMETALINK_PCDIR"]) + if test -f "$LIBMETALINK_PCDIR/libmetalink.pc"; then + PKGTEST="yes" + fi + if test "$PKGTEST" = "yes"; then + CURL_CHECK_PKGCONFIG(libmetalink, [$LIBMETALINK_PCDIR]) + fi + fi + if test "$PKGTEST" = "yes" && test "$PKGCONFIG" != "no"; then + addlib=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl + $PKGCONFIG --libs-only-l libmetalink` + addld=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl + $PKGCONFIG --libs-only-L libmetalink` + addcflags=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl + $PKGCONFIG --cflags-only-I libmetalink` + version=`CURL_EXPORT_PCDIR([$LIBMETALINK_PCDIR]) dnl + $PKGCONFIG --modversion libmetalink` + libmetalinklib=`echo $addld | $SED -e 's/-L//'` + fi + if test -n "$addlib"; then + + clean_CPPFLAGS="$CPPFLAGS" + clean_LDFLAGS="$LDFLAGS" + clean_LIBS="$LIBS" + CPPFLAGS="$addcflags $clean_CPPFLAGS" + LDFLAGS="$addld $clean_LDFLAGS" + LIBS="$addlib $clean_LIBS" + AC_MSG_CHECKING([if libmetalink is recent enough]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +# include + ]],[[ + if(0 != metalink_strerror(0)) /* added in 0.1.0 */ + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes ($version)]) + want_metalink="yes" + ],[ + AC_MSG_RESULT([no ($version)]) + AC_MSG_NOTICE([libmetalink library defective or too old]) + want_metalink="no" + ]) + CPPFLAGS="$clean_CPPFLAGS" + LDFLAGS="$clean_LDFLAGS" + LIBS="$clean_LIBS" + if test "$want_metalink" = "yes"; then + dnl finally libmetalink will be used + AC_DEFINE(USE_METALINK, 1, [Define to enable metalink support]) + LIBMETALINK_LIBS=$addlib + LIBMETALINK_LDFLAGS=$addld + LIBMETALINK_CPPFLAGS=$addcflags + AC_SUBST([LIBMETALINK_LIBS]) + AC_SUBST([LIBMETALINK_LDFLAGS]) + AC_SUBST([LIBMETALINK_CPPFLAGS]) + curl_mtlnk_msg="enabled" + fi + + fi +fi + +dnl ********************************************************************** dnl Check for the presence of LIBSSH2 libraries and headers dnl ********************************************************************** dnl Default to compiler & linker defaults for LIBSSH2 files & libraries. OPT_LIBSSH2=off AC_ARG_WITH(libssh2,dnl -AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation (default: /usr/local/lib); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) +AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]), OPT_LIBSSH2=$withval) @@ -1991,6 +2319,7 @@ if test X"$OPT_LIBSSH2" != Xno; then dnl if given with a prefix, we set -L and -I based on that if test -n "$PREFIX_SSH2"; then + LIB_SSH2="-lssh2" LD_SSH2=-L${PREFIX_SSH2}/lib$libsuff CPP_SSH2=-I${PREFIX_SSH2}/include DIR_SSH2=${PREFIX_SSH2}/lib$libsuff @@ -1998,7 +2327,7 @@ if test X"$OPT_LIBSSH2" != Xno; then LDFLAGS="$LDFLAGS $LD_SSH2" CPPFLAGS="$CPPFLAGS $CPP_SSH2" - LIBS="$LIBS $LIB_SSH2" + LIBS="$LIB_SSH2 $LIBS" AC_CHECK_LIB(ssh2, libssh2_channel_open_ex) @@ -2020,16 +2349,11 @@ if test X"$OPT_LIBSSH2" != Xno; then dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH dnl to prevent further configure tests to fail due to this - dnl libssh2_version is a post 1.0 addition - dnl libssh2_init and libssh2_exit were added in 1.2.5 - dnl libssh2_scp_send64 was added in 1.2.6 - dnl libssh2_session_handshake was added in 1.2.8 - AC_CHECK_FUNCS( libssh2_version libssh2_init libssh2_exit \ - libssh2_scp_send64 libssh2_session_handshake) - - LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2" - export LD_LIBRARY_PATH - AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH]) + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH2" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $DIR_SSH2 to LD_LIBRARY_PATH]) + fi fi else dnl no libssh2, revert back to clean variables @@ -2046,7 +2370,7 @@ dnl ********************************************************************** dnl Default to compiler & linker defaults for LIBRTMP files & libraries. OPT_LIBRTMP=off AC_ARG_WITH(librtmp,dnl -AC_HELP_STRING([--with-librtmp=PATH],[Where to look for librtmp, PATH points to the LIBRTMP installation (default: /usr/local/lib); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) +AC_HELP_STRING([--with-librtmp=PATH],[Where to look for librtmp, PATH points to the LIBRTMP installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) AC_HELP_STRING([--without-librtmp], [disable LIBRTMP]), OPT_LIBRTMP=$withval) @@ -2093,7 +2417,7 @@ if test X"$OPT_LIBRTMP" != Xno; then LDFLAGS="$LDFLAGS $LD_RTMP" CPPFLAGS="$CPPFLAGS $CPP_RTMP" - LIBS="$LIBS $LIB_RTMP" + LIBS="$LIB_RTMP $LIBS" AC_CHECK_LIB(rtmp, RTMP_Init, [ @@ -2121,103 +2445,354 @@ dnl ********************************************************************** dnl Check for linker switch for versioned symbols dnl ********************************************************************** -AC_MSG_CHECKING([if libraries can be versioned]) -GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` -if test -z "$GLD"; then - versioned_symbols_flavour= - AC_MSG_RESULT(no) - AC_MSG_WARN(*** -*** You may want to rerun configure using --with-gnu-ld to enable versioned symbols. -) -else - AC_MSG_RESULT(yes) - -AC_MSG_CHECKING([whether versioned symbols are wanted]) versioned_symbols_flavour= - +AC_MSG_CHECKING([whether versioned symbols are wanted]) AC_ARG_ENABLE(versioned-symbols, AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library]) AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]), [ case "$enableval" in yes) AC_MSG_RESULT(yes) - if test "$OPENSSL_ENABLED" = "1"; then - versioned_symbols_flavour="OPENSSL_" - else - if test "$OPT_GNUTLS" != "no"; then - versioned_symbols_flavour="GNUTLS_" - fi - fi - versioned_symbols="yes" - ;; + AC_MSG_CHECKING([if libraries can be versioned]) + GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` + if test -z "$GLD"; then + AC_MSG_RESULT(no) + AC_MSG_WARN([You need an ld version supporting the --version-script option]) + else + AC_MSG_RESULT(yes) + if test "x$OPENSSL_ENABLED" = "x1"; then + versioned_symbols_flavour="OPENSSL_" + elif test "x$GNUTLS_ENABLED" = "x1"; then + versioned_symbols_flavour="GNUTLS_" + elif test "x$NSS_ENABLED" = "x1"; then + versioned_symbols_flavour="NSS_" + elif test "x$POLARSSL_ENABLED" = "x1"; then + versioned_symbols_flavour="POLARSSL_" + elif test "x$CYASSL_ENABLED" = "x1"; then + versioned_symbols_flavour="CYASSL_" + elif test "x$AXTLS_ENABLED" = "x1"; then + versioned_symbols_flavour="AXTLS_" + elif test "x$WINSSL_ENABLED" = "x1"; then + versioned_symbols_flavour="WINSSL_" + elif test "x$DARWINSSL_ENABLED" = "x1"; then + versioned_symbols_flavour="DARWINSSL_" + else + versioned_symbols_flavour="" + fi + versioned_symbols="yes" + fi + ;; *) AC_MSG_RESULT(no) - ;; + ;; esac ], [ AC_MSG_RESULT(no) ] ) -fi -AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"]) -AM_CONDITIONAL(VERSIONED_SYMBOLS, test "$versioned_symbols" = "yes") +AC_SUBST([CURL_LT_SHLIB_VERSIONED_FLAVOUR], + ["$versioned_symbols_flavour"]) +AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS], + [test "x$versioned_symbols" = 'xyes']) + +dnl ------------------------------------------------- +dnl check winidn option before other IDN libraries +dnl ------------------------------------------------- + +AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)]) +OPT_WINIDN="default" +AC_ARG_WITH(winidn, +AC_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN]) +AC_HELP_STRING([--without-winidn], [disable Windows native IDN]), + OPT_WINIDN=$withval) +case "$OPT_WINIDN" in + no|default) + dnl --without-winidn option used or configure option not specified + want_winidn="no" + AC_MSG_RESULT([no]) + ;; + yes) + dnl --with-winidn option used without path + want_winidn="yes" + want_winidn_path="default" + AC_MSG_RESULT([yes]) + ;; + *) + dnl --with-winidn option used with path + want_winidn="yes" + want_winidn_path="$withval" + AC_MSG_RESULT([yes ($withval)]) + ;; +esac +if test "$want_winidn" = "yes"; then + dnl winidn library support has been requested + clean_CPPFLAGS="$CPPFLAGS" + clean_LDFLAGS="$LDFLAGS" + clean_LIBS="$LIBS" + WINIDN_LIBS="-lnormaliz" + # + if test "$want_winidn_path" != "default"; then + dnl path has been specified + dnl pkg-config not available or provides no info + WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff" + WINIDN_CPPFLAGS="-I$want_winidn_path/include" + WINIDN_DIR="$want_winidn_path/lib$libsuff" + fi + # + CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS" + LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS" + LIBS="$WINIDN_LIBS $LIBS" + # + AC_MSG_CHECKING([if IdnToUnicode can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([IdnToUnicode]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_winidn="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_winidn="no" + ]) + # + if test "$tst_links_winidn" = "yes"; then + AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).]) + AC_DEFINE(WANT_IDN_PROTOTYPES, 1, [Define to 1 to provide own prototypes.]) + AC_SUBST([IDN_ENABLED], [1]) + curl_idn_msg="enabled (Windows-native)" + else + AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) + CPPFLAGS="$clean_CPPFLAGS" + LDFLAGS="$clean_LDFLAGS" + LIBS="$clean_LIBS" + fi +fi dnl ********************************************************************** dnl Check for the presence of IDN libraries and headers dnl ********************************************************************** AC_MSG_CHECKING([whether to build with libidn]) +OPT_IDN="default" AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage]) AC_HELP_STRING([--without-libidn],[Disable libidn usage]), - [LIBIDN="$withval"]) - -case "$LIBIDN" in + [OPT_IDN=$withval]) +case "$OPT_IDN" in no) - AC_MSG_RESULT(no) - ;; - *) AC_MSG_RESULT(yes) + dnl --without-libidn option used + want_idn="no" + AC_MSG_RESULT([no]) + ;; + default) + dnl configure option not specified + want_idn="yes" + want_idn_path="default" + AC_MSG_RESULT([(assumed) yes]) + ;; + yes) + dnl --with-libidn option used without path + want_idn="yes" + want_idn_path="default" + AC_MSG_RESULT([yes]) + ;; + *) + dnl --with-libidn option used with path + want_idn="yes" + want_idn_path="$withval" + AC_MSG_RESULT([yes ($withval)]) + ;; +esac - idn="" - dnl if there is a given path, check that FIRST - if test -n "$LIBIDN"; then - if test "x$LIBIDN" != "xyes"; then - oldLDFLAGS=$LDFLAGS - oldCPPFLAGS=$CPPFLAGS - LDFLAGS="$LDFLAGS -L$LIBIDN/lib" - CPPFLAGS="$CPPFLAGS -I$LIBIDN/include" - idn="yes" - AC_CHECK_LIB(idn, idna_to_ascii_4i, , - idn="" - LDFLAGS=$oldLDFLAGS - CPPFLAGS=$oldCPPFLAGS) - fi - fi +if test "$want_idn" = "yes"; then + dnl idn library support has been requested + clean_CPPFLAGS="$CPPFLAGS" + clean_LDFLAGS="$LDFLAGS" + clean_LIBS="$LIBS" + PKGCONFIG="no" + # + if test "$want_idn_path" != "default"; then + dnl path has been specified + IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig" + CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR]) + if test "$PKGCONFIG" != "no"; then + IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl + $PKGCONFIG --libs-only-l libidn 2>/dev/null` + IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl + $PKGCONFIG --libs-only-L libidn 2>/dev/null` + IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl + $PKGCONFIG --cflags-only-I libidn 2>/dev/null` + IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` + else + dnl pkg-config not available or provides no info + IDN_LIBS="-lidn" + IDN_LDFLAGS="-L$want_idn_path/lib$libsuff" + IDN_CPPFLAGS="-I$want_idn_path/include" + IDN_DIR="$want_idn_path/lib$libsuff" + fi + else + dnl path not specified + CURL_CHECK_PKGCONFIG(libidn) + if test "$PKGCONFIG" != "no"; then + IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null` + IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null` + IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null` + IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` + else + dnl pkg-config not available or provides no info + IDN_LIBS="-lidn" + fi + fi + # + if test "$PKGCONFIG" != "no"; then + AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"]) + AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"]) + AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"]) + AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"]) + else + AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"]) + AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"]) + AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"]) + AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"]) + fi + # + CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS" + LDFLAGS="$IDN_LDFLAGS $LDFLAGS" + LIBS="$IDN_LIBS $LIBS" + # + AC_MSG_CHECKING([if idna_to_ascii_4i can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_libidn="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_libidn="no" + ]) + if test "$tst_links_libidn" = "no"; then + AC_MSG_CHECKING([if idna_to_ascii_lz can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_libidn="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_libidn="no" + ]) + fi + # + if test "$tst_links_libidn" = "yes"; then + AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).]) + dnl different versions of libidn have different setups of these: + AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror ) + AC_CHECK_HEADERS( idn-free.h tld.h ) + if test "x$ac_cv_header_tld_h" = "xyes"; then + AC_SUBST([IDN_ENABLED], [1]) + curl_idn_msg="enabled" + if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH]) + fi + else + AC_MSG_WARN([Libraries for IDN support too old: IDN disabled]) + CPPFLAGS="$clean_CPPFLAGS" + LDFLAGS="$clean_LDFLAGS" + LIBS="$clean_LIBS" + fi + else + AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) + CPPFLAGS="$clean_CPPFLAGS" + LDFLAGS="$clean_LDFLAGS" + LIBS="$clean_LIBS" + fi +fi - if test "x$idn" != "xyes"; then - dnl check with default paths - idn="yes" - AC_CHECK_LIB(idn, idna_to_ascii_lz, , - idn="") - fi - if test "x$idn" = "xyes"; then - curl_idn_msg="enabled" - AC_SUBST(IDN_ENABLED, [1]) - dnl different versions of libidn have different setups of these: - AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror) - AC_CHECK_HEADERS( idn-free.h tld.h ) - fi +dnl Let's hope this split URL remains working: +dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ +dnl genprogc/thread_quick_ref.htm - ;; + +dnl ********************************************************************** +dnl Check for nghttp2 +dnl ********************************************************************** + +OPT_H2="yes" +AC_ARG_WITH(nghttp2, +AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage]) +AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]), + [OPT_H2=$withval]) +case "$OPT_H2" in + no) + dnl --without-nghttp2 option used + want_h2="no" + ;; + yes) + dnl --with-nghttp2 option used without path + want_h2="default" + want_h2_path="" + ;; + *) + dnl --with-nghttp2 option used with path + want_h2="yes" + want_h2_path="$withval/lib/pkgconfig" + ;; esac +curl_h2_msg="disabled (--with-nghttp2)" +if test X"$want_h2" != Xno; then + dnl backup the pre-nghttp2 variables + CLEANLDFLAGS="$LDFLAGS" + CLEANCPPFLAGS="$CPPFLAGS" + CLEANLIBS="$LIBS" -dnl Let's hope this split URL remains working: -dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ -dnl genprogc/thread_quick_ref.htm + CURL_CHECK_PKGCONFIG(libnghttp2, $want_h2_path) + + if test "$PKGCONFIG" != "no" ; then + LIB_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) + $PKGCONFIG --libs-only-l libnghttp2` + AC_MSG_NOTICE([-l is $LIB_H2]) + + CPP_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) dnl + $PKGCONFIG --cflags-only-I libnghttp2` + AC_MSG_NOTICE([-I is $CPP_H2]) + + LD_H2=`CURL_EXPORT_PCDIR([$want_h2_path]) + $PKGCONFIG --libs-only-L libnghttp2` + AC_MSG_NOTICE([-L is $LD_H2]) + + LDFLAGS="$LDFLAGS $LD_H2" + CPPFLAGS="$CPPFLAGS $CPP_H2" + LIBS="$LIB_H2 $LIBS" + + AC_CHECK_LIB(nghttp2, nghttp2_session_callbacks_set_send_callback, + [ + AC_CHECK_HEADERS(nghttp2/nghttp2.h, + curl_h2_msg="enabled (nghttp2)" + NGHTTP2_ENABLED=1 + AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use]) + AC_SUBST(USE_NGHTTP2, [1]) + ) + ], + dnl not found, revert back to clean variables + LDFLAGS=$CLEANLDFLAGS + CPPFLAGS=$CLEANCPPFLAGS + LIBS=$CLEANLIBS + ) + else + dnl no nghttp2 pkg-config found, deal with it + if test X"$want_h2" != Xdefault; then + dnl To avoid link errors, we do not allow --with-nghttp2 without + dnl a pkgconfig file + AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.]) + fi + fi + +fi dnl ********************************************************************** dnl Back to "normal" configuring @@ -2271,6 +2846,7 @@ AC_CHECK_HEADERS( stdbool.h \ arpa/tftp.h \ sys/filio.h \ + sys/wait.h \ setjmp.h, dnl to do if not found [], @@ -2365,6 +2941,8 @@ AC_CHECK_TYPE([bool],[ CURL_CONFIGURE_CURL_SOCKLEN_T +CURL_CONFIGURE_PULL_SYS_POLL + TYPE_IN_ADDR_T TYPE_SOCKADDR_STORAGE @@ -2376,7 +2954,6 @@ AC_TYPE_SIGNAL CURL_CHECK_FUNC_SELECT CURL_CHECK_FUNC_RECV -CURL_CHECK_FUNC_RECVFROM CURL_CHECK_FUNC_SEND CURL_CHECK_MSG_NOSIGNAL @@ -2392,6 +2969,7 @@ CURL_CHECK_FUNC_FREEIFADDRS CURL_CHECK_FUNC_FSETXATTR CURL_CHECK_FUNC_FTRUNCATE CURL_CHECK_FUNC_GETADDRINFO +CURL_CHECK_FUNC_GAI_STRERROR CURL_CHECK_FUNC_GETHOSTBYADDR CURL_CHECK_FUNC_GETHOSTBYADDR_R CURL_CHECK_FUNC_GETHOSTBYNAME @@ -2415,13 +2993,12 @@ CURL_CHECK_FUNC_SIGINTERRUPT CURL_CHECK_FUNC_SIGNAL CURL_CHECK_FUNC_SIGSETJMP CURL_CHECK_FUNC_SOCKET +CURL_CHECK_FUNC_SOCKETPAIR CURL_CHECK_FUNC_STRCASECMP -CURL_CHECK_FUNC_STRCASESTR CURL_CHECK_FUNC_STRCMPI CURL_CHECK_FUNC_STRDUP CURL_CHECK_FUNC_STRERROR_R CURL_CHECK_FUNC_STRICMP -CURL_CHECK_FUNC_STRLCAT CURL_CHECK_FUNC_STRNCASECMP CURL_CHECK_FUNC_STRNCMPI CURL_CHECK_FUNC_STRNICMP @@ -2444,8 +3021,10 @@ AC_CHECK_FUNCS([fork \ getppid \ getprotobyname \ getpwuid \ + getpwuid_r \ getrlimit \ gettimeofday \ + if_nametoindex \ inet_addr \ perror \ pipe \ @@ -2468,7 +3047,7 @@ AC_CHECK_FUNCS([fork \ ],[ AC_MSG_RESULT([yes]) eval "ac_cv_func_$func=yes" - AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$func]), [1], + AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1], [Define to 1 if you have the $func function.]) ],[ AC_MSG_RESULT([but still no]) @@ -2489,10 +3068,6 @@ if test "$ipv6" = "yes"; then CURL_CHECK_NI_WITHSCOPEID fi -dnl ************************************************************ -dnl enable non-blocking communications -dnl -CURL_CHECK_OPTION_NONBLOCKING CURL_CHECK_NONBLOCKING_SOCKET dnl ************************************************************ @@ -2552,7 +3127,8 @@ AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1) CURL_CHECK_LIB_ARES AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes) -if test "x$enable_shared" = "xyes"; then +if test "x$ac_cv_native_windows" != "xyes" && + test "x$enable_shared" = "xyes"; then build_libhostname=yes else build_libhostname=no @@ -2570,14 +3146,26 @@ if test "$want_thres" = "yes"; then AC_CHECK_HEADER(pthread.h, [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have ]) save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -pthread" - AC_CHECK_LIB(pthread, pthread_create, - [ AC_MSG_NOTICE([using POSIX threaded DNS lookup]) - AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup]) - USE_THREADS_POSIX=1 - curl_res_msg="threaded" - ], - [ CFLAGS="$save_CFLAGS"]) + + dnl first check for function without lib + AC_CHECK_FUNC(pthread_create, [USE_THREADS_POSIX=1] ) + + dnl if it wasn't found without lib, search for it in pthread lib + if test "$USE_THREADS_POSIX" != "1" + then + CFLAGS="$CFLAGS -pthread" + AC_CHECK_LIB(pthread, pthread_create, + [USE_THREADS_POSIX=1], + [ CFLAGS="$save_CFLAGS"]) + fi + + if test "x$USE_THREADS_POSIX" = "x1" + then + AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup]) + curl_res_msg="POSIX threaded" + fi + + ]) fi @@ -2620,10 +3208,20 @@ AC_HELP_STRING([--disable-sspi],[Disable SSPI]), fi ;; *) - AC_MSG_RESULT(no) + if test "x$WINSSL_ENABLED" = "x1"; then + # --with-winssl implies --enable-sspi + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi ;; esac ], - AC_MSG_RESULT(no) + if test "x$WINSSL_ENABLED" = "x1"; then + # --with-winssl implies --enable-sspi + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi ) dnl ************************************************************ @@ -2637,6 +3235,7 @@ AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]), no) AC_MSG_RESULT(no) AC_DEFINE(CURL_DISABLE_CRYPTO_AUTH, 1, [to disable cryptographic authentication]) + CURL_DISABLE_CRYPTO_AUTH=1 ;; *) AC_MSG_RESULT(yes) ;; @@ -2644,69 +3243,94 @@ AC_HELP_STRING([--disable-crypto-auth],[Disable cryptographic authentication]), AC_MSG_RESULT(yes) ) +CURL_CHECK_OPTION_NTLM_WB + +CURL_CHECK_NTLM_WB + dnl ************************************************************ -dnl disable cookies support +dnl disable TLS-SRP authentication dnl -AC_MSG_CHECKING([whether to enable support for cookies]) -AC_ARG_ENABLE(cookies, -AC_HELP_STRING([--enable-cookies],[Enable cookies support]) -AC_HELP_STRING([--disable-cookies],[Disable cookies support]), +AC_MSG_CHECKING([whether to enable TLS-SRP authentication]) +AC_ARG_ENABLE(tls-srp, +AC_HELP_STRING([--enable-tls-srp],[Enable TLS-SRP authentication]) +AC_HELP_STRING([--disable-tls-srp],[Disable TLS-SRP authentication]), [ case "$enableval" in no) AC_MSG_RESULT(no) - AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support]) + AC_DEFINE(CURL_DISABLE_TLS_SRP, 1, [to disable TLS-SRP authentication]) + want_tls_srp=no ;; *) AC_MSG_RESULT(yes) + want_tls_srp=yes ;; esac ], AC_MSG_RESULT(yes) + want_tls_srp=yes +) + +if test "$want_tls_srp" = "yes" && ( test "x$HAVE_GNUTLS_SRP" = "x1" || test "x$HAVE_SSLEAY_SRP" = "x1") ; then + AC_DEFINE(USE_TLS_SRP, 1, [Use TLS-SRP authentication]) + USE_TLS_SRP=1 + curl_tls_srp_msg="enabled" +fi + +dnl ************************************************************ +dnl disable Unix domain sockets support +dnl +AC_MSG_CHECKING([whether to enable Unix domain sockets]) +AC_ARG_ENABLE(unix-sockets, +AC_HELP_STRING([--enable-unix-sockets],[Enable Unix domain sockets]) +AC_HELP_STRING([--disable-unix-sockets],[Disable Unix domain sockets]), +[ case "$enableval" in + no) AC_MSG_RESULT(no) + want_unix_sockets=no + ;; + *) AC_MSG_RESULT(yes) + want_unix_sockets=yes + ;; + esac ], [ + AC_MSG_RESULT(auto) + want_unix_sockets=auto + ] ) +if test "x$want_unix_sockets" != "xno"; then + AC_CHECK_MEMBER([struct sockaddr_un.sun_path], [ + AC_DEFINE(USE_UNIX_SOCKETS, 1, [Use Unix domain sockets]) + AC_SUBST(USE_UNIX_SOCKETS, [1]) + curl_unix_sockets_msg="enabled" + ], [ + if test "x$want_unix_sockets" = "xyes"; then + AC_MSG_ERROR([--enable-unix-sockets is not available on this platform!]) + fi + ], [ + #include + ]) +fi dnl ************************************************************ -dnl Enable hiding of internal symbols in library to reduce its size and -dnl speed dynamic linking of applications. This currently is only supported -dnl on gcc >= 4.0 and SunPro C. +dnl disable cookies support dnl -AC_MSG_CHECKING([whether to enable hidden symbols in the library]) -AC_ARG_ENABLE(hidden-symbols, -AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library]) -AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibility in library]), +AC_MSG_CHECKING([whether to enable support for cookies]) +AC_ARG_ENABLE(cookies, +AC_HELP_STRING([--enable-cookies],[Enable cookies support]) +AC_HELP_STRING([--disable-cookies],[Disable cookies support]), [ case "$enableval" in no) AC_MSG_RESULT(no) + AC_DEFINE(CURL_DISABLE_COOKIES, 1, [to disable cookies support]) ;; - *) - AC_MSG_CHECKING([whether $CC supports it]) - if test "$GCC" = yes ; then - if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null || - dnl clang always supports -fvisibility= but it doesn't show up - dnl under --help. - test "$compiler_id" = "CLANG"; then - AC_MSG_RESULT(yes) - AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols]) - AC_DEFINE(CURL_EXTERN_SYMBOL, [__attribute__ ((visibility ("default")))], [to make a symbol visible]) - CFLAGS="$CFLAGS -fvisibility=hidden" - else - AC_MSG_RESULT(no) - fi - - else - dnl Test for SunPro cc - if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then - AC_MSG_RESULT(yes) - AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols]) - AC_DEFINE(CURL_EXTERN_SYMBOL, [__global], [to make a symbol visible]) - CFLAGS="$CFLAGS -xldscope=hidden" - else - AC_MSG_RESULT(no) - fi - fi + *) AC_MSG_RESULT(yes) ;; esac ], - AC_MSG_RESULT(no) + AC_MSG_RESULT(yes) ) dnl ************************************************************ +dnl hiding of library internal symbols +dnl +CURL_CONFIGURE_SYMBOL_HIDING + +dnl ************************************************************ dnl enforce SONAME bump dnl @@ -2726,33 +3350,21 @@ AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]), ) AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes) - -dnl ************************************************************ -if test ! -z "$winsock_LIB"; then - - dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes - dnl things work when built with c-ares). But we can't just move it last - dnl since then other stuff (SSL) won't build. So we simply append it to the - dnl end. - - LIBS="$LIBS $winsock_LIB" - TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB" - -fi - dnl dnl All the library dependencies put into $LIB apply to libcurl only. -dnl Those in $CURL_LIBS apply to the curl command-line client only. -dnl Those in $TEST_SERVER_LIBS apply to test servers only. -dnl Those in $ALL_LIBS apply to all targets, including test targets. dnl LIBCURL_LIBS=$LIBS AC_SUBST(LIBCURL_LIBS) -AC_SUBST(CURL_LIBS) -AC_SUBST(TEST_SERVER_LIBS) AC_SUBST(CURL_NETWORK_LIBS) -LIBS=$ALL_LIBS dnl LIBS is a magic variable that's used for every link +AC_SUBST(CURL_NETWORK_AND_TIME_LIBS) + +dnl BLANK_AT_MAKETIME may be used in our Makefile.am files to blank +dnl LIBS variable used in generated makefile at makefile processing +dnl time. Doing this functionally prevents LIBS from being used for +dnl all link targets in given makefile. +BLANK_AT_MAKETIME= +AC_SUBST(BLANK_AT_MAKETIME) AM_CONDITIONAL(CROSSCOMPILING, test x$cross_compiling = xyes) @@ -2760,9 +3372,14 @@ dnl yes or no ENABLE_SHARED="$enable_shared" AC_SUBST(ENABLE_SHARED) +dnl to let curl-config output the static libraries correctly +ENABLE_STATIC="$enable_static" +AC_SUBST(ENABLE_STATIC) + + dnl dnl For keeping supported features and protocols also in pkg-config file -dnl since it is more cross-compile frient than curl-config +dnl since it is more cross-compile friendly than curl-config dnl if test "x$USE_SSLEAY" = "x1"; then @@ -2770,12 +3387,12 @@ if test "x$USE_SSLEAY" = "x1"; then elif test -n "$SSL_ENABLED"; then SUPPORT_FEATURES="$SUPPORT_FEATURES SSL" fi -if test "@KRB4_ENABLED@" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES KRB4" -fi if test "x$IPV6_ENABLED" = "x1"; then SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6" fi +if test "x$USE_UNIX_SOCKETS" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES UnixSockets" +fi if test "x$HAVE_LIBZ" = "x1"; then SUPPORT_FEATURES="$SUPPORT_FEATURES libz" fi @@ -2788,9 +3405,40 @@ fi if test "x$USE_WINDOWS_SSPI" = "x1"; then SUPPORT_FEATURES="$SUPPORT_FEATURES SSPI" fi -if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \ - -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1"; then - SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM" + +if test "x$HAVE_GSSAPI" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES GSS-API" +fi + +if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \ + \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then + SUPPORT_FEATURES="$SUPPORT_FEATURES SPNEGO" +fi + +if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \ + \( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then + SUPPORT_FEATURES="$SUPPORT_FEATURES Kerberos" +fi + +if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1"; then + if test "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \ + -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \ + -o "x$DARWINSSL_ENABLED" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM" + + if test "x$CURL_DISABLE_HTTP" != "x1" -a \ + "x$NTLM_WB_ENABLED" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES NTLM_WB" + fi + fi +fi + +if test "x$USE_TLS_SRP" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP" +fi + +if test "x$USE_NGHTTP2" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2" fi AC_SUBST(SUPPORT_FEATURES) @@ -2844,6 +3492,16 @@ if test "x$CURL_DISABLE_IMAP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS IMAPS" fi fi +if test "x$CURL_DISABLE_SMB" != "x1" \ + -a "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" \ + -a \( "x$USE_SSLEAY" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \ + -o "x$GNUTLS_ENABLED" = "x1" -o "x$NSS_ENABLED" = "x1" \ + -o "x$DARWINSSL_ENABLED" = "x1" \); then + SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMB" + if test "x$SSL_ENABLED" = "x1"; then + SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMBS" + fi +fi if test "x$CURL_DISABLE_SMTP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SMTP" if test "x$SSL_ENABLED" = "x1"; then @@ -2876,14 +3534,15 @@ squeeze DEFS squeeze LDFLAGS squeeze LIBS -squeeze CURL_LIBS squeeze LIBCURL_LIBS -squeeze TEST_SERVER_LIBS squeeze CURL_NETWORK_LIBS +squeeze CURL_NETWORK_AND_TIME_LIBS squeeze SUPPORT_FEATURES squeeze SUPPORT_PROTOCOLS +XC_CHECK_BUILD_FLAGS + if test "x$want_curldebug_assumed" = "xyes" && test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then ac_configure_args="$ac_configure_args --enable-curldebug" @@ -2893,15 +3552,19 @@ AC_CONFIG_FILES([Makefile \ docs/Makefile \ docs/examples/Makefile \ docs/libcurl/Makefile \ + docs/libcurl/opts/Makefile \ include/Makefile \ include/curl/Makefile \ src/Makefile \ lib/Makefile \ lib/libcurl.vers \ tests/Makefile \ + tests/certs/Makefile \ + tests/certs/scripts/Makefile \ tests/data/Makefile \ tests/server/Makefile \ tests/libtest/Makefile \ + tests/unit/Makefile \ packages/Makefile \ packages/Win32/Makefile \ packages/Win32/cygwin/Makefile \ @@ -2923,32 +3586,37 @@ AC_OUTPUT CURL_GENERATE_CONFIGUREHELP_PM +XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples]) + AC_MSG_NOTICE([Configured to build curl/libcurl: - curl version: ${VERSION} - Host setup: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - SSL support: ${curl_ssl_msg} - SSH support: ${curl_ssh_msg} - zlib support: ${curl_zlib_msg} - krb4 support: ${curl_krb4_msg} - GSSAPI support: ${curl_gss_msg} - SPNEGO support: ${curl_spnego_msg} - resolver: ${curl_res_msg} - ipv6 support: ${curl_ipv6_msg} - IDN support: ${curl_idn_msg} - Build libcurl: Shared=${enable_shared}, Static=${enable_static} - Built-in manual: ${curl_manual_msg} - Verbose errors: ${curl_verbose_msg} - SSPI support: ${curl_sspi_msg} - ca cert bundle: ${ca} - ca cert path: ${capath} - LDAP support: ${curl_ldap_msg} - LDAPS support: ${curl_ldaps_msg} - RTSP support: ${curl_rtsp_msg} - RTMP support: ${curl_rtmp_msg} - Protocols: ${SUPPORT_PROTOCOLS} + curl version: ${CURLVERSION} + Host setup: ${host} + Install prefix: ${prefix} + Compiler: ${CC} + SSL support: ${curl_ssl_msg} + SSH support: ${curl_ssh_msg} + zlib support: ${curl_zlib_msg} + GSS-API support: ${curl_gss_msg} + TLS-SRP support: ${curl_tls_srp_msg} + resolver: ${curl_res_msg} + IPv6 support: ${curl_ipv6_msg} + Unix sockets support: ${curl_unix_sockets_msg} + IDN support: ${curl_idn_msg} + Build libcurl: Shared=${enable_shared}, Static=${enable_static} + Built-in manual: ${curl_manual_msg} + --libcurl option: ${curl_libcurl_msg} + Verbose errors: ${curl_verbose_msg} + SSPI support: ${curl_sspi_msg} + ca cert bundle: ${ca} + ca cert path: ${capath} + LDAP support: ${curl_ldap_msg} + LDAPS support: ${curl_ldaps_msg} + RTSP support: ${curl_rtsp_msg} + RTMP support: ${curl_rtmp_msg} + metalink support: ${curl_mtlnk_msg} + HTTP2 support: ${curl_h2_msg} + Protocols: ${SUPPORT_PROTOCOLS} ]) if test "x$soname_bump" = "xyes"; then diff --git a/contributors.sh b/contributors.sh new file mode 100755 index 0000000..cb5a329 --- /dev/null +++ b/contributors.sh @@ -0,0 +1,87 @@ +#!/bin/sh +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 2013-2014, Daniel Stenberg, , 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 http://curl.haxx.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. +# +########################################################################### + +# +# This script shows all mentioned contributors from until HEAD. To aid +# when writing RELEASE-NOTES and THANKS. +# +# Use --releasenotes to also include the names from the existing RELEASE-NOTES +# file, which is handy when we've added names manually in there that should be +# included in an updated list. +# + +start=$1 + +if test -z "$start"; then + echo "Usage: $0 " +fi + +# filter out Author:, Commit: and *by: lines +# cut off the email parts +# split list of names at comma +# split list of names at " and " +# cut off spaces first and last on the line +# filter alternatives through THANKS-filter +# only count names with a space (ie more than one word) +# sort all unique names +# awk them into RELEASE-NOTES format +( +git log $start..HEAD | \ +egrep -i '(Author|Commit|by):' | \ +cut -d: -f2- | \ +cut '-d<' -f1 | \ +tr , '\012' | \ +sed 's/ and /\n/' | \ +sed -e 's/^ //' -e 's/ $//g' + +if echo "$*" | grep -qw -- '--releasenotes';then + # if --releasenotes was used + # grep out the list of names from RELEASE-NOTES + # split on ", " + # remove leading white spaces +grep "^ [^ ]" RELEASE-NOTES| \ +sed 's/, */\n/g'| \ +sed 's/^ *//' +fi +)| \ +sed -f ./docs/THANKS-filter | \ +grep ' ' | \ +sort -fu | \ +awk '{ + num++; + n = sprintf("%s%s%s,", n, length(n)?" ":"", $0); + #print n; + if(length(n) > 78) { + printf(" %s\n", p); + n=sprintf("%s,", $0); + } + p=n; + +} + + END { + printf(" %s\n", p); + printf(" (%d contributors)\n", num); + } + +' diff --git a/curl-config.in b/curl-config.in index 27b9f7f..1ddf4c2 100644 --- a/curl-config.in +++ b/curl-config.in @@ -6,7 +6,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 2001 - 2010, Daniel Stenberg, , et al. +# Copyright (C) 2001 - 2012, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -24,6 +24,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ includedir=@includedir@ +cppflag_curl_staticlib=@CPPFLAG_CURL_STATICLIB@ usage() { @@ -70,96 +71,106 @@ while test $# -gt 0; do ;; --ca) - echo "@CURL_CA_BUNDLE@" - ;; + echo "@CURL_CA_BUNDLE@" + ;; --cc) - echo "@CC@" - ;; + echo "@CC@" + ;; --prefix) - echo "$prefix" - ;; + echo "$prefix" + ;; --feature|--features) for feature in @SUPPORT_FEATURES@ ""; do test -n "$feature" && echo "$feature" done - ;; + ;; --protocols) for protocol in @SUPPORT_PROTOCOLS@; do echo "$protocol" done - ;; + ;; --version) - echo libcurl @VERSION@ - exit 0 - ;; + echo libcurl @CURLVERSION@ + exit 0 + ;; --checkfor) checkfor=$2 cmajor=`echo $checkfor | cut -d. -f1` cminor=`echo $checkfor | cut -d. -f2` # when extracting the patch part we strip off everything after a - # dash as that's used for things like version 1.2.3-CVS - cpatch=`echo $checkfor | cut -d. -f3 | cut -d- -f1` + # dash as that's used for things like version 1.2.3-CVS + cpatch=`echo $checkfor | cut -d. -f3 | cut -d- -f1` checknum=`echo "$cmajor*256*256 + $cminor*256 + ${cpatch:-0}" | bc` numuppercase=`echo @VERSIONNUM@ | tr 'a-f' 'A-F'` nownum=`echo "obase=10; ibase=16; $numuppercase" | bc` - if test "$nownum" -ge "$checknum"; then - # silent success - exit 0 - else - echo "requested version $checkfor is newer than existing @VERSION@" - exit 1 - fi - ;; + if test "$nownum" -ge "$checknum"; then + # silent success + exit 0 + else + echo "requested version $checkfor is newer than existing @CURLVERSION@" + exit 1 + fi + ;; --vernum) - echo @VERSIONNUM@ - exit 0 - ;; + echo @VERSIONNUM@ + exit 0 + ;; --help) - usage 0 - ;; + usage 0 + ;; --cflags) - if test "X@includedir@" = "X/usr/include"; then - echo "" + if test "X$cppflag_curl_staticlib" = "X-DCURL_STATICLIB"; then + CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB " + else + CPPFLAG_CURL_STATICLIB="" + fi + if test "X@includedir@" = "X/usr/include"; then + echo "$CPPFLAG_CURL_STATICLIB" else - echo "-I@includedir@" + echo "${CPPFLAG_CURL_STATICLIB}-I@includedir@" fi - ;; + ;; --libs) - if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then - CURLLIBDIR="-L@libdir@ " - else - CURLLIBDIR="" - fi - if test "X@REQUIRE_LIB_DEPS@" = "Xyes"; then - echo ${CURLLIBDIR}-lcurl @LDFLAGS@ @LIBCURL_LIBS@ @LIBS@ - else - echo ${CURLLIBDIR}-lcurl @LDFLAGS@ @LIBS@ - fi - ;; + if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then + CURLLIBDIR="-L@libdir@ " + else + CURLLIBDIR="" + fi + if test "X@REQUIRE_LIB_DEPS@" = "Xyes"; then + echo ${CURLLIBDIR}-lcurl @LIBCURL_LIBS@ + else + echo ${CURLLIBDIR}-lcurl + fi + ;; --static-libs) - echo @libdir@/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@ @LIBS@ - ;; + if test "X@ENABLE_STATIC@" != "Xno" ; then + echo @libdir@/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@ + else + echo "curl was built with static libraries disabled" >&2 + exit 1 + fi + ;; --configure) - echo @CONFIGURE_OPTIONS@ - ;; + echo @CONFIGURE_OPTIONS@ + ;; *) echo "unknown option: $1" - usage 1 - ;; + usage 1 + ;; esac shift done diff --git a/curl-style.el b/curl-style.el deleted file mode 100644 index 83cf8cc..0000000 --- a/curl-style.el +++ /dev/null @@ -1,50 +0,0 @@ -;;;; Emacs Lisp help for writing curl code. ;;;; - -;;; The curl hacker's C conventions. -;;; See the sample.emacs file on how this file can be made to take -;;; effect automatically when editing curl source files. - -(defconst curl-c-style - '((c-basic-offset . 2) - (c-comment-only-line-offset . 0) - (c-hanging-braces-alist . ((substatement-open before after))) - (c-offsets-alist . ((topmost-intro . 0) - (topmost-intro-cont . 0) - (substatement . +) - (substatement-open . 0) - (statement-case-intro . +) - (statement-case-open . 0) - (case-label . 0) - )) - ) - "Curl C Programming Style") - -(defun curl-code-cleanup () - "no docs" - (interactive) - (untabify (point-min) (point-max)) - (delete-trailing-whitespace) -) - -;; Customizations for all of c-mode, c++-mode, and objc-mode -(defun curl-c-mode-common-hook () - "Curl C mode hook" - ;; add curl style and set it for the current buffer - (c-add-style "curl" curl-c-style t) - (setq tab-width 8 - indent-tabs-mode nil ; Use spaces. Not tabs. - comment-column 40 - c-font-lock-extra-types (append '("bool" "CURL" "CURLcode" "ssize_t" "size_t" "curl_socklen_t" "fd_set" "time_t" "curl_off_t" "curl_socket_t" "in_addr_t" "CURLSHcode" "CURLMcode" "Curl_addrinfo")) - ) - ;; keybindings for C, C++, and Objective-C. We can put these in - ;; c-mode-base-map because of inheritance ... - (define-key c-mode-base-map "\M-q" 'c-fill-paragraph) - (define-key c-mode-base-map "\M-m" 'curl-code-cleanup) - (setq c-recognize-knr-p nil) - ;;; (add-hook 'write-file-hooks 'delete-trailing-whitespace t) - (setq show-trailing-whitespace t) - ) - -;; Set this is in your .emacs if you want to use the c-mode-hook as -;; defined here right out of the box. -; (add-hook 'c-mode-common-hook 'curl-c-mode-common-hook) diff --git a/curl.manifest b/curl.manifest new file mode 100644 index 0000000..75b0fa5 --- /dev/null +++ b/curl.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index c842ebf..0000000 --- a/debian/changelog +++ /dev/null @@ -1,1366 +0,0 @@ -curl (7.21.3-7) unstable; urgency=low - - * Updated tag value for tizen 2.0 build - * Git: external/curl - * Tag: curl_7.21.3-7 - - -- Taeksu Shin Thu, 23 Aug 2012 13:54:02 +0900 - -curl (7.21.3-6slp2) unstable; urgency=low - - * Renamed tag - * Git: unmodified/curl - * Tag: curl_7.21.3-6slp2 - - -- Taeksu Shin Thu, 15 Dec 2011 12:33:13 +0900 - -curl (7.21.3-1tizen) unstable; urgency=low - - * Ported to Tizen - * Git: unmodified/curl - * Tag: curl_7.21.3-1tizen - - -- Taeksu Shin Wed, 07 Dec 2011 11:14:43 +0900 - -curl (7.21.3-1) unstable; urgency=low - - * New upstream release. - * debian/*.manpages: adding all manpages for the curl library. - (closes: #605651) - * gnutls->handshake: improved timeout handling. See #594150 for details. - - -- Ramakrishnan Muthukrishnan Wed, 15 Dec 2010 23:39:26 +0530 - -curl (7.21.2-4) unstable; urgency=low - - * support for curl library built against nss. - (closes: #606244) - * honour DEB_BUILD_OPTIONS=nocheck option. - (closes: #606059) - - -- Ramakrishnan Muthukrishnan Thu, 09 Dec 2010 20:11:37 +0530 - -curl (7.21.2-3) unstable; urgency=low - - * debian/rules: reverting changes related to c-ares inclusion. - * debian/control: removing libc-ares-dev for now. - (closes: #605558) - - -- Ramakrishnan Muthukrishnan Thu, 02 Dec 2010 10:56:36 +0530 - -curl (7.21.2-2) unstable; urgency=low - - * debian/control: add libc-ares-dev as build dependency. - * debian/rules: invoke configure with --enable-ares. - (closes: #570436) - * debian/copyright: add copyright notice of `lib/security.c' - to the copyright file. (closes: #603712) - - -- Ramakrishnan Muthukrishnan Tue, 30 Nov 2010 17:35:29 +0530 - -curl (7.21.2-1) unstable; urgency=low - - * New upstream release. - - -- Ramakrishnan Muthukrishnan Mon, 18 Oct 2010 11:13:17 +0530 - -curl (7.21.1-1) unstable; urgency=low - - * New upstream release. - - -- Ramakrishnan Muthukrishnan Thu, 12 Aug 2010 08:20:48 +0530 - -curl (7.21.0-1) unstable; urgency=low - - * New upstream. - - -- Ramakrishnan Muthukrishnan Wed, 16 Jun 2010 19:25:37 +0530 - -curl (7.20.1-2) unstable; urgency=low - - * debian/rules: Removed the custom LDFLAGS variable. This is not - required as we are no longer using the libtool patch. - (closes: #578774) - - -- Ramakrishnan Muthukrishnan Wed, 28 Apr 2010 18:40:27 +0530 - -curl (7.20.1-1) unstable; urgency=low - - * New upstream release. - * debian/patches/missing-double-quote: No longer needed as it has been - fixed by the upstream. - * debian/patches/no_com_err: Reworked the patches for the new release. - * debian/patches/versioned: fix for build failure of 'make test'. - (closes: #576237) - * debian/rules: removed --enable-ldaps option from the configure as LDAP - SSL (Novell extensions to openldap) is not available as Debian packages. - * lib/http.c: chunked-encoding with Content-Length header problem has - been fixed in the upstream. (closes: #572276) - - -- Ramakrishnan Muthukrishnan Mon, 19 Apr 2010 09:21:35 +0530 - -curl (7.20.0-3) unstable; urgency=low - - * debian/control: Vcs* tags added. - * docs/libcurl/libcurl.m4: added the missing double quote (closes: #576518). - - -- Ramakrishnan Muthukrishnan Mon, 05 Apr 2010 18:56:40 +0530 - -curl (7.20.0-2) unstable; urgency=low - - * New Maintainer (closes: #574137). - * Bug #533669 (curl segmentation fault in addbyter()) is fixed - from release 7.19.7 onwards (closes: #533669). - * Bug #510559 (curl sends whitespace unencoded in the url) can't - be reproduced in the 7.20.0 release (closes: #510559). - - -- Ramakrishnan Muthukrishnan Thu, 18 Mar 2010 08:55:19 +0530 - -curl (7.20.0-1) unstable; urgency=low - - * Package is orphaned. - * New upstream release. - * Switch to dpkg-source 3.0 (quilt) format (closes: #538547). - * Fixed build error with binutils-gold (closes: #554296). - - -- Domenico Andreoli Tue, 09 Feb 2010 13:06:39 +0100 - -curl (7.19.7-1) unstable; urgency=low - - * New upstream release: - - curl_getdate(3) now correctly manages single letter military - timezones as specified in RFC 822 (closes: #551461). - * build depends on generic libdb-dev (closes: #548476). - * build depends on libssh2-1-dev (>= 1.2) to enable new curl options. - - -- Domenico Andreoli Thu, 05 Nov 2009 10:11:57 +0100 - -curl (7.19.5-1) unstable; urgency=low - - * New upstream release - * Fix "libcurl3-gnutls has memory corruption" by upgrading to new upstream - release, which fixes this bug (Closes: #530131) - * update standards version to 3.8.1 - * adjust overrides from libdevel to debug for -dbg package - * adjust doc-base section - - -- Andreas Schuldei Sun, 24 May 2009 21:12:19 +0200 - -curl (7.19.4-1) unstable; urgency=low - - * New upstream release - * Fix "newer bdb version" - (Closes: #517277) - * resolve libtool version confusion, thanks to - Stefanos Harhalakis - * add new dependency on libgcrypt11-dev due to newly arising binary symbols - - -- Andreas Schuldei Thu, 02 Apr 2009 23:35:45 +0200 - -curl (7.18.2-8lenny1) stable-security; urgency=high - - * Applied upstream patch to fix arbitrary file access (CVE-2009-0037). - - -- Domenico Andreoli Tue, 03 Mar 2009 10:29:03 +0100 - -curl (7.18.2-8) unstable; urgency=low - - * Fix "Please add support for ldap/ldaps protocols" - by changing the linker option for liblber (Closes: #506096) - - -- Andreas Schuldei Fri, 26 Dec 2008 23:48:19 +0100 - -curl (7.18.2-7) unstable; urgency=low - - * disable c-ares support again, no fix yet, just get stuff working again. - - -- Andreas Schuldei Tue, 15 Jul 2008 01:17:29 +0200 - -curl (7.18.2-6) unstable; urgency=low - - * enable c-ares support, with ipv6 support - - -- Andreas Schuldei Fri, 11 Jul 2008 02:05:16 +0200 - -curl (7.18.2-5) unstable; urgency=low - - * /usr/lib/pkgconfig/libcurl.pc: "pkg-config --libs libcurl" returns - "-Wl, -z, defs" (Closes: #488701), closing same bug again for - curl-config --libs command - - -- Andreas Schuldei Wed, 02 Jul 2008 11:24:40 +0200 - -curl (7.18.2-4) unstable; urgency=medium - - * /usr/lib/pkgconfig/libcurl.pc: "pkg-config --libs libcurl" returns - "-Wl, -z, defs" (Closes: #488701) - - -- Andreas Schuldei Mon, 30 Jun 2008 23:59:55 +0200 - -curl (7.18.2-3) unstable; urgency=low - - * removing c-ares from the dependencies - - -- Andreas Schuldei Sat, 28 Jun 2008 03:34:50 +0200 - -curl (7.18.2-2) unstable; urgency=medium - - * blanking the "dependency_libs" line in lib*.la file to keep all the listed libs - from being linked to other libs linking to curl. - * fixing miss-linking problem by specifying liblber as a configure argument - * disabling c-ares again for stability reasons - * correcting libgssapi linking in configure.ac (patch no_com_err) - - -- Andreas Schuldei Fri, 27 Jun 2008 03:40:18 +0200 - -curl (7.18.2-1e1) experimental; urgency=low - - * testing c-ares-ipv6 integration patch - - -- Andreas Schuldei Mon, 23 Jun 2008 08:48:31 +0200 - -curl (7.18.2-1) unstable; urgency=low - - * New upstream release: - - removed patches/ftp-response, it is already in the upstream release - - fixed issues with kerberos ftp (closes: #478864). - * Disable c-ares support, it is still not ready for Debian's wide - user base (closes: #478864, #481189). - * Standards-Version bumped to 3.8.0: - - added support for parallel builds to debian/rules - * Removal of $QUILT_PC's override makes this package ready for new - source format 3.0 (quilt) (closes: #485023). - * Configure build with --with-ca-path but only for OpenSSL flavour, - GnuTLS supports only --with-ca-bundle (closes: #482814, #483999). - Both libcurl3 and libcurl3-gnutls now depend on ca-certificates. - - -- Domenico Andreoli Mon, 09 Jun 2008 14:09:42 +0200 - -curl (7.18.1-1) unstable; urgency=low - - * New upstream release. - * Fixed crossbuilding bug (closes: #465089). - * Improved error reporting in case of failing FTP (closes: #474224). - * Enable c-ares support (closes: #352694). - * libcurl3-dbg now depends on either libcurl3 or libcurl3-gnutls - (closes: #463173). - - -- Domenico Andreoli Thu, 17 Apr 2008 10:22:28 +0200 - -curl (7.18.0-1) unstable; urgency=low - - * New upstream release. - * Use Homepage field in debian/control. - - -- Domenico Andreoli Tue, 29 Jan 2008 02:16:25 +0100 - -curl (7.17.1-1) unstable; urgency=low - - * New upstream release: - - fixed bad use of "its" in curl.1 (closes: #443734) - - fixed curl_easy_escape() with input bytes that are >= 0x80 - (closes: #445214) - - -- Domenico Andreoli Wed, 31 Oct 2007 01:12:54 +0100 - -curl (7.17.0-1) unstable; urgency=low - - * New upstream release. - * Updated to use libssh2-1-dev (closes: #441979, #442198). - * Do not run the test suite on hurd (closes: #433834). - * Enabled support for LDAPS protocol. - - -- Domenico Andreoli Fri, 14 Sep 2007 00:24:21 +0200 - -curl (7.16.4-5) unstable; urgency=low - - * libcurl4-openssl-dev now depends on libssh2-0-dev. - closes: #439317, #439326. - - -- Domenico Andreoli Fri, 24 Aug 2007 18:13:17 +0200 - -curl (7.16.4-4) unstable; urgency=low - - * Build libcurl/GnuTLS without libssh2 because of the usual OpenSSL - vs. GPL software lincense conflict (closes: #439176). - - -- Domenico Andreoli Thu, 23 Aug 2007 23:47:35 +0200 - -curl (7.16.4-3) unstable; urgency=low - - * Added support for scp and SFTP protocols. - - -- Domenico Andreoli Wed, 22 Aug 2007 00:48:32 +0200 - -curl (7.16.4-2) unstable; urgency=low - - * Fixed regression with FTP sites not requesting PASS (closes: #435771). - - -- Domenico Andreoli Sat, 04 Aug 2007 02:04:40 +0200 - -curl (7.16.4-1) unstable; urgency=low - - * New upstream release (closes: #432514). - * Welcome Andreas to the curl packagers! - * Build-Depends is now more backporting friendly. - - -- Domenico Andreoli Wed, 18 Jul 2007 16:44:30 +0200 - -curl (7.16.2-6) unstable; urgency=low - - * Added missing libcurl3 symlinks (closes: #429945) - Patch courtesy of Bryan Donlan. - - -- Domenico Andreoli Sat, 23 Jun 2007 00:39:20 +0200 - -curl (7.16.2-5) unstable; urgency=low - - [ Steve Langasek ] - * Re-introduce curl3 symbol versions and rename the packages back to - libcurl3*, restoring ABI compatibility with the etch version of the - package. - - [ Domenico Andreoli ] - * Package libcurl4-gnutls-dev now suggests libcurl3-dbg. - * libcurl3-dbg replaces/conflict/provide libcurl4-dbg. - * Properly use ${binary:Version} in control file. - - -- Domenico Andreoli Wed, 20 Jun 2007 17:52:38 +0200 - -curl (7.16.2-4) unstable; urgency=low - - * Fixed configure.ac in case of build with GNUTLS (closes: #425013). - * Fixed double-free bug (closes: #424894). - Patch courtesy of Daniel Stenberg. - - -- Domenico Andreoli Sun, 20 May 2007 01:15:01 +0200 - -curl (7.16.2-3) unstable; urgency=low - - * Updated to db4.5 (closes: #421933). - * Got rid of unused libcomerr2 dependency (closes: #392294). - - -- Domenico Andreoli Tue, 08 May 2007 08:46:21 +0200 - -curl (7.16.2-2) experimental; urgency=low - - * Improved package descriptions (closes: #410472). - * Updated package Provides to ease the soname transition. - - -- Domenico Andreoli Fri, 27 Apr 2007 15:37:44 +0200 - -curl (7.16.2-1) experimental; urgency=low - - * New upstream release. - * libcurl4-openssl-dev now depends on libcurl4-openssl (closes: #419774). - * Bumped shlibs version to 7.16.2-1. - * Patches are now managed with quilt. - - -- Domenico Andreoli Wed, 18 Apr 2007 09:29:48 +0200 - -curl (7.16.1-1) experimental; urgency=low - - * New upstream release. - * Bumped shlibs version to 7.16.1-1. - * Added HIDDEN section to version script to handle any __*, _rest or - _save* local symbol. - * Gopher protocol is not supported since 7.15.2. Removed any reference - in package description (closes: #408704). - * Moved libcurl/openssl to the new package libcurl4-openssl, now - libcurl4 contains a version with no SSL or GSSAPI support (any - future cryptographic stuff will be kept out of there). - * Package libcurl4-dev now contains the matching headers for libcurl4 - (so crypto stuff). - - -- Domenico Andreoli Thu, 1 Feb 2007 12:49:32 +0100 - -curl (7.16.0-1) experimental; urgency=low - - * New upstream release. - * Bumped shlibs version to 7.16.0-1. - * libcurl4 and libcurl4-gnutls now only recommend ca-certificates - (closes: #404103). - * pkg-config .pc file now uses Libs.private (closes: #405226). - - -- Domenico Andreoli Fri, 26 Jan 2007 14:26:55 +0100 - -curl (7.15.5-1) unstable; urgency=low - - * New upstream release: - - fixed nodes removal from the splay tree (closes: #375076). - * Make package build also if $TAPE is set (closes: #377470). - * Bumped shlibs version to 7.15.5-1. - - -- Domenico Andreoli Mon, 7 Aug 2006 10:26:13 +0200 - -curl (7.15.4-1ubuntu1) edgy; urgency=low - - * Synchronize to Debian. Only change left: Removal of stunnel and - libdb4.2-dev build dependencies. - - -- Martin Pitt Thu, 29 Jun 2006 15:04:24 +0200 - -curl (7.15.4-1) unstable; urgency=low - - * New upstream release. - * Bumped shlibs version to 7.15.4-1. - - -- Domenico Andreoli Wed, 14 Jun 2006 14:41:16 +0200 - -curl (7.15.3-2) unstable; urgency=low - - * Fixed bug in configure.ac that makes FTBFS (closes: #367954). - - -- Domenico Andreoli Wed, 31 May 2006 15:18:26 +0200 - -curl (7.15.3-1) unstable; urgency=high - - * New upstream release: - - fixed TFTP packet buffer overflow vulnerability - [lib/tftp.c, CVE-2006-1061]. - - improved curl_getenv.3 manpage grammar (closes: #357388). - - -- Domenico Andreoli Mon, 20 Mar 2006 11:46:25 +0100 - -curl (7.15.2-3) unstable; urgency=low - - * Applied upstream patch to fix multi interface and multi-part formposts - (closes: #355715). - * Build back with -O2, gcc 4.0.2-10 fixed the previously trigged bug. - - -- Domenico Andreoli Wed, 8 Mar 2006 15:29:15 +0100 - -curl (7.15.2-2) unstable; urgency=low - - * Added missing autotools invocation. Re-added versioned symbols - (closes: #355241). - * Bumped shlibs version to 7.15.2-2. - * Build with -O3 to work around sospicious segfaults on tests 253 - and 255. - - -- Domenico Andreoli Sat, 4 Mar 2006 22:47:23 +0100 - -curl (7.15.2-1) unstable; urgency=low - - * New upstream release. - * Bumped shlibs version to 7.15.2-1. - * Adopted debhelper's compatibility level 5. - - -- Domenico Andreoli Wed, 1 Mar 2006 16:12:51 +0100 - -curl (7.15.1-1ubuntu2) dapper; urgency=low - - * SECURITY UPDATE: Arbitrary remote code execution with long tftp:// URLs. - * lib/tftp.c: Fix unbounded sprintf() to avoid buffer overflow. Thanks to - Ulf Harnhammar for discovering this. - * CVE-2006-1061 - - -- Martin Pitt Thu, 16 Mar 2006 11:30:25 +0100 - -curl (7.15.1-1ubuntu1) dapper; urgency=low - - * Resynchronise with Debian to get URL parser overflow fix from 7.15.1 - (CVE-2005-4077). - - -- Martin Pitt Mon, 12 Dec 2005 15:04:52 +0100 - -curl (7.15.1-1) unstable; urgency=low - - * New upstream release: - - fixed buffer overflow in URL parser function (closes: #342339). - - -- Domenico Andreoli Wed, 7 Dec 2005 11:11:38 +0100 - -curl (7.15.0-5.1) unstable; urgency=high - - * Non-maintainer upload. - * Urgency high for RC bug fix. - * Let libcurl3-*-dev depend on libkrb5-dev (closes: #340784, #340916). - - -- Luk Claes Sun, 4 Dec 2005 11:59:20 +0100 - -curl (7.15.0-5) unstable; urgency=low - - * libcurl3-gnutls-dev and libcurl3-openssl-dev now only recommend - libkrb5-dev (closes: #334888). - * Applied upstream patch to fix error message in case FTP-path does - not exist (closes: #338680). - * Applied upstream patch to fix parsing of --limit-rate command line - option (closes: #338681). - - -- Domenico Andreoli Fri, 25 Nov 2005 10:30:25 +0100 - -curl (7.15.0-4ubuntu1) dapper; urgency=low - - * Resynchronise with Debian (only change left: Removal of stunnel build - dependency). - * Remove libdb4.2-dev build dependency. - - -- Martin Pitt Thu, 10 Nov 2005 17:44:35 -0500 - -curl (7.15.0-4) unstable; urgency=low - - * Fixed output of curl-config --vernum (closes: #335296). - * libcurl3-openssl-dev now replaces libcurl3-dev older than 7.14.1-1 - (closes: #335277). - - -- Domenico Andreoli Tue, 25 Oct 2005 11:48:53 +0200 - -curl (7.15.0-3) unstable; urgency=low - - * libcurl3 and libcurl3-gnutls now suggest libldap2 (closes: #294407). - - * Re-introduced libcurl3-dev package for transition reasons. - - -- Domenico Andreoli Wed, 19 Oct 2005 12:45:43 +0200 - -curl (7.15.0-2) unstable; urgency=low - - * Fixed depends of libcurl3-*-dev packages (closes: #334021, #333609, #334048). - * Bumped shlibs version to 7.15.0-1 (closes: #334053). - - -- Domenico Andreoli Sun, 16 Oct 2005 15:34:40 +0200 - -curl (7.15.0-1) unstable; urgency=low - - * New upstream release: - - fixed user+domain name buffer overflow in the NTLM code - (CAN-2005-3185, closes: #333734). - - libcurl3-*-dev packages now depend on libkrb5-dev (closes: #333609). - - improved docs about curl_easy_setopt() and ERRORBUFFER (closes: #329313). - - -- Domenico Andreoli Fri, 14 Oct 2005 13:32:06 +0200 - -curl (7.14.1-5) unstable; urgency=low - - * Added build dependency on libtool (closes: #332729, #333174). - - -- Domenico Andreoli Tue, 11 Oct 2005 10:05:36 +0200 - -curl (7.14.1-4) unstable; urgency=low - - * Fixed SEE ALSO section in curl_excape.3 (closes: #331505). - * Fixed configure.ac when --host=i586-mingw32msvc is given (closes: #329444). - * Added missing example files (closes: #331722). - * Updated build dependency for OpenSSL 0.9.8 transition. - - -- Domenico Andreoli Mon, 10 Oct 2005 12:43:25 +0200 - -curl (7.14.1-3) experimental; urgency=low - - * Fixed soname of libcurl-gnutls.so* variant. - * Fixed broken sentence (closes: #329305). - * Fixed reference to TheArtOfHttpScripting.gz (closes: #329299). - * Added clarification about WRITEFUNCTION and WRITEDATA (closes: #329311). - - -- Domenico Andreoli Wed, 28 Sep 2005 17:13:51 +0200 - -curl (7.14.1-2) experimental; urgency=low - - * Started using the system-wide CA certificate file (closes: #308514). - * Fixed apostrophe typos in the curl man page (closes: #326511). - * Only curl_* symbols are now globally visible outside of libcurl. - - -- Domenico Andreoli Sat, 17 Sep 2005 23:52:28 +0200 - -curl (7.14.1-1) experimental; urgency=low - - * New upstream release. - * libcurl3-gnutls has a modified soname and may be installed together - with libcurl3 (closes: #318590). - * Both libcurl3 and libcurl3-gnutls are built with versioned symbols - and with support of GSSAPI authentication. - * Renamed libcurl3-dev to libcurl3-openssl-dev. - * Dropped package libcurl3-gssapi. - - -- Domenico Andreoli Thu, 15 Sep 2005 23:59:32 +0200 - -curl (7.14.0-5) unstable; urgency=low - - * Added libcurl3-gnutls and libcurl3-gnutls-dev packages (closes: #318590). - * libcurl3-gssapi now has its own shlibs file. Packages built with this - package installed will depend on it. - - -- Domenico Andreoli Thu, 18 Aug 2005 02:26:38 +0200 - -curl (7.14.0-4) unstable; urgency=low - - * OpenSSL is back (closes: #321294, #321391). - - -- Domenico Andreoli Fri, 5 Aug 2005 23:34:45 +0200 - -curl (7.14.0-3) unstable; urgency=low - - * Updated the use of dpkg-architecture (closes: #320046). - * Added missing aclocal file libcurl.m4 to libcurl3-dev (closes: #315848). - * Added (many) missing man pages (closes: #315850). - * OpenSSL is replaced by GnuTLS in providing SSL support (closes: #318590). - * Heimdal is replaced by MIT Kerberos in providing GSSAPI support. - - -- Domenico Andreoli Tue, 2 Aug 2005 22:34:01 +0200 - -curl (7.14.0-2ubuntu1) breezy; urgency=low - - * Synchronize with Debian. - - -- Matthias Klose Tue, 26 Jul 2005 19:03:01 +0200 - -curl (7.14.0-2) unstable; urgency=low - - * Rebuilt and uploaded to unstable. - - -- Domenico Andreoli Wed, 15 Jun 2005 11:41:32 +0200 - -curl (7.14.0-1) experimental; urgency=low - - * New upstream release. - - -- Domenico Andreoli Tue, 17 May 2005 10:42:35 +0200 - -curl (7.13.2-3) unstable; urgency=high - - * HTTP response headers with null bytes are now correctly managed - (closes: #310948). - - -- Domenico Andreoli Fri, 3 Jun 2005 23:59:30 +0200 - -curl (7.13.2-2) unstable; urgency=low - - * Fixed conditional build of package libcurl3-gssapi - (closes: #303939, #303953). - - -- Domenico Andreoli Mon, 11 Apr 2005 19:00:27 +0200 - -curl (7.13.2-1) unstable; urgency=low - - * New upstream release: - - fixed curl man page typos (closes: #302820). - - -- Domenico Andreoli Tue, 5 Apr 2005 14:41:13 +0200 - -curl (7.13.1-3) unstable; urgency=low - - * Fixed hanging of some SSL connections (closes: #302366). - - -- Domenico Andreoli Thu, 31 Mar 2005 16:27:41 +0200 - -curl (7.13.1-2) unstable; urgency=low - - * Rebuilt to get the correct libidn11 dependency (closes: #299348). - * Added some missing documentation files (closes: #298855). - - -- Domenico Andreoli Wed, 16 Mar 2005 14:30:03 +0100 - -curl (7.13.1-1) unstable; urgency=low - - * New upstream release. - * Bumped up shlibs version for libcurl3 because of new curl options. - - -- Domenico Andreoli Fri, 4 Mar 2005 16:03:17 +0100 - -curl (7.13.0-2) unstable; urgency=high - - * Fixed NTLM Authentication buffer overflow (closes: #296678). - Patch courtesy of Daniel Stenberg. This handles CAN-2005-0490. - * Removed libcurl2* packages and all the scary stuff used to build them - (closes: #274631). - - -- Domenico Andreoli Thu, 24 Feb 2005 10:07:22 +0100 - -curl (7.13.0-1) unstable; urgency=low - - * New upstream release. - * libcurl3 now suggests package libldap2-dev to enable support for - LDAP protocol. - * Bumped up shlibs version for libcurl3 because of new curl options. - - -- Domenico Andreoli Sat, 5 Feb 2005 10:39:52 +0100 - -curl (7.12.3-2ubuntu3) hoary; urgency=low - - * Fix the version numbers internal to debian/rules. Closes; #8088 - - -- LaMont Jones Wed, 23 Mar 2005 18:41:29 -0700 - -curl (7.12.3-2) unstable; urgency=low - - * Disabled test suite on m68k, it stalls. - - -- Domenico Andreoli Thu, 30 Dec 2004 11:11:48 +0100 - -curl (7.12.3-1) unstable; urgency=low - - * New upstream release: - - fixed debug tracing to network socket is stderr is closed - (closes: #278691). - * Applied patch to fix getpass license problems (closes: #286794). - Patch courtesy of Daniel Stenberg. - * Bumped up shlibs version for libcurl3 because of new curl options. - - -- Domenico Andreoli Mon, 27 Dec 2004 12:50:30 +0100 - -curl (7.12.2-2) unstable; urgency=low - - * libcurl3-dbg package is now built by dh_strip --dbg-package - (closes: #274710). - * Added build dependency on libdb4.2-dev. - - -- Domenico Andreoli Thu, 4 Nov 2004 11:36:17 +0100 - -curl (7.12.2-1) unstable; urgency=low - - * New upstream release. - * Update diff to 7.11.2. - * Add debian/watch file. - * Add myself as a uploader. - - -- Matthias Klose Wed, 3 Nov 2004 00:55:52 +0100 - -curl (7.12.1-1) unstable; urgency=low - - * New upstream release: - - workaround for ASN1_STRING_to_UTF8 failing if input is already - UTF-8 encoded (closes: #264711). - * Bumped up shlibs version for libcurl3 because of the introduction - of FTP 3rd party transfer support options. - - -- Domenico Andreoli Tue, 10 Aug 2004 11:40:29 +0200 - -curl (7.12.0.rel-6) unstable; urgency=low - - * In rebuilding the 7.11.2 tree starting from the 7.12.0 one, - lib/getdate.y is patched before lib/getdate.c (closes: #262597). - - -- Domenico Andreoli Sun, 1 Aug 2004 17:59:57 +0200 - -curl (7.12.0.rel-5) unstable; urgency=low - - * Tests are performed only if build target and building host are the - same and are not kfreebsd-gnu or knetbsd-gnu (closes: #261591). - * On hurd-i386 libcurl3-gssapi is not built. - - -- Domenico Andreoli Thu, 29 Jul 2004 15:17:51 +0200 - -curl (7.12.0.rel-4) unstable; urgency=low - - * Added build dependency on groff-base to really build the built-in - manual. - * libcurl3 now replaces old libcurl2 versions (closes: #255262). - - -- Domenico Andreoli Tue, 20 Jul 2004 11:40:09 +0200 - -curl (7.12.0.rel-3) unstable; urgency=low - - * Enabled curl's built-in manual. - * configure script for 7.11.2 is now managed correctly. - - -- Domenico Andreoli Sun, 18 Jul 2004 22:25:00 +0200 - -curl (7.12.0.rel-2) unstable; urgency=low - - * libcurl2 uses curl-ca-bundle-7.11.2.crt (closes: #255262). - Yes, it is a hack to not add libcurl-common package right now. - - -- Domenico Andreoli Sun, 18 Jul 2004 16:40:45 +0200 - -curl (7.12.0.rel-1) experimental; urgency=low - - * Version 7.12.0 is back with proper libcurl3* packages. - * libcurl2* 7.11.2 packages are still provided (closes: #252879). - * Enabled again the support for libidn. - - -- Domenico Andreoli Sun, 6 Jun 2004 23:09:33 +0200 - -curl (7.12.0.is.7.11.2-1) unstable; urgency=low - - * Reverted to version 7.11.2 (closes: #252348). - * Disabled support for libidn (closes: #252367). This is to leave - curl in unstable as much similar as possible to the one in testing. - - -- Domenico Andreoli Fri, 4 Jun 2004 19:09:25 +0200 - -curl (7.12.0-1) unstable; urgency=low - - * New upstream release: - - fixed minor man page problem (closes: #232928) - - improved --create-dirs description in curl man page (closes: #251351) - * Enabled support for libidn. - - -- Domenico Andreoli Wed, 2 Jun 2004 18:06:05 +0200 - -curl (7.11.2-2) unstable; urgency=low - - * Fixed curl.1 man page (closes: #232928). - Patch courtesy of Daniel Stenberg, the upstream developer. - - -- Domenico Andreoli Tue, 27 Apr 2004 19:47:09 +0200 - -curl (7.11.2-1) unstable; urgency=low - - * New upstream release. - * Bumped up shlibs version because of the introduction of - CURLOPT_TCP_NODELAY option. - - -- Domenico Andreoli Mon, 26 Apr 2004 14:14:20 +0200 - -curl (7.11.1-2) unstable; urgency=low - - * Added GSSAPI support to package libcurl2-gssapi (closes: #241553). - - -- Domenico Andreoli Fri, 2 Apr 2004 18:03:15 +0200 - -curl (7.11.1-1) unstable; urgency=low - - * New upstream release. - * Bumped up shlibs version because of the introduction of - CURLOPT_POSTFIELDSIZE_LARGE option. - - -- Domenico Andreoli Fri, 19 Mar 2004 11:39:07 +0100 - -curl (7.11.0-4) unstable; urgency=low - - * Applied fix from upstream's CVS which adds another CRLF in - chunked-transfers. - - -- Domenico Andreoli Sun, 1 Feb 2004 13:19:02 +0100 - -curl (7.11.0-3) unstable; urgency=low - - * "Fixed" build process, now the right file is searched for CA - certificates (closes: #228182). - - -- Domenico Andreoli Sat, 31 Jan 2004 20:06:10 +0100 - -curl (7.11.0-2) unstable; urgency=low - - * Test suite is still performed but is not critical for the build - being successful any more. - - -- Domenico Andreoli Fri, 30 Jan 2004 13:03:03 +0100 - -curl (7.11.0-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Sun, 25 Jan 2004 17:50:43 +0100 - -curl (7.10.8+7.11.0-pre1-1) unstable; urgency=low - - * New upstream pre-release: - - proxy+ssl now passes post variables (closes: #222901) - - various test case problems exposed in #222140 should now be fixed. - * Bumped up shlibs version because of the introduction of - CURLOPT_NETRC_FILE and CURLOPT_FTP_SSL options in libcurl. - - -- Domenico Andreoli Wed, 14 Jan 2004 17:35:46 +0100 - -curl (7.10.8-1) unstable; urgency=low - - * New upstream release: - - fixed LDAP support (closes: #149609) - - cleaner environment for testsuite execution (closes: #210253) - - fixed lib/Makefile.am's use of LDFLAGS (closes: #212086) - - fixed name clash in curl.h with respect to unistd.h (closes: #213180) - - fixed typo in curl manpage (closes: #218046). - * Bumped up shlibs version because of new libcurl options. - * Added stunnel to the Build-Depends in order to enable SSL test cases. - - -- Domenico Andreoli Mon, 3 Nov 2003 10:26:12 +0100 - -curl (7.10.7-2) unstable; urgency=low - - * Fixed bug in cache_resolv_response on alpha and ia64 (closes: #207174). - Patch courtesy of Jurij Smakov. - - -- Domenico Andreoli Mon, 8 Sep 2003 21:55:46 +0200 - -curl (7.10.7-1) unstable; urgency=low - - * New upstream release. - * Bumped up shlibs version because of the introduction of CURLOPT_PROXYAUTH - and CURLOPT_FTP_CREATE_MISSING_DIRS options in libcurl. - - -- Domenico Andreoli Mon, 18 Aug 2003 00:19:43 +0200 - -curl (7.10.6-3) unstable; urgency=low - - * Applied patch to fix test 60 on ia64. - - -- Domenico Andreoli Sat, 9 Aug 2003 04:26:15 +0200 - -curl (7.10.6-2) unstable; urgency=low - - * Applied patch from upstream to fix url globbing (closes: #203827). - * make test is still performed on building debug stuff but errors - are ignored. - - -- Domenico Andreoli Thu, 7 Aug 2003 02:20:46 +0200 - -curl (7.10.6-1) unstable; urgency=low - - * New upstream release: - - added spport for http_proxy env var with name:passwd - (closes: #193630). - * make test is invoked after build - - -- Domenico Andreoli Tue, 29 Jul 2003 01:26:50 +0200 - -curl (7.10.5-1) unstable; urgency=low - - * New upstream release: - - fixed typo in curl's man page (closes: #189272). - * New libcurl option CURLOPT_FTP_USE_EPRT has been added, bumped - up shlibs. - - -- Domenico Andreoli Mon, 19 May 2003 23:57:12 +0200 - -curl (7.10.4-1) unstable; urgency=low - - * New upstream release: - - now uses new settings properly when re-using an existing connection - (closes: #185254) - - curl man page now refers to MANUAL (closes: #178509). - * Changed section of libcurl2-dev and libcurl2-dbg to libdevel. - - -- Domenico Andreoli Wed, 2 Apr 2003 21:25:24 +0200 - -curl (7.10.3-3) unstable; urgency=low - - * Rebuilt to link against libssl0.9.7. - * Improved package descriptions thanks to suggestions provided by - Filip Van Raemdonck (closes: #177995). - - -- Domenico Andreoli Fri, 14 Mar 2003 16:08:38 +0100 - -curl (7.10.3-2) unstable; urgency=low - - * Development package is now named libcurl2-dev, it provides - libcurl-dev. People can now safely make their build dependencies - and be sure to use the right stuff. - * New package libcurl2-dbg is provided to help in debugging sessions. - - -- Domenico Andreoli Mon, 20 Jan 2003 22:04:32 +0100 - -curl (7.10.3-1) unstable; urgency=low - - * New upstream release. - * It now suggests ca-certificates package. - - -- Domenico Andreoli Thu, 16 Jan 2003 00:27:48 +0100 - -curl (7.10.2-2) unstable; urgency=low - - * Added AM_MAINTAINER_MODE to configure.in (closes: #170050). - - -- Domenico Andreoli Fri, 22 Nov 2002 14:28:22 +0100 - -curl (7.10.2-1) unstable; urgency=low - - * New upstream release: - - fixed segfault on retrieving relative redirects (closes: #165382) - - fixed a leak of debug output (closes: #167678). - * Updated config.guess and config.sub (closes: #166153). - * Added zlib1g-dev to build and libcurl-dev dependencies - (closes: #169654). - * Added HTML and PDF versions of all manpages in libcurl-dev package. - - -- Domenico Andreoli Wed, 20 Nov 2002 23:38:24 +0100 - -curl (7.10.1-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Fri, 11 Oct 2002 23:26:50 +0200 - -curl (7.10-1) unstable; urgency=low - - * New upstream release: - - new way to use option -x to prevent curl from using any proxy - server (closes: #161153). - - -- Domenico Andreoli Wed, 2 Oct 2002 01:04:20 +0200 - -curl (7.9.8-2) unstable; urgency=low - - * Added again libcurl2-ssl to the libcurl2 conflicts. - - -- Domenico Andreoli Thu, 4 Jul 2002 02:35:24 +0200 - -curl (7.9.8-1) unstable; urgency=low - - * New upstream release. - * Double flavor of curl to support both non-SSL and SSL is gone. - Now curl comes only with SSL. Who needs SSL can require curl - version >= 7.9.8 . - - -- Domenico Andreoli Mon, 24 Jun 2002 23:04:37 +0200 - -curl (7.9.7-2) unstable; urgency=low - - * Fixed the bashism in debian/rules (closes: #147352). - * SSL and non-SSL series of curl packages are now built from the - same source. thanks crypto-in-main! :) - - -- Domenico Andreoli Mon, 20 May 2002 23:28:05 +0200 - -curl (7.9.7-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Wed, 15 May 2002 21:09:19 +0200 - -curl (7.9.6-1) unstable; urgency=low - - * New upstream release. - * libcurl.3 manpage is now installed by libcurl-dev instead of - libcurl2. Indeed it provides an overview on how to use libcurl in - C programs. - - -- Domenico Andreoli Sat, 20 Apr 2002 17:06:51 +0200 - -curl (7.9.5-2) unstable; urgency=low - - * curl-ssl stuff moved from non-US to main. - - -- Domenico Andreoli Mon, 25 Mar 2002 23:40:02 +0100 - -curl (7.9.5-1) unstable; urgency=low - - * New upstream release (closes: #134608). - * Added autotools-dev to the build dependencies. config.{guess,sub} - can now be updated automatically in the build process. - - -- Domenico Andreoli Tue, 12 Mar 2002 19:06:21 +0100 - -curl (7.9.3-2) unstable; urgency=low - - * Upstream source code has been correctly imported in my CVS - repository (closes: #130906). - - -- Domenico Andreoli Sun, 27 Jan 2002 22:23:54 +0100 - -curl (7.9.3-1) unstable; urgency=low - - * New upstream release: - - fixed wrong assumption on char signedness (closes: #127011) - - missing header added accordingly (closes: #130401) - * Fixed a typo in curl description (closes: #124526). - - -- Domenico Andreoli Thu, 24 Jan 2002 20:04:04 +0100 - -curl (7.9.2-1) unstable; urgency=low - - * New upstream release: - - two bad timeout matters in libcurl2 are now solved (closes: #118595). - - -- Domenico Andreoli Fri, 7 Dec 2001 16:58:45 +0100 - -curl (7.9.1-3) unstable; urgency=low - - * Fixed return type of Curl_ftpsendf(...) to CURLcode (closes: #120485). - * Versions in debian/libcurl2.shlibs have been incremented to - ">= 7.9.1-1". - - -- Domenico Andreoli Thu, 22 Nov 2001 15:35:40 +0100 - -curl (7.9.1-2) unstable; urgency=low - - * Reverted to unpatched released 7.9.1 source tree, patch behavior - was weird. - - -- Domenico Andreoli Thu, 15 Nov 2001 18:05:58 +0100 - -curl (7.9.1-1) unstable; urgency=low - - * New upstream release. - * Applied upstream patch #478780 found on sourceforge, fixes libcurl - which didn't restore SIGALRM handler (closes: #118595). - * Applied patch for patch #478780 of above, see bug #118595 in BTS. - Patch courtesy of Enrik Berkhan . - * Build-Depends reduced to what is strictly required for building. - autoconf, automake and libtool build dependencies are gone. - - -- Domenico Andreoli Fri, 9 Nov 2001 13:56:36 +0100 - -curl (7.9-1) unstable; urgency=low - - * New upstream release: - - output of "curl-config --libs" now includes -lcurl. - - -- Domenico Andreoli Tue, 25 Sep 2001 18:38:46 +0200 - -curl (7.8-3) unstable; urgency=low - - * Added libc6-dev to libcurl2-dev dependencies. - * Fixed lack of some FD_ZERO(...)s in lib/transfer.c (closes: #105516). - - -- Domenico Andreoli Fri, 3 Aug 2001 16:32:20 +0200 - -curl (7.8-2) unstable; urgency=low - - * libcurl2.shlibs now includes version numbers. some new symbols have - been introduced in libcurl 7.8, so program linked against 7.8 cannot - work with older ones. - * IPv6 support is now enabled - * configure.in has been renamed to autoconf.ac to force the use of - autoconf 2.50 - - -- Domenico Andreoli Thu, 5 Jul 2001 01:38:24 +0200 - -curl (7.8-1) unstable; urgency=low - - * New upstream release. - * Applied patch for correct shared library versioning of libcurl, curl - 7.8 comes with broken shared library version out of the box. - Patch provided by upstream developer. - - -- Domenico Andreoli Sat, 9 Jun 2001 21:12:05 +0200 - -curl (7.7.3-3) unstable; urgency=low - - * Fixed manpages libcurl-dev with required simlinks (closes: 99610). - - -- Domenico Andreoli Mon, 4 Jun 2001 14:37:49 +0200 - -curl (7.7.3-2) unstable; urgency=low - - * lib/url.c and lib/version.c are now fixed (closes: #97709). - * install upstream changelog (closes: #97628). - - -- Domenico Andreoli Fri, 18 May 2001 10:32:25 +0200 - -curl (7.7.3-1) unstable; urgency=low - - * New upstream release. - * Using dh_installman instead dh_installmanpages. - * Installing libcurl examples with dh_installexamples. - * Policy 3.5.3.0 compliant. - - -- Domenico Andreoli Thu, 10 May 2001 09:45:05 +0200 - -curl (7.7.2-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Tue, 24 Apr 2001 09:14:51 +0200 - -curl (7.7.1-2) unstable; urgency=low - - * Fixed debian/rules (closes: #78232, #93837). - - -- Domenico Andreoli Tue, 17 Apr 2001 17:12:19 +0200 - -curl (7.7.1-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Tue, 10 Apr 2001 13:26:09 +0200 - -curl (7.7-1) unstable; urgency=low - - * New upstream release. - * Fixed formatting errors in curl.1 (closes: #90281). - - -- Domenico Andreoli Fri, 23 Mar 2001 18:25:26 +0100 - -curl (7.6.1-5) unstable; urgency=low - - * Fixed debian/libcurl1.shlibs in order to solve any problem for those - packages which should depend on either libcurl1 or libcurl1-ssl. - I should have done it long time ago. - - -- Domenico Andreoli Tue, 13 Mar 2001 18:29:06 +0100 - -curl (7.6.1-4) unstable; urgency=low - - * Added versioned Build-Depend for debhelper. - - -- Domenico Andreoli Tue, 6 Mar 2001 15:16:02 +0100 - -curl (7.6.1-3) unstable; urgency=low - - * Refining the transition to debhelper compatibility 2. I forgot the - executable in the curl package (closes: #87886). - - -- Domenico Andreoli Wed, 28 Feb 2001 14:31:43 +0100 - -curl (7.6.1-2) unstable; urgency=low - - * Switched to debhelper compatibility version 2. - - -- Domenico Andreoli Fri, 23 Feb 2001 18:24:02 +0100 - -curl (7.6.1-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Tue, 13 Feb 2001 18:04:04 +0100 - -curl (7.6-2) unstable; urgency=low - - * Adjusted dependencies in order to let curl-ssl package manage a - smooth upgrade from potato. - - -- Domenico Andreoli Fri, 9 Feb 2001 13:36:11 +0100 - -curl (7.6-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Mon, 29 Jan 2001 16:00:59 +0100 - -curl (7.5.2-2) unstable; urgency=low - - * This is a service upload in order to fix dependencies problems arose - for a ill-formed upload of 7.5.2-1. - - -- Domenico Andreoli Mon, 29 Jan 2001 14:54:57 +0100 - -curl (7.5.2-1) unstable; urgency=low - - * New upstream release. - * It needed to be recompiled against the new libc (closes: #80256). - - -- Domenico Andreoli Mon, 15 Jan 2001 13:08:15 +0100 - -curl (7.5-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Mon, 4 Dec 2000 13:15:33 +0100 - -curl (7.4.2-2) unstable; urgency=low - - * curl replaces curl-ssl. curl is only a frontend for libcurl and is not - aware of any protocol, libcurl is. so what is really different whether - ssl is enable or not is only libcurl. - * curl now depends on (libcurl0 | libcurl0-ssl). - * The workaround for libtool -rpath parameter is not required, so - it has been removed from configure.in. - * Removed "Suggests: " field in control file for libcurl0. It suggested - to install curl and libcurl-dev too but it really doesn't make sense - (this change was really applied in -1). - - -- Domenico Andreoli Tue, 28 Nov 2000 14:27:29 +0100 - -curl (7.4.2-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Fri, 17 Nov 2000 16:19:23 +0100 - -curl (7.2.1-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Mon, 4 Sep 2000 01:22:44 +0200 - -curl (7.1-3) unstable; urgency=low - - * Added "Suggests: " field in control file for libcurl0. Now curl and - libcurl-dev are suggested upon installation of libcurl0. - - -- Domenico Andreoli Mon, 14 Aug 2000 15:01:08 +0200 - -curl (7.1-2) unstable; urgency=low - - * Fixed a line that did not install development manpages. - - -- Domenico Andreoli Thu, 10 Aug 2000 14:32:23 +0200 - -curl (7.1-1) unstable; urgency=low - - * New upstream release. - * libcurl is now a separate package, it provides shared libraries and - includes to allow developing for other applications. - - -- Domenico Andreoli Wed, 9 Aug 2000 01:21:25 +0200 - -curl (6.5.2-4) unstable; urgency=low - - * Some missing build dependencies (autoconf, automake, libtool) added. - - -- Domenico Andreoli Sat, 8 Jul 2000 00:13:16 +0200 - -curl (6.5.2-3) unstable; urgency=low - - * Due to some policy and technical restrictions, curl's source package - has been splitted again in two, one for main archive and one for non-US. - - -- Domenico Andreoli Tue, 4 Jul 2000 15:52:14 +0200 - -curl (6.5.2-2) unstable; urgency=low - - * Added a Build-Depends in order to compile curl-ssl only if - libssl09-dev is installed. - * Documentation reflects the new location of curl debian packages - home page (http://curl-deb.sourceforge.net). - * Corrected minor spelling errors in README.Debian. - - -- Domenico Andreoli Sat, 17 Jun 2000 01:13:19 +0200 - -curl (6.5.2-1) unstable; urgency=low - - * New upstream release. - * Now curl and curl-ssl binary packages are generated from the same - debian source package. - * Uploads and downloads are now performed simultaneously (closes: #56627). - - -- Domenico Andreoli Sat, 25 Mar 2000 01:06:35 +0100 - -curl (6.4-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Sun, 30 Jan 2000 02:21:32 +0100 - -curl (6.3.1-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Sat, 11 Dec 1999 17:38:13 +0100 - -curl (6.2-1) unstable; urgency=low - - * New upstream release. - * No hack to compile without SSL is required anymore. Fixed by - upstream maintainer. - - -- Domenico Andreoli Mon, 1 Nov 1999 00:37:32 +0100 - -curl (6.0-1) unstable; urgency=low - - * New upstream release. - - -- Domenico Andreoli Mon, 27 Sep 1999 22:28:13 +0200 - -curl (5.11-1.1) unstable; urgency=low - - * Put sources into the right section. - - -- Domenico Andreoli Mon, 30 Aug 1999 03:14:21 +0200 - -curl (5.11-1) unstable; urgency=low - - * New upstream release. - * New debian maintainer. - - -- Domenico Andreoli Fri, 27 Aug 1999 11:50:04 +0200 - -curl (5.9-2) unstable; urgency=low - - * Moved to non-US, and compiled against ssl (closes: #40099). - - -- Leon Breedt Sat, 3 Jul 1999 15:46:54 +0200 - -curl (5.9-1) unstable; urgency=low - - * New upstream release. - - -- Leon Breedt Sun, 23 May 1999 21:51:30 +0200 - -curl (5.8-1) unstable; urgency=low - - * Initial Release. - - -- Leon Breedt Sun, 9 May 1999 18:55:48 +0200 diff --git a/debian/changelog.old-ssl b/debian/changelog.old-ssl deleted file mode 100644 index 821bead..0000000 --- a/debian/changelog.old-ssl +++ /dev/null @@ -1,335 +0,0 @@ - -curl-ssl (7.9.3-1) unstable; urgency=low - - * New upstream version: - - fixed wrong assumption on char signedness (Closes: #127013). - - -- Domenico Andreoli Thu, 24 Jan 2002 20:30:53 +0100 - -curl-ssl (7.9.2-1) unstable; urgency=low - - * New upstream version: - - two bad timeout matters in libcurl2-ssl are now solved. - - -- Domenico Andreoli Fri, 7 Dec 2001 17:00:04 +0100 - -curl-ssl (7.9.1-3) unstable; urgency=low - - * Fixed return type of Curl_ftpsendf(...) to CURLcode (Closes: #120488). - * Versions in debian/libcurl2-ssl.shlibs have been incremented to - ">= 7.9.1-1". - - -- Domenico Andreoli Thu, 22 Nov 2001 15:41:13 +0100 - -curl-ssl (7.9.1-2) unstable; urgency=low - - * Reverted to unpatched released 7.9.1 source tree, patch behavior - was weird. - - -- Domenico Andreoli Thu, 15 Nov 2001 18:07:58 +0100 - -curl-ssl (7.9.1-1) unstable; urgency=low - - * New upstream version. - * Applied upstream patch #478780 found on sourceforge, fixes libcurl - which didn't restore SIGALRM handler. - * Applied patch for patch #478780 of above, see bug #118595 in BTS. - Patch courtesy of Enrik Berkhan . - * Build-Depends reduced to what is strictly required for building. - autoconf, automake and libtool build dependencies are gone. - - -- Domenico Andreoli Fri, 9 Nov 2001 13:14:49 +0100 - -curl-ssl (7.9-1) unstable; urgency=low - - * New upstream version: - - output of "curl-config --libs" now includes -lcurl (Closes: #112825). - - -- Domenico Andreoli Wed, 26 Sep 2001 00:07:39 +0200 - -curl-ssl (7.8-3) unstable; urgency=low - - * Added libc6-dev and libssl-dev to libcurl2-ssl-dev dependencies - (Closes: #105918). - * Fixed lack of some FD_ZERO(...)s in lib/transfer.c. - - -- Domenico Andreoli Fri, 3 Aug 2001 16:36:11 +0200 - -curl-ssl (7.8-2) unstable; urgency=low - - * libcurl2-ssl.shlibs now includes version numbers. some new symbols - have been introduced in libcurl 7.8, so program linked against 7.8 - cannot work with older ones. - * IPv6 support is now enabled - * configure.in has been renamed to autoconf.ac to force the use of - autoconf 2.50 - - -- Domenico Andreoli Wed, 4 Jul 2001 23:49:36 +0200 - -curl-ssl (7.8-1) unstable; urgency=low - - * New upstream version. - * Applied patch for correct shared library versioning of libcurl, curl - 7.8 comes with broken shared library version out of the box. - Patch provided by upstream developer. - - -- Domenico Andreoli Sat, 9 Jun 2001 21:29:26 +0200 - -curl-ssl (7.7.3-3) unstable; urgency=low - - * Fixed manpages libcurl-ssl-dev with required simlinks. - - -- Domenico Andreoli Mon, 4 Jun 2001 14:46:32 +0200 - -curl-ssl (7.7.3-2) unstable; urgency=low - - * lib/url.c and lib/version.c are now fixed (Closes: #97709). - - -- Domenico Andreoli Fri, 18 May 2001 10:28:52 +0200 - -curl-ssl (7.7.3-1) unstable; urgency=low - - * New upstream version. - * Using dh_installman instead dh_installmanpages. - * Installing libcurl examples with dh_installexamples. - * Policy 3.5.3.0 compliant. - - -- Domenico Andreoli Thu, 10 May 2001 12:58:43 +0200 - -curl-ssl (7.7.2-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Tue, 24 Apr 2001 09:18:18 +0200 - -curl-ssl (7.7.1-2) unstable; urgency=low - - * Fixed a bug in debian/rules which made the build in "install" target - instead of "build" - - -- Domenico Andreoli Wed, 18 Apr 2001 12:24:15 +0200 - -curl-ssl (7.7.1-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Tue, 10 Apr 2001 13:26:39 +0200 - -curl-ssl (7.7-2) unstable; urgency=low - - * Adjusted curl-ssl pseudopackage description, it was not really good - english, now it should be better. :) - - -- Domenico Andreoli Thu, 29 Mar 2001 11:55:01 +0200 - -curl-ssl (7.7-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Fri, 23 Mar 2001 17:35:24 +0100 - -curl-ssl (7.6.1-5) unstable; urgency=low - - * Fixed debian/libcurl1-ssl.shlibs in order to solve any problem for - those packages which should depend on either libcurl1 or libcurl1-ssl. - I should have done it long time ago. - - -- Domenico Andreoli Tue, 13 Mar 2001 18:31:26 +0100 - -curl-ssl (7.6.1-4) unstable; urgency=low - - * Added versioned Build-Depend for debhelper. - - -- Domenico Andreoli Tue, 6 Mar 2001 15:17:09 +0100 - -curl-ssl (7.6.1-3) unstable; urgency=low - - * Switched to debhelper compatibility version 2. - * Fixed the overlapping manpages with libcurl1-ssl-dev (Closes: #86943, - #87196, #86866). - - -- Domenico Andreoli Fri, 23 Feb 2001 18:13:55 +0100 - -curl-ssl (7.6.1-2) unstable; urgency=low - - * Fixed the overlapping manpage with curl (Closes: #86866). - - -- Domenico Andreoli Thu, 22 Feb 2001 01:06:41 +0100 - -curl-ssl (7.6.1-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Tue, 13 Feb 2001 18:04:26 +0100 - -curl-ssl (7.6-2) unstable; urgency=low - - * Adjusted dependencies and added a dummy curl-ssl package in order to - smoothen the upgrade from potato (Closes: #84626). - * Fixed the section, it was non-US/main instead of the correct non-US. - - -- Domenico Andreoli Fri, 9 Feb 2001 13:44:43 +0100 - -curl-ssl (7.6-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Tue, 30 Jan 2001 16:52:44 +0100 - -curl-ssl (7.5.2-2) unstable; urgency=low - - * Trying to solve the dependency problem with libssl09, i made this - upload in order to fix dependencies problems arised for a ill-formed - upload of 7.5.2-1. - - -- Domenico Andreoli Mon, 22 Jan 2001 16:18:34 +0100 - -curl-ssl (7.5.2-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Mon, 15 Jan 2001 13:10:51 +0100 - -curl-ssl (7.5-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Mon, 4 Dec 2000 13:16:01 +0100 - -curl-ssl (7.4.2-2) unstable; urgency=low - - * This package doesn't provide a ssl-anabled curl, since it was - identical to the one with ssl disabled. curl is only a frontend - for libcurl and is not aware of any protocol, libcurl is. so what - is really different whether ssl is enabled or not is only libcurl. - * The workaround for libtool -rpath parameter is not required, so - it has been removed from configure.in (Closes: #78232). - * Removed "Suggests: " field in control file for libcurl0-ssl. It - suggested to install curl-ssl and libcurl-ssl-dev too but it really - doesn't make sense (this change was really applied in -1). - - -- Domenico Andreoli Tue, 28 Nov 2000 14:36:07 +0100 - -curl-ssl (7.4.2-1) unstable; urgency=low - - * New upstream version. - * Fixed wrong short description (Closes: #71787) - * Added libssl095a-dev in Build-Depends field (Closes: #76237) - - -- Domenico Andreoli Fri, 17 Nov 2000 16:19:38 +0100 - -curl-ssl (7.2.1-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Mon, 4 Sep 2000 01:23:58 +0200 - -curl-ssl (7.1-3) unstable; urgency=low - - * Added Suggests: field in control file for libcurl0-ssl. Now curl- - ssl and libcurl-ssl-dev are suggested upon installation of libcurl0- - ssl. - - -- Domenico Andreoli Mon, 14 Aug 2000 15:18:18 +0200 - -curl-ssl (7.1-2) unstable; urgency=low - - * Fixed a line that did not install development manpages. - - -- Domenico Andreoli Thu, 10 Aug 2000 14:32:23 +0200 - -curl-ssl (7.1-1) unstable; urgency=low - - * New upstrem version. - * libcurl is now a separate package, it provides shared libraries and - includes to allow developing for other applications. - - -- Domenico Andreoli Wed, 9 Aug 2000 01:21:25 +0200 - -curl-ssl (6.5.2-4) unstable; urgency=low - - * Some missing build dependecies (autoconf, automake, libtool) added. - - -- Domenico Andreoli Sat, 8 Jul 2000 00:13:16 +0200 - -curl-ssl (6.5.2-3) unstable; urgency=low - - * Due to some policy and technical restrictions, curl's source package - has been splitted again in two, one for main archive and one for non-US. - - -- Domenico Andreoli Tue, 4 Jul 2000 15:52:14 +0200 - -curl-ssl (6.5.2-2) unstable; urgency=low - - * Added a Build-Depends in order to compile curl-ssl only if - libssl09-dev is installed. - * Documentation reflects the new location of curl debian packages - home page (http://curl-deb.sourceforge.net). - * Corrected minor spelling errors in README.Debian. - - -- Domenico Andreoli Sat, 17 Jun 2000 01:13:19 +0200 - -curl-ssl (6.5.2-1) unstable; urgency=low - - * New upstream version. - * Now curl and curl-ssl binary packages are generated from the same - debian source package. - * Uploads and dowloads are now performed simultaneously (Closes: #56627). - - -- Domenico Andreoli Sat, 25 Mar 2000 01:06:35 +0100 - -curl-ssl (6.4-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Sun, 30 Jan 2000 02:21:32 +0100 - -curl-ssl (6.3.1-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Sat, 11 Dec 1999 17:38:13 +0100 - -curl-ssl (6.2-1) unstable; urgency=low - - * New upstream version. - * No hack to compile without SSL is required anymore. Fixed by - upstream maintainer. - - -- Domenico Andreoli Mon, 1 Nov 1999 00:37:32 +0100 - -curl-ssl (6.0-1) unstable; urgency=low - - * New upstream version. - - -- Domenico Andreoli Mon, 27 Sep 1999 22:28:13 +0200 - -curl-ssl (5.11-1.1) unstable; urgency=low - - * Put sources into the right section. - - -- Domenico Andreoli Mon, 30 Aug 1999 03:14:21 +0200 - -curl-ssl (5.11-1) unstable; urgency=low - - * Initial release. - - -- Domenico Andreoli Fri, 27 Aug 1999 11:50:04 +0200 - -curl-ssl (5.9-2) unstable; urgency=low - - * Moved to non-US, and compiled against ssl (closes #40099). - - -- Leon Breedt Sat, 3 Jul 1999 15:46:54 +0200 - -curl-ssl (5.9-1) unstable; urgency=low - - * New upstream version. - - -- Leon Breedt Sun, 23 May 1999 21:51:30 +0200 - -curl-ssl (5.8-1) unstable; urgency=low - - * Initial Release. - - -- Leon Breedt Sun, 9 May 1999 18:55:48 +0200 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 7ed6ff8..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/debian/control b/debian/control deleted file mode 100644 index b9d646c..0000000 --- a/debian/control +++ /dev/null @@ -1,74 +0,0 @@ -Source: curl -Section: web -Priority: optional -Maintainer: Ramakrishnan Muthukrishnan , Taeksu Shin , Dongwook Lee -Uploaders: Taeksu Shin , Dongwook Lee -Build-Depends: debhelper (>> 5), autoconf, libtool, automake1.9, binutils (>= 2.14.90.0.7), libssl-dev, zlib1g-dev, libidn11-dev, groff-base, libc-ares-dev -Build-Conflicts: autoconf2.13, automake1.4 -Standards-Version: 3.9.1 -Vcs-Browser: http://git.debian.org/?p=collab-maint/curl.git -Vcs-Git: git://git.debian.org/collab-maint/curl.git -Homepage: http://curl.haxx.se - -Package: libcurl3 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends}, ca-certificates -Replaces: libcurl2 (<< 1:7.11.2-2), libcurl4 -Conflicts: libcurl4 -Description: Multi-protocol file transfer library (OpenSSL) - libcurl is designed to be a solid, usable, reliable and portable - multi-protocol file transfer library. - . - SSL support is provided by OpenSSL. - . - This is the shared version of libcurl. - -Package: libcurl4-openssl-dev -Architecture: any -Section: libdevel -Suggests: libcurl3-dbg -Provides: libcurl-ssl-dev, libcurl3-openssl-dev, libcurl3-dev -Replaces: libcurl-ssl-dev, libcurl3-openssl-dev, libcurl3-dev (<< 7.14.1-1) -Depends: libcurl3 (= ${binary:Version}), libc6-dev | libc-dev, libssl-dev, zlib1g-dev, libidn11-dev, ${misc:Depends} -Description: Development files and documentation for libcurl (OpenSSL) - These files (ie. includes, static library, manual pages) allow to - build software which uses libcurl. - . - SSL support is provided by OpenSSL. - . - HTML and PDF versions of all the manual pages are also provided. - -Package: libcurl3-dbg -Architecture: any -Section: debug -Priority: extra -Suggests: libc-dbg -Provides: libcurl4-dbg -Replaces: libcurl4-dbg -Conflicts: libcurl4-dbg -Depends: libcurl3 (= ${binary:Version}) -Description: libcurl compiled with debug symbols - This contains the debug symbols of both the OpenSSL, GnuTLS and NSS versions - of libcurl3. It might be useful in debug sessions of software which uses - libcurl. - -Package: libcurl -Architecture: any -Section: libs -Depends: libcurl3 (= ${binary:Version}), ${misc:Depends} -Description: Transitional meta-package for libcurl - libcurl is designed to be a solid, usable, reliable and portable - multi-protocol file transfer library. - . - This is transitional meta-package depending on libcurl3. - -Package: libcurl-dev -Architecture: any -Section: libdevel -Depends: libcurl4-openssl-dev (= ${binary:Version}), ${misc:Depends} -Description: Transitional meta-package for libcurl - libcurl is designed to be a solid, usable, reliable and portable - multi-protocol file transfer library. - . - This is transitional meta-package depending on libcurl4-openssl-dev. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index 94fce40..0000000 --- a/debian/copyright +++ /dev/null @@ -1,66 +0,0 @@ -This package was debianized by Domenico Andreoli on -Fri, 17 Nov 2000 16:10:37 +0100 - -It was downloaded from http://curl.haxx.se - -Upstream Authors: Daniel Stenberg - -Copyright: - - COPYRIGHT AND PERMISSION NOTICE - - Copyright (c) 1996 - 2002, Daniel Stenberg, . - - All rights reserved. - - Permission to use, copy, modify, and distribute this software for any purpose - with or without fee is hereby granted, provided that the above copyright - notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE - OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of a copyright holder shall not - be used in advertising or otherwise to promote the sale, use or other dealings - in this Software without prior written authorization of the copyright holder. - -The source file `lib/security.c' contains code with the following copyright: - - Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan - (Royal Institute of Technology, Stockholm, Sweden). - - Copyright (C) 2001 - 2010, Daniel Stenberg, , et al. - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the Institute nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. \ No newline at end of file diff --git a/debian/libcurl3-dbg.dirs b/debian/libcurl3-dbg.dirs deleted file mode 100644 index 08d9e7a..0000000 --- a/debian/libcurl3-dbg.dirs +++ /dev/null @@ -1 +0,0 @@ -usr/lib/debug diff --git a/debian/libcurl3.dirs b/debian/libcurl3.dirs deleted file mode 100644 index cdaad77..0000000 --- a/debian/libcurl3.dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/lib -usr/share/lintian/overrides diff --git a/debian/libcurl3.install b/debian/libcurl3.install deleted file mode 100644 index feb68fd..0000000 --- a/debian/libcurl3.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/libcurl.so.4* diff --git a/debian/libcurl3.links b/debian/libcurl3.links deleted file mode 100644 index 5903529..0000000 --- a/debian/libcurl3.links +++ /dev/null @@ -1 +0,0 @@ -usr/lib/libcurl.so.4 usr/lib/libcurl.so.3 diff --git a/debian/libcurl3.lintian-overrides b/debian/libcurl3.lintian-overrides deleted file mode 100644 index da35b5a..0000000 --- a/debian/libcurl3.lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -libcurl3: package-name-doesnt-match-sonames libcurl4 diff --git a/debian/libcurl4-openssl-dev.dirs b/debian/libcurl4-openssl-dev.dirs deleted file mode 100644 index 76d6480..0000000 --- a/debian/libcurl4-openssl-dev.dirs +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib -usr/include -usr/share/aclocal diff --git a/debian/libcurl4-openssl-dev.install b/debian/libcurl4-openssl-dev.install deleted file mode 100644 index 94caaf1..0000000 --- a/debian/libcurl4-openssl-dev.install +++ /dev/null @@ -1,6 +0,0 @@ -usr/bin/curl-config -usr/lib/libcurl.a -usr/lib/libcurl.la -usr/lib/libcurl.so -usr/lib/pkgconfig/libcurl.pc -usr/include diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 005f837..0000000 --- a/debian/rules +++ /dev/null @@ -1,181 +0,0 @@ -#! /usr/bin/make -f - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -## Tizen customization -DEB_BUILD_OPTIONS += nocheck -# Workaround for broken dpkg-architecture in Tizen's SB1 -DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) - -# This has to be exported to make some magic below work. -export DH_OPTIONS - -# These are locations of quilt stuff -export QUILT_PATCHES=$(shell pwd)/debian/patches - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) -DEB_BUILD_ARCH_OS ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) - -# set the number of build jobs -ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) - JOBS:=-j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) -endif - -ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) -CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) --with-random=/dev/urandom -else -CROSS= --build $(DEB_BUILD_GNU_TYPE) -endif - -ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) - DO_TEST=no -else - DO_TEST=no - ifeq (${DEB_BUILD_GNU_TYPE},${DEB_HOST_GNU_TYPE}) - ifneq (${DEB_BUILD_ARCH},m68k) - ifneq (${DEB_BUILD_ARCH_OS},kfreebsd) - ifneq (${DEB_BUILD_ARCH_OS},knetbsd) - ifneq (${DEB_BUILD_ARCH_OS},hurd) - DO_TEST=yes - endif - endif - endif - endif - endif -endif - -SHLIBS_VERSION=7.16.2-1 - -# this will catch miss-linking. (e.g. undefined symbols) -# LDFLAGS = -Wl,-z,defs - -CONFIGURE_ARGS = $(CROSS) --prefix=/usr --mandir=/usr/share/man --disable-dependency-tracking --disable-ipv6 --with-lber-lib=lber --enable-manual --enable-versioned-symbols --enable-ares -# this fixes the ldap warning of dpkg-shlibdebs, but we dont want that. -# --with-ldap-lib=/usr/lib/libldap_r.so - -ifneq (${DEB_BUILD_ARCH_OS},hurd) -CONFIGURE_ARGS += --with-gssapi=/usr -endif - -build: build-stamp - -#configure-stamp: DH_OPTIONS= -configure-stamp: - dh_testdir - mkdir -p debian/build - -# -quilt push -a -# -# # pop the last patch (nss) -# quilt pop -# -# # pop the second last patch (gnutls) -# quilt pop - # get the source without nss and gnutls patches - tar -cf - --exclude=debian --exclude=.pc . | tar -xf - -C debian/build - -# # push the second last patch which must be gnutls -# quilt push -# # get the source with gnutls patch applied -# tar -cf - --exclude=debian --exclude=.pc . | tar -xf - -C debian/build-gnutls - -# # push the last patch which must be nss -# quilt push -# # get the source with nss patch applied -# tar -cf - --exclude=debian --exclude=.pc . | tar -xf - -C debian/build-nss - -# for flavour in build build-gnutls build-nss; do \ -# (cd debian/$$flavour && ./buildconf) \ -# done - (cd debian/build && ./buildconf) - - cd debian/build && ./configure ${CONFIGURE_ARGS} --with-ca-path=/etc/ssl/certs --without-gnutls --without-nss --with-openssl -# cd debian/build-gnutls && ./configure ${CONFIGURE_ARGS} --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --without-ssl --with-gnutls --without-libssh2 -# cd debian/build-nss && ./configure ${CONFIGURE_ARGS} --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --without-ssl --with-nss --without-libssh2 - touch configure-stamp - -#build-stamp: DH_OPTIONS= -build-stamp: configure-stamp - dh_testdir - ${MAKE} $(JOBS) -C debian/build -# ${MAKE} $(JOBS) -C debian/build-gnutls -# ${MAKE} $(JOBS) -C debian/build-nss - -ifeq (${DO_TEST},yes) - -${MAKE} -C debian/build test -# -${MAKE} -C debian/build-gnutls test -# -${MAKE} -C debian/build-nss test -endif - - touch build-stamp - -clean: - dh_testdir - dh_testroot -# -quilt pop -a - rm -rf build-stamp configure-stamp debian/build #debian/build-gnutls debian/build-nss debian/tmp-gnutls debian/tmp-nss - dh_clean debian/shlibs.local - -#install: DH_OPTIONS= -install: build-stamp - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - ${MAKE} -C debian/build DESTDIR=$(shell pwd)/debian/tmp install -# ${MAKE} -C debian/build-gnutls DESTDIR=$(shell pwd)/debian/tmp-gnutls install -# ${MAKE} -C debian/build-nss DESTDIR=$(shell pwd)/debian/tmp-nss install -# dh_install -plibcurl3-gnutls -plibcurl4-gnutls-dev --sourcedir=debian/tmp-gnutls -# dh_install -plibcurl3-nss -plibcurl4-nss-dev --sourcedir=debian/tmp-nss - #dh_install -Nlibcurl3-gnutls -Nlibcurl4-gnutls-dev -Nlibcurl3-nss -Nlibcurl4-nss-dev --sourcedir=debian/tmp - dh_install --sourcedir=debian/tmp -# install -m 644 debian/libcurl3-gnutls.lintian-overrides debian/libcurl3-gnutls/usr/share/lintian/overrides/libcurl3-gnutls -# install -m 644 debian/libcurl3-nss.lintian-overrides debian/libcurl3-nss/usr/share/lintian/overrides/libcurl3-nss - install -m 644 debian/libcurl3.lintian-overrides debian/libcurl3/usr/share/lintian/overrides/libcurl3 - for i in `find debian/lib* -name "lib*.la"`; do echo "removing dependency_libs from $$i"; sed -i -e "/dependency_libs/ s/'.*'/''/" $$i; done - -# Build architecture-independent files here. -#binary-indep: DH_OPTIONS=-i -binary-indep: build-stamp install -# We have nothing to do here. - -# Build architecture-dependent files here. -#binary-arch: DH_OPTIONS=-a -binary-arch: build-stamp install - dh_testdir - dh_testroot -# dh_installdocs -# for package in libcurl4-openssl-dev libcurl4-gnutls-dev libcurl4-nss-dev; do \ -# install -m 644 docs/libcurl/libcurl.m4 debian/$${package}/usr/share/aclocal; \ -# for doc_ext in html pdf; do \ -# install -m 644 docs/*.$${doc_ext} debian/$${package}/usr/share/doc/$${package}/$${doc_ext}; \ -# install -m 644 docs/libcurl/*.$${doc_ext} debian/$${package}/usr/share/doc/$${package}/$${doc_ext}/libcurl; \ -# done; \ -# done -# dh_installman -# dh_installexamples -# dh_installchangelogs CHANGES - dh_link -# dh_strip -Nlibcurl3 -Nlibcurl3-gnutls -Nlibcurl3-nss -# dh_strip -plibcurl3 -plibcurl3-gnutls -plibcurl3-nss --dbg-package=libcurl3-dbg - dh_strip -plibcurl3 --dbg-package=libcurl3-dbg - dh_compress - dh_fixperms - echo "libcurl 4 libcurl3 (>= $(SHLIBS_VERSION))" > debian/shlibs.local - dh_makeshlibs -plibcurl3 -V "libcurl3 (>= $(SHLIBS_VERSION))" -# dh_makeshlibs -plibcurl3-gnutls -V "libcurl3-gnutls (>= $(SHLIBS_VERSION))" -# dh_makeshlibs -plibcurl3-nss -V "libcurl3-nss (>= $(SHLIBS_VERSION))" - dh_installdeb - dh_shlibdeps - dh_md5sums - dh_gencontrol - dh_builddeb - -binary: binary-indep binary-arch - -.PHONY: binary binary-arch binary-indep build clean install diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index d3827e7..0000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -1.0 diff --git a/debian/watch b/debian/watch deleted file mode 100644 index 1b671d1..0000000 --- a/debian/watch +++ /dev/null @@ -1,2 +0,0 @@ -version=2 -http://curl.haxx.se/download/curl-([\d\.]*).tar.gz diff --git a/depcomp b/depcomp deleted file mode 100755 index 04701da..0000000 --- a/depcomp +++ /dev/null @@ -1,530 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2005-07-09.11 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mecanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..23f832b --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +*.html +*.pdf diff --git a/docs/BINDINGS b/docs/BINDINGS index 5cf07fe..d4cf488 100644 --- a/docs/BINDINGS +++ b/docs/BINDINGS @@ -6,14 +6,14 @@ libcurl bindings -Creative people have written bindings or interfaces for various environments -and programming languages. Using one of these allows you to take advantage of -curl powers from within your favourite language or system. + Creative people have written bindings or interfaces for various environments + and programming languages. Using one of these allows you to take advantage of + curl powers from within your favourite language or system. -This is a list of all known interfaces as of this writing. + This is a list of all known interfaces as of this writing. -The bindings listed below are not part of the curl/libcurl distribution -archives, but must be downloaded and installed separately. + The bindings listed below are not part of the curl/libcurl distribution + archives, but must be downloaded and installed separately. Ada95 @@ -41,7 +41,10 @@ Ch Cocoa - Written by Dan Wood + BBHTTP: written by Bruno de Carvalho + https://github.com/brunodecarvalho/BBHTTP + + curlhandle: Written by Dan Wood http://curlhandle.sourceforge.net/ D @@ -55,6 +58,7 @@ Dylan http://dylanlibs.sourceforge.net/ Eiffel + Written by Eiffel Software http://curl.haxx.se/libcurl/eiffel/ @@ -81,6 +85,11 @@ glib/GTK+ Written by Richard Atterer http://atterer.net/glibcurl/ +Guile: + + Written by Michael L. Gran + http://www.lonelycactus.com/guile-curl.html + Haskell Written by Galois, Inc @@ -91,6 +100,11 @@ Java Maintained by [blank] http://curl.haxx.se/libcurl/java/ +Julia + + Written by Paul Howe + https://github.com/forio/Curl.jl + Lisp Written by Liam Healy @@ -114,6 +128,11 @@ Mono libcurl-net by Jeffrey Phillips http://sourceforge.net/projects/libcurl-net/ +node.js + + node-libcurl by Jonathan Cardoso Machado + https://github.com/JCMais/node-libcurl + Object-Pascal Free Pascal, Delphi and Kylix binding written by Christophe Espern. diff --git a/docs/BUGS b/docs/BUGS index 8cbad04..c0c6fa8 100644 --- a/docs/BUGS +++ b/docs/BUGS @@ -6,39 +6,56 @@ BUGS + 1. Bugs + 1.1 There are still bugs + 1.2 Where to report + 1.3 What to report + 1.4 libcurl problems + 1.5 Who will fix the problems + 1.6 How to get a stack trace + 1.7 Bugs in libcurl bindings + +============================================================================== + +1.1 There are still bugs + Curl and libcurl have grown substantially since the beginning. At the time - of writing (July 2007), there are about 47000 lines of source code, and by - the time you read this it has probably grown even more. + of writing (January 2013), there are about 83,000 lines of source code, and + by the time you read this it has probably grown even more. Of course there are lots of bugs left. And lots of misfeatures. To help us make curl the stable and solid product we want it to be, we need bug reports and bug fixes. -WHERE TO REPORT +1.2 Where to report If you can't fix a bug yourself and submit a fix for it, try to report an as detailed report as possible to a curl mailing list to allow one of us to - have a go at a solution. You should also post your bug/problem at curl's bug - tracking system over at + have a go at a solution. You can optionally also post your bug/problem at + curl's bug tracking system over at - http://sourceforge.net/bugs/?group_id=976 + https://sourceforge.net/p/curl/bugs/ - (but please read the sections below first before doing that) + Please read the rest of this document below first before doing that! Also, + you need to login to your sourceforge account before being able to submit a + bug report (necessary evil done to avoid spam). If you feel you need to ask around first, find a suitable mailing list and post there. The lists are available on http://curl.haxx.se/mail/ -WHAT TO REPORT +1.3 What to report When reporting a bug, you should include all information that will help us understand what's wrong, what you expected to happen and how to repeat the bad behavior. You therefore need to tell us: - - your operating system's name and version number (uname -a under a unix - is fine) + - your operating system's name and version number + - what version of curl you're using (curl -V is fine) + - versions of the used libraries that libcurl is built to use + - what URL you were working with (if possible), at least which protocol and anything and everything else you think matters. Tell us what you @@ -59,7 +76,48 @@ WHAT TO REPORT The address and how to subscribe to the mailing lists are detailed in the MANUAL file. -HOW TO GET A STACK TRACE +1.4 libcurl problems + + First, post all libcurl problems on the curl-library mailing list. + + When you've written your own application with libcurl to perform transfers, + it is even more important to be specific and detailed when reporting bugs. + + Tell us the libcurl version and your operating system. Tell us the name and + version of all relevant sub-components like for example the SSL library + you're using and what name resolving your libcurl uses. If you use SFTP or + SCP, the libssh2 version is relevant etc. + + Showing us a real source code example repeating your problem is the best way + to get our attention and it will greatly increase our chances to understand + your problem and to work on a fix (if we agree it truly is a problem). + + Lots of problems that appear to be libcurl problems are actually just abuses + of the libcurl API or other malfunctions in your applications. It is advised + that you run your problematic program using a memory debug tool like + valgrind or similar before you post memory-related or "crashing" problems to + us. + +1.5 Who will fix the problems + + If the problems or bugs you describe are considered to be bugs, we want to + have the problems fixed. + + There are no developers in the curl project that are paid to work on bugs. + All developers that take on reported bugs do this on a voluntary basis. We + do it out of an ambition to keep curl and libcurl excellent products and out + of pride. + + But please do not assume that you can just lump over something to us and it + will then magically be fixed after some given time. Most often we need + feedback and help to understand what you've experienced and how to repeat a + problem. Then we may only be able to assist YOU to debug the problem and to + track down the proper fix. + + We get reports from many people every month and each report can take a + considerable amount of time to really go to the bottom with. + +1.6 How to get a stack trace First, you must make sure that you compile all sources with -g and that you don't 'strip' the final executable. Try to avoid optimizing the code as @@ -79,3 +137,12 @@ HOW TO GET A STACK TRACE crashed. Include the stack trace with your detailed bug report. It'll help a lot. +1.7 Bugs in libcurl bindings + + There will of course pop up bugs in libcurl bindings. You should then + primarily approach the team that works on that particular binding and see + what you can do to help them fix the problem. + + If you suspect that the problem exists in the underlying libcurl, then + please convert your program over to plain C and follow the steps outlined + above. diff --git a/docs/CONTRIBUTE b/docs/CONTRIBUTE index db03c42..83fa420 100644 --- a/docs/CONTRIBUTE +++ b/docs/CONTRIBUTE @@ -34,6 +34,7 @@ 3.3 How To Make a Patch without git 3.4 How to get your changes into the main sources 3.5 Write good commit messages + 3.6 Please don't send pull requests ============================================================================== @@ -78,9 +79,9 @@ 1.3 What To Read Source code, the man pages, the INTERNALS document, TODO, KNOWN_BUGS, the - most recent CHANGES. Just lurking on the libcurl mailing list is gonna give - you a lot of insights on what's going on right now. Asking there is a good - idea too. + most recent CHANGES. Just lurking on the curl-library mailing list is gonna + give you a lot of insights on what's going on right now. Asking there is a + good idea too. 2. cURL Coding Standards @@ -97,12 +98,12 @@ 2.2 Indenting - Please try using the same indenting levels and bracing method as all the - other code already does. It makes the source code a lot easier to follow if - all of it is written using the same style. We don't ask you to like it, we - just ask you to follow the tradition! ;-) This mainly means: 2-level indents, - using spaces only (no tabs) and having the opening brace ({) on the same line - as the if() or while(). + Use the same indenting levels and bracing method as all the other code + already does. It makes the source code easier to follow if all of it is + written using the same style. We don't ask you to like it, we just ask you to + follow the tradition! ;-) This mainly means: 2-level indents, using spaces + only (no tabs) and having the opening brace ({) on the same line as the if() + or while(). Also note that we use if() and while() with no space before the parenthesis. @@ -150,6 +151,9 @@ description exactly what they correct so that all patches can be selectively applied by the maintainer or other interested parties. + Also, separate patches enable bisecting much better when we track problems in + the future. + 2.9 Patch Against Recent Sources Please try to get the latest available sources to make your patches @@ -177,6 +181,10 @@ test case that verifies that it works as documented. If every submitter also posts a few test cases, it won't end up as a heavy burden on a single person! + If you don't have test cases or perhaps you have done something that is very + hard to write tests for, do explain exactly how you have otherwise tested and + verified your changes. + 3. Pushing Out Your Changes 3.1 Write Access to git Repository @@ -189,7 +197,7 @@ 3.2 How To Make a Patch with git - You need to first checkout the respository: + You need to first checkout the repository: git clone git://github.com/bagder/curl.git @@ -211,7 +219,7 @@ commit. Now send those patches off to the curl-library list. You can of course opt to - do that with the 'get send-email' command. + do that with the 'git send-email' command. 3.3 How To Make a Patch without git @@ -233,47 +241,74 @@ For unix-like operating systems: - http://www.gnu.org/software/patch/patch.html - http://www.gnu.org/directory/diffutils.html + http://www.gnu.org/software/patch/patch.html + http://www.gnu.org/directory/diffutils.html For Windows: - http://gnuwin32.sourceforge.net/packages/patch.htm - http://gnuwin32.sourceforge.net/packages/diffutils.htm + http://gnuwin32.sourceforge.net/packages/patch.htm + http://gnuwin32.sourceforge.net/packages/diffutils.htm 3.4 How to get your changes into the main sources - 1. Submit your patch to the curl-library mailing list + Submit your patch to the curl-library mailing list. - 2. Make the patch against as recent sources as possible. + Make the patch against as recent sources as possible. - 3. Make sure your patch adheres to the source indent and coding style of - already existing source code. Failing to do so just adds more work for me. + Make sure your patch adheres to the source indent and coding style of already + existing source code. Failing to do so just adds more work for me. - 4. Respond to replies on the list about the patch and answer questions and/or - fix nits/flaws. This is very important. I will take lack of replies as a - sign that you're not very anxious to get your patch accepted and I tend to - simply drop such patches from my TODO list. + Respond to replies on the list about the patch and answer questions and/or + fix nits/flaws. This is very important. I will take lack of replies as a sign + that you're not very anxious to get your patch accepted and I tend to simply + drop such patches from my TODO list. - 5. If you've followed the above mentioned paragraphs and your patch still - hasn't been incorporated after some weeks, consider resubmitting it to the - list. + If you've followed the above paragraphs and your patch still hasn't been + incorporated after some weeks, consider resubmitting it to the list. 3.5 Write good commit messages - A short guide to how to do fine commit messages in the curl project. + A short guide to how to do fine commit messages in the curl project. + + ---- start ---- + [area]: [short line describing the main effect] + + [separate the above single line from the rest with an empty line] + + [full description, no wider than 72 columns that describe as much as + possible as to why this change is made, and possibly what things + it fixes and everything else that is related] + + [Bug: link to source of the report or more related discussion] + [Reported-by: John Doe - credit the reporter] + [whatever-else-by: credit all helpers, finders, doers] + ---- stop ---- + + Don't forget to use commit --author="" if you commit someone else's work, + and make sure that you have your own user and email setup correctly in git + before you commit + +3.6 Please don't send pull requests + + With git (and especially github) it is easy and tempting to send a pull + request to one or more people in the curl project to have changes merged this + way instead of mailing patches to the curl-library mailing list. + + We don't like that. We want them mailed for these reasons: - ---- start ---- - [area]: [short line describing the main effect] + - Peer review. Anyone and everyone on the list can review, comment and + improve on the patch. Pull requests limit this ability. - [separate the above single line from the rest with an empty line] + - Anyone can merge the patch into their own trees for testing and those who + have push rights can push it to the main repo. It doesn't have to be anyone + the patch author knows beforehand. - [full description, no wider than 72 columns that describe as much as - possible as to why this change is made, and possibly what things - it fixes and everything else that is related] - ---- stop ---- + - Commit messages can be tweaked and changed if merged locally instead of + using github. Merges directly on github requires the changes to be perfect + already, which they seldom are. - Don't forget to use commit --author="" if you commit someone else's work, - and make sure that you have your own user and email setup correctly in git - before you commit + - Merges on github prevents rebases and even enforces --no-ff which is a git + style we don't otherwise use in the project + However: once patches have been reviewed and deemed fine on list they are + perfectly OK to be pulled from a published git tree. diff --git a/docs/DISTRO-DILEMMA b/docs/DISTRO-DILEMMA index 108e6ba..71186a2 100644 --- a/docs/DISTRO-DILEMMA +++ b/docs/DISTRO-DILEMMA @@ -59,7 +59,7 @@ GnuTLS OpenSSL does. Now, you can build and distribute an TLS/SSL capable libcurl without including any Original BSD licensed code. - I believe Debian is the first (only?) distro that provides libcurl/GnutTLS + I believe Debian is the first (only?) distro that provides libcurl/GnuTLS packages. yassl @@ -72,20 +72,20 @@ GnuTLS vs OpenSSL vs yassl While these three libraries offer similar features, they are not equal. libcurl does not (yet) offer a standardized stable ABI if you decide to - switch from using libcurl-openssl to libcurl-gnutls or vice versa. The GnuTLS + switch from using libcurl-openssl to libcurl-gnutls or vice-versa. The GnuTLS and yassl support is very recent in libcurl and it has not been tested nor used very extensively, while the OpenSSL equivalent code has been used and thus matured since 1999. GnuTLS - - LGPL licensened + - LGPL licensed - supports SRP - lacks SSLv2 support - lacks MD2 support (used by at least some CA certs) - lacks the crypto functions libcurl uses for NTLM OpenSSL - - Original BSD licensened + - Original BSD licensed - lacks SRP - supports SSLv2 - older and more widely used diff --git a/docs/FAQ b/docs/FAQ index bed125e..043b7bb 100644 --- a/docs/FAQ +++ b/docs/FAQ @@ -1,4 +1,3 @@ -Updated: October 6, 2010 (http://curl.haxx.se/docs/faq.html) _ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | @@ -36,7 +35,7 @@ FAQ 3.2 How do I tell curl to resume a transfer? 3.3 Why doesn't my posting using -F work? 3.4 How do I tell curl to run custom FTP commands? - 3.5 How can I disable the Pragma: nocache header? + 3.5 How can I disable the Accept: */* header? 3.6 Does curl support ASP, XML, XHTML or HTML version Y? 3.7 Can I use curl to delete/rename a file through FTP? 3.8 How do I tell curl to follow HTTP redirects? @@ -51,6 +50,9 @@ FAQ 3.17 How do I list the root dir of an FTP server? 3.18 Can I use curl to send a POST/PUT and not wait for a response? 3.19 How do I get HTTP from a host using a specific IP address? + 3.20 How to SFTP from my user's home directory? + 3.21 Protocol xxx not supported or disabled in libcurl + 3.22 curl -X gives me HTTP problems 4. Running Problems 4.1 Problems connecting to SSL servers. @@ -78,6 +80,7 @@ FAQ 4.17 Non-functional connect timeouts on Windows 4.18 file:// URLs containing drive letters (Windows, NetWare) 4.19 Why doesn't cURL return an error when the network cable is unplugged? + 4.20 curl doesn't return error for HTTP non-200 responses! 5. libcurl Issues 5.1 Is libcurl thread-safe? @@ -95,6 +98,9 @@ FAQ 5.13 How do I stop an ongoing transfer? 5.14 Using C++ non-static functions for callbacks? 5.15 How do I get an FTP directory listing? + 5.16 I want a different time-out! + 5.17 Can I write a server with libcurl? + 5.18 Does libcurl use threads? 6. License Issues 6.1 I have a GPL program, can I use the libcurl library? @@ -107,7 +113,7 @@ FAQ 7. PHP/CURL Issues 7.1 What is PHP/CURL? - 7.2 Who write PHP/CURL? + 7.2 Who wrote PHP/CURL? 7.3 Can I perform multiple requests using the same handle? ============================================================================== @@ -128,15 +134,15 @@ FAQ A free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, - POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP. + POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, - kerberos, HTTP form based upload, proxies, cookies, user+password + Kerberos, SPNEGO, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more! libcurl is highly portable, it builds and works identically on numerous - platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, - IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac + platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HP-UX, + IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOS, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS, Symbian, OSF, Android, Minix, IBM TPF and more... @@ -150,7 +156,10 @@ FAQ Since curl uses libcurl, curl supports the same wide range of common Internet protocols that libcurl does. - We pronounce curl and cURL with an initial k sound: [kurl]. + We pronounce curl with an initial k sound. It rhymes with words like girl + and earl. This is a short WAV file to help you: + + http://media.merriam-webster.com/soundc11/c/curl0001.wav There are numerous sub-projects and related projects that also use the word curl in the project names in various combinations, but you should take @@ -198,27 +207,25 @@ FAQ better. We do however believe in a few rules when it comes to the future of curl: - * Curl -- the command line tool -- is to remain a non-graphical command line - tool. If you want GUIs or fancy scripting capabilities, you should look - for another tool that uses libcurl. + Curl -- the command line tool -- is to remain a non-graphical command line + tool. If you want GUIs or fancy scripting capabilities, you should look for + another tool that uses libcurl. - * We do not add things to curl that other small and available tools already - do very fine at the side. Curl's output is fine to pipe into another - program or redirect to another file for the next program to interpret. + We do not add things to curl that other small and available tools already do + very fine at the side. Curl's output is fine to pipe into another program or + redirect to another file for the next program to interpret. - * We focus on protocol related issues and improvements. If you wanna do more - magic with the supported protocols than curl currently does, chances are - big we will agree. If you wanna add more protocols, we may very well - agree. + We focus on protocol related issues and improvements. If you wanna do more + magic with the supported protocols than curl currently does, chances are big + we will agree. If you wanna add more protocols, we may very well agree. - * If you want someone else to make all the work while you wait for us to - implement it for you, that is not a very friendly attitude. We spend a - considerable time already on maintaining and developing curl. In order to - get more out of us, you should consider trading in some of your time and - efforts in return. + If you want someone else to make all the work while you wait for us to + implement it for you, that is not a very friendly attitude. We spend a + considerable time already on maintaining and developing curl. In order to + get more out of us, you should consider trading in some of your time and + efforts in return. - * If you write the code, chances are bigger that it will get into curl - faster. + If you write the code, chances are bigger that it will get into curl faster. 1.5 Who makes curl? @@ -235,16 +242,16 @@ FAQ 1.6 What do you get for making curl? Project cURL is entirely free and open. No person gets paid for developing - (lib)curl on full or even part time. We do this voluntarily on our spare - time. Occasionally companies pay individual developers to work on curl, but - that's up to each company and developer. It is not controlled by nor - supervised in any way by the project. + curl on full time. We do this voluntarily, mostly on spare time. + Occasionally companies pay individual developers to work on curl, but that's + up to each company and developer. It is not controlled by nor supervised in + any way by the project. We still get help from companies. Haxx provides web site, bandwidth, mailing - lists etc and sourceforge.net hosts project services we take advantage from, - like the bug tracker. Also again, some companies have sponsored certain - parts of the development in the past and I hope some will continue to do so - in the future. + lists etc, sourceforge.net hosts project services we take advantage from, + like the bug tracker and github hosts the primary git repository. Also + again, some companies have sponsored certain parts of the development in the + past and I hope some will continue to do so in the future. If you want to support our project, consider a donation or a banner-program or even better: by helping us coding, documenting, testing etc. @@ -259,7 +266,7 @@ FAQ Our project name curl has been in effective use since 1998. We were not the first computer related project to use the name "curl" and do not claim any - first-hand rights to the name. + rights to the name. We recognize that we will be living in parallel with curl.com and wish them every success. @@ -304,49 +311,17 @@ FAQ We don't know how many users that downloaded or installed curl and then never use it. - Some facts to use as input to the math: - - curl packages are downloaded from the curl.haxx.se and mirrors over a - million times per year. curl is installed by default with most Linux - distributions. curl is installed by default with Mac OS X. curl and libcurl - as used by numerous applications that include libcurl binaries in their - distribution packages (like Adobe Acrobat Reader and Google Earth). - - More than a hundred known named companies use curl in commercial - environments and products and more than a hundred known named open source - projects depend on (lib)curl. - - In a poll on the curl web site mid-2005, more than 50% of the 300+ answers - estimated a user base of one million users or more. + In May 2012 Daniel did a counting game and came up with a number that may + be completely wrong or somewhat accurate. Over 500 million! - In March 2005, the "Linux Counter project" estimated a total Linux user base - of some 29 millions, while Netcraft detected some 4 million "active" Linux - based web servers. A guess is that a fair amount of these Linux - installations have curl installed. - - The Debian project maintains statistics on packages installed by people - who have voluntarily run their package counting application. In mid-2010, - libcurl3 was installed on over 55000 such systems (62% of reporting systems) - and was one of the 320 most popular installed packages (out of about 107000 - possible packages). - - All this taken together, there is no doubt that there are millions of - (lib)curl users. - - http://curl.haxx.se/docs/companies.html - http://curl.haxx.se/docs/programs.html - http://curl.haxx.se/libcurl/using/apps.html - http://counter.li.org/estimates.php - http://news.netcraft.com/archives/2005/03/14/fedora_makes_rapid_progress.html - http://qa.debian.org/popcon.php?package=curl + See http://daniel.haxx.se/blog/2012/05/16/300m-users/ 1.11 Why don't you update ca-bundle.crt - The ca-bundle.crt file that used to be bundled with curl was very outdated - (it being last modified year 2000 should tell) and must be replaced with a - much more modern and up-to-date version by anyone who wants to verify peers - anyway. It is no longer provided, the last curl release that shipped it was - curl 7.18.0. + The ca cert bundle that used to shipped with curl was very outdated and must + be replaced with an up-to-date version by anyone who wants to verify + peers. It is no longer provided by curl. The last curl release ever that + shipped a ca cert bundle was curl 7.18.0. In the cURL project we've decided not to attempt to keep this file updated (or even present anymore) since deciding what to add to a ca cert bundle is @@ -446,19 +421,24 @@ FAQ 2.2 Does curl work/build with other SSL libraries? - Curl has been written to use OpenSSL, GnuTLS, yassl, NSS or PolarSSL, - although there should not be many problems using a different library. If - anyone does "port" curl to use a different SSL library, we are of course - very interested in getting the patch! + Curl has been written to use a generic SSL function layer internally, and + that SSL functionality can then be provided by one out of many different SSL + backends. + + curl can be built to use one of the following SSL alternatives: OpenSSL, + GnuTLS, yassl, NSS, PolarSSL, axTLS, Secure Transport (native iOS/OS X), + WinSSL (native Windows) or GSKit (native IBM i). They all have their pros + and cons, and we try to maintain a comparison of them here: + http://curl.haxx.se/docs/ssl-compared.html 2.3 Where can I find a copy of LIBEAY32.DLL? That is an OpenSSL binary built for Windows. - Curl uses OpenSSL to do the SSL stuff. The LIBEAY32.DLL is what curl needs - on a windows machine to do https://. Check out the curl web site to find - accurate and up-to-date pointers to recent OpenSSL DLLs and other binary - packages. + Curl can be built with OpenSSL to do the SSL stuff. The LIBEAY32.DLL is then + what curl needs on a windows machine to do https:// etc. Check out the curl + web site to find accurate and up-to-date pointers to recent OpenSSL DLLs and + other binary packages. 2.4 Does curl support SOCKS (RFC 1928) ? @@ -470,9 +450,13 @@ FAQ 3.1 curl: (1) SSL is disabled, https: not supported If you get this output when trying to get anything from a https:// server, - it means that the configure script couldn't find all libs and include files - it requires for SSL to work. If the configure script fails to find them, - curl is simply built without SSL support. + it means that the instance of curl/libcurl that you're using was built + without support for this protocol. + + This could've happened if the configure script that was run at build time + couldn't find all libs and include files curl requires for SSL to work. If + the configure script fails to find them, curl is simply built without SSL + support. To get the https:// support into a curl that was previously built but that reports that https:// is not supported, you should dig through the document @@ -485,15 +469,14 @@ FAQ 3.2 How do I tell curl to resume a transfer? Curl supports resumed transfers both ways on both FTP and HTTP. - Try the -C option. 3.3 Why doesn't my posting using -F work? You can't simply use -F or -d at your choice. The web server that will - receive your post assumes one of the formats. If the form you're trying to - "fake" sets the type to 'multipart/form-data', then and only then you must - use the -F type. In all the most common cases, you should use -d which then + receive your post expects one of the formats. If the form you're trying to + submit uses the type 'multipart/form-data', then and only then you must use + the -F type. In all the most common cases, you should use -d which then causes a posting with the type 'application/x-www-form-urlencoded'. This is described in some detail in the MANUAL and TheArtOfHttpScripting @@ -507,22 +490,23 @@ FAQ You can tell curl to perform optional commands both before and/or after a file transfer. Study the -Q/--quote option. - Since curl is used for file transfers, you don't use curl to just perform - FTP commands without transferring anything. Therefore you must always specify - a URL to transfer to/from even when doing custom FTP commands. + Since curl is used for file transfers, you don't normally use curl to + perform FTP commands without transferring anything. Therefore you must + always specify a URL to transfer to/from even when doing custom FTP + commands, or use -I which implies the "no body" option sent to libcurl. - 3.5 How can I disable the Pragma: nocache header? + 3.5 How can I disable the Accept: */* header? You can change all internally generated headers by adding a replacement with the -H/--header option. By adding a header with empty contents you safely - disable that one. Use -H "Pragma:" to disable that specific header. + disable that one. Use -H "Accept:" to disable that specific header. 3.6 Does curl support ASP, XML, XHTML or HTML version Y? To curl, all contents are alike. It doesn't matter how the page was - generated. It may be ASP, PHP, Perl, shell-script, SSI or plain - HTML-files. There's no difference to curl and it doesn't even know what kind - of language that generated the page. + generated. It may be ASP, PHP, Perl, shell-script, SSI or plain HTML + files. There's no difference to curl and it doesn't even know what kind of + language that generated the page. See also item 3.14 regarding javascript. @@ -559,6 +543,12 @@ FAQ install and use them, in the libcurl section of the curl web site: http://curl.haxx.se/libcurl/ + All the various bindings to libcurl are made by other projects and people, + outside of the cURL project. The cURL project itself only produces libcurl + with its plain C API. If you don't find anywhere else to ask you can ask + about bindings on the curl-library list too, but be prepared that people on + that list may not know anything about bindings. + In October 2009, there were interfaces available for the following languages: Ada95, Basic, C, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Ferite, Gambas, glib/GTK+, Haskell, ILE/RPG, Java, Lisp, Lua, Mono, .NET, @@ -633,15 +623,15 @@ FAQ Some workarounds usually suggested to overcome this Javascript dependency: - - Depending on the Javascript complexity, write up a script that - translates it to another language and execute that. + Depending on the Javascript complexity, write up a script that translates it + to another language and execute that. - - Read the Javascript code and rewrite the same logic in another language. + Read the Javascript code and rewrite the same logic in another language. - - Implement a Javascript interpreter, people have successfully used the - Mozilla Javascript engine in the past. + Implement a Javascript interpreter, people have successfully used the + Mozilla Javascript engine in the past. - - Ask your admins to stop this, for a static proxy setup or similar. + Ask your admins to stop this, for a static proxy setup or similar. 3.15 Can I do recursive fetches with curl? @@ -657,34 +647,38 @@ FAQ There are three different kinds of "certificates" to keep track of when we talk about using SSL-based protocols (HTTPS or FTPS) using curl or libcurl. - - Client certificate. The server you communicate may require that you can - provide this in order to prove that you actually are who you claim to be. - If the server doesn't require this, you don't need a client certificate. - - A client certificate is always used together with a private key, and the - private key has a pass phrase that protects it. - - - Server certificate. The server you communicate with has a server - certificate. You can and should verify this certificate to make sure that - you are truly talking to the real server and not a server impersonating - it. - - - Certificate Authority certificate ("CA cert"). You often have several CA - certs in a CA cert bundle that can be used to verify a server certificate - that was signed by one of the authorities in the bundle. curl does not - come with a CA cert bundle but most curl installs provide one. You can - also override the default. - - The server certificate verification process is made by using a Certificate - Authority certificate ("CA cert") that was used to sign the server - certificate. Server certificate verification is enabled by default in curl - and libcurl and is often the reason for problems as explained in FAQ entry - 4.12 and the SSLCERTS document - (http://curl.haxx.se/docs/sslcerts.html). Server certificates that are - "self-signed" or otherwise signed by a CA that you do not have a CA cert - for, cannot be verified. If the verification during a connect fails, you - are refused access. You then need to explicitly disable the verification - to connect to the server. + CLIENT CERTIFICATE + + The server you communicate may require that you can provide this in order to + prove that you actually are who you claim to be. If the server doesn't + require this, you don't need a client certificate. + + A client certificate is always used together with a private key, and the + private key has a pass phrase that protects it. + + SERVER CERTIFICATE + + The server you communicate with has a server certificate. You can and should + verify this certificate to make sure that you are truly talking to the real + server and not a server impersonating it. + + CERTIFICATE AUTHORITY CERTIFICATE ("CA cert") + + You often have several CA certs in a CA cert bundle that can be used to + verify a server certificate that was signed by one of the authorities in the + bundle. curl does not come with a CA cert bundle but most curl installs + provide one. You can also override the default. + + The server certificate verification process is made by using a Certificate + Authority certificate ("CA cert") that was used to sign the server + certificate. Server certificate verification is enabled by default in curl + and libcurl and is often the reason for problems as explained in FAQ entry + 4.12 and the SSLCERTS document + (http://curl.haxx.se/docs/sslcerts.html). Server certificates that are + "self-signed" or otherwise signed by a CA that you do not have a CA cert + for, cannot be verified. If the verification during a connect fails, you are + refused access. You then need to explicitly disable the verification to + connect to the server. 3.17 How do I list the root dir of an FTP server? @@ -715,6 +709,68 @@ FAQ curl --header "Host: www.example.com" http://127.0.0.1/ + You can also opt to add faked host name entries to curl with the --resolve + option. That has the added benefit that things like redirects will also work + properly. The above operation would instead be done as: + + curl --resolve www.example.com:80:127.0.0.1 http://www.example.com/ + + 3.20 How to SFTP from my user's home directory? + + Contrary to how FTP works, SFTP and SCP URLs specify the exact directory to + work with. It means that if you don't specify that you want the user's home + directory, you get the actual root directory. + + To specify a file in your user's home directory, you need to use the correct + URL syntax which for sftp might look similar to: + + curl -O -u user:password sftp://example.com/~/file.txt + + and for SCP it is just a different protocol prefix: + + curl -O -u user:password scp://example.com/~/file.txt + + 3.21 Protocol xxx not supported or disabled in libcurl + + When passing on a URL to curl to use, it may respond that the particular + protocol is not supported or disabled. The particular way this error message + is phrased is because curl doesn't make a distinction internally of whether + a particular protocol is not supported (i.e. never got any code added that + knows how to speak that protocol) or if it was explicitly disabled. curl can + be built to only support a given set of protocols, and the rest would then + be disabled or not supported. + + Note that this error will also occur if you pass a wrongly spelled protocol + part as in "htpt://example.com" or as in the less evident case if you prefix + the protocol part with a space as in " http://example.com/". + + 3.22 curl -X gives me HTTP problems + + In normal circumstances, -X should hardly ever be used. + + By default you use curl without explicitly saying which request method to + use when the URL identifies a HTTP transfer. If you just pass in a URL like + "curl http://example.com" it will use GET. If you use -d or -F curl will use + POST, -I will cause a HEAD and -T will make it a PUT. + + If for whatever reason you're not happy with these default choices that curl + does for you, you can override those request methods by specifying -X + [WHATEVER]. This way you can for example send a DELETE by doing "curl -X + DELETE [URL]". + + It is thus pointless to do "curl -XGET [URL]" as GET would be used + anyway. In the same vein it is pointless to do "curl -X POST -d data + [URL]"... But you can make a fun and somewhat rare request that sends a + request-body in a GET request with something like "curl -X GET -d data + [URL]" + + Note that -X doesn't change curl's behavior. It only modifies the actual + string sent in the request. + + Accordingly, by using -XPOST on a command line that for example would follow + a 303 redirect, you will effectively prevent curl from behaving + correctly. Be aware. + 4. Running Problems @@ -745,12 +801,13 @@ FAQ curl 'http://www.altavista.com/cgi-bin/query?text=yes&q=curl' - In Windows, the standard DOS shell treats the %-symbol specially and you - need to use TWO %-symbols for each single one you want to use in the URL. + In Windows, the standard DOS shell treats the percent sign specially and you + need to use TWO percent signs for each single one you want to use in the + URL. - Also note that if you want the literal %-symbol to be part of the data you - pass in a POST using -d/--data you must encode it as '%25' (which then also - needs the %-symbol doubled on Windows machines). + If you want a literal percent sign to be part of the data you pass in a POST + using -d/--data you must encode it as '%25' (which then also needs the + percent sign doubled on Windows machines). 4.3 How can I use {, }, [ or ] to specify multiple URLs? @@ -792,7 +849,7 @@ FAQ 4.5.3 "403 Forbidden" - The server understood the request, but is refusing to fulfill it. + The server understood the request, but is refusing to fulfil it. Authorization will not help and the request SHOULD NOT be repeated. 4.5.4 "404 Not Found" @@ -863,8 +920,8 @@ FAQ 4.9 Curl can't authenticate to the server that requires NTLM? - NTLM support requires OpenSSL, GnuTLS, NSS or Microsoft Windows libraries at - build-time to provide this functionality. + NTLM support requires OpenSSL, GnuTLS, NSS, Secure Transport, or Microsoft + Windows libraries at build-time to provide this functionality. NTLM is a Microsoft proprietary protocol. Proprietary formats are evil. You should not use such ones. @@ -919,13 +976,13 @@ FAQ 4.14 Redirects work in browser but not with curl! curl supports HTTP redirects fine (see item 3.8). Browsers generally support - at least two other ways to perform directs that curl does not: + at least two other ways to perform redirects that curl does not: - - Meta tags. You can write a HTML tag that will cause the browser to - redirect to another given URL after a certain time. + Meta tags. You can write a HTML tag that will cause the browser to redirect + to another given URL after a certain time. - - Javascript. You can write a Javascript program embedded in a HTML page - that redirects the browser to another given URL. + Javascript. You can write a Javascript program embedded in a HTML page that + redirects the browser to another given URL. There is no way to make curl follow these redirects. You must either manually figure out what the page is set to do, or you write a script that @@ -1006,11 +1063,11 @@ FAQ 4.19 Why doesn't cURL return an error when the network cable is unplugged? - Unplugging the cable is not an error situation. The TCP/IP protocol stack + Unplugging a cable is not an error situation. The TCP/IP protocol stack was designed to be fault tolerant, so even though there may be a physical break somewhere the connection shouldn't be affected, just possibly delayed. Eventually, the physical break will be fixed or the data will be - re-routed around the physical problem. + re-routed around the physical problem through another path. In such cases, the TCP/IP stack is responsible for detecting when the network connection is irrevocably lost. Since with some protocols it is @@ -1028,6 +1085,36 @@ FAQ falls too low, and --connect-timeout and --max-time can be used to put an overall timeout on the connection phase or the entire transfer. + A libcurl-using application running in a known physical environment (e.g. + an embedded device with only a single network connection) may want to act + immediately if its lone network connection goes down. That can be achieved + by having the application monitor the network connection on its own using an + OS-specific mechanism, then signalling libcurl to abort (see also item 5.13). + + 4.20 curl doesn't return error for HTTP non-200 responses! + + Correct. Unless you use -f (--fail). + + When doing HTTP transfers, curl will perform exactly what you're asking it + to do and if successful it will not return an error. You can use curl to + test your web server's "file not found" page (that gets 404 back), you can + use it to check your authentication protected web pages (that get a 401 + back) and so on. + + The specific HTTP response code does not constitute a problem or error for + curl. It simply sends and delivers HTTP as you asked and if that worked, + everything is fine and dandy. The response code is generally providing more + higher level error information that curl doesn't care about. The error was + not in the HTTP transfer. + + If you want your command line to treat error codes in the 400 and up range + as errors and thus return a non-zero value and possibly show an error + message, curl has a dedicated option for that: -f (CURLOPT_FAILONERROR in + libcurl speak). + + You can also use the -w option and the variable %{response_code} to extract + the exact response code that was return in the response. + 5. libcurl Issues @@ -1037,7 +1124,15 @@ FAQ We have written the libcurl code specifically adjusted for multi-threaded programs. libcurl will use thread-safe functions instead of non-safe ones if - your system has such. + your system has such. Note that you must never share the same handle in + multiple threads. + + libcurl's implementation of timeouts might use signals (depending on what it + was built to use for name resolving), and signal handling is generally not + thread-safe. Multi-threaded Applicationss that call libcurl from different + threads (on different handles) might want to use CURLOPT_NOSIGNAL, e.g.: + + curl_easy_setopt(handle, CURLOPT_NOSIGNAL, true); If you use a OpenSSL-powered libcurl in a multi-threaded environment, you need to provide one or two locking functions: @@ -1117,6 +1212,11 @@ FAQ libcurl will reuse connections for all transfers that are made using the same libcurl handle. + When you use the easy interface, the connection cache is kept within the + easy handle. If you instead use the multi interface, the connection cache + will be kept within the multi handle and will be shared among all the easy + handles that are used within the same multi handle. + 5.7 Link errors when building libcurl on Windows! You need to make sure that your project, and all the libraries (both static @@ -1138,13 +1238,12 @@ FAQ the import libraries below. These are the libraries produced by the various lib/Makefile.* files: - Target: static lib. import lib for libcurl*.dll. - ----------------------------------------------------------- - MingW: libcurl.a libcurldll.a - MSVC (release): libcurl.lib libcurl_imp.lib - MSVC (debug): libcurld.lib libcurld_imp.lib - Borland: libcurl.lib libcurl_imp.lib - + Target: static lib. import lib for libcurl*.dll. + ----------------------------------------------------------- + MingW: libcurl.a libcurldll.a + MSVC (release): libcurl.lib libcurl_imp.lib + MSVC (debug): libcurld.lib libcurld_imp.lib + Borland: libcurl.lib libcurl_imp.lib 5.8 libcurl.so.X: open failed: No such file or directory @@ -1175,24 +1274,23 @@ FAQ you want to change name resolver function you must rebuild libcurl and tell it to use a different function. - - The non-ipv6 resolver that can use one out of four host name resolve calls + - The non-IPv6 resolver that can use one out of four host name resolve calls (depending on what your system supports): - A - gethostbyname() - B - gethostbyname_r() with 3 arguments - C - gethostbyname_r() with 5 arguments - D - gethostbyname_r() with 6 arguments + A - gethostbyname() + B - gethostbyname_r() with 3 arguments + C - gethostbyname_r() with 5 arguments + D - gethostbyname_r() with 6 arguments - - The ipv6-resolver that uses getaddrinfo() + - The IPv6-resolver that uses getaddrinfo() - The c-ares based name resolver that uses the c-ares library for resolves. - Using this offers asynchronous name resolves but it currently has no IPv6 - support. + Using this offers asynchronous name resolves. - The threaded resolver (default option on Windows). It uses: - A - gethostbyname() on plain ipv4 hosts - B - getaddrinfo() on ipv6-enabled hosts + A - gethostbyname() on plain IPv4 hosts + B - getaddrinfo() on IPv6 enabled hosts Also note that libcurl never resolves or reverse-lookups addresses given as pure numbers, such as 127.0.0.1 or ::1. @@ -1210,30 +1308,32 @@ FAQ 5.12 Can I make libcurl fake or hide my real IP address? - No. libcurl operates on a higher level than so. Besides, faking IP address - would imply sending IP packages with a made-up source address, and then you - normally get a problem with intercepting the packages sent back as they - would then not be routed to you! + No. libcurl operates on a higher level. Besides, faking IP address would + imply sending IP packet with a made-up source address, and then you normally + get a problem with receiving the packet sent back as they would then not be + routed to you! If you use a proxy to access remote sites, the sites will not see your local IP address but instead the address of the proxy. Also note that on many networks NATs or other IP-munging techniques are used that makes you see and use a different IP address locally than what the - remote server will see you coming from. + remote server will see you coming from. You may also consider using + http://www.torproject.org . 5.13 How do I stop an ongoing transfer? - There are several ways, but none of them are instant. There is no function - you can call from another thread or similar that will stop it immediately. - Instead you need to make sure that one of the callbacks you use return an - appropriate value that will stop the transfer. - - Suitable callbacks that you can do this with include the progress callback, - the read callback and the write callback. + With the easy interface you make sure to return the correct error code from + one of the callbacks, but none of them are instant. There is no function you + can call from another thread or similar that will stop it immediately. + Instead, you need to make sure that one of the callbacks you use returns an + appropriate value that will stop the transfer. Suitable callbacks that you + can do this with include the progress callback, the read callback and the + write callback. - If you're using the multi interface, you also stop a transfer by removing - the particular easy handle from the multi stack. + If you're using the multi interface, you can also stop a transfer by + removing the particular easy handle from the multi stack at any moment you + think the transfer is done or when you wish to abort the transfer. 5.14 Using C++ non-static functions for callbacks? @@ -1243,14 +1343,14 @@ FAQ member function that is passed a pointer to the class: // f is the pointer to your object. - static YourClass::staticFunction(void *buffer, size_t sz, size_t n, void *f) + static YourClass::func(void *buffer, size_t sz, size_t n, void *f) { // Call non-static member function. static_cast(f)->nonStaticFunction(); } // This is how you pass pointer to the static function: - curl_easy_setopt(hcurl, CURLOPT_WRITEFUNCTION, YourClass:staticFunction); + curl_easy_setopt(hcurl, CURLOPT_WRITEFUNCTION, YourClass:func); curl_easy_setopt(hcurl, CURLOPT_WRITEDATA, this); 5.15 How do I get an FTP directory listing? @@ -1275,6 +1375,44 @@ FAQ libcurl since 7.21.0 also provide the ability to specify a wildcard to download multiple files from one FTP directory. + 5.16 I want a different time-out! + + Time and time again users realize that CURLOPT_TIMEOUT and + CURLOPT_CONNECTIMEOUT are not sufficiently advanced or flexible to cover all + the various use cases and scenarios applications end up with. + + libcurl offers many more ways to time-out operations. A common alternative + is to use the CURLOPT_LOW_SPEED_LIMIT and CURLOPT_LOW_SPEED_TIME options to + specify the lowest possible speed to accept before to consider the transfer + timed out. + + The most flexible way is by writing your own time-out logic and using + CURLOPT_PROGRESSFUNCTION (perhaps in combination with other callbacks) and + use that to figure out exactly when the right condition is met when the + transfer should get stopped. + + 5.17 Can I write a server with libcurl? + + No. libcurl offers no functions or building blocks to build any kind of + internet protocol server. libcurl is only a client-side library. For server + libraries, you need to continue your search elsewhere but there exist many + good open source ones out there for most protocols you could possibly want a + server for. And there are really good stand-alone ones that have been tested + and proven for many years. There's no need for you to reinvent them! + + 5.18 Does libcurl use threads? + + Put simply: no, libcurl will execute in the same thread you call it in. All + callbacks will be called in the same thread as the one you call libcurl in. + + If you want to avoid your thread to be blocked by the libcurl call, you make + sure you use the non-blocking API which will do transfers asynchronously - + but still in the same single thread. + + libcurl will potentially internally use threads for name resolving, if it + was built to work like that, but in those cases it'll create the child + threads by itself and they will only be used and then killed internally by + libcurl and never exposed to the outside. 6. License Issues @@ -1345,12 +1483,16 @@ FAQ You do not have to reveal or make public any changes to the libcurl source code. - You do not have to reveal or make public that you are using libcurl within + You do not have to broadcast to the world that you are using libcurl within your app. - As can be seen here: http://curl.haxx.se/docs/companies.html and - elsewhere, more and more companies are discovering the power - of libcurl and take advantage of it even in commercial environments. + All we ask is that you disclose "the copyright notice and this permission + notice" somewhere. Most probably like in the documentation or in the section + where other third party dependencies already are mentioned and acknowledged. + + As can be seen here: http://curl.haxx.se/docs/companies.html and elsewhere, + more and more companies are discovering the power of libcurl and take + advantage of it even in commercial environments. 7. PHP/CURL Issues @@ -1366,7 +1508,7 @@ FAQ CURL (often using all caps) or sometimes ext/curl, but both cause much confusion to users which in turn gives us a higher question load. - 7.2 Who write PHP/CURL? + 7.2 Who wrote PHP/CURL? PHP/CURL is a module that comes with the regular PHP package. It depends and uses libcurl, so you need to have libcurl installed properly first before diff --git a/docs/FEATURES b/docs/FEATURES index 32589e1..a674002 100644 --- a/docs/FEATURES +++ b/docs/FEATURES @@ -13,27 +13,29 @@ curl tool - multiple file upload on a single command line - custom maximum transfer rate - redirectable stderr + - metalink support (*13) -libcurl supports +libcurl - full URL syntax with no length limit - custom maximum download time - custom least download speed acceptable - custom output result after completion - guesses protocol from host name unless specified - uses .netrc - - progress bar/time specs while downloading + - progress bar with time statistics while downloading - "standard" proxy environment variables support - compiles on win32 (reported builds on 40+ operating systems) - selectable network interface for outgoing traffic - IPv6 support on unix and Windows - - persistant connections - - socks5 support - - supports user name + password in proxy environment variables + - persistent connections + - socks 4 + 5 support, with or without local name resolving + - supports user name and password in proxy environment variables - operations through proxy "tunnel" (using CONNECT) - - supports large files (>2GB and >4GB) both upload/download - - replacable memory functions (malloc, free, realloc, etc) + - support for large files (>2GB and >4GB) during upload and download + - replaceable memory functions (malloc, free, realloc, etc) - asynchronous name resolving (*6) - both a push and a pull style interface + - international domain names (*11) HTTP - HTTP/1.1 compliant (optionally uses 1.0) @@ -43,8 +45,8 @@ HTTP - POST - Pipelining - multipart formpost (RFC1867-style) - - authentication: Basic, Digest, NTLM(*9), GSS-Negotiate/Negotiate(*3) and - SPNEGO (*4) to server and proxy + - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3) + to server and proxy - resume (both GET and PUT) - follow redirects - maximum amount of redirects to follow @@ -53,14 +55,16 @@ HTTP - reads/writes the netscape cookie file format - custom headers (replace/remove internally generated headers) - custom user-agent string - - custom referer string + - custom referrer string - range - proxy authentication - time conditions - via http-proxy - retrieve file modification date - Content-Encoding support for deflate and gzip - - "Transfer-Encoding: chunked" support for "uploads" + - "Transfer-Encoding: chunked" support in uploads + - data compression (*12) + - HTTP/2 (*5) HTTPS (*1) - (all the HTTP features) @@ -68,12 +72,12 @@ HTTPS (*1) - verify server certificate - via http-proxy - select desired encryption - - force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1) + - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1) FTP - download - authentication - - kerberos4 (*5), kerberos5 (*3) + - Kerberos 5 (*14) - active/passive using PORT, EPRT, PASV or EPSV - single file size information (compare to HTTP HEAD) - 'type=' URL support @@ -93,7 +97,7 @@ FTP FTPS (*1) - implicit ftps:// support that use SSL on both connections - - explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp:// + - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp:// connection to use SSL for both or one of the connections SCP (*8) @@ -104,7 +108,8 @@ SFTP (*8) - with custom commands sent before/after the transfer TFTP - - download / upload + - download + - upload TELNET - connection negotiation @@ -119,18 +124,83 @@ DICT FILE - URL support - - "uploads" + - upload - resume +SMB + - SMBv1 over TCP and SSL + - download + - upload + - authentication with NTLMv1 + +SMTP + - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9) and Kerberos 5 + (*4) + - send e-mails + - mail from support + - mail size support + - mail auth support for trusted server-to-server relaying + - multiple recipients + - via http-proxy + +SMTPS (*1) + - implicit smtps:// support + - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL + - via http-proxy + +POP3 + - authentication: Clear Text, APOP and SASL + - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9) and + Kerberos 5 (*4) + - list e-mails + - retrieve e-mails + - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via + custom requests + - via http-proxy + +POP3S (*1) + - implicit pop3s:// support + - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL + - via http-proxy + +IMAP + - authentication: Clear Text and SASL + - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9) and + Kerberos 5 (*4) + - list the folders of a mailbox + - select a mailbox with support for verifying the UIDVALIDITY + - fetch e-mails with support for specifying the UID and SECTION + - upload e-mails via the append command + - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS, + STORE, COPY and UID via custom requests + - via http-proxy + +IMAPS (*1) + - implicit imaps:// support + - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL + - via http-proxy + FOOTNOTES ========= - *1 = requires OpenSSL, GnuTLS, NSS, yassl or PolarSSL + *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native + Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i) *2 = requires OpenLDAP - *3 = requires a GSSAPI-compliant library, such as Heimdal or similar. - *4 = requires FBopenssl - *5 = requires a krb4 library, such as the MIT one or similar. + *3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or + SSPI (native Windows) + *4 = requires a GSS-API implementation, however, only Windows SSPI is + currently supported + *5 = requires nghttp2 and possibly a recent TLS library *6 = requires c-ares - *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1 + *7 = requires OpenSSL, NSS, GSKit, WinSSL or Secure Transport; GnuTLS, for + example, only supports SSLv3 and TLSv1 *8 = requires libssh2 - *9 = requires OpenSSL, GnuTLS, NSS or yassl + *9 = requires OpenSSL, GnuTLS, NSS, yassl, Secure Transport or SSPI (native + Windows) + *10 = requires any of the SSL libraries in (*1) above other than axTLS, which + does not support SSLv3 + *11 = requires libidn or Windows + *12 = requires libz + *13 = requires libmetalink, and either an Apple or Microsoft operating + system, or OpenSSL, or GnuTLS, or NSS + *14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) diff --git a/docs/HISTORY b/docs/HISTORY index e04fb53..e76e5b9 100644 --- a/docs/HISTORY +++ b/docs/HISTORY @@ -4,22 +4,30 @@ | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| - How cURL Became Like This +How cURL Became Like This +========================= - -In the second half of 1997, Daniel Stenberg came up with the idea to make +Towards the end of 1996, Daniel Stenberg was spending time writing an IRC bot +for an Amiga related channel on EFnet. He then came up with the idea to make currency-exchange calculations available to Internet Relay Chat (IRC) users. All the necessary data are published on the Web; he just needed to automate their retrieval. Daniel simply adopted an existing command-line open-source tool, httpget, that -Brazilian Rafael Sagula had written. After a few minor adjustments, it did -just what he needed. +Brazilian Rafael Sagula had written and recently release version 0.1 of. After +a few minor adjustments, it did just what he needed. + +1997 +---- + +HttpGet 1.0 was released on April 8th 1997 with brand new HTTP proxy support. + +We soon found and fixed support for getting currencies over GOPHER. Once FTP +download support was added, the name of the project was changed and urlget 2.0 +was released in August 1997. The http-only days were already passed. -Soon, he found currencies on a GOPHER site, so support for that had to go in, -and not before long FTP download support was added as well. The name of the -project was changed to urlget to better fit what it actually did now, since -the http-only days were already passed. +1998 +---- The project slowly grew bigger. When upload capabilities were added and the name once again was misleading, a second name change was made and on March 20, @@ -33,33 +41,39 @@ was revealed to us much later.) SSL support was added, powered by the SSLeay library. -August 1998, first announcement of curl on freshmeat.net. +August, first announcement of curl on freshmeat.net. -October 1998, with the curl 4.9 release and the introduction of cookie -support, curl was no longer released under the GPL license. Now we're at 4000 -lines of code, we switched over to the MPL license to restrict the effects of +October, with the curl 4.9 release and the introduction of cookie support, +curl was no longer released under the GPL license. Now we're at 4000 lines of +code, we switched over to the MPL license to restrict the effects of "copyleft". -November 1998, configure script and reported successful compiles on several +November, configure script and reported successful compiles on several major operating systems. The never-quite-understood -F option was added and curl could now simulate quite a lot of a browser. TELNET support was added. Curl 5 was released in December 1998 and introduced the first ever curl man page. People started making Linux RPM packages out of it. -January 1999, DICT support added. +1999 +---- + +January, DICT support added. OpenSSL took over where SSLeay was abandoned. -May 1999, first Debian package. +May, first Debian package. -August 1999, LDAP:// and FILE:// support added. The curl web site gets 1300 -visits weekly. +August, LDAP:// and FILE:// support added. The curl web site gets 1300 visits +weekly. Released curl 6.0 in September. 15000 lines of code. -December 28 1999, added the project on Sourceforge and started using its -services for managing the project. +December 28, added the project on Sourceforge and started using its services +for managing the project. + +2000 +---- Spring 2000, major internal overhaul to provide a suitable library interface. The first non-beta release was named 7.1 and arrived in August. This offered @@ -67,19 +81,22 @@ the easy interface and turned out to be the beginning of actually getting other software and programs to get based on and powered by libcurl. Almost 20000 lines of code. -August 2000, the curl web site gets 4000 visits weekly. +August, the curl web site gets 4000 visits weekly. The PHP guys adopted libcurl already the same month, when the first ever third party libcurl binding showed up. CURL has been a supported module in PHP since the release of PHP 4.0.2. This would soon get followers. More than 16 different bindings exist at the time of this writing. -September 2000, kerberos4 support was added. +September, kerberos4 support was added. + +In November started the work on a test suite for curl. It was later re-written +from scratch again. The libcurl major SONAME number was set to 1. -In November 2000 started the work on a test suite for curl. It was later -re-written from scratch again. The libcurl major SONAME number was set to 1. +2001 +---- -January 2001, Daniel released curl 7.5.2 under a new license again: MIT (or +January, Daniel released curl 7.5.2 under a new license again: MIT (or MPL). The MIT license is extremely liberal and can be used combined with GPL in other projects. This would finally put an end to the "complaints" from people involved in GPLed projects that previously were prohibited from using @@ -92,17 +109,20 @@ code. The libcurl major SONAME number was bumped to 2 due to this overhaul. The first experimental ftps:// support was added in March 2001. -August 2001. curl is bundled in Mac OS X, 10.1. It was already becoming more -and more of a standard utility of Linux distributions and a regular in the BSD +August. curl is bundled in Mac OS X, 10.1. It was already becoming more and +more of a standard utility of Linux distributions and a regular in the BSD ports collections. The curl web site gets 8000 visits weekly. Curl Corporation contacted Daniel to discuss "the name issue". After Daniel's reply, they have never since got in touch again. -September 2001, libcurl 7.9 introduces cookie jar and curl_formadd(). During -the forthcoming 7.9.x releases, we introduced the multi interface slowly and +September, libcurl 7.9 introduces cookie jar and curl_formadd(). During the +forthcoming 7.9.x releases, we introduced the multi interface slowly and without much whistles. -June 2002, the curl web site gets 13000 visits weekly. curl and libcurl is +2002 +---- + +June, the curl web site gets 13000 visits weekly. curl and libcurl is 35000 lines of code. Reported successful compiles on more than 40 combinations of CPUs and operating systems. @@ -111,134 +131,152 @@ impossible. Around 5000 downloaded packages each week from the main site gives a hint, but the packages are mirrored extensively, bundled with numerous OS distributions and otherwise retrieved as part of other software. -September 2002, with the release of curl 7.10 it is released under the MIT -license only. +September, with the release of curl 7.10 it is released under the MIT license +only. + +2003 +---- -January 2003. Started working on the distributed curl tests. The autobuilds. +January. Started working on the distributed curl tests. The autobuilds. -February 2003, the curl site averages at 20000 visits weekly. At any given -moment, there's an average of 3 people browsing the curl.haxx.se site. +February, the curl site averages at 20000 visits weekly. At any given moment, +there's an average of 3 people browsing the curl.haxx.se site. Multiple new authentication schemes are supported: Digest (May), NTLM (June) and Negotiate (June). -November 2003: curl 7.10.8 is released. 45000 lines of code. ~55000 unique -visitors to the curl.haxx.se site. Five official web mirrors. +November: curl 7.10.8 is released. 45000 lines of code. ~55000 unique visitors +to the curl.haxx.se site. Five official web mirrors. -December 2003, full-fledged SSL for FTP is supported. +December, full-fledged SSL for FTP is supported. -January 2004: curl 7.11.0 introduced large file support. +2004 +---- -June 2004: +January: curl 7.11.0 introduced large file support. - curl 7.12.0 introduced IDN support. 10 official web mirrors. +June: curl 7.12.0 introduced IDN support. 10 official web mirrors. - This release bumped the major SONAME to 3 due to the removal of the - curl_formparse() function +This release bumped the major SONAME to 3 due to the removal of the +curl_formparse() function -August 2004: - Curl and libcurl 7.12.1 +August: Curl and libcurl 7.12.1 - Public curl release number: 82 - Releases counted from the very beginning: 109 - Available command line options: 96 - Available curl_easy_setopt() options: 120 - Number of public functions in libcurl: 36 - Amount of public web site mirrors: 12 - Number of known libcurl bindings: 26 + Public curl release number: 82 + Releases counted from the very beginning: 109 + Available command line options: 96 + Available curl_easy_setopt() options: 120 + Number of public functions in libcurl: 36 + Amount of public web site mirrors: 12 + Number of known libcurl bindings: 26 -April 2005: +2005 +---- - GnuTLS can now optionally be used for the secure layer when curl is built. +April. GnuTLS can now optionally be used for the secure layer when curl is +built. -September 2005: +September: TFTP support was added. - TFTP support was added. +More than 100,000 unique visitors of the curl web site. 25 mirrors. - More than 100,000 unique visitors of the curl web site. 25 mirrors. +December: security vulnerability: libcurl URL Buffer Overflow -December 2005: +2006 +---- - security vulnerability: libcurl URL Buffer Overflow +January. We dropped support for Gopher. We found bugs in the implementation +that turned out having been introduced years ago, so with the conclusion that +nobody had found out in all this time we removed it instead of fixing it. -January 2006: +March: security vulnerability: libcurl TFTP Packet Buffer Overflow - We dropped support for Gopher. We found bugs in the implementation that - turned out having been introduced years ago, so with the conclusion that - nobody had found out in all this time we removed it instead of fixing it. +April: Added the multi_socket() API -March 2006: +September: The major SONAME number for libcurl was bumped to 4 due to the +removal of ftp third party transfer support. - security vulnerability: libcurl TFTP Packet Buffer Overflow +November: Added SCP and SFTP support -April 2006: +2007 +---- - Added the multi_socket() API +February: Added support for the Mozilla NSS library to do the SSL/TLS stuff -September 2006: +July: security vulnerability: libcurl GnuTLS insufficient cert verification - The major SONAME number for libcurl was bumped to 4 due to the removal of - ftp third party transfer support. +2008 +---- -November 2006: +November: - Added SCP and SFTP support + Command line options: 128 + curl_easy_setopt() options: 158 + Public functions in libcurl: 58 + Known libcurl bindings: 37 + Contributors: 683 -February 2007: + 145,000 unique visitors. >100 GB downloaded. - Added support for the Mozilla NSS library to do the SSL/TLS stuff +2009 +---- -July 2007: +March: security vulnerability: libcurl Arbitrary File Access - security vulnerability: libcurl GnuTLS insufficient cert verification +August: security vulnerability: libcurl embedded zero in cert name -November 2008: +December: Added support for IMAP, POP3 and SMTP - Command line options: 128 - curl_easy_setopt() options: 158 - Public functions in libcurl: 58 - Known libcurl bindings: 37 - Contributors: 683 +2010 +---- - 145,000 unique visitors. >100 GB downloaded. +January: Added support for RTSP -March 2009: +February: security vulnerability: libcurl data callback excessive length - security vulnerability: libcurl Arbitrary File Access +March: The project switched over to use git (hosted by github) instead of CVS +for source code control -August 2009: +May: Added support for RTMP - security vulnerability: libcurl embedded zero in cert name +Added support for PolarSSL to do the SSL/TLS stuff -December 2009: +August: - Added support for IMAP, POP3 and SMTP + Public curl releases: 117 + Command line options: 138 + curl_easy_setopt() options: 180 + Public functions in libcurl: 58 + Known libcurl bindings: 39 + Contributors: 808 -January 2010: + Gopher support added (re-added actually) - Added support for RTSP +2012 +---- -February 2010: + July: Added support for Schannel (native Windows TLS backend) and Darwin SSL + (Native Mac OS X and iOS TLS backend). - security vulnerability: libcurl data callback excessive length + Supports metalink -March 2010: + October: SSH-agent support. - The project switched over to use git instead of CVS for source code control +2013 +---- -May 2010: + February: Cleaned up internals to always uses the "multi" non-blocking + approach internally and only expose the blocking API with a wrapper. - Added support for RTMP + September: First small steps on supporting HTTP/2 with nghttp2. - Added support for PolarSSL to do the SSL/TLS stuff + October: Removed krb4 support. -August 2010: + December: Happy eyeballs. - Public curl releases: 117 - Command line options: 138 - curl_easy_setopt() options: 180 - Public functions in libcurl: 58 - Known libcurl bindings: 39 - Contributors: 808 +2014 +---- - Gopher support added (re-added actually) + March: first real release supporting HTTP/2 + + September: Web site had 245,000 unique visitors and served 236GB data diff --git a/docs/HTTP-COOKIES b/docs/HTTP-COOKIES new file mode 100644 index 0000000..818e161 --- /dev/null +++ b/docs/HTTP-COOKIES @@ -0,0 +1,123 @@ +Updated: July 3, 2012 (http://curl.haxx.se/docs/http-cookies.html) + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + + +HTTP Cookies + + 1. HTTP Cookies + 1.1 Cookie overview + 1.2 Cookies saved to disk + 1.3 Cookies with curl the command line tool + 1.4 Cookies with libcurl + 1.5 Cookies with javascript + +============================================================================== + +1. HTTP Cookies + + 1.1 Cookie overview + + HTTP cookies are pieces of 'name=contents' snippets that a server tells the + client to hold and then the client sends back those the server on subsequent + requests to the same domains/paths for which the cookies were set. + + Cookies are either "session cookies" which typically are forgotten when the + session is over which is often translated to equal when browser quits, or + the cookies aren't session cookies they have expiration dates after which + the client will throw them away. + + Cookies are set to the client with the Set-Cookie: header and are sent to + servers with the Cookie: header. + + For a very long time, the only spec explaining how to use cookies was the + original Netscape spec from 1994: http://curl.haxx.se/rfc/cookie_spec.html + + In 2011, RFC6265 (http://www.ietf.org/rfc/rfc6265.txt) was finally published + and details how cookies work within HTTP. + + 1.2 Cookies saved to disk + + Netscape once created a file format for storing cookies on disk so that they + would survive browser restarts. curl adopted that file format to allow + sharing the cookies with browsers, only to see browsers move away from that + format. Modern browsers no longer use it, while curl still does. + + The netscape cookie file format stores one cookie per physical line in the + file with a bunch of associated meta data, each field separated with + TAB. That file is called the cookiejar in curl terminology. + + When libcurl saves a cookiejar, it creates a file header of its own in which + there is a URL mention that will link to the web version of this document. + + 1.3 Cookies with curl the command line tool + + curl has a full cookie "engine" built in. If you just activate it, you can + have curl receive and send cookies exactly as mandated in the specs. + + Command line options: + + -b, --cookie + + tell curl a file to read cookies from and start the cookie engine, or if + it isn't a file it will pass on the given string. -b name=var works and so + does -b cookiefile. + + -j, --junk-session-cookies + + when used in combination with -b, it will skip all "session cookies" on + load so as to appear to start a new cookie session. + + -c, --cookie-jar + + tell curl to start the cookie engine and write cookies to the given file + after the request(s) + + 1.4 Cookies with libcurl + + libcurl offers several ways to enable and interface the cookie engine. These + options are the ones provided by the native API. libcurl bindings may offer + access to them using other means. + + CURLOPT_COOKIE + + Is used when you want to specify the exact contents of a cookie header to + send to the server. + + CURLOPT_COOKIEFILE + + Tell libcurl to activate the cookie engine, and to read the initial set of + cookies from the given file. Read-only. + + CURLOPT_COOKIEJAR + + Tell libcurl to activate the cookie engine, and when the easy handle is + closed save all known cookies to the given cookiejar file. Write-only. + + CURLOPT_COOKIELIST + + Provide detailed information about a single cookie to add to the internal + storage of cookies. Pass in the cookie as a HTTP header with all the + details set, or pass in a line from a netscape cookie file. This option + can also be used to flush the cookies etc. + + CURLINFO_COOKIELIST + + Extract cookie information from the internal cookie storage as a linked + list. + + 1.5 Cookies with javascript + + These days a lot of the web is built up by javascript. The webbrowser loads + complete programs that render the page you see. These javascript programs + can also set and access cookies. + + Since curl and libcurl are plain HTTP clients without any knowledge of or + capability to handle javascript, such cookies will not be detected or used. + + Often, if you want to mimic what a browser does on such web sites, you can + record web browser HTTP traffic when using such a site and then repeat the + cookie operations using curl or libcurl. diff --git a/docs/INSTALL b/docs/INSTALL index 9a5844f..30dec53 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -14,9 +14,16 @@ Installing Binary Packages binary package. This document describes how to compile, build and install curl and libcurl from source code. -UNIX +Building from git +================= + + If you get your code off a git repository, see the GIT-INFO file in the + root directory for specific instructions on how to proceed. + +Unix ==== - A normal unix installation is made in three or four steps (after you've + + A normal Unix installation is made in three or four steps (after you've unpacked the source archive): ./configure @@ -109,18 +116,6 @@ UNIX ./configure --disable-thread - To build curl with kerberos4 support enabled, curl requires the krb4 libs - and headers installed. You can then use a set of options to tell - configure where those are: - - --with-krb4-includes[=DIR] Specify location of kerberos4 headers - --with-krb4-libs[=DIR] Specify location of kerberos4 libs - --with-krb4[=DIR] where to look for Kerberos4 - - In most cases, /usr/athena is the install prefix and then it works with - - ./configure --with-krb4=/usr/athena - If you're a curl developer and use gcc, you might want to enable more debug options with the --enable-debug option. @@ -129,27 +124,31 @@ UNIX default. But if you want to alter it, you can select how to deal with each individual library. - To build with GnuTLS support instead of OpenSSL for SSL/TLS, note that - you need to use both --without-ssl and --with-gnutls. + To build with GnuTLS for SSL/TLS, use both --without-ssl and + --with-gnutls. + + To build with Cyassl for SSL/TLS, use both --without-ssl and + --with-cyassl. - To build with yassl support instead of OpenSSL or GnuTLS, you must build - yassl with its OpenSSL emulation enabled and point to that directory root - with configure --with-ssl. + To build with NSS for SSL/TLS, use both --without-ssl and --with-nss. - To build with NSS support instead of OpenSSL for SSL/TLS, note that - you need to use both --without-ssl and --with-nss. + To build with PolarSSL for SSL/TLS, use both --without-ssl and + --with-polarssl. - To build with PolarSSL support instead of OpenSSL for SSL/TLS, note that - you need to use both --without-ssl and --with-polarssl. + To build with axTLS for SSL/TLS, use both --without-ssl and --with-axtls. - To get GSSAPI support, build with --with-gssapi and have the MIT or - Heimdal Kerberos 5 packages installed. + To build with GSS-API support, use --with-gssapi and have the MIT Kerberos + or Heimdal packages installed. To get support for SCP and SFTP, build with --with-libssh2 and have libssh2 0.16 or later installed. + To get Metalink support, build with --with-libmetalink and have the + libmetalink packages installed. + SPECIAL CASES ------------- + Some versions of uClibc require configuring with CPPFLAGS=-D_GNU_SOURCE=1 to get correct large file support. @@ -158,7 +157,6 @@ UNIX ./configure CC=owcc AR="$WATCOM/binl/wlib" AR_FLAGS=-q \ RANLIB=/bin/true STRIP="$WATCOM/binl/wstrip" CFLAGS=-Wextra - Win32 ===== @@ -188,6 +186,8 @@ Win32 first to rebuild every single library your app uses as well as your app using the debug multithreaded dynamic C runtime. + If you get linkage errors read section 5.7 of the FAQ document. + MingW32 ------- @@ -208,9 +208,9 @@ Win32 adjust as necessary. It is also possible to override these paths with environment variables, for example: - set ZLIB_PATH=c:\zlib-1.2.3 - set OPENSSL_PATH=c:\openssl-0.9.8k - set LIBSSH2_PATH=c:\libssh2-1.1 + set ZLIB_PATH=c:\zlib-1.2.8 + set OPENSSL_PATH=c:\openssl-0.9.8zc + set LIBSSH2_PATH=c:\libssh2-1.4.3 ATTENTION: if you want to build with libssh2 support you have to use latest version 0.17 - previous versions will NOT work with 7.17.0 and later! @@ -229,12 +229,11 @@ Win32 If you want to enable LDAPS support then set LDAPS=1. - - optional MingW32-built OpenlDAP SDK available from: + - optional MingW32-built OpenLDAP SDK available from: http://www.gknw.net/mirror/openldap/ - optional recent Novell CLDAP SDK available from: http://developer.novell.com/ndk/cldap.htm - Cygwin ------ @@ -252,8 +251,10 @@ Win32 MSVC 6 caveats -------------- - If you use MSVC 6 it is required that you use the February 2003 edition PSDK: - http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm + If you use MSVC 6 it is required that you use the February 2003 edition of + the 'Platform SDK' which can be downloaded from: + + http://www.microsoft.com/en-us/download/details.aspx?id=12261 Building any software with MSVC 6 without having PSDK installed is just asking for trouble down the road once you have released it, you might notice @@ -261,8 +262,6 @@ Win32 choice of static vs dynamic runtime and third party libraries. Anyone using software built in such way will at some point regret having done so. - When someone uses MSVC 6 without PSDK he is using a compiler back from 1998. - If the compiler has been updated with the installation of a service pack as those mentioned in http://support.microsoft.com/kb/194022 the compiler can be safely used to read source code, translate and make it object code. @@ -272,13 +271,6 @@ Win32 header files and libraries with bugs and security issues which have already been addressed and fixed long time ago. - In order to make use of the updated system headers and fixed libraries - for MSVC 6, it is required that 'Platform SDK', PSDK from now onwards, - is installed. The specific PSDK that must be installed for MSVC 6 is the - February 2003 edition, which is the latest one supporting the MSVC 6 compiler, - this PSDK is also known as 'Windows Server 2003 PSDK' and can be downloaded - from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm - So, building curl and libcurl with MSVC 6 without PSDK is absolutely discouraged for the benefit of anyone using software built in such environment. And it will not be supported in any way, as we could just @@ -311,7 +303,7 @@ Win32 documentation on how to compile zlib. Define the ZLIB_PATH environment variable to the location of zlib.h and zlib.lib, for example: - set ZLIB_PATH=c:\zlib-1.2.3 + set ZLIB_PATH=c:\zlib-1.2.8 Then run 'nmake vc-zlib' in curl's root directory. @@ -325,7 +317,7 @@ Win32 Before running nmake define the OPENSSL_PATH environment variable with the root/base directory of OpenSSL, for example: - set OPENSSL_PATH=c:\openssl-0.9.8k + set OPENSSL_PATH=c:\openssl-0.9.8zc Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in curl's root directory. 'nmake vc-ssl' will create a libcurl static and dynamic @@ -340,64 +332,61 @@ Win32 at runtime. Run 'nmake vc-ssl-zlib' to build with both ssl and zlib support. - MSVC 6 IDE - ---------- + MSVC IDE + -------- - A minimal VC++ 6.0 reference workspace (vc6curl.dsw) is available with the - source distribution archive to allow proper building of the two included - projects, the libcurl library and the curl tool. + A fairly comprehensive set of Visual Studio project files are available for + v6.0 through v12.0 and are located in the projects folder to allow proper + building of both the libcurl library as well as the curl tool. - 1) Open the vc6curl.dsw workspace with MSVC6's IDE. - 2) Select 'Build' from top menu. - 3) Select 'Batch Build' from dropdown menu. - 4) Make sure that the eight project configurations are 'checked'. - 5) Click on the 'Build' button. - 6) Once the eight project configurations are built you are done. + For more information about these projects and building via Visual Studio + please see the README file located in the projects folder. - Dynamic and static libcurl libraries are built in debug and release flavours, - and can be located each one in its own subdirectory, DLL-Debug, DLL-Release, - LIB-Debug and LIB-Release, all of them below the 'lib' subdirectory. + Borland C++ compiler + -------------------- - In the same way four curl executables are created, each using its respective - library. The resulting curl executables are located in its own subdirectory, - DLL-Debug, DLL-Release, LIB-Debug and LIB-Release, below the 'src' subdir. + Ensure that your build environment is properly set up to use the compiler + and associated tools. PATH environment variable must include the path to + bin subdirectory of your compiler installation, eg: c:\Borland\BCC55\bin - These reference VC++ 6.0 configurations are generated using the dynamic CRT. + It is advisable to set environment variable BCCDIR to the base path of + the compiler installation. - Intentionally, these reference VC++ 6.0 projects and configurations don't use - third party libraries, such as OpenSSL or Zlib, to allow proper compilation - and configuration for all new users without further requirements. + set BCCDIR=c:\Borland\BCC55 - If you need something more 'involved' you might adjust them for your own use, - or explore the world of makefiles described above 'MSVC from command line'. + In order to build a plain vanilla version of curl and libcurl run the + following command from curl's root directory: - Borland C++ compiler - --------------------- + make borland - compile openssl + To build curl and libcurl with zlib and OpenSSL support set environment + variables ZLIB_PATH and OPENSSL_PATH to the base subdirectories of the + already built zlib and OpenSSL libraries and from curl's root directory + run command: - Make sure you include the paths to curl/include and openssl/inc32 in - your bcc32.cnf file + make borland-ssl-zlib - eg : -I"c:\Bcc55\include;c:\path_curl\include;c:\path_openssl\inc32" + libcurl library will be built in 'lib' subdirectory while curl tool + is built in 'src' subdirectory. In order to use libcurl library it is + advisable to modify compiler's configuration file bcc32.cfg located + in c:\Borland\BCC55\bin to reflect the location of libraries include + paths for example the '-I' line could result in something like: - Check to make sure that all of the sources listed in lib/Makefile.b32 - are present in the /path_to_curl/lib directory. (Check the src - directory for missing ones.) + -I"c:\Borland\BCC55\include;c:\curl\include;c:\openssl\inc32" - Make sure the environment variable "BCCDIR" is set to the install - location for the compiler eg : c:\Borland\BCC55 + bcc3.cfg '-L' line could also be modified to reflect the location of + of libcurl library resulting for example: - command line: - make -f /path_to_curl/lib/Makefile-ssl.b32 + -L"c:\Borland\BCC55\lib;c:\curl\lib;c:\openssl\out32" - compile simplessl.c with appropriate links + In order to build sample program 'simple.c' from the docs\examples + subdirectory run following command from mentioned subdirectory: - c:\curl\docs\examples\> bcc32 -L c:\path_to_curl\lib\libcurl.lib - -L c:\borland\bcc55\lib\psdk\ws2_32.lib - -L c:\openssl\out32\libeay32.lib - -L c:\openssl\out32\ssleay32.lib - simplessl.c + bcc32 simple.c libcurl.lib cw32mt.lib + + In order to build sample program simplessl.c an SSL enabled libcurl + is required, as well as the OpenSSL libeay32.lib and ssleay32.lib + libraries. OTHER MSVC IDEs --------------- @@ -409,7 +398,6 @@ Win32 Make the sources in the src/ drawer be a "win32 console application" project. Name it curl. - Disabling Specific Protocols in Win32 builds -------------------------------------------- @@ -428,16 +416,53 @@ Win32 CURL_DISABLE_FILE disables FILE CURL_DISABLE_TFTP disables TFTP CURL_DISABLE_HTTP disables HTTP + CURL_DISABLE_IMAP disables IMAP + CURL_DISABLE_POP3 disables POP3 + CURL_DISABLE_SMTP disables SMTP - If you want to set any of these defines you have the following - possibilities: + If you want to set any of these defines you have the following options: - Modify lib/config-win32.h - - Modify lib/setup.h + - Modify lib/curl_setup.h + - Modify lib/Makefile.vc6 + - Modify the "Preprocessor Definitions" in the libcurl project + + Note: The pre-processor settings can be found using the Visual Studio IDE + under "Project -> Settings -> C/C++ -> General" in VC6 and "Project -> + Properties -> Configuration Properties -> C/C++ -> Preprocessor" in later + versions. + + Using BSD-style lwIP instead of Winsock TCP/IP stack in Win32 builds + -------------------------------------------------------------------- + + In order to compile libcurl and curl using BSD-style lwIP TCP/IP stack + it is necessary to make definition of preprocessor symbol USE_LWIPSOCK + visible to libcurl and curl compilation processes. To set this definition + you have the following alternatives: + + - Modify lib/config-win32.h and src/config-win32.h - Modify lib/Makefile.vc6 - - Add defines to Project/Settings/C/C++/General/Preprocessor Definitions - in the vc6libcurl.dsw/vc6libcurl.dsp Visual C++ 6 IDE project. + - Modify the "Preprocessor Definitions" in the libcurl project + + Note: The pre-processor settings can be found using the Visual Studio IDE + under "Project -> Settings -> C/C++ -> General" in VC6 and "Project -> + Properties -> Configuration Properties -> C/C++ -> Preprocessor" in later + versions. + + Once that libcurl has been built with BSD-style lwIP TCP/IP stack support, + in order to use it with your program it is mandatory that your program + includes lwIP header file (or another lwIP header that includes + this) before including any libcurl header. Your program does not need the + USE_LWIPSOCK preprocessor definition which is for libcurl internals only. + + Compilation has been verified with lwIP 1.4.0 and contrib-1.4.0 from: + http://download.savannah.gnu.org/releases/lwip/lwip-1.4.0.zip + http://download.savannah.gnu.org/releases/lwip/contrib-1.4.0.zip + + This BSD-style lwIP TCP/IP stack support must be considered experimental + given that it has been verified that lwIP 1.4.0 still needs some polish, + and libcurl might yet need some additional adjustment, caveat emptor. Important static libcurl usage note ----------------------------------- @@ -446,9 +471,41 @@ Win32 add '-DCURL_STATICLIB' to your CFLAGS. Otherwise the linker will look for dynamic import symbols. +Apple iOS and Mac OS X +====================== + + On recent Apple operating systems, curl can be built to use Apple's + SSL/TLS implementation, Secure Transport, instead of OpenSSL. To build with + Secure Transport for SSL/TLS, use the configure option --with-darwinssl. (It + is not necessary to use the option --without-ssl.) This feature requires iOS + 5.0 or later, or OS X 10.5 ("Leopard") or later. + + When Secure Transport is in use, the curl options --cacert and --capath and + their libcurl equivalents, will be ignored, because Secure Transport uses + the certificates stored in the Keychain to evaluate whether or not to trust + the server. This, of course, includes the root certificates that ship with + the OS. The --cert and --engine options, and their libcurl equivalents, are + currently unimplemented in curl with Secure Transport. + + For OS X users: In OS X 10.8 ("Mountain Lion"), Apple made a major + overhaul to the Secure Transport API that, among other things, added + support for the newer TLS 1.1 and 1.2 protocols. To get curl to support + TLS 1.1 and 1.2, you must build curl on Mountain Lion or later, or by + using the equivalent SDK. If you set the MACOSX_DEPLOYMENT_TARGET + environmental variable to an earlier version of OS X prior to building curl, + then curl will use the new Secure Transport API on Mountain Lion and later, + and fall back on the older API when the same curl binary is executed on + older cats. For example, running these commands in curl's directory in the + shell will build the code such that it will run on cats as old as OS X 10.6 + ("Snow Leopard") (using bash): + + export MACOSX_DEPLOYMENT_TARGET="10.6" + ./configure --with-darwinssl + make IBM OS/2 ======== + Building under OS/2 is not much different from building under unix. You need: @@ -476,15 +533,15 @@ IBM OS/2 If you're getting huge binaries, probably your makefiles have the -g in CFLAGS. - VMS === + (The VMS section is in whole contributed by the friendly Nico Baggus) Curl seems to work with FTP & HTTP other protocols are not tested. (the perl http/ftp testing server supplied as testing too cannot work on VMS because vms has no concept of fork(). [ I tried to give it a whack, but - thats of no use. + that's of no use. SSL stuff has not been ported. @@ -523,6 +580,7 @@ VMS the name can be fetched from external or internal message libraries Error code - the err codes assigned by the application Sev. - severity: Even = error, off = non error + 0 = Warning 1 = Success 2 = Error @@ -544,12 +602,13 @@ VMS Compaq C V6.2-003 on OpenVMS Alpha V7.1-1H2 So far for porting notes as of: + 13-jul-2001 N. Baggus - QNX === + (This section was graciously brought to us by David Bentham) As QNX is targeted for resource constrained environments, the QNX headers @@ -560,11 +619,12 @@ QNX A good all-round solution to this is to override the default when building libcurl, by overriding CFLAGS during configure, example - # configure CFLAGS='-DFD_SETSIZE=64 -g -O2' + # configure CFLAGS='-DFD_SETSIZE=64 -g -O2' RISC OS ======= + The library can be cross-compiled using gccsdk as follows: CC=riscos-gcc AR=riscos-ar RANLIB='riscos-ar -s' ./configure \ @@ -574,9 +634,9 @@ RISC OS where riscos-gcc and riscos-ar are links to the gccsdk tools. You can then link your program with curl/lib/.libs/libcurl.a - AmigaOS ======= + (This section was graciously brought to us by Diego Casorran) To build cURL/libcurl on AmigaOS just type 'make amiga' ... @@ -596,10 +656,11 @@ AmigaOS To enable SSL support, you need a OpenSSL native version (without ixemul), you can find a precompiled package at http://amiga.sourceforge.net/OpenSSL/ - NetWare ======= + To compile curl.nlm / libcurl.nlm you need: + - either any gcc / nlmconv, or CodeWarrior 7 PDK 4 or later. - gnu make and awk running on the platform you compile on; native Win32 versions can be downloaded from: @@ -617,7 +678,7 @@ NetWare you can find precompiled packages at: http://www.gknw.net/development/ossl/netware/ for CLIB-based builds OpenSSL 0.9.8h or later is required - earlier versions - dont support buildunf with CLIB BSD sockets. + don't support building with CLIB BSD sockets. - optional SSH2 sources (version 0.17 or later); Set a search path to your compiler, linker and tools; on Linux make @@ -638,11 +699,11 @@ NetWare Builds automatically created 8 times a day from current git are here: http://www.gknw.net/mirror/curl/autobuilds/ the status of these builds can be viewed at the autobuild table: - http://curl.haxx.se/auto/ - + http://curl.haxx.se/dev/builds.html eCos ==== + curl does not use the eCos build system, so you must first build eCos separately, then link curl to the resulting eCos library. Here's a sample configure line to do so on an x86 Linux box targeting x86: @@ -710,9 +771,9 @@ eCos config.errors = stderr; /* default errors to stderr */ - Minix ===== + curl can be compiled on Minix 3 using gcc or ACK (starting with ver. 3.1.3). Ensure that GNU gawk and bash are both installed and available in the PATH. @@ -742,9 +803,9 @@ Minix make chmem =256000 src/curl - Symbian OS ========== + The Symbian OS port uses the Symbian build system to compile. From the packages/Symbian/group/ directory, run: @@ -755,9 +816,9 @@ Symbian OS SDK doesn't include support for P.I.P.S., you will need to contact your SDK vendor to obtain that first. - VxWorks ======== + Build for VxWorks is performed using cross compilation. That means you build on Windows machine using VxWorks tools and run the built image on the VxWorks device. @@ -781,14 +842,54 @@ VxWorks As a result the libcurl.a library should be created in the 'lib' folder. To clean the build results type 'make -f ./Makefile.vxworks clean'. - Android ======= - See the build notes in the Android.mk file. + Method using the static makefile: + + - see the build notes in the packages/Android/Android.mk file. + + Method using a configure cross-compile (tested with Android NDK r7c, r8): + + - prepare the toolchain of the Android NDK for standalone use; this can + be done by invoking the script: + ./build/tools/make-standalone-toolchain.sh + which creates a usual cross-compile toolchain. Lets assume that you put + this toolchain below /opt then invoke configure with something like: + export PATH=/opt/arm-linux-androideabi-4.4.3/bin:$PATH + ./configure --host=arm-linux-androideabi [more configure options] + make + - if you want to compile directly from our GIT repo you might run into + this issue with older automake stuff: + checking host system type... + Invalid configuration `arm-linux-androideabi': + system `androideabi' not recognized + configure: error: /bin/sh ./config.sub arm-linux-androideabi failed + this issue can be fixed with using more recent versions of config.sub + and config.guess which can be obtained here: + http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree + you need to replace your system-own versions which usually can be + found in your automake folder: + find /usr -name config.sub + + Wrapper for pkg-config: + + - In order to make proper use of pkg-config so that configure is able to + find all dependencies you should create a wrapper script for pkg-config; + file /opt/arm-linux-androideabi-4.4.3/bin/arm-linux-androideabi-pkg-config: + + #!/bin/sh + SYSROOT=$(dirname ${0%/*})/sysroot + export PKG_CONFIG_DIR= + export PKG_CONFIG_LIBDIR=${SYSROOT}/usr/local/lib/pkgconfig:${SYSROOT}/usr/share/pkgconfig + export PKG_CONFIG_SYSROOT_DIR=${SYSROOT} + exec pkg-config "$@" + + also create a copy or symlink with name arm-unknown-linux-androideabi-pkg-config. CROSS COMPILE ============= + (This section was graciously brought to us by Jim Duey, with additions by Dan Fandrich) @@ -834,9 +935,9 @@ CROSS COMPILE ./configure --host=ARCH-OS - REDUCING SIZE ============= + There are a number of configure options that can be used to reduce the size of libcurl for embedded applications where binary size is an important factor. First, be sure to set the CFLAGS variable when @@ -865,14 +966,17 @@ REDUCING SIZE --disable-verbose (eliminates debugging strings and error code strings) --enable-hidden-symbols (eliminates unneeded symbols in the shared library) --without-libidn (disables support for the libidn DNS library) + --without-librtmp (disables support for RTMP) --without-ssl (disables support for SSL/TLS) --without-zlib (disables support for on-the-fly decompression) The GNU compiler and linker have a number of options that can reduce the size of the libcurl dynamic libraries on some platforms even further. Specify them by providing appropriate CFLAGS and LDFLAGS variables on the - configure command-line: - CFLAGS="-ffunction-sections -fdata-sections" \ + configure command-line, e.g. + + CFLAGS="-Os -ffunction-sections -fdata-sections \ + -fno-unwind-tables -fno-asynchronous-unwind-tables" \ LDFLAGS="-Wl,-s -Wl,-Bsymbolic -Wl,--gc-sections" Be sure also to strip debugging symbols from your binaries after @@ -882,9 +986,9 @@ REDUCING SIZE .comment section). Using these techniques it is possible to create a basic HTTP-only shared - libcurl library for i386 Linux platforms that is only 98 KiB in size, and - an FTP-only library that is 94 KiB in size (as of libcurl version 7.20.0, - using gcc 4.3.3). + libcurl library for i386 Linux platforms that is only 114 KiB in size, and + an FTP-only library that is 115 KiB in size (as of libcurl version 7.35.0, + using gcc 4.8.2). You may find that statically linking libcurl to your application will result in a lower total size than dynamically linking. @@ -896,13 +1000,12 @@ REDUCING SIZE command line. Following is a list of appropriate key words: --disable-cookies !cookies - --disable-crypto-auth !HTTP\ Digest\ auth !HTTP\ proxy\ Digest\ auth --disable-manual !--manual --disable-proxy !HTTP\ proxy !proxytunnel !SOCKS4 !SOCKS5 - PORTS ===== + This is a probably incomplete list of known hardware and operating systems that curl has been compiled for. If you know a system curl compiles and runs on, that isn't listed, please let us know! @@ -916,9 +1019,9 @@ PORTS - Alpha OpenVMS V7.1-1H2 - Alpha Tru64 v5.0 5.1 - AVR32 Linux - - ARM Android 1.5, 2.1 + - ARM Android 1.5, 2.1, 2.3, 3.2, 4.x - ARM INTEGRITY - - ARM iPhone OS + - ARM iOS - Cell Linux - Cell Cell OS - HP-PA HP-UX 9.X 10.X 11.X @@ -956,6 +1059,7 @@ PORTS - i386 HURD - i386 Haiku OS - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6 + - i386 Mac OS X - i386 MINIX 3.1 - i386 NetBSD - i386 Novell NetWare @@ -980,17 +1084,22 @@ PORTS Useful URLs =========== -c-ares http://daniel.haxx.se/projects/c-ares/license.html -GNU GSS http://www.gnu.org/software/gss/ -GnuTLS http://www.gnu.org/software/gnutls/ -Heimdal http://www.pdc.kth.se/heimdal/ -libidn http://www.gnu.org/software/libidn/ -libssh2 http://www.libssh2.org -MingW http://www.mingw.org +axTLS http://axtls.sourceforge.net/ +c-ares http://c-ares.haxx.se/ +GNU GSS http://www.gnu.org/software/gss/ +GnuTLS http://www.gnu.org/software/gnutls/ +Heimdal http://www.pdc.kth.se/heimdal/ +libidn http://www.gnu.org/software/libidn/ +libmetalink https://launchpad.net/libmetalink/ +libssh2 http://www.libssh2.org/ MIT Kerberos http://web.mit.edu/kerberos/www/dist/ -NSS http://www.mozilla.org/projects/security/pki/nss/ -OpenLDAP http://www.openldap.org -OpenSSL http://www.openssl.org -PolarSSL http://polarssl.org -yassl http://www.yassl.com/ -Zlib http://www.gzip.org/zlib/ +NSS http://www.mozilla.org/projects/security/pki/nss/ +OpenLDAP http://www.openldap.org/ +OpenSSL http://www.openssl.org/ +PolarSSL http://polarssl.org/ +yassl http://www.yassl.com/ +Zlib http://www.zlib.net/ + +MingW http://www.mingw.org/ +MinGW-w64 http://mingw-w64.sourceforge.net/ +OpenWatcom http://www.openwatcom.org/ diff --git a/docs/INSTALL.cmake b/docs/INSTALL.cmake new file mode 100644 index 0000000..b2924e6 --- /dev/null +++ b/docs/INSTALL.cmake @@ -0,0 +1,100 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + + How To Compile with CMake + +Building with CMake +========================== + This document describes how to compile, build and install curl and libcurl + from source code using the CMake build tool. To build with CMake, you will + of course have to first install CMake. The minimum required version of + CMake is specified in the file CMakeLists.txt found in the top of the curl + source tree. Once the correct version of CMake is installed you can follow + the instructions below for the platform you are building on. + + CMake builds can be configured either from the command line, or from one + of CMake's GUI's. + +Current flaws in the curl CMake build +===================================== + + Missing features in the cmake build: + + - Builds libcurl without large file support + - Can't select which SSL library to build with, only OpenSSL + - Doesn't build with SCP and SFTP support (libssh2) + - Doesn't allow different resolver backends (no c-ares build support) + - No RTMP support built + - Doesn't allow build curl and libcurl debug enabled + - Doesn't allow a custom CA bundle path + - Doesn't allow you to disable specific protocols from the build + - Doesn't find or use krb4 or GSS + - Rebuilds test files too eagerly, but still can't run the tests + + +Important notice +================== + If you got your curl sources from a distribution tarball, make sure to + delete the generic 'include/curl/curlbuild.h' file that comes with it: + rm -f curl/include/curl/curlbuild.h + + The purpose of this file is to provide reasonable definitions for systems + where autoconfiguration is not available. CMake will create its own + version of this file in its build directory. If the "generic" version + is not deleted, weird build errors may occur on some systems. + +Command Line CMake +================== + A CMake build of curl is similar to the autotools build of curl. It + consists of the following steps after you have unpacked the source. + + 1. Create an out of source build tree parallel to the curl source + tree and change into that directory + + $ mkdir curl-build + $ cd curl-build + + 2. Run CMake from the build tree, giving it the path to the top of + the curl source tree. CMake will pick a compiler for you. If you + want to specify the compile, you can set the CC environment + variable prior to running CMake. + + $ cmake ../curl + $ make + + 3. Install to default location: + + $ make install + + (The test suite does not work with the cmake build) + +ccmake +========= + CMake comes with a curses based interface called ccmake. To run ccmake on + a curl use the instructions for the command line cmake, but substitute + ccmake ../curl for cmake ../curl. This will bring up a curses interface + with instructions on the bottom of the screen. You can press the "c" key + to configure the project, and the "g" key to generate the project. After + the project is generated, you can run make. + +cmake-gui +========= + CMake also comes with a Qt based GUI called cmake-gui. To configure with + cmake-gui, you run cmake-gui and follow these steps: + 1. Fill in the "Where is the source code" combo box with the path to + the curl source tree. + 2. Fill in the "Where to build the binaries" combo box with the path + to the directory for your build tree, ideally this should not be the + same as the source tree, but a parallel directory called curl-build or + something similar. + 3. Once the source and binary directories are specified, press the + "Configure" button. + 4. Select the native build tool that you want to use. + 5. At this point you can change any of the options presented in the + GUI. Once you have selected all the options you want, click the + "Generate" button. + 6. Run the native build tool that you used CMake to generate. + diff --git a/docs/INSTALL.devcpp b/docs/INSTALL.devcpp index 7f58e4b..46d1836 100644 --- a/docs/INSTALL.devcpp +++ b/docs/INSTALL.devcpp @@ -26,7 +26,7 @@ exists for a Unix/linux command line environments. This is of little help when it comes to Windows O/S. Secondly the help that does exist for the Windows O/S focused around mingw -thru a command line argument environment. +through a command line argument environment. You may ask "Why is this a problem?" diff --git a/docs/INTERNALS b/docs/INTERNALS index 9d0bdba..f8b1b47 100644 --- a/docs/INTERNALS +++ b/docs/INTERNALS @@ -14,8 +14,9 @@ INTERNALS GIT === + All changes to the sources are committed to the git repository as soon as - they're somewhat verified to work. Changes shall be commited as independently + they're somewhat verified to work. Changes shall be committed as independently as possible so that individual changes can be easier spotted and tracked afterwards. @@ -33,28 +34,28 @@ Portability want it to remain functional and buildable with these and later versions (older versions may still work but is not what we work hard to maintain): - OpenSSL 0.9.6 + OpenSSL 0.9.7 GnuTLS 1.2 zlib 1.1.4 libssh2 0.16 c-ares 1.6.0 libidn 0.4.1 - *yassl 1.4.0 (http://curl.haxx.se/mail/lib-2008-02/0093.html) + cyassl 2.0.0 openldap 2.0 - MIT krb5 lib 1.2.4 - qsossl V5R2M0 - NSS 3.11.x + MIT Kerberos 1.2.4 + GSKit V5R3M0 + NSS 3.14.x + axTLS 1.2.7 + PolarSSL 1.3.0 Heimdal ? - - * = only partly functional, but that's due to bugs in the third party lib, not - because of libcurl code + nghttp2 0.6.0 On systems where configure runs, we aim at working on them all - if they have a suitable C compiler. On systems that don't run configure, we strive to keep curl running fine on: Windows 98 - AS/400 V5R2M0 + AS/400 V5R3M0 Symbian 9.1 Windows CE ? TPF ? @@ -67,7 +68,7 @@ Portability GNU Autoconf 2.57 GNU Automake 1.7 (we currently avoid 1.10 due to Solaris-related bugs) GNU M4 1.4 - perl 4 + perl 5.004 roffit 0.5 groff ? (any version that supports "groff -Tps -man [in] [out]") ps2pdf (gs) ? @@ -90,7 +91,7 @@ Windows vs Unix do it etc there might be reasons for applications to alter that behaviour. 3. The file descriptors for network communication and file operations are - not easily interchangable as in unix. + not easily interchangeable as in unix. We avoid this by not trying any funny tricks on file descriptors. @@ -103,9 +104,9 @@ Windows vs Unix Inside the source code, We make an effort to avoid '#ifdef [Your OS]'. All conditionals that deal with features *should* instead be in the format '#ifdef HAVE_THAT_WEIRD_FUNCTION'. Since Windows can't run configure scripts, - we maintain two curl_config-win32.h files (one in lib/ and one in src/) that - are supposed to look exactly as a curl_config.h file would have looked like on - a Windows machine! + we maintain a curl_config-win32.h file in lib directory that is supposed to + look exactly as a curl_config.h file would have looked like on a Windows + machine! Generally speaking: always remember that this will be compiled on dozens of operating systems. Don't walk on the edge. @@ -113,6 +114,9 @@ Windows vs Unix Library ======= + (See LIBCURL-STRUCTS for a separate document describing all major internal + structs and their purposes.) + There are plenty of entry points to the library, namely each publicly defined function that libcurl offers to applications. All of those functions are rather small and easy-to-follow. All the ones prefixed with 'curl_easy' are @@ -137,16 +141,18 @@ Library options is documented in the man page. This function mainly sets things in the 'SessionHandle' struct. - curl_easy_perform() does a whole lot of things: + curl_easy_perform() is just a wrapper function that makes use of the multi + API. It basically curl_multi_init(), curl_multi_add_handle(), + curl_multi_wait(), and curl_multi_perform() until the transfer is done and + then returns. - It starts off in the lib/easy.c file by calling Curl_perform() and the main - work then continues in lib/url.c. The flow continues with a call to - Curl_connect() to connect to the remote site. + Some of the most important key functions in url.c are called from multi.c + when certain key steps are to be made in the transfer operation. o Curl_connect() - ... analyzes the URL, it separates the different components and connects to - the remote host. This may involve using a proxy and/or using SSL. The + Analyzes the URL, it separates the different components and connects to the + remote host. This may involve using a proxy and/or using SSL. The Curl_resolv() function in lib/hostip.c is used for looking up host names (it does then use the proper underlying method, which may vary between platforms and builds). @@ -162,10 +168,7 @@ Library o Curl_do() Curl_do() makes sure the proper protocol-specific function is called. The - functions are named after the protocols they handle. Curl_ftp(), - Curl_http(), Curl_dict(), etc. They all reside in their respective files - (ftp.c, http.c and dict.c). HTTPS is handled by Curl_http() and FTPS by - Curl_ftp(). + functions are named after the protocols they handle. The protocol-specific functions of course deal with protocol-specific negotiations and setup. They have access to the Curl_sendf() (from @@ -182,12 +185,11 @@ Library Some time during the DO function, the Curl_setup_transfer() function must be called with some basic info about the upcoming transfer: what socket(s) - to read/write and the expected file tranfer sizes (if known). + to read/write and the expected file transfer sizes (if known). - o Transfer() + o Curl_readwrite() - Curl_perform() then calls Transfer() in lib/transfer.c that performs the - entire file transfer. + Called during the transfer of the actual protocol payload. During transfer, the progress functions in lib/progress.c are called at a frequent interval (or at the user's choice, a specified callback might get @@ -209,33 +211,11 @@ Library used. This function is only used when we are certain that no more transfers is going to be made on the connection. It can be also closed by force, or it can be called to make sure that libcurl doesn't keep too many - connections alive at the same time (there's a default amount of 5 but that - can be changed with the CURLOPT_MAXCONNECTS option). + connections alive at the same time. This function cleans up all resources that are associated with a single connection. - Curl_perform() is the function that does the main "connect - do - transfer - - done" loop. It loops if there's a Location: to follow. - - When completed, the curl_easy_cleanup() should be called to free up used - resources. It runs Curl_disconnect() on all open connectons. - - A quick roundup on internal function sequences (many of these call - protocol-specific function-pointers): - - curl_connect - connects to a remote site and does initial connect fluff - This also checks for an existing connection to the requested site and uses - that one if it is possible. - - curl_do - starts a transfer - curl_transfer() - transfers data - curl_done - ends a transfer - - curl_disconnect - disconnects from a remote site. This is called when the - disconnect is really requested, which doesn't necessarily have to be - exactly after curl_done in case we want to keep the connection open for - a while. HTTP(S) @@ -249,16 +229,16 @@ Library HTTPS uses in almost every means the same procedure as HTTP, with only two exceptions: the connect procedure is different and the function used to read or write from the socket is different, although the latter fact is hidden in - the source by the use of curl_read() for reading and curl_write() for writing + the source by the use of Curl_read() for reading and Curl_write() for writing data to the remote server. http_chunks.c contains functions that understands HTTP 1.1 chunked transfer encoding. - An interesting detail with the HTTP(S) request, is the add_buffer() series of - functions we use. They append data to one single buffer, and when the - building is done the entire request is sent off in one single write. This is - done this way to overcome problems with flawed firewalls and lame servers. + An interesting detail with the HTTP(S) request, is the Curl_add_buffer() + series of functions we use. They append data to one single buffer, and when + the building is done the entire request is sent off in one single write. This + is done this way to overcome problems with flawed firewalls and lame servers. FTP @@ -272,7 +252,9 @@ Library Kerberos - The kerberos support is mainly in lib/krb4.c and lib/security.c. + Kerberos support is mainly in lib/krb5.c and lib/security.c but also + curl_sasl_sspi.c and curl_sasl_gssapi.c for the email protocols and + socks_gssapi.c & socks_sspi.c for SOCKS5 proxy specifics. TELNET @@ -282,16 +264,24 @@ Library The file:// protocol is dealt with in lib/file.c. + SMB + + The smb:// protocol is dealt with in lib/smb.c. + LDAP - Everything LDAP is in lib/ldap.c. + Everything LDAP is in lib/ldap.c and lib/openldap.c + + E-mail + + The e-mail related source code is in lib/imap.c, lib/pop3.c and lib/smtp.c. GENERAL URL encoding and decoding, called escaping and unescaping in the source code, is found in lib/escape.c. - While transfering data in Transfer() a few functions might get used. + While transferring data in Transfer() a few functions might get used. curl_getdate() in lib/parsedate.c is for HTTP date comparisons (and more). lib/getenv.c offers curl_getenv() which is for reading environment variables @@ -303,7 +293,7 @@ Library lib/netrc.c holds the .netrc parser lib/timeval.c features replacement functions for systems that don't have - gettimeofday() and a few support functions for timeval convertions. + gettimeofday() and a few support functions for timeval conversions. A function named curl_version() that returns the full curl version string is found in lib/version.c. @@ -318,46 +308,38 @@ Persistent Connections hold connection-oriented data. It is meant to hold the root data as well as all the options etc that the library-user may choose. o The 'SessionHandle' struct holds the "connection cache" (an array of - pointers to 'connectdata' structs). There's one connectdata struct - allocated for each connection that libcurl knows about. Note that when you - use the multi interface, the multi handle will hold the connection cache - and not the particular easy handle. This of course to allow all easy handles - in a multi stack to be able to share and re-use connections. + pointers to 'connectdata' structs). o This enables the 'curl handle' to be reused on subsequent transfers. - o When we are about to perform a transfer with curl_easy_perform(), we first - check for an already existing connection in the cache that we can use, - otherwise we create a new one and add to the cache. If the cache is full - already when we add a new connection, we close one of the present ones. We - select which one to close dependent on the close policy that may have been - previously set. - o When the transfer operation is complete, we try to leave the connection - open. Particular options may tell us not to, and protocols may signal - closure on connections and then we don't keep it open of course. + o When libcurl is told to perform a transfer, it first checks for an already + existing connection in the cache that we can use. Otherwise it creates a + new one and adds that the cache. If the cache is full already when a new + connection is added added, it will first close the oldest unused one. + o When the transfer operation is complete, the connection is left + open. Particular options may tell libcurl not to, and protocols may signal + closure on connections and then they won't be kept open of course. o When curl_easy_cleanup() is called, we close all still opened connections, unless of course the multi interface "owns" the connections. - You do realize that the curl handle must be re-used in order for the - persistent connections to work. + The curl handle must be re-used in order for the persistent connections to + work. multi interface/non-blocking ============================ - We make an effort to provide a non-blocking interface to the library, the - multi interface. To make that interface work as good as possible, no - low-level functions within libcurl must be written to work in a blocking - manner. + The multi interface is a non-blocking interface to the library. To make that + interface work as good as possible, no low-level functions within libcurl + must be written to work in a blocking manner. (There are still a few spots + violating this rule.) One of the primary reasons we introduced c-ares support was to allow the name resolve phase to be perfectly non-blocking as well. - The ultimate goal is to provide the easy interface simply by wrapping the - multi interface functions and thus treat everything internally as the multi - interface is the single interface we have. - - The FTP and the SFTP/SCP protocols are thus perfect examples of how we adapt - and adjust the code to allow non-blocking operations even on multi-stage - protocols. The DICT, LDAP and TELNET are crappy examples and they are subject - for rewrite in the future to better fit the libcurl protocol family. + The FTP and the SFTP/SCP protocols are examples of how we adapt and adjust + the code to allow non-blocking operations even on multi-stage command- + response protocols. They are built around state machines that return when + they would otherwise block waiting for data. The DICT, LDAP and TELNET + protocols are crappy examples and they are subject for rewrite in the future + to better fit the libcurl protocol family. SSL libraries ============= @@ -368,10 +350,10 @@ SSL libraries in future libcurl versions. To deal with this internally in the best way possible, we have a generic SSL - function API as provided by the sslgen.[ch] system, and they are the only SSL - functions we must use from within libcurl. sslgen is then crafted to use the + function API as provided by the vtls.[ch] system, and they are the only SSL + functions we must use from within libcurl. vtls is then crafted to use the appropriate lower-level function calls to whatever SSL library that is in - use. + use. For example vtls/openssl.[ch] for the OpenSSL library. Library Symbols =============== @@ -379,7 +361,9 @@ Library Symbols All symbols used internally in libcurl must use a 'Curl_' prefix if they're used in more than a single file. Single-file symbols must be made static. Public ("exported") symbols must use a 'curl_' prefix. (There are exceptions, - but they are to be changed to follow this pattern in future versions.) + but they are to be changed to follow this pattern in future versions.) Public + API functions are marked with CURL_EXTERN in the public header files so that + all others can be hidden on platforms where this is possible. Return Codes and Informationals =============================== @@ -406,12 +390,12 @@ API/ABI Client ====== - main() resides in src/main.c together with most of the client code. + main() resides in src/tool_main.c. - src/hugehelp.c is automatically generated by the mkhelp.pl perl script to - display the complete "manual" and the src/urlglob.c file holds the functions - used for the URL-"globbing" support. Globbing in the sense that the {} and [] - expansion stuff is there. + src/tool_hugehelp.c is automatically generated by the mkhelp.pl perl script + to display the complete "manual" and the src/tool_urlglob.c file holds the + functions used for the URL-"globbing" support. Globbing in the sense that the + {} and [] expansion stuff is there. The client mostly messes around to setup its 'config' struct properly, then it calls the curl_easy_*() functions of the library and when it gets back @@ -423,8 +407,8 @@ Client curl_easy_getinfo() function to extract useful information from the curl session. - Recent versions may loop and do all this several times if many URLs were - specified on the command line or config file. + It may loop and do all this several times if many URLs were specified on the + command line or config file. Memory Debugging ================ @@ -458,31 +442,43 @@ Memory Debugging Test Suite ========== - Since November 2000, a test suite has evolved. It is placed in its own - subdirectory directly off the root in the curl archive tree, and it contains - a bunch of scripts and a lot of test case data. + The test suite is placed in its own subdirectory directly off the root in the + curl archive tree, and it contains a bunch of scripts and a lot of test case + data. - The main test script is runtests.pl that will invoke the two servers + The main test script is runtests.pl that will invoke test servers like httpserver.pl and ftpserver.pl before all the test cases are performed. The test suite currently only runs on unix-like platforms. - You'll find a complete description of the test case data files in the - tests/README file. + You'll find a description of the test suite in the tests/README file, and the + test case data files in the tests/FILEFORMAT file. The test suite automatically detects if curl was built with the memory - debugging enabled, and if it was it will detect memory leaks too. + debugging enabled, and if it was it will detect memory leaks, too. Building Releases ================= There's no magic to this. When you consider everything stable enough to be - released, run the 'maketgz' script (using 'make distcheck' will give you a - pretty good view on the status of the current sources). maketgz prompts for - version number of the client and the library before it creates a release - archive. maketgz uses 'make dist' for the actual archive building, why you - need to fill in the Makefile.am files properly for which files that should - be included in the release archives. - - NOTE: you need to have curl checked out from git to be able to do a proper + released, do this: + + 1. Tag the source code accordingly. + + 2. run the 'maketgz' script (using 'make distcheck' will give you a pretty + good view on the status of the current sources). maketgz requires a + version number and creates the release archive. maketgz uses 'make dist' + for the actual archive building, why you need to fill in the Makefile.am + files properly for which files that should be included in the release + archives. + + 3. When that's complete, sign the output files. + + 4. Upload + + 5. Update web site and changelog on site + + 6. Send announcement to the mailing lists + + NOTE: you must have curl checked out from git to be able to do a proper release build. The release tarballs do not have everything setup in order to do releases properly. diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS index 9647891..7788567 100644 --- a/docs/KNOWN_BUGS +++ b/docs/KNOWN_BUGS @@ -3,27 +3,77 @@ join in and help us correct one or more of these! Also be sure to check the changelog of the current development status, as one or more of these problems may have been fixed since this was written! +88. libcurl doesn't support CURLINFO_FILETIME for SFTP transfers and thus + curl's -R option also doesn't work then. + +87. -J/--remote-header-name doesn't decode %-encoded file names. RFC6266 + details how it should be done. The can of worm is basically that we have no + charset handling in curl and ascii >=128 is a challenge for us. Not to + mention that decoding also means that we need to check for nastiness that is + attempted, like "../" sequences and the like. Probably everything to the left + of any embedded slashes should be cut off. + http://curl.haxx.se/bug/view.cgi?id=1294 + +86. The disconnect commands (LOGOUT and QUIT) may not be sent by IMAP, POP3 + and SMTP if a failure occurs during the authentication phase of a + connection. + +85. Wrong STARTTRANSFER timer accounting for POST requests + Timer works fine with GET requests, but while using POST the time for + CURLINFO_STARTTRANSFER_TIME is wrong. While using POST + CURLINFO_STARTTRANSFER_TIME minus CURLINFO_PRETRANSFER_TIME is near to zero + every time. + http://curl.haxx.se/bug/view.cgi?id=1213 + +84. CURLINFO_SSL_VERIFYRESULT is only implemented for the OpenSSL and NSS + backends, so relying on this information in a generic app is flaky. + +82. When building with the Windows Borland compiler, it fails because the + "tlib" tool doesn't support hyphens (minus signs) in file names and we have + such in the build. + http://curl.haxx.se/bug/view.cgi?id=1222 + +81. When using -J (with -O), automatically resumed downloading together with + "-C -" fails. Without -J the same command line works! This happens because + the resume logic is worked out before the target file name (and thus its + pre-transfer size) has been figured out! + http://curl.haxx.se/bug/view.cgi?id=1169 + +80. Curl doesn't recognize certificates in DER format in keychain, but it + works with PEM. + http://curl.haxx.se/bug/view.cgi?id=1065 + +79. SMTP. When sending data to multiple recipients, curl will abort and return + failure if one of the recipients indicate failure (on the "RCPT TO" + command). Ordinary mail programs would proceed and still send to the ones + that can receive data. This is subject for change in the future. + http://curl.haxx.se/bug/view.cgi?id=1116 + +78. curl and libcurl don't always signal the client properly when "sending" + zero bytes files - it makes for example the command line client not creating + any file at all. Like when using FTP. + http://curl.haxx.se/bug/view.cgi?id=1063 + 76. The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t on that platform), and long is only 32 bits. It makes it impossible for curl_easy_getinfo() to return a socket properly with the CURLINFO_LASTSOCKET option as for all other operating systems. -75. NTLM authentication involving unicode user name or password. +75. NTLM authentication involving unicode user name or password only works + properly if built with UNICODE defined together with the WinSSL/schannel + backend. The original problem was mentioned in: http://curl.haxx.se/mail/lib-2009-10/0024.html - http://curl.haxx.se/bug/view.cgi?id=2944325 + http://curl.haxx.se/bug/view.cgi?id=896 -74. The HTTP spec allows headers to be merged and become comma-separated - instead of being repeated several times. This also include Authenticate: and - Proxy-Authenticate: headers and while this hardly every happens in real life - it will confuse libcurl which does not properly support it for all headers - - like those Authenticate headers. + The WinSSL/schannel version verified to work as mentioned in + http://curl.haxx.se/mail/lib-2012-07/0073.html 73. if a connection is made to a FTP server but the server then just never sends the 220 response or otherwise is dead slow, libcurl will not acknowledge the connection timeout during that phase but only the "real" timeout - which may surprise users as it is probably considered to be the connect phase to most people. Brought up (and is being misunderstood) in: - http://curl.haxx.se/bug/view.cgi?id=2844077 + http://curl.haxx.se/bug/view.cgi?id=856 72. "Pausing pipeline problems." http://curl.haxx.se/mail/lib-2009-07/0214.html @@ -41,7 +91,7 @@ may have been fixed since this was written! http://tools.ietf.org/html/draft-reschke-rfc2231-in-http-02 66. When using telnet, the time limitation options don't work. - http://curl.haxx.se/bug/view.cgi?id=2818950 + http://curl.haxx.se/bug/view.cgi?id=846 65. When doing FTP over a socks proxy or CONNECT through HTTP proxy and the multi interface is used, libcurl will fail if the (passive) TCP connection @@ -67,19 +117,12 @@ may have been fixed since this was written! CURLOPT_FAILONERROR with FTP to detect if a file exists or not, but it is not working: http://curl.haxx.se/mail/lib-2008-07/0295.html -57. On VMS-Alpha: When using an http-file-upload the file is not sent to the - Server with the correct content-length. Sending a file with 511 or less - bytes, content-length 512 is used. Sending a file with 513 - 1023 bytes, - content-length 1024 is used. Files with a length of a multiple of 512 Bytes - show the correct content-length. Only these files work for upload. - http://curl.haxx.se/bug/view.cgi?id=2057858 - 56. When libcurl sends CURLOPT_POSTQUOTE commands when connected to a SFTP server using the multi interface, the commands are not being sent correctly and instead the connection is "cancelled" (the operation is considered done) prematurely. There is a half-baked (busy-looping) patch provided in the bug report but it cannot be accepted as-is. See - http://curl.haxx.se/bug/view.cgi?id=2006544 + http://curl.haxx.se/bug/view.cgi?id=748 55. libcurl fails to build with MIT Kerberos for Windows (KfW) due to KfW's library header files exporting symbols/macros that should be kept private @@ -103,12 +146,12 @@ may have been fixed since this was written! protocol code. This should be very rare. 43. There seems to be a problem when connecting to the Microsoft telnet server. - http://curl.haxx.se/bug/view.cgi?id=1720605 + http://curl.haxx.se/bug/view.cgi?id=649 41. When doing an operation over FTP that requires the ACCT command (but not when logging in), the operation will fail since libcurl doesn't detect this and thus fails to issue the correct command: - http://curl.haxx.se/bug/view.cgi?id=1693337 + http://curl.haxx.se/bug/view.cgi?id=635 39. Steffen Rumler's Race Condition in Curl_proxyCONNECT: http://curl.haxx.se/mail/lib-2007-01/0045.html @@ -116,55 +159,28 @@ may have been fixed since this was written! 38. Kumar Swamy Bhatt's problem in ftp/ssl "LIST" operation: http://curl.haxx.se/mail/lib-2007-01/0103.html -37. Having more than one connection to the same host when doing NTLM - authentication (with performs multiple "passes" and authenticates a - connection rather than a HTTP request), and particularly when using the - multi interface, there's a risk that libcurl will re-use a wrong connection - when doing the different passes in the NTLM negotiation and thus fail to - negotiate (in seemingly mysterious ways). - 35. Both SOCKS5 and SOCKS4 proxy connections are done blocking, which is very bad when used with the multi interface. 34. The SOCKS4 connection codes don't properly acknowledge (connect) timeouts. Also see #12. According to bug #1556528, even the SOCKS5 connect code does - not do it right: http://curl.haxx.se/bug/view.cgi?id=1556528, + not do it right: http://curl.haxx.se/bug/view.cgi?id=604 31. "curl-config --libs" will include details set in LDFLAGS when configure is run that might be needed only for building libcurl. Further, curl-config --cflags suffers from the same effects with CFLAGS/CPPFLAGS. -30. You need to use -g to the command line tool in order to use RFC2732-style - IPv6 numerical addresses in URLs. - -29. IPv6 URLs with zone ID is not nicely supported. - http://www.ietf.org/internet-drafts/draft-fenner-literal-zone-02.txt (expired) - specifies the use of a plus sign instead of a percent when specifying zone - IDs in URLs to get around the problem of percent signs being - special. According to the reporter, Firefox deals with the URL _with_ a - percent letter (which seems like a blatant URL spec violation). - libcurl supports zone IDs where the percent sign is URL-escaped (i.e. %25). - - See http://curl.haxx.se/bug/view.cgi?id=1371118 - 26. NTLM authentication using SSPI (on Windows) when (lib)curl is running in "system context" will make it use wrong(?) user name - at least when compared - to what winhttp does. See http://curl.haxx.se/bug/view.cgi?id=1281867 + to what winhttp does. See http://curl.haxx.se/bug/view.cgi?id=535 23. SOCKS-related problems: - A) libcurl doesn't support SOCKS for IPv6. B) libcurl doesn't support FTPS over a SOCKS proxy. E) libcurl doesn't support active FTP over a SOCKS proxy We probably have even more bugs and lack of features when a SOCKS proxy is used. -22. Sending files to a FTP server using curl on VMS, might lead to curl - complaining on "unaligned file size" on completion. The problem is related - to VMS file structures and the perceived file sizes stat() returns. A - possible fix would involve sending a "STRU VMS" command. - http://curl.haxx.se/bug/view.cgi?id=1156287 - 21. FTP ASCII transfers do not follow RFC959. They don't convert the data accordingly (not for sending nor for receiving). RFC 959 section 3.1.1.1 clearly describes how this should be done: @@ -184,7 +200,7 @@ may have been fixed since this was written! be to use a data structure other than a plain C string, one that can handle embedded NUL characters. From a practical standpoint, most FTP servers would not meaningfully support NUL characters within RFC 959 , - anyway (e.g., UNIX pathnames may not contain NUL). + anyway (e.g., Unix pathnames may not contain NUL). 14. Test case 165 might fail on a system which has libidn present, but with an old iconv version (2.1.3 is a known bad version), since it doesn't recognize @@ -199,10 +215,10 @@ may have been fixed since this was written! acknowledged after the actual TCP connect (during the SOCKS "negotiate" phase). -10. To get HTTP Negotiate authentication to work fine, you need to provide a - (fake) user name (this concerns both curl and the lib) because the code - wrongly only considers authentication if there's a user name provided. - http://curl.haxx.se/bug/view.cgi?id=1004841. How? +10. To get HTTP Negotiate (SPNEGO) authentication to work fine, you need to + provide a (fake) user name (this concerns both curl and the lib) because the + code wrongly only considers authentication if there's a user name provided. + http://curl.haxx.se/bug/view.cgi?id=440 How? http://curl.haxx.se/mail/lib-2004-08/0182.html 8. Doing resumed upload over HTTP does not work with '-C -', because curl diff --git a/docs/LIBCURL-STRUCTS b/docs/LIBCURL-STRUCTS new file mode 100644 index 0000000..136d17c --- /dev/null +++ b/docs/LIBCURL-STRUCTS @@ -0,0 +1,245 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +Structs in libcurl + +This document should cover 7.32.0 pretty accurately, but will make sense even +for older and later versions as things don't change drastically that often. + + 1. The main structs in libcurl + 1.1 SessionHandle + 1.2 connectdata + 1.3 Curl_multi + 1.4 Curl_handler + 1.5 conncache + 1.6 Curl_share + 1.7 CookieInfo + +============================================================================== + +1. The main structs in libcurl + + 1.1 SessionHandle + + The SessionHandle handle struct is the one returned to the outside in the + external API as a "CURL *". This is usually known as an easy handle in API + documentations and examples. + + Information and state that is related to the actual connection is in the + 'connectdata' struct. When a transfer is about to be made, libcurl will + either create a new connection or re-use an existing one. The particular + connectdata that is used by this handle is pointed out by + SessionHandle->easy_conn. + + Data and information that regard this particular single transfer is put in + the SingleRequest sub-struct. + + When the SessionHandle struct is added to a multi handle, as it must be in + order to do any transfer, the ->multi member will point to the Curl_multi + struct it belongs to. The ->prev and ->next members will then be used by the + multi code to keep a linked list of SessionHandle structs that are added to + that same multi handle. libcurl always uses multi so ->multi *will* point to + a Curl_multi when a transfer is in progress. + + ->mstate is the multi state of this particular SessionHandle. When + multi_runsingle() is called, it will act on this handle according to which + state it is in. The mstate is also what tells which sockets to return for a + specific SessionHandle when curl_multi_fdset() is called etc. + + The libcurl source code generally use the name 'data' for the variable that + points to the SessionHandle. + + + 1.2 connectdata + + A general idea in libcurl is to keep connections around in a connection + "cache" after they have been used in case they will be used again and then + re-use an existing one instead of creating a new as it creates a significant + performance boost. + + Each 'connectdata' identifies a single physical connection to a server. If + the connection can't be kept alive, the connection will be closed after use + and then this struct can be removed from the cache and freed. + + Thus, the same SessionHandle can be used multiple times and each time select + another connectdata struct to use for the connection. Keep this in mind, as + it is then important to consider if options or choices are based on the + connection or the SessionHandle. + + Functions in libcurl will assume that connectdata->data points to the + SessionHandle that uses this connection. + + As a special complexity, some protocols supported by libcurl require a + special disconnect procedure that is more than just shutting down the + socket. It can involve sending one or more commands to the server before + doing so. Since connections are kept in the connection cache after use, the + original SessionHandle may no longer be around when the time comes to shut + down a particular connection. For this purpose, libcurl holds a special + dummy 'closure_handle' SessionHandle in the Curl_multi struct to + + FTP uses two TCP connections for a typical transfer but it keeps both in + this single struct and thus can be considered a single connection for most + internal concerns. + + The libcurl source code generally use the name 'conn' for the variable that + points to the connectdata. + + + 1.3 Curl_multi + + Internally, the easy interface is implemented as a wrapper around multi + interface functions. This makes everything multi interface. + + Curl_multi is the multi handle struct exposed as "CURLM *" in external APIs. + + This struct holds a list of SessionHandle structs that have been added to + this handle with curl_multi_add_handle(). The start of the list is ->easyp + and ->num_easy is a counter of added SessionHandles. + + ->msglist is a linked list of messages to send back when + curl_multi_info_read() is called. Basically a node is added to that list + when an individual SessionHandle's transfer has completed. + + ->hostcache points to the name cache. It is a hash table for looking up name + to IP. The nodes have a limited life time in there and this cache is meant + to reduce the time for when the same name is wanted within a short period of + time. + + ->timetree points to a tree of SessionHandles, sorted by the remaining time + until it should be checked - normally some sort of timeout. Each + SessionHandle has one node in the tree. + + ->sockhash is a hash table to allow fast lookups of socket descriptor to + which SessionHandle that uses that descriptor. This is necessary for the + multi_socket API. + + ->conn_cache points to the connection cache. It keeps track of all + connections that are kept after use. The cache has a maximum size. + + ->closure_handle is described in the 'connectdata' section. + + The libcurl source code generally use the name 'multi' for the variable that + points to the Curl_multi struct. + + + 1.4 Curl_handler + + Each unique protocol that is supported by libcurl needs to provide at least + one Curl_handler struct. It defines what the protocol is called and what + functions the main code should call to deal with protocol specific issues. + In general, there's a source file named [protocol].c in which there's a + "struct Curl_handler Curl_handler_[protocol]" declared. In url.c there's + then the main array with all individual Curl_handler structs pointed to from + a single array which is scanned through when a URL is given to libcurl to + work with. + + ->scheme is the URL scheme name, usually spelled out in uppercase. That's + "HTTP" or "FTP" etc. SSL versions of the protcol need its own Curl_handler + setup so HTTPS separate from HTTP. + + ->setup_connection is called to allow the protocol code to allocate protocol + specific data that then gets associated with that SessionHandle for the rest + of this transfer. It gets freed again at the end of the transfer. It will be + called before the 'connectdata' for the transfer has been selected/created. + Most protocols will allocate its private 'struct [PROTOCOL]' here and assign + SessionHandle->req.protop to point to it. + + ->connect_it allows a protocol to do some specific actions after the TCP + connect is done, that can still be considered part of the connection phase. + + Some protocols will alter the connectdata->recv[] and connectdata->send[] + function pointers in this function. + + ->connecting is similarly a function that keeps getting called as long as the + protocol considers itself still in the connecting phase. + + ->do_it is the function called to issue the transfer request. What we call + the DO action internally. If the DO is not enough and things need to be kept + getting done for the entire DO sequence to complete, ->doing is then usually + also provided. Each protocol that needs to do multiple commands or similar + for do/doing need to implement their own state machines (see SCP, SFTP, + FTP). Some protocols (only FTP and only due to historical reasons) has a + separate piece of the DO state called DO_MORE. + + ->doing keeps getting called while issuing the transfer request command(s) + + ->done gets called when the transfer is complete and DONE. That's after the + main data has been transferred. + + ->do_more gets called during the DO_MORE state. The FTP protocol uses this + state when setting up the second connection. + + ->proto_getsock + ->doing_getsock + ->domore_getsock + ->perform_getsock + Functions that return socket information. Which socket(s) to wait for which + action(s) during the particular multi state. + + ->disconnect is called immediately before the TCP connection is shutdown. + + ->readwrite gets called during transfer to allow the protocol to do extra + reads/writes + + ->defport is the default report TCP or UDP port this protocol uses + + ->protocol is one or more bits in the CURLPROTO_* set. The SSL versions have + their "base" protocol set and then the SSL variation. Like "HTTP|HTTPS". + + ->flags is a bitmask with additional information about the protocol that will + make it get treated differently by the generic engine: + + PROTOPT_SSL - will make it connect and negotiate SSL + + PROTOPT_DUAL - this protocol uses two connections + + PROTOPT_CLOSEACTION - this protocol has actions to do before closing the + connection. This flag is no longer used by code, yet still set for a bunch + protocol handlers. + + PROTOPT_DIRLOCK - "direction lock". The SSH protocols set this bit to + limit which "direction" of socket actions that the main engine will + concern itself about. + + PROTOPT_NONETWORK - a protocol that doesn't use network (read file:) + + PROTOPT_NEEDSPWD - this protocol needs a password and will use a default + one unless one is provided + + PROTOPT_NOURLQUERY - this protocol can't handle a query part on the URL + (?foo=bar) + + + 1.5 conncache + + Is a hash table with connections for later re-use. Each SessionHandle has + a pointer to its connection cache. Each multi handle sets up a connection + cache that all added SessionHandles share by default. + + + 1.6 Curl_share + + The libcurl share API allocates a Curl_share struct, exposed to the external + API as "CURLSH *". + + The idea is that the struct can have a set of own versions of caches and + pools and then by providing this struct in the CURLOPT_SHARE option, those + specific SessionHandles will use the caches/pools that this share handle + holds. + + Then individual SessionHandle structs can be made to share specific things + that they otherwise wouldn't, such as cookies. + + The Curl_share struct can currently hold cookies, DNS cache and the SSL + session cache. + + + 1.7 CookieInfo + + This is the main cookie struct. It holds all known cookies and related + information. Each SessionHandle has its own private CookieInfo even when + they are added to a multi handle. They can be made to share cookies by using + the share API. diff --git a/docs/LICENSE-MIXING b/docs/LICENSE-MIXING index 3db1a3d..a53835c 100644 --- a/docs/LICENSE-MIXING +++ b/docs/LICENSE-MIXING @@ -21,9 +21,7 @@ announcement clause that collides with GPL. libcurl http://curl.haxx.se/docs/copyright.html Uses an MIT (or Modified BSD)-style license that is as liberal as - possible. Some of the source files that deal with KRB4 have Original - BSD-style announce-clause licenses. You may not distribute binaries - with krb4-enabled libcurl that also link with GPL-licensed code! + possible. OpenSSL http://www.openssl.org/source/license.html @@ -55,6 +53,10 @@ NSS http://www.mozilla.org/projects/security/pki/nss/ grant you different permissions and impose different obligations. You should select the license that best meets your needs. +axTLS http://axtls.sourceforge.net/ + + (May be used for SSL/TLS support) Uses a Modified BSD-style license. + c-ares http://daniel.haxx.se/projects/c-ares/license.html (Used for asynchronous name resolves) Uses an MIT license that is very @@ -66,14 +68,6 @@ zlib http://www.gzip.org/zlib/zlib_license.html (Used for compressed Transfer-Encoding support) Uses an MIT-style license that shouldn't collide with any other library. -krb4 - - While nothing in particular says that a Kerberos4 library must use any - particular license, the one I've tried and used successfully so far - (kth-krb4) is partly Original BSD-licensed with the announcement - clause. Some of the code in libcurl that is written to deal with - Kerberos4 is Modified BSD-licensed. - MIT Kerberos http://web.mit.edu/kerberos/www/dist/ (May be used for GSS support) MIT licensed, that shouldn't collide @@ -90,12 +84,6 @@ GNU GSS http://www.gnu.org/software/gss/ may not distribute binary curl packages that uses this if you build curl to also link and use any Original BSD licensed libraries! -fbopenssl - - (Used for SPNEGO support) Unclear license. Based on its name, I assume - that it uses the OpenSSL license and thus shares the same issues as - described for OpenSSL above. - libidn http://josefsson.org/libidn/ (Used for IDNA support) Uses the GNU Lesser General Public diff --git a/docs/MAIL-ETIQUETTE b/docs/MAIL-ETIQUETTE new file mode 100644 index 0000000..fb50312 --- /dev/null +++ b/docs/MAIL-ETIQUETTE @@ -0,0 +1,265 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +MAIL ETIQUETTE + + 1. About the lists + 1.1 Mailing Lists + 1.2 Netiquette + 1.3 Do Not Mail a Single Individual + 1.4 Subscription Required + 1.5 Moderation of new posters + 1.6 Handling trolls and spam + 1.7 How to unsubscribe + 1.8 I posted, now what? + + 2. Sending mail + 2.1 Reply or New Mail + 2.2 Reply to the List + 2.3 Use a Sensible Subject + 2.4 Do Not Top-Post + 2.5 HTML is not for mails + 2.6 Quoting + 2.7 Digest + 2.8 Please Tell Us How You Solved The Problem! + +============================================================================== + +1. About the lists + + 1.1 Mailing Lists + + The mailing lists we have are all listed and described at + http://curl.haxx.se/mail/ + + Each mailing list is targeted to a specific set of users and subjects, + please use the one or the ones that suit you the most. + + Each mailing list have hundreds up to thousands of readers, meaning that + each mail sent will be received and read by a very large amount of people. + People from various cultures, regions, religions and continents. + + 1.2 Netiquette + + Netiquette is a common name for how to behave on the internet. Of course, in + each particular group and subculture there will be differences in what is + acceptable and what is considered good manners. + + This document outlines what we in the cURL project considers to be good + etiquette, and primarily this focus on how to behave on and how to use our + mailing lists. + + 1.3 Do Not Mail a Single Individual + + Many people send one question to one person. One person gets many mails, and + there is only one person who can give you a reply. The question may be + something that other people are also wanting to ask. These other people have + no way to read the reply, but to ask the one person the question. The one + person consequently gets overloaded with mail. + + If you really want to contact an individual and perhaps pay for his or her + services, by all means go ahead, but if it's just another curl question, + take it to a suitable list instead. + + 1.4 Subscription Required + + All curl mailing lists require that you are subscribed to allow a mail to go + through to all the subscribers. + + If you post without being subscribed (or from a different mail address than + the one you are subscribed with), your mail will simply be silently + discarded. You have to subscribe first, then post. + + The reason for this unfortunate and strict subscription policy is of course + to stop spam from pestering the lists. + + 1.5 Moderation of new posters + + Several of the curl mailing lists automatically make all posts from new + subscribers require moderation. This means that after you've subscribed and + send your first mail to a list, that mail will not be let through to the + list until a mailing list administrator has verified that it is OK and + permits it to get posted. + + Once a first post has been made that proves the sender is actually talking + about curl-related subjects, the moderation "flag" will be switched off and + future posts will go through without being moderated. + + The reason for this moderation policy is that we do suffer from spammers who + actually subscribe and send spam to our lists. + + 1.6 Handling trolls and spam + + Despite our good intentions and hard work to keep spam off the lists and to + maintain a friendly and positive atmosphere, there will be times when spam + and or trolls get through. + + Troll - "someone who posts inflammatory, extraneous, or off-topic messages + in an online community" + + Spam - "use of electronic messaging systems to send unsolicited bulk + messages" + + No matter what, we NEVER EVER respond to trolls or spammers on the list. If + you believe the list admin should do something particular, contact him/her + off-list. The subject will be taken care of as good as possible to prevent + repeated offenses, but responding on the list to such messages never lead to + anything good and only puts the light even more on the offender: which was + the entire purpose of it getting to the list in the first place. + + Don't feed the trolls! + + 1.7 How to unsubscribe + + You unsubscribe the same way you subscribed in the first place. You go to + the page for the particular mailing list you're subscribed to and you enter + your email address and password and press the unsubscribe button. + + Also, this information is included in the headers of every mail that is sent + out to all curl related mailing lists and there's footer in each mail that + links to the "admin" page on which you can unsubscribe and change other + options. + + You NEVER EVER email the mailing list requesting someone else to get you off + the list. + + 1.8 I posted, now what? + + If you aren't subscribed with the exact same email address that you used to + send the email, your post will just be silently discarded. + + If you posted for the first time to the mailing list, you first need to wait + for an administrator to allow your email to go through. This normally + happens very quickly but in case we're asleep, you may have to wait a few + hours. + + Once your email goes through it is sent out to several hundred or even + thousand recipients. Your email may cover an area that not that many people + know about or are interested in. Or possibly the person who knows about it + is on vacation or under a very heavy work load right now. You have to wait + for a response and you must not expect to get a response at all, but + hopefully you get an answer within a couple of days. + + You do yourself and all of us a service when you include as many details as + possible already in your first email. Mention your operating system and + environment. Tell us which curl version you're using and tell us what you + did, what happened and what you expected would happen. Preferably, show us + what you did in details enough to allow others to help point out the problem + or repeat the same steps in their places. + + Failing to include details will only delay responses and make people respond + and ask for the details and you have to send a follow-up email that includes + them. + + Expect the responses to primarily help YOU debug the issue, or ask you + questions that can lead you or others towards a solution or explanation to + whatever you experience. + + If you are a repeat offender to the guidelines outlined in this document, + chances are that people will ignore you at will and your chances to get + responses will greatly diminish. + + +2. Sending mail + + 2.1 Reply or New Mail + + Please do not reply to an existing message as a short-cut to post a message + to the lists. + + Many mail programs and web archivers use information within mails to keep + them together as "threads", as collections of posts that discuss a certain + subject. If you don't intend to reply on the same or similar subject, don't + just hit reply on an existing mail and change subject, create a new mail. + + 2.2 Reply to the List + + When replying to a message from the list, make sure that you do "group + reply" or "reply to all", and not just reply to the author of the single + mail you reply to. + + We're actively discouraging replying back to the single person by setting + the Reply-To: field in outgoing mails back to the mailing list address, + making it harder for people to mail the author only by mistake. + + 2.3 Use a Sensible Subject + + Please use a subject of the mail that makes sense and that is related to the + contents of your mail. It makes it a lot easier to find your mail afterwards + and it makes it easier to track mail threads and topics. + + 2.4 Do Not Top-Post + + If you reply to a message, don't use top-posting. Top-posting is when you + write the new text at the top of a mail and you insert the previous quoted + mail conversation below. It forces users to read the mail in a backwards + order to properly understand it. + + This is why top posting is so bad: + + A: Because it messes up the order in which people normally read + text. + Q: Why is top-posting such a bad thing? + A: Top-posting. + Q: What is the most annoying thing in e-mail? + + Apart from the screwed up read order (especially when mixed together in a + thread when someone responds using the mandated bottom-posting style), it + also makes it impossible to quote only parts of the original mail. + + When you reply to a mail. You let the mail client insert the previous mail + quoted. Then you put the cursor on the first line of the mail and you move + down through the mail, deleting all parts of the quotes that don't add + context for your comments. When you want to add a comment you do so, inline, + right after the quotes that relate to your comment. Then you continue + downwards again. + + When most of the quotes have been removed and you've added your own words, + you're done! + + 2.5 HTML is not for mails + + Please switch off those HTML encoded messages. You can mail all those funny + mails to your friends. We speak plain text mails. + + 2.6 Quoting + + Quote as little as possible. Just enough to provide the context you cannot + leave out. A lengthy description can be found here: + + http://www.netmeister.org/news/learn2quote.html + + 2.7 Digest + + We allow subscribers to subscribe to the "digest" version of the mailing + lists. A digest is a collection of mails lumped together in one single mail. + + Should you decide to reply to a mail sent out as a digest, there are two + things you MUST consider if you really really cannot subscribe normally + instead: + + Cut off all mails and chatter that is not related to the mail you want to + reply to. + + Change the subject name to something sensible and related to the subject, + preferably even the actual subject of the single mail you wanted to reply to + + 2.8 Please Tell Us How You Solved The Problem! + + Many people mail questions to the list, people spend some of their time and + make an effort in providing good answers to these questions. + + If you are the one who asks, please consider responding once more in case + one of the hints was what solved your problems. The guys who write answers + feel good to know that they provided a good answer and that you fixed the + problem. Far too often, the person who asked the question is never heard of + again, and we never get to know if he/she is gone because the problem was + solved or perhaps because the problem was unsolvable! + + Getting the solution posted also helps other users that experience the same + problem(s). They get to see (possibly in the web archives) that the + suggested fixes actually has helped at least one person. + diff --git a/docs/MANUAL b/docs/MANUAL index d7085b7..113df20 100644 --- a/docs/MANUAL +++ b/docs/MANUAL @@ -19,7 +19,7 @@ SIMPLE USAGE curl http://www.weirdserver.com:8000/ - Get a list of a directory of an FTP site: + Get a directory listing of an FTP site: curl ftp://cool.haxx.se/ @@ -41,20 +41,31 @@ SIMPLE USAGE Get a file from an SSH server using SFTP: - curl -u username sftp://shell.example.com/etc/issue + curl -u username sftp://example.com/etc/issue - Get a file from an SSH server using SCP using a private key to authenticate: + Get a file from an SSH server using SCP using a private key + (not password-protected) to authenticate: - curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \ - scp://shell.example.com/~/personal.txt + curl -u username: --key ~/.ssh/id_rsa \ + scp://example.com/~/file.txt + + Get a file from an SSH server using SCP using a private key + (password-protected) to authenticate: + + curl -u username: --key ~/.ssh/id_rsa --pass private_key_password \ + scp://example.com/~/file.txt Get the main page from an IPv6 web server: - curl -g "http://[2001:1890:1112:1::20]/" + curl "http://[2001:1890:1112:1::20]/" + + Get a file from an SMB server: + + curl -u "domain\username:passwd" smb://server.example.com/share/file.txt DOWNLOAD TO A FILE - Get a web page and store in a local file: + Get a web page and store in a local file with a specific name: curl -o thatpage.html http://www.netscape.com/ @@ -91,10 +102,13 @@ USING PASSWORDS SFTP / SCP - This is similar to FTP, but you can specify a private key to use instead of - a password. Note that the private key may itself be protected by a password - that is unrelated to the login password of the remote system. If you - provide a private key file you must also provide a public key file. + This is similar to FTP, but you can use the --key option to specify a + private key to use instead of a password. Note that the private key may + itself be protected by a password that is unrelated to the login password + of the remote system; this password is specified using the --pass option. + Typically, curl will automatically extract the public key from the private + key file, but in cases where curl does not have the proper library support, + a matching public key file must be specified using the --pubkey option. HTTP @@ -108,14 +122,15 @@ USING PASSWORDS curl -u name:passwd http://machine.domain/full/path/to/file HTTP offers many different methods of authentication and curl supports - several: Basic, Digest, NTLM and Negotiate. Without telling which method to - use, curl defaults to Basic. You can also ask curl to pick the most secure - ones out of the ones that the server accepts for the given URL, by using - --anyauth. + several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which + method to use, curl defaults to Basic. You can also ask curl to pick the + most secure ones out of the ones that the server accepts for the given URL, + by using --anyauth. - NOTE! Since HTTP URLs don't support user and password, you can't use that - style when using Curl via a proxy. You _must_ use the -u style fetch - during such circumstances. + NOTE! According to the URL specification, HTTP URLs can not contain a user + and password, so that style will not work when using curl via a proxy, even + though curl allows it at other times. When using a proxy, you _must_ use + the -u style for user and password. HTTPS @@ -123,11 +138,17 @@ USING PASSWORDS PROXY - Get an ftp file using a proxy named my-proxy that uses port 888: + curl supports both HTTP and SOCKS proxy servers, with optional authentication. + It does not have special support for FTP proxy servers since there are no + standards for those, but it can still be made to work with many of them. You + can also use both HTTP and SOCKS proxies to transfer files to and from FTP + servers. + + Get an ftp file using an HTTP proxy named my-proxy that uses port 888: curl -x my-proxy:888 ftp://ftp.leachsite.com/README - Get a file from a HTTP server that requires user and password, using the + Get a file from an HTTP server that requires user and password, using the same proxy as above: curl -u user:passwd -x my-proxy:888 http://www.get.this/ @@ -146,12 +167,26 @@ PROXY curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5. - See also the environment variables Curl support that offer further proxy + See also the environment variables Curl supports that offer further proxy control. + Most FTP proxy servers are set up to appear as a normal FTP server from the + client's perspective, with special commands to select the remote FTP server. + curl supports the -u, -Q and --ftp-account options that can be used to + set up transfers through many FTP proxies. For example, a file can be + uploaded to a remote FTP server using a Blue Coat FTP proxy with the + options: + + curl -u "Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass" \ + --ftp-account Proxy-Password --upload-file local-file \ + ftp://my-ftp.proxy.server:21/remote/upload/path/ + + See the manual for your FTP proxy to determine the form it expects to set up + transfers, and curl's -v option to see exactly what curl is sending. + RANGES - With HTTP 1.1 byte-ranges were introduced. Using this, a client can request + HTTP 1.1 introduced byte-ranges. Using this, a client can request to get only one or more subparts of a specified document. Curl supports this with the -r flag. @@ -182,8 +217,8 @@ UPLOADING curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile - Upload a local file to the remote site, and use the local file name remote - too: + Upload a local file to the remote site, and use the local file name at the remote + site too: curl -T uploadfile -u user:passwd ftp://ftp.upload.com/ @@ -197,16 +232,21 @@ UPLOADING curl --proxytunnel -x proxy:port -T localfile ftp.upload.com +SMB / SMBS + + curl -T file.txt -u "domain\username:passwd" + smb://server.example.com/share/ + HTTP - Upload all data on stdin to a specified http site: + Upload all data on stdin to a specified HTTP site: curl -T - http://www.upload.com/myfile - Note that the http server must have been configured to accept PUT before + Note that the HTTP server must have been configured to accept PUT before this can be done successfully. - For other ways to do http data upload, see the POST section below. + For other ways to do HTTP data upload, see the POST section below. VERBOSE / DEBUG @@ -269,7 +309,7 @@ POST (HTTP) The 'variable' names are the names set with "name=" in the tags, and the data is the contents you want to fill in for the inputs. The data *must* be properly URL encoded. That means you replace space with + and that you - write weird letters with %XX where XX is the hexadecimal representation of + replace weird letters with %XX where XX is the hexadecimal representation of the letter's ASCII code. Example: @@ -308,7 +348,7 @@ POST (HTTP) If the content-type is not specified, curl will try to guess from the file extension (it only knows a few), or use the previously specified type (from an earlier file if several files are specified in a list) or else it will - using the default type 'text/plain'. + use the default type 'application/octet-stream'. Emulate a fill-in form with -F. Let's say you fill in three fields in a form. One field is a file name which to post, one field is your name and one @@ -341,8 +381,8 @@ POST (HTTP) REFERRER - A HTTP request has the option to include information about which address - that referred to actual page. Curl allows you to specify the + An HTTP request has the option to include information about which address + referred it to the actual page. Curl allows you to specify the referrer to be used on the command line. It is especially useful to fool or trick stupid servers or CGI scripts that rely on that information being available or contain certain data. @@ -353,7 +393,7 @@ REFERRER USER AGENT - A HTTP request has the option to include information about the browser + An HTTP request has the option to include information about the browser that generated the request. Curl allows it to be specified on the command line. It is especially useful to fool or trick stupid servers or CGI scripts that only accept certain browsers. @@ -593,21 +633,21 @@ SFTP and SCP and PATH NAMES FTP and firewalls The FTP protocol requires one of the involved parties to open a second - connection as soon as data is about to get transfered. There are two ways to + connection as soon as data is about to get transferred. There are two ways to do this. The default way for curl is to issue the PASV command which causes the server to open another port and await another connection performed by the - client. This is good if the client is behind a firewall that don't allow + client. This is good if the client is behind a firewall that doesn't allow incoming connections. curl ftp.download.com - If the server for example, is behind a firewall that don't allow connections - on other ports than 21 (or if it just doesn't support the PASV command), the + If the server, for example, is behind a firewall that doesn't allow connections + on ports other than 21 (or if it just doesn't support the PASV command), the other way to do it is to use the PORT command and instruct the server to - connect to the client on the given (as parameters to the PORT command) IP - number and port. + connect to the client on the given IP number and port (as parameters to the + PORT command). The -P flag to curl supports a few different options. Your machine may have several IP-addresses and/or network interfaces and curl allows you to select @@ -665,8 +705,8 @@ HTTPS If you neglect to specify the password on the command line, you will be prompted for the correct password before any data can be received. - Many older SSL-servers have problems with SSLv3 or TLS, that newer versions - of OpenSSL etc is using, therefore it is sometimes useful to specify what + Many older SSL-servers have problems with SSLv3 or TLS, which newer versions + of OpenSSL etc use, therefore it is sometimes useful to specify what SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL version to use (for SSLv3, SSLv2 or TLSv1 respectively): @@ -675,14 +715,13 @@ HTTPS Otherwise, curl will first attempt to use v3 and then v2. To use OpenSSL to convert your favourite browser's certificate into a PEM - formatted one that curl can use, do something like this (assuming netscape, - but IE is likely to work similarly): + formatted one that curl can use, do something like this: - You start with hitting the 'security' menu button in netscape. + In Netscape, you start with hitting the 'Security' menu button. Select 'certificates->yours' and then pick a certificate in the list - Press the 'export' button + Press the 'Export' button enter your PIN code for the certs @@ -693,11 +732,21 @@ HTTPS # ./apps/openssl pkcs12 -in [file you saved] -clcerts -out [PEMfile] + In Firefox, select Options, then Advanced, then the Encryption tab, + View Certificates. This opens the Certificate Manager, where you can + Export. Be sure to select PEM for the Save as type. + + In Internet Explorer, select Internet Options, then the Content tab, then + Certificates. Then you can Export, and depending on the format you may + need to convert to PEM. + + In Chrome, select Settings, then Show Advanced Settings. Under HTTPS/SSL + select Manage Certificates. RESUMING FILE TRANSFERS To continue a file transfer where it was previously aborted, curl supports - resume on http(s) downloads as well as ftp uploads and downloads. + resume on HTTP(S) downloads as well as FTP uploads and downloads. Continue downloading a document: @@ -711,7 +760,7 @@ RESUMING FILE TRANSFERS curl -C - -o file http://www.server.com/ - (*1) = This requires that the ftp server supports the non-standard command + (*1) = This requires that the FTP server supports the non-standard command SIZE. If it doesn't, curl will say so. (*2) = This requires that the web server supports at least HTTP/1.1. If it @@ -720,7 +769,7 @@ RESUMING FILE TRANSFERS TIME CONDITIONS HTTP allows a client to specify a time condition for the document it - requests. It is If-Modified-Since or If-Unmodified-Since. Curl allow you to + requests. It is If-Modified-Since or If-Unmodified-Since. Curl allows you to specify them with the -z/--time-cond flag. For example, you can easily make a download that only gets performed if the @@ -768,7 +817,7 @@ LDAP and offer ldap:// support. LDAP is a complex thing and writing an LDAP query is not an easy task. I do - advice you to dig up the syntax description for that elsewhere. Two places + advise you to dig up the syntax description for that elsewhere. Two places that might suit you are: Netscape's "Netscape Directory SDK 3.0 for C Programmer's Guide Chapter 10: @@ -777,7 +826,7 @@ LDAP RFC 2255, "The LDAP URL Format" http://curl.haxx.se/rfc/rfc2255.txt - To show you an example, this is now I can get all people from my local LDAP + To show you an example, this is how I can get all people from my local LDAP server that has a certain sub-domain in their email address: curl -B "ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se" @@ -811,15 +860,15 @@ ENVIRONMENT VARIABLES NETRC Unix introduced the .netrc concept a long time ago. It is a way for a user - to specify name and password for commonly visited ftp sites in a file so + to specify name and password for commonly visited FTP sites in a file so that you don't have to type them in each time you visit those sites. You realize this is a big security risk if someone else gets hold of your passwords, so therefore most unix programs won't read this file unless it is only readable by yourself (curl doesn't care though). - Curl supports .netrc files if told so (using the -n/--netrc and - --netrc-optional options). This is not restricted to only ftp, - but curl can use it for all protocols where authentication is used. + Curl supports .netrc files if told to (using the -n/--netrc and + --netrc-optional options). This is not restricted to just FTP, + so curl can use it for all protocols where authentication is used. A very simple .netrc file could look something like: @@ -840,7 +889,7 @@ KERBEROS FTP TRANSFER Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need the kerberos package installed and used at curl build time for it to be - used. + available. First, get the krb-ticket the normal way, like with the kinit/kauth tool. Then use curl in way similar to: @@ -875,7 +924,7 @@ TELNET - NEW_ENV= Sets an environment variable. - NOTE: the telnet protocol does not specify any way to login with a specified + NOTE: The telnet protocol does not specify any way to login with a specified user and password so curl can't do that automatically. To do that, you need to track when the login prompt is received and send the username and password accordingly. @@ -894,7 +943,7 @@ PERSISTENT CONNECTIONS Note that curl cannot use persistent connections for transfers that are used in subsequence curl invokes. Try to stuff as many URLs as possible on the same command line if they are using the same host, as that'll make the - transfers faster. If you use a http proxy for file transfers, practically + transfers faster. If you use an HTTP proxy for file transfers, practically all transfers will be persistent. MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE @@ -926,15 +975,37 @@ IPv6 When this style is used, the -g option must be given to stop curl from interpreting the square brackets as special globbing characters. Link local and site local addresses including a scope identifier, such as fe80::1234%1, - may also be used, but the scope portion must be numeric and the percent - character must be URL escaped. The previous example in an SFTP URL might - look like: + may also be used, but the scope portion must be numeric or match an existing + network interface on Linux and the percent character must be URL escaped. The + previous example in an SFTP URL might look like: sftp://[fe80::1234%251]/ IPv6 addresses provided other than in URLs (e.g. to the --proxy, --interface or --ftp-port options) should not be URL encoded. +METALINK + + Curl supports Metalink (both version 3 and 4 (RFC 5854) are supported), a way + to list multiple URIs and hashes for a file. Curl will make use of the mirrors + listed within for failover if there are errors (such as the file or server not + being available). It will also verify the hash of the file after the download + completes. The Metalink file itself is downloaded and processed in memory and + not stored in the local file system. + + Example to use a remote Metalink file: + + curl --metalink http://www.example.com/example.metalink + + To use a Metalink file in the local file system, use FILE protocol (file://): + + curl --metalink file://example.metalink + + Please note that if FILE protocol is disabled, there is no way to use a local + Metalink file at the time of this writing. Also note that if --metalink and + --include are used together, --include will be ignored. This is because including + headers in the response will break Metalink parser and if the headers are included + in the file described in Metalink file, hash check will fail. MAILING LISTS diff --git a/docs/Makefile.am b/docs/Makefile.am index 316b4f4..1f92911 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,11 +1,31 @@ +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| # +# Copyright (C) 1998 - 2014, Daniel Stenberg, , 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 http://curl.haxx.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. +# +########################################################################### AUTOMAKE_OPTIONS = foreign no-dependencies man_MANS = curl.1 curl-config.1 -GENHTMLPAGES = curl.html curl-config.html -PDFPAGES = curl.pdf curl-config.pdf +noinst_man_MANS = mk-ca-bundle.1 +GENHTMLPAGES = curl.html curl-config.html mk-ca-bundle.html +PDFPAGES = curl.pdf curl-config.pdf mk-ca-bundle.pdf HTMLPAGES = $(GENHTMLPAGES) index.html @@ -16,7 +36,9 @@ CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \ README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \ KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \ - $(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp + $(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp \ + MAIL-ETIQUETTE HTTP-COOKIES LIBCURL-STRUCTS SECURITY RELEASE-PROCEDURE \ + SSL-PROBLEMS MAN2HTML= roffit < $< >$@ diff --git a/docs/Makefile.in b/docs/Makefile.in deleted file mode 100644 index 3cc2e3b..0000000 --- a/docs/Makefile.in +++ /dev/null @@ -1,649 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = docs -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in INSTALL \ - THANKS TODO -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \ - $(top_srcdir)/m4/curl-confopts.m4 \ - $(top_srcdir)/m4/curl-functions.m4 \ - $(top_srcdir)/m4/curl-override.m4 \ - $(top_srcdir)/m4/curl-reentrant.m4 \ - $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \ - $(top_builddir)/src/curl_config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = -depcomp = -am__depfiles_maybe = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -man1dir = $(mandir)/man1 -am__installdirs = "$(DESTDIR)$(man1dir)" -MANS = $(man_MANS) -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_LIBHOSTNAME_FALSE = @BUILD_LIBHOSTNAME_FALSE@ -BUILD_LIBHOSTNAME_TRUE = @BUILD_LIBHOSTNAME_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURLDEBUG_FALSE = @CURLDEBUG_FALSE@ -CURLDEBUG_TRUE = @CURLDEBUG_TRUE@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ -CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ -CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ -CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_SHARED = @ENABLE_SHARED@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -KRB4_ENABLED = @KRB4_ENABLED@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANOPT = @MANOPT@ -MIMPURE_FALSE = @MIMPURE_FALSE@ -MIMPURE_TRUE = @MIMPURE_TRUE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ -NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ -NROFF = @NROFF@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH = @PATH@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@ -SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@ -SSL_ENABLED = @SSL_ENABLED@ -STATICLIB_FALSE = @STATICLIB_FALSE@ -STATICLIB_TRUE = @STATICLIB_TRUE@ -STRIP = @STRIP@ -SUPPORT_FEATURES = @SUPPORT_FEATURES@ -SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_ARES = @USE_ARES@ -USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@ -USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@ -USE_GNUTLS = @USE_GNUTLS@ -USE_LIBRTMP = @USE_LIBRTMP@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_OPENLDAP = @USE_OPENLDAP@ -USE_POLARSSL = @USE_POLARSSL@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -AUTOMAKE_OPTIONS = foreign no-dependencies -man_MANS = curl.1 curl-config.1 -GENHTMLPAGES = curl.html curl-config.html -PDFPAGES = curl.pdf curl-config.pdf -HTMLPAGES = $(GENHTMLPAGES) index.html -SUBDIRS = examples libcurl -CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES) -EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \ - README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \ - KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \ - $(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp - -MAN2HTML = roffit < $< >$@ -SUFFIXES = .1 .html .pdf -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .1 .html .pdf -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-man1: $(man1_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ - done -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(MANS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(man1dir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: install-man - -install-exec-am: - -install-info: install-info-recursive - -install-man: install-man1 - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am uninstall-man - -uninstall-info: uninstall-info-recursive - -uninstall-man: uninstall-man1 - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-man1 install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-info-am \ - uninstall-man uninstall-man1 - - -html: $(HTMLPAGES) - cd libcurl; make html - -pdf: $(PDFPAGES) - cd libcurl; make pdf - -.1.html: - $(MAN2HTML) - -.1.pdf: - @(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \ - groff -Tps -man $< >$$foo.ps; \ - ps2pdf $$foo.ps $@; \ - rm $$foo.ps; \ - echo "converted $< to $@") -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/README.cmake b/docs/README.cmake new file mode 100644 index 0000000..084c1de --- /dev/null +++ b/docs/README.cmake @@ -0,0 +1,16 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +README.cmake + Read the README file first. + + Curl contains CMake build files that provide a way to build Curl with the + CMake build tool (www.cmake.org). CMake is a cross platform meta build tool + that generates native makefiles and IDE project files. The CMake build + system can be used to build Curl on any of its supported platforms. + + Read the INSTALL.cmake file for instructions on how to compile curl with + CMake. diff --git a/docs/README.netware b/docs/README.netware index 41da2e8..12065f3 100644 --- a/docs/README.netware +++ b/docs/README.netware @@ -10,7 +10,7 @@ README.netware Curl has been successfully compiled with gcc / nlmconv on different flavours of Linux as well as with the official Metrowerks CodeWarrior compiler. - While not being the main development target, a continously growing share of + While not being the main development target, a continuously growing share of curl users are NetWare-based, specially also consuming the lib from PHP. The unix-style man pages are tricky to read on windows, so therefore are all diff --git a/docs/RELEASE-PROCEDURE b/docs/RELEASE-PROCEDURE new file mode 100644 index 0000000..2f85b3f --- /dev/null +++ b/docs/RELEASE-PROCEDURE @@ -0,0 +1,94 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +curl release procedure - how to do a release +============================================ + +in the source code repo +----------------------- + +- edit `RELEASE-NOTES` to be accurate + +- update `docs/THANKS` + +- make sure all relevant changes are committed on the master branch + +- tag the git repo in this style: `git tag -a curl-7_34_0`. -a annotates the + tag and we use underscores instead of dots in the version number. + +- run "./maketgz 7.34.0" to build the release tarballs. It is important that + you run this on a machine with the correct set of autotools etc installed + as this is what then will be shipped and used by most users on *nix like + systems. + +- push the git commits and the new tag + +- gpg sign the 4 tarballs as maketgz suggests + +- upload the 8 resulting files to the primary download directory + +in the curl-www repo +-------------------- + +- edit `Makefile` (version number and date), + +- edit `_newslog.html` (announce the new release) and + +- edit `_changes.html` (insert changes+bugfixes from RELEASE-NOTES) + +- commit all local changes + +- tag the repo with the same tag as used for the source repo + +- make sure all relevant changes are committed and pushed on the master branch + + (the web site then updates its contents automatically) + +inform +------ + +- send an email to curl-users, curl-announce and curl-library. Insert the + RELEASE-NOTES into the mail. + +celebrate +--------- + +- suitable beverage intake is encouraged for the festivities + +curl release scheduling +======================= + +Basics +------ + +We do releases every 8 weeks on Wednesdays. If critical problems arise, we can +insert releases outside of the schedule or we can move the release date - but +this is very rare. + +Each 8 week release cycle is split in two 4-week periods. + +- During the first 4 weeks after a release, we allow new features and changes + to curl and libcurl. If we accept any such changes, we bump the minor number + used for the next release. + +- During the second 4-week period we do not merge any features or changes, we + then only focus on fixing bugs and polishing things to make a solid coming + release. + +Coming dates +------------ + +Based on the description above, here are some planned release dates (at the +time of this writing): + +- November 5, 2014 (version 7.39.0) +- December 31, 2014 +- February 25, 2015 +- April 22, 2015 +- June 17, 2015 +- August 12, 2015 +- October 7, 2015 +- December 2, 2015 diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md new file mode 100644 index 0000000..01fe085 --- /dev/null +++ b/docs/ROADMAP.md @@ -0,0 +1,85 @@ +curl the next few years - perhaps +================================= + +Roadmap of things Daniel Stenberg and Steve Holme want to work on next. It is +intended to serve as a guideline for others for information, feedback and +possible participation. + +New stuff - libcurl +------------------- + +1. http2 test suite + +2. http2 multiplexing/pipelining + +3. SPDY + +4. SRV records + +5. HTTPS to proxy + +6. make sure there's an easy handle passed in to `curl_formadd()`, + `curl_formget()` and `curl_formfree()` by adding replacement functions and + deprecating the old ones to allow custom mallocs and more + +7. add support for third-party SASL libraries such as Cyrus SASL - may need to + move existing native and SSPI based authentication into vsasl folder after + reworking HTTP and SASL code + +8. SASL authentication in LDAP + +9. Simplify the SMTP email interface so that programmers don't have to + construct the body of an email that contains all the headers, alternative + content, images and attachments - maintain raw interface so that + programmers that want to do this can + +10. Allow the email protocols to return the capabilities before + authenticating. This will allow an application to decide on the best + authentication mechanism + +11. Allow Windows threading model to be replaced by Win32 pthreads port + +12. Implement a dynamic buffer size to allow SFTP to use much larger buffers + and possibly allow the size to be customizable by applications. Use less + memory when handles are not in use? + +New stuff - curl +---------------- + +1. Embed a language interpreter (lua?). For that middle ground where curl + isn’t enough and a libcurl binding feels “too much”. Build-time conditional + of course. + +2. Simplify the SMTP command line so that the headers and multi-part content + don't have to be constructed before calling curl + +Improve +------- + +1. build for windows (considered hard by many users) + +2. curl -h output (considered overwhelming to users) + +3. we have > 160 command line options, is there a way to redo things to + simplify or improve the situation as we are likely to keep adding + features/options in the future too + +4. docs (considered "bad" by users but how do we make it better?) + + - split up `curl_easy_setopt.3` + - split up curl.1 + +5. authentication framework (consider merging HTTP and SASL authentication to + give one API for protocols to call) + +6. Perform some of the clean up from the TODO document, removing old + definitions and such like that are currently earmarked to be removed years + ago + +Remove +------ + +1. cmake support (nobody maintains it) + +2. makefile.vc files as there is no point in maintaining two sets of Windows + makefiles. Note: These are currently being used by the Windows autobuilds diff --git a/docs/SECURITY b/docs/SECURITY new file mode 100644 index 0000000..ee844d8 --- /dev/null +++ b/docs/SECURITY @@ -0,0 +1,107 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +curl security for developers +============================ + +This document is intended to provide guidance to curl developers on how +security vulnerabilities should be handled. + +Publishing Information +---------------------- + +All known and public curl or libcurl related vulnerabilities are listed on +[the curl web site security page](http://curl.haxx.se/docs/security.html). + +Security vulnerabilities should not be entered in the project's public bug +tracker unless the necessary configuration is in place to limit access to the +issue to only the reporter and the project's security team. + +Vulnerability Handling +---------------------- + +The typical process for handling a new security vulnerability is as follows. + +No information should be made public about a vulnerability until it is +formally announced at the end of this process. That means, for example that a +bug tracker entry must NOT be created to track the issue since that will make +the issue public and it should not be discussed on any of the project's public +mailing lists. Also messages associated with any commits should not make +any reference to the security nature of the commit if done prior to the public +announcement. + +- The person discovering the issue, the reporter, reports the vulnerability + privately to `curl-security@haxx.se`. That's an email alias that reaches a + handful of selected and trusted people. + +- Messages that do not relate to the reporting or managing of an undisclosed + security vulnerability in curl or libcurl are ignored and no further action + is required. + +- A person in the security team sends an e-mail to the original reporter to + acknowledge the report. + +- The security team investigates the report and either rejects it or accepts + it. + +- If the report is rejected, the team writes to the reporter to explain why. + +- If the report is accepted, the team writes to the reporter to let him/her + know it is accepted and that they are working on a fix. + +- The security team discusses the problem, works out a fix, considers the + impact of the problem and suggests a release schedule. This discussion + should involve the reporter as much as possible. + +- The release of the information should be "as soon as possible" and is most + often synced with an upcoming release that contains the fix. If the + reporter, or anyone else, thinks the next planned release is too far away + then a separate earlier release for security reasons should be considered. + +- Write a security advisory draft about the problem that explains what the + problem is, its impact, which versions it affects, solutions or + workarounds, when the release is out and make sure to credit all + contributors properly. + +- Request a CVE number from distros@openwall[1] when also informing and + preparing them for the upcoming public security vulnerability announcement - + attach the advisory draft for information. Note that 'distros' won't accept + an embargo longer than 19 days. + +- Update the "security advisory" with the CVE number. + +- The security team commits the fix in a private branch. The commit message + should ideally contain the CVE number. This fix is usually also distributed + to the 'distros' mailing list to allow them to use the fix prior to the + public announcement. + +- At the day of the next release, the private branch is merged into the master + branch and pushed. Once pushed, the information is accessible to the public + and the actual release should follow suit immediately afterwards. + +- The project team creates a release that includes the fix. + +- The project team announces the release and the vulnerability to the world in + the same manner we always announce releases. It gets sent to the + curl-announce, curl-library and curl-users mailing lists. + +- The security web page on the web site should get the new vulnerability + mentioned. + +[1] = http://oss-security.openwall.org/wiki/mailing-lists/distros + +CURL-SECURITY (at haxx dot se) +------------------------------ + +Who is on this list? There are a couple of criteria you must meet, and then we +might ask you to join the list or you can ask to join it. It really isn't very +formal. We basically only require that you have a long-term presence in the +curl project and you have shown an understanding for the project and its way +of working. You must've been around for a good while and you should have no +plans in vanishing in the near future. + +We do not make the list of partipants public mostly because it tends to vary +somewhat over time and a list somewhere will only risk getting outdated. diff --git a/docs/SSL-PROBLEMS b/docs/SSL-PROBLEMS new file mode 100644 index 0000000..7ee4d14 --- /dev/null +++ b/docs/SSL-PROBLEMS @@ -0,0 +1,67 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +SSL problems + + First, let's establish that we often refer to TLS and SSL interchangeably as + SSL here. The current protocol is called TLS, it was called SSL a long time + ago. + + There are several known reasons why a connection that involves SSL might + fail. This is a document that attempts to details the most common ones and + how to mitigate them. + +CA certs + + CA certs are used to digitally verify the server's certificate. You need a + "ca bundle" for this. See lots of more details on this in the SSLCERTS + document. + +CA bundle missing intermediate certificates + + When using said CA bundle to verify a server cert, you will experience + problems if your CA cert does not have the certificates for the + intermediates in the whole trust chain. + +SSL version + + Some broken servers fail to support the protocol negotiation properly that + SSL servers are supposed to handle. This may cause the connection to fail + completely. Sometimes you may need to explicitly select a SSL version to use + when connecting to make the connection succeed. + + An additional complication can be that modern SSL libraries sometimes are + built with support for older SSL and TLS versions disabled! + +SSL ciphers + + Clients give servers a list of ciphers to select from. If the list doesn't + include any ciphers the server wants/can use, the connection handshake + fails. + + curl has recently disabled the user of a whole bunch of seriously insecure + ciphers from its default set (slightly depending on SSL backend in use). + + You may have to explicitly provide an alternative list of ciphers for curl + to use to allow the server to use a WEAK cipher for you. + + Note that these weak ciphers are identified as flawed. For example, this + includes symmetric ciphers with less than 128 bit keys and RC4. + + References: + + http://tools.ietf.org/html/draft-popov-tls-prohibiting-rc4-01 + +Allow BEAST + + BEAST is the name of a TLS 1.0 attack that surfaced 2011. When adding means + to mitigate this attack, it turned out that some broken servers out there in + the wild didn't work properly with the BEAST mitigation in place. + + To make such broken servers work, the --ssl-allow-beast option was + introduced. Exactly as it sounds, it re-introduces the BEAST vulnerability + but on the other hand it allows curl to connect to that kind of strange + servers. diff --git a/docs/SSLCERTS b/docs/SSLCERTS index 0d1414c..89e5bb6 100644 --- a/docs/SSLCERTS +++ b/docs/SSLCERTS @@ -1,17 +1,46 @@ - Peer SSL Certificate Verification - ================================= +SSL Certificate Verification +============================ + +SSL is TLS +---------- + +SSL is the old name. It is called TLS these days. + + +Native SSL +---------- + +If libcurl was built with Schannel or Secure Transport support (the native SSL +libraries included in Windows and Mac OS X), then this does not apply to +you. Scroll down for details on how the OS-native engines handle SSL +certificates. If you're not sure, then run "curl -V" and read the results. If +the version string says "WinSSL" in it, then it was built with Schannel +support. + +It is about trust +----------------- + +This system is about trust. In your local CA cert bundle you have certs from +*trusted* Certificate Authorities that you then can use to verify that the +server certificates you see are valid. They're signed by one of the CAs you +trust. + +Which CAs do you trust? You can decide to trust the same set of companies your +operating system trusts, or the set one of the known browsers trust. That's +basically trust via someone else you trust. You should just be aware that +modern operating systems and browsers are setup to trust *hundreds* of +companies and recent years several such CAs have been found untrustworthy. + +Certificate Verification +------------------------ libcurl performs peer SSL certificate verification by default. This is done by using CA cert bundle that the SSL library can use to make sure the peer's server certificate is valid. -If you communicate with HTTPS or FTPS servers using certificates that are -signed by CAs present in the bundle, you can be sure that the remote server -really is the one it claims to be. - -Until 7.18.0, curl bundled a severely outdated ca bundle file that was -installed by default. These days, the curl archives include no ca certs at -all. You need to get them elsewhere. See below for example. +If you communicate with HTTPS, FTPS or other TLS-using servers using +certificates that are signed by CAs present in the bundle, you can be sure +that the remote server really is the one it claims to be. If the remote server uses a self-signed certificate, if you don't install a CA cert bundle, if the server uses a certificate signed by a CA that isn't @@ -20,13 +49,13 @@ impersonating your favorite site, and you want to transfer files from this server, do one of the following: 1. Tell libcurl to *not* verify the peer. With libcurl you disable this with - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE); + `curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);` With the curl command line tool, you disable this with -k/--insecure. 2. Get a CA certificate that can verify the remote server and use the proper option to point out this CA cert for verification when connecting. For - libcurl hackers: curl_easy_setopt(curl, CURLOPT_CAPATH, capath); + libcurl hackers: `curl_easy_setopt(curl, CURLOPT_CAPATH, capath);` With the curl command line tool: --cacert [file] @@ -40,32 +69,32 @@ server, do one of the following: If you use Internet Explorer, this is one way to get extract the CA cert for a particular server: - o View the certificate by double-clicking the padlock - o Find out where the CA certificate is kept (Certificate> + - View the certificate by double-clicking the padlock + - Find out where the CA certificate is kept (Certificate> Authority Information Access>URL) - o Get a copy of the crt file using curl - o Convert it from crt to PEM using the openssl tool: + - Get a copy of the crt file using curl + - Convert it from crt to PEM using the openssl tool: openssl x509 -inform DES -in yourdownloaded.crt \ -out outcert.pem -text - o Append the 'outcert.pem' to the CA cert bundle or use it stand-alone + - Append the 'outcert.pem' to the CA cert bundle or use it stand-alone as described below. If you use the 'openssl' tool, this is one way to get extract the CA cert for a particular server: - o openssl s_client -connect xxxxx.com:443 |tee logfile - o type "QUIT", followed by the "ENTER" key - o The certificate will have "BEGIN CERTIFICATE" and "END CERTIFICATE" + - `openssl s_client -connect xxxxx.com:443 |tee logfile` + - type "QUIT", followed by the "ENTER" key + - The certificate will have "BEGIN CERTIFICATE" and "END CERTIFICATE" markers. - o If you want to see the data in the certificate, you can do: "openssl + - If you want to see the data in the certificate, you can do: "openssl x509 -inform PEM -in certfile -text -out certdata" where certfile is the cert you extracted from logfile. Look in certdata. - o If you want to trust the certificate, you can append it to your - cert_bundle or use it stand-alone as described. Just remember that the + - If you want to trust the certificate, you can append it to your + cert bundle or use it stand-alone as described. Just remember that the security is no better than the way you obtained the certificate. 4. If you're using the curl command line tool, you can specify your own CA - cert path by setting the environment variable CURL_CA_BUNDLE to the path + cert path by setting the environment variable `CURL_CA_BUNDLE` to the path of your choice. If you're using the curl command line tool on Windows, curl will search @@ -80,9 +109,7 @@ server, do one of the following: 5. Get a better/different/newer CA cert bundle! One option is to extract the one a recent Firefox browser uses by running 'make ca-bundle' in the curl build tree root, or possibly download a version that was generated this - way for you: - - http://curl.haxx.se/docs/caextract.html + way for you: [CA Extract](http://curl.haxx.se/docs/caextract.html) Neglecting to use one of the above methods when dealing with a server using a certificate that isn't signed by one of the certificates in the installed CA @@ -90,27 +117,37 @@ cert bundle, will cause SSL to report an error ("certificate verify failed") during the handshake and SSL will then refuse further communication with that server. - Peer SSL Certificate Verification with NSS - ========================================== - -If libcurl is build with NSS support then depending on the OS distribution it -is probably required to take some additional steps to use the system-wide CA -cert db. RedHat ships with an additional module libnsspem.so which enables NSS -to read the OpenSSL PEM CA bundle. With OpenSuSE this lib is missing, and NSS -can only work with its own internal formats. Also NSS got a new database -format: -https://wiki.mozilla.org/NSS_Shared_DB -Starting with version 7.19.7 libcurl will check for the NSS version it runs, -and add automatically the 'sql:' prefix to the certdb directory (either the -hardcoded default /etc/pki/nssdb or the directory configured with SSL_DIR -environment variable) if a version 3.12.0 or later is detected. -To check which certdb format your distribution provides examine the default -certdb location /etc/pki/nssdb; the new certdb format can be identified by -the filenames cert9.db, key4.db, pkcs11.txt; filenames of older versions are -cert8.db, key3.db, modsec.db. -Usually these cert databases are empty; but NSS also has built-in CAs which are -provided through a shared library libnssckbi.so; if you want to use these -built-in CAs then create a symlink to libnssckbi.so in /etc/pki/nssdb: -ln -s /usr/lib[64]/libnssckbi.so /etc/pki/nssdb/libnssckbi.so - - +Certificate Verification with NSS +--------------------------------- + +If libcurl was built with NSS support, then depending on the OS distribution, +it is probably required to take some additional steps to use the system-wide +CA cert db. RedHat ships with an additional module, libnsspem.so, which +enables NSS to read the OpenSSL PEM CA bundle. This library is missing in +OpenSuSE, and without it, NSS can only work with its own internal formats. NSS +also has a new [database format](https://wiki.mozilla.org/NSS_Shared_DB). + +Starting with version 7.19.7, libcurl automatically adds the 'sql:' prefix to +the certdb directory (either the hardcoded default /etc/pki/nssdb or the +directory configured with SSL_DIR environment variable). To check which certdb +format your distribution provides, examine the default certdb location: +/etc/pki/nssdb; the new certdb format can be identified by the filenames +cert9.db, key4.db, pkcs11.txt; filenames of older versions are cert8.db, +key3.db, secmod.db. + +Certificate Verification with Schannel and Secure Transport +----------------------------------------------------------- + +If libcurl was built with Schannel (Microsoft's native TLS engine) or Secure +Transport (Apple's native TLS engine) support, then libcurl will still perform +peer certificate verification, but instead of using a CA cert bundle, it will +use the certificates that are built into the OS. These are the same +certificates that appear in the Internet Options control panel (under Windows) +or Keychain Access application (under OS X). Any custom security rules for +certificates will be honored. + +Schannel will run CRL checks on certificates unless peer verification is +disabled. Secure Transport on iOS will run OCSP checks on certificates unless +peer verification is disabled. Secure Transport on OS X will run either OCSP +or CRL checks on certificates if those features are enabled, and this behavior +can be adjusted in the preferences of Keychain Access. diff --git a/docs/THANKS b/docs/THANKS index edcd513..32aee19 100644 --- a/docs/THANKS +++ b/docs/THANKS @@ -4,24 +4,39 @@ If you have contributed but are missing here, please let us know! +Aaro Koskinen Aaron Oneal +Aaron Orenstein +Abram Pousada Adam D. Moss Adam Light Adam Piggott +Adam Sampson +Adam Tkac Adrian Schuur +Adriano Meirelles +Ajit Dhumale +Aki Koskinen Akos Pasztory Alan Pinstein Albert Chin-A-Young Albert Choy Ale Vesely +Alejandro Alvarez Ayllon Aleksandar Milivojevic +Aleksey Tulinov +Alessandro Ghedini Alessandro Vesely Alex Bligh Alex Fishman +Alex Gruz +Alex McLellan Alex Neblett Alex Suykov +Alex Vinnik Alex aka WindEagle Alexander Beedie +Alexander Klauer Alexander Kourakos Alexander Krasnostavsky Alexander Lazic @@ -29,68 +44,112 @@ Alexander Zhuravlev Alexey Borzov Alexey Pesternikov Alexey Simak +Alexey Zakhlestin Alexis Carvalho +Alfred Gebert Allen Pulsifer +Alona Rossen Amol Pattekar +Amr Shahin Anatoli Tubman Anders Gustafsson +Anders Havn Andi Jahja Andre Guibert de Bruet +Andre Heinecke Andreas Damm Andreas Faerber Andreas Farber +Andreas Malzahn Andreas Ntaflos Andreas Olsson Andreas Rieke Andreas Schuldei Andreas Wurf Andrei Benea -Andres Garcia +Andrei Cipu +Andrei Kurushin +Andrej E Baranov Andrew Benham Andrew Biggs Andrew Bushnell Andrew Francis Andrew Fuller +Andrew Kurushin Andrew Moise Andrew Wansink Andrew de los Reyes -Andrés García +Andrey Labunets +Andrii Moiseiev +Andrés García Andy Cedilnik Andy Serpa Andy Tsouladze Angus Mackay +Anthon Pang Anthony Bryan +Anthony G. Basile Antoine Calando +Anton Bychkov Anton Kalmykov +Anton Malov +Anton Yabchinskiy Arkadiusz Miskiewicz Armel Asselin +Arnaud Compan Arnaud Ebalard +Arthur Murray Arve Knudsen +Arvid Norberg +Ask Bjørn Hansen +Askar Safin Ates Goral Augustus Saunders Avery Fay Axel Tillequin +Balaji Parasuram +Balaji Salunke Balint Szilakszi +Barry Abrahamson Bart Whiteley Bas Mevissen Ben Darnell Ben Greear Ben Madsen +Ben Noordhuis Ben Van Hof +Ben Winslow Benbuck Nason Benjamin Gerard +Benjamin Gilbert +Benjamin Johnson +Benoit Neil +Benoit Sigoure Bernard Leak +Bernhard Reutner-Fischer Bertrand Demiddelaer +Bill Doyle Bill Egert Bill Hoffman +Bill Middlecamp +Bill Nagel +Bjoern Sikora Bjorn Augustsson Bjorn Reese -Björn Stenberg +Björn Stenberg +Blaise Potard +Bob Relyea Bob Richmond Bob Schader Bogdan Nicula Brad Burdick +Brad Harder +Brad Hards +Brad King +Brad Spencer Bradford Bruce +Brandon Casey +Brandon Wang Brendan Jurd Brent Beardsley Brian Akins @@ -100,39 +159,56 @@ Brian R Duffy Brian Ulm Brock Noland Bruce Mitchener +Bruno Thomsen +Bruno de Carvalho Bryan Henderson Bryan Kemp +Byrial Jensen Cameron Kaiser Camille Moncelier Caolan McNamara +Carlo Wood Carsten Lange Casey O'Donnell +Catalin Patulea Chad Monroe +Chandrakant Bagul Charles Kerr +Chen Prog Chih-Chung Chang Chris "Bob Bob" Chris Combes -Chris Conroy +Chris Conlon Chris Deidun Chris Flerackers Chris Gaukroger Chris Maltby Chris Mumford +Chris Smowton +Chris Young +Christian Grothoff +Christian Hägele Christian Krause Christian Kurz Christian Robottom Reis Christian Schmitz Christian Vogt +Christian Weisgerber Christophe Demory Christophe Legry Christopher Conroy Christopher Palow Christopher R. Palmer +Christopher Stone Ciprian Badescu Claes Jakobsson Clarence Gardner +Clemens Gruber Clifford Wolf Cody Jones +Cody Mack +Colby Ranger +Colin Blair Colin Hogben Colin Watson Colm Buckley @@ -142,8 +218,14 @@ Craig A West Craig Davison Craig Markwardt Cris Bailiff +Cristian Rodríguez Curt Bogmine Cyrill Osterwalder +Cédric Deltheil +D. Flinkmann +Dag Ekengren +Dagobert Michelsen +Damian Dixon Damien Adant Dan Becker Dan C @@ -156,19 +238,24 @@ Dan Zitter Daniel Black Daniel Cater Daniel Egger -Daniel Fandrich Daniel Johnson +Daniel Mentz Daniel Steinberg Daniel Stenberg +Daniel Theron Daniel at touchtunes Darryl House +Darshan Mody Dave Dribin Dave Halbakken Dave Hamilton Dave May +Dave Reisner +Dave Thompson Dave Vasilevsky David Bau David Binderman +David Blaikie David Byron David Cohen David Eriksson @@ -181,32 +268,46 @@ David Kimdon David Lang David LeBlanc David McCreedy +David Meyer David Odin David Phillips David Rosenstrauch +David Ryskalczyk David Shaw +David Strauss David Tarendash David Thiel +David Walser +David Woodhouse David Wright David Yan Dengminwen +Dennis Clarke +Derek Higgins Detlef Schmier Didier Brisebourg Diego Casorran +Dilyan Palauzov Dima Barsky +Dima Tisnek +Dimitar Boevski Dimitre Dimitrov +Dimitrios Siganos Dimitris Sarris Dinar Dirk Eddelbuettel Dirk Manske +Dmitri Shubin Dmitriy Sergeyev Dmitry Bartsevich +Dmitry Falko Dmitry Kurochkin Dmitry Popov Dmitry Rechkin Dolbneff A.V Domenico Andreoli Dominick Meglio +Dominique Leuenberger Doug Kaufman Doug Porter Douglas E. Wegscheid @@ -221,60 +322,88 @@ Dylan Ellicott Dylan Salisbury Early Ehlinger Ebenezer Ikonne +Ed Morley Edin Kadribasic Eduard Bloch +Edward Rudd +Edward Sheldrake +Eelco Dolstra Eetu Ojanen +Eldar Zaitov Ellis Pritchard +Elmira A Semenova Emanuele Bovisio Emil Romanus Emiliano Ida Enrico Scholz Enrik Berkhan Eric Cooper +Eric Hu Eric Landes Eric Lavigne +Eric Lubin Eric Melville Eric Mertens Eric Rautman +Eric S. Raymond Eric Thelin Eric Vergnaud Eric Wong Eric Young Erick Nuwendam +Erik Johansson +Ernest Beinrohr Erwan Legrand Erwin Authried +Ethan Glasser Camp Eugene Kotlyarov Evan Jordan +Evgeny Turnaev Eygene Ryabinkin +Fabian Frank +Fabian Hiernaux Fabian Keil Fabrizio Ammollo Fedor Karpelevitch +Felix Yan Felix von Leitner Feng Tu Florian Schoppmann +Florian Weimer Forrest Cahoon +Frank Gevaerts Frank Hempel Frank Keeney Frank McGeough Frank Meier Frank Ticheler +Frank Van Uffelen +FrantiÅ¡ek Kučera +François Charlier Fred Machado Fred New Fred Noz Frederic Lepied +Fredrik Thulin Gabriel Kuri +Gabriel Sjoberg +Garrett Holmstrom Gary Maxwell Gautam Kachroo Gautam Mani Gavrie Philipson Gaz Iqbal +Gaël Portay +Geoff Beier Georg Horn Georg Huettenegger Georg Lippitsch Georg Wicherski Gerd v. Egidy +Gergely Nagy Gerhard Herre -Gerrit Bruchhäuser +Gerrit Bruchhäuser +Ghennadi Procopciuc Giancarlo Formicuccia Giaslas Georgios Gil Weber @@ -284,35 +413,55 @@ Gilles Blanc Gisle Vanem Giuseppe Attardi Giuseppe D'Ambrosio +Glen A Johnson Jr. Glen Nakamura Glen Scott +Glenn Sheridan +Gordon Marler +Gorilla Maguila Grant Erickson Greg Hewgill Greg Morse Greg Onufer +Greg Pratt Greg Zavertnik Grigory Entin Guenole Bescon Guenter Knauf +Guido Berhoerster Guillaume Arluison +Gunter Knauf Gustaf Hui Gwenole Beauchesne -Götz Babin-Ebell +Gökhan Şengün +Götz Babin-Ebell Hamish Mackenzie Hang Kin Lau +Hang Su Hanno Kranzhoff Hans Steegers Hans-Jurgen May Hardeep Singh +Haris Okanovic Harshal Pradhan Hauke Duden +He Qin Heikki Korpela +Heinrich Ko +Heinrich Schaefer +Helwing Lutz Hendrik Visage Henrik Storner +Henry Ludemann +Herve Amblard Hidemoto Nakada +Ho-chi Chen Hoi-Ho Chan +Hongli Lai Howard Chu +Hubert Kario Hzhijun +Ian D Allen Ian Ford Ian Gulliver Ian Lynagh @@ -322,21 +471,26 @@ Ignacio Vazquez-Abrams Igor Franchuk Igor Novoseltsev Igor Polyakov +Iida Yosiaki Ilguiz Latypov Ilja van Sprundel Immanuel Gregoire Ingmar Runge Ingo Ralf Blum Ingo Wilken +Ishan SinghLevett +Ivo Bellin Salarin Jack Zhang Jacky Lam Jacob Meuser Jacob Moshenko Jad Chamcham +Jakub Zakrzewski James Bursa James Cheng James Clancy James Cone +James Dury James Gallagher James Griffiths James Housley @@ -344,12 +498,20 @@ James MacMillan Jamie Lokier Jamie Newton Jamie Wilkinson +Jan Ehrhardt +Jan Koen Annot Jan Kunder +Jan Schaumann Jan Van Boghout +Jared Jennings Jared Lundell +Jari Aalto Jari Sundell +Jason Glasgow +Jason Liu Jason McDonald Jason S. Priebe +Javier Barroso Jay Austin Jayesh A Shah Jaz Fresh @@ -358,67 +520,108 @@ Jean-Claude Chauve Jean-Francois Bertrand Jean-Louis Lemaire Jean-Marc Ranger +Jean-Noël Rouvignac Jean-Philippe Barrette-LaPierre +Jeff Connelly +Jeff Hodges Jeff Johnson +Jeff King Jeff Lawson Jeff Phillips Jeff Pohlmeyer Jeff Weber -Jeffrey Pohlmeyer Jeremy Friesner +Jeremy Huddleston +Jeremy Lin +Jeroen Koekkoek Jerome Muffat-Meridol +Jerome Robert Jerome Vouillon +Jerry Krinock +Jerry Wu Jes Badwal Jesper Jensen Jesse Noller +Jie He Jim Drash Jim Freeman +Jim Hollinger Jim Meyering +Jiri Hruska +Jiri Jaburek +Jiri Malak Jocelyn Jaubert Joe Halpin Joe Malicki +Joe Mason Joel Chen Jofell Gallardo Johan Anderson +Johan Lantz Johan Nilsson Johan van Selst +Johannes Bauer +Johannes Ernst +John Bradshaw +John Coffey John Crow John Dennis +John Dunn John E. Malmberg +John Gardiner Myers John Janssen +John Joseph Bachir John Kelly John Lask John Lightsey +John Marino John McGowan John P. McCaskey +John Suprock John Wilkinson John-Mark Bell Johnny Luong Jon Grubbs Jon Nelson Jon Sargeant +Jon Spencer +Jon Torrey Jon Travis Jon Turner Jonas Forsman +Jonas Schnelli Jonatan Lander +Jonatan Vela +Jonathan Cardoso Machado Jonathan Hseu +Jonathan Nieder Jongki Suwandi +Jose Alf Jose Kahan Josef Wolf Josh Kapell Joshua Kwan +Josue Andrade Gomes +Juan Barreto Juan F. Codagnone -Juan Ignacio Hervás +Juan Ignacio Hervás Judson Bishop Juergen Wilke Jukka Pihl Julian Noble +Julian Taylor Julien Chaffraix +Julien Nabet +Julien Royer Jun-ichiro itojun Hagino Jurij Smakov Justin Fletcher -Jörg Mueller-Tolk -Jörn Hartroth +Justin Karneges +Justin Maggard +Jörg Mueller-Tolk +Jörn Hartroth +K. R. Walker +Kai Engert Kai Sommerfeld Kai-Uwe Rommel Kalle Vahlman @@ -443,61 +646,100 @@ Kevin Lussier Kevin Reed Kevin Roth Kim Rinnewitz +Kim Vandry Kimmo Kinnunen Kjell Ericson Kjetil Jacobsen Klevtsov Vadim +Konstantin Isakov Kris Kennaway Krishnendu Majumdar Krister Johansen Kristian Gunstone -Kristian Köhntopp +Kristian Köhntopp +Kyle J. McKay +Kyle L. Huff Kyle Sallee Lachlan O'Dea Larry Campbell Larry Fahnoe +Larry Lin +Larry Stone +Lars Buitinck Lars Gustafsson Lars J. Aas +Lars Johannesen Lars Nilsson Lars Torben Wilson Lau Hang Kin Laurent Rabret Legoff Vincent Lehel Bernadt +Leif W Len Krause Lenaic Lefever Lenny Rachitsky +Leon Winter +Leonardo Rosati Liam Healy +Lijo Antony Linas Vepstas +Lindley French Ling Thio Linus Nielsen Feltzing Lisa Xu Liza Alenchery +Lluís Batlle i Rossell Loic Dachary Loren Kirkby +Luan Cestari Luca Altea -Luca Alteas Lucas Adamski +Lucas Pardue +Ludek Finstrle +Ludovico Cavedon Lukasz Czekierda +Luke Amery Luke Call +Luke Dashjr Luong Dinh Dung +Lyndon Hill Maciej Karpiuk +Maciej Puzio Maciej W. Rozycki +Maks Naumov +Mamoru Tasaka +Mandy Wu Manfred Schwarb +Manuel Massing Marc Boucher +Marc Deslauriers +Marc Doughty +Marc Hesse +Marc Hoersken Marc Kleine-Budde +Marc Renault +Marcel Raad +Marcel Roelofs Marcelo Juchem +Marcin Adamski +Marcin Gryszkalis Marcin Konicki Marco G. Salvagno Marco Maggi +Marcus Sundberg Marcus Webster Mario Schroeder +Mark Brand Mark Butler Mark Davies Mark Eichin Mark Incley Mark Karpeles Mark Lentczner +Mark Salisbury +Mark Snelling +Mark Tully Markus Duft Markus Koetter Markus Moeller @@ -507,6 +749,8 @@ Martin C. Martin Martin Drasar Martin Hager Martin Hedenfalk +Martin Jansen +Martin Lemke Martin Skinner Martin Storsjo Marty Kuhrt @@ -516,102 +760,151 @@ Massimo Callegari Mateusz Loskot Mathias Axelsson Mats Lidell +Matt Arsenault +Matt Ford Matt Kraai Matt Veenstra Matt Witherspoon Matt Wixson +Matteo Rocco Matthew Blain Matthew Clarke +Matthias Bolte Maurice Barnum Mauro Iorio Max Katsev Maxim Ivanov Maxim Perenesenko +Maxim Prohorov +Maxime Larocque +Mehmet Bozkurt Mekonikum +Melissa Mears Mettgut Jamalla Michael Benedict Michael Calmer Michael Cronenworth Michael Curtis +Michael Day Michael Goffioul Michael Jahn Michael Jerris Michael Mealling +Michael Mueller +Michael Osipov Michael Smith Michael Stillwell Michael Wallner Michal Bonino -Michal Gorny Michal Marek +Michał Górny +Michał Kowalczyk Michele Bini +Miguel Angel +Miguel Diaz Mihai Ionescu Mikael Johansson Mikael Sennerholm Mike Bytnar Mike Crowe Mike Dobbs +Mike Giancola +Mike Hasselberg +Mike Henshaw Mike Hommey +Mike Mio Mike Power Mike Protts Mike Revi Miklos Nemeth +Miroslav Spousta Mitz Wark Mohamed Lrhazi +Mohammad AlSaleh Mohun Biswas -Moonesamy +Myk Taylor +Nach M. S. +Nagai H Nathan Coulter Nathan O'Sullivan Nathanael Nerode +Naveen Chandran Naveen Noel +Neil Bowers Neil Dunbar Neil Spring Nic Roets +Nicholas Maniscalco Nick Gimbrone Nick Humfrey Nick Zitzmann Nico Baggus Nicolas Berloquin Nicolas Croiset -Nicolas François +Nicolas François Niels van Tongeren Nikita Schmidt Nikitinskit Dmitriy Niklas Angebrand Nikolai Kondrashov +Nikos Mavrogiannopoulos Ning Dong Nir Soffer Nis Jorgensen +Nobuhiro Ban Nodak Sodak Norbert Frese Norbert Novotny Ofer -Olaf Stueben -Olaf Stüben +Ola Mork +Olaf Flebbe +Olaf Stüben +Oliver Gondža +Oliver Kuckertz +Oliver Schindler +Olivier Berger Oren Tirosh +Ori Avtalion +Oscar Koeroo +Oscar Norlander P R Schaffner +Paolo Piacentini +Paras Sethia Pascal Terjan +Pasha Kuznetsov +Pasi Karkkainen Pat Ray +Patrice Guerin +Patricia Muscalu Patrick Bihan-Faou +Patrick McManus Patrick Monnerat Patrick Scott Patrick Smith +Patrick Watson Patrik Thunstrom +Pau Garcia i Quiles +Paul Donohue Paul Harrington Paul Howarth +Paul Marks Paul Marquis Paul Moore Paul Nolan Paul Querna +Paul Saab Pavel Cenek Pavel Orehov Pavel Raiskup Pawel A. Gajda Pawel Kierski +Pedro Larroy Pedro Neves -Pete Su Peter Bray Peter Forret +Peter Gal Peter Heuchert +Peter Hjalmarsson Peter Korsgaard Peter Lamberg Peter O'Gorman @@ -621,12 +914,18 @@ Peter Su Peter Sylvester Peter Todd Peter Verhas +Peter Wang +Peter Wu Peter Wullinger Peteris Krumins +Petr Bahula +Petr Novak +Petr Pisar Phil Blundell Phil Karn Phil Lisiecki Phil Pellouchoud +Philip Craig Philip Gladstone Philip Langdale Philippe Hameau @@ -634,16 +933,25 @@ Philippe Raoult Philippe Vaucher Pierre Pierre Brico +Pierre Chapuis Pierre Joye +Pierre Ynard Pooyan McSporran Pramod Sharma +Prash Dush +Priyanka Shah Puneet Pawaia Quagmire Quanah Gibson-Mount +Quinn Slack +Radu Simionescu Rafa Muyo Rafael Sagula +Rafaël Carré Rainer Canavan +Rainer Jung Rainer Koenig +Rajesh Naganathan Ralf S. Engelschall Ralph Beckmann Ralph Mitchell @@ -652,13 +960,17 @@ Randy McMurchy Ravi Pratap Ray Dassen Ray Pekowski +Ray Satiro Reinout van Schouwen +Remi Gacogne Renato Botelho Renaud Chaillat Renaud Duhaut +Renaud Guillard Rene Bernhardt Rene Rebe Reuven Wachtfogel +Reza Arbab Ricardo Cadime Rich Gray Rich Rauenzahn @@ -668,56 +980,85 @@ Richard Bramante Richard Clayton Richard Cooper Richard Gorton +Richard Michael +Richard Moore Richard Prescott +Richard Silverman Rick Jones Rick Richardson Rob Crittenden +Rob Davies Rob Jones Rob Stanzel +Rob Ward Robert A. Monat +Robert B. Harris Robert D. Young Robert Foreman Robert Iakobashvili Robert Olson +Robert Schumann Robert Weaver +Robert Wruck Robin Cornelius Robin Johnson Robin Kay Robson Braga Araujo Rodney Simmons +Rodric Glaser +Rodrigo Silva Roland Blom Roland Krikava Roland Zimmermann Rolland Dudemaine Roman Koifman +Roman Mamedov +Romulo A. Ceccon +Ron Parker Ron Zapp Rosimildo da Silva Roy Shan Rune Kleveland Ruslan Gazizov +Rutger Hofman +Ryan Braud Ryan Chan Ryan Nelson +Ryan Schmidt +Rémy Léone S. Moonesamy -Salvador Dávila +Salvador Dávila Salvatore Sorrentino -Sam Listopad +Sam Deane +Sam Hurst Sampo Kellomaki -Samuel Díaz García +Samuel Díaz García Samuel Listopad +Samuel Thibault Sander Gates Sandor Feldi +Santhana Todatry +Saqib Ali +Sara Golemon +Saran Neti +Sascha Swiercy Saul good +Scott Bailey Scott Barrett Scott Cantor Scott Davis Scott McCreary -Sebastien Willemijns +Sebastian Rasmussen Senthil Raja Velu +Sergei Nikulov +Sergey Tatarincev Sergio Ballestrero Seshubabu Pasam Sh Diao +Shao Shuchao Sharad Gupta Shard +Shawn Landden Shawn Poulson Shmulik Regev Siddhartha Prakash Jain @@ -730,18 +1071,26 @@ Song Ma Sonia Subramanian Spacen Jasset Spiridonoff A.V +Spork Schivago Stadler Stephan Stan van de Burgt +Stanislav Ivochkin +Stefan Bühler Stefan Esser Stefan Krause +Stefan Neis Stefan Teleman +Stefan Tomanek Stefan Ulrich +Steinar H. Gunderson Stephan Bergmann Stephen Collyer Stephen Kick Stephen More Sterling Hughes Steve Green +Steve H Truong +Steve Holme Steve Lhomme Steve Little Steve Marx @@ -749,45 +1098,73 @@ Steve Oliphant Steve Roskowski Steven Bazyl Steven G. Johnson +Steven Gu Steven M. Schweda +Steven Parkes Stoned Elipot +Sune Ahlgren Sven Anders Sven Neuhaus Sven Wegener -Sébastien Willemijns +Symeon Paraschoudis +Sébastien Willemijns T. Bharath T. Yamada +Tae Hyoung Ahn +Taneli Vahakangas Tanguy Fautre +Tatsuhiro Tsujikawa Temprimus +Thomas Braun Thomas J. Moore Thomas Klausner +Thomas L. Shinnick Thomas Lopatic Thomas Schwinge Thomas Tonino +Tiit Pikma +Till Maas Tim Ansell Tim Baker Tim Bartley Tim Chen Tim Costello +Tim Harder +Tim Heckman Tim Newsome +Tim Ruehsen Tim Sneddon -Tobias Rundström +Tim Starling +Timo Sirainen +Tinus van den Berg +Tobias Markus +Tobias Rundström Toby Peterson +Todd A Ouska Todd Kulesza +Todd Ouska Todd Vierling Tom Benoist Tom Donovan +Tom Grace Tom Lee Tom Mattison Tom Moers Tom Mueller Tom Regner +Tom Sparrow +Tom Wright Tom Zerucha +Tomas Hoger +Tomas Mlcoch Tomas Pospisek Tomas Szepe +Tomasz Kojm Tomasz Lacki +Tommie Gannert Tommy Tam Ton Voon +Toni Moreno Toon Verwaest Tor Arntsen Torsten Foertsch @@ -797,37 +1174,66 @@ Traian Nicolescu Troels Walsted Hansen Troy Engel Tupone Alfredo -Ulf Härnhammar +Tyler Hall +Török Edwin +Ulf Härnhammar +Ulf Samuelsson +Ulrich Doehner +Ulrich Telle Ulrich Zadow Venkat Akella Victor Snezhko +Vijay Panghal Vikram Saxena +Viktor Szakáts Vilmos Nebehaj Vincent Bronner Vincent Le Normand Vincent Penquerc'h Vincent Sanders +Vincent Torri Vlad Grachov Vlad Ureche +Vladimir Grishchenko Vladimir Lazarenko Vojtech Janota Vojtech Minarik +Vsevolod Novikov +Waldek Kozba Walter J. Mack +Ward Willats +Warren Menzer Wayne Haigh Werner Koch Wesley Laxton Wesley Miaw Wez Furlong Wilfredo Sanchez +Will Dietz +Willem Sparreboom +William Ahern Wojciech Zwiefka +Wouter Van Rooy +Wu Yongzheng Xavier Bouchoux +Yaakov Selkowitz Yang Tse Yarram Sunil +Yasuharu Yamada +Yehezkel Horowitz Yehoshua Hershberg +Yi Huang +Yingwei Liu +Yousuke Kimoto +Yukihiro Kawada Yuriy Sosov +Yves Arrouye Yves Lejeune +Zdenek Pavlas +Zekun Ni Zmey Petroff Zvi Har'El nk swalkaus at yahoo.com tommink[at]post.pl +Никита Дорохин diff --git a/docs/THANKS-filter b/docs/THANKS-filter new file mode 100644 index 0000000..5237963 --- /dev/null +++ b/docs/THANKS-filter @@ -0,0 +1,48 @@ +# This is a list of names we have recorded that already are thanked +# appropriately in THANKS. This list contains variations of their names and +# their "canonical" name. This file is used for scripting purposes to avoid +# duplicate entries and will not be included in release tarballs. +# When removing dupes that aren't identical names from THANKS, add a line +# here! +# +# Used-by: contributor.sh +s/Andres Garcia/Andrés García/ +s/Chris Conroy/Christopher Conroy/ +s/Francois Charlier/François Charlier/ +s/Gokhan Sengun/Gökhan Şengün/ +s/John Malmberg/John E. Malmberg/ +s/Luca Alteas/Luca Altea/ +s/Michal Gorny/Michał Górny/ +s/Michal Górny/Michał Górny/ +s/Moonesamy/S. Moonesamy/ +s/Pete Su$/Peter Su/ +s/Sam Listopad/Samuel Listopad/ +s/Sebastien Willemijns/Sébastien Willemijns/ +s/YAMADA Yasuharu/Yasuharu Yamada/ +s/Karl M$/Karl Moerder/ +s/Bjorn Stenberg/Björn Stenberg/ +s/upstream tests 305 and 404// +s/Gaël PORTAY/Gaël Portay/ +s/Romulo Ceccon/Romulo A. Ceccon/ +s/Nach M. S$/Nach M. S./ +s/Jay Satiro/Ray Satiro/ +s/Richard J. Moore/Richard Moore/ +s/Sergey Nikulov/Sergei Nikulov/ +s/Petr Písař/Petr Pisar/ +s/Nick Zitzmann (originally)/Nick Zitzmann/ +s/product-security at Apple// +s/IT DOES NOT WORK// +s/Albert Chin/Albert Chin-A-Young/ +s/Paras S/Paras Sethia/ +s/Дмитрий Фалько/Dmitry Falko/ +s/byte_bucket in the #curl IRC channel// +s/Michal Górny and Anthony G. Basile// +s/Alejandro Alvarez$/Alejandro Alvarez Ayllon/ +s/Ant Bryan/Anthony Bryan/ +s/Cédric Deltheil/Cédric Deltheil/ +s/Christian Hagele/Christian Hägele/ +s/douglas steinwand/Douglas Steinwand/ +s/Frank Van Uffelen and Fabian Hiernaux// +s/Rodrigo Silva (MestreLion)/Rodrigo Silva/ +s/tetetest tetetest// +s/Jiří HruÅ¡ka/Jiri Hruska/ diff --git a/docs/TODO b/docs/TODO index 0a4c981..6217569 100644 --- a/docs/TODO +++ b/docs/TODO @@ -12,32 +12,38 @@ All bugs documented in the KNOWN_BUGS document are subject for fixing! 1. libcurl - 1.1 Zero-copy interface 1.2 More data sharing 1.3 struct lifreq 1.4 signal-based resolver timeouts + 1.5 get rid of PATH_MAX + 1.6 Modified buffer size approach + 1.7 Detect when called from within callbacks + 1.8 Allow SSL (HTTPS) to proxy + 1.9 Cache negative name resolves 2. libcurl - multi interface 2.1 More non-blocking - 2.2 Remove easy interface internally - 2.3 Avoid having to remove/readd handles - 2.4 Fix HTTP Pipelining for PUT + 2.2 Fix HTTP Pipelining for PUT + 2.3 Better support for same name resolves 3. Documentation - 3.1 More and better + 3.1 Update date and version in man pages 4. FTP 4.1 HOST 4.2 Alter passive/active on failure and retry 4.3 Earlier bad letter detection 4.4 REST for large files - 4.5 FTP proxy support - 4.6 ASCII support + 4.5 ASCII support + 4.6 GSSAPI via Windows SSPI + 4.7 STAT for LIST without data connection 5. HTTP 5.1 Better persistency for HTTP 1.0 5.2 support FF3 sqlite cookie files 5.3 Rearrange request header order + 5.4 SPDY + 5.5 auth= in URLs 6. TELNET 6.1 ditch stdin @@ -45,71 +51,85 @@ 6.3 feature negotiation debug data 6.4 send data in chunks - 7. SSL - 7.1 Disable specific versions - 7.2 Provide mutex locking API - 7.3 Evaluate SSL patches - 7.4 Cache OpenSSL contexts - 7.5 Export session ids - 7.6 Provide callback for cert verification - 7.7 Support other SSL libraries - 7.8 Support SRP on the TLS layer - 7.9 improve configure --with-ssl - - 8. GnuTLS - 8.1 SSL engine stuff - 8.2 SRP - 8.3 check connection - 8.4 non-gcrypt - - 9. Other protocols - - 10. New protocols - 10.1 RSYNC - - 11. Client - 11.1 sync - 11.2 glob posts - 11.3 prevent file overwriting - 11.4 simultaneous parallel transfers - 11.5 provide formpost headers - 11.6 url-specific options - 11.7 metalink support - 11.8 warning when setting an option - - 12. Build - 12.1 roffit - - 13. Test suite - 13.1 SSL tunnel - 13.2 nicer lacking perl message - 13.3 more protocols supported - 13.4 more platforms supported - - 14. Next SONAME bump - 14.1 http-style HEAD output for ftp - 14.2 combine error codes - 14.3 extend CURLOPT_SOCKOPTFUNCTION prototype - - 15. Next major release - 15.1 cleanup return codes - 15.2 remove obsolete defines - 15.3 size_t - 15.4 remove several functions - 15.5 remove CURLOPT_FAILONERROR - 15.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE - 15.7 remove progress meter from libcurl + 7. SMTP + 7.1 Pipelining + 7.2 Enhanced capability support + + 8. POP3 + 8.1 Pipelining + 8.2 Enhanced capability support + + 9. IMAP + 9.1 Enhanced capability support + + 10. LDAP + 10.1 SASL based authentication mechanisms + + 11. SMB + 11.1 File listing support + 11.2 Honor file timestamps + 11.3 Use NTLMv2 + + 12. New protocols + 12.1 RSYNC + + 13. SSL + 13.1 Disable specific versions + 13.2 Provide mutex locking API + 13.3 Evaluate SSL patches + 13.4 Cache OpenSSL contexts + 13.5 Export session ids + 13.6 Provide callback for cert verification + 13.7 improve configure --with-ssl + 13.8 Support DANE + + 14. GnuTLS + 14.1 SSL engine stuff + 14.2 check connection + + 15. SASL + 15.1 Other authentication mechanisms + 15.2 Add QOP support to GSSAPI authentication + + 16. Client + 16.1 sync + 16.2 glob posts + 16.3 prevent file overwriting + 16.4 simultaneous parallel transfers + 16.5 provide formpost headers + 16.6 warning when setting an option + + 17. Build + 17.1 roffit + + 18. Test suite + 18.1 SSL tunnel + 18.2 nicer lacking perl message + 18.3 more protocols supported + 18.4 more platforms supported + 18.5 Add support for concurrent connections + + 19. Next SONAME bump + 19.1 http-style HEAD output for FTP + 19.2 combine error codes + 19.3 extend CURLOPT_SOCKOPTFUNCTION prototype + + 20. Next major release + 20.1 cleanup return codes + 20.2 remove obsolete defines + 20.3 size_t + 20.4 remove several functions + 20.5 remove CURLOPT_FAILONERROR + 20.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE + 20.7 remove progress meter from libcurl + 20.8 remove 'curl_httppost' from public + 20.9 have form functions use CURL handle argument + 20.10 Add CURLOPT_MAIL_CLIENT option ============================================================================== 1. libcurl -1.1 Zero-copy interface - - Introduce another callback interface for upload/download that makes one less - copy of data and thus a faster operation. - [http://curl.haxx.se/dev/no_copy_callbacks.txt] - 1.2 More data sharing curl_share_* functions already exist and work, and they can be extended to @@ -120,7 +140,7 @@ Use 'struct lifreq' and SIOCGLIFADDR instead of 'struct ifreq' and SIOCGIFADDR on newer Solaris versions as they claim the latter is obsolete. - To support ipv6 interface addresses for network interfaces properly. + To support IPv6 interface addresses for network interfaces properly. 1.4 signal-based resolver timeouts @@ -134,6 +154,57 @@ Also, alarm() provides timeout resolution only to the nearest second. alarm ought to be replaced by setitimer on systems that support it. +1.5 get rid of PATH_MAX + + Having code use and rely on PATH_MAX is not nice: + http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html + + Currently the SSH based code uses it a bit, but to remove PATH_MAX from there + we need libssh2 to properly tell us when we pass in a too small buffer and + its current API (as of libssh2 1.2.7) doesn't. + +1.6 Modified buffer size approach + + Current libcurl allocates a fixed 16K size buffer for download and an + additional 16K for upload. They are always unconditionally part of the easy + handle. If CRLF translations are requested, an additional 32K "scratch + buffer" is allocated. A total of 64K transfer buffers in the worst case. + + First, while the handles are not actually in use these buffers could be freed + so that lingering handles just kept in queues or whatever waste less memory. + + Secondly, SFTP is a protocol that needs to handle many ~30K blocks at once + since each need to be individually acked and therefore libssh2 must be + allowed to send (or receive) many separate ones in parallel to achieve high + transfer speeds. A current libcurl build with a 16K buffer makes that + impossible, but one with a 512K buffer will reach MUCH faster transfers. But + allocating 512K unconditionally for all buffers just in case they would like + to do fast SFTP transfers at some point is not a good solution either. + + Dynamically allocate buffer size depending on protocol in use in combination + with freeing it after each individual transfer? Other suggestions? + +1.7 Detect when called from within callbacks + + We should set a state variable before calling callbacks, so that we + subsequently can add code within libcurl that returns error if called within + callbacks for when that's not supported. + +1.8 Allow SSL (HTTPS) to proxy + + To prevent local users from snooping on your traffic to the proxy. Supported + by Chrome already: + http://www.chromium.org/developers/design-documents/secure-web-proxy + + ...and by Firefox soon: + https://bugzilla.mozilla.org/show_bug.cgi?id=378637 + +1.9 Cache negative name resolves + + A name resolve that has failed is likely to fail when made again within a + short period of time. Currently we only cache positive responses. + + 2. libcurl - multi interface 2.1 More non-blocking @@ -143,7 +214,6 @@ - Name resolves on non-windows unless c-ares is used - NSS SSL connections - - Active FTP connections - HTTP proxy CONNECT operations - SOCKS proxy handshakes - file:// transfers @@ -151,52 +221,37 @@ - The "DONE" operation (post transfer protocol-specific actions) for the protocols SFTP, SMTP, FTP. Fixing Curl_done() for this is a worthy task. -2.2 Remove easy interface internally - - Make curl_easy_perform() a wrapper-function that simply creates a multi - handle, adds the easy handle to it, runs curl_multi_perform() until the - transfer is done, then detach the easy handle, destroy the multi handle and - return the easy handle's return code. This will thus make everything - internally use and assume the multi interface. The select()-loop should use - curl_multi_socket(). - -2.3 Avoid having to remove/readd handles - - curl_multi_handle_control() - this can control the easy handle (while) added - to a multi handle in various ways: - - o RESTART, unconditionally restart this easy handle's transfer from the - start, re-init the state - - o RESTART_COMPLETED, restart this easy handle's transfer but only if the - existing transfer has already completed and it is in a "finished state". - - o STOP, just stop this transfer and consider it completed - - o PAUSE? - - o RESUME? - -2.4 Fix HTTP Pipelining for PUT +2.2 Fix HTTP Pipelining for PUT HTTP Pipelining can be a way to greatly enhance performance for multiple serial requests and currently libcurl only supports that for HEAD and GET requests but it should also be possible for PUT. +2.3 Better support for same name resolves + + If a name resolve has been initiated for name NN and a second easy handle + wants to resolve that name as well, make it wait for the first resolve to end + up in the cache instead of doing a second separate resolve. This is + especially needed when adding many simultaneous handles using the same host + name when the DNS resolver can get flooded. + + 3. Documentation -3.1 More and better +3.1 Update date and version in man pages - Exactly + 'maketgz' or another suitable script could update the .TH sections of the man + pages at release time to use the current date and curl/libcurl version + number. 4. FTP 4.1 HOST - HOST is a suggested command in the works for a client to tell which host name - to use, to offer FTP servers named-based virtual hosting: + HOST is a command for a client to tell which host name to use, to offer FTP + servers named-based virtual hosting: - http://tools.ietf.org/html/draft-hethmon-mcmurray-ftp-hosts-11 + http://tools.ietf.org/html/rfc7151 4.2 Alter passive/active on failure and retry @@ -207,7 +262,7 @@ 4.3 Earlier bad letter detection - Make the detection of (bad) %0d and %0a codes in FTP url parts earlier in the + Make the detection of (bad) %0d and %0a codes in FTP URL parts earlier in the process to avoid doing a resolve and connect in vain. 4.4 REST for large files @@ -216,17 +271,25 @@ the server doesn't set the pointer to the requested index. The tricky (impossible?) part is to figure out if the server did the right thing or not. -4.5 FTP proxy support - - Support the most common FTP proxies, Philip Newton provided a list allegedly - from ncftp. This is not a subject without debate, and is probably not really - suitable for libcurl. http://curl.haxx.se/mail/archive-2003-04/0126.html - -4.6 ASCII support +4.5 ASCII support FTP ASCII transfers do not follow RFC959. They don't convert the data accordingly. +4.6 GSSAPI via Windows SSPI + +In addition to currently supporting the SASL GSSAPI mechanism (Kerberos V5) +via third-party GSS-API libraries, such as Heimdal or MIT Kerberos, also add +support for GSSAPI authentication via Windows SSPI. + +4.7 STAT for LIST without data connection + +Some FTP servers allow STAT for listing directories instead of using LIST, and +the response is then sent over the control connection instead of as the +otherwise usedw data connection: http://www.nsftools.com/tips/RawFTP.htm#STAT + +This is not detailed in any FTP specification. + 5. HTTP 5.1 Better persistency for HTTP 1.0 @@ -252,6 +315,25 @@ headers use a default value so only headers that need to be moved have to be specified. +5.4 SPDY + + Chrome and Firefox already support SPDY and lots of web services do. There's + a library for us to use for this (spdylay) that has a similar API and the + same author as nghttp2. + + spdylay: https://github.com/tatsuhiro-t/spdylay + +5.5 auth= in URLs + + Add the ability to specify the preferred authentication mechanism to use by + using ;auth= in the login part of the URL. + + For example: + + http://test:pass;auth=NTLM@example.com would be equivalent to specifying --user + test:pass;auth=NTLM or --user test:pass --ntlm from the command line. + + Additionally this should be implemented for proxy base URLs as well. 6. TELNET @@ -277,35 +359,96 @@ to provide the data to send. use, but inefficient for any other. Sent data should be sent in larger chunks. -7. SSL +7. SMTP + +7.1 Pipelining + + Add support for pipelining emails. + +7.2 Enhanced capability support + + Add the ability, for an application that uses libcurl, to obtain the list of + capabilities returned from the EHLO command. + +8. POP3 + +8.1 Pipelining + + Add support for pipelining commands. + +8.2 Enhanced capability support + + Add the ability, for an application that uses libcurl, to obtain the list of + capabilities returned from the CAPA command. -7.1 Disable specific versions +9. IMAP + +9.1 Enhanced capability support + + Add the ability, for an application that uses libcurl, to obtain the list of + capabilities returned from the CAPABILITY command. + +10. LDAP + +10.1 SASL based authentication mechanisms + + Currently the LDAP module only supports ldap_simple_bind_s() in order to bind + to an LDAP server. However, this function sends username and password details + using the simple authentication mechanism (as clear text). However, it should + be possible to use ldap_bind_s() instead specifying the security context + information ourselves. + +11. SMB + +11.1 File listing support + +Add support for listing the contents of a SMB share. The output should probably +be the same as/similar to FTP. + +11.2 Honor file timestamps + +The timestamp of the transfered file should reflect that of the original file. + +11.3 Use NTLMv2 + +Currently the SMB authentication uses NTLMv1. + +12. New protocols + +12.1 RSYNC + + There's no RFC for the protocol or an URI/URL format. An implementation + should most probably use an existing rsync library, such as librsync. + +13. SSL + +13.1 Disable specific versions Provide an option that allows for disabling specific SSL versions, such as SSLv2 http://curl.haxx.se/bug/feature.cgi?id=1767276 -7.2 Provide mutex locking API +13.2 Provide mutex locking API Provide a libcurl API for setting mutex callbacks in the underlying SSL library, so that the same application code can use mutex-locking independently of OpenSSL or GnutTLS being used. -7.3 Evaluate SSL patches +13.3 Evaluate SSL patches Evaluate/apply Gertjan van Wingerde's SSL patches: http://curl.haxx.se/mail/lib-2004-03/0087.html -7.4 Cache OpenSSL contexts +13.4 Cache OpenSSL contexts "Look at SSL cafile - quick traces look to me like these are done on every - request as well, when they should only be necessary once per ssl context (or + request as well, when they should only be necessary once per SSL context (or once per handle)". The major improvement we can rather easily do is to make sure we don't create and kill a new SSL "context" for every request, but instead make one for every connection and re-use that SSL context in the same style connections are re-used. It will make us use slightly more memory but it will libcurl do less creations and deletions of SSL contexts. -7.5 Export session ids +13.5 Export session ids Add an interface to libcurl that enables "session IDs" to get exported/imported. Cris Bailiff said: "OpenSSL has functions which can @@ -313,67 +456,57 @@ to provide the data to send. the state from such a buffer at a later date - this is used by mod_ssl for apache to implement and SSL session ID cache". -7.6 Provide callback for cert verification +13.6 Provide callback for cert verification OpenSSL supports a callback for customised verification of the peer certificate, but this doesn't seem to be exposed in the libcurl APIs. Could it be? There's so much that could be done if it were! -7.7 Support other SSL libraries - - Make curl's SSL layer capable of using other free SSL libraries. Such as - MatrixSSL (http://www.matrixssl.org/). - -7.8 Support SRP on the TLS layer - - Peter Sylvester's patch for SRP on the TLS layer. Awaits OpenSSL support for - this, no need to support this in libcurl before there's an OpenSSL release - that does it. - -7.9 improve configure --with-ssl +13.7 improve configure --with-ssl make the configure --with-ssl option first check for OpenSSL, then GnuTLS, then NSS... -8. GnuTLS +13.8 Support DANE -8.1 SSL engine stuff + DNS-Based Authentication of Named Entities (DANE) is a way to provide SSL + keys and certs over DNS using DNSSEC as an alternative to the CA model. + http://www.rfc-editor.org/rfc/rfc6698.txt - Is this even possible? + An initial patch was posted by Suresh Krishnaswamy on March 7th 2013 + (http://curl.haxx.se/mail/lib-2013-03/0075.html) but it was a too simple + approach. See Daniel's comments: + http://curl.haxx.se/mail/lib-2013-03/0103.html . libunbound may be the + correct library to base this development on. + +14. GnuTLS -8.2 SRP +14.1 SSL engine stuff - Work out a common method with Peter Sylvester's OpenSSL-patch for SRP on the - TLS to provide name and password. GnuTLS already supports it... + Is this even possible? -8.3 check connection +14.2 check connection Add a way to check if the connection seems to be alive, to correspond to the SSL_peak() way we use with OpenSSL. -8.4 non-gcrypt - - libcurl assumes that there are gcrypt functions available when - GnuTLS is. - - GnuTLS can be built to use libnettle instead as crypto library, - which breaks the previously mentioned assumption - - The correct fix would be to detect which crypto layer that is in use and - adapt our code to use that instead of blindly assuming gcrypt. +15. SASL -9. Other protocols +15.1 Other authentication mechanisms -10. New protocols + Add support for other authentication mechanisms such as EXTERNAL, OLP, + GSS-SPNEGO and others. + +15.2 Add QOP support to GSSAPI authentication -10.1 RSYNC + Currently the GSSAPI authentication only supports the default QOP of auth + (Authentication), whilst Kerberos V5 supports both auth-int (Authentication + with integrity protection) and auth-conf (Authentication with integrity and + privacy protection). - There's no RFC for protocol nor URI/URL format. An implementation should - most probably use an existing rsync library, such as librsync. +16. Client -11. Client - -11.1 sync +16.1 sync "curl --sync http://example.com/feed[1-100].rss" or "curl --sync http://example.net/{index,calendar,history}.html" @@ -382,12 +515,12 @@ to provide the data to send. remote file is newer than the local file. A Last-Modified HTTP date header should also be used to set the mod date on the downloaded file. -11.2 glob posts +16.2 glob posts Globbing support for -d and -F, as in 'curl -d "name=foo[0-9]" URL'. This is easily scripted though. -11.3 prevent file overwriting +16.3 prevent file overwriting Add an option that prevents cURL from overwriting existing local files. When used, and there already is an existing file with the target file name @@ -395,14 +528,14 @@ to provide the data to send. existing). So that index.html becomes first index.html.1 and then index.html.2 etc. -11.4 simultaneous parallel transfers +16.4 simultaneous parallel transfers The client could be told to use maximum N simultaneous parallel transfers and then just make sure that happens. It should of course not make more than one connection to the same remote host. This would require the client to use the multi interface. http://curl.haxx.se/bug/feature.cgi?id=1558595 -11.5 provide formpost headers +16.5 provide formpost headers Extending the capabilities of the multipart formposting. How about leaving the ';type=foo' syntax as it is and adding an extra tag (headers) which @@ -416,69 +549,64 @@ to provide the data to send. which should overwrite the program reasonable defaults (plain/text, 8bit...) -11.6 url-specific options - - Provide a way to make options bound to a specific URL among several on the - command line. Possibly by letting ':' separate options between URLs, - similar to this: - - curl --data foo --url url.com : \ - --url url2.com : \ - --url url3.com --data foo3 - - (More details: http://curl.haxx.se/mail/archive-2004-07/0133.html) - - The example would do a POST-GET-POST combination on a single command line. - -11.7 metalink support - - Add metalink support to curl (http://www.metalinker.org/). This is most useful - with simultaneous parallel transfers (11.6) but not necessary. - -11.8 warning when setting an option +16.6 warning when setting an option Display a warning when libcurl returns an error when setting an option. This can be useful to tell when support for a particular feature hasn't been compiled into the library. -12. Build +17. Build -12.1 roffit +17.1 roffit Consider extending 'roffit' to produce decent ASCII output, and use that - instead of (g)nroff when building src/hugehelp.c + instead of (g)nroff when building src/tool_hugehelp.c -13. Test suite +18. Test suite -13.1 SSL tunnel +18.1 SSL tunnel Make our own version of stunnel for simple port forwarding to enable HTTPS and FTP-SSL tests without the stunnel dependency, and it could allow us to provide test tools built with either OpenSSL or GnuTLS -13.2 nicer lacking perl message +18.2 nicer lacking perl message If perl wasn't found by the configure script, don't attempt to run the tests but explain something nice why it doesn't. -13.3 more protocols supported +18.3 more protocols supported - Extend the test suite to include more protocols. The telnet could just do ftp + Extend the test suite to include more protocols. The telnet could just do FTP or http operations (for which we have test servers). -13.4 more platforms supported +18.4 more platforms supported Make the test suite work on more platforms. OpenBSD and Mac OS. Remove fork()s and it should become even more portable. -14. Next SONAME bump +18.5 Add support for concurrent connections + + Tests 836, 882 and 938 were designed to verify that separate connections aren't + used when using different login credentials in protocols that shouldn't re-use + a connection under such circumstances. + + Unfortunately, ftpserver.pl doesn't appear to support multiple concurrent + connections. The read while() loop seems to loop until it receives a disconnect + from the client, where it then enters the waiting for connections loop. When + the client opens a second connection to the server, the first connection hasn't + been dropped (unless it has been forced - which we shouldn't do in these tests) + and thus the wait for connections loop is never entered to receive the second + connection. -14.1 http-style HEAD output for ftp +19. Next SONAME bump + +19.1 http-style HEAD output for FTP #undef CURL_FTP_HTTPSTYLE_HEAD in lib/ftp.c to remove the HTTP-style headers - from being output in NOBODY requests over ftp + from being output in NOBODY requests over FTP -14.2 combine error codes +19.2 combine error codes Combine some of the error codes to remove duplicates. The original numbering should not be changed, and the old identifiers would be @@ -488,37 +616,44 @@ to provide the data to send. Candidates for removal and their replacements: CURLE_FILE_COULDNT_READ_FILE => CURLE_REMOTE_FILE_NOT_FOUND + CURLE_FTP_COULDNT_RETR_FILE => CURLE_REMOTE_FILE_NOT_FOUND + CURLE_FTP_COULDNT_USE_REST => CURLE_RANGE_ERROR + CURLE_FUNCTION_NOT_FOUND => CURLE_FAILED_INIT + CURLE_LDAP_INVALID_URL => CURLE_URL_MALFORMAT + CURLE_TFTP_NOSUCHUSER => CURLE_TFTP_ILLEGAL + CURLE_TFTP_NOTFOUND => CURLE_REMOTE_FILE_NOT_FOUND + CURLE_TFTP_PERM => CURLE_REMOTE_ACCESS_DENIED -14.3 extend CURLOPT_SOCKOPTFUNCTION prototype +19.3 extend CURLOPT_SOCKOPTFUNCTION prototype The current prototype only provides 'purpose' that tells what the connection/socket is for, but not any protocol or similar. It makes it hard for applications to differentiate on TCP vs UDP and even HTTP vs FTP and similar. -15. Next major release +20. Next major release -15.1 cleanup return codes +20.1 cleanup return codes curl_easy_cleanup() returns void, but curl_multi_cleanup() returns a CURLMcode. These should be changed to be the same. -15.2 remove obsolete defines +20.2 remove obsolete defines remove obsolete defines from curl/curl.h -15.3 size_t +20.3 size_t make several functions use size_t instead of int in their APIs -15.4 remove several functions +20.4 remove several functions remove the following functions from the public API: @@ -539,18 +674,18 @@ to provide the data to send. curl_multi_socket_all -15.5 remove CURLOPT_FAILONERROR +20.5 remove CURLOPT_FAILONERROR Remove support for CURLOPT_FAILONERROR, it has gotten too kludgy and weird internally. Let the app judge success or not for itself. -15.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE +20.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE Remove support for a global DNS cache. Anything global is silly, and we already offer the share interface for the same functionality but done "right". -15.7 remove progress meter from libcurl +20.7 remove progress meter from libcurl The internally provided progress meter output doesn't belong in the library. Basically no application wants it (apart from curl) but instead applications @@ -559,3 +694,31 @@ to provide the data to send. The progress callback should then be bumped as well to get proper 64bit variable types passed to it instead of doubles so that big files work correctly. + +20.8 remove 'curl_httppost' from public + + curl_formadd() was made to fill in a public struct, but the fact that the + struct is public is never really used by application for their own advantage + but instead often restricts how the form functions can or can't be modified. + + Changing them to return a private handle will benefit the implementation and + allow us much greater freedoms while still maintaining a solid API and ABI. + +20.9 have form functions use CURL handle argument + + curl_formadd() and curl_formget() both currently have no CURL handle + argument, but both can use a callback that is set in the easy handle, and + thus curl_formget() with callback cannot function without first having + curl_easy_perform() (or similar) called - which is hard to grasp and a design + mistake. + +20.10 Add CURLOPT_MAIL_CLIENT option + + Rather than use the URL to specify the mail client string to present in the + HELO and EHLO commands, libcurl should support a new CURLOPT specifically for + specifying this data as the URL is non-standard and to be honest a bit of a + hack ;-) + + Please see the following thread for more information: + http://curl.haxx.se/mail/lib-2012-05/0178.html + diff --git a/docs/TheArtOfHttpScripting b/docs/TheArtOfHttpScripting index 183dd17..0ba9f65 100644 --- a/docs/TheArtOfHttpScripting +++ b/docs/TheArtOfHttpScripting @@ -1,16 +1,71 @@ -Online: http://curl.haxx.se/docs/httpscripting.html -Date: May 28, 2008 - - The Art Of Scripting HTTP Requests Using Curl - ============================================= - - This document will assume that you're familiar with HTML and general - networking. - - The possibility to write scripts is essential to make a good computer - system. Unix' capability to be extended by shell scripts and various tools to - run various automated commands and scripts is one reason why it has succeeded - so well. + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + + +The Art Of Scripting HTTP Requests Using Curl + + 1. HTTP Scripting + 1.1 Background + 1.2 The HTTP Protocol + 1.3 See the Protocol + 1.4 See the Timing + 1.5 See the Response + 2. URL + 2.1 Spec + 2.2 Host + 2.3 Port number + 2.4 User name and password + 2.5 Path part + 3. Fetch a page + 3.1 GET + 3.2 HEAD + 4. HTML forms + 4.1 Forms explained + 4.2 GET + 4.3 POST + 4.4 File Upload POST + 4.5 Hidden Fields + 4.6 Figure Out What A POST Looks Like + 5. HTTP upload + 5.1 PUT + 6. HTTP Authentication + 6.1 Basic Authentication + 6.2 Other Authentication + 6.3 Proxy Authentication + 6.4 Hiding credentials + 7. More HTTP Headers + 7.1 Referer + 7.2 User Agent + 8. Redirects + 8.1 Location header + 8.2 Other redirects + 9. Cookies + 9.1 Cookie Basics + 9.2 Cookie options + 10. HTTPS + 10.1 HTTPS is HTTP secure + 10.2 Certificates + 11. Custom Request Elements + 11.1 Modify method and headers + 11.2 More on changed methods + 12. Web Login + 12.1 Some login tricks + 13. Debug + 13.1 Some debug tricks + 14. References + 14.1 Standards + 14.2 Sites + +============================================================================== + +1. HTTP Scripting + + 1.1 Background + + This document assumes that you're familiar with HTML and general networking. The increasing amount of applications moving to the web has made "HTTP Scripting" more frequently requested and wanted. To be able to automatically @@ -27,7 +82,7 @@ Date: May 28, 2008 to glue everything together using some kind of script language or repeated manual invokes. -1. The HTTP Protocol + 1.2 The HTTP Protocol HTTP is the protocol used to fetch data from web servers. It is a very simple protocol that is built upon TCP/IP. The protocol also allows information to @@ -38,18 +93,109 @@ Date: May 28, 2008 request a particular action, and then the server replies a few text lines before the actual requested content is sent to the client. - Using curl's option --verbose (-v as a short option) will display what kind of - commands curl sends to the server, as well as a few other informational texts. - --verbose is the single most useful option when it comes to debug or even - understand the curl<->server interaction. + The client, curl, sends a HTTP request. The request contains a method (like + GET, POST, HEAD etc), a number of request headers and sometimes a request + body. The HTTP server responds with a status line (indicating if things went + well), response headers and most often also a response body. The "body" part + is the plain data you requested, like the actual HTML or the image etc. + + 1.3 See the Protocol + + Using curl's option --verbose (-v as a short option) will display what kind + of commands curl sends to the server, as well as a few other informational + texts. + + --verbose is the single most useful option when it comes to debug or even + understand the curl<->server interaction. + + Sometimes even --verbose is not enough. Then --trace and --trace-ascii offer + even more details as they show EVERYTHING curl sends and receives. Use it + like this: + + curl --trace-ascii debugdump.txt http://www.example.com/ + + 1.4 See the Timing + + Many times you may wonder what exactly is taking all the time, or you just + want to know the amount of milliseconds between two points in a + transfer. For those, and other similar situations, the --trace-time option + is what you need. It'll prepend the time to each trace output line: + + curl --trace-ascii d.txt --trace-time http://example.com/ + + 1.5 See the Response + + By default curl sends the response to stdout. You need to redirect it + somewhere to avoid that, most often that is done with -o or -O. 2. URL + 2.1 Spec + The Uniform Resource Locator format is how you specify the address of a particular resource on the Internet. You know these, you've seen URLs like - http://curl.haxx.se or https://yourbank.com a million times. + http://curl.haxx.se or https://yourbank.com a million times. RFC 3986 is the + canonical spec. + + 2.2 Host + + The host name is usually resolved using DNS or your /etc/hosts file to an IP + address and that's what curl will communicate with. Alternatively you specify + the IP address directly in the URL instead of a name. + + For development and other trying out situation, you can point out a different + IP address for a host name than what would otherwise be used, by using curl's + --resolve option: + + curl --resolve www.example.org:80:127.0.0.1 http://www.example.org/ + + 2.3 Port number + + Each protocol curl supports operate on a default port number, be it over TCP + or in some cases UDP. Normally you don't have to take that into + consideration, but at times you run test servers on other ports or + similar. Then you can specify the port number in the URL with a colon and a + number immediately following the host name. Like when doing HTTP to port + 1234: + + curl http://www.example.org:1234/ + + The port number you specify in the URL is the number that the server uses to + offer its services. Sometimes you may use a local proxy, and then you may + need to specify that proxy's port number separate on what curl needs to + connect to locally. Like when using a HTTP proxy on port 4321: + + curl --proxy http://proxy.example.org:4321 http://remote.example.org/ + + 2.4 User name and password + + Some services are setup to require HTTP authentication and then you need to + provide name and password which then is transferred to the remote site in + various ways depending on the exact authentication protocol used. + + You can opt to either insert the user and password in the URL or you can + provide them separately: + + curl http://user:password@example.org/ + + or + + curl -u user:password http://example.org/ + + You need to pay attention that this kind of HTTP authentication is not what + is usually done and requested by user-oriented web sites these days. They + tend to use forms and cookies instead. -3. GET a page + 2.5 Path part + + The path part is just sent off to the server to request that it sends back + the associated response. The path is what is to the right side of the slash + that follows the host name and possibly port number. + + +3. Fetch a page + + 3.1 GET The simplest and most common request/operation made using HTTP is to get a URL. The URL could itself refer to a web page, an image or a file. The client @@ -61,12 +207,25 @@ Date: May 28, 2008 you get a web page returned in your terminal window. The entire HTML document that that URL holds. - All HTTP replies contain a set of headers that are normally hidden, use - curl's --include (-i) option to display them as well as the rest of the - document. You can also ask the remote server for ONLY the headers by using the - --head (-I) option (which will make curl issue a HEAD request). + All HTTP replies contain a set of response headers that are normally hidden, + use curl's --include (-i) option to display them as well as the rest of the + document. + + 3.2 HEAD + + You can ask the remote server for ONLY the headers by using the --head (-I) + option which will make curl issue a HEAD request. In some special cases + servers deny the HEAD method while others still work, which is a particular + kind of annoyance. + + The HEAD method is defined and made so that the server returns the headers + exactly the way it would do for a GET, but without a body. It means that you + may see a Content-Length: in the response headers, but there must not be an + actual body in the HEAD response. -4. Forms +4. HTML forms + + 4.1 Forms explained Forms are the general way a web site can present a HTML page with fields for the user to enter data in, and then press some kind of 'OK' or 'submit' @@ -79,7 +238,7 @@ Date: May 28, 2008 Of course there has to be some kind of program in the server end to receive the data you send. You cannot just invent something out of the air. - 4.1 GET + 4.2 GET A GET-form uses the method GET, as specified in HTML like: @@ -105,7 +264,7 @@ Date: May 28, 2008 curl "http://www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK" - 4.2 POST + 4.3 POST The GET method makes all input field names get displayed in the URL field of your browser. That's generally a good thing when you want to be able to @@ -127,7 +286,8 @@ Date: May 28, 2008 And to use curl to post this form with the same data filled in as before, we could do it like: - curl --data "birthyear=1905&press=%20OK%20" http://www.hotmail.com/when/junk.cgi + curl --data "birthyear=1905&press=%20OK%20" \ + http://www.example.com/when.cgi This kind of POST will use the Content-Type application/x-www-form-urlencoded and is the most widely used POST kind. @@ -141,7 +301,7 @@ Date: May 28, 2008 curl --data-urlencode "name=I am Daniel" http://www.example.com - 4.3 File Upload POST + 4.4 File Upload POST Back in late 1995 they defined an additional way to post data over HTTP. It is documented in the RFC 1867, why this method sometimes is referred to as @@ -162,7 +322,7 @@ Date: May 28, 2008 curl --form upload=@localfilename --form press=OK [URL] - 4.4 Hidden Fields + 4.5 Hidden Fields A very common way for HTML based application to pass state information between pages is to add hidden fields to the forms. Hidden fields are @@ -183,7 +343,7 @@ Date: May 28, 2008 curl --data "birthyear=1905&press=OK&person=daniel" [URL] - 4.5 Figure Out What A POST Looks Like + 4.6 Figure Out What A POST Looks Like When you're about fill in a form and send to a server by using curl instead of a browser, you're of course very interested in sending a POST exactly the @@ -196,7 +356,9 @@ Date: May 28, 2008 You will then clearly see the data get appended to the URL, separated with a '?'-letter as GET forms are supposed to. -5. PUT +5. HTTP upload + + 5.1 PUT The perhaps best way to upload data to a HTTP server is to use PUT. Then again, this of course requires that someone put a program or script on the @@ -204,10 +366,12 @@ Date: May 28, 2008 Put a file to a HTTP server with curl: - curl --upload-file uploadfile http://www.uploadhttp.com/receive.cgi + curl --upload-file uploadfile http://www.example.com/receive.cgi 6. HTTP Authentication + 6.1 Basic Authentication + HTTP Authentication is the ability to tell the server your username and password so that it can verify that you're allowed to do the request you're doing. The Basic authentication used in HTTP (which is the type curl uses by @@ -217,12 +381,16 @@ Date: May 28, 2008 To tell curl to use a user and password for authentication: - curl --user name:password http://www.secrets.com + curl --user name:password http://www.example.com + + 6.2 Other Authentication The site might require a different authentication method (check the headers returned by the server), and then --ntlm, --digest, --negotiate or even --anyauth might be options that suit you. + 6.3 Proxy Authentication + Sometimes your HTTP access is only available through the use of a HTTP proxy. This seems to be especially common at various companies. A HTTP proxy may require its own user and password to allow the client to get through to @@ -236,6 +404,8 @@ Date: May 28, 2008 If you use any one these user+password options but leave out the password part, curl will prompt for the password interactively. + 6.4 Hiding credentials + Do note that when a program is run, its parameters might be possible to see when listing the running processes of the system. Thus, other users may be able to watch your passwords if you pass them as plain command line @@ -245,7 +415,9 @@ Date: May 28, 2008 many web sites will not use this concept when they provide logins etc. See the Web Login chapter further below for more details on that. -7. Referer +7. More HTTP Headers + + 7.1 Referer A HTTP request may include a 'referer' field (yes it is misspelled), which can be used to tell from which URL the client got to this particular @@ -257,9 +429,9 @@ Date: May 28, 2008 Use curl to set the referer field with: - curl --referer http://curl.haxx.se http://daniel.haxx.se + curl --referer http://www.example.come http://www.example.com -8. User Agent + 7.2 User Agent Very similar to the referer field, all HTTP requests may set the User-Agent field. It names what user agent (client) that is being used. Many @@ -273,15 +445,17 @@ Date: May 28, 2008 is time to set the User Agent field to fool the server into thinking you're one of those browsers. - To make curl look like Internet Explorer on a Windows 2000 box: + To make curl look like Internet Explorer 5 on a Windows 2000 box: - curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL] + curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL] - Or why not look like you're using Netscape 4.73 on a Linux (PIII) box: + Or why not look like you're using Netscape 4.73 on an old Linux box: - curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL] + curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL] -9. Redirects +8. Redirects + + 8.1 Location header When a resource is requested from a server, the reply from the server may include a hint about where the browser should go next to find this page, or a @@ -294,14 +468,23 @@ Date: May 28, 2008 To tell curl to follow a Location: - curl --location http://www.sitethatredirects.com + curl --location http://www.example.com If you use curl to POST to a site that immediately redirects you to another page, you can safely use --location (-L) and --data/--form together. Curl will only use POST in the first request, and then revert to GET in the following operations. -10. Cookies + 8.2 Other redirects + + Browser typically support at least two other ways of redirects that curl + doesn't: first the html may contain a meta refresh tag that asks the browser + to load a specific URL after a set number of seconds, or it may use + javascript to do it. + +9. Cookies + + 9.1 Cookie Basics The way the web browsers do "client side state control" is by using cookies. Cookies are just names with associated contents. The cookies are @@ -318,46 +501,51 @@ Date: May 28, 2008 must be able to record and send back cookies the way the web application expects them. The same way browsers deal with them. + 9.2 Cookie options + The simplest way to send a few cookies to the server when getting a page with curl is to add them on the command line like: - curl --cookie "name=Daniel" http://www.cookiesite.com + curl --cookie "name=Daniel" http://www.example.com Cookies are sent as common HTTP headers. This is practical as it allows curl to record cookies simply by recording headers. Record cookies with curl by using the --dump-header (-D) option like: - curl --dump-header headers_and_cookies http://www.cookiesite.com + curl --dump-header headers_and_cookies http://www.example.com (Take note that the --cookie-jar option described below is a better way to store cookies.) Curl has a full blown cookie parsing engine built-in that comes to use if you want to reconnect to a server and use cookies that were stored from a - previous connection (or handicrafted manually to fool the server into + previous connection (or hand-crafted manually to fool the server into believing you had a previous connection). To use previously stored cookies, you run curl like: - curl --cookie stored_cookies_in_file http://www.cookiesite.com + curl --cookie stored_cookies_in_file http://www.example.com Curl's "cookie engine" gets enabled when you use the --cookie option. If you only want curl to understand received cookies, use --cookie with a file that - doesn't exist. Example, if you want to let curl understand cookies from a page - and follow a location (and thus possibly send back cookies it received), you - can invoke it like: + doesn't exist. Example, if you want to let curl understand cookies from a + page and follow a location (and thus possibly send back cookies it received), + you can invoke it like: - curl --cookie nada --location http://www.cookiesite.com + curl --cookie nada --location http://www.example.com Curl has the ability to read and write cookie files that use the same file - format that Netscape and Mozilla do. It is a convenient way to share cookies - between browsers and automatic scripts. The --cookie (-b) switch automatically + format that Netscape and Mozilla once used. It is a convenient way to share + cookies between scripts or invokes. The --cookie (-b) switch automatically detects if a given file is such a cookie file and parses it, and by using the - --cookie-jar (-c) option you'll make curl write a new cookie file at the end of - an operation: + --cookie-jar (-c) option you'll make curl write a new cookie file at the end + of an operation: + + curl --cookie cookies.txt --cookie-jar newcookies.txt \ + http://www.example.com - curl --cookie cookies.txt --cookie-jar newcookies.txt http://www.cookiesite.com +10. HTTPS -11. HTTPS + 10.1 HTTPS is HTTP secure There are a few ways to do secure HTTP transfers. The by far most common protocol for doing this is what is generally known as HTTPS, HTTP over @@ -368,12 +556,14 @@ Date: May 28, 2008 truckload of advanced features to allow all those encryptions and key infrastructure mechanisms encrypted HTTP requires. - Curl supports encrypted fetches thanks to the freely available OpenSSL - libraries. To get a page from a HTTPS server, simply run curl like: + Curl supports encrypted fetches when built to use a TLS library and it can be + built to use one out of a fairly large set of libraries - "curl -V" will show + which one your curl was built to use (if any!). To get a page from a HTTPS + server, simply run curl like: - curl https://that.secure.server.com + curl https://secure.example.com - 11.1 Certificates + 10.2 Certificates In the HTTPS world, you use certificates to validate that you are the one you claim to be, as an addition to normal passwords. Curl supports client- @@ -382,7 +572,7 @@ Date: May 28, 2008 can be specified on the command line or if not, entered interactively when curl queries for it. Use a certificate with curl on a HTTPS server like: - curl --cert mycert.pem https://that.secure.server.com + curl --cert mycert.pem https://secure.example.com curl also tries to verify that the server is who it claims to be, by verifying the server's certificate against a locally stored CA cert @@ -395,7 +585,9 @@ Date: May 28, 2008 http://curl.haxx.se/docs/sslcerts.html -12. Custom Request Elements +11. Custom Request Elements + +11.1 Modify method and headers Doing fancy stuff, you may need to add or change elements of a single curl request. @@ -403,19 +595,39 @@ Date: May 28, 2008 For example, you can change the POST request to a PROPFIND and send the data as "Content-Type: text/xml" (instead of the default Content-Type) like this: - curl --data "" --header "Content-Type: text/xml" --request PROPFIND url.com + curl --data "" --header "Content-Type: text/xml" \ + --request PROPFIND url.com You can delete a default header by providing one without content. Like you can ruin the request by chopping off the Host: header: - curl --header "Host:" http://mysite.com + curl --header "Host:" http://www.example.com You can add headers the same way. Your server may want a "Destination:" header, and you can add it: - curl --header "Destination: http://moo.com/nowhere" http://url.com + curl --header "Destination: http://nowhere" http://example.com -13. Web Login + 11.2 More on changed methods + + It should be noted that curl selects which methods to use on its own + depending on what action to ask for. -d will do POST, -I will do HEAD and so + on. If you use the --request / -X option you can change the method keyword + curl selects, but you will not modify curl's behavior. This means that if you + for example use -d "data" to do a POST, you can modify the method to a + PROPFIND with -X and curl will still think it sends a POST. You can change + the normal GET to a POST method by simply adding -X POST in a command line + like: + + curl -X POST http://example.org/ + + ... but curl will still think and act as if it sent a GET so it won't send any + request body etc. + + +12. Web Login + + 12.1 Some login tricks While not strictly just HTTP related, it still cause a lot of people problems so here's the executive run-down of how the vast majority of all login forms @@ -434,7 +646,7 @@ Date: May 28, 2008 sometimes they use such code to set or modify cookie contents. Possibly they do that to prevent programmed logins, like this manual describes how to... Anyway, if reading the code isn't enough to let you repeat the behavior - manually, capturing the HTTP requests done by your browers and analyzing the + manually, capturing the HTTP requests done by your browsers and analyzing the sent cookies is usually a working method to work out how to shortcut the javascript need. @@ -444,8 +656,9 @@ Date: May 28, 2008 to do a proper login POST. Remember that the contents need to be URL encoded when sent in a normal POST. +13. Debug -14. Debug + 13.1 Some debug tricks Many times when you run curl on a site, you'll notice that the site doesn't seem to respond the same way to your curl requests as it does to your @@ -455,37 +668,40 @@ Date: May 28, 2008 browser's requests: * Use the --trace-ascii option to store fully detailed logs of the requests - for easier analyzing and better understanding + for easier analyzing and better understanding * Make sure you check for and use cookies when needed (both reading with - --cookie and writing with --cookie-jar) + --cookie and writing with --cookie-jar) * Set user-agent to one like a recent popular browser does * Set referer like it is set by the browser * If you use POST, make sure you send all the fields and in the same order as - the browser does it. (See chapter 4.5 above) + the browser does it. A very good helper to make sure you do this right, is the LiveHTTPHeader tool that lets you view all headers you send and receive with Mozilla/Firefox - (even when using HTTPS). + (even when using HTTPS). Chrome features similar functionality out of the box + among the developer's tools. A more raw approach is to capture the HTTP traffic on the network with tools such as ethereal or tcpdump and check what headers that were sent and received by the browser. (HTTPS makes this technique inefficient.) -15. References +14. References + + 14.1 Standards RFC 2616 is a must to read if you want in-depth understanding of the HTTP - protocol. + protocol - RFC 2396 explains the URL syntax. + RFC 3986 explains the URL syntax - RFC 2109 defines how cookies are supposed to work. + RFC 1867 defines the HTTP post upload format - RFC 1867 defines the HTTP post upload format. + RFC 6525 defines how HTTP cookies work - http://www.openssl.org is the home of the OpenSSL project + 14.2 Sites http://curl.haxx.se is the home of the cURL project diff --git a/docs/VERSIONS b/docs/VERSIONS index 21c0d90..0670089 100644 --- a/docs/VERSIONS +++ b/docs/VERSIONS @@ -11,32 +11,25 @@ Version Numbers and Releases The version numbering is always built up using the same system: - X.Y[.Z][-preN] + X.Y[.Z] Where X is main version number Y is release number Z is patch number - N is pre-release number One of these numbers will get bumped in each new release. The numbers to the right of a bumped number will be reset to zero. If Z is zero, it may not be - included in the version number. The pre release number is only included in - pre releases (they're never used in public, official, releases). + included in the version number. The main version number will get bumped when *really* big, world colliding - changes are made. The release number is bumped when big changes are - performed. The patch number is bumped when the changes are mere bugfixes and - only minor feature changes. The pre-release is a counter, to identify which - pre-release a certain release is. - - When reaching the end of a pre-release period, the version without the - pre-release part will be released as a public release. + changes are made. The release number is bumped when changes are performed or + things/features are added. The patch number is bumped when the changes are + mere bugfixes. It means that after release 1.2.3, we can release 2.0 if something really big has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs - were fixed. Before 1.2.4 is released, we might release a 1.2.4-pre1 release - for the brave people to try before the actual release. + were fixed. Bumping, as in increasing the number with 1, is unconditionally only affecting one of the numbers (except the ones to the right of it, that may be @@ -56,12 +49,12 @@ Version Numbers and Releases #define LIBCURL_VERSION_NUM 0xXXYYZZ Where XX, YY and ZZ are the main version, release and patch numbers in - hexadecimal. All three numbers are always represented using two digits. 1.2 - would appear as "0x010200" while version 9.11.7 appears as "0x090b07". + hexadecimal. All three number fields are always represented using two digits + (eight bits each). 1.2 would appear as "0x010200" while version 9.11.7 + appears as "0x090b07". - This 6-digit hexadecimal number does not show pre-release number, and it is - always a greater number in a more recent release. It makes comparisons with - greater than and less than work. + This 6-digit hexadecimal number is always a greater number in a more recent + release. It makes comparisons with greater than and less than work. This number is also available as three separate defines: LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. diff --git a/docs/curl-config.1 b/docs/curl-config.1 index c4f4e2b..14a9d2b 100644 --- a/docs/curl-config.1 +++ b/docs/curl-config.1 @@ -5,7 +5,7 @@ .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * -.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. +.\" * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms @@ -93,7 +93,6 @@ What's the installed libcurl version? How do I build a single file with a one-line command? - $ `curl-config --cc --cflags --libs` -o example example.c - + $ `curl-config --cc --cflags` -o example example.c `curl-config --libs` .SH "SEE ALSO" .BR curl (1) diff --git a/docs/curl-config.html b/docs/curl-config.html deleted file mode 100644 index 3f49388..0000000 --- a/docs/curl-config.html +++ /dev/null @@ -1,90 +0,0 @@ - -curl-config man page - - - - -

NAME

-

curl-config - Get information about a libcurl installation

SYNOPSIS

-

curl-config [options]

DESCRIPTION

-

curl-config displays information about the curl and libcurl installation.

OPTIONS

-

-

--ca -

Displays the built-in path to the CA cert bundle this libcurl uses. -

--cc -

Displays the compiler used to build libcurl. -

--cflags -

Set of compiler options (CFLAGS) to use when compiling files that use libcurl. Currently that is only the include path to the curl include files. -

--checkfor [version] -

Specify the oldest possible libcurl version string you want, and this script will return 0 if the current installation is new enough or it returns 1 and outputs a text saying that the current version is not new enough. (Added in 7.15.4) -

--configure -

Displays the arguments given to configure when building curl. -

--feature -

Lists what particular main features the installed libcurl was built with. At the time of writing, this list may include SSL, KRB4 or IPv6. Do not assume any particular order. The keywords will be separated by newlines. There may be none, one, or several keywords in the list. -

--help -

Displays the available options. -

--libs -

Shows the complete set of libs and other linker options you will need in order to link your application with libcurl. -

--prefix -

This is the prefix used when libcurl was installed. Libcurl is then installed in $prefix/lib and its header files are installed in $prefix/include and so on. The prefix is set with "configure --prefix". -

--protocols -

Lists what particular protocols the installed libcurl was built to support. At the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE, TELNET, LDAP, DICT. Do not assume any particular order. The protocols will be listed using uppercase and are separated by newlines. There may be none, one, or several protocols in the list. (Added in 7.13.0) -

--static-libs -

Shows the complete set of libs and other linker options you will need in order to link your application with libcurl statically. (Added in 7.17.1) -

--version -

Outputs version information about the installed libcurl. -

--vernum -

Outputs version information about the installed libcurl, in numerical mode. This outputs the version number, in hexadecimal, with 8 bits for each part; major, minor, patch. So that libcurl 7.7.4 would appear as 070704 and libcurl 12.13.14 would appear as 0c0d0e... Note that the initial zero might be omitted. (This option was broken in the 7.15.0 release.)

EXAMPLES

-

What linker options do I need when I link with libcurl? -

  $ curl-config --libs -

What compiler options do I need when I compile using libcurl functions? -

  $ curl-config --cflags -

How do I know if libcurl was built with SSL support? -

  $ curl-config --feature | grep SSL -

What's the installed libcurl version? -

  $ curl-config --version -

How do I build a single file with a one-line command? -

  $ `curl-config --cc --cflags --libs` -o example example.c -

SEE ALSO

-

curl (1)

- This HTML page was made with roffit. - diff --git a/docs/curl-config.pdf b/docs/curl-config.pdf deleted file mode 100644 index e159a94b4e7db5aa45d5645a8f02a41dae8ac269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5991 zcmcgwc|276`&X`|NpvOEtvDryTQg_&F=FhJ64@g%D|3w*X35yHblTCgbsh8cs#r8CH67+=6+P<&yc zl=Cj_oaYwGp{>riNU1bcyNu+3wMr4RV67*P>{pgIIi7XW=2sC~Dw(gTabqjB&KwDQ zl-1X5{bs9Hu^(oye}MCuEInaXQW?5jbICi}$8Echa-Yf!Tu+i8Q~elr`UBx`e#FVL zBdaGUGRY<%D*ISx>o%*lZSZq1_{;j-65g{*&6GEun${;D99=v0?t^ztwNC$(!Krpm zMf#mfyZxV3tl0RcUTE3)1RYt3&?vC#xFwH#aX2PGkL-rfY8k8?S$R`FyYacl3#s^K zCUsI^;68~l@?JO;8~)&Y+`ah`i~KGbwz)Z8!G-;N*L`P(d2Oe#p=kqiM^RO1o>Q}b zV#8U2!A*=Dir+hYXvpJZNN_+|$&Rsh1rPqj>&_Tzf@=2LFzRq$P~iKa?ma?&z=RC5 z`bP1Zx99V$=>*o*x=z|??6py+?XoT@Tn}N&nREqr-;$W1P1?t43I_M(e8@J`J0*Uh z{aG@5oiAn_(p)pY`j^I>(;1}p>e0kznOqN#JhNl?!OKY@M|Iu_U4^>IR*ot1>4!IH zWtTO$*Z2fzR&vfTvnpsSOQ;6N?wD=7d2i#ZtH$|nf_wc3?EWIOQQ29WjQA%ef z(OdbhTJAmKfrSSn^QDI@_U=_&9a0?S8lF6F-bS_~XY0B5*ohN5Q7c;W+o+V|);qFF zYU6_tx%J~Ec*D-!haVzkdbeC=rdy=p0-G0#mURiubYmYmX_n33)OP!xO6&nl`dwH_ zunnb`|8rqalJ|h)5pr+#0d{&;(%^wCtJWPoa=~e-g=%jH30kLp@=e;k9Nnp_;>~X> z+Uw-#Ui7N4vI;!*Tkj2K4DOywX5WST<=e)a#w|M7M5B3)DQA49)+SGs%1UvCYf%?8 zl1%A4{&;=xwkF3)E3KNL5?%EqLiK82p}xFpbIpP7zg=I4w(VVi zsGDC50w%Yq-H}loC~ae>Vp8R$72g&CRm*Qn-F^Hc&vuB9AX#Th6Mi4wUS8SdAgd3X z_mO`^I_&4Ml!9^Of;1JyS0?W<6>9z)qtb(V%kTEH+KI7I>_Zv_adB&Z30UD!RFGfb z`8uxzeIqomjscJyhU+unOIy8=#!CKzBvqD-;wqH+L}AXub2Xhu2C4GLNjpyVX*gwi zY&%^0ljY784GRp8t0>94o4y1EfAtG8Y+V!?uF_9dY~R(N9M`8M(l)UY%6fJT(VQFa zby2H6{yikOEK|gv>g4ZsMA6N5IxY_JTxYc+AXS69#WQspx9=-IjR|L|04g_#`7Uhy#Ow;Vg# z>A#krK-*N3nv|2Bri9ANqX%xL_%s)2Y{)hg`HZmA{*9neI zDJ$t8meyyfriUa~UEm%w;XPgX6sB^q!-;q>r>h_}+vsEpXGF?tQH)~fl3Isc;8v4q zL%7ox7sRtOBpKUr;6~chl@0moBd&c*PE77(Jy`n-wb*oJ;m*sVvbx4~ExAU~oh4pJ zMre!19#7>XB9Bklg?{i9L@eHnTK0nXKS;jVbIoF7~#nE+7n{#dw z_IaQ4s{BrUd2{!5=1!+z=i~?Lbm##?NBb;;UW!WfEN->*$^V&?GN?YCC4_;puG?pD&aj8^Q=kIG>M}G`cwg4RLDG72#zhm~Ve-NA#H>@bd z_f?5+4|l4$8GXSVOpdS!$ud?Dk|Q_Yn>aF7pRS%YUNg|;M`41!X8Ow$bZiY5TjZ9c zTdkA1KpHj+H+4T9W*pHT`(f9pQ-X_Zb&t$(R+!O}_`SVKwf@%_U|4?9zUcbsU%me% zDE#!HRrbN?Cga-{GDq_dr2mdPI#T1)U0#HJINn>_vxM7?U5({;_3r&e#C6-aFT-an7vK@9nWOO-VF8vGOrQ~fToz%^)led=!@$S*Se6h z>ie;4+)UN!?~EM%FP|q2ueO{7&10%t`{0ESGi%sH2hlD;QBrqCkA8hRM=xnnH#M>e zSs|QnI&ryPsUY!AYT={R@gh{lX0^sU^swD`rGGlXI$J|&t|YH{iC z`fl6IZqJL=MmIAY-Ezm%jyXLBMi1rYSFDLjG$I_j5c4r=Fl?yp2a~L!^CpRvqV5MJ zM63-U6Pf?Cm*DoQj~sn=bX`e?y~svQPfpjJxsYqmv&vcH9vr&LBnMD5wY;V#yZ_LS z=QeT6?^Aa9KWwV2l)f#eUOPp0PE&Q2V<$Jq0Q?@ukw6?W_PuhvPw{jT0+ctQKw`}srLRR;>+IIjEk zH?$9VPk?zL-Pn^vf;-tfzq&6SU6^0ac0cu81!k5ho4{kSZZ&MGxvZKAt6 zrODTY`x2Rr^Ec-nuG5OS%qh;vdb894zS}V5U{r-))tgW^!l>q=WBX2~oZGX%sxvaC zQoo#(KgI3iH9BY>Ny}^sUrMh}6mIW&y|r4XvG+o4pkoW^1anJzQPJra&mvS8*quFm z|M^LUtLqQxHhChM4;7@Xh&3(b`CK5Ns7BY*@XBEP&wy!L!Y1zGs^&eyi>&ui@dF?K zmY>jfYO7d^F1sEb|Jp^w%znxGlV+L1%g=q^WDv7S17}gkfSP;_<{8B8o{T z7C~dUL!ci6w5514Kx+n_MKR%u05=r$nt;XtL=wgw2HJ52&`=JbAT1t)BLKuCwu8hB zK3B-2G5C-ZTOOBY&k(qQ(6kSL4h)e1vNIP6HrY!|(PD>?i3JxjN24VV(0C7;LeG## zJ|O-qu!BLOnMT1tg8xr|p8!k)lzfti(R=|Y>D<`}zjQK`FH}N6QbRrfZeh{+fE!HG z)-b4s;>6qm$deGt9Wy(}uTz9nC;|$b>owzPy3E!L0fi2|0nnsxibVX{!Iyf&KpR_Y z08J*(R8w63>1x^$VPZSGS+y3g$IM$2OcDjO(}n4Nqc-c)?K@6pwmXOncK_Xp*!grQ z6AGUp<^$-!@@4Q5CR{fC6Boroh&&wV8<55E0?-n;puLbP5HnR=YbdkNM43~BX*)kw_}?Uy;mmDe0-148Dg1WU^ssA{O*z zafJL?uq10djZ5NWX7yp8!@5{+o%wV|V=+)ErjH$cLy;ea=ED#GRE8IeV*r0uTm}bN zbOX3E-Wp}?XUgzqSqAYK_CebmXhA+S5*=Su z4osnPg#rUOmWC%$=vW#8hay5S(F`gA1ziX<4NJpfnIt+6g_?=vHw)ocp`aH~EG$$4 z=uQvX1nEK=gJ%HWWV;pEY90q~LJD~A;D54$?w;qMoL!tD+Z#1DLhfGbOe_o(}V*Y{YEX`S_T%H3& z1hN;8%VYw(89ctY{%9lyg+zafC^4JX(g(#WGpjKFVyP&8*4F=bv3z~S92V>8nQ>`C zU+6^IZ1xWs@-Hqbo%R`~pOD9vGy$CkGT00;B0jXPXb2~rrpM&+d?^rxDSm!z7L6ii zHVE+#PS%HB3RnU*gDhz=W47Sa4Vxuy89g?I<7EIBA?OSyMaUMw$&MU}HvLoi*(~y> z8;KqG#n*QhMYLiD?(?X0X#sw=gparW(^xNJ*@q`7S@3V z0&!bF1s6Alwwa!|tI!xU9*sv4B@G3Kb`3}kYP|oUF-?E%?=^_d=aXB+V=!ST0E2>w zH>Xb*K)~a%cz_8^%dl8HG;D}3fHNb*V|3@puozwFi27O&Ln1&2_t!EM3Jo3gU&}BU z5_HghEyLo(r`0zyB82Q)8J;vJE*3|CW|D7gaiqC2G-eJy3|2f6d~J&%;pXUJ@tC>z z@c6kh0&%WPcWw-Xxjyoo8+9P$eh1#3pcTbPq@I12&^Yl=0)kaSH@BG0t!zcAqF0Y)rDzl Jn%h{w{sRzY>YD%n diff --git a/docs/curl.1 b/docs/curl.1 index 95614c6..af5d5f3 100644 --- a/docs/curl.1 +++ b/docs/curl.1 @@ -5,7 +5,7 @@ .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * -.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. +.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, , et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms @@ -20,7 +20,7 @@ .\" * .\" ************************************************************************** .\" -.TH curl 1 "28 November 2009" "Curl 7.20.0" "Curl Manual" +.TH curl 1 "30 Nov 2014" "Curl 7.40.0" "Curl Manual" .SH NAME curl \- transfer a URL .SH SYNOPSIS @@ -30,13 +30,13 @@ curl \- transfer a URL .B curl is a tool to transfer data from or to a server, using one of the supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, -LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP). The -command is designed to work without user interaction. +LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET +and TFTP). The command is designed to work without user interaction. curl offers a busload of useful tricks like proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer -resume and more. As you will see below, the number of features will make your -head spin! +resume, Metalink, and more. As you will see below, the number of features will +make your head spin! curl is powered by libcurl for all transfer-related features. See .BR libcurl (3) @@ -48,18 +48,20 @@ RFC 3986. You can specify multiple URLs or parts of URLs by writing part sets within braces as in: - http://site.{one,two,three}.com + http://site.{one,two,three}.com or you can get sequences of alphanumeric series by using [] as in: - ftp://ftp.numericals.com/file[1-100].txt - ftp://ftp.numericals.com/file[001-100].txt (with leading zeros) - ftp://ftp.letters.com/file[a-z].txt + ftp://ftp.numericals.com/file[1-100].txt + + ftp://ftp.numericals.com/file[001-100].txt (with leading zeros) + + ftp://ftp.letters.com/file[a-z].txt Nested sequences are not supported, but you can use several ones next to each other: - http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html + http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html You can specify any amount of URLs on the command line. They will be fetched in a sequential manner in the specified order. @@ -67,8 +69,19 @@ in a sequential manner in the specified order. You can specify a step counter for the ranges to get every Nth number or letter: - http://www.numericals.com/file[1-100:10].txt - http://www.letters.com/file[a-z:2].txt + http://www.numericals.com/file[1-100:10].txt + + http://www.letters.com/file[a-z:2].txt + +When using [] or {} sequences when invoked from a command line prompt, you +probably have to put the full URL within double quotes to avoid the shell from +interfering with it. This also goes for other characters treated special, like +for example '&', '?' and '*'. + +Provide the IPv6 zone index in the URL with an escaped percentage sign and the +interface name. Like in + + http://[fe80::3%25eth0]/ If you specify URL without protocol:// prefix, curl will attempt to guess what protocol you might want. It will then default to HTTP but try other protocols @@ -79,14 +92,14 @@ curl will do its best to use what you pass to it as a URL. It is not trying to validate it as a syntactically correct URL by any means but is instead \fBvery\fP liberal with what it accepts. -Curl will attempt to re-use connections for multiple file transfers, so that +curl will attempt to re-use connections for multiple file transfers, so that getting many files from the same server will not do multiple connects / handshakes. This improves speed. Of course this is only done on files specified on a single command line and cannot be used between separate curl invokes. .SH "PROGRESS METER" -curl normally displays a progress meter during operations, indicating the amount -of transferred data, transfer speeds and estimated time left, etc. +curl normally displays a progress meter during operations, indicating the +amount of transferred data, transfer speeds and estimated time left, etc. curl displays this data to the terminal by default, so if you invoke curl to do an operation and it is about to write data to the terminal, it @@ -103,24 +116,84 @@ any response data to the terminal. If you prefer a progress "bar" instead of the regular meter, \fI-#\fP is your friend. .SH OPTIONS -In general, all boolean options are enabled with --option and yet again +Options start with one or two dashes. Many of the options require an +additional value next to them. + +The short "single-dash" form of the options, -d for example, may be used with +or without a space between it and its value, although a space is a recommended +separator. The long "double-dash" form, --data for example, requires a space +between it and its value. + +Short version options that don't need any additional values can be used +immediately next to each other, like for example you can specify all the +options -O, -L and -v at once as -OLv. + +In general, all boolean options are enabled with --\fBoption\fP and yet again disabled with --\fBno-\fPoption. That is, you use the exact same option name but prefix it with "no-". However, in this list we mostly only list and show the --option version of them. (This concept with --no options was added in 7.19.0. Previously most options were toggled on/off on repeated use of the same command line option.) -.IP "-a/--append" -(FTP/SFTP) When used in an upload, this will tell curl to append to the target -file instead of overwriting it. If the file doesn't exist, it will be created. -Note that this flag is ignored by some SSH servers (including OpenSSH). -.IP "-A/--user-agent " +.IP "-#, --progress-bar" +Make curl display progress as a simple progress bar instead of the standard, +more informational, meter. +.IP "-:, --next" +Tells curl to use a separate operation for the following URL and associated +options. This allows you to send several URL requests, each with their own +specific options, for example, such as different user names or custom requests +for each. (Added in 7.36.0) +.IP "-0, --http1.0" +(HTTP) Tells curl to use HTTP version 1.0 instead of using its internally +preferred: HTTP 1.1. +.IP "--http1.1" +(HTTP) Tells curl to use HTTP version 1.1. This is the internal default +version. (Added in 7.33.0) +.IP "--http2" +(HTTP) Tells curl to issue its requests using HTTP 2. This requires that the +underlying libcurl was built to support it. (Added in 7.33.0) +.IP "--no-npn" +Disable the NPN TLS extension. NPN is enabled by default if libcurl was built +with an SSL library that supports NPN. NPN is used by a libcurl that supports +HTTP 2 to negotiate HTTP 2 support with the server during https sessions. + +(Added in 7.36.0) +.IP "--no-alpn" +Disable the ALPN TLS extension. ALPN is enabled by default if libcurl was built +with an SSL library that supports ALPN. ALPN is used by a libcurl that supports +HTTP 2 to negotiate HTTP 2 support with the server during https sessions. + +(Added in 7.36.0) +.IP "-1, --tlsv1" +(SSL) +Forces curl to use TLS version 1.x when negotiating with a remote TLS server. +You can use options \fI--tlsv1.0\fP, \fI--tlsv1.1\fP, and \fI--tlsv1.2\fP to +control the TLS version more precisely (if the SSL backend in use supports such +a level of control). +.IP "-2, --sslv2" +(SSL) Forces curl to use SSL version 2 when negotiating with a remote SSL +server. Sometimes curl is built without SSLv2 support. SSLv2 is widely +considered insecure. +.IP "-3, --sslv3" +(SSL) Forces curl to use SSL version 3 when negotiating with a remote SSL +server. Sometimes curl is built without SSLv3 support. +.IP "-4, --ipv4" +This option tells curl to resolve names to IPv4 addresses only, and not for +example try IPv6. +.IP "-6, --ipv6" +This option tells curl to resolve names to IPv6 addresses only, and not for +example try IPv4. +.IP "-a, --append" +(FTP/SFTP) When used in an upload, this makes curl append to the target file +instead of overwriting it. If the remote file doesn't exist, it will be +created. Note that this flag is ignored by some SFTP servers (including +OpenSSH). +.IP "-A, --user-agent " (HTTP) Specify the User-Agent string to send to the HTTP server. Some badly done CGIs fail if this field isn't set to "Mozilla/4.0". To encode blanks in the string, surround the string with single quote marks. This can also be set -with the \fI-H/--header\fP option of course. +with the \fI-H, --header\fP option of course. -If this option is set more than once, the last one will be the one that's -used. +If this option is used several times, the last one will be used. .IP "--anyauth" (HTTP) Tells curl to figure out authentication method by itself, and use the most secure one the remote site claims to support. This is done by first @@ -133,65 +206,49 @@ Note that using --anyauth is not recommended if you do uploads from stdin, since it may require data to be sent twice and then the client must be able to rewind. If the need should arise when uploading from stdin, the upload operation will fail. -.IP "-b/--cookie " -(HTTP) -Pass the data to the HTTP server as a cookie. It is supposedly the -data previously received from the server in a "Set-Cookie:" line. -The data should be in the format "NAME1=VALUE1; NAME2=VALUE2". +.IP "-b, --cookie " +(HTTP) Pass the data to the HTTP server as a cookie. It is supposedly the data +previously received from the server in a "Set-Cookie:" line. The data should +be in the format "NAME1=VALUE1; NAME2=VALUE2". If no '=' symbol is used in the line, it is treated as a filename to use to read previously stored cookie lines from, which should be used in this session if they match. Using this method also activates the "cookie parser" which will make curl record incoming cookies too, which may be handy if you're using this -in combination with the \fI-L/--location\fP option. The file format of the +in combination with the \fI-L, --location\fP option. The file format of the file to read cookies from should be plain HTTP headers or the Netscape/Mozilla cookie file format. -\fBNOTE\fP that the file specified with \fI-b/--cookie\fP is only used as -input. No cookies will be stored in the file. To store cookies, use the -\fI-c/--cookie-jar\fP option or you could even save the HTTP headers to a file -using \fI-D/--dump-header\fP! +The file specified with \fI-b, --cookie\fP is only used as input. No cookies +will be written to the file. To store cookies, use the \fI-c, --cookie-jar\fP +option. -If this option is set more than once, the last one will be the one that's -used. -.IP "-B/--use-ascii" -Enable ASCII transfer when using FTP or LDAP. For FTP, this can also be -enforced by using an URL that ends with ";type=A". This option causes data -sent to stdout to be in text mode for win32 systems. +If this option is used several times, the last one will be used. +.IP "-B, --use-ascii" +(FTP/LDAP) Enable ASCII transfer. For FTP, this can also be enforced by using +an URL that ends with ";type=A". This option causes data sent to stdout to be +in text mode for win32 systems. .IP "--basic" -(HTTP) Tells curl to use HTTP Basic authentication. This is the default and -this option is usually pointless, unless you use it to override a previously -set option that sets a different authentication method (such as \fI--ntlm\fP, -\fI--digest\fP, or \fI--negotiate\fP). -.IP "--ciphers " -(SSL) Specifies which ciphers to use in the connection. The list of ciphers -must specify valid ciphers. Read up on SSL cipher list details on this URL: -\fIhttp://www.openssl.org/docs/apps/ciphers.html\fP - -NSS ciphers are done differently than OpenSSL and GnuTLS. The full list of -NSS ciphers is in the NSSCipherSuite entry at this URL: -\fIhttp://directory.fedora.redhat.com/docs/mod_nss.html#Directives\fP +(HTTP) Tells curl to use HTTP Basic authentication with the remote host. This +is the default and this option is usually pointless, unless you use it to +override a previously set option that sets a different authentication method +(such as \fI--ntlm\fP, \fI--digest\fP, or \fI--negotiate\fP). + +Used together with \fI-u, --user\fP and \fI-x, --proxy\fP. + +See also \fI--proxy-basic\fP. +.IP "-c, --cookie-jar " +(HTTP) Specify to which file you want curl to write all cookies after a +completed operation. Curl writes all cookies previously read from a specified +file as well as all cookies received from remote server(s). If no cookies are +known, no data will be written. The file will be written using the Netscape +cookie file format. If you set the file name to a single dash, "-", the +cookies will be written to stdout. + +This command line option will activate the cookie engine that makes curl +record and use cookies. Another way to activate it is to use the \fI-b, +--cookie\fP option. -If this option is used several times, the last one will override the others. -.IP "--compressed" -(HTTP) Request a compressed response using one of the algorithms libcurl -supports, and return the uncompressed document. If this option is used and -the server sends an unsupported encoding, curl will report an error. -.IP "--connect-timeout " -Maximum time in seconds that you allow the connection to the server to take. -This only limits the connection phase, once curl has connected this option is -of no more use. See also the \fI-m/--max-time\fP option. - -If this option is used several times, the last one will be used. -.IP "-c/--cookie-jar " -Specify to which file you want curl to write all cookies after a completed -operation. Curl writes all cookies previously read from a specified file as -well as all cookies received from remote server(s). If no cookies are known, -no file will be written. The file will be written using the Netscape cookie -file format. If you set the file name to a single dash, "-", the cookies will -be written to stdout. - -.B NOTE If the cookie jar can't be created or written to, the whole curl operation won't fail or even report an error clearly. Using -v will get a warning displayed, but that is the only visible feedback you get about this possibly @@ -199,7 +256,7 @@ lethal situation. If this option is used several times, the last specified file name will be used. -.IP "-C/--continue-at " +.IP "-C, --continue-at " Continue/Resume a previous file transfer at the given offset. The given offset is the exact number of bytes that will be skipped, counting from the beginning of the source file before it is transferred to the destination. If used with @@ -209,16 +266,41 @@ Use "-C -" to tell curl to automatically find out where/how to resume the transfer. It then uses the given output/input files to figure that out. If this option is used several times, the last one will be used. +.IP "--ciphers " +(SSL) Specifies which ciphers to use in the connection. The list of ciphers +must specify valid ciphers. Read up on SSL cipher list details on this URL: +\fIhttp://www.openssl.org/docs/apps/ciphers.html\fP + +NSS ciphers are done differently than OpenSSL and GnuTLS. The full list of NSS +ciphers is in the NSSCipherSuite entry at this URL: +\fIhttp://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\fP + +If this option is used several times, the last one will be used. +.IP "--compressed" +(HTTP) Request a compressed response using one of the algorithms curl +supports, and save the uncompressed document. If this option is used and the +server sends an unsupported encoding, curl will report an error. +.IP "--connect-timeout " +Maximum time in seconds that you allow curl's connection to take. This only +limits the connection phase, so if curl connects within the given period it +will continue - if not it will exit. Since version 7.32.0, this option +accepts decimal values. + +See also the \fI-m, --max-time\fP option. + +If this option is used several times, the last one will be used. .IP "--create-dirs" -When used in conjunction with the -o option, curl will create the necessary -local directory hierarchy as needed. This option creates the dirs mentioned -with the -o option, nothing else. If the -o file name uses no dir or if the -dirs it mentions already exist, no dir will be created. +When used in conjunction with the \fI-o\fP option, curl will create the +necessary local directory hierarchy as needed. This option creates the dirs +mentioned with the \fI-o\fP option, nothing else. If the \fI-o\fP file name +uses no dir or if the dirs it mentions already exist, no dir will be created. To create remote directories when using FTP or SFTP, try \fI--ftp-create-dirs\fP. .IP "--crlf" -(FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390). +Convert LF to CRLF in upload. Useful for MVS (OS/390). + +(SMTP added in 7.40.0) .IP "--crlfile " (HTTPS/FTPS) Provide a file using PEM format with a Certificate Revocation List that may specify peer certificates that are to be considered revoked. @@ -226,14 +308,14 @@ List that may specify peer certificates that are to be considered revoked. If this option is used several times, the last one will be used. (Added in 7.19.7) -.IP "-d/--data " +.IP "-d, --data " (HTTP) Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has filled in an HTML form and presses the submit button. This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to -\fI-F/--form\fP. +\fI-F, --form\fP. -\fI-d/--data\fP is the same as \fI--data-ascii\fP. To post data purely binary, +\fI-d, --data\fP is the same as \fI--data-ascii\fP. To post data purely binary, you should instead use the \fI--data-binary\fP option. To URL-encode the value of a form field you may use \fI--data-urlencode\fP. @@ -243,20 +325,35 @@ data pieces specified will be merged together with a separating chunk that looks like \&'name=daniel&skill=lousy'. If you start the data with the letter @, the rest should be a file name to -read the data from, or - if you want curl to read the data from stdin. The -contents of the file must already be URL-encoded. Multiple files can also be -specified. Posting data from a file named 'foobar' would thus be done with -\fI--data @foobar\fP. +read the data from, or - if you want curl to read the data from +stdin. Multiple files can also be specified. Posting data from a file +named 'foobar' would thus be done with \fI--data\fP @foobar. When --data is +told to read from a file like that, carriage returns and newlines will be +stripped out. +.IP "-D, --dump-header " +Write the protocol headers to the specified file. + +This option is handy to use when you want to store the headers that an HTTP +site sends to you. Cookies from the headers could then be read in a second +curl invocation by using the \fI-b, --cookie\fP option! The +\fI-c, --cookie-jar\fP option is a better way to store cookies. + +When used in FTP, the FTP server response lines are considered being "headers" +and thus are saved there. + +If this option is used several times, the last one will be used. +.IP "--data-ascii " +See \fI-d, --data\fP. .IP "--data-binary " (HTTP) This posts data exactly as specified with no extra processing whatsoever. If you start the data with the letter @, the rest should be a filename. Data is posted in a similar manner as \fI--data-ascii\fP does, except that newlines -are preserved and conversions are never done. +and carriage returns are preserved and conversions are never done. If this option is used several times, the ones following the first will append -data as described in \fI-d/--data\fP. +data as described in \fI-d, --data\fP. .IP "--data-urlencode " (HTTP) This posts data, similar to the other --data options with the exception that this performs URL-encoding. (Added in 7.18.0) @@ -284,87 +381,130 @@ URL-encode that data and pass it on in the POST. The name part gets an equal sign appended, resulting in \fIname=urlencoded-file-content\fP. Note that the name is expected to be URL-encoded already. .RE +.IP "--delegation LEVEL" +Set \fILEVEL\fP to tell the server what it is allowed to delegate when it +comes to user credentials. Used with GSS/kerberos. +.RS +.IP "none" +Don't allow any delegation. +.IP "policy" +Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos +service ticket, which is a matter of realm policy. +.IP "always" +Unconditionally allow the server to delegate. +.RE .IP "--digest" -(HTTP) Enables HTTP Digest authentication. This is a authentication that -prevents the password from being sent over the wire in clear text. Use this in -combination with the normal \fI-u/--user\fP option to set user name and -password. See also \fI--ntlm\fP, \fI--negotiate\fP and \fI--anyauth\fP for +(HTTP) Enables HTTP Digest authentication. This is an authentication scheme +that prevents the password from being sent over the wire in clear text. Use +this in combination with the normal \fI-u, --user\fP option to set user name +and password. See also \fI--ntlm\fP, \fI--negotiate\fP and \fI--anyauth\fP for related options. -If this option is used several times, the following occurrences make no -difference. +If this option is used several times, only the first one is used. .IP "--disable-eprt" (FTP) Tell curl to disable the use of the EPRT and LPRT commands when doing active FTP transfers. Curl will normally always first attempt to use EPRT, then LPRT before using PORT, but with this option, it will use PORT right -away. EPRT and LPRT are extensions to the original FTP protocol, and may not work -on all servers, but they enable more functionality in a better way than the -traditional PORT command. +away. EPRT and LPRT are extensions to the original FTP protocol, and may not +work on all servers, but they enable more functionality in a better way than +the traditional PORT command. \fB--eprt\fP can be used to explicitly enable EPRT again and \fB--no-eprt\fP is an alias for \fB--disable-eprt\fP. Disabling EPRT only changes the active behavior. If you want to switch to -passive mode you need to not use \fI-P/--ftp-port\fP or force it with +passive mode you need to not use \fI-P, --ftp-port\fP or force it with \fI--ftp-pasv\fP. .IP "--disable-epsv" (FTP) Tell curl to disable the use of the EPSV command when doing passive FTP transfers. Curl will normally always first attempt to use EPSV before PASV, but with this option, it will not try using EPSV. -\fB--epsv\fP can be used to explicitly enable EPRT again and \fB--no-epsv\fP +\fB--epsv\fP can be used to explicitly enable EPSV again and \fB--no-epsv\fP is an alias for \fB--disable-epsv\fP. Disabling EPSV only changes the passive behavior. If you want to switch to -active mode you need to use \fI-P/--ftp-port\fP. -.IP "-D/--dump-header " -Write the protocol headers to the specified file. - -This option is handy to use when you want to store the headers that a HTTP -site sends to you. Cookies from the headers could then be read in a second -curl invocation by using the \fI-b/--cookie\fP option! The \fI-c/--cookie-jar\fP -option is however a better way to store cookies. - -When used in FTP, the FTP server response lines are considered being "headers" -and thus are saved there. - -If this option is used several times, the last one will be used. -.IP "-e/--referer " -(HTTP) Sends the "Referer Page" information to the HTTP server. This can also -be set with the \fI-H/--header\fP flag of course. When used with -\fI-L/--location\fP you can append ";auto" to the --referer URL to make curl +active mode you need to use \fI-P, --ftp-port\fP. +.IP "--dns-interface " +Tell curl to send outgoing DNS requests through . This option +is a counterpart to \fI--interface\fP (which does not affect DNS). The +supplied string must be an interface name (not an address). + +This option requires that libcurl was built with a resolver backend that +supports this operation. The c-ares backend is the only such one. (Added in +7.33.0) +.IP "--dns-ipv4-addr " +Tell curl to bind to when making IPv4 DNS requests, so that +the DNS requests originate from this address. The argument should be a +single IPv4 address. + +This option requires that libcurl was built with a resolver backend that +supports this operation. The c-ares backend is the only such one. (Added in +7.33.0) +.IP "--dns-ipv6-addr " +Tell curl to bind to when making IPv6 DNS requests, so that +the DNS requests originate from this address. The argument should be a +single IPv6 address. + +This option requires that libcurl was built with a resolver backend that +supports this operation. The c-ares backend is the only such one. (Added in +7.33.0) +.IP "--dns-servers " +Set the list of DNS servers to be used instead of the system default. +The list of IP addresses should be separated with commas. Port numbers +may also optionally be given as \fI:\fP after each IP +address. + +This option requires that libcurl was built with a resolver backend that +supports this operation. The c-ares backend is the only such one. (Added in +7.33.0) +.IP "-e, --referer " +(HTTP) Sends the "Referrer Page" information to the HTTP server. This can also +be set with the \fI-H, --header\fP flag of course. When used with +\fI-L, --location\fP you can append ";auto" to the --referer URL to make curl automatically set the previous URL when it follows a Location: header. The \&";auto" string can be used alone, even if you don't set an initial --referer. If this option is used several times, the last one will be used. +.IP "-E, --cert " +(SSL) Tells curl to use the specified client certificate file when getting a +file with HTTPS, FTPS or another SSL-based protocol. The certificate must be +in PKCS#12 format if using Secure Transport, or PEM format if using any other +engine. If the optional password isn't specified, it will be queried +for on the terminal. Note that this option assumes a \&"certificate" file that +is the private key and the private certificate concatenated! See \fI--cert\fP +and \fI--key\fP to specify them independently. + +If curl is built against the NSS SSL library then this option can tell +curl the nickname of the certificate to use within the NSS database defined +by the environment variable SSL_DIR (or by default /etc/pki/nssdb). If the +NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files may be +loaded. If you want to use a file from the current directory, please precede +it with "./" prefix, in order to avoid confusion with a nickname. If the +nickname contains ":", it needs to be preceded by "\\" so that it is not +recognized as password delimiter. If the nickname contains "\\", it needs to +be escaped as "\\\\" so that it is not recognized as an escape character. + +(iOS and Mac OS X only) If curl is built against Secure Transport, then the +certificate string can either be the name of a certificate/private key in the +system or user keychain, or the path to a PKCS#12-encoded certificate and +private key. If you want to use a file from the current directory, please +precede it with "./" prefix, in order to avoid confusion with a nickname. + +If this option is used several times, the last one will be used. .IP "--engine " Select the OpenSSL crypto engine to use for cipher operations. Use \fI--engine list\fP to print a list of build-time supported engines. Note that not all (or none) of the engines may be available at run-time. .IP "--environment" -(RISC OS ONLY) Sets a range of environment variables, using the names the -w -option supports, to allow easier extraction of useful information after having -run curl. +(RISC OS ONLY) Sets a range of environment variables, using the names the +\fI-w\fP option supports, to allow easier extraction of useful information +after having run curl. .IP "--egd-file " (SSL) Specify the path name to the Entropy Gathering Daemon socket. The socket is used to seed the random engine for SSL connections. See also the \fI--random-file\fP option. -.IP "-E/--cert " -(SSL) Tells curl to use the specified certificate file when getting a file -with HTTPS or FTPS. The certificate must be in PEM format. If the optional -password isn't specified, it will be queried for on the terminal. Note that -this option assumes a \&"certificate" file that is the private key and the -private certificate concatenated! See \fI--cert\fP and \fI--key\fP to specify -them independently. - -If curl is built against the NSS SSL library then this option tells -curl the nickname of the certificate to use within the NSS database defined -by the environment variable SSL_DIR (or by default /etc/pki/nssdb). If the -NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files may be -loaded. - -If this option is used several times, the last one will be used. .IP "--cert-type " (SSL) Tells curl what certificate type the provided certificate is in. PEM, DER and ENG are recognized types. If not specified, PEM is assumed. @@ -384,50 +524,124 @@ The windows version of curl will automatically look for a CA certs file named \'curl-ca-bundle.crt\', either in the same directory as curl.exe, or in the Current Working Directory, or in any folder along your PATH. -If curl is built against the NSS SSL library then this option tells -curl the nickname of the CA certificate to use within the NSS database -defined by the environment variable SSL_DIR (or by default /etc/pki/nssdb). -If the NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files -may be loaded. +If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module +(libnsspem.so) needs to be available for this option to work properly. If this option is used several times, the last one will be used. .IP "--capath " (SSL) Tells curl to use the specified certificate directory to verify the -peer. The certificates must be in PEM format, and the directory must have been -processed using the c_rehash utility supplied with openssl. Using -\fI--capath\fP can allow curl to make SSL-connections much more efficiently -than using \fI--cacert\fP if the \fI--cacert\fP file contains many CA -certificates. +peer. Multiple paths can be provided by separating them with ":" (e.g. +\&"path1:path2:path3"). The certificates must be in PEM format, and if curl is +built against OpenSSL, the directory must have been processed using the +c_rehash utility supplied with OpenSSL. Using \fI--capath\fP can allow +OpenSSL-powered curl to make SSL-connections much more efficiently than using +\fI--cacert\fP if the \fI--cacert\fP file contains many CA certificates. + +If this option is set, the default capath value will be ignored, and if it is +used several times, the last one will be used. +.IP "--pinnedpubkey " +(SSL) Tells curl to use the specified public key file to verify the peer. The +file must contain a single public key in PEM or DER format. + +When negotiating a TLS or SSL connection, the server sends a certificate +indicating its identity. A public key is extracted from this certificate and +if it does not exactly match the public key provided to this option, curl will +abort the connection before sending or receiving any data. + +This is currently only implemented in the OpenSSL, GnuTLS and GSKit backends. If this option is used several times, the last one will be used. -.IP "-f/--fail" +(Added in 7.39.0) +.IP "--cert-status" +(SSL) Tells curl to verify the status of the server certificate by using the +Certificate Status Request (aka. OCSP stapling) TLS extension. + +If this option is enabled and the server sends an invalid (e.g. expired) +response, if the response suggests that the server certificate has been revoked, +or no response at all is received, the verification fails. + +This is currently only implemented in the GnuTLS and NSS backends. +(Added in 7.41.0) +.IP "-f, --fail" (HTTP) Fail silently (no output at all) on server errors. This is mostly done -to better enable scripts etc to better deal with failed attempts. In -normal cases when a HTTP server fails to deliver a document, it returns an -HTML document stating so (which often also describes why and more). This flag -will prevent curl from outputting that and return error 22. +to better enable scripts etc to better deal with failed attempts. In normal +cases when an HTTP server fails to deliver a document, it returns an HTML +document stating so (which often also describes why and more). This flag will +prevent curl from outputting that and return error 22. This method is not fail-safe and there are occasions where non-successful response codes will slip through, especially when authentication is involved (response codes 401 and 407). +.IP "-F, --form " +(HTTP) This lets curl emulate a filled-in form in which a user has pressed the +submit button. This causes curl to POST data using the Content-Type +multipart/form-data according to RFC 2388. This enables uploading of binary +files etc. To force the 'content' part to be a file, prefix the file name with +an @ sign. To just get the content part from a file, prefix the file name with +the symbol <. The difference between @ and < is then that @ makes a file get +attached in the post as a file upload, while the < makes a text field and just +get the contents for that text field from a file. + +Example, to send your password file to the server, where +\&'password' is the name of the form-field to which /etc/passwd will be the +input: + +\fBcurl\fP -F password=@/etc/passwd www.mypasswords.com + +To read content from stdin instead of a file, use - as the filename. This goes +for both @ and < constructs. + +You can also tell curl what Content-Type to use by using 'type=', in a manner +similar to: + +\fBcurl\fP -F "web=@index.html;type=text/html" url.com + +or + +\fBcurl\fP -F "name=daniel;type=text/foo" url.com + +You can also explicitly change the name field of a file upload part by setting +filename=, like this: + +\fBcurl\fP -F "file=@localfile;filename=nameinpost" url.com + +If filename/path contains ',' or ';', it must be quoted by double-quotes like: + +\fBcurl\fP -F "file=@\\"localfile\\";filename=\\"nameinpost\\"" url.com + +or + +\fBcurl\fP -F 'file=@"localfile";filename="nameinpost"' url.com + +Note that if a filename/path is quoted by double-quotes, any double-quote +or backslash within the filename must be escaped by backslash. + +See further examples and details in the MANUAL. + +This option can be used multiple times. .IP "--ftp-account [data]" (FTP) When an FTP server asks for "account data" after user name and password has been provided, this data is sent off using the ACCT command. (Added in 7.13.0) -If this option is used twice, the second will override the previous use. +If this option is used several times, the last one will be used. +.IP "--ftp-alternative-to-user " +(FTP) If authenticating with the USER and PASS commands fails, send this +command. When connecting to Tumbleweed's Secure Transport server over FTPS +using a client certificate, using "SITE AUTH" will tell the server to retrieve +the username from the certificate. (Added in 7.15.5) .IP "--ftp-create-dirs" (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that doesn't currently exist on the server, the standard behavior of curl is to fail. Using this option, curl will instead attempt to create missing directories. .IP "--ftp-method [method]" -(FTP) Control what method curl should use to reach a file on a FTP(S) +(FTP) Control what method curl should use to reach a file on an FTP(S) server. The method argument should be one of the following alternatives: .RS .IP multicwd curl does a single CWD operation for each path part in the given URL. For deep -hierarchies this means very many commands. This is how RFC1738 says it should +hierarchies this means very many commands. This is how RFC 1738 says it should be done. This is the default but the slowest behavior. .IP nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full @@ -439,21 +653,16 @@ compliant than 'nocwd' but without the full penalty of 'multicwd'. .RE (Added in 7.15.1) .IP "--ftp-pasv" -(FTP) Use passive mode for the data conection. Passive is the internal default +(FTP) Use passive mode for the data connection. Passive is the internal default behavior, but using this option can be used to override a previous \fI-P/-ftp-port\fP option. (Added in 7.11.0) -If this option is used several times, the following occurrences make no -difference. Undoing an enforced passive really isn't doable but you must then -instead enforce the correct \fI-P/--ftp-port\fP again. +If this option is used several times, only the first one is used. Undoing an +enforced passive really isn't doable but you must then instead enforce the +correct \fI-P, --ftp-port\fP again. Passive mode means that curl will try the EPSV command first and then PASV, unless \fI--disable-epsv\fP is used. -.IP "--ftp-alternative-to-user " -(FTP) If authenticating with the USER and PASS commands fails, send this -command. When connecting to Tumbleweed's Secure Transport server over FTPS -using a client certificate, using "SITE AUTH" will tell the server to retrieve -the username from the certificate. (Added in 7.15.5) .IP "--ftp-skip-pasv-ip" (FTP) Tell curl to not use the IP address the server suggests in its response to curl's PASV command when curl connects the data connection. Instead curl @@ -466,30 +675,12 @@ This option has no effect if PORT, EPRT or EPSV is used instead of PASV. FTP servers, mainly drftpd, require this non-standard command for directory listings as well as up and downloads in PASV mode. (Added in 7.20.x) -.IP "--ssl" -(FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection. Reverts to a -non-secure connection if the server doesn't support SSL/TLS. See also -\fI--ftp-ssl-control\fP and \fI--ssl-reqd\fP for different levels of -encryption required. (Added in 7.20.0) - -This option was formerly known as \fI--ftp-ssl\fP (Added in 7.11.0) and that -can still be used but will be removed in a future version. -.IP "--ftp-ssl-control" -(FTP) Require SSL/TLS for the FTP login, clear for transfer. Allows secure -authentication, but non-encrypted data transfers for efficiency. Fails the -transfer if the server doesn't support SSL/TLS. (Added in 7.16.0) -.IP "--ssl-reqd" -(FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection. Terminates the -connection if the server doesn't support SSL/TLS. (Added in 7.20.0) - -This option was formerly known as \fI--ftp-ssl-reqd\fP (added in 7.15.5) and -that can still be used but will be removed in a future version. .IP "--ftp-ssl-ccc" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after authenticating. The rest of the control channel communication will be unencrypted. This allows NAT routers to follow the FTP transaction. The default mode is -passive. See --ftp-ssl-ccc-mode for other modes. +passive. See \fI--ftp-ssl-ccc-mode\fP for other modes. (Added in 7.16.1) .IP "--ftp-ssl-ccc-mode [active/passive]" (FTP) Use CCC (Clear Command Channel) @@ -498,98 +689,79 @@ instead wait for the server to do it, and will not reply to the shutdown from the server. The active mode initiates the shutdown and waits for a reply from the server. (Added in 7.16.2) -.IP "-F/--form " -(HTTP) This lets curl emulate a filled-in form in which a user has pressed the -submit button. This causes curl to POST data using the Content-Type -multipart/form-data according to RFC2388. This enables uploading of binary -files etc. To force the 'content' part to be a file, prefix the file name -with an @ sign. To just get the content part from a file, prefix the file name -with the symbol <. The difference between @ and < is then that @ makes a file -get attached in the post as a file upload, while the < makes a text field and -just get the contents for that text field from a file. - -Example, to send your password file to the server, where -\&'password' is the name of the form-field to which /etc/passwd will be the -input: - -\fBcurl\fP -F password=@/etc/passwd www.mypasswords.com - -To read the file's content from stdin instead of a file, use - where the file -name should've been. This goes for both @ and < constructs. - -You can also tell curl what Content-Type to use by using 'type=', in a manner -similar to: - -\fBcurl\fP -F "web=@index.html;type=text/html" url.com - -or - -\fBcurl\fP -F "name=daniel;type=text/foo" url.com - -You can also explicitly change the name field of a file upload part by setting -filename=, like this: - -\fBcurl\fP -F "file=@localfile;filename=nameinpost" url.com - -See further examples and details in the MANUAL. - -This option can be used multiple times. +.IP "--ftp-ssl-control" +(FTP) Require SSL/TLS for the FTP login, clear for transfer. Allows secure +authentication, but non-encrypted data transfers for efficiency. Fails the +transfer if the server doesn't support SSL/TLS. (Added in 7.16.0) +that can still be used but will be removed in a future version. .IP "--form-string " (HTTP) Similar to \fI--form\fP except that the value string for the named parameter is used literally. Leading \&'@' and \&'<' characters, and the \&';type=' string in the value have no special meaning. Use this in preference to \fI--form\fP if there's any possibility that the string value may accidentally trigger the \&'@' or \&'<' features of \fI--form\fP. -.IP "-g/--globoff" +.IP "-g, --globoff" This option switches off the "URL globbing parser". When you set this option, you can specify URLs that contain the letters {}[] without having them being interpreted by curl itself. Note that these letters are not normal legal URL contents but they should be encoded according to the URI standard. -.IP "-G/--get" -When used, this option will make all data specified with \fI-d/--data\fP or -\fI--data-binary\fP to be used in a HTTP GET request instead of the POST -request that otherwise would be used. The data will be appended to the URL -with a '?' separator. +.IP "-G, --get" +When used, this option will make all data specified with \fI-d, --data\fP, +\fI--data-binary\fP or \fI--data-urlencode\fP to be used in an HTTP GET +request instead of the POST request that otherwise would be used. The data +will be appended to the URL with a '?' separator. If used in combination with -I, the POST data will instead be appended to the URL with a HEAD request. -If this option is used several times, the following occurrences make no -difference. This is because undoing a GET doesn't make sense, but you should -then instead enforce the alternative method you prefer. -.IP "-h/--help" -Usage help. -.IP "-H/--header

" -(HTTP) Extra header to use when getting a web page. You may specify any number -of extra headers. Note that if you should add a custom header that has the -same name as one of the internal ones curl would use, your externally set -header will be used instead of the internal one. This allows you to make even -trickier stuff than curl would normally do. You should not replace internally -set headers without knowing perfectly well what you're doing. Remove an -internal header by giving a replacement without content on the right side of -the colon, as in: -H \&"Host:". +If this option is used several times, only the first one is used. This is +because undoing a GET doesn't make sense, but you should then instead enforce +the alternative method you prefer. +.IP "-H, --header
" +(HTTP) Extra header to include in the request when sending HTTP to a +server. You may specify any number of extra headers. Note that if you should +add a custom header that has the same name as one of the internal ones curl +would use, your externally set header will be used instead of the internal +one. This allows you to make even trickier stuff than curl would normally +do. You should not replace internally set headers without knowing perfectly +well what you're doing. Remove an internal header by giving a replacement +without content on the right side of the colon, as in: -H \&"Host:". If you +send the custom header with no-value then its header must be terminated with a +semicolon, such as \-H \&"X-Custom-Header;" to send "X-Custom-Header:". curl will make sure that each header you add/replace is sent with the proper end-of-line marker, you should thus \fBnot\fP add that as a part of the header content: do not add newlines or carriage returns, they will only mess things up for you. -See also the \fI-A/--user-agent\fP and \fI-e/--referer\fP options. +See also the \fI-A, --user-agent\fP and \fI-e, --referer\fP options. + +Starting in 7.37.0, you need \fI--proxy-header\fP to send custom headers +intended for a proxy. + +Example: + +\&# curl -H "X-First-Name: Joe" http://192.168.0.1/ This option can be used multiple times to add/replace/remove multiple headers. .IP "--hostpubmd5 " -Pass a string containing 32 hexadecimal digits. The string should be the 128 -bit MD5 checksum of the remote host's public key, curl will refuse the -connection with the host unless the md5sums match. This option is only for SCP -and SFTP transfers. (Added in 7.17.1) +(SCP/SFTP) Pass a string containing 32 hexadecimal digits. The string should +be the 128 bit MD5 checksum of the remote host's public key, curl will refuse +the connection with the host unless the md5sums match. (Added in 7.17.1) .IP "--ignore-content-length" (HTTP) Ignore the Content-Length header. This is particularly useful for servers running Apache 1.x, which will report incorrect Content-Length for files larger than 2 gigabytes. -.IP "-i/--include" +.IP "-i, --include" (HTTP) Include the HTTP-header in the output. The HTTP-header includes things like server-name, date of the document, HTTP-version and more... +.IP "-I, --head" +(HTTP/FTP/FILE) +Fetch the HTTP-header only! HTTP-servers feature the command HEAD +which this uses to get nothing but the header of a document. When used +on an FTP or FILE file, curl displays the file size and last modification +time only. .IP "--interface " Perform an operation using a specified interface. You can enter interface name, IP address or host name. An example could look like: @@ -597,72 +769,46 @@ name, IP address or host name. An example could look like: curl --interface eth0:1 http://www.netscape.com/ If this option is used several times, the last one will be used. -.IP "-I/--head" -(HTTP/FTP/FILE) -Fetch the HTTP-header only! HTTP-servers feature the command HEAD -which this uses to get nothing but the header of a document. When used -on a FTP or FILE file, curl displays the file size and last modification -time only. -.IP "-j/--junk-session-cookies" +.IP "-j, --junk-session-cookies" (HTTP) When curl is told to read cookies from a given file, this option will make it discard all "session cookies". This will basically have the same effect as if a new session is started. Typical browsers always discard session cookies when they're closed down. -.IP "-J/--remote-header-name" -(HTTP) This option tells the -O/--remote-name option to use the server-specified -Content-Disposition filename instead of extracting a filename from the URL. -.IP "-k/--insecure" +.IP "-J, --remote-header-name" +(HTTP) This option tells the \fI-O, --remote-name\fP option to use the +server-specified Content-Disposition filename instead of extracting a filename +from the URL. + +There's no attempt to decode %-sequences (yet) in the provided file name, so +this option may provide you with rather unexpected file names. +.IP "-k, --insecure" (SSL) This option explicitly allows curl to perform "insecure" SSL connections and transfers. All SSL connections are attempted to be made secure by using the CA certificate bundle installed by default. This makes all connections -considered "insecure" fail unless \fI-k/--insecure\fP is used. +considered "insecure" fail unless \fI-k, --insecure\fP is used. See this online resource for further details: \fBhttp://curl.haxx.se/docs/sslcerts.html\fP -.IP "--keepalive-time " -This option sets the time a connection needs to remain idle before sending -keepalive probes and the time between individual keepalive probes. It is -currently effective on operating systems offering the TCP_KEEPIDLE and -TCP_KEEPINTVL socket options (meaning Linux, recent AIX, HP-UX and more). This -option has no effect if \fI--no-keepalive\fP is used. (Added in 7.18.0) - -If this option is used multiple times, the last occurrence sets the amount. -.IP "--key " -(SSL/SSH) Private key file name. Allows you to provide your private key in this -separate file. - -If this option is used several times, the last one will be used. -.IP "--key-type " -(SSL) Private key file type. Specify which type your \fI--key\fP provided -private key is. DER, PEM, and ENG are supported. If not specified, PEM is -assumed. - -If this option is used several times, the last one will be used. -.IP "--krb " -(FTP) Enable Kerberos authentication and use. The level must be entered and -should be one of 'clear', 'safe', 'confidential', or 'private'. Should you use -a level that is not one of these, 'private' will instead be used. - -This option requires a library built with kerberos4 or GSSAPI -(GSS-Negotiate) support. This is not very common. Use \fI-V/--version\fP to -see if your curl supports it. - -If this option is used several times, the last one will be used. -.IP "-K/--config " +.IP "-K, --config " Specify which config file to read curl arguments from. The config file is a text file in which command line arguments can be written which then will be -used as if they were written on the actual command line. Options and their -parameters must be specified on the same config file line, separated by -whitespace, colon, the equals sign or any combination thereof (however, -the preferred separator is the equals sign). If the parameter is to contain -whitespace, the parameter must be enclosed within quotes. Within double -quotes, the following escape sequences are available: \\\\, \\", \\t, \\n, -\\r and \\v. A backslash preceding any other letter is ignored. If the -first column of a config line is a '#' character, the rest of the line will be -treated as a comment. Only write one option per physical line in the config -file. - -Specify the filename to -K/--config as '-' to make curl read the file from +used as if they were written on the actual command line. + +Options and their parameters must be specified on the same config file line, +separated by whitespace, colon, or the equals sign. Long option names can +optionally be given in the config file without the initial double dashes and +if so, the colon or equals characters can be used as separators. If the option +is specified with one or two dashes, there can be no colon or equals character +between the option and its parameter. + +If the parameter is to contain whitespace, the parameter must be enclosed +within quotes. Within double quotes, the following escape sequences are +available: \\\\, \\", \\t, \\n, \\r and \\v. A backslash preceding any other +letter is ignored. If the first column of a config line is a '#' character, +the rest of the line will be treated as a comment. Only write one option per +physical line in the config file. + +Specify the filename to -K, --config as '-' to make curl read the file from stdin. Note that to be able to specify a URL in the config file, you need to specify @@ -671,21 +817,18 @@ line. So, it could look similar to this: url = "http://curl.haxx.se/docs/" -Long option names can optionally be given in the config file without the -initial double dashes. - When curl is invoked, it always (unless \fI-q\fP is used) checks for a default config file and uses it if found. The default config file is checked for in the following places in this order: 1) curl tries to find the "home dir": It first checks for the CURL_HOME and then the HOME environment variables. Failing that, it uses getpwuid() on -UNIX-like systems (which returns the home dir given the current user in your +Unix-like systems (which returns the home dir given the current user in your system). On Windows, it then checks for the APPDATA variable, or as a last resort the '%USERPROFILE%\\Application Data'. 2) On windows, if there is no _curlrc file in the home dir, it checks for one -in the same dir the curl executable is placed. On UNIX-like systems, it will +in the same dir the curl executable is placed. On Unix-like systems, it will simply try to load .curlrc from the determined home dir. .nf @@ -703,21 +846,86 @@ referer = "http://nowhereatall.com/" .fi This option can be used multiple times to load multiple config files. +.IP "--keepalive-time " +This option sets the time a connection needs to remain idle before sending +keepalive probes and the time between individual keepalive probes. It is +currently effective on operating systems offering the TCP_KEEPIDLE and +TCP_KEEPINTVL socket options (meaning Linux, recent AIX, HP-UX and more). This +option has no effect if \fI--no-keepalive\fP is used. (Added in 7.18.0) + +If this option is used several times, the last one will be used. If +unspecified, the option defaults to 60 seconds. +.IP "--key " +(SSL/SSH) Private key file name. Allows you to provide your private key in this +separate file. For SSH, if not specified, curl tries the following candidates +in order: '~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'. + +If this option is used several times, the last one will be used. +.IP "--key-type " +(SSL) Private key file type. Specify which type your \fI--key\fP provided +private key is. DER, PEM, and ENG are supported. If not specified, PEM is +assumed. + +If this option is used several times, the last one will be used. +.IP "--krb " +(FTP) Enable Kerberos authentication and use. The level must be entered and +should be one of 'clear', 'safe', 'confidential', or 'private'. Should you use +a level that is not one of these, 'private' will instead be used. + +This option requires a library built with kerberos4 support. This is not +very common. Use \fI-V, --version\fP to see if your curl supports it. + +If this option is used several times, the last one will be used. +.IP "-l, --list-only" +(FTP) +When listing an FTP directory, this switch forces a name-only view. This is +especially useful if the user wants to machine-parse the contents of an FTP +directory since the normal directory view doesn't use a standard look or +format. When used like this, the option causes a NLST command to be sent to +the server instead of LIST. + +Note: Some FTP servers list only files in their response to NLST; they do not +include sub-directories and symbolic links. + +(POP3) +When retrieving a specific email from POP3, this switch forces a LIST command +to be performed instead of RETR. This is particularly useful if the user wants +to see if a specific message id exists on the server and what size it is. + +Note: When combined with \fI-X, --request \fP, this option can be used +to send an UIDL command instead, so the user may use the email's unique +identifier rather than it's message id to make the request. (Added in 7.21.5) +.IP "-L, --location" +(HTTP/HTTPS) If the server reports that the requested page has moved to a +different location (indicated with a Location: header and a 3XX response code), +this option will make curl redo the request on the new place. If used together +with \fI-i, --include\fP or \fI-I, --head\fP, headers from all requested pages +will be shown. When authentication is used, curl only sends its credentials to +the initial host. If a redirect takes curl to a different host, it won't be +able to intercept the user+password. See also \fI--location-trusted\fP on how +to change this. You can limit the amount of redirects to follow by using the +\fI--max-redirs\fP option. + +When curl follows a redirect and the request is not a plain GET (for example +POST or PUT), it will do the following request with a GET if the HTTP response +was 301, 302, or 303. If the response code was any other 3xx code, curl will +re-send the following request using the same unmodified method. + +You can tell curl to not change the non-GET request method to GET after a 30x +response by using the dedicated options for that: \fI--post301\fP, +\fI--post302\fP and \fI-post303\fP. .IP "--libcurl " Append this option to any ordinary curl command line, and you will get a -libcurl-using source code written to the file that does the equivalent +libcurl-using C source code written to the file that does the equivalent of what your command-line operation does! -NOTE: this does not properly support -F and the sending of multipart -formposts, so in those cases the output program will be missing necessary -calls to \fIcurl_formadd(3)\fP, and possibly more. - If this option is used several times, the last given file name will be used. (Added in 7.16.1) .IP "--limit-rate " -Specify the maximum transfer rate you want curl to use. This feature is useful -if you have a limited pipe and you'd like your transfer not to use your entire -bandwidth. +Specify the maximum transfer rate you want curl to use - for both downloads +and uploads. This feature is useful if you have a limited pipe and you'd like +your transfer not to use your entire bandwidth. To make it slower than it +otherwise would be. The given speed is measured in bytes/second, unless a suffix is appended. Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it @@ -727,53 +935,47 @@ The given rate is the average speed counted during the entire transfer. It means that curl might use higher transfer speeds in short bursts, but over time it uses no more than the given rate. -If you also use the \fI-Y/--speed-limit\fP option, that option will take +If you also use the \fI-Y, --speed-limit\fP option, that option will take precedence and might cripple the rate-limiting slightly, to help keeping the speed-limit logic working. If this option is used several times, the last one will be used. -.IP "-l/--list-only" -(FTP) -When listing an FTP directory, this switch forces a name-only view. -Especially useful if you want to machine-parse the contents of an FTP -directory since the normal directory view doesn't use a standard look -or format. - -This option causes an FTP NLST command to be sent. Some FTP servers -list only files in their response to NLST; they do not include -subdirectories and symbolic links. - .IP "--local-port [-num]" Set a preferred number or range of local port numbers to use for the connection(s). Note that port numbers by nature are a scarce resource that will be busy at times so setting this range to something too narrow might cause unnecessary connection setup failures. (Added in 7.15.2) -.IP "-L/--location" -(HTTP/HTTPS) If the server reports that the requested page has moved to a -different location (indicated with a Location: header and a 3XX response code), -this option will make curl redo the request on the new place. If used together -with \fI-i/--include\fP or \fI-I/--head\fP, headers from all requested pages -will be shown. When authentication is used, curl only sends its credentials to -the initial host. If a redirect takes curl to a different host, it won't be -able to intercept the user+password. See also \fI--location-trusted\fP on how -to change this. You can limit the amount of redirects to follow by using the -\fI--max-redirs\fP option. - -When curl follows a redirect and the request is not a plain GET (for example -POST or PUT), it will do the following request with a GET if the HTTP response -was 301, 302, or 303. If the response code was any other 3xx code, curl will -re-send the following request using the same unmodified method. .IP "--location-trusted" -(HTTP/HTTPS) Like \fI-L/--location\fP, but will allow sending the name + +(HTTP/HTTPS) Like \fI-L, --location\fP, but will allow sending the name + password to all hosts that the site may redirect to. This may or may not introduce a security breach if the site redirects you to a site to which you'll send your authentication info (which is plaintext in the case of HTTP Basic authentication). -.IP "--mail-rcpt
" -(SMTP) Specify a single address that the given mail should get sent to. This -option can be used multiple times to specify many recipients. +.IP "-m, --max-time " +Maximum time in seconds that you allow the whole operation to take. This is +useful for preventing your batch jobs from hanging for hours due to slow +networks or links going down. Since 7.32.0, this option accepts decimal +values, but the actual timeout will decrease in accuracy as the specified +timeout increases in decimal precision. See also the \fI--connect-timeout\fP +option. -(Added in 7.20.0) +If this option is used several times, the last one will be used. +.IP "--login-options " +Specify the login options to use during server authentication. + +You can use the login options to specify protocol specific options that may +be used during authentication. At present only IMAP, POP3 and SMTP support +login options. For more information about the login options please see +RFC 2384, RFC 5092 and IETF draft draft-earhart-url-smtp-00.txt (Added in +7.34.0). + +If this option is used several times, the last one will be used. +.IP "--mail-auth
" +(SMTP) Specify a single address. This will be used to specify the +authentication address (identity) of a submitted message that is being relayed +to another server. + +(Added in 7.25.0) .IP "--mail-from
" (SMTP) Specify a single address that the given mail should get sent from. @@ -783,21 +985,58 @@ Specify the maximum size (in bytes) of a file to download. If the file requested is larger than this value, the transfer will not start and curl will return with exit code 63. -\fBNOTE:\fP The file size is not always known prior to download, and for such files -this option has no effect even if the file transfer ends up being larger than -this given limit. This concerns both FTP and HTTP transfers. -.IP "-m/--max-time " -Maximum time in seconds that you allow the whole operation to take. This is -useful for preventing your batch jobs from hanging for hours due to slow -networks or links going down. See also the \fI--connect-timeout\fP option. +\fBNOTE:\fP The file size is not always known prior to download, and for such +files this option has no effect even if the file transfer ends up being larger +than this given limit. This concerns both FTP and HTTP transfers. +.IP "--mail-rcpt
" +(SMTP) Specify a single address, user name or mailing list name. + +When performing a mail transfer, the recipient should specify a valid email +address to send the mail to. (Added in 7.20.0) + +When performing an address verification (VRFY command), the recipient should be +specified as the user name or user name and domain (as per Section 3.5 of +RFC5321). (Added in 7.34.0) + +When performing a mailing list expand (EXPN command), the recipient should be +specified using the mailing list name, such as "Friends" or "London-Office". +(Added in 7.34.0) +.IP "--max-redirs " +Set maximum number of redirection-followings allowed. If \fI-L, --location\fP +is used, this option can be used to prevent curl from following redirections +\&"in absurdum". By default, the limit is set to 50 redirections. Set this +option to -1 to make it limitless. If this option is used several times, the last one will be used. -.IP "-M/--manual" -Manual. Display the huge help text. -.IP "-n/--netrc" +.IP "--metalink" +This option can tell curl to parse and process a given URI as Metalink file +(both version 3 and 4 (RFC 5854) are supported) and make use of the mirrors +listed within for failover if there are errors (such as the file or server not +being available). It will also verify the hash of the file after the download +completes. The Metalink file itself is downloaded and processed in memory and +not stored in the local file system. + +Example to use a remote Metalink file: + +\fBcurl\fP --metalink http://www.example.com/example.metalink + +To use a Metalink file in the local file system, use FILE protocol +(file://): + +\fBcurl\fP --metalink file://example.metalink + +Please note that if FILE protocol is disabled, there is no way to use +a local Metalink file at the time of this writing. Also note that if +\fI--metalink\fP and \fI--include\fP are used together, \fI--include\fP will be +ignored. This is because including headers in the response will break +Metalink parser and if the headers are included in the file described +in Metalink file, hash check will fail. + +(Added in 7.27.0, if built against the libmetalink library.) +.IP "-n, --netrc" Makes curl scan the \fI.netrc\fP (\fI_netrc\fP on Windows) file in the user's home directory for login name and password. This is typically used for FTP on -UNIX. If used with HTTP, curl will enable user authentication. See +Unix. If used with HTTP, curl will enable user authentication. See .BR netrc(4) or .BR ftp(1) @@ -811,37 +1050,42 @@ to FTP to the machine host.domain.com with user name \&'myself' and password \&'secret' should look similar to: .B "machine host.domain.com login myself password secret" +.IP "-N, --no-buffer" +Disables the buffering of the output stream. In normal work situations, curl +will use a standard buffered output stream that will have the effect that it +will output the data in chunks, not necessarily exactly when the data arrives. +Using this option will disable that buffering. + +Note that this is the negated option name documented. You can thus use +\fI--buffer\fP to enforce the buffering. +.IP "--netrc-file" +This option is similar to \fI--netrc\fP, except that you provide the path +(absolute or relative) to the netrc file that Curl should use. +You can only specify one netrc file per invocation. If several +\fI--netrc-file\fP options are provided, only the \fBlast one\fP will be used. +(Added in 7.21.5) + +This option overrides any use of \fI--netrc\fP as they are mutually exclusive. +It will also abide by \fI--netrc-optional\fP if specified. + .IP "--netrc-optional" Very similar to \fI--netrc\fP, but this option makes the .netrc usage \fBoptional\fP and not mandatory as the \fI--netrc\fP option does. + .IP "--negotiate" -(HTTP) Enables GSS-Negotiate authentication. The GSS-Negotiate method was -designed by Microsoft and is used in their web applications. It is primarily -meant as a support for Kerberos5 authentication but may be also used along -with another authentication method. For more information see IETF draft -draft-brezak-spnego-http-04.txt. +(HTTP) Enables Negotiate (SPNEGO) authentication. -If you want to enable Negotiate for your proxy authentication, then use +If you want to enable Negotiate (SPNEGO) for proxy authentication, then use \fI--proxy-negotiate\fP. -This option requires a library built with GSSAPI support. This is -not very common. Use \fI-V/--version\fP to see if your version supports -GSS-Negotiate. +This option requires a library built with GSS-API or SSPI support. Use \fI-V, +--version\fP to see if your curl supports GSS-API/SSPI and SPNEGO. -When using this option, you must also provide a fake -u/--user option to +When using this option, you must also provide a fake \fI-u, --user\fP option to activate the authentication code properly. Sending a '-u :' is enough as the -user name and password from the -u option aren't actually used. +user name and password from the \fI-u\fP option aren't actually used. -If this option is used several times, the following occurrences make no -difference. -.IP "-N/--no-buffer" -Disables the buffering of the output stream. In normal work situations, curl -will use a standard buffered output stream that will have the effect that it -will output the data in chunks, not necessarily exactly when the data arrives. -Using this option will disable that buffering. - -Note that this is the negated option name documented. You can thus use -\fI--buffer\fP to enforce the buffering. +If this option is used several times, only the first one is used. .IP "--no-keepalive" Disables the use of keepalive messages on the TCP connection, as by default curl enables them. @@ -876,11 +1120,10 @@ If you want to enable NTLM for your proxy authentication, then use \fI--proxy-ntlm\fP. This option requires a library built with SSL support. Use -\fI-V/--version\fP to see if your curl supports NTLM. +\fI-V, --version\fP to see if your curl supports NTLM. -If this option is used several times, the following occurrences make no -difference. -.IP "-o/--output " +If this option is used several times, only the first one is used. +.IP "-o, --output " Write output to instead of stdout. If you are using {} or [] to fetch multiple documents, you can use '#' followed by a number in the specifier. That variable will be replaced with the current string for the URL @@ -897,37 +1140,106 @@ You may use this option as many times as the number of URLs you have. See also the \fI--create-dirs\fP option to create the local directories dynamically. Specifying the output as '-' (a single dash) will force the output to be done to stdout. -.IP "-O/--remote-name" +.IP "-O, --remote-name" Write output to a local file named like the remote file we get. (Only the file part of the remote file is used, the path is cut off.) The remote file name to use for saving is extracted from the given URL, nothing else. +Consequentially, the file will be saved in the current working directory. If +you want the file saved in a different directory, make sure you change current +working directory before you invoke curl with the \fB-O, --remote-name\fP flag! + +There is no URL decoding done on the file name. If it has %20 or other URL +encoded parts of the name, they will end up as-is as file name. + You may use this option as many times as the number of URLs you have. -.IP "--remote-name-all" -This option changes the default action for all given URLs to be dealt with as -if \fI-O/--remote-name\fP were used for each one. So if you want to disable -that for a specific URL after \fI--remote-name-all\fP has been used, you must -use "-o -" or \fI--no-remote-name\fP. (Added in 7.19.0) +.IP "--oauth2-bearer" +(IMAP, POP3, SMTP) +Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token +is used in conjunction with the user name which can be specified as part of the +\fI--url\fP or \fI-u, --user\fP options. + +The Bearer Token and user name are formatted according to RFC 6750. + +If this option is used several times, the last one will be used. +.IP "--proxy-header
" +(HTTP) Extra header to include in the request when sending HTTP to a +proxy. You may specify any number of extra headers. This is the equivalent +option to \fI-H, --header\fP but is for proxy communication only like in +CONNECT requests when you want a separate header sent to the proxy to what is +sent to the actual remote host. + +curl will make sure that each header you add/replace is sent with the proper +end-of-line marker, you should thus \fBnot\fP add that as a part of the header +content: do not add newlines or carriage returns, they will only mess things +up for you. + +Headers specified with this option will not be included in requests that curl +knows will not be sent to a proxy. + +This option can be used multiple times to add/replace/remove multiple headers. + +(Added in 7.37.0) +.IP "-p, --proxytunnel" +When an HTTP proxy is used (\fI-x, --proxy\fP), this option will cause non-HTTP +protocols to attempt to tunnel through the proxy instead of merely using it to +do HTTP-like operations. The tunnel approach is made with the HTTP proxy +CONNECT request and requires that the proxy allows direct connect to the +remote port number curl wants to tunnel through to. +.IP "-P, --ftp-port
" +(FTP) Reverses the default initiator/listener roles when connecting with +FTP. This switch makes curl use active mode. In practice, curl then tells the +server to connect back to the client's specified address and port, while +passive mode asks the server to setup an IP address and port for it to connect +to.
should be one of: +.RS +.IP interface +i.e "eth0" to specify which interface's IP address you want to use (Unix only) +.IP "IP address" +i.e "192.168.10.1" to specify the exact IP address +.IP "host name" +i.e "my.host.domain" to specify the machine +.IP "-" +make curl pick the same IP address that is already used for the control +connection +.RE + +If this option is used several times, the last one will be used. Disable the +use of PORT with \fI--ftp-pasv\fP. Disable the attempt to use the EPRT command +instead of PORT by using \fI--disable-eprt\fP. EPRT is really PORT++. + +Starting in 7.19.5, you can append \&":[start]-[end]\&" to the right of the +address, to tell curl what TCP port range to use. That means you specify a +port range, from a lower to a higher number. A single number works as well, +but do note that it increases the risk of failure since the port may not be +available. .IP "--pass " (SSL/SSH) Passphrase for the private key If this option is used several times, the last one will be used. .IP "--post301" -Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET -requests when following a 301 redirection. The non-RFC behaviour is ubiquitous -in web browsers, so curl does the conversion by default to maintain +(HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests +into GET requests when following a 301 redirection. The non-RFC behaviour is +ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such -a redirection. This option is meaningful only when using \fI-L/--location\fP +a redirection. This option is meaningful only when using \fI-L, --location\fP (Added in 7.17.1) .IP "--post302" -Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET -requests when following a 302 redirection. The non-RFC behaviour is ubiquitous -in web browsers, so curl does the conversion by default to maintain +(HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests +into GET requests when following a 302 redirection. The non-RFC behaviour is +ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such -a redirection. This option is meaningful only when using \fI-L/--location\fP +a redirection. This option is meaningful only when using \fI-L, --location\fP (Added in 7.19.1) +.IP "--post303" +(HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests +into GET requests when following a 303 redirection. The non-RFC behaviour is +ubiquitous in web browsers, so curl does the conversion by default to maintain +consistency. However, a server may require a POST to remain a POST after such +a redirection. This option is meaningful only when using \fI-L, --location\fP +(Added in 7.26.0) .IP "--proto " Tells curl to use the listed protocols for its initial retrieval. Protocols are evaluated left to right, are comma separated, and are each a protocol @@ -986,8 +1298,8 @@ the default authentication method curl uses with proxies. Tells curl to use HTTP Digest authentication when communicating with the given proxy. Use \fI--digest\fP for enabling HTTP Digest with a remote host. .IP "--proxy-negotiate" -Tells curl to use HTTP Negotiate authentication when communicating -with the given proxy. Use \fI--negotiate\fP for enabling HTTP Negotiate +Tells curl to use HTTP Negotiate (SPNEGO) authentication when communicating +with the given proxy. Use \fI--negotiate\fP for enabling HTTP Negotiate (SPNEGO) with a remote host. (Added in 7.17.1) .IP "--proxy-ntlm" Tells curl to use HTTP NTLM authentication when communicating with the given @@ -996,71 +1308,46 @@ proxy. Use \fI--ntlm\fP for enabling NTLM with a remote host. Use the specified HTTP 1.0 proxy. If the port number is not specified, it is assumed at port 1080. -The only difference between this and the HTTP proxy option (\fI-x/--proxy\fP), +The only difference between this and the HTTP proxy option (\fI-x, --proxy\fP), is that attempts to use CONNECT through the proxy will specify an HTTP 1.0 protocol instead of the default HTTP 1.1. -.IP "-p/--proxytunnel" -When an HTTP proxy is used (\fI-x/--proxy\fP), this option will cause non-HTTP -protocols to attempt to tunnel through the proxy instead of merely using it to -do HTTP-like operations. The tunnel approach is made with the HTTP proxy -CONNECT request and requires that the proxy allows direct connect to the -remote port number curl wants to tunnel through to. .IP "--pubkey " (SSH) Public key file name. Allows you to provide your public key in this separate file. If this option is used several times, the last one will be used. -.IP "-P/--ftp-port
" -(FTP) Reverses the default initiator/listener roles when connecting with -FTP. This switch makes curl use active mode. In practice, curl then tells the -server to connect back to the client's specified address and port, while -passive mode asks the server to setup an IP address and port for it to connect -to.
should be one of: -.RS -.IP interface -i.e "eth0" to specify which interface's IP address you want to use (Unix only) -.IP "IP address" -i.e "192.168.10.1" to specify the exact IP address -.IP "host name" -i.e "my.host.domain" to specify the machine -.IP "-" -make curl pick the same IP address that is already used for the control -connection -.RE -If this option is used several times, the last one will be used. Disable the -use of PORT with \fI--ftp-pasv\fP. Disable the attempt to use the EPRT command -instead of PORT by using \fI--disable-eprt\fP. EPRT is really PORT++. - -Starting in 7.19.5, you can append \&":[start]-[end]\&" to the right of the -address, to tell curl what TCP port range to use. That means you specify a -port range, from a lower to a higher number. A single number works as well, -but do note that it increases the risk of failure since the port may not be -available. +(As of 7.39.0, curl attempts to automatically extract the public key from the +private key file, so passing this option is generally not required. Note that +this public key extraction requires libcurl to be linked against a copy of +libssh2 1.2.8 or higher that is itself linked against OpenSSL.) .IP "-q" If used as the first parameter on the command line, the \fIcurlrc\fP config -file will not be read and used. See the \fI-K/--config\fP for details on the +file will not be read and used. See the \fI-K, --config\fP for details on the default config file search path. -.IP "-Q/--quote " +.IP "-Q, --quote " (FTP/SFTP) Send an arbitrary command to the remote FTP or SFTP server. Quote -commands are sent BEFORE the transfer takes place (just after the -initial PWD command in an FTP transfer, to be exact). To make commands -take place after a successful transfer, prefix them with a dash '-'. -To make commands be sent after libcurl has changed the working directory, -just before the transfer command(s), prefix the command with a '+' (this -is only supported for FTP). You may specify any number of commands. If -the server returns failure for one of the commands, the entire operation -will be aborted. You must send syntactically correct FTP commands as -RFC959 defines to FTP servers, or one of the commands listed below to -SFTP servers. This option can be used multiple times. - -SFTP is a binary protocol. Unlike for FTP, libcurl interprets SFTP quote -commands before sending them to the server. Following is the list of +commands are sent BEFORE the transfer takes place (just after the initial PWD +command in an FTP transfer, to be exact). To make commands take place after a +successful transfer, prefix them with a dash '-'. To make commands be sent +after curl has changed the working directory, just before the transfer +command(s), prefix the command with a '+' (this is only supported for +FTP). You may specify any number of commands. If the server returns failure +for one of the commands, the entire operation will be aborted. You must send +syntactically correct FTP commands as RFC 959 defines to FTP servers, or one +of the commands listed below to SFTP servers. This option can be used +multiple times. When speaking to an FTP server, prefix the command with an +asterisk (*) to make curl continue even if the command fails as by default +curl will stop at first failure. + +SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP quote commands +itself before sending them to the server. File names may be quoted +shell-style to embed spaces or special characters. Following is the list of all supported SFTP quote commands: .RS .IP "chgrp group file" -The chgrp command sets the group ID of the file named by the file operand to the -group ID specified by the group operand. The group operand is a decimal +The chgrp command sets the group ID of the file named by the file operand to +the group ID specified by the group operand. The group operand is a decimal integer group ID. .IP "chmod mode file" The chmod command modifies the file mode bits of the specified file. The @@ -1087,11 +1374,7 @@ operand, provided it is empty. .IP "symlink source_file target_file" See ln. .RE -.IP "--random-file " -(SSL) Specify the path name to file containing what will be considered as -random data. The data is used to seed the random engine for SSL connections. -See also the \fI--egd-file\fP option. -.IP "-r/--range " +.IP "-r, --range " (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial document) from a HTTP/1.1, FTP or SFTP server or a local FILE. Ranges can be specified in a number of ways. @@ -1122,9 +1405,10 @@ specifies two separate 100-byte ranges(*)(H) (*) = NOTE that this will cause the server to reply with a multipart response! -Only digit characters (0-9) are valid in the 'start' and 'stop' fields of -the \&'start-stop' range syntax. If a non-digit character is given in the range, the server's -response will be unspecified, depending on the server's configuration. +Only digit characters (0-9) are valid in the 'start' and 'stop' fields of the +\&'start-stop' range syntax. If a non-digit character is given in the range, +the server's response will be unspecified, depending on the server's +configuration. You should also be aware that many HTTP/1.1 servers do not have this feature enabled, so that when you attempt to get a range, you'll instead get the whole @@ -1135,13 +1419,22 @@ FTP and SFTP range downloads only support the simple 'start-stop' syntax FTP command SIZE. If this option is used several times, the last one will be used. -.IP "--raw" -When used, it disables all internal HTTP decoding of content or transfer -encodings and instead makes them passed on unaltered, raw. (Added in 7.16.2) -.IP "-R/--remote-time" -When used, this will make libcurl attempt to figure out the timestamp of the +.IP "-R, --remote-time" +When used, this will make curl attempt to figure out the timestamp of the remote file, and if that is available make the local file get that same timestamp. +.IP "--random-file " +(SSL) Specify the path name to file containing what will be considered as +random data. The data is used to seed the random engine for SSL connections. +See also the \fI--egd-file\fP option. +.IP "--raw" +(HTTP) When used, it disables all internal HTTP decoding of content or transfer +encodings and instead makes them passed on unaltered, raw. (Added in 7.16.2) +.IP "--remote-name-all" +This option changes the default action for all given URLs to be dealt with as +if \fI-O, --remote-name\fP were used for each one. So if you want to disable +that for a specific URL after \fI--remote-name-all\fP has been used, you must +use "-o -" or \fI--no-remote-name\fP. (Added in 7.19.0) .IP "--resolve " Provide a custom address for a specific host and port pair. Using this, you can make the curl requests(s) use a specified address and prevent the @@ -1167,7 +1460,7 @@ using \fI--retry-delay\fP you disable this exponential backoff algorithm. See also \fI--retry-max-time\fP to limit the total time allowed for retries. (Added in 7.12.3) -If this option is used multiple times, the last occurrence decide the amount. +If this option is used several times, the last one will be used. .IP "--retry-delay " Make curl sleep this amount of time before each retry when a transfer has failed with a transient error (it changes the default backoff time algorithm @@ -1175,46 +1468,78 @@ between retries). This option is only interesting if \fI--retry\fP is also used. Setting this delay to zero will make curl use the default backoff time. (Added in 7.12.3) -If this option is used multiple times, the last occurrence determines the amount. +If this option is used several times, the last one will be used. .IP "--retry-max-time " The retry timer is reset before the first transfer attempt. Retries will be done as usual (see \fI--retry\fP) as long as the timer hasn't reached this given limit. Notice that if the timer hasn't reached the limit, the request will be made and while performing, it may take longer than this given time -period. To limit a single request\'s maximum time, use \fI-m/--max-time\fP. +period. To limit a single request\'s maximum time, use \fI-m, --max-time\fP. Set this option to zero to not timeout retries. (Added in 7.12.3) -If this option is used multiple times, the last occurrence determines the -amount. -.IP "-s/--silent" -Silent or quiet mode. Don't show progress meter or error messages. Makes -Curl mute. -.IP "-S/--show-error" -When used with -s it makes curl show an error message if it fails. +If this option is used several times, the last one will be used. +.IP "-s, --silent" +Silent or quiet mode. Don't show progress meter or error messages. Makes Curl +mute. It will still output the data you ask for, potentially even to the +terminal/stdout unless you redirect it. +.IP "--sasl-ir" +Enable initial response in SASL authentication. +(Added in 7.31.0) +.IP "-S, --show-error" +When used with \fI-s\fP it makes curl show an error message if it fails. +.IP "--ssl" +(FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection. Reverts to a +non-secure connection if the server doesn't support SSL/TLS. See also +\fI--ftp-ssl-control\fP and \fI--ssl-reqd\fP for different levels of +encryption required. (Added in 7.20.0) + +This option was formerly known as \fI--ftp-ssl\fP (Added in 7.11.0). That +option name can still be used but will be removed in a future version. +.IP "--ssl-reqd" +(FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection. Terminates the +connection if the server doesn't support SSL/TLS. (Added in 7.20.0) + +This option was formerly known as \fI--ftp-ssl-reqd\fP (added in 7.15.5). That +option name can still be used but will be removed in a future version. +.IP "--ssl-allow-beast" +(SSL) This option tells curl to not work around a security flaw in the SSL3 +and TLS1.0 protocols known as BEAST. If this option isn't used, the SSL layer +may use workarounds known to cause interoperability problems with some older +SSL implementations. WARNING: this option loosens the SSL security, and by +using this flag you ask for exactly that. (Added in 7.25.0) .IP "--socks4 " Use the specified SOCKS4 proxy. If the port number is not specified, it is assumed at port 1080. (Added in 7.15.2) -This option overrides any previous use of \fI-x/--proxy\fP, as they are +This option overrides any previous use of \fI-x, --proxy\fP, as they are mutually exclusive. +Since 7.21.7, this option is superfluous since you can specify a socks4 proxy +with \fI-x, --proxy\fP using a socks4:// protocol prefix. + If this option is used several times, the last one will be used. .IP "--socks4a " Use the specified SOCKS4a proxy. If the port number is not specified, it is assumed at port 1080. (Added in 7.18.0) -This option overrides any previous use of \fI-x/--proxy\fP, as they are +This option overrides any previous use of \fI-x, --proxy\fP, as they are mutually exclusive. +Since 7.21.7, this option is superfluous since you can specify a socks4a proxy +with \fI-x, --proxy\fP using a socks4a:// protocol prefix. + If this option is used several times, the last one will be used. .IP "--socks5-hostname " Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If the port number is not specified, it is assumed at port 1080. (Added in 7.18.0) -This option overrides any previous use of \fI-x/--proxy\fP, as they are +This option overrides any previous use of \fI-x, --proxy\fP, as they are mutually exclusive. +Since 7.21.7, this option is superfluous since you can specify a socks5 +hostname proxy with \fI-x, --proxy\fP using a socks5h:// protocol prefix. + If this option is used several times, the last one will be used. (This option was previously wrongly documented and used as --socks without the number appended.) @@ -1222,9 +1547,12 @@ appended.) Use the specified SOCKS5 proxy - but resolve the host name locally. If the port number is not specified, it is assumed at port 1080. -This option overrides any previous use of \fI-x/--proxy\fP, as they are +This option overrides any previous use of \fI-x, --proxy\fP, as they are mutually exclusive. +Since 7.21.7, this option is superfluous since you can specify a socks5 proxy +with \fI-x, --proxy\fP using a socks5:// protocol prefix. + If this option is used several times, the last one will be used. (This option was previously wrongly documented and used as --socks without the number appended.) @@ -1234,27 +1562,21 @@ This option (as well as \fI--socks4\fP) does not work with IPV6, FTPS or LDAP. The default service name for a socks server is rcmd/server-fqdn. This option allows you to change it. -Examples: - --socks5 proxy-name \fI--socks5-gssapi-service\fP sockd would use -sockd/proxy-name - --socks5 proxy-name \fI--socks5-gssapi-service\fP sockd/real-name would use -sockd/real-name for cases where the proxy-name does not match the princpal name. - (Added in 7.19.4). +Examples: --socks5 proxy-name \fI--socks5-gssapi-service\fP sockd would use +sockd/proxy-name --socks5 proxy-name \fI--socks5-gssapi-service\fP +sockd/real-name would use sockd/real-name for cases where the proxy-name does +not match the principal name. (Added in 7.19.4). .IP "--socks5-gssapi-nec" -As part of the gssapi negotiation a protection mode is negotiated. The rfc1961 +As part of the GSS-API negotiation a protection mode is negotiated. RFC 1961 says in section 4.3/4.4 it should be protected, but the NEC reference implementation does not. The option \fI--socks5-gssapi-nec\fP allows the unprotected exchange of the protection mode negotiation. (Added in 7.19.4). .IP "--stderr " Redirect all writes to stderr to the specified file instead. If the file name -is a plain '-', it is instead written to stdout. This option has no point when -you're using a shell with decent redirecting capabilities. +is a plain '-', it is instead written to stdout. If this option is used several times, the last one will be used. -.IP "--tcp-nodelay" -Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for -details about this option. (Added in 7.11.2) -.IP "-t/--telnet-option " +.IP "-t, --telnet-option " Pass options to the telnet protocol. Supported options are: TTYPE= Sets the terminal type. @@ -1262,21 +1584,13 @@ TTYPE= Sets the terminal type. XDISPLOC= Sets the X display location. NEW_ENV= Sets an environment variable. -.IP "--tftp-blksize " -(TFTP) Set TFTP BLKSIZE option (must be >512). This is the block size that -curl will try to use when tranferring data to or from a TFTP server. By -default 512 bytes will be used. - -If this option is used several times, the last one will be used. - -(Added in 7.20.0) -.IP "-T/--upload-file " +.IP "-T, --upload-file " This transfers the specified local file to the remote URL. If there is no file part in the specified URL, Curl will append the local file name. NOTE that you must use a trailing / on the last directory to really prove to Curl that there is no file name or curl will think that your last directory name is the remote file name to use. That will most likely cause the upload operation to fail. If -this is used on a HTTP(S) server, the PUT command will be used. +this is used on an HTTP(S) server, the PUT command will be used. Use the file name "-" (a single dash) to use stdin instead of a given file. Alternately, the file name "." (a single period) may be specified instead @@ -1293,12 +1607,53 @@ curl -T "{file1,file2}" http://www.uploadtothissite.com or even curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/ +.IP "--tcp-nodelay" +Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for +details about this option. (Added in 7.11.2) +.IP "--tftp-blksize " +(TFTP) Set TFTP BLKSIZE option (must be >512). This is the block size that +curl will try to use when transferring data to or from a TFTP server. By +default 512 bytes will be used. + +If this option is used several times, the last one will be used. + +(Added in 7.20.0) +.IP "--tlsauthtype " +Set TLS authentication type. Currently, the only supported option is "SRP", +for TLS-SRP (RFC 5054). If \fI--tlsuser\fP and \fI--tlspassword\fP are +specified but \fI--tlsauthtype\fP is not, then this option defaults to "SRP". +(Added in 7.21.4) +.IP "--tlspassword " +Set password for use with the TLS authentication method specified with +\fI--tlsauthtype\fP. Requires that \fI--tlsuser\fP also be set. (Added in +7.21.4) +.IP "--tlsuser " +Set username for use with the TLS authentication method specified with +\fI--tlsauthtype\fP. Requires that \fI--tlspassword\fP also be set. (Added in +7.21.4) +.IP "--tlsv1.0" +(SSL) +Forces curl to use TLS version 1.0 when negotiating with a remote TLS server. +(Added in 7.34.0) +.IP "--tlsv1.1" +(SSL) +Forces curl to use TLS version 1.1 when negotiating with a remote TLS server. +(Added in 7.34.0) +.IP "--tlsv1.2" +(SSL) +Forces curl to use TLS version 1.2 when negotiating with a remote TLS server. +(Added in 7.34.0) +.IP "--tr-encoding" +(HTTP) Request a compressed Transfer-Encoding response using one of the +algorithms curl supports, and uncompress the data while receiving it. + +(Added in 7.21.6) .IP "--trace " Enables a full trace dump of all incoming and outgoing data, including descriptive information, to the given output file. Use "-" as filename to have the output sent to stdout. -This option overrides previous uses of \fI-v/--verbose\fP or +This option overrides previous uses of \fI-v, --verbose\fP or \fI--trace-ascii\fP. If this option is used several times, the last one will be used. @@ -1311,30 +1666,50 @@ This is very similar to \fI--trace\fP, but leaves out the hex part and only shows the ASCII part of the dump. It makes smaller output that might be easier to read for untrained humans. -This option overrides previous uses of \fI-v/--verbose\fP or \fI--trace\fP. +This option overrides previous uses of \fI-v, --verbose\fP or \fI--trace\fP. If this option is used several times, the last one will be used. .IP "--trace-time" Prepends a time stamp to each trace or verbose line that curl displays. (Added in 7.14.0) -.IP "-u/--user " +.IP "--unix-socket " +(HTTP) Connect through this Unix domain socket, instead of using the +network. (Added in 7.40.0) +.IP "-u, --user " Specify the user name and password to use for server authentication. Overrides -\fI-n/--netrc\fP and \fI--netrc-optional\fP. +\fI-n, --netrc\fP and \fI--netrc-optional\fP. + +If you simply specify the user name, curl will prompt for a password. + +The user name and passwords are split up on the first colon, which makes it +impossible to use a colon in the user name with this option. The password can, +still. -If you just give the user name (without entering a colon) curl will prompt for -a password. +When using Kerberos V5 with a Windows based server you should include the +Windows domain name in the user name, in order for the server to succesfully +obtain a Kerberos Ticket. If you don't then the initial authentication +handshake may fail. -If you use an SSPI-enabled curl binary and do NTLM authentication, you can -force curl to pick up the user name and password from your environment by -simply specifying a single colon with this option: "-u :". +When using NTLM, the user name can be specified simply as the user name, +without the domain, if there is a single domain and forest in your setup +for example. + +To specify the domain name use either Down-Level Logon Name or UPN (User +Principal Name) formats. For example, EXAMPLE\\user and user@example.com +respectively. + +If you use a Windows SSPI-enabled curl binary and perform Kerberos V5, +Negotiate, NTLM or Digest authentication then you can tell curl to select +the user name and password from your environment by specifying a single colon +with this option: "-u :". If this option is used several times, the last one will be used. -.IP "-U/--proxy-user " +.IP "-U, --proxy-user " Specify the user name and password to use for proxy authentication. -If you use an SSPI-enabled curl binary and do NTLM authentication, you can -force curl to pick up the user name and password from your environment by -simply specifying a single colon with this option: "-U :". +If you use a Windows SSPI-enabled curl binary and do either Negotiate or NTLM +authentication then you can tell curl to select the user name and password +from your environment by specifying a single colon with this option: "-U :". If this option is used several times, the last one will be used. .IP "--url " @@ -1342,14 +1717,15 @@ Specify a URL to fetch. This option is mostly handy when you want to specify URL(s) in a config file. This option may be used any number of times. To control where this URL is -written, use the \fI-o/--output\fP or the \fI-O/--remote-name\fP options. -.IP "-v/--verbose" -Makes the fetching more verbose/talkative. Mostly useful for debugging. A line -starting with '>' means "header data" sent by curl, '<' means "header data" -received by curl that is hidden in normal cases, and a line starting with '*' -means additional info provided by curl. - -Note that if you only want HTTP headers in the output, \fI-i/--include\fP +written, use the \fI-o, --output\fP or the \fI-O, --remote-name\fP options. +.IP "-v, --verbose" +Be more verbose/talkative during the operation. Useful for debugging and +seeing what's going on "under the hood". A line starting with '>' means +"header data" sent by curl, '<' means "header data" received by curl that is +hidden in normal cases, and a line starting with '*' means additional info +provided by curl. + +Note that if you only want HTTP headers in the output, \fI-i, --include\fP might be the option you're looking for. If you think this option still doesn't give you enough details, consider using @@ -1357,51 +1733,12 @@ If you think this option still doesn't give you enough details, consider using This option overrides previous uses of \fI--trace-ascii\fP or \fI--trace\fP. -Use \fI-S/--silent\fP to make curl quiet. -.IP "-V/--version" -Displays information about curl and the libcurl version it uses. - -The first line includes the full version of curl, libcurl and other 3rd party -libraries linked with the executable. - -The second line (starts with "Protocols:") shows all protocols that libcurl -reports to support. - -The third line (starts with "Features:") shows specific features libcurl -reports to offer. Available features include: -.RS -.IP "IPv6" -You can use IPv6 with this. -.IP "krb4" -Krb4 for FTP is supported. -.IP "SSL" -HTTPS and FTPS are supported. -.IP "libz" -Automatic decompression of compressed files over HTTP is supported. -.IP "NTLM" -NTLM authentication is supported. -.IP "GSS-Negotiate" -Negotiate authentication and krb5 for FTP is supported. -.IP "Debug" -This curl uses a libcurl built with Debug. This enables more error-tracking -and memory debugging etc. For curl-developers only! -.IP "AsynchDNS" -This curl uses asynchronous name resolves. -.IP "SPNEGO" -SPNEGO Negotiate authentication is supported. -.IP "Largefile" -This curl supports transfers of large files, files larger than 2GB. -.IP "IDN" -This curl supports IDN - international domain names. -.IP "SSPI" -SSPI is supported. If you use NTLM and set a blank user name, curl will -authenticate with your current user and password. -.RE -.IP "-w/--write-out " -Defines what to display on stdout after a completed and successful -operation. The format is a string that may contain plain text mixed with any -number of variables. The string can be specified as "string", to get read from -a particular file you specify it "@filename" and to tell curl to read the +Use \fI-s, --silent\fP to make curl quiet. +.IP "-w, --write-out " +Make curl display information on stdout after a completed transfer. The format +is a string that may contain plain text mixed with any number of +variables. The format can be specified as a literal "string", or you can have +curl read the format from a file with "@filename" and to tell curl to read the format from stdin you write "@-". The variables present in the output format will be substituted by the value or @@ -1414,12 +1751,21 @@ space with \\t. The %-symbol is a special symbol in the win32-environment, where all occurrences of % must be doubled when using this option. -The variables available at this point are: +The variables available are: .RS .TP 15 -.B url_effective -The URL that was fetched last. This is most meaningful if you've told curl -to follow location: headers. +.B content_type +The Content-Type of the requested document, if there was any. +.TP +.B filename_effective +The ultimate filename that curl writes out to. This is only meaningful if curl +is told to write to a file with the \fI--remote-name\fP or \fI--output\fP +option. It's most useful in combination with the \fI--remote-header-name\fP +option. (Added in 7.25.1) +.TP +.B ftp_entry_path +The initial path curl ended up in when logging on to the remote FTP +server. (Added in 7.15.4) .TP .B http_code The numerical response code that was found in the last retrieved HTTP(S) or @@ -1430,50 +1776,42 @@ same info. The numerical code that was found in the last response (from a proxy) to a curl CONNECT request. (Added in 7.12.4) .TP -.B time_total -The total time, in seconds, that the full operation lasted. The time will be -displayed with millisecond resolution. +.B local_ip +The IP address of the local end of the most recently done connection - can be +either IPv4 or IPv6 (Added in 7.29.0) .TP -.B time_namelookup -The time, in seconds, it took from the start until the name resolving was -completed. +.B local_port +The local port number of the most recently done connection (Added in 7.29.0) .TP -.B time_connect -The time, in seconds, it took from the start until the TCP connect to the -remote host (or proxy) was completed. +.B num_connects +Number of new connects made in the recent transfer. (Added in 7.12.3) .TP -.B time_appconnect -The time, in seconds, it took from the start until the SSL/SSH/etc -connect/handshake to the remote host was completed. (Added in 7.19.0) +.B num_redirects +Number of redirects that were followed in the request. (Added in 7.12.3) .TP -.B time_pretransfer -The time, in seconds, it took from the start until the file transfer was just -about to begin. This includes all pre-transfer commands and negotiations that -are specific to the particular protocol(s) involved. +.B redirect_url +When an HTTP request was made without -L to follow redirects, this variable +will show the actual URL a redirect \fIwould\fP take you to. (Added in 7.18.2) .TP -.B time_redirect -The time, in seconds, it took for all redirection steps include name lookup, -connect, pretransfer and transfer before the final transaction was -started. time_redirect shows the complete execution time for multiple -redirections. (Added in 7.12.3) +.B remote_ip +The remote IP address of the most recently done connection - can be either +IPv4 or IPv6 (Added in 7.29.0) .TP -.B time_starttransfer -The time, in seconds, it took from the start until the first byte was just about -to be transferred. This includes time_pretransfer and also the time the -server needed to calculate the result. +.B remote_port +The remote port number of the most recently done connection (Added in 7.29.0) .TP .B size_download The total amount of bytes that were downloaded. .TP -.B size_upload -The total amount of bytes that were uploaded. -.TP .B size_header The total amount of bytes of the downloaded headers. .TP .B size_request The total amount of bytes that were sent in the HTTP request. .TP +.B size_upload +The total amount of bytes that were uploaded. +.TP .B speed_download The average download speed that curl measured for the complete download. Bytes per second. @@ -1482,48 +1820,79 @@ per second. The average upload speed that curl measured for the complete upload. Bytes per second. .TP -.B content_type -The Content-Type of the requested document, if there was any. +.B ssl_verify_result +The result of the SSL peer certificate verification that was requested. 0 +means the verification was successful. (Added in 7.19.0) .TP -.B num_connects -Number of new connects made in the recent transfer. (Added in 7.12.3) +.B time_appconnect +The time, in seconds, it took from the start until the SSL/SSH/etc +connect/handshake to the remote host was completed. (Added in 7.19.0) .TP -.B num_redirects -Number of redirects that were followed in the request. (Added in 7.12.3) +.B time_connect +The time, in seconds, it took from the start until the TCP connect to the +remote host (or proxy) was completed. .TP -.B redirect_url -When a HTTP request was made without -L to follow redirects, this variable -will show the actual URL a redirect \fIwould\fP take you to. (Added in 7.18.2) +.B time_namelookup +The time, in seconds, it took from the start until the name resolving was +completed. .TP -.B ftp_entry_path -The initial path libcurl ended up in when logging on to the remote FTP -server. (Added in 7.15.4) +.B time_pretransfer +The time, in seconds, it took from the start until the file transfer was just +about to begin. This includes all pre-transfer commands and negotiations that +are specific to the particular protocol(s) involved. .TP -.B ssl_verify_result -The result of the SSL peer certificate verification that was requested. 0 -means the verification was successful. (Added in 7.19.0) +.B time_redirect +The time, in seconds, it took for all redirection steps include name lookup, +connect, pretransfer and transfer before the final transaction was +started. time_redirect shows the complete execution time for multiple +redirections. (Added in 7.12.3) +.TP +.B time_starttransfer +The time, in seconds, it took from the start until the first byte was just +about to be transferred. This includes time_pretransfer and also the time the +server needed to calculate the result. +.TP +.B time_total +The total time, in seconds, that the full operation lasted. The time will be +displayed with millisecond resolution. +.TP +.B url_effective +The URL that was fetched last. This is most meaningful if you've told curl +to follow location: headers. .RE If this option is used several times, the last one will be used. -.IP "-x/--proxy " -Use the specified HTTP proxy. If the port number is not specified, it is assumed -at port 1080. +.IP "-x, --proxy <[protocol://][user:password@]proxyhost[:port]>" +Use the specified proxy. + +The proxy string can be specified with a protocol:// prefix to specify +alternative proxy protocols. Use socks4://, socks4a://, socks5:// or +socks5h:// to request the specific SOCKS version to be used. No protocol +specified, http:// and all others will be treated as HTTP proxies. (The +protocol support was added in curl 7.21.7) + +If the port number is not specified in the proxy string, it is assumed to be +1080. This option overrides existing environment variables that set the proxy to use. If there's an environment variable setting a proxy, you can set proxy to \&"" to override it. -\fBNote\fP that all operations that are performed over a HTTP proxy will -transparently be converted to HTTP. It means that certain protocol specific -operations might not be available. This is not the case if you can tunnel -through the proxy, as done with the \fI-p/--proxytunnel\fP option. +All operations that are performed over an HTTP proxy will transparently be +converted to HTTP. It means that certain protocol specific operations might +not be available. This is not the case if you can tunnel through the proxy, as +one with the \fI-p, --proxytunnel\fP option. -Starting with 7.14.1, the proxy host can be specified the exact same way as -the proxy environment variables, including the protocol prefix (http://) and -the embedded user + password. +User and password that might be provided in the proxy string are URL decoded +by curl. This allows you to pass in special characters such as @ by using %40 +or pass in a colon with %3a. + +The proxy host can be specified the exact same way as the proxy environment +variables, including the protocol prefix (http://) and the embedded user + +password. If this option is used several times, the last one will be used. -.IP "-X/--request " +.IP "-X, --request " (HTTP) Specifies a custom request method to use when communicating with the HTTP server. The specified request will be used instead of the method otherwise used (which defaults to GET). Read the HTTP 1.1 specification for @@ -1531,87 +1900,158 @@ details and explanations. Common additional HTTP requests include PUT and DELETE, but related technologies like WebDAV offers PROPFIND, COPY, MOVE and more. +Normally you don't need this option. All sorts of GET, HEAD, POST and PUT +requests are rather invoked by using dedicated command line options. + +This option only changes the actual word used in the HTTP request, it does not +alter the way curl behaves. So for example if you want to make a proper HEAD +request, using -X HEAD will not suffice. You need to use the \fI-I, --head\fP +option. + (FTP) Specifies a custom FTP command to use instead of LIST when doing file lists with FTP. +(POP3) +Specifies a custom POP3 command to use instead of LIST or RETR. (Added in +7.26.0) + +(IMAP) +Specifies a custom IMAP command to use instead of LIST. (Added in 7.30.0) + +(SMTP) +Specifies a custom SMTP command to use instead of HELP or VRFY. (Added in 7.34.0) + If this option is used several times, the last one will be used. -.IP "-y/--speed-time