/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2012 Index Data
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
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);
}
*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;
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)
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, '/'))
{
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;