Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v11.6.0 proposal #25175

Merged
merged 59 commits into from
Dec 26, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
0057af2
deps: cherry-pick http_parser_set_max_header_size
cjihrig Nov 29, 2018
c80ac7f
src: add kUInteger parsing
mcollina Dec 18, 2018
edd8bd0
cli: add --max-http-header-size flag
cjihrig Dec 3, 2018
0cde1a4
lib: remove unused NativeModule/NativeModule wraps
joyeecheung Dec 8, 2018
7f34c76
src: remove internalBinding('config').warningFile
joyeecheung Dec 11, 2018
96bdd47
lib: refactor argument validation using validateString
ZYSzys Dec 11, 2018
7b2eefc
child_process: spawn ignores options in case args is undefined
eduardbme Dec 8, 2018
85a1369
perf_hooks: make GC tracking state per-Environment
addaleax Dec 14, 2018
74e08c0
vm: simplify Script constructor options validation
cjihrig Dec 15, 2018
09a99c6
src: mark some global state as const
addaleax Dec 14, 2018
ed3303b
tools: enable no-useless-constructor lint rule
cjihrig Dec 15, 2018
30b6155
test: merge test with unnecessary child process
sam-github Dec 13, 2018
4513516
build: add a space to clarify skipping crypto msg
danbev Dec 13, 2018
2516e9c
doc,lib,test: capitalize comment sentences
BridgeAR Dec 10, 2018
e340b8f
tls: re-define max supported version as 1.2
sam-github Nov 28, 2018
a4505c6
src: extract common Bind method
maclover7 Aug 14, 2018
9ad6bc2
test: remove magic numbers in test-gc-http-client-onerror
Trott Dec 10, 2018
3f82144
process: move environment variable proxy code into node_env_var.cc
joyeecheung Dec 15, 2018
4561e2c
doc: revise "Breaking Changes" section of Collaborator Guide
Trott Dec 16, 2018
a5bccc2
tools: make apilinks building more robust
joyeecheung Dec 13, 2018
5eb5d1d
test: test internal/util/types in vm
ZYSzys Dec 15, 2018
a9ab28d
assert: inspect getters
BridgeAR Dec 13, 2018
3e1fe19
test: add missing tmpdir.refresh() in recently-added test
Trott Dec 17, 2018
6f3b421
src: schedule destroy hooks in BeforeExit early during bootstrap
joyeecheung Dec 13, 2018
1f45b23
test: add signal check to test-esm-cjs-main
Trott Dec 16, 2018
4f28da8
worker: fix nullptr deref after MessagePort deser failure
addaleax Dec 16, 2018
155d1d5
deps: upgrade to libuv 1.24.1
cjihrig Dec 16, 2018
8279826
test: verify input flags
BridgeAR Dec 6, 2018
d09e333
test: remove obsolete eslint comments
cjihrig Dec 17, 2018
d1a98a8
events: simplify stack compare function
BridgeAR Nov 18, 2018
c6388ed
src: handle empty Maybe in uv binding initialize
addaleax Dec 17, 2018
7df59f8
vm: reuse validateString of internal/validators
ZYSzys Dec 16, 2018
fd0361b
src: mark options parsers as const
addaleax Dec 15, 2018
54e42f0
src: port GetLoadedLibraries for freebsd
gireeshpunathil Dec 18, 2018
2fc43fb
lib: switch to object spread where possible
BridgeAR Dec 18, 2018
ae50f48
http: add maxHeaderSize property
cjihrig Dec 6, 2018
add566e
os: use uv_os_gethostname() in hostname()
cjihrig Dec 18, 2018
b801b03
src: use std::vector for setting up process.execPath
addaleax Dec 15, 2018
9b38bbf
build: correct fi indentation in Makefile
danbev Dec 18, 2018
9b941da
tools: update certdata.txt
sam-github Dec 18, 2018
6f6f339
crypto: update root certificates
sam-github Dec 18, 2018
4ca0951
doc: describe root cert update process
sam-github Dec 18, 2018
6a690ee
doc: revise "Breaking Changes and Deprecations"
Trott Dec 18, 2018
175f7b6
test: remove unnecessary eslint-disable comments
Trott Dec 19, 2018
073a512
tools: report unused disable-directives for ESLint
Trott Dec 19, 2018
b3f45da
lib: make internal API warning more direct
Trott Dec 19, 2018
a28cae0
test: add hasCrypto check to common flags check
danbev Dec 20, 2018
db54531
test: remove Files: comment processing from Python test runner
Trott Dec 22, 2018
c6bfa66
buffer: simplify code
BridgeAR Dec 20, 2018
c9f809e
src: add DCHECK macros
kiyomizumia Nov 14, 2018
b78d487
doc: fix links in test/common/README.md
vsemozhetbyt Dec 21, 2018
3b53df0
crypto: add key object API
tniessen Sep 20, 2018
e6c1e8d
crypto: always accept certificates as public keys
tniessen Dec 19, 2018
c7fa132
tools: alphabetize IGNORED_SUITES in tools/test.py
Trott Dec 22, 2018
6557ea1
test: mark test-trace-events-api-worker-disabled flaky
Trott Dec 23, 2018
8ab0a48
tools: update ESLint to 5.11.0
cjihrig Dec 23, 2018
45d4851
test: fix test-tls-session-timeout
Trott Dec 23, 2018
e855018
deps: upgrade npm to 6.5.0
Nov 29, 2018
968e901
2018-12-26, Version 11.6.0 (Current)
MylesBorins Dec 21, 2018
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: extract common Bind method
`TCPWrap::Bind` and `TCPWrap::Bind6` share a large amount of
functionality, so a common `Bind` was extracted to remove duplication.

PR-URL: #22315
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
  • Loading branch information
maclover7 authored and MylesBorins committed Dec 25, 2018
commit a4505c698f94bde7e32848d06963e8fc38a31123
43 changes: 20 additions & 23 deletions src/tcp_wrap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -225,40 +225,28 @@ void TCPWrap::Open(const FunctionCallbackInfo<Value>& args) {
args.GetReturnValue().Set(err);
}


void TCPWrap::Bind(const FunctionCallbackInfo<Value>& args) {
template <typename T>
void TCPWrap::Bind(
const FunctionCallbackInfo<Value>& args,
int family,
std::function<int(const char* ip_address, int port, T* addr)> uv_ip_addr) {
TCPWrap* wrap;
ASSIGN_OR_RETURN_UNWRAP(&wrap,
args.Holder(),
args.GetReturnValue().Set(UV_EBADF));
Environment* env = wrap->env();
node::Utf8Value ip_address(env->isolate(), args[0]);
int port;
unsigned int flags = 0;
if (!args[1]->Int32Value(env->context()).To(&port)) return;
sockaddr_in addr;
int err = uv_ip4_addr(*ip_address, port, &addr);
if (err == 0) {
err = uv_tcp_bind(&wrap->handle_,
reinterpret_cast<const sockaddr*>(&addr),
0);
if (family == AF_INET6 &&
!args[2]->Uint32Value(env->context()).To(&flags)) {
return;
}
args.GetReturnValue().Set(err);
}

T addr;
int err = uv_ip_addr(*ip_address, port, &addr);

void TCPWrap::Bind6(const FunctionCallbackInfo<Value>& args) {
TCPWrap* wrap;
ASSIGN_OR_RETURN_UNWRAP(&wrap,
args.Holder(),
args.GetReturnValue().Set(UV_EBADF));
Environment* env = wrap->env();
node::Utf8Value ip6_address(env->isolate(), args[0]);
int port;
unsigned int flags;
if (!args[1]->Int32Value(env->context()).To(&port)) return;
if (!args[2]->Uint32Value(env->context()).To(&flags)) return;
sockaddr_in6 addr;
int err = uv_ip6_addr(*ip6_address, port, &addr);
if (err == 0) {
err = uv_tcp_bind(&wrap->handle_,
reinterpret_cast<const sockaddr*>(&addr),
Expand All @@ -267,6 +255,15 @@ void TCPWrap::Bind6(const FunctionCallbackInfo<Value>& args) {
args.GetReturnValue().Set(err);
}

void TCPWrap::Bind(const FunctionCallbackInfo<Value>& args) {
Bind<sockaddr_in>(args, AF_INET, uv_ip4_addr);
}


void TCPWrap::Bind6(const FunctionCallbackInfo<Value>& args) {
Bind<sockaddr_in6>(args, AF_INET6, uv_ip6_addr);
}


void TCPWrap::Listen(const FunctionCallbackInfo<Value>& args) {
TCPWrap* wrap;
Expand Down
5 changes: 5 additions & 0 deletions src/tcp_wrap.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,11 @@ class TCPWrap : public ConnectionWrap<TCPWrap, uv_tcp_t> {
static void Connect(const v8::FunctionCallbackInfo<v8::Value>& args,
std::function<int(const char* ip_address, T* addr)> uv_ip_addr);
static void Open(const v8::FunctionCallbackInfo<v8::Value>& args);
template <typename T>
static void Bind(
const v8::FunctionCallbackInfo<v8::Value>& args,
int family,
std::function<int(const char* ip_address, int port, T* addr)> uv_ip_addr);

#ifdef _WIN32
static void SetSimultaneousAccepts(
Expand Down