diff options
Diffstat (limited to 'plugins/FTPFileYM/curl/docs/examples/chkspeed.c')
-rw-r--r-- | plugins/FTPFileYM/curl/docs/examples/chkspeed.c | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/plugins/FTPFileYM/curl/docs/examples/chkspeed.c b/plugins/FTPFileYM/curl/docs/examples/chkspeed.c deleted file mode 100644 index b5c397ab74..0000000000 --- a/plugins/FTPFileYM/curl/docs/examples/chkspeed.c +++ /dev/null @@ -1,176 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, 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. - * - ***************************************************************************/ -/* Example source code to show how the callback function can be used to - * download data into a chunk of memory instead of storing it in a file. - * After successful download we use curl_easy_getinfo() calls to get the - * amount of downloaded bytes, the time used for the whole download, and - * the average download speed. - * On Linux you can create the download test files with: - * dd if=/dev/urandom of=file_1M.bin bs=1M count=1 - * - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> - -#include <curl/curl.h> - -#define URL_BASE "http://speedtest.your.domain/" -#define URL_1M URL_BASE "file_1M.bin" -#define URL_2M URL_BASE "file_2M.bin" -#define URL_5M URL_BASE "file_5M.bin" -#define URL_10M URL_BASE "file_10M.bin" -#define URL_20M URL_BASE "file_20M.bin" -#define URL_50M URL_BASE "file_50M.bin" -#define URL_100M URL_BASE "file_100M.bin" - -#define CHKSPEED_VERSION "1.0" - -static size_t WriteCallback(void *ptr, size_t size, size_t nmemb, void *data) -{ - /* we are not interested in the downloaded bytes itself, - so we only return the size we would have saved ... */ - (void)ptr; /* unused */ - (void)data; /* unused */ - return (size_t)(size * nmemb); -} - -int main(int argc, char *argv[]) -{ - CURL *curl_handle; - CURLcode res; - int prtsep = 0, prttime = 0; - const char *url = URL_1M; - char *appname = argv[0]; - - if (argc > 1) { - /* parse input parameters */ - for (argc--, argv++; *argv; argc--, argv++) { - if (strncasecmp(*argv, "-", 1) == 0) { - if (strncasecmp(*argv, "-H", 2) == 0) { - fprintf(stderr, - "\rUsage: %s [-m=1|2|5|10|20|50|100] [-t] [-x] [url]\n", - appname); - exit(1); - } else if (strncasecmp(*argv, "-V", 2) == 0) { - fprintf(stderr, "\r%s %s - %s\n", - appname, CHKSPEED_VERSION, curl_version()); - exit(1); - } else if (strncasecmp(*argv, "-X", 2) == 0) { - prtsep = 1; - } else if (strncasecmp(*argv, "-T", 2) == 0) { - prttime = 1; - } else if (strncasecmp(*argv, "-M=", 3) == 0) { - long m = strtol((*argv)+3, NULL, 10); - switch(m) { - case 1: url = URL_1M; - break; - case 2: url = URL_2M; - break; - case 5: url = URL_5M; - break; - case 10: url = URL_10M; - break; - case 20: url = URL_20M; - break; - case 50: url = URL_50M; - break; - case 100: url = URL_100M; - break; - default: fprintf(stderr, "\r%s: invalid parameter %s\n", - appname, *argv + 3); - exit(1); - } - } else { - fprintf(stderr, "\r%s: invalid or unknown option %s\n", - appname, *argv); - exit(1); - } - } else { - url = *argv; - } - } - } - - /* print separator line */ - if (prtsep) { - printf("-------------------------------------------------\n"); - } - /* print localtime */ - if (prttime) { - time_t t = time(NULL); - printf("Localtime: %s", ctime(&t)); - } - - /* init libcurl */ - curl_global_init(CURL_GLOBAL_ALL); - - /* init the curl session */ - curl_handle = curl_easy_init(); - - /* specify URL to get */ - curl_easy_setopt(curl_handle, CURLOPT_URL, url); - - /* send all data to this function */ - curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteCallback); - - /* some servers don't like requests that are made without a user-agent - field, so we provide one */ - curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, - "libcurl-speedchecker/" CHKSPEED_VERSION); - - /* get it! */ - res = curl_easy_perform(curl_handle); - - if(CURLE_OK == res) { - double val; - - /* check for bytes downloaded */ - res = curl_easy_getinfo(curl_handle, CURLINFO_SIZE_DOWNLOAD, &val); - if((CURLE_OK == res) && (val>0)) - printf("Data downloaded: %0.0f bytes.\n", val); - - /* check for total download time */ - res = curl_easy_getinfo(curl_handle, CURLINFO_TOTAL_TIME, &val); - if((CURLE_OK == res) && (val>0)) - printf("Total download time: %0.3f sec.\n", val); - - /* check for average download speed */ - res = curl_easy_getinfo(curl_handle, CURLINFO_SPEED_DOWNLOAD, &val); - if((CURLE_OK == res) && (val>0)) - printf("Average download speed: %0.3f kbyte/sec.\n", val / 1024); - - } else { - fprintf(stderr, "Error while fetching '%s' : %s\n", - url, curl_easy_strerror(res)); - } - - /* cleanup curl stuff */ - curl_easy_cleanup(curl_handle); - - /* we're done with libcurl, so clean it up */ - curl_global_cleanup(); - - return 0; -} |