]> granicus.if.org Git - curl/commitdiff
CURLOPT_ERRORBUFFER.3: Improve example
authorJay Satiro <raysatiro@yahoo.com>
Wed, 17 Jun 2015 06:25:51 +0000 (02:25 -0400)
committerJay Satiro <raysatiro@yahoo.com>
Wed, 17 Jun 2015 06:25:51 +0000 (02:25 -0400)
docs/libcurl/opts/CURLOPT_ERRORBUFFER.3

index 577202cfc6c5a67b48c82ca73bf6adc274eb39d1..24b405490770e7564d92403a2bd8902439259768 100644 (file)
@@ -51,15 +51,32 @@ All
 .nf
 curl = curl_easy_init();
 if(curl) {
-  char error[CURL_ERROR_SIZE]
+  CURLcode res;
+  char errbuf[CURL_ERROR_SIZE];
 
   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
 
   /* provide a buffer to store errors in */
-  curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
+  curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
 
-  /* Perform the request */
-  curl_easy_perform(curl);
+  /* set the error buffer as empty before performing a request */
+  errbuf[0] = 0;
+
+  /* perform the request */
+  res = curl_easy_perform(curl);
+
+  /* if the request did not complete correctly, show the error information.
+  if no detailed error information was written to errbuf show the more generic
+  information from curl_easy_strerror instead.
+  */
+  if(res != CURLE_OK) {
+    size_t len = strlen(errbuf);
+    fprintf(stderr, "\nlibcurl: (%d) ", res);
+    if(len)
+      fprintf(stderr, "%s%s", errbuf, ((errbuf[len - 1] != '\n') ? "\n" : ""));
+    else
+      fprintf(stderr, "%s\n", curl_easy_strerror(res));
+  }
 }
 .fi
 .SH AVAILABILITY