diff options
author | René Mayrhofer <rene@mayrhofer.eu.org> | 2011-05-19 13:41:58 +0200 |
---|---|---|
committer | René Mayrhofer <rene@mayrhofer.eu.org> | 2011-05-19 13:41:58 +0200 |
commit | b590992f735393c97489fce191e7810eaae4f6d7 (patch) | |
tree | 286595c4aa43dbf3d616d816e5fade6ac364771a /scripts/fetch.c | |
parent | 2fce29055b7b5bc2860d503d1ae822931f80b7aa (diff) | |
parent | 0a9d51a49042a68daa15b0c74a2b7f152f52606b (diff) | |
download | vyos-strongswan-b590992f735393c97489fce191e7810eaae4f6d7.tar.gz vyos-strongswan-b590992f735393c97489fce191e7810eaae4f6d7.zip |
Merge upstream version 4.5.2
Diffstat (limited to 'scripts/fetch.c')
-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; } |