Skip to content

Commit

Permalink
src: expose ability to set options
Browse files Browse the repository at this point in the history
  • Loading branch information
codebytere committed Nov 13, 2019
1 parent 31ea341 commit a3eb3b2
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 12 deletions.
16 changes: 10 additions & 6 deletions src/node.cc
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,6 @@
namespace node {

using native_module::NativeModuleEnv;
using options_parser::kAllowedInEnvironment;
using options_parser::kDisallowedInEnvironment;

using v8::Boolean;
using v8::EscapableHandleScope;
Expand Down Expand Up @@ -678,7 +676,7 @@ void ResetStdio() {
int ProcessGlobalArgs(std::vector<std::string>* args,
std::vector<std::string>* exec_args,
std::vector<std::string>* errors,
bool is_env) {
OptionEnvvarSettings settings) {
// Parse a few arguments which are specific to Node.
std::vector<std::string> v8_args;

Expand All @@ -688,7 +686,7 @@ int ProcessGlobalArgs(std::vector<std::string>* args,
exec_args,
&v8_args,
per_process::cli_options.get(),
is_env ? kAllowedInEnvironment : kDisallowedInEnvironment,
settings,
errors);

if (!errors->empty()) return 9;
Expand Down Expand Up @@ -850,12 +848,18 @@ int InitializeNodeWithArgs(std::vector<std::string>* argv,
return 9;
}

const int exit_code = ProcessGlobalArgs(&env_argv, nullptr, errors, true);
const int exit_code = ProcessGlobalArgs(&env_argv,
nullptr,
errors,
kAllowedInEnvironment);
if (exit_code != 0) return exit_code;
}
#endif

const int exit_code = ProcessGlobalArgs(argv, exec_argv, errors, false);
const int exit_code = ProcessGlobalArgs(argv,
exec_argv,
errors,
kDisallowedInEnvironment);
if (exit_code != 0) return exit_code;

// Set the process.title immediately after processing argv if --title is set.
Expand Down
10 changes: 10 additions & 0 deletions src/node.h
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,16 @@ NODE_EXTERN void Init(int* argc,
int* exec_argc,
const char*** exec_argv);

enum OptionEnvvarSettings {
kAllowedInEnvironment,
kDisallowedInEnvironment
};

NODE_EXTERN int ProcessGlobalArgs(std::vector<std::string>* args,
std::vector<std::string>* exec_args,
std::vector<std::string>* errors,
OptionEnvvarSettings settings);

class NodeArrayBufferAllocator;

// An ArrayBuffer::Allocator class with some Node.js-specific tweaks. If you do
Expand Down
5 changes: 0 additions & 5 deletions src/node_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -247,11 +247,6 @@ HostPort SplitHostPort(const std::string& arg,
std::vector<std::string>* errors);
void GetOptions(const v8::FunctionCallbackInfo<v8::Value>& args);

enum OptionEnvvarSettings {
kAllowedInEnvironment,
kDisallowedInEnvironment
};

enum OptionType {
kNoOp,
kV8Option,
Expand Down
2 changes: 1 addition & 1 deletion src/node_worker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#include <string>
#include <vector>

using node::options_parser::kDisallowedInEnvironment;
using node::kDisallowedInEnvironment;
using v8::Array;
using v8::ArrayBuffer;
using v8::Boolean;
Expand Down

0 comments on commit a3eb3b2

Please sign in to comment.