Browse Source

Use curl

pull/4/head
jl777 6 years ago
parent
commit
547d76bf71
  1. 92
      src/cc/dapps/oraclefeed.cpp

92
src/cc/dapps/oraclefeed.cpp

@ -16,14 +16,98 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "../../komodo_cJSON.c"
#include "../../komodo_bitcoind.h"
#define issue_curl(url,cmdstr) bitcoind_RPC(0,(char *)"curl",(char *)(url),0,0,(char *)(cmdstr))
char *OS_nonportable_path(char *str)
{
int32_t i;
for (i=0; str[i]!=0; i++)
if ( str[i] == '/' )
str[i] = '\\';
return(str);
}
char *OS_portable_path(char *str)
{
#ifdef _WIN32
return(OS_nonportable_path(str));
#else
#ifdef __PNACL
/*int32_t i,n;
if ( str[0] == '/' )
return(str);
else
{
n = (int32_t)strlen(str);
for (i=n; i>0; i--)
str[i] = str[i-1];
str[0] = '/';
str[n+1] = 0;
}*/
#endif
return(str);
#endif
}
void *OS_loadfile(char *fname,uint8_t **bufp,long *lenp,long *allocsizep)
{
FILE *fp;
long filesize,buflen = *allocsizep;
uint8_t *buf = *bufp;
*lenp = 0;
if ( (fp= fopen(OS_compatible_path(fname),"rb")) != 0 )
{
fseek(fp,0,SEEK_END);
filesize = ftell(fp);
if ( filesize == 0 )
{
fclose(fp);
*lenp = 0;
printf("OS_loadfile null size.(%s)\n",fname);
return(0);
}
if ( filesize > buflen )
{
*allocsizep = filesize;
*bufp = buf = (uint8_t *)realloc(buf,(long)*allocsizep+64);
}
rewind(fp);
if ( buf == 0 )
printf("Null buf ???\n");
else
{
if ( fread(buf,1,(long)filesize,fp) != (unsigned long)filesize )
printf("error reading filesize.%ld\n",(long)filesize);
buf[filesize] = 0;
}
fclose(fp);
*lenp = filesize;
//printf("loaded.(%s)\n",buf);
} //else printf("OS_loadfile couldnt load.(%s)\n",fname);
return(buf);
}
void *OS_filestr(long *allocsizep,char *_fname)
{
long filesize = 0; char *fname,*buf = 0; void *retptr;
*allocsizep = 0;
fname = malloc(strlen(_fname)+1);
strcpy(fname,_fname);
retptr = OS_loadfile(fname,&buf,&filesize,allocsizep);
free(fname);
return(retptr);
}
char *issue_curl(char *url)
{
long fsize; char curlstr[1024],*fname = "/tmp/oraclefeed.json"
sprintf(curlstr,"curl --url \"%s\" > %s",url);
system(curlstr);
return(OS_filestr(&fsize,fname));
}
cJSON *url_json(char *url)
{
char *jsonstr; cJSON *json = 0;
cJSON *json = 0;
if ( (jsonstr= issue_curl(url)) != 0 )
{
printf("(%s) -> (%s)\n",url,jsonstr);

Loading…
Cancel
Save