diff options
author | Martin Willi <martin@revosec.ch> | 2011-04-01 11:40:18 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-04-04 08:48:27 +0200 |
commit | 4ceb31f9413db6ea5ec8e8c13c2cae97ed585c1e (patch) | |
tree | f80897ad28859c30bd3d0fc1885b91e525bf7fd0 /scripts | |
parent | f27705cea178ada29e7c570a56b46a9976351484 (diff) | |
download | strongswan-4ceb31f9413db6ea5ec8e8c13c2cae97ed585c1e.tar.bz2 strongswan-4ceb31f9413db6ea5ec8e8c13c2cae97ed585c1e.tar.xz |
Added alloc/stream options to fetcher test utility
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/fetch.c | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/scripts/fetch.c b/scripts/fetch.c index 57abce4ca..ad50d0cd6 100644 --- a/scripts/fetch.c +++ b/scripts/fetch.c @@ -19,6 +19,18 @@ #include <library.h> #include <debug.h> +static int count = 0; + +static bool cb(void *userdata, chunk_t chunk) +{ + if (write(1, chunk.ptr, chunk.len) == chunk.len) + { + count++; + return TRUE; + } + return FALSE; +} + int main(int argc, char *argv[]) { chunk_t res; @@ -27,15 +39,29 @@ int main(int argc, char *argv[]) atexit(library_deinit); lib->plugins->load(lib->plugins, NULL, PLUGINS); - if (argc != 2) + if (argc != 3 || (!streq(argv[1], "a") && !streq(argv[1], "s"))) + { + fprintf(stderr, "usage: %s a|s <url>\n", argv[0]); + return 1; + } + if (streq(argv[1], "a")) { - fprintf(stderr, "usage: %s <url>\n", argv[0]); + if (lib->fetcher->fetch(lib->fetcher, argv[2], &res, + FETCH_END) == SUCCESS) + { + ignore_result(write(1, res.ptr, res.len)); + free(res.ptr); + return 0; + } } - if (lib->fetcher->fetch(lib->fetcher, argv[1], &res, FETCH_END) == SUCCESS) + else { - ignore_result(write(1, res.ptr, res.len)); - free(res.ptr); - return 0; + if (lib->fetcher->fetch(lib->fetcher, argv[2], NULL, + FETCH_CALLBACK, cb, FETCH_END) == SUCCESS) + { + fprintf(stderr, "received %d chunks\n", count); + return 0; + } } return 1; } |