mirror of
https://github.com/EvernodeXRPL/hpcore.git
synced 2026-04-29 15:37:59 +00:00
Specify environment variables to contract binary (#355)
This commit is contained in:
@@ -210,6 +210,12 @@ namespace sc
|
||||
execv_args[j] = conf::cfg.contract.runtime_binexec_args[i].data();
|
||||
execv_args[len - 1] = NULL;
|
||||
|
||||
len = conf::cfg.contract.runtime_env_args.size() + 1;
|
||||
char *env_args[len];
|
||||
for (int i = 0; i < conf::cfg.contract.runtime_env_args.size(); i++)
|
||||
env_args[i] = conf::cfg.contract.runtime_env_args[i].data();
|
||||
env_args[len - 1] = NULL;
|
||||
|
||||
if (chdir(ctx.working_dir.c_str()) == -1)
|
||||
{
|
||||
std::cerr << errno << ": Contract process chdir failed." << (ctx.args.readonly ? " (rdonly)" : "") << "\n";
|
||||
@@ -224,8 +230,8 @@ namespace sc
|
||||
exit(1);
|
||||
}
|
||||
|
||||
execv(execv_args[0], execv_args);
|
||||
std::cerr << errno << ": Contract process execv failed." << (ctx.args.readonly ? " (rdonly)" : "") << "\n";
|
||||
execve(execv_args[0], execv_args, env_args);
|
||||
std::cerr << errno << ": Contract process execve failed." << (ctx.args.readonly ? " (rdonly)" : "") << "\n";
|
||||
exit(1);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user