static void usage(void)
{
printf("yaz-icu [options] url ..\n");
- printf(" -H name:value Set HTTP header (repeat if necessary)\n");
- printf(" -m method HTTP method\n");
- printf(" -p file POSTs file at following url\n");
- printf(" -u user/password Basic HTTP auth\n");
- printf(" -x proxy HTTP proxy\n");
+ printf(" -H name:value Sets HTTP header (repeat if necessary)\n");
+ 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(" -u user/password Sets Basic HTTP auth\n");
+ printf(" -x proxy Sets HTTP proxy\n");
exit(1);
}
{
buf = xmalloc(*len);
fseek(inf, 0L, SEEK_SET);
- fread(buf, 1, *len, inf);
+ (void) fread(buf, 1, *len, inf);
}
fclose(inf);
return buf;
ODR odr = odr_createmem(ODR_ENCODE);
int exit_code = 0;
int no_urls = 0;
+ const char *outfname = 0;
- while ((ret = options("hH:m:p:u:x:", argv, argc, &arg))
+ while ((ret = options("hH:m:O:p:u:x:", argv, argc, &arg))
!= YAZ_OPTIONS_EOF)
{
switch (ret)
case 'm':
method = arg;
break;
+ case 'O':
+ outfname = arg;
+ break;
case 'p':
xfree(post_buf);
post_buf = get_file(arg, &post_len);
exit_code = 1;
else
{
+ FILE *outf = stdout;
+ if (outfname)
+ {
+ outf = fopen(outfname, "w");
+ if (!outf)
+ {
+ yaz_log(YLOG_FATAL|YLOG_ERRNO, "open %s", outfname);
+ exit(1);
+ }
+ }
fwrite(http_response->content_buf, 1,
- http_response->content_len, stdout);
+ http_response->content_len, outf);
+ if (outfname)
+ fclose(outf);
}
no_urls++;
break;