Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
97d4730
Implement more ServicePoint properties
liveans Jan 26, 2024
b9fdca4
Implement more properties
liveans Jan 31, 2024
69055bb
Make implementation correct
liveans Feb 1, 2024
3591f1a
Change UseNagleAlgorithm default to false
liveans Feb 1, 2024
d861319
Update src/libraries/System.Net.Requests/src/System/Net/HttpWebReques…
liveans Feb 5, 2024
340d7e4
Merge branch 'main' into httpwebrequest-implement-more-property
liveans Feb 5, 2024
043647c
Review feedback
liveans Feb 9, 2024
f843727
Start implement DnsRoundRobin
liveans Feb 9, 2024
f296718
Merge branch 'main' into httpwebrequest-implement-more-property
liveans Feb 9, 2024
c61e5ed
remove passing parameter over ctor for static prop
liveans Feb 9, 2024
30bd75c
Change DefaultMaximumErrorResponseLength default value to -1
liveans Feb 9, 2024
cf3003d
Update ServicePoint parameter passing, implement Certificate on Servi…
liveans Feb 11, 2024
33abd52
Change servicePoint to nullable parameter again and fix bind test
liveans Feb 12, 2024
3033c4a
Change static variable test to RemoteExecutor
liveans Feb 12, 2024
2ee83de
Fix bind throw test for linux and add async to remote executor
liveans Feb 12, 2024
3be4532
Update src/libraries/System.Net.Requests/src/System/Net/HttpWebReques…
liveans Feb 15, 2024
f1ea117
Review feedback
liveans Feb 15, 2024
9260105
Merge branch 'httpwebrequest-implement-more-property' of github.com:l…
liveans Feb 15, 2024
8d28f97
Skip throw bind on Linux
liveans Feb 16, 2024
970bbb1
Add disable reuseaddr
liveans Feb 18, 2024
d9ef66d
Revert "Add disable reuseaddr"
liveans Feb 18, 2024
67655be
some changes on tests
liveans Feb 18, 2024
86f156c
Refactor GetResponseStream method to use TruncatedReadStream
liveans Feb 20, 2024
ca6b379
Fix tests
liveans Feb 20, 2024
89040f6
Convert static property test to RemoteExecutor
liveans Feb 20, 2024
66f7abd
Delete unused NameResolution project from Requests csproj
liveans Feb 20, 2024
50a0f2f
Revert "Delete unused NameResolution project from Requests csproj"
liveans Feb 20, 2024
f9cb55f
Fix socket shutdown
liveans Feb 20, 2024
8c3f0c4
simple changes on test
liveans Feb 20, 2024
a5c136a
Change sync call inside RemoteExecutor
liveans Feb 22, 2024
1d9708d
Update src/libraries/System.Net.Requests/src/System/Net/HttpWebRespon…
liveans Feb 27, 2024
ab78cd1
Merge branch 'main' into httpwebrequest-implement-more-property
liveans Feb 27, 2024
06f8d95
Apply suggestions from code review
liveans Feb 28, 2024
05af2e0
Review feedback
liveans Feb 28, 2024
47d7f27
Change exception handling on remote executor test
liveans Feb 28, 2024
7aa734f
Change connection logic
liveans Feb 28, 2024
657a334
Revert "Change exception handling on remote executor test"
liveans Feb 28, 2024
06f1324
Add forgotten disposal
liveans Feb 28, 2024
520ba04
Revert "Change connection logic"
liveans Feb 28, 2024
a9368bf
Review feedback
liveans Feb 28, 2024
f8cdea3
Apply suggestions from code review
liveans Mar 1, 2024
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
Apply suggestions from code review
Co-authored-by: Miha Zupan <[email protected]>
  • Loading branch information
liveans and MihaZupan authored Feb 28, 2024
commit 06f8d95988907c33a68063d1ad1ea298e5e1a758
Original file line number Diff line number Diff line change
Expand Up @@ -1667,6 +1667,7 @@ private static HttpClient CreateHttpClient(HttpClientParameters parameters, Http
{
servicePoint.Certificate = cert;
}

if (rcvc is not null)
{
return rcvc(request!, cert, chain, errors);
Expand All @@ -1682,10 +1683,10 @@ private static HttpClient CreateHttpClient(HttpClientParameters parameters, Http

try
{
//Start dns resolve
IPAddress[] addresses = parameters.Async ?
await Dns.GetHostAddressesAsync(context.DnsEndPoint.Host, cancellationToken).ConfigureAwait(false) :
Dns.GetHostAddresses(context.DnsEndPoint.Host);

if (parameters.ServicePoint is { } servicePoint)
{
if (servicePoint.ReceiveBufferSize != -1)
Expand Down Expand Up @@ -1719,6 +1720,7 @@ static void BindHelper(ServicePoint servicePoint, IPAddress[] addresses, Socket
{
break;
}

try
{
socket.Bind(endPoint);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,42 +384,46 @@ private void CheckDisposed()
internal sealed class TruncatedReadStream(Stream innerStream, int maxSize) : Stream
{
public override bool CanRead => true;

public override bool CanSeek => false;

public override bool CanWrite => false;

public override long Length => throw new NotSupportedException();

public override long Position { get => throw new NotSupportedException(); set => throw new NotSupportedException(); }

public override void Flush() => innerStream.Flush();
public override Task FlushAsync(CancellationToken cancellationToken) => innerStream.FlushAsync(cancellationToken);

public override int Read(byte[] buffer, int offset, int count)
{
return Read(new Span<byte>(buffer, offset, count));
}

public override int Read(Span<byte> buffer)
{
int readBytes = innerStream.Read(buffer.Slice(0, Math.Min(buffer.Length, maxSize)));
maxSize -= readBytes;
return readBytes;
}

public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
{
return ReadAsync(new Memory<byte>(buffer, offset, count), cancellationToken).AsTask();
}

public override async ValueTask<int> ReadAsync(Memory<byte> buffer, CancellationToken cancellationToken = default)
{
int readBytes = await innerStream.ReadAsync(buffer.Slice(0, Math.Min(buffer.Length, maxSize)), cancellationToken)
.ConfigureAwait(false);
maxSize -= readBytes;
return readBytes;
}

public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException();
public override void SetLength(long value) => throw new NotSupportedException();
public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException();
public override ValueTask DisposeAsync() => base.DisposeAsync();

public override ValueTask DisposeAsync() => innerStream.DisposeAsync();

protected override void Dispose(bool disposing)
{
if (disposing)
Expand Down
9 changes: 4 additions & 5 deletions src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2188,6 +2188,7 @@ await LoopbackServer.CreateClientAndServerAsync(
int readLen = responseStream.Read(buffer, 0, buffer.Length);
Assert.Equal(5, readLen);
Assert.Equal(new string('a', 5), Encoding.UTF8.GetString(buffer[0..readLen]));
Assert.Equal(0, responseStream.Read(buffer));
}
},
async (server) =>
Expand All @@ -2199,7 +2200,7 @@ await server.AcceptConnectionAsync(
await tcs.Task;
});
});
}, (this is HttpWebRequestTest_Async).ToString()).Dispose();
}, IsAsync.ToString()).Dispose();
}

[Fact]
Expand All @@ -2222,8 +2223,7 @@ await LoopbackServer.CreateClientAndServerAsync(
async (uri) =>
{
HttpWebRequest request = WebRequest.CreateHttp(uri);
request.ServicePoint.BindIPEndPointDelegate =
(sp, ep, retryCount) => { return new IPEndPoint(IPAddress.Loopback, 27277); };
request.ServicePoint.BindIPEndPointDelegate = (_, _, _) => new IPEndPoint(IPAddress.Loopback, 27277);
using (var response = (HttpWebResponse)await GetResponseAsync(request))
{
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Expand Down Expand Up @@ -2260,8 +2260,7 @@ public async Task SendHttpRequest_BindIPEndPoint_Throws()
{
// URI shouldn't matter because it should throw exception before connection open.
HttpWebRequest request = WebRequest.CreateHttp(Configuration.Http.RemoteEchoServer);
request.ServicePoint.BindIPEndPointDelegate =
(sp, ep, retryCount) => { return (IPEndPoint)socket.LocalEndPoint!; };
request.ServicePoint.BindIPEndPointDelegate = (_, _, _) => (IPEndPoint)socket.LocalEndPoint!;
var exception = await Assert.ThrowsAsync<WebException>(() => GetResponseAsync(request));
Assert.IsType<OverflowException>(exception.InnerException?.InnerException);
}
Expand Down