sandboxed-api/oss-internship-2020/curl/examples
Christian Blichmann 51799f99ae Introduce a transitional logging utility library
Instead of calling `google::InitGoogleLogging()` directly, introduce an
indirection via a new utility library. After this change, Sandboxed API
should consistently use `sapi::InitLogging()` everywhere.

For now, `sapi::InitLogging()` simply calls its glog equivalent. However,
this enables us to migrate away from the gflags dependency and use Abseil
flags. Once a follow-up change lands, `sapi::InitLogging()` will instead
initialize the google logging library with flags defined from Aseil.

Later still, once Abseil releases logging, we can then drop the glog
dependency entirely.

PiperOrigin-RevId: 445363592
Change-Id: Ia23a7dc88b8ffe65a422ea4d5233bba7bdd1303a
2022-04-29 02:14:06 -07:00
..
CMakeLists.txt Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
example1.cc Introduce a transitional logging utility library 2022-04-29 02:14:06 -07:00
example2.cc Introduce a transitional logging utility library 2022-04-29 02:14:06 -07:00
example3.cc Introduce a transitional logging utility library 2022-04-29 02:14:06 -07:00
example4.cc Introduce a transitional logging utility library 2022-04-29 02:14:06 -07:00
example5.cc Introduce a transitional logging utility library 2022-04-29 02:14:06 -07:00
example6.cc Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
README.md Copybara import of the project: 2020-09-23 08:00:10 -07:00

LibCurl Sandbox Examples

Each example in this folder is the sandboxed version of a code snippet from this page on curl's website. These examples perform some basic tasks using libcurl, and can be useful both to understand how to use LibCurl Sandbox, but also to get an idea of how regular and sandboxed code compare to each other.

This is the list of the examples:

  • example1: sandboxed version of simple.c. Really simple HTTP request, downloads and prints out the page at example.com.
  • example2: sandboxed version of getinmemory.c. Same HTTP request as example1. The difference is that this example uses a callback to save the page directly in memory. Only the page size is printed out.
  • example3: sandboxed version of simplessl.c. HTTPS request of the example.com page, using SSL authentication. This script takes 4 arguments (SSL certificates file, SSL keys file, SSL keys password and CA certificates files), and prints out the page.
  • example4: sandboxed version of multi-poll.c. Same HTTP request as example1, with the addition of a polling method that can be used to track the status of the request. The page is printed out after it is downloaded.
  • example5: sandboxed version of multithread.c. Four HTTP request of the pages example.com, example.edu, example.net and example.org, performed at the same time using libcurl's multithreading methods. The pages are printed out.
  • example6: sandboxed version of simple.c. Performs the same tasks as example1, but Sandbox API Transactions are used to show how they can be used to perform a simple request.