X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fyaz-url.c;h=7a78e6755818d14519174fa73b3ece9e7dfbd948;hp=56f152b4cc6a50aac40e519f0fa1d1c35baec3b8;hb=ce627148dbba2878565b8d9da33f6b25f33da4bd;hpb=6d8c5abbb0477835de7e1fcca7915b2f952c3c9f diff --git a/util/yaz-url.c b/util/yaz-url.c index 56f152b..7a78e67 100644 --- a/util/yaz-url.c +++ b/util/yaz-url.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2012 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -21,7 +21,9 @@ static void usage(void) printf(" -m method Sets HTTP method\n"); printf(" -O fname Writes HTTP content to file\n"); printf(" -p fname POSTs file at following url\n"); + printf(" -R num Set maximum number of HTTP redirects\n"); printf(" -u user/password Sets Basic HTTP auth\n"); + printf(" -v Verbose\n"); printf(" -x proxy Sets HTTP proxy\n"); exit(1); } @@ -43,9 +45,15 @@ static char *get_file(const char *fname, size_t *len) *len = ftell(inf); if (*len) /* zero length not considered an error */ { + size_t r; buf = xmalloc(*len); fseek(inf, 0L, SEEK_SET); - (void) fread(buf, 1, *len, inf); + r = fread(buf, 1, *len, inf); + if (r != *len) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "short fread of %s", fname); + exit(1); + } } fclose(inf); return buf; @@ -66,7 +74,7 @@ int main(int argc, char **argv) int no_urls = 0; const char *outfname = 0; - while ((ret = options("hH:m:O:p:u:x:", argv, argc, &arg)) + while ((ret = options("h{help}H:m:O:p:R{max-redirs}:u:vx:", argv, argc, &arg)) != YAZ_OPTIONS_EOF) { switch (ret) @@ -103,6 +111,9 @@ int main(int argc, char **argv) post_buf = get_file(arg, &post_len); method = "POST"; break; + case 'R': + yaz_url_set_max_redirects(p, atoi(arg)); + break; case 'u': if (strchr(arg, '/')) { @@ -117,6 +128,9 @@ int main(int argc, char **argv) else z_HTTP_header_add_basic_auth(odr, &http_headers, arg, 0); break; + case 'v': + yaz_url_set_verbose(p, 1); + break; case 'x': yaz_url_set_proxy(p, arg); break;