Annotation of embedaddon/miniupnpc/src/testminiwget.c, revision 1.1.1.1
1.1 misho 1: /* $Id: testminiwget.c,v 1.7 2018/01/16 01:01:05 nanard Exp $ */
2: /* vim: tabstop=4 shiftwidth=4 noexpandtab
3: * Project : miniupnp
4: * Author : Thomas Bernard
5: * Copyright (c) 2005-2018 Thomas Bernard
6: * This software is subject to the conditions detailed in the
7: * LICENCE file provided in this distribution.
8: * */
9: #include <stdio.h>
10: #include <stdlib.h>
11: #include "miniwget.h"
12:
13: /**
14: * This program uses the miniwget / miniwget_getaddr function
15: * from miniwget.c in order to retrieve a web ressource using
16: * a GET HTTP method, and store it in a file.
17: */
18: int main(int argc, char * * argv)
19: {
20: void * data;
21: int size, writtensize;
22: FILE *f;
23: char addr[64];
24: int status_code = -1;
25:
26: if(argc < 3) {
27: fprintf(stderr, "Usage:\t%s url file\n", argv[0]);
28: fprintf(stderr, "Example:\t%s http://www.google.com/ out.html\n", argv[0]);
29: return 1;
30: }
31: data = miniwget_getaddr(argv[1], &size, addr, sizeof(addr), 0, &status_code);
32: if(!data || (status_code != 200)) {
33: if(data) free(data);
34: fprintf(stderr, "Error %d fetching %s\n", status_code, argv[1]);
35: return 1;
36: }
37: printf("local address : %s\n", addr);
38: printf("got %d bytes\n", size);
39: f = fopen(argv[2], "wb");
40: if(!f) {
41: fprintf(stderr, "Cannot open file %s for writing\n", argv[2]);
42: free(data);
43: return 1;
44: }
45: writtensize = fwrite(data, 1, size, f);
46: if(writtensize != size) {
47: fprintf(stderr, "Could only write %d bytes out of %d to %s\n",
48: writtensize, size, argv[2]);
49: } else {
50: printf("%d bytes written to %s\n", writtensize, argv[2]);
51: }
52: fclose(f);
53: free(data);
54: return 0;
55: }
56:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>