diff options
author | James M Snell <jasnell@gmail.com> | 2020-08-12 01:45:26 +0300 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2020-08-17 21:31:26 +0300 |
commit | 1c14810edc68cc460d32da80fc52284c079d20ff (patch) | |
tree | b5a9fd5a39dd5b8955c3635799f35b36429eb453 /src/node_sockaddr.cc | |
parent | bfc35354c1290d7c1061c35fbd507aa129acc9d2 (diff) |
src: allow instances of net.BlockList to be created internally
Initial PR had it so that user code would create BlockList
instances. This sets it up so that instances can be created
internally by Node.js
PR-URL: https://github.com/nodejs/node/pull/34741
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src/node_sockaddr.cc')
-rw-r--r-- | src/node_sockaddr.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/node_sockaddr.cc b/src/node_sockaddr.cc index 8ba82ff6853..58d03eefa6e 100644 --- a/src/node_sockaddr.cc +++ b/src/node_sockaddr.cc @@ -524,6 +524,19 @@ SocketAddressBlockListWrap::SocketAddressBlockListWrap( MakeWeak(); } +BaseObjectPtr<SocketAddressBlockListWrap> SocketAddressBlockListWrap::New( + Environment* env) { + Local<Object> obj; + if (!env->blocklist_instance_template() + ->NewInstance(env->context()).ToLocal(&obj)) { + return {}; + } + BaseObjectPtr<SocketAddressBlockListWrap> wrap = + MakeDetachedBaseObject<SocketAddressBlockListWrap>(env, obj); + CHECK(wrap); + return wrap; +} + void SocketAddressBlockListWrap::New( const FunctionCallbackInfo<Value>& args) { CHECK(args.IsConstructCall()); @@ -673,6 +686,7 @@ void SocketAddressBlockListWrap::Initialize( env->SetProtoMethod(t, "check", SocketAddressBlockListWrap::Check); env->SetProtoMethod(t, "getRules", SocketAddressBlockListWrap::GetRules); + env->set_blocklist_instance_template(t->InstanceTemplate()); target->Set(env->context(), name, t->GetFunction(env->context()).ToLocalChecked()).FromJust(); |