Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcfe5f40

Browse files
committed
Merge pull requestAsyncHttpClient#1122 from elrodro83/addressOverride
Allow AhcEndpoint address override in grizzly provider
2 parents170dc6e +2fd3a70 commitcfe5f40

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

‎src/main/java/com/ning/http/client/providers/grizzly/ConnectionManager.java‎

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,12 @@ void openAsync(final Request request,
129129
port =getPort(scheme,uri.getPort());
130130
}
131131

132-
finalStringpartitionId =getPartitionId(request,proxy);
132+
finalStringpartitionId =getPartitionId(request.getInetAddress(),request,proxy);
133133
Endpointendpoint =endpointMap.get(partitionId);
134134
if (endpoint ==null) {
135135
finalbooleanisSecure =Utils.isSecure(scheme);
136136
endpoint =newAhcEndpoint(partitionId,
137-
isSecure,host,port,request.getLocalAddress(),
137+
isSecure,request.getInetAddress(),host,port,request.getLocalAddress(),
138138
defaultConnectionHandler);
139139

140140
endpointMap.put(partitionId,endpoint);
@@ -164,11 +164,11 @@ Connection openSync(final Request request)
164164

165165
finalbooleanisSecure =Utils.isSecure(scheme);
166166

167-
finalStringpartitionId =getPartitionId(request,proxy);
167+
finalStringpartitionId =getPartitionId(request.getInetAddress(),request,proxy);
168168
Endpointendpoint =endpointMap.get(partitionId);
169169
if (endpoint ==null) {
170170
endpoint =newAhcEndpoint(partitionId,
171-
isSecure,host,port,request.getLocalAddress(),
171+
isSecure,request.getInetAddress(),host,port,request.getLocalAddress(),
172172
defaultConnectionHandler);
173173

174174
endpointMap.put(partitionId,endpoint);
@@ -219,10 +219,11 @@ static boolean isKeepAlive(final Connection connection) {
219219
return !IS_NOT_KEEP_ALIVE.isSet(connection);
220220
}
221221

222-
privatestaticStringgetPartitionId(Requestrequest,
222+
privatestaticStringgetPartitionId(InetAddressoverrideAddress,Requestrequest,
223223
ProxyServerproxyServer) {
224-
returnrequest.getConnectionPoolPartitioning()
225-
.getPartitionKey(request.getUri(),proxyServer).toString();
224+
return (overrideAddress !=null ?overrideAddress.toString() +"_" :"") +
225+
request.getConnectionPoolPartitioning()
226+
.getPartitionKey(request.getUri(),proxyServer).toString();
226227
}
227228

228229
privatestaticintgetPort(finalStringscheme,finalintp) {
@@ -244,19 +245,21 @@ private class AhcEndpoint extends Endpoint<SocketAddress> {
244245

245246
privatefinalStringpartitionId;
246247
privatefinalbooleanisSecure;
248+
privatefinalInetAddressremoteOverrideAddress;
247249
privatefinalStringhost;
248250
privatefinalintport;
249251
privatefinalInetAddresslocalAddress;
250252
privatefinalConnectorHandler<SocketAddress>connectorHandler;
251253

252254
privateAhcEndpoint(finalStringpartitionId,
253255
finalbooleanisSecure,
254-
finalStringhost,finalintport,
256+
finalInetAddressremoteOverrideAddress,finalStringhost,finalintport,
255257
finalInetAddresslocalAddress,
256258
finalConnectorHandler<SocketAddress>connectorHandler) {
257259

258260
this.partitionId =partitionId;
259261
this.isSecure =isSecure;
262+
this.remoteOverrideAddress =remoteOverrideAddress;
260263
this.host =host;
261264
this.port =port;
262265
this.localAddress =localAddress;
@@ -275,12 +278,19 @@ public Object getId() {
275278
@Override
276279
publicGrizzlyFuture<Connection>connect() {
277280
return (GrizzlyFuture<Connection>)connectorHandler.connect(
278-
newInetSocketAddress(host,port),
281+
buildRemoteSocketAddress(),
279282
localAddress !=null
280283
?newInetSocketAddress(localAddress,0)
281284
:null);
282285
}
283286

287+
privateInetSocketAddressbuildRemoteSocketAddress()
288+
{
289+
returnremoteOverrideAddress !=null
290+
?newInetSocketAddress(remoteOverrideAddress,port)
291+
:newInetSocketAddress(host,port);
292+
}
293+
284294
@Override
285295
protectedvoidonConnect(finalConnectionconnection,
286296
finalSingleEndpointPool<SocketAddress>pool) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp