Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f5c0e28
http2: allow Host in HTTP/2 requests
mildsunrise Aug 7, 2020
0e30c5b
http2: use and support non-empty DATA frame with END_STREAM flag
clshortfuse Jun 14, 2020
92167e2
doc: fix broken links in commit-queue.md
lpinca Aug 15, 2020
8b818cf
build: add CODEOWNERS linter action
mmarchini Aug 11, 2020
1e6e5c3
quic: resolve minor TODO in QuicSocket
jasnell Aug 6, 2020
34165f0
quic: resolve some minor TODOs
jasnell Aug 7, 2020
344c5e4
quic: limit push check to http/3
jasnell Aug 7, 2020
10d5047
quic: fixup set_socket, fix skipped test
jasnell Aug 7, 2020
442968c
quic: check setSocket natRebinding argument, extend test
jasnell Aug 7, 2020
c17eaa3
quic: add natRebinding argument to docs
jasnell Aug 7, 2020
2405922
quic: fixup session ticket app data todo comments
jasnell Aug 7, 2020
19e712b
quic: resolve InitializeSecureContext TODO comment
jasnell Aug 7, 2020
94aa291
quic: clarify TODO statements
jasnell Aug 10, 2020
bfc3535
quic: consolidate stats collecting in QuicSession
jasnell Aug 10, 2020
1c14810
src: allow instances of net.BlockList to be created internally
jasnell Aug 11, 2020
c855c3e
quic: use net.BlockList for limiting access to a QuicSocket
jasnell Aug 11, 2020
5835367
meta: fix codeowners docs path
mmarchini Aug 17, 2020
81df668
worker: do not crash when JSTransferable lists untransferable value
addaleax Aug 13, 2020
0eca660
tools: update ESLint to 7.7.0
cjihrig Aug 15, 2020
c62cf1d
doc: edit filehandle.close() entry in fs.md
Trott Aug 14, 2020
6726246
lib: allow to validate enums with validateOneOf
lundibundi Jun 26, 2020
15fdd98
doc,lib: remove unused error code
Trott Aug 15, 2020
aa5361c
test: convert assertion that always fails to assert.fail()
Trott Aug 16, 2020
60d572c
doc: remove "is recommended from crypto legacy API text
Trott Aug 9, 2020
ca5ff72
doc: deprecate (doc-only) crypto.Certificate()
Trott Aug 16, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
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: #34741
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
jasnell committed Aug 17, 2020
commit 1c14810edc68cc460d32da80fc52284c079d20ff
9 changes: 7 additions & 2 deletions lib/internal/blocklist.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,13 @@ const {
} = require('internal/errors').codes;

class BlockList {
constructor() {
this[kHandle] = new BlockListHandle();
constructor(handle = new BlockListHandle()) {
// The handle argument is an intentionally undocumented
// internal API. User code will not be able to create
// a BlockListHandle object directly.
if (!(handle instanceof BlockListHandle))
throw new ERR_INVALID_ARG_TYPE('handle', 'BlockListHandle', handle);
this[kHandle] = handle;
this[kHandle][owner_symbol] = this;
}

Expand Down
2 changes: 2 additions & 0 deletions src/env.h
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ constexpr size_t kFsStatsBufferLength =
V(asn1curve_string, "asn1Curve") \
V(async_ids_stack_string, "async_ids_stack") \
V(bits_string, "bits") \
V(block_list_string, "blockList") \
V(buffer_string, "buffer") \
V(bytes_parsed_string, "bytesParsed") \
V(bytes_read_string, "bytesRead") \
Expand Down Expand Up @@ -423,6 +424,7 @@ constexpr size_t kFsStatsBufferLength =
V(async_wrap_object_ctor_template, v8::FunctionTemplate) \
V(base_object_ctor_template, v8::FunctionTemplate) \
V(binding_data_ctor_template, v8::FunctionTemplate) \
V(blocklist_instance_template, v8::ObjectTemplate) \
V(compiled_fn_entry_template, v8::ObjectTemplate) \
V(dir_instance_template, v8::ObjectTemplate) \
V(fd_constructor_template, v8::ObjectTemplate) \
Expand Down
14 changes: 14 additions & 0 deletions src/node_sockaddr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down Expand Up @@ -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();

Expand Down
1 change: 1 addition & 0 deletions src/node_sockaddr.h
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ class SocketAddressBlockListWrap :
v8::Local<v8::Context> context,
void* priv);

static BaseObjectPtr<SocketAddressBlockListWrap> New(Environment* env);
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
static void AddAddress(const v8::FunctionCallbackInfo<v8::Value>& args);
static void AddRange(const v8::FunctionCallbackInfo<v8::Value>& args);
Expand Down
1 change: 1 addition & 0 deletions tools/doc/type-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ const customTypesMap = {
'require': 'modules.html#modules_require_id',

'Handle': 'net.html#net_server_listen_handle_backlog_callback',
'net.BlockList': 'net.html#net_class_net_blocklist',
'net.Server': 'net.html#net_class_net_server',
'net.Socket': 'net.html#net_class_net_socket',

Expand Down