Skip to content

Commit 72f62f6

Browse files
committed
feat: exposed reuseAddr and ipv6Only options to QUICClient and QUICServer
1 parent 64d439a commit 72f62f6

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/QUICClient.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ class QUICClient extends EventTarget {
8080
config?: Partial<QUICConfig>;
8181
socket?: QUICSocket;
8282
resolveHostname?: (hostname: string) => Host | PromiseLike<Host>;
83+
reuseAddr?: boolean;
84+
ipv6Only?: boolean;
8385
reasonToCode?: StreamReasonToCode;
8486
codeToReason?: StreamCodeToReason;
8587
verifyCallback?: VerifyCallback;
@@ -98,6 +100,8 @@ class QUICClient extends EventTarget {
98100
config = {},
99101
socket,
100102
resolveHostname = utils.resolveHostname,
103+
reuseAddr,
104+
ipv6Only,
101105
reasonToCode,
102106
codeToReason,
103107
verifyCallback,
@@ -115,6 +119,8 @@ class QUICClient extends EventTarget {
115119
config?: Partial<QUICConfig>;
116120
socket?: QUICSocket;
117121
resolveHostname?: (hostname: string) => Host | PromiseLike<Host>;
122+
reuseAddr?: boolean;
123+
ipv6Only?: boolean;
118124
reasonToCode?: StreamReasonToCode;
119125
codeToReason?: StreamCodeToReason;
120126
verifyCallback?: VerifyCallback;
@@ -159,6 +165,8 @@ class QUICClient extends EventTarget {
159165
await socket.start({
160166
host: localHost_,
161167
port: localPort_,
168+
reuseAddr,
169+
ipv6Only,
162170
});
163171
} else {
164172
if (!socket[running]) {

src/QUICServer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,17 +177,19 @@ class QUICServer extends EventTarget {
177177
host = '::',
178178
port = 0,
179179
reuseAddr,
180+
ipv6Only,
180181
}: {
181182
host?: string;
182183
port?: number;
183184
reuseAddr?: boolean;
185+
ipv6Only?: boolean;
184186
} = {}) {
185187
let address: string;
186188
if (!this.isSocketShared) {
187189
address = utils.buildAddress(host, port);
188190
this.address = address;
189191
this.logger.info(`Start ${this.constructor.name} on ${address}`);
190-
await this.socket.start({ host, port, reuseAddr });
192+
await this.socket.start({ host, port, reuseAddr, ipv6Only });
191193
address = utils.buildAddress(this.socket.host, this.socket.port);
192194
} else {
193195
// If the socket is shared, it must already be started
@@ -197,11 +199,9 @@ class QUICServer extends EventTarget {
197199
address = utils.buildAddress(this.socket.host, this.socket.port);
198200
this.logger.info(`Start ${this.constructor.name} on ${address}`);
199201
}
200-
201202
// Register on all socket events
202203
this.socket.addEventListener('socketError', this.handleQUICSocketEvents);
203204
this.socket.addEventListener('socketStop', this.handleQUICSocketEvents);
204-
205205
this.logger.info(`Started ${this.constructor.name} on ${address}`);
206206
}
207207

0 commit comments

Comments
 (0)