1: /*
2: * Copyright (C) 2010 Martin Willi
3: * Copyright (C) 2010 revosec AG
4: *
5: * This program is free software; you can redistribute it and/or modify it
6: * under the terms of the GNU General Public License as published by the
7: * Free Software Foundation; either version 2 of the License, or (at your
8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13: * for more details.
14: */
15:
16: #include <stdio.h>
17: #include <unistd.h>
18:
19: #include <library.h>
20: #include <utils/debug.h>
21:
22: static int count = 0;
23:
24: static bool cb(void *userdata, chunk_t chunk)
25: {
26: if (write(1, chunk.ptr, chunk.len) == chunk.len)
27: {
28: count++;
29: return TRUE;
30: }
31: return FALSE;
32: }
33:
34: int main(int argc, char *argv[])
35: {
36: chunk_t res;
37:
38: library_init(NULL, "fetch");
39: atexit(library_deinit);
40: lib->plugins->load(lib->plugins, PLUGINS);
41:
42: if (argc != 3 || (!streq(argv[1], "a") && !streq(argv[1], "s")))
43: {
44: fprintf(stderr, "usage: %s a|s <url>\n", argv[0]);
45: return 1;
46: }
47: if (streq(argv[1], "a"))
48: {
49: if (lib->fetcher->fetch(lib->fetcher, argv[2], &res,
50: FETCH_END) == SUCCESS)
51: {
52: ignore_result(write(1, res.ptr, res.len));
53: free(res.ptr);
54: return 0;
55: }
56: }
57: else
58: {
59: if (lib->fetcher->fetch(lib->fetcher, argv[2], NULL,
60: FETCH_CALLBACK, cb, FETCH_END) == SUCCESS)
61: {
62: fprintf(stderr, "received %d chunks\n", count);
63: return 0;
64: }
65: }
66: return 1;
67: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>