This commit is contained in:
jl777
2016-12-01 17:15:20 -03:00
parent 8b8fbda46d
commit 347acd7f37

View File

@@ -1302,39 +1302,42 @@ void komodo_configfile(char *symbol,uint16_t port)
{ {
static char myusername[512],mypassword[8192]; static char myusername[512],mypassword[8192];
FILE *fp; uint8_t buf2[33]; char fname[512],buf[128],username[512],password[8192]; uint32_t crc,r,r2,i; FILE *fp; uint8_t buf2[33]; char fname[512],buf[128],username[512],password[8192]; uint32_t crc,r,r2,i;
r = (uint32_t)time(NULL); if ( symbol != 0 && port != 0 )
r2 = OS_milliseconds(); {
memcpy(buf,&r,sizeof(r)); r = (uint32_t)time(NULL);
memcpy(&buf[sizeof(r)],&r2,sizeof(r2)); r2 = OS_milliseconds();
memcpy(&buf[sizeof(r)+sizeof(r2)],symbol,strlen(symbol)); memcpy(buf,&r,sizeof(r));
crc = calc_crc32(0,(uint8_t *)buf,(int32_t)(sizeof(r)+sizeof(r2)+strlen(symbol))); memcpy(&buf[sizeof(r)],&r2,sizeof(r2));
OS_randombytes(buf2,sizeof(buf2)); memcpy(&buf[sizeof(r)+sizeof(r2)],symbol,strlen(symbol));
for (i=0; i<sizeof(buf2); i++) crc = calc_crc32(0,(uint8_t *)buf,(int32_t)(sizeof(r)+sizeof(r2)+strlen(symbol)));
sprintf(&password[i*2],"%02x",buf2[i]); OS_randombytes(buf2,sizeof(buf2));
password[i*2] = 0; for (i=0; i<sizeof(buf2); i++)
sprintf(buf,"%s.conf",symbol); sprintf(&password[i*2],"%02x",buf2[i]);
BITCOIND_PORT = port; password[i*2] = 0;
sprintf(buf,"%s.conf",symbol);
BITCOIND_PORT = port;
#ifdef WIN32 #ifdef WIN32
sprintf(fname,"%s\\%s",GetDataDir(false).string().c_str(),buf); sprintf(fname,"%s\\%s",GetDataDir(false).string().c_str(),buf);
#else #else
sprintf(fname,"%s/%s",GetDataDir(false).string().c_str(),buf); sprintf(fname,"%s/%s",GetDataDir(false).string().c_str(),buf);
#endif #endif
if ( (fp= fopen(fname,"rb")) == 0 ) if ( (fp= fopen(fname,"rb")) == 0 )
{
if ( (fp= fopen(fname,"wb")) != 0 )
{ {
fprintf(fp,"rpcuser=user%u\nrpcpassword=pass%s\nrpcport=%u\nserver=1\ntxindex=1\n\n",crc,password,port); if ( (fp= fopen(fname,"wb")) != 0 )
{
fprintf(fp,"rpcuser=user%u\nrpcpassword=pass%s\nrpcport=%u\nserver=1\ntxindex=1\n\n",crc,password,port);
fclose(fp);
printf("Created (%s)\n",fname);
} else printf("Couldnt create (%s)\n",fname);
}
else
{
komodo_userpass(myusername,mypassword,fp);
mapArgs["-rpcpassword"] = mypassword;
mapArgs["-rpcusername"] = myusername;
//fprintf(stderr,"myusername.(%s)\n",myusername);
fclose(fp); fclose(fp);
printf("Created (%s)\n",fname); }
} else printf("Couldnt create (%s)\n",fname);
}
else
{
komodo_userpass(myusername,mypassword,fp);
mapArgs["-rpcpassword"] = mypassword;
mapArgs["-rpcusername"] = myusername;
//fprintf(stderr,"myusername.(%s)\n",myusername);
fclose(fp);
} }
strcpy(fname,GetDataDir().string().c_str()); strcpy(fname,GetDataDir().string().c_str());
#ifdef WIN32 #ifdef WIN32
@@ -1346,12 +1349,12 @@ void komodo_configfile(char *symbol,uint16_t port)
fname[strlen(fname)-1] = 0; fname[strlen(fname)-1] = 0;
strcat(fname,"komodo.conf"); strcat(fname,"komodo.conf");
#endif #endif
//printf("KOMODO.(%s)\n",fname);
if ( (fp= fopen(fname,"rb")) != 0 ) if ( (fp= fopen(fname,"rb")) != 0 )
{ {
komodo_userpass(username,password,fp); komodo_userpass(username,password,fp);
sprintf(KMDUSERPASS,"%s:%s",username,password); sprintf(KMDUSERPASS,"%s:%s",username,password);
fclose(fp); fclose(fp);
printf("KOMODO.(%s) -> userpass.(%s)\n",fname,KMDUSERPASS);
} else printf("couldnt open.(%s)\n",fname); } else printf("couldnt open.(%s)\n",fname);
} }
@@ -1461,13 +1464,13 @@ void komodo_args()
sleep(3); sleep(3);
} }
//fprintf(stderr,"Got datadir.(%s)\n",dirname); //fprintf(stderr,"Got datadir.(%s)\n",dirname);
komodo_configfile(ASSETCHAINS_SYMBOL,ASSETCHAINS_PORT + 1);
if ( ASSETCHAINS_SYMBOL[0] != 0 ) if ( ASSETCHAINS_SYMBOL[0] != 0 )
{ {
int32_t komodo_baseid(char *origbase); int32_t komodo_baseid(char *origbase);
extern int COINBASE_MATURITY; extern int COINBASE_MATURITY;
komodo_configfile(ASSETCHAINS_SYMBOL,ASSETCHAINS_PORT + 1);
COINBASE_MATURITY = 1; COINBASE_MATURITY = 1;
} } else komodo_configfile(0,0);
ASSETCHAINS_NOTARIES = GetArg("-ac_notaries",""); ASSETCHAINS_NOTARIES = GetArg("-ac_notaries","");
komodo_assetchain_pubkeys((char *)ASSETCHAINS_NOTARIES.c_str()); komodo_assetchain_pubkeys((char *)ASSETCHAINS_NOTARIES.c_str());
iguana_rwnum(1,magic,sizeof(ASSETCHAINS_MAGIC),(void *)&ASSETCHAINS_MAGIC); iguana_rwnum(1,magic,sizeof(ASSETCHAINS_MAGIC),(void *)&ASSETCHAINS_MAGIC);