Return to testminiwget.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpd / miniupnpc / src |
1.1 ! misho 1: /* $Id: testminiwget.c,v 1.6 2017/11/02 16:52:37 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: