Binary files /tmp/tmpwzsqottl/bWOna8Sxh7/r-cran-curl-4.3+dfsg/build/vignette.rds and /tmp/tmpwzsqottl/vQKR2671Sr/r-cran-curl-4.3.2+dfsg/build/vignette.rds differ diff -Nru r-cran-curl-4.3+dfsg/configure r-cran-curl-4.3.2+dfsg/configure --- r-cran-curl-4.3+dfsg/configure 2019-12-02 12:33:03.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/configure 2021-06-22 11:39:40.000000000 +0000 @@ -1,3 +1,4 @@ +#!/bin/sh # Anticonf (tm) script by Jeroen Ooms (2019) # This script will query 'pkg-config' for the required cflags and ldflags. # If pkg-config is unavailable or does not find the library, try setting @@ -65,7 +66,8 @@ sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars # Extract curlopt symbols -echo '#include ' | ${CC} ${CPPFLAGS} ${PKG_CFLAGS} ${CFLAGS} -E -xc - | grep "^[ \t]*CURLOPT_.*," | sed s/,// > tools/option_table.txt +echo '#include ' | ${CC} ${CPPFLAGS} ${PKG_CFLAGS} ${CFLAGS} -E -xc - \ + | grep "^[ \t]*CURLOPT_.*," | sed s/,// > tools/option_table.txt # Success exit 0 diff -Nru r-cran-curl-4.3+dfsg/debian/changelog r-cran-curl-4.3.2+dfsg/debian/changelog --- r-cran-curl-4.3+dfsg/debian/changelog 2020-05-30 09:51:48.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/debian/changelog 2021-09-09 18:46:30.000000000 +0000 @@ -1,8 +1,15 @@ -r-cran-curl (4.3+dfsg-1build1) groovy; urgency=medium +r-cran-curl (4.3.2+dfsg-1) unstable; urgency=medium - * No-change rebuild against r-api-4.0 + * New upstream version + * Standards-Version: 4.6.0 (routine-update) + * debhelper-compat 13 (routine-update) + * dh-update-R to update Build-Depends (3) (routine-update) + * Testsuite: autopkgtest-pkg-r (routine-update) + * Add salsa-ci file (routine-update) + * Rules-Requires-Root: no (routine-update) + * Set upstream metadata fields: Repository. - -- Graham Inggs Sat, 30 May 2020 09:51:48 +0000 + -- Andreas Tille Thu, 09 Sep 2021 20:46:30 +0200 r-cran-curl (4.3+dfsg-1) unstable; urgency=medium diff -Nru r-cran-curl-4.3+dfsg/debian/control r-cran-curl-4.3.2+dfsg/debian/control --- r-cran-curl-4.3+dfsg/debian/control 2019-12-06 15:50:45.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/debian/control 2021-09-09 18:46:30.000000000 +0000 @@ -2,15 +2,17 @@ Maintainer: Debian R Packages Maintainers Uploaders: Andreas Tille Section: gnu-r +Testsuite: autopkgtest-pkg-r Priority: optional -Build-Depends: debhelper-compat (= 12), +Build-Depends: debhelper-compat (= 13), dh-r, r-base-dev, libcurl4-openssl-dev -Standards-Version: 4.4.1 +Standards-Version: 4.6.0 Vcs-Browser: https://salsa.debian.org/r-pkg-team/r-cran-curl Vcs-Git: https://salsa.debian.org/r-pkg-team/r-cran-curl.git Homepage: https://cran.r-project.org/package=curl +Rules-Requires-Root: no Package: r-cran-curl Architecture: any diff -Nru r-cran-curl-4.3+dfsg/debian/salsa-ci.yml r-cran-curl-4.3.2+dfsg/debian/salsa-ci.yml --- r-cran-curl-4.3+dfsg/debian/salsa-ci.yml 1970-01-01 00:00:00.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/debian/salsa-ci.yml 2021-09-09 18:46:30.000000000 +0000 @@ -0,0 +1,4 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff -Nru r-cran-curl-4.3+dfsg/debian/upstream/metadata r-cran-curl-4.3.2+dfsg/debian/upstream/metadata --- r-cran-curl-4.3+dfsg/debian/upstream/metadata 2019-12-06 15:50:45.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/debian/upstream/metadata 2021-09-09 18:46:30.000000000 +0000 @@ -1,5 +1,5 @@ Archive: CRAN Bug-Database: https://github.com/jeroen/curl/issues -Repository: https://github.com/jeroen/curl#readme +Repository: https://github.com/jeroen/curl.git#readme Repository-Browse: https://github.com/jeroen/curl Bug-Submit: https://github.com/jeroen/curl/issues/new diff -Nru r-cran-curl-4.3+dfsg/DESCRIPTION r-cran-curl-4.3.2+dfsg/DESCRIPTION --- r-cran-curl-4.3+dfsg/DESCRIPTION 2019-12-02 14:00:03.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/DESCRIPTION 2021-06-23 07:00:06.000000000 +0000 @@ -1,7 +1,7 @@ Package: curl Type: Package Title: A Modern and Flexible Web Client for R -Version: 4.3 +Version: 4.3.2 Authors@R: c( person("Jeroen", "Ooms", role = c("aut", "cre"), email = "jeroen@berkeley.edu", comment = c(ORCID = "0000-0002-4035-0289")), @@ -20,23 +20,21 @@ License: MIT + file LICENSE SystemRequirements: libcurl: libcurl-devel (rpm) or libcurl4-openssl-dev (deb). -URL: https://jeroen.cran.dev/curl (docs) - https://github.com/jeroen/curl#readme (devel) - https://curl.haxx.se/libcurl/ (upstream) +URL: https://github.com/jeroen/curl (devel) https://curl.se/libcurl/ + (upstream) BugReports: https://github.com/jeroen/curl/issues Suggests: spelling, testthat (>= 1.0.0), knitr, jsonlite, rmarkdown, magrittr, httpuv (>= 1.4.4), webutils VignetteBuilder: knitr Depends: R (>= 3.0.0) -LazyData: true -RoxygenNote: 7.0.1 +RoxygenNote: 7.1.1 Encoding: UTF-8 Language: en-US NeedsCompilation: yes -Packaged: 2019-12-02 12:33:03 UTC; jeroen +Packaged: 2021-06-22 11:39:40 UTC; jeroen Author: Jeroen Ooms [aut, cre] (), Hadley Wickham [ctb], RStudio [cph] Maintainer: Jeroen Ooms Repository: CRAN -Date/Publication: 2019-12-02 14:00:03 UTC +Date/Publication: 2021-06-23 07:00:06 UTC diff -Nru r-cran-curl-4.3+dfsg/inst/doc/intro.Rmd r-cran-curl-4.3.2+dfsg/inst/doc/intro.Rmd --- r-cran-curl-4.3+dfsg/inst/doc/intro.Rmd 2019-12-01 12:36:13.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/inst/doc/intro.Rmd 2021-04-28 11:35:07.000000000 +0000 @@ -26,7 +26,7 @@ library(jsonlite) ``` -The curl package provides bindings to the [libcurl](https://curl.haxx.se/libcurl/) C library for R. The package supports retrieving data in-memory, downloading to disk, or streaming using the [R "connection" interface](https://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html). Some knowledge of curl is recommended to use this package. For a more user-friendly HTTP client, have a look at the [httr](https://cran.r-project.org/package=httr/vignettes/quickstart.html) package which builds on curl with HTTP specific tools and logic. +The curl package provides bindings to the [libcurl](https://curl.se/libcurl/) C library for R. The package supports retrieving data in-memory, downloading to disk, or streaming using the [R "connection" interface](https://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html). Some knowledge of curl is recommended to use this package. For a more user-friendly HTTP client, have a look at the [httr](https://cran.r-project.org/package=httr/vignettes/quickstart.html) package which builds on curl with HTTP specific tools and logic. ## Request interfaces @@ -184,7 +184,7 @@ unlink('mirrors.csv') ``` -If you *do* want the `curl_fetch_*` functions to automatically raise an error, you should set the [`FAILONERROR`](https://curl.haxx.se/libcurl/c/CURLOPT_FAILONERROR.html) option to `TRUE` in the handle of the request. +If you *do* want the `curl_fetch_*` functions to automatically raise an error, you should set the [`FAILONERROR`](https://curl.se/libcurl/c/CURLOPT_FAILONERROR.html) option to `TRUE` in the handle of the request. ```{r, error=TRUE, purl = FALSE} h <- new_handle(failonerror = TRUE) @@ -209,16 +209,16 @@ ) ``` -Use the `curl_options()` function to get a list of the options supported by your version of libcurl. The [libcurl documentation](https://curl.haxx.se/libcurl/c/curl_easy_setopt.html) explains what each option does. Option names are not case sensitive. +Use the `curl_options()` function to get a list of the options supported by your version of libcurl. The [libcurl documentation](https://curl.se/libcurl/c/curl_easy_setopt.html) explains what each option does. Option names are not case sensitive. -It is important you check the [libcurl documentation](https://curl.haxx.se/libcurl/c/curl_easy_setopt.html) to set options of the correct type. Options in libcurl take several types: +It is important you check the [libcurl documentation](https://curl.se/libcurl/c/curl_easy_setopt.html) to set options of the correct type. Options in libcurl take several types: - number - string - slist (vector of strings) - enum (long) option -The R bindings will automatically do some type checking and coercion to convert R values to appropriate libcurl option values. Logical (boolean) values in R automatically get converted to `0` or `1` for example [CURLOPT_VERBOSE](https://curl.haxx.se/libcurl/c/CURLOPT_VERBOSE.html): +The R bindings will automatically do some type checking and coercion to convert R values to appropriate libcurl option values. Logical (boolean) values in R automatically get converted to `0` or `1` for example [CURLOPT_VERBOSE](https://curl.se/libcurl/c/CURLOPT_VERBOSE.html): ```{r} @@ -240,7 +240,7 @@ Some curl options take an long in C that actually corresponds to an ENUM value. -For example the [CURLOPT_USE_SSL](https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html) docs explains that there are 4 possible values for this option: `CURLUSESSL_NONE`, `CURLUSESSL_TRY`, `CURLUSESSL_CONTROL`, and `CURLUSESSL_ALL`. To use this option you have to lookup the integer values for these enums in the symbol table. These symbol values never change, so you only need to lookup the value you need once and then hardcode the integer value in your R code. +For example the [CURLOPT_USE_SSL](https://curl.se/libcurl/c/CURLOPT_USE_SSL.html) docs explains that there are 4 possible values for this option: `CURLUSESSL_NONE`, `CURLUSESSL_TRY`, `CURLUSESSL_CONTROL`, and `CURLUSESSL_ALL`. To use this option you have to lookup the integer values for these enums in the symbol table. These symbol values never change, so you only need to lookup the value you need once and then hardcode the integer value in your R code. ```{r} curl::curl_symbols("CURLUSESSL") @@ -254,9 +254,9 @@ ### Disabling HTTP/2 -Another example is the [CURLOPT_HTTP_VERSION](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html) option. This option is needed to disable or enable HTTP/2. However some users are not aware this is actually an ENUM and not a regular numeric value! +Another example is the [CURLOPT_HTTP_VERSION](https://curl.se/libcurl/c/CURLOPT_HTTP_VERSION.html) option. This option is needed to disable or enable HTTP/2. However some users are not aware this is actually an ENUM and not a regular numeric value! -The [docs](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html) explain HTTP_VERSION can be set to one of several strategies for negotiating the HTTP version between client and server. Valid values are: +The [docs](https://curl.se/libcurl/c/CURLOPT_HTTP_VERSION.html) explain HTTP_VERSION can be set to one of several strategies for negotiating the HTTP version between client and server. Valid values are: ```{r} curl_symbols('CURL_HTTP_VERSION_') diff -Nru r-cran-curl-4.3+dfsg/inst/doc/windows.Rmd r-cran-curl-4.3.2+dfsg/inst/doc/windows.Rmd --- r-cran-curl-4.3+dfsg/inst/doc/windows.Rmd 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/inst/doc/windows.Rmd 2021-04-28 11:35:18.000000000 +0000 @@ -38,7 +38,7 @@ The default backend on Windows 7 and up is Secure Channel. This uses the native Windows SSL API and certificates, which is the safest choice for most users. -To switch to OpenSSL, you need to set an environment variable [`CURL_SSL_BACKEND`](https://curl.haxx.se/libcurl/c/libcurl-env.html) to `"openssl"` when starting R. A good place to set this is in your `.Renviron` file in your user home (Documents) directory; the `?Startup` manual has more details. +To switch to OpenSSL, you need to set an environment variable [`CURL_SSL_BACKEND`](https://curl.se/libcurl/c/libcurl-env.html) to `"openssl"` when starting R. A good place to set this is in your `.Renviron` file in your user home (Documents) directory; the `?Startup` manual has more details. ``` CURL_SSL_BACKEND=openssl @@ -69,7 +69,7 @@ Windows proxy servers are a complicated topic because depending on your corporate network configuration, different settings may be needed. If your company uses proxies with custom certificates, this might also interact with the previous topic. -Proxy settings can either be configured in the handle for a single request, or globally via environment variables. This is explained in detail on the curl website detail in the manual pages for [CURLOPT_PROXY](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html) and [libcurl-env](https://curl.haxx.se/libcurl/c/libcurl-env.html). +Proxy settings can either be configured in the handle for a single request, or globally via environment variables. This is explained in detail on the curl website detail in the manual pages for [CURLOPT_PROXY](https://curl.se/libcurl/c/CURLOPT_PROXY.html) and [libcurl-env](https://curl.se/libcurl/c/libcurl-env.html). If you know the address of your proxy server you can set it via the `curlopt_proxy` option: @@ -87,7 +87,7 @@ curl_options('proxy') ``` -To use a global proxy server for all your requests, you can set the environment variable `http_proxy` (lowercase!) or `https_proxy` or `ALL_PROXY`. See [this page](https://curl.haxx.se/libcurl/c/libcurl-env.html) for details. This variable may be set or changed in R at runtime, for example: +To use a global proxy server for all your requests, you can set the environment variable `http_proxy` (lowercase!) or `https_proxy` or `ALL_PROXY`. See [this page](https://curl.se/libcurl/c/libcurl-env.html) for details. This variable may be set or changed in R at runtime, for example: ```r Sys.setenv(ALL_PROXY = "http://proxy.mycorp.com:8080") @@ -123,7 +123,7 @@ #> [1] "10.*;173.*;mail.mycorp.org;autodiscover.mycorp.org;ev.mycorp.org;ecms.mycorp.org" ``` -There are a few settings here, such as default proxy server and a list of hosts which do _not_ need proxying, usually hosts within the corporate intranet (these can probably be used in [`CURLOPT_NOPROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html)). +There are a few settings here, such as default proxy server and a list of hosts which do _not_ need proxying, usually hosts within the corporate intranet (these can probably be used in [`CURLOPT_NOPROXY`](https://curl.se/libcurl/c/CURLOPT_NOPROXY.html)). The most complicated case is when your network uses different proxy servers for different target urls. The `AutoConfigUrl` field above refers to a [proxy auto config](https://en.wikipedia.org/wiki/Proxy_auto-config) (PAC) script that Internet Explorer has to run to find out which proxy server it has to use for a given host. The `curl` package exposes another function which calls out to Internet Explorer do it's thing and tell us the appropriate proxy server for a given host: diff -Nru r-cran-curl-4.3+dfsg/man/curl_echo.Rd r-cran-curl-4.3.2+dfsg/man/curl_echo.Rd --- r-cran-curl-4.3+dfsg/man/curl_echo.Rd 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/man/curl_echo.Rd 2021-04-28 09:54:32.000000000 +0000 @@ -20,6 +20,7 @@ echo the request body and content type in the response. } \examples{ +if(require('httpuv')){ h <- new_handle(url = 'https://httpbin.org/post') handle_setform(h, foo = "blabla", bar = charToRaw("test"), myfile = form_file(system.file("DESCRIPTION"), "text/description")) @@ -33,3 +34,4 @@ # Parse multipart webutils::parse_http(formdata$body, formdata$content_type) } +} diff -Nru r-cran-curl-4.3+dfsg/man/curl_upload.Rd r-cran-curl-4.3.2+dfsg/man/curl_upload.Rd --- r-cran-curl-4.3+dfsg/man/curl_upload.Rd 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/man/curl_upload.Rd 2021-03-12 13:56:21.000000000 +0000 @@ -24,7 +24,7 @@ Be aware that sftp is only available for libcurl clients built with libssh2. } \examples{ -\donttest{# Upload package to winbuilder: +\dontrun{# Upload package to winbuilder: curl_upload('mypkg_1.3.tar.gz', 'ftp://win-builder.r-project.org/R-devel/') } } diff -Nru r-cran-curl-4.3+dfsg/man/send_mail.Rd r-cran-curl-4.3.2+dfsg/man/send_mail.Rd --- r-cran-curl-4.3+dfsg/man/send_mail.Rd 2019-12-02 11:21:08.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/man/send_mail.Rd 2021-04-28 11:36:39.000000000 +0000 @@ -28,7 +28,7 @@ and protocol" below.} \item{use_ssl}{Request to upgrade the connection to SSL using the STARTTLS command, -see \href{https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html}{CURLOPT_USE_SSL} +see \href{https://curl.se/libcurl/c/CURLOPT_USE_SSL.html}{CURLOPT_USE_SSL} for details. Default will try to SSL, proceed as normal otherwise.} \item{verbose}{print output} @@ -80,7 +80,7 @@ } \examples{ -\donttest{# Set sender and recipients (email addresses only) +\dontrun{# Set sender and recipients (email addresses only) recipients <- readline("Enter your email address to receive test: ") sender <- 'test@noreply.com' diff -Nru r-cran-curl-4.3+dfsg/MD5 r-cran-curl-4.3.2+dfsg/MD5 --- r-cran-curl-4.3+dfsg/MD5 2019-12-02 14:00:03.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/MD5 2021-06-23 07:00:06.000000000 +0000 @@ -1,43 +1,43 @@ -138f461a174c0fadda1c85ae5ddfc346 *DESCRIPTION +6f3ff27eccbdf2e5054bc49fbb8b1563 *DESCRIPTION b53a78086835d02ca44833f68a43fbc3 *LICENSE 53a863136684a5bb6073496bffc838f4 *NAMESPACE -f033085a2268a59e02a1e3a02de0a449 *NEWS +6d986d972bbaf31b7085ad807cf09382 *NEWS 6e38b3936a1efe392103f62ef9db1bc8 *R/curl.R d21329d259c019e22840df45753ea7ed *R/download.R -a6566d1a658448d9aabea8a4ae3c52a5 *R/echo.R -a84e7823f3d8cc8ea885afc3d5c9e215 *R/email.R +5471633a4b8d600e7c850180e0495342 *R/echo.R +ed9ade0e03acd68431ac83c185a6c89f *R/email.R c6c5182b1629ba6080707e80026cf3ca *R/escape.R a282174dd803ba9742e5e1d191c6858b *R/fetch.R 1066c0085770802c79611811bab757c4 *R/form.R ef2f7453fac737eacfa5f5ce2c239d69 *R/handle.R 93b9d133434177f9640385e6c6af704a *R/multi.R e82e6007b08e39205ddb0e09f52fdc35 *R/nslookup.R -44c8b59af7ae3fdb01f1e4e60cc2350c *R/onload.R +b124bd9dd0b866f7f2a9bcb35cb4d50f *R/onload.R 87e3bc948ca3b634a6f0c2d8c44580bc *R/options.R 341deaec71f85196697042ede275d232 *R/parse_headers.R 4c1746ae3e525b40a8528a4592ebff62 *R/proxy.R 89cca232296136572b85806f601c1819 *R/sysdata.rda -4e82922e6cf914272ddb688f8a725b52 *R/upload.R +504e2e6ff5c257eeb382ab527b0ad08c *R/upload.R 8555354326143e99589d75671ef314d1 *R/utilities.R 7f11102d1095d591639817b4a45f889a *R/writer.R -aea0eb59fad7a510bdd3b5a169c38e01 *build/vignette.rds +e4d779b37b41028144c9ba037caabb49 *build/vignette.rds 6071edd604dbeb75308cfbedc7790398 *cleanup -c308fb58586add202ebe9b688193db71 *configure +30e83e21b2c3ddd7eb9455b7c55db510 *configure d41d8cd98f00b204e9800998ecf8427e *configure.win 3bbe48dab4f9c80d2ec5db097043f012 *inst/WORDLIST 1c61f848bcd9130bff40973416a75102 *inst/doc/intro.R -fbb27b4ec5f3b431f18a1811e01d549b *inst/doc/intro.Rmd -7e1817e1056f9f4484988209cc7c4e4b *inst/doc/intro.html +98c917f3c2e2dc8803da03efef0a3d60 *inst/doc/intro.Rmd +14eb62cb9af6b1f0e0e62f125d170ec0 *inst/doc/intro.html cb98c2db09777e92b915cae3571feea6 *inst/doc/windows.R -a2a5d112099d15bfd2a3db5673a4d03d *inst/doc/windows.Rmd -20e278fc8c8cbbe07d796689f61b5efe *inst/doc/windows.html +cfe903d34b4b9b750e9e722f306e4be9 *inst/doc/windows.Rmd +5bd496dd5fd87fc8109f27906a2ead83 *inst/doc/windows.html d57f6d9e5c62e5a803cb6a0986ead273 *man/curl.Rd 4571e9ab042893dd7cc12cf012259ecd *man/curl_download.Rd -b3a5e51e7c594e3c05bef236208a9493 *man/curl_echo.Rd +f4af112026b76bfcf315603a2dc0044f *man/curl_echo.Rd 4a76df5371d10461ffc523083c12adc4 *man/curl_escape.Rd 295a73eedb47ad3dae6fe1a2c2f42e8b *man/curl_fetch.Rd f919bf8f68f47f68c76ce7f68dc097b5 *man/curl_options.Rd -d1cc26a6eb8cced99715300f784a9f92 *man/curl_upload.Rd +c836daa0e54906457e4a91e800337dc9 *man/curl_upload.Rd 800df3da63e3b9f3f3387861cf57b849 *man/file_writer.Rd 202a941f2f66c9309b54634422266668 *man/handle.Rd eb2e26b16a7bfbf8d2349d1f637653f5 *man/handle_cookies.Rd @@ -47,47 +47,48 @@ 738ee944140774f019161d7cd18f35aa *man/nslookup.Rd c3175e1371fa28d57c203d2af8fcd60b *man/parse_date.Rd d0a186c57e0a7306a4c892f5498d8f85 *man/parse_headers.Rd -fbc1076caff3329d6afa0197ba5bc10b *man/send_mail.Rd +e30559457df45208aa284caeee718e07 *man/send_mail.Rd fdb5a38c510e57352a6d8fce2e15d977 *src/Makevars.in -4ba6c4c5a1a4f172e4e8396a34068bbf *src/Makevars.win +2cec33791efd347cbcb051402d7cf9c4 *src/Makevars.ucrt +f865511ee1b052edbce572f68648dfa2 *src/Makevars.win 75c33ada9cc7613b470d0ea2e820af4e *src/callbacks.c 6d391e7654d5f35cc336ab174454e0ae *src/callbacks.h fb4d26c3ce0924b174bd79fb1ffcbc55 *src/curl-common.h ca60d50a5e73b486510be5d802fdea28 *src/curl-symbols.h -949fb5b8793364dc82d5ec82082c1309 *src/curl.c +28eabd879abcb02ce79b403bffd9c7c1 *src/curl.c 53ef5e1c1fae06308fef2c35ab2c2357 *src/download.c -6ced00f0ef2e58a9bbf1ad43367f9f31 *src/escape.c -8efd3934c757642b7eb3cfcd6f3b874a *src/fetch.c +554e6ddd176733ac457293f056eadd67 *src/escape.c +36c302e5ca31ced75f3b9bde4b2c291e *src/fetch.c 7f6f09915f019020eec775a4dabdb7ac *src/form.c 0c66ee6a65fa291ad390119953beb871 *src/getdate.c -f6ee85795d512049473ed83ec8a1780d *src/handle.c +34eb13164fd51f8cb7b23490fa2ec5a3 *src/handle.c 9d95e456834557a7d1503d69208f5b17 *src/ieproxy.c 4270b7cfad49037cd9a705589bdbfc4c *src/init.c -e8e53975665f80c0d211fdd45760b1ee *src/interrupt.c +b79481c2b4abf2241369aad9daf5c640 *src/interrupt.c 6737f8cb4349e8d6f6109c6d7bdcc647 *src/multi.c -ec2d29b9fbbaece65e54651626cd198b *src/nslookup.c +d91dae99c17ff5911d6400beb15d77a0 *src/nslookup.c 91703e066a9e848a1d63eede9f9dd255 *src/reflist.c f5cd7f3315e332bd18a38bb494ad640e *src/split.c 46fc54274fe078e0ad09640558cade6b *src/ssl.c aeadcc46b8c20dab88ecce073c3d1491 *src/typechecking.c 05295fe6a4d10bdf36b065d853dcba05 *src/utils.c 365c211a7f307461ad46a74952b97d57 *src/version.c -5c32d93f54a58c1382926a61792bfaed *src/winhttp32.def.in -245dea4d9024e0381bc9f9bd3a8b6627 *src/winhttp64.def.in 877b30a097df618207cfc6e6a34d06c3 *src/winidn.c df68082e0f7d4ee64f00595102e480ea *src/writer.c +363571f48003b653997d6901c1844727 *tests/engine.R +41dc6de9e30a19e502e01e699c9c07c4 *tests/engine.Rout.save 0622a97a2aaa3c342f09636052c2d7f5 *tests/spelling.R 53c61f84653136400af01616e5ba0abd *tests/testthat.R c97d6b3c39ebc805b223a643fea7d8a8 *tests/testthat/helper-version.R bbbd697e81545d0a97fa262c18262155 *tests/testthat/test-auth.R 2e3643b5e6c3488da927337b98d0fe73 *tests/testthat/test-blockopen.R -91f794a71873a4cac36629855cc03a37 *tests/testthat/test-certificates.R +861a1ae673619b04f8b6c812b6e22216 *tests/testthat/test-certificates.R 17857acb1bd8f16af0c43be20a5c9d51 *tests/testthat/test-connection.R 2870a87310437545182a67a9c8570d6e *tests/testthat/test-cookies.R -665c925b3ce56aadb64f7e1e9626500f *tests/testthat/test-echo.R +f6149dd2dfd2b98ea301c6dc0e9a06a0 *tests/testthat/test-echo.R c48bedfac6e4bf4220023269451ef0e6 *tests/testthat/test-escape.R 0203a392d1f5db0ab0d6c3b05ef3fa24 *tests/testthat/test-gc.R -3aed76f9189447df94f57e44dca56d90 *tests/testthat/test-handle.R +31e5431f360066abd5158ce22cc2dd3f *tests/testthat/test-handle.R 2bcf4d669fcb58f2c16bf86c08f90487 *tests/testthat/test-idn.R 5e6dc9985b62607184908cc2cbcd9be9 *tests/testthat/test-multi.R 866c0b14f042c31952562e58cc679165 *tests/testthat/test-nonblocking.R @@ -101,5 +102,5 @@ 6dc980095a582ddd4d302131b84770ed *tools/typecheck.R 0e6fa354dc71345fd29c43b3ed0eceb2 *tools/typechecking.c.in 5b4aef5a162bd6e6dfcd8e82b05ac2e2 *tools/winlibs.R -fbb27b4ec5f3b431f18a1811e01d549b *vignettes/intro.Rmd -a2a5d112099d15bfd2a3db5673a4d03d *vignettes/windows.Rmd +98c917f3c2e2dc8803da03efef0a3d60 *vignettes/intro.Rmd +cfe903d34b4b9b750e9e722f306e4be9 *vignettes/windows.Rmd diff -Nru r-cran-curl-4.3+dfsg/NEWS r-cran-curl-4.3.2+dfsg/NEWS --- r-cran-curl-4.3+dfsg/NEWS 2019-12-01 12:57:32.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/NEWS 2021-06-22 11:34:09.000000000 +0000 @@ -1,3 +1,11 @@ +4.3.2 + - Windows: update binaries to openssl 1.1.1k and libssh2 1.9.0 + - Windows: fix build for experimental ucrt toolchains + +4.3.1 + - Make tests pass if 'httpuv' is not available (BDR) + - Some cleanup for Windows compilers + 4.3 - No longer enable HTTP/2 by default on libcurl < 7.62.0 because some old libcurl versions have annoying HTTP/2 bugs which randomly cause requests to fail. Note diff -Nru r-cran-curl-4.3+dfsg/R/echo.R r-cran-curl-4.3.2+dfsg/R/echo.R --- r-cran-curl-4.3+dfsg/R/echo.R 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/R/echo.R 2021-04-28 09:54:32.000000000 +0000 @@ -8,7 +8,8 @@ #' @param port the port number on which to run httpuv server #' @param progress show progress meter during http transfer #' @param file path or connection to write body. Default returns body as raw vector. -#' @examples h <- new_handle(url = 'https://httpbin.org/post') +#' @examples if(require('httpuv')){ +#' h <- new_handle(url = 'https://httpbin.org/post') #' handle_setform(h, foo = "blabla", bar = charToRaw("test"), #' myfile = form_file(system.file("DESCRIPTION"), "text/description")) #' @@ -20,6 +21,7 @@ #' #' # Parse multipart #' webutils::parse_http(formdata$body, formdata$content_type) +#' } curl_echo <- function(handle, port = 9359, progress = interactive(), file = NULL){ progress <- isTRUE(progress) if(!(is.null(file) || inherits(file, "connection") || is.character(file))) diff -Nru r-cran-curl-4.3+dfsg/R/email.R r-cran-curl-4.3.2+dfsg/R/email.R --- r-cran-curl-4.3+dfsg/R/email.R 2019-12-02 11:20:57.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/R/email.R 2021-04-28 11:35:59.000000000 +0000 @@ -47,13 +47,13 @@ #' \code{smtp://} or \code{smtps://} URL. See "Specifying the server, port, #' and protocol" below. #' @param use_ssl Request to upgrade the connection to SSL using the STARTTLS command, -#' see \href{https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html}{CURLOPT_USE_SSL} +#' see \href{https://curl.se/libcurl/c/CURLOPT_USE_SSL.html}{CURLOPT_USE_SSL} #' for details. Default will try to SSL, proceed as normal otherwise. #' @param verbose print output #' @param ... other options passed to \code{\link{handle_setopt}}. In most cases #' you will need to set a \code{username} and \code{password} to authenticate #' with the SMTP server. -#' @examples \donttest{# Set sender and recipients (email addresses only) +#' @examples \dontrun{# Set sender and recipients (email addresses only) #' recipients <- readline("Enter your email address to receive test: ") #' sender <- 'test@noreply.com' #' diff -Nru r-cran-curl-4.3+dfsg/R/onload.R r-cran-curl-4.3.2+dfsg/R/onload.R --- r-cran-curl-4.3+dfsg/R/onload.R 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/R/onload.R 2021-06-22 10:29:46.000000000 +0000 @@ -14,6 +14,9 @@ if (grepl("mingw", R.Version()$platform) && !file.exists(get_bundle())){ warning("No CA bundle found. SSL validation disabled.", call. = FALSE) } + ssl <- sub("\\(.*\\)\\W*", "", curl_version()$ssl_version) + msg <- paste("Using libcurl", curl_version()$version, "with", ssl) + packageStartupMessage(msg) } #' @useDynLib curl R_set_bundle diff -Nru r-cran-curl-4.3+dfsg/R/upload.R r-cran-curl-4.3.2+dfsg/R/upload.R --- r-cran-curl-4.3+dfsg/R/upload.R 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/R/upload.R 2021-03-12 13:56:21.000000000 +0000 @@ -11,7 +11,7 @@ #' @param reuse try to keep alive and recycle connections when possible #' @param ... other arguments passed to \code{\link{handle_setopt}}, for #' example a \code{username} and \code{password}. -#' @examples \donttest{# Upload package to winbuilder: +#' @examples \dontrun{# Upload package to winbuilder: #' curl_upload('mypkg_1.3.tar.gz', 'ftp://win-builder.r-project.org/R-devel/') #' } curl_upload <- function(file, url, verbose = TRUE, reuse = TRUE, ...) { diff -Nru r-cran-curl-4.3+dfsg/src/curl.c r-cran-curl-4.3.2+dfsg/src/curl.c --- r-cran-curl-4.3+dfsg/src/curl.c 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/curl.c 2021-04-28 11:36:30.000000000 +0000 @@ -3,8 +3,8 @@ * Source: https://github.com/jeroen/curl * Comments and contributions are welcome! * Helpful libcurl examples: - * - http://curl.haxx.se/libcurl/c/getinmemory.html - * - http://curl.haxx.se/libcurl/c/multi-single.html + * - https://curl.se/libcurl/c/getinmemory.html + * - https://curl.se/libcurl/c/multi-single.html * Sparse documentation about Rconnection API: * - https://github.com/wch/r-source/blob/trunk/src/include/R_ext/Connections.h * - http://biostatmatt.com/R/R-conn-ints/C-Structures.html diff -Nru r-cran-curl-4.3+dfsg/src/escape.c r-cran-curl-4.3.2+dfsg/src/escape.c --- r-cran-curl-4.3+dfsg/src/escape.c 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/escape.c 2021-03-12 13:56:21.000000000 +0000 @@ -2,32 +2,22 @@ #include SEXP R_curl_escape(SEXP url, SEXP unescape_) { - if (TYPEOF(url) != STRSXP) + if (!Rf_isString(url)) error("`url` must be a character vector."); - - /* init curl */ - CURL *curl = curl_easy_init(); - if (!curl) - return(R_NilValue); - - int unescape = asLogical(unescape_); + CURL *handle = curl_easy_init(); int n = Rf_length(url); SEXP output = PROTECT(allocVector(STRSXP, n)); - for (int i = 0; i < n; ++i) { - const char *in = CHAR(STRING_ELT(url, i)); - char *out; - if (unescape) { - out = curl_easy_unescape(curl, in, 0, NULL); - } else { - out = curl_easy_escape(curl, in, 0); + for (int i = 0; i < n; i++) { + const char *input = CHAR(STRING_ELT(url, i)); + char *out = asLogical(unescape_) ? + curl_easy_unescape(handle, input, 0, NULL) : curl_easy_escape(handle, input, 0); + if(out != NULL){ + SET_STRING_ELT(output, i, mkCharCE(out, CE_UTF8)); + curl_free(out); } - - SET_STRING_ELT(output, i, mkCharCE(out, CE_UTF8)); - curl_free(out); } - - curl_easy_cleanup(curl); + curl_easy_cleanup(handle); UNPROTECT(1); return output; } diff -Nru r-cran-curl-4.3+dfsg/src/fetch.c r-cran-curl-4.3.2+dfsg/src/fetch.c --- r-cran-curl-4.3+dfsg/src/fetch.c 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/fetch.c 2021-04-28 11:36:09.000000000 +0000 @@ -1,6 +1,6 @@ /* * * Blocking easy interfaces to libcurl for R. - * Example: http://curl.haxx.se/libcurl/c/getinmemory.html + * Example: https://curl.se/libcurl/c/getinmemory.html */ #include "curl-common.h" diff -Nru r-cran-curl-4.3+dfsg/src/handle.c r-cran-curl-4.3.2+dfsg/src/handle.c --- r-cran-curl-4.3+dfsg/src/handle.c 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/handle.c 2021-06-19 11:59:31.000000000 +0000 @@ -87,7 +87,7 @@ dlprev = dlnow; if(dltotal){ int pct_dn = (100 * dlnow)/dltotal; - REprintf("\r [%d%%] Downloaded %.0lf bytes...", (double) dlnow, pct_dn); + REprintf("\r [%d%%] Downloaded %.0lf bytes...", pct_dn, (double) dlnow); if(dlnow == dltotal) REprintf("\n"); } else { @@ -96,7 +96,7 @@ } else if(ulnow && ulnow != ulprev){ ulprev = ulnow; int pct_up = (100 * ulnow)/ultotal; - REprintf("\r [%d%%] Uploaded %.0lf bytes...", (double) ulnow, pct_up); + REprintf("\r [%d%%] Uploaded %.0lf bytes...", pct_up, (double) ulnow); if(ulnow == ultotal) REprintf("\n"); } diff -Nru r-cran-curl-4.3+dfsg/src/interrupt.c r-cran-curl-4.3.2+dfsg/src/interrupt.c --- r-cran-curl-4.3+dfsg/src/interrupt.c 2019-12-01 08:18:52.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/interrupt.c 2021-04-28 11:36:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Non-blocking drop-in replacement for curl_easy_perform with support for - * R interruptions. Based on: https://curl.haxx.se/libcurl/c/multi-single.html + * R interruptions. Based on: https://curl.se/libcurl/c/multi-single.html */ #include diff -Nru r-cran-curl-4.3+dfsg/src/Makevars.ucrt r-cran-curl-4.3.2+dfsg/src/Makevars.ucrt --- r-cran-curl-4.3+dfsg/src/Makevars.ucrt 1970-01-01 00:00:00.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/Makevars.ucrt 2021-06-22 10:42:39.000000000 +0000 @@ -0,0 +1,2 @@ +CRT=-ucrt +include Makevars.win diff -Nru r-cran-curl-4.3+dfsg/src/Makevars.win r-cran-curl-4.3.2+dfsg/src/Makevars.win --- r-cran-curl-4.3+dfsg/src/Makevars.win 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/Makevars.win 2021-06-22 11:29:10.000000000 +0000 @@ -1,20 +1,17 @@ -VERSION=7.64.1 -PKG_LIBS= -L../windows/libcurl-$(VERSION)/lib${R_ARCH} \ - -L. -lwinhttp -lcurl -lssh2 -lz -lssl -lcrypto -lgdi32 -lws2_32 -lcrypt32 -lwldap32 +VERSION=7.64.1-2 +PKG_LIBS= -L../windows/libcurl-$(VERSION)/lib${R_ARCH}${CRT} \ + -lwinhttp -lcurl -lssh2 -lz -lssl -lcrypto -lgdi32 -lws2_32 -lcrypt32 -lwldap32 PKG_CPPFLAGS= \ -I../windows/libcurl-$(VERSION)/include -DCURL_STATICLIB -DSTRICT_R_HEADERS -all: clean winlibs libwinhttp.dll.a +all: clean winlibs clean: - rm -f $(SHLIB) $(OBJECTS) libwinhttp.dll.a winhttp.def + rm -f $(SHLIB) $(OBJECTS) winlibs: clean "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R" $(VERSION) - echo '#include ' | $(CPP) $(PKG_CPPFLAGS) -std=gnu99 -xc - | grep "^[ \t]*CURLOPT_.*," | sed s/,// > ../tools/option_table.txt - -winhttp.def: - cp winhttp$(WIN).def.in winhttp.def + echo '#include ' | $(CC) $(PKG_CPPFLAGS) -std=gnu99 -E -xc - | grep "^[ \t]*CURLOPT_.*," | sed s/,// > ../tools/option_table.txt .PHONY: all winlibs clean diff -Nru r-cran-curl-4.3+dfsg/src/nslookup.c r-cran-curl-4.3.2+dfsg/src/nslookup.c --- r-cran-curl-4.3+dfsg/src/nslookup.c 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/nslookup.c 2021-04-28 09:54:32.000000000 +0000 @@ -3,6 +3,11 @@ int jeroen_win32_idn_to_ascii(const char *in, char **out); #endif +//needed to expose inet_ntop +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0600 +#endif + //getaddrinfo is an extension (not C99) #if !defined(_WIN32) && !defined(__sun) && !defined(_POSIX_C_SOURCE) #define _POSIX_C_SOURCE 200112L @@ -14,7 +19,6 @@ #ifdef _WIN32 #include #include -const char *inet_ntop(int af, const void *src, char *dst, socklen_t size); #else #include #include @@ -71,30 +75,3 @@ freeaddrinfo(addr); return out; } - -/* Fallback implementation for inet_ntop in Win32 */ - -#if defined(_WIN32) && !defined(_WIN64) -const char *inet_ntop(int af, const void *src, char *dst, socklen_t size) -{ - struct sockaddr_storage ss; - unsigned long s = size; - - ZeroMemory(&ss, sizeof(ss)); - ss.ss_family = af; - - switch(af) { - case AF_INET: - ((struct sockaddr_in *)&ss)->sin_addr = *(struct in_addr *)src; - break; - case AF_INET6: - ((struct sockaddr_in6 *)&ss)->sin6_addr = *(struct in6_addr *)src; - break; - default: - return NULL; - } - /* cannot direclty use &size because of strict aliasing rules */ - return (WSAAddressToString((struct sockaddr *)&ss, sizeof(ss), NULL, dst, &s) == 0)? - dst : NULL; -} -#endif diff -Nru r-cran-curl-4.3+dfsg/src/winhttp32.def.in r-cran-curl-4.3.2+dfsg/src/winhttp32.def.in --- r-cran-curl-4.3+dfsg/src/winhttp32.def.in 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/winhttp32.def.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -; -; Definition file of WINHTTP.dll -; Automatic generated by gendef -; written by Kai Tietz 2008 -; -LIBRARY "WINHTTP.dll" -EXPORTS -Private1@20 -SvchostPushServiceGlobals@4 -WinHttpAddRequestHeaders@16 -WinHttpAutoProxySvcMain@8 -WinHttpCheckPlatform@0 -WinHttpCloseHandle@4 -WinHttpConnect@16 -WinHttpCrackUrl@16 -WinHttpCreateUrl@16 -WinHttpDetectAutoProxyConfigUrl@8 -WinHttpGetDefaultProxyConfiguration@4 -WinHttpGetIEProxyConfigForCurrentUser@4 -WinHttpGetProxyForUrl@16 -WinHttpOpen@20 -WinHttpOpenRequest@28 -WinHttpQueryAuthSchemes@16 -WinHttpQueryDataAvailable@8 -WinHttpQueryHeaders@24 -WinHttpQueryOption@16 -WinHttpReadData@16 -WinHttpReceiveResponse@8 -WinHttpSendRequest@28 -WinHttpSetCredentials@24 -WinHttpSetDefaultProxyConfiguration@4 -WinHttpSetOption@16 -WinHttpSetStatusCallback@16 -WinHttpSetTimeouts@20 -WinHttpTimeFromSystemTime@8 -WinHttpTimeToSystemTime@8 -WinHttpWriteData@16 diff -Nru r-cran-curl-4.3+dfsg/src/winhttp64.def.in r-cran-curl-4.3.2+dfsg/src/winhttp64.def.in --- r-cran-curl-4.3+dfsg/src/winhttp64.def.in 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/src/winhttp64.def.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -; -; Definition file of WINHTTP.dll -; Automatic generated by gendef -; written by Kai Tietz 2008 -; -LIBRARY "WINHTTP.dll" -EXPORTS -Private1 -SvchostPushServiceGlobals -WinHttpAddRequestHeaders -WinHttpAutoProxySvcMain -WinHttpCheckPlatform -WinHttpCloseHandle -WinHttpConnect -WinHttpCrackUrl -WinHttpCreateUrl -WinHttpDetectAutoProxyConfigUrl -WinHttpGetDefaultProxyConfiguration -WinHttpGetIEProxyConfigForCurrentUser -WinHttpGetProxyForUrl -WinHttpOpen -WinHttpOpenRequest -WinHttpQueryAuthSchemes -WinHttpQueryDataAvailable -WinHttpQueryHeaders -WinHttpQueryOption -WinHttpReadData -WinHttpReceiveResponse -WinHttpSendRequest -WinHttpSetCredentials -WinHttpSetDefaultProxyConfiguration -WinHttpSetOption -WinHttpSetStatusCallback -WinHttpSetTimeouts -WinHttpTimeFromSystemTime -WinHttpTimeToSystemTime -WinHttpWriteData diff -Nru r-cran-curl-4.3+dfsg/tests/engine.R r-cran-curl-4.3.2+dfsg/tests/engine.R --- r-cran-curl-4.3+dfsg/tests/engine.R 1970-01-01 00:00:00.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/tests/engine.R 2021-03-12 13:56:21.000000000 +0000 @@ -0,0 +1 @@ +library(curl) diff -Nru r-cran-curl-4.3+dfsg/tests/engine.Rout.save r-cran-curl-4.3.2+dfsg/tests/engine.Rout.save --- r-cran-curl-4.3+dfsg/tests/engine.Rout.save 1970-01-01 00:00:00.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/tests/engine.Rout.save 2021-03-12 13:56:21.000000000 +0000 @@ -0,0 +1,19 @@ + +R version 3.5.3 (2019-03-11) -- "Great Truth" +Copyright (C) 2019 The R Foundation for Statistical Computing +Platform: x86_64-apple-darwin15.6.0 (64-bit) + +R is free software and comes with ABSOLUTELY NO WARRANTY. +You are welcome to redistribute it under certain conditions. +Type 'license()' or 'licence()' for distribution details. + +R is a collaborative project with many contributors. +Type 'contributors()' for more information and +'citation()' on how to cite R or R packages in publications. + +Type 'demo()' for some demos, 'help()' for on-line help, or +'help.start()' for an HTML browser interface to help. +Type 'q()' to quit R. + +> library(curl) +> diff -Nru r-cran-curl-4.3+dfsg/tests/testthat/test-certificates.R r-cran-curl-4.3.2+dfsg/tests/testthat/test-certificates.R --- r-cran-curl-4.3+dfsg/tests/testthat/test-certificates.R 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/tests/testthat/test-certificates.R 2021-04-28 11:35:49.000000000 +0000 @@ -6,7 +6,7 @@ expect_equal(curl_fetch_memory('https://letsencrypt.org')$status_code, 200) # Test HTTP -> HTTPS (TLS 1.2) redirection - expect_equal(curl_fetch_memory('http://curl.haxx.se')$status_code, 200) + expect_equal(curl_fetch_memory('http://curl.se')$status_code, 200) }) test_that("Invalid domain raises an error", { diff -Nru r-cran-curl-4.3+dfsg/tests/testthat/test-echo.R r-cran-curl-4.3.2+dfsg/tests/testthat/test-echo.R --- r-cran-curl-4.3+dfsg/tests/testthat/test-echo.R 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/tests/testthat/test-echo.R 2021-04-28 09:54:32.000000000 +0000 @@ -1,6 +1,7 @@ context("echo") test_that("roundtrip large data", { + skip_if_not_installed('httpuv') bindata <- serialize(rnorm(1e5), NULL) input_url <- 'https://fakeserver.org:99/my/endpoint' handle <- curl::new_handle(url = input_url) diff -Nru r-cran-curl-4.3+dfsg/tests/testthat/test-handle.R r-cran-curl-4.3.2+dfsg/tests/testthat/test-handle.R --- r-cran-curl-4.3+dfsg/tests/testthat/test-handle.R 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/tests/testthat/test-handle.R 2021-04-28 10:28:28.000000000 +0000 @@ -134,9 +134,9 @@ if(.Platform$OS.type == 'windows'){ ssl_version <- curl_version()$ssl_version if(get_windows_build() < 7600 || grepl("openssl", Sys.getenv('CURL_SSL_BACKEND'), TRUE)){ - expect_equal(ssl_version, "OpenSSL/1.1.1a (Schannel)") + expect_match(ssl_version, "OpenSSL.*\\(Schannel\\)") } else { - expect_equal(ssl_version, "(OpenSSL/1.1.1a) Schannel") + expect_match(ssl_version, "\\(OpenSSL.*\\) Schannel") } } else if(!is.na(curl_options()['unix_socket_path'])){ # This should simply not error diff -Nru r-cran-curl-4.3+dfsg/vignettes/intro.Rmd r-cran-curl-4.3.2+dfsg/vignettes/intro.Rmd --- r-cran-curl-4.3+dfsg/vignettes/intro.Rmd 2019-12-01 12:36:13.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/vignettes/intro.Rmd 2021-04-28 11:35:07.000000000 +0000 @@ -26,7 +26,7 @@ library(jsonlite) ``` -The curl package provides bindings to the [libcurl](https://curl.haxx.se/libcurl/) C library for R. The package supports retrieving data in-memory, downloading to disk, or streaming using the [R "connection" interface](https://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html). Some knowledge of curl is recommended to use this package. For a more user-friendly HTTP client, have a look at the [httr](https://cran.r-project.org/package=httr/vignettes/quickstart.html) package which builds on curl with HTTP specific tools and logic. +The curl package provides bindings to the [libcurl](https://curl.se/libcurl/) C library for R. The package supports retrieving data in-memory, downloading to disk, or streaming using the [R "connection" interface](https://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html). Some knowledge of curl is recommended to use this package. For a more user-friendly HTTP client, have a look at the [httr](https://cran.r-project.org/package=httr/vignettes/quickstart.html) package which builds on curl with HTTP specific tools and logic. ## Request interfaces @@ -184,7 +184,7 @@ unlink('mirrors.csv') ``` -If you *do* want the `curl_fetch_*` functions to automatically raise an error, you should set the [`FAILONERROR`](https://curl.haxx.se/libcurl/c/CURLOPT_FAILONERROR.html) option to `TRUE` in the handle of the request. +If you *do* want the `curl_fetch_*` functions to automatically raise an error, you should set the [`FAILONERROR`](https://curl.se/libcurl/c/CURLOPT_FAILONERROR.html) option to `TRUE` in the handle of the request. ```{r, error=TRUE, purl = FALSE} h <- new_handle(failonerror = TRUE) @@ -209,16 +209,16 @@ ) ``` -Use the `curl_options()` function to get a list of the options supported by your version of libcurl. The [libcurl documentation](https://curl.haxx.se/libcurl/c/curl_easy_setopt.html) explains what each option does. Option names are not case sensitive. +Use the `curl_options()` function to get a list of the options supported by your version of libcurl. The [libcurl documentation](https://curl.se/libcurl/c/curl_easy_setopt.html) explains what each option does. Option names are not case sensitive. -It is important you check the [libcurl documentation](https://curl.haxx.se/libcurl/c/curl_easy_setopt.html) to set options of the correct type. Options in libcurl take several types: +It is important you check the [libcurl documentation](https://curl.se/libcurl/c/curl_easy_setopt.html) to set options of the correct type. Options in libcurl take several types: - number - string - slist (vector of strings) - enum (long) option -The R bindings will automatically do some type checking and coercion to convert R values to appropriate libcurl option values. Logical (boolean) values in R automatically get converted to `0` or `1` for example [CURLOPT_VERBOSE](https://curl.haxx.se/libcurl/c/CURLOPT_VERBOSE.html): +The R bindings will automatically do some type checking and coercion to convert R values to appropriate libcurl option values. Logical (boolean) values in R automatically get converted to `0` or `1` for example [CURLOPT_VERBOSE](https://curl.se/libcurl/c/CURLOPT_VERBOSE.html): ```{r} @@ -240,7 +240,7 @@ Some curl options take an long in C that actually corresponds to an ENUM value. -For example the [CURLOPT_USE_SSL](https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html) docs explains that there are 4 possible values for this option: `CURLUSESSL_NONE`, `CURLUSESSL_TRY`, `CURLUSESSL_CONTROL`, and `CURLUSESSL_ALL`. To use this option you have to lookup the integer values for these enums in the symbol table. These symbol values never change, so you only need to lookup the value you need once and then hardcode the integer value in your R code. +For example the [CURLOPT_USE_SSL](https://curl.se/libcurl/c/CURLOPT_USE_SSL.html) docs explains that there are 4 possible values for this option: `CURLUSESSL_NONE`, `CURLUSESSL_TRY`, `CURLUSESSL_CONTROL`, and `CURLUSESSL_ALL`. To use this option you have to lookup the integer values for these enums in the symbol table. These symbol values never change, so you only need to lookup the value you need once and then hardcode the integer value in your R code. ```{r} curl::curl_symbols("CURLUSESSL") @@ -254,9 +254,9 @@ ### Disabling HTTP/2 -Another example is the [CURLOPT_HTTP_VERSION](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html) option. This option is needed to disable or enable HTTP/2. However some users are not aware this is actually an ENUM and not a regular numeric value! +Another example is the [CURLOPT_HTTP_VERSION](https://curl.se/libcurl/c/CURLOPT_HTTP_VERSION.html) option. This option is needed to disable or enable HTTP/2. However some users are not aware this is actually an ENUM and not a regular numeric value! -The [docs](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html) explain HTTP_VERSION can be set to one of several strategies for negotiating the HTTP version between client and server. Valid values are: +The [docs](https://curl.se/libcurl/c/CURLOPT_HTTP_VERSION.html) explain HTTP_VERSION can be set to one of several strategies for negotiating the HTTP version between client and server. Valid values are: ```{r} curl_symbols('CURL_HTTP_VERSION_') diff -Nru r-cran-curl-4.3+dfsg/vignettes/windows.Rmd r-cran-curl-4.3.2+dfsg/vignettes/windows.Rmd --- r-cran-curl-4.3+dfsg/vignettes/windows.Rmd 2019-12-01 08:17:46.000000000 +0000 +++ r-cran-curl-4.3.2+dfsg/vignettes/windows.Rmd 2021-04-28 11:35:18.000000000 +0000 @@ -38,7 +38,7 @@ The default backend on Windows 7 and up is Secure Channel. This uses the native Windows SSL API and certificates, which is the safest choice for most users. -To switch to OpenSSL, you need to set an environment variable [`CURL_SSL_BACKEND`](https://curl.haxx.se/libcurl/c/libcurl-env.html) to `"openssl"` when starting R. A good place to set this is in your `.Renviron` file in your user home (Documents) directory; the `?Startup` manual has more details. +To switch to OpenSSL, you need to set an environment variable [`CURL_SSL_BACKEND`](https://curl.se/libcurl/c/libcurl-env.html) to `"openssl"` when starting R. A good place to set this is in your `.Renviron` file in your user home (Documents) directory; the `?Startup` manual has more details. ``` CURL_SSL_BACKEND=openssl @@ -69,7 +69,7 @@ Windows proxy servers are a complicated topic because depending on your corporate network configuration, different settings may be needed. If your company uses proxies with custom certificates, this might also interact with the previous topic. -Proxy settings can either be configured in the handle for a single request, or globally via environment variables. This is explained in detail on the curl website detail in the manual pages for [CURLOPT_PROXY](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html) and [libcurl-env](https://curl.haxx.se/libcurl/c/libcurl-env.html). +Proxy settings can either be configured in the handle for a single request, or globally via environment variables. This is explained in detail on the curl website detail in the manual pages for [CURLOPT_PROXY](https://curl.se/libcurl/c/CURLOPT_PROXY.html) and [libcurl-env](https://curl.se/libcurl/c/libcurl-env.html). If you know the address of your proxy server you can set it via the `curlopt_proxy` option: @@ -87,7 +87,7 @@ curl_options('proxy') ``` -To use a global proxy server for all your requests, you can set the environment variable `http_proxy` (lowercase!) or `https_proxy` or `ALL_PROXY`. See [this page](https://curl.haxx.se/libcurl/c/libcurl-env.html) for details. This variable may be set or changed in R at runtime, for example: +To use a global proxy server for all your requests, you can set the environment variable `http_proxy` (lowercase!) or `https_proxy` or `ALL_PROXY`. See [this page](https://curl.se/libcurl/c/libcurl-env.html) for details. This variable may be set or changed in R at runtime, for example: ```r Sys.setenv(ALL_PROXY = "http://proxy.mycorp.com:8080") @@ -123,7 +123,7 @@ #> [1] "10.*;173.*;mail.mycorp.org;autodiscover.mycorp.org;ev.mycorp.org;ecms.mycorp.org" ``` -There are a few settings here, such as default proxy server and a list of hosts which do _not_ need proxying, usually hosts within the corporate intranet (these can probably be used in [`CURLOPT_NOPROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html)). +There are a few settings here, such as default proxy server and a list of hosts which do _not_ need proxying, usually hosts within the corporate intranet (these can probably be used in [`CURLOPT_NOPROXY`](https://curl.se/libcurl/c/CURLOPT_NOPROXY.html)). The most complicated case is when your network uses different proxy servers for different target urls. The `AutoConfigUrl` field above refers to a [proxy auto config](https://en.wikipedia.org/wiki/Proxy_auto-config) (PAC) script that Internet Explorer has to run to find out which proxy server it has to use for a given host. The `curl` package exposes another function which calls out to Internet Explorer do it's thing and tell us the appropriate proxy server for a given host: