You've already forked linux-packaging-mono
Imported Upstream version 5.2.0.175
Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
parent
4bdbaf4a88
commit
966bba02bb
@@ -1,93 +1,50 @@
|
||||

|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests.Tests", "tests\System.Net.Requests.Tests.csproj", "{851A40FE-7F07-415D-8592-5FE2096E84D3}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests.Tests", "tests\System.Net.Requests.Tests.csproj", "{E520B5FD-C6FF-46CF-8079-6C8098013EA3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{12C1E5BE-BB3B-4BE0-AE32-B12A31350D61}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C16D28FB-8C73-4572-A4C8-DBC4E9B4EE93}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C13A51C0-C98C-43A9-8635-C06AF3895A69}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests", "ref\System.Net.Requests.csproj", "{A9749593-5875-4880-99E8-41BD4796E92D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests", "src\System.Net.Requests.csproj", "{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{F86C715C-E37B-4853-869E-D696AB3DB057} = {F86C715C-E37B-4853-869E-D696AB3DB057}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests", "ref\System.Net.Requests.csproj", "{F86C715C-E37B-4853-869E-D696AB3DB057}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
|
||||
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
|
||||
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
|
||||
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{F86C715C-E37B-4853-869E-D696AB3DB057}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{F86C715C-E37B-4853-869E-D696AB3DB057}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{F86C715C-E37B-4853-869E-D696AB3DB057}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{F86C715C-E37B-4853-869E-D696AB3DB057}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{851A40FE-7F07-415D-8592-5FE2096E84D3} = {851A40FE-7F07-415D-8592-5FE2096E84D3}
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}
|
||||
{E520B5FD-C6FF-46CF-8079-6C8098013EA3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
|
||||
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD}
|
||||
{F86C715C-E37B-4853-869E-D696AB3DB057} = {2E666815-2EDB-464B-9DF6-380BF4789AD4}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
@@ -4,5 +4,6 @@
|
||||
<PropertyGroup>
|
||||
<AssemblyVersion>4.1.0.0</AssemblyVersion>
|
||||
<IsNETCoreApp>true</IsNETCoreApp>
|
||||
<IsUAP>true</IsUAP>
|
||||
</PropertyGroup>
|
||||
</Project>
|
@@ -1,6 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{F86C715C-E37B-4853-869E-D696AB3DB057}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Debug|AnyCPU'" />
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<BuildConfigurations>
|
||||
netcoreapp-Unix;
|
||||
netcoreapp-Windows_NT;
|
||||
net463-Windows_NT;
|
||||
uap-Windows_NT;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
@@ -1,64 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@@ -117,21 +58,9 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="NotSupported" xml:space="preserve">
|
||||
<value>This operation is not supported.</value>
|
||||
</data>
|
||||
<data name="net_unknown_prefix" xml:space="preserve">
|
||||
<value>The URI prefix is not recognized.</value>
|
||||
</data>
|
||||
<data name="net_headers_toolong" xml:space="preserve">
|
||||
<value>Header values cannot be longer than {0} characters.</value>
|
||||
</data>
|
||||
<data name="net_emptystringcall" xml:space="preserve">
|
||||
<value>The parameter '{0}' cannot be an empty string.</value>
|
||||
</data>
|
||||
<data name="net_headers_req" xml:space="preserve">
|
||||
<value> This collection holds response headers and cannot contain the specified request header.</value>
|
||||
</data>
|
||||
<data name="net_reqsubmitted" xml:space="preserve">
|
||||
<value>This operation cannot be performed after the request has been submitted.</value>
|
||||
</data>
|
||||
@@ -183,9 +112,6 @@
|
||||
<data name="net_webstatus_Timeout" xml:space="preserve">
|
||||
<value>The operation has timed out.</value>
|
||||
</data>
|
||||
<data name="net_proxyschemenotsupported" xml:space="preserve">
|
||||
<value>The ServicePointManager does not support proxies with the {0} scheme.</value>
|
||||
</data>
|
||||
<data name="net_baddate" xml:space="preserve">
|
||||
<value>The value of the date string in the header is invalid.</value>
|
||||
</data>
|
||||
@@ -228,9 +154,6 @@
|
||||
<data name="net_WebHeaderInvalidHeaderChars" xml:space="preserve">
|
||||
<value>Specified value has invalid HTTP Header characters.</value>
|
||||
</data>
|
||||
<data name="net_WebHeaderInvalidNonAsciiChars" xml:space="preserve">
|
||||
<value>Specified value has invalid non-ASCII characters.</value>
|
||||
</data>
|
||||
<data name="net_timeout" xml:space="preserve">
|
||||
<value>The operation has timed out.</value>
|
||||
</data>
|
||||
@@ -244,7 +167,7 @@
|
||||
<value>The server returned a status code outside the valid range of 100-599.</value>
|
||||
</data>
|
||||
<data name="net_io_timeout_use_gt_zero" xml:space="preserve">
|
||||
<value>Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value > 0.</value>
|
||||
<value>Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value > 0.</value>
|
||||
</data>
|
||||
<data name="net_ftp_servererror" xml:space="preserve">
|
||||
<value>The remote server returned an error: {0}.</value>
|
||||
|
@@ -6,20 +6,20 @@
|
||||
<RootNamespace>System.Net.Requests</RootNamespace>
|
||||
<AssemblyName>System.Net.Requests</AssemblyName>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<IsPartialFacadeAssembly Condition="'$(TargetGroup)' == 'net463'">true</IsPartialFacadeAssembly>
|
||||
<ResourcesSourceOutputDirectory Condition="'$(TargetGroup)' == 'net463'">None</ResourcesSourceOutputDirectory>
|
||||
<!-- Disable binplacing for now since we need to use the uapaot version of this assembly -->
|
||||
<BinPlaceILCInputFolder>false</BinPlaceILCInputFolder>
|
||||
</PropertyGroup>
|
||||
<!-- Help VS understand available configurations -->
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='net463-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='net463-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Release|AnyCPU'" />
|
||||
<ItemGroup>
|
||||
<Compile Include="FxCopBaseline.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'netcoreapp'">
|
||||
<ItemGroup>
|
||||
<Compile Include="System\Net\AuthenticationManager.cs" />
|
||||
<Compile Include="System\Net\Authorization.cs" />
|
||||
<Compile Include="System\Net\FileWebRequest.cs" />
|
||||
@@ -98,7 +98,7 @@
|
||||
<Link>Common\System\Threading\Tasks\TaskToApm.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' == 'true' And '$(TargetGroup)' == 'netcoreapp'">
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' == 'true'">
|
||||
<Compile Include="$(CommonPath)\Interop\Windows\wininet\Interop.wininet_errors.cs">
|
||||
<Link>Common\Interop\Windows\wininet\Interop.wininet_errors.cs</Link>
|
||||
</Compile>
|
||||
@@ -116,10 +116,6 @@
|
||||
</Compile>
|
||||
<Compile Include="System\Net\WebExceptionPal.Unix.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'net463'">
|
||||
<TargetingPackReference Include="mscorlib" />
|
||||
<TargetingPackReference Include="System" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.Win32.Primitives" />
|
||||
<Reference Include="System.Collections" />
|
||||
|
@@ -331,7 +331,7 @@ namespace System.Net
|
||||
PipelineInstruction result = QueueOrCreateDataConection(entry, response, timeout, ref stream, out isSocketReady);
|
||||
if (!isSocketReady)
|
||||
return result;
|
||||
// otheriwse we have a stream to create
|
||||
// otherwise we have a stream to create
|
||||
}
|
||||
//
|
||||
// This is part of the above case and it's all about giving data stream back
|
||||
@@ -1217,7 +1217,7 @@ namespace System.Net
|
||||
|
||||
if (responseString.Length > lineStart + 4)
|
||||
{
|
||||
// If the first three characters of the the response line currently being examined
|
||||
// If the first three characters of the response line currently being examined
|
||||
// match the status code, then if they are followed by a space, then we
|
||||
// have reached the end of the reply.
|
||||
if (responseString.Substring(lineStart, 3) == response.StatusCodeString)
|
||||
|
@@ -4,6 +4,7 @@
|
||||
|
||||
using System.IO;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.ExceptionServices;
|
||||
|
||||
namespace System.Net
|
||||
{
|
||||
@@ -255,8 +256,10 @@ namespace System.Net
|
||||
{
|
||||
object result = ((LazyAsyncResult)ar).InternalWaitForCompletion();
|
||||
|
||||
if (result is Exception)
|
||||
throw (Exception)result;
|
||||
if (result is Exception e)
|
||||
{
|
||||
ExceptionDispatchInfo.Capture(e).Throw();
|
||||
}
|
||||
|
||||
return (int)result;
|
||||
}
|
||||
|
@@ -8,8 +8,10 @@ using System.IO;
|
||||
using System.Net.Cache;
|
||||
using System.Net.Sockets;
|
||||
using System.Security;
|
||||
using System.Runtime.ExceptionServices;
|
||||
using System.Security.Authentication;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace System.Net
|
||||
@@ -1231,7 +1233,7 @@ namespace System.Net
|
||||
{
|
||||
if (_exception != null)
|
||||
{
|
||||
throw _exception;
|
||||
ExceptionDispatchInfo.Capture(_exception).Throw();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1643,17 +1645,7 @@ namespace System.Net
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_clientCertificates == null)
|
||||
{
|
||||
lock (_syncObject)
|
||||
{
|
||||
if (_clientCertificates == null)
|
||||
{
|
||||
_clientCertificates = new X509CertificateCollection();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _clientCertificates;
|
||||
return LazyInitializer.EnsureInitialized(ref _clientCertificates, ref _syncObject, () => new X509CertificateCollection());
|
||||
}
|
||||
set
|
||||
{
|
||||
|
@@ -17,9 +17,9 @@ namespace System.Net
|
||||
// Unfortunately, this property is not exposed in .NET Core, so it can't be changed
|
||||
// This will result in inefficient memory usage when sending (POST'ing) large
|
||||
// amounts of data to the server such as from a file stream.
|
||||
internal class RequestStream : Stream
|
||||
internal sealed class RequestStream : Stream
|
||||
{
|
||||
private MemoryStream _buffer = new MemoryStream();
|
||||
private readonly MemoryStream _buffer = new MemoryStream();
|
||||
|
||||
public RequestStream()
|
||||
{
|
||||
@@ -107,6 +107,16 @@ namespace System.Net
|
||||
return _buffer.WriteAsync(buffer, offset, count, cancellationToken);
|
||||
}
|
||||
|
||||
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState)
|
||||
{
|
||||
return _buffer.BeginWrite(buffer, offset, count, asyncCallback, asyncState);
|
||||
}
|
||||
|
||||
public override void EndWrite(IAsyncResult asyncResult)
|
||||
{
|
||||
_buffer.EndWrite(asyncResult);
|
||||
}
|
||||
|
||||
public ArraySegment<byte> GetBuffer()
|
||||
{
|
||||
ArraySegment<byte> bytes;
|
||||
|
@@ -3,6 +3,7 @@
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace System.Net
|
||||
{
|
||||
@@ -29,22 +30,7 @@ namespace System.Net
|
||||
{
|
||||
}
|
||||
|
||||
public static IWebProxy Get()
|
||||
{
|
||||
if (!s_systemWebProxyInitialized)
|
||||
{
|
||||
lock (s_lockObject)
|
||||
{
|
||||
if (!s_systemWebProxyInitialized)
|
||||
{
|
||||
s_systemWebProxy = new SystemWebProxy();
|
||||
s_systemWebProxyInitialized = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return s_systemWebProxy;
|
||||
}
|
||||
public static IWebProxy Get() => LazyInitializer.EnsureInitialized(ref s_systemWebProxy, ref s_systemWebProxyInitialized, ref s_lockObject, () => new SystemWebProxy());
|
||||
|
||||
public ICredentials Credentials
|
||||
{
|
||||
|
@@ -4,8 +4,6 @@
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
|
||||
@@ -31,21 +29,12 @@ namespace System.Net
|
||||
/// <summary>
|
||||
/// <para>The duration in milliseconds of timers in this queue.</para>
|
||||
/// </summary>
|
||||
internal int Duration
|
||||
{
|
||||
get
|
||||
{
|
||||
return _durationMilliseconds;
|
||||
}
|
||||
}
|
||||
internal int Duration => _durationMilliseconds;
|
||||
|
||||
/// <summary>
|
||||
/// <para>Creates and returns a handle to a new polled timer.</para>
|
||||
/// </summary>
|
||||
internal Timer CreateTimer()
|
||||
{
|
||||
return CreateTimer(null, null);
|
||||
}
|
||||
internal Timer CreateTimer() => CreateTimer(null, null);
|
||||
|
||||
/// <summary>
|
||||
/// <para>Creates and returns a handle to a new timer with attached context.</para>
|
||||
@@ -70,35 +59,17 @@ namespace System.Net
|
||||
/// <summary>
|
||||
/// <para>The duration in milliseconds of timer.</para>
|
||||
/// </summary>
|
||||
internal int Duration
|
||||
{
|
||||
get
|
||||
{
|
||||
return _durationMilliseconds;
|
||||
}
|
||||
}
|
||||
internal int Duration => _durationMilliseconds;
|
||||
|
||||
/// <summary>
|
||||
/// <para>The time (relative to Environment.TickCount) when the timer started.</para>
|
||||
/// </summary>
|
||||
internal int StartTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return _startTimeMilliseconds;
|
||||
}
|
||||
}
|
||||
internal int StartTime => _startTimeMilliseconds;
|
||||
|
||||
/// <summary>
|
||||
/// <para>The time (relative to Environment.TickCount) when the timer will expire.</para>
|
||||
/// </summary>
|
||||
internal int Expiration
|
||||
{
|
||||
get
|
||||
{
|
||||
return unchecked(_startTimeMilliseconds + _durationMilliseconds);
|
||||
}
|
||||
}
|
||||
internal int Expiration => unchecked(_startTimeMilliseconds + _durationMilliseconds);
|
||||
|
||||
/// <summary>
|
||||
/// <para>The amount of time left on the timer. 0 means it has fired. 1 means it has expired but
|
||||
@@ -135,10 +106,7 @@ namespace System.Net
|
||||
/// </summary>
|
||||
internal abstract bool HasExpired { get; }
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Cancel();
|
||||
}
|
||||
public void Dispose() => Cancel();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -146,23 +114,18 @@ namespace System.Net
|
||||
/// </summary>
|
||||
internal delegate void Callback(Timer timer, int timeNoticed, object context);
|
||||
|
||||
private const int c_ThreadIdleTimeoutMilliseconds = 30 * 1000;
|
||||
private const int c_CacheScanPerIterations = 32;
|
||||
private const int c_TickCountResolution = 15;
|
||||
private const int ThreadIdleTimeoutMilliseconds = 30 * 1000;
|
||||
private const int CacheScanPerIterations = 32;
|
||||
private const int TickCountResolution = 15;
|
||||
|
||||
private static LinkedList<WeakReference> s_Queues = new LinkedList<WeakReference>();
|
||||
private static LinkedList<WeakReference> s_NewQueues = new LinkedList<WeakReference>();
|
||||
private static int s_ThreadState = (int)TimerThreadState.Idle; // Really a TimerThreadState, but need an int for Interlocked.
|
||||
private static AutoResetEvent s_ThreadReadyEvent = new AutoResetEvent(false);
|
||||
private static ManualResetEvent s_ThreadShutdownEvent = new ManualResetEvent(false);
|
||||
private static WaitHandle[] s_ThreadEvents;
|
||||
private static int s_CacheScanIteration;
|
||||
private static Hashtable s_QueuesCache = new Hashtable();
|
||||
|
||||
static TimerThread()
|
||||
{
|
||||
s_ThreadEvents = new WaitHandle[] { s_ThreadShutdownEvent, s_ThreadReadyEvent };
|
||||
}
|
||||
private static readonly LinkedList<WeakReference> s_queues = new LinkedList<WeakReference>();
|
||||
private static readonly LinkedList<WeakReference> s_newQueues = new LinkedList<WeakReference>();
|
||||
private static int s_threadState = (int)TimerThreadState.Idle; // Really a TimerThreadState, but need an int for Interlocked.
|
||||
private static readonly AutoResetEvent s_threadReadyEvent = new AutoResetEvent(false);
|
||||
private static readonly ManualResetEvent s_threadShutdownEvent = new ManualResetEvent(false);
|
||||
private static readonly WaitHandle[] s_threadEvents = { s_threadShutdownEvent, s_threadReadyEvent };
|
||||
private static int s_cacheScanIteration;
|
||||
private static readonly Hashtable s_queuesCache = new Hashtable();
|
||||
|
||||
/// <summary>
|
||||
/// <para>The possible states of the timer thread.</para>
|
||||
@@ -190,33 +153,37 @@ namespace System.Net
|
||||
}
|
||||
|
||||
TimerQueue queue;
|
||||
WeakReference weakQueue = (WeakReference)s_QueuesCache[durationMilliseconds];
|
||||
object key = durationMilliseconds; // Box once.
|
||||
WeakReference weakQueue = (WeakReference)s_queuesCache[key];
|
||||
if (weakQueue == null || (queue = (TimerQueue)weakQueue.Target) == null)
|
||||
{
|
||||
lock (s_NewQueues)
|
||||
lock (s_newQueues)
|
||||
{
|
||||
weakQueue = (WeakReference)s_QueuesCache[durationMilliseconds];
|
||||
weakQueue = (WeakReference)s_queuesCache[key];
|
||||
if (weakQueue == null || (queue = (TimerQueue)weakQueue.Target) == null)
|
||||
{
|
||||
queue = new TimerQueue(durationMilliseconds);
|
||||
weakQueue = new WeakReference(queue);
|
||||
s_NewQueues.AddLast(weakQueue);
|
||||
s_QueuesCache[durationMilliseconds] = weakQueue;
|
||||
s_newQueues.AddLast(weakQueue);
|
||||
s_queuesCache[key] = weakQueue;
|
||||
|
||||
// Take advantage of this lock to periodically scan the table for garbage.
|
||||
if (++s_CacheScanIteration % c_CacheScanPerIterations == 0)
|
||||
if (++s_cacheScanIteration % CacheScanPerIterations == 0)
|
||||
{
|
||||
List<int> garbage = new List<int>();
|
||||
foreach (DictionaryEntry pair in s_QueuesCache)
|
||||
var garbage = new List<object>();
|
||||
// Manual use of IDictionaryEnumerator instead of foreach to avoid DictionaryEntry box allocations.
|
||||
IDictionaryEnumerator e = s_queuesCache.GetEnumerator();
|
||||
while (e.MoveNext())
|
||||
{
|
||||
DictionaryEntry pair = e.Entry;
|
||||
if (((WeakReference)pair.Value).Target == null)
|
||||
{
|
||||
garbage.Add((int)pair.Key);
|
||||
garbage.Add(pair.Key);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < garbage.Count; i++)
|
||||
{
|
||||
s_QueuesCache.Remove(garbage[i]);
|
||||
s_queuesCache.Remove(garbage[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,10 +314,7 @@ namespace System.Net
|
||||
/// <summary>
|
||||
/// <para>Always returns a dummy infinite timer.</para>
|
||||
/// </summary>
|
||||
internal override Timer CreateTimer(Callback callback, object context)
|
||||
{
|
||||
return new InfiniteTimer();
|
||||
}
|
||||
internal override Timer CreateTimer(Callback callback, object context) => new InfiniteTimer();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -394,38 +358,18 @@ namespace System.Net
|
||||
_timerState = TimerState.Sentinel;
|
||||
}
|
||||
|
||||
internal override bool HasExpired
|
||||
{
|
||||
get
|
||||
{
|
||||
return _timerState == TimerState.Fired;
|
||||
}
|
||||
}
|
||||
internal override bool HasExpired => _timerState == TimerState.Fired;
|
||||
|
||||
internal TimerNode Next
|
||||
{
|
||||
get
|
||||
{
|
||||
return _next;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_next = value;
|
||||
}
|
||||
get { return _next; }
|
||||
set { _next = value; }
|
||||
}
|
||||
|
||||
internal TimerNode Prev
|
||||
{
|
||||
get
|
||||
{
|
||||
return _prev;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_prev = value;
|
||||
}
|
||||
get { return _prev; }
|
||||
set { _prev = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -544,21 +488,12 @@ namespace System.Net
|
||||
|
||||
private int _cancelled;
|
||||
|
||||
internal override bool HasExpired
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
internal override bool HasExpired => false;
|
||||
|
||||
/// <summary>
|
||||
/// <para>Cancels the timer. Returns true the first time, false after that.</para>
|
||||
/// </summary>
|
||||
internal override bool Cancel()
|
||||
{
|
||||
return Interlocked.Exchange(ref _cancelled, 1) == 0;
|
||||
}
|
||||
internal override bool Cancel() => Interlocked.Exchange(ref _cancelled, 1) == 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -566,9 +501,9 @@ namespace System.Net
|
||||
/// </summary>
|
||||
private static void Prod()
|
||||
{
|
||||
s_ThreadReadyEvent.Set();
|
||||
s_threadReadyEvent.Set();
|
||||
TimerThreadState oldState = (TimerThreadState)Interlocked.CompareExchange(
|
||||
ref s_ThreadState,
|
||||
ref s_threadState,
|
||||
(int)TimerThreadState.Running,
|
||||
(int)TimerThreadState.Idle);
|
||||
|
||||
@@ -594,10 +529,10 @@ namespace System.Net
|
||||
Thread.CurrentThread.IsBackground = true;
|
||||
|
||||
// Keep a permanent lock on s_Queues. This lets for example Shutdown() know when this thread isn't running.
|
||||
lock (s_Queues)
|
||||
lock (s_queues)
|
||||
{
|
||||
// If shutdown was recently called, abort here.
|
||||
if (Interlocked.CompareExchange(ref s_ThreadState, (int)TimerThreadState.Running, (int)TimerThreadState.Running) !=
|
||||
if (Interlocked.CompareExchange(ref s_threadState, (int)TimerThreadState.Running, (int)TimerThreadState.Running) !=
|
||||
(int)TimerThreadState.Running)
|
||||
{
|
||||
return;
|
||||
@@ -608,19 +543,19 @@ namespace System.Net
|
||||
{
|
||||
try
|
||||
{
|
||||
s_ThreadReadyEvent.Reset();
|
||||
s_threadReadyEvent.Reset();
|
||||
|
||||
while (true)
|
||||
{
|
||||
// Copy all the new queues to the real queues. Since only this thread modifies the real queues, it doesn't have to lock it.
|
||||
if (s_NewQueues.Count > 0)
|
||||
if (s_newQueues.Count > 0)
|
||||
{
|
||||
lock (s_NewQueues)
|
||||
lock (s_newQueues)
|
||||
{
|
||||
for (LinkedListNode<WeakReference> node = s_NewQueues.First; node != null; node = s_NewQueues.First)
|
||||
for (LinkedListNode<WeakReference> node = s_newQueues.First; node != null; node = s_newQueues.First)
|
||||
{
|
||||
s_NewQueues.Remove(node);
|
||||
s_Queues.AddLast(node);
|
||||
s_newQueues.Remove(node);
|
||||
s_queues.AddLast(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -628,13 +563,13 @@ namespace System.Net
|
||||
int now = Environment.TickCount;
|
||||
int nextTick = 0;
|
||||
bool haveNextTick = false;
|
||||
for (LinkedListNode<WeakReference> node = s_Queues.First; node != null; /* node = node.Next must be done in the body */)
|
||||
for (LinkedListNode<WeakReference> node = s_queues.First; node != null; /* node = node.Next must be done in the body */)
|
||||
{
|
||||
TimerQueue queue = (TimerQueue)node.Value.Target;
|
||||
if (queue == null)
|
||||
{
|
||||
LinkedListNode<WeakReference> next = node.Next;
|
||||
s_Queues.Remove(node);
|
||||
s_queues.Remove(node);
|
||||
node = next;
|
||||
continue;
|
||||
}
|
||||
@@ -657,13 +592,13 @@ namespace System.Net
|
||||
int newNow = Environment.TickCount;
|
||||
int waitDuration = haveNextTick ?
|
||||
(int)(IsTickBetween(now, nextTick, newNow) ?
|
||||
Math.Min(unchecked((uint)(nextTick - newNow)), (uint)(Int32.MaxValue - c_TickCountResolution)) + c_TickCountResolution :
|
||||
Math.Min(unchecked((uint)(nextTick - newNow)), (uint)(Int32.MaxValue - TickCountResolution)) + TickCountResolution :
|
||||
0) :
|
||||
c_ThreadIdleTimeoutMilliseconds;
|
||||
ThreadIdleTimeoutMilliseconds;
|
||||
|
||||
if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"Waiting for {waitDuration}ms");
|
||||
|
||||
int waitResult = WaitHandle.WaitAny(s_ThreadEvents, waitDuration, false);
|
||||
int waitResult = WaitHandle.WaitAny(s_threadEvents, waitDuration, false);
|
||||
|
||||
// 0 is s_ThreadShutdownEvent - die.
|
||||
if (waitResult == 0)
|
||||
@@ -678,11 +613,11 @@ namespace System.Net
|
||||
// If we timed out with nothing to do, shut down.
|
||||
if (waitResult == WaitHandle.WaitTimeout && !haveNextTick)
|
||||
{
|
||||
Interlocked.CompareExchange(ref s_ThreadState, (int)TimerThreadState.Idle, (int)TimerThreadState.Running);
|
||||
Interlocked.CompareExchange(ref s_threadState, (int)TimerThreadState.Idle, (int)TimerThreadState.Running);
|
||||
// There could have been one more prod between the wait and the exchange. Check, and abort if necessary.
|
||||
if (s_ThreadReadyEvent.WaitOne(0, false))
|
||||
if (s_threadReadyEvent.WaitOne(0, false))
|
||||
{
|
||||
if (Interlocked.CompareExchange(ref s_ThreadState, (int)TimerThreadState.Running, (int)TimerThreadState.Idle) ==
|
||||
if (Interlocked.CompareExchange(ref s_threadState, (int)TimerThreadState.Running, (int)TimerThreadState.Idle) ==
|
||||
(int)TimerThreadState.Idle)
|
||||
{
|
||||
continue;
|
||||
|
@@ -9,6 +9,7 @@ using System.Net.Cache;
|
||||
using System.Net.Security;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Security.Principal;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
namespace System.Net
|
||||
{
|
||||
@@ -27,8 +28,8 @@ namespace System.Net
|
||||
}
|
||||
}
|
||||
|
||||
private static volatile List<WebRequestPrefixElement> s_prefixList;
|
||||
private static readonly object s_internalSyncObject = new object();
|
||||
private static List<WebRequestPrefixElement> s_prefixList;
|
||||
private static object s_internalSyncObject = new object();
|
||||
|
||||
internal const int DefaultTimeoutMilliseconds = 100 * 1000;
|
||||
|
||||
@@ -353,36 +354,28 @@ namespace System.Net
|
||||
// GetConfig() might use us, so we have a circular dependency issue
|
||||
// that causes us to nest here. We grab the lock only if we haven't
|
||||
// initialized.
|
||||
if (s_prefixList == null)
|
||||
return LazyInitializer.EnsureInitialized(ref s_prefixList, ref s_internalSyncObject, () =>
|
||||
{
|
||||
lock (s_internalSyncObject)
|
||||
var httpRequestCreator = new HttpRequestCreator();
|
||||
var ftpRequestCreator = new FtpWebRequestCreator();
|
||||
var fileRequestCreator = new FileWebRequestCreator();
|
||||
|
||||
const int Count = 4;
|
||||
var prefixList = new List<WebRequestPrefixElement>(Count)
|
||||
{
|
||||
if (s_prefixList == null)
|
||||
{
|
||||
var httpRequestCreator = new HttpRequestCreator();
|
||||
var ftpRequestCreator = new FtpWebRequestCreator();
|
||||
var fileRequestCreator = new FileWebRequestCreator();
|
||||
new WebRequestPrefixElement("http:", httpRequestCreator),
|
||||
new WebRequestPrefixElement("https:", httpRequestCreator),
|
||||
new WebRequestPrefixElement("ftp:", ftpRequestCreator),
|
||||
new WebRequestPrefixElement("file:", fileRequestCreator),
|
||||
};
|
||||
Debug.Assert(prefixList.Count == Count, $"Expected {Count}, got {prefixList.Count}");
|
||||
|
||||
const int Count = 4;
|
||||
var prefixList = new List<WebRequestPrefixElement>(Count)
|
||||
{
|
||||
new WebRequestPrefixElement("http:", httpRequestCreator),
|
||||
new WebRequestPrefixElement("https:", httpRequestCreator),
|
||||
new WebRequestPrefixElement("ftp:", ftpRequestCreator),
|
||||
new WebRequestPrefixElement("file:", fileRequestCreator),
|
||||
};
|
||||
Debug.Assert(prefixList.Count == Count, $"Expected {Count}, got {prefixList.Count}");
|
||||
|
||||
s_prefixList = prefixList;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return s_prefixList;
|
||||
return prefixList;
|
||||
});
|
||||
}
|
||||
set
|
||||
{
|
||||
s_prefixList = value;
|
||||
Volatile.Write(ref s_prefixList, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,24 +561,13 @@ namespace System.Net
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (s_internalSyncObject)
|
||||
{
|
||||
if (!s_DefaultWebProxyInitialized)
|
||||
{
|
||||
s_DefaultWebProxy = SystemWebProxy.Get();
|
||||
s_DefaultWebProxyInitialized = true;
|
||||
}
|
||||
|
||||
return s_DefaultWebProxy;
|
||||
}
|
||||
return LazyInitializer.EnsureInitialized(ref s_DefaultWebProxy, ref s_DefaultWebProxyInitialized, ref s_internalSyncObject, () => SystemWebProxy.Get());
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
lock (s_internalSyncObject)
|
||||
{
|
||||
s_DefaultWebProxy = value;
|
||||
s_DefaultWebProxyInitialized = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,6 @@
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<BuildConfigurations>
|
||||
netstandard1.3;
|
||||
netstandard;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
|
@@ -1,47 +0,0 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System.Runtime.Serialization.Formatters.Tests;
|
||||
using System.Net.Test.Common;
|
||||
using Xunit;
|
||||
|
||||
namespace System.Net.HttpRequest.Tests
|
||||
{
|
||||
using Configuration = System.Net.Test.Common.Configuration;
|
||||
|
||||
public partial class HttpRequestResponseSerializationTest
|
||||
{
|
||||
[ActiveIssue(14068)]
|
||||
[OuterLoop]
|
||||
[Fact]
|
||||
public void SerializeDeserialize_Roundtrips()
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(Configuration.Http.RemoteEchoServer);
|
||||
request.KeepAlive = true;
|
||||
request.CookieContainer = new CookieContainer(10);
|
||||
|
||||
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
|
||||
using (HttpWebResponse responseClone = BinaryFormatterHelpers.Clone(response))
|
||||
{
|
||||
Assert.NotSame(responseClone, response);
|
||||
Assert.Equal(response.CharacterSet, responseClone.CharacterSet);
|
||||
Assert.Equal(response.ContentEncoding, responseClone.ContentEncoding);
|
||||
Assert.Equal(response.ContentLength, responseClone.ContentLength);
|
||||
Assert.Equal(response.ContentType, responseClone.ContentType);
|
||||
Assert.Equal(response.Cookies.Count, responseClone.Cookies.Count);
|
||||
Assert.Equal(response.Headers.Count, responseClone.Headers.Count);
|
||||
Assert.Equal(response.IsFromCache, responseClone.IsFromCache);
|
||||
Assert.Equal(response.IsMutuallyAuthenticated, responseClone.IsMutuallyAuthenticated);
|
||||
Assert.Equal(response.LastModified, responseClone.LastModified);
|
||||
Assert.Equal(response.Method, responseClone.Method);
|
||||
Assert.Equal(response.ProtocolVersion, responseClone.ProtocolVersion);
|
||||
Assert.Equal(response.ResponseUri, responseClone.ResponseUri);
|
||||
Assert.Equal(response.Server, responseClone.Server);
|
||||
Assert.Equal(response.StatusCode, responseClone.StatusCode);
|
||||
Assert.Equal(response.StatusDescription, responseClone.StatusDescription);
|
||||
Assert.Equal(response.SupportsHeaders, responseClone.SupportsHeaders);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -38,7 +38,8 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[OuterLoop]
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[ConditionalTheory(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotFedoraOrRedHatOrCentos))] // #16201
|
||||
[MemberData(nameof(EchoServers))]
|
||||
public WebResponse GetResponse_UseDefaultCredentials_ExpectSuccess(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -176,7 +177,7 @@ namespace System.Net.Tests
|
||||
|
||||
sw.Stop();
|
||||
|
||||
Assert.InRange(sw.ElapsedMilliseconds, 1, 10 * 1000); // Allow a very wide range.
|
||||
Assert.InRange(sw.ElapsedMilliseconds, 1, 60 * 1000); // Allow a very wide range as this has taken over 10 seconds occasionally
|
||||
Assert.Equal(WebExceptionStatus.Timeout, exception.Status);
|
||||
Assert.Equal(null, exception.InnerException);
|
||||
Assert.Equal(null, exception.Response);
|
||||
@@ -192,6 +193,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hangs in desktop.
|
||||
public void HttpWebRequest_PreAuthenticateGetSet_Ok()
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(Configuration.Http.RemoteEchoServer);
|
||||
|
@@ -111,7 +111,6 @@ namespace System.Net.Tests
|
||||
Assert.True(request.AllowReadStreamBuffering);
|
||||
}
|
||||
|
||||
[ActiveIssue(12637)]
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
public async Task ContentLength_Get_ExpectSameAsGetResponseStream(Uri remoteServer)
|
||||
{
|
||||
@@ -243,6 +242,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public void BeginGetRequestStream_CreatePostRequestThenCallTwice_ThrowsInvalidOperationException(Uri remoteServer)
|
||||
{
|
||||
_savedHttpWebRequest = HttpWebRequest.CreateHttp(remoteServer);
|
||||
@@ -256,6 +256,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public void BeginGetRequestStream_CreateRequestThenBeginGetResponsePrior_ThrowsInvalidOperationException(Uri remoteServer)
|
||||
{
|
||||
_savedHttpWebRequest = HttpWebRequest.CreateHttp(remoteServer);
|
||||
@@ -268,6 +269,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public void BeginGetResponse_CreateRequestThenCallTwice_ThrowsInvalidOperationException(Uri remoteServer)
|
||||
{
|
||||
_savedHttpWebRequest = HttpWebRequest.CreateHttp(remoteServer);
|
||||
@@ -280,6 +282,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public void BeginGetResponse_CreatePostRequestThenAbort_ThrowsWebException(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -290,6 +293,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task GetRequestStreamAsync_WriteAndDisposeRequestStreamThenOpenRequestStream_ThrowsArgumentException(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -306,6 +310,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task GetRequestStreamAsync_SetPOSTThenGet_ExpectNotNull(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -315,6 +320,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task GetResponseAsync_GetResponseStream_ExpectNotNull(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -357,7 +363,9 @@ namespace System.Net.Tests
|
||||
Assert.True(strContent.Contains(RequestBody));
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[ConditionalTheory(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotFedoraOrRedHatOrCentos))] // #16201
|
||||
[MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task GetResponseAsync_UseDefaultCredentials_ExpectSuccess(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -381,7 +389,6 @@ namespace System.Net.Tests
|
||||
new object[] { System.Net.Test.Common.Configuration.Http.StatusCodeUri(true, 404) },
|
||||
};
|
||||
|
||||
[ActiveIssue(12236, TestPlatforms.Linux)]
|
||||
[Theory, MemberData(nameof(StatusCodeServers))]
|
||||
public async Task GetResponseAsync_ResourceNotFound_ThrowsWebException(Uri remoteServer)
|
||||
{
|
||||
@@ -393,6 +400,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task HaveResponse_GetResponseAsync_ExpectTrue(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -400,7 +408,9 @@ namespace System.Net.Tests
|
||||
Assert.True(request.HaveResponse);
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[ConditionalTheory(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotFedoraOrRedHatOrCentos))] // #16201
|
||||
[MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task Headers_GetResponseHeaders_ContainsExpectedValue(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
|
||||
@@ -456,6 +466,7 @@ namespace System.Net.Tests
|
||||
}
|
||||
|
||||
[Theory, MemberData(nameof(EchoServers))]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public async Task SimpleScenario_UseGETVerb_Success(Uri remoteServer)
|
||||
{
|
||||
HttpWebRequest request = HttpWebRequest.CreateHttp(remoteServer);
|
||||
|
@@ -15,9 +15,7 @@ namespace System.Net.Tests
|
||||
[Theory]
|
||||
[InlineData("text/html")]
|
||||
[InlineData("text/html; charset=utf-8")]
|
||||
#if netstandard17 // Depends on a bug fix made for 1.1 release. Can be un-ifdef'd once an updated package is available on NuGet
|
||||
[InlineData("TypeAndNoSubType")]
|
||||
#endif
|
||||
public async Task ContentType_ServerResponseHasContentTypeHeader_ContentTypeReceivedCorrectly(string expectedContentType)
|
||||
{
|
||||
await LoopbackServer.CreateServerAsync(async (server, url) =>
|
||||
|
@@ -10,6 +10,7 @@ namespace System.Net.Tests
|
||||
public class LoggingTest
|
||||
{
|
||||
[Fact]
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "NetEventSource is only part of .NET Core")]
|
||||
public void EventSource_ExistsWithCorrectId()
|
||||
{
|
||||
Type esType = typeof(WebRequest).Assembly.GetType("System.Net.NetEventSource", throwOnError: true, ignoreCase: false);
|
||||
|
@@ -11,6 +11,7 @@ using Xunit;
|
||||
|
||||
namespace System.Net.Tests
|
||||
{
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
|
||||
public class RequestStreamTest
|
||||
{
|
||||
readonly byte[] buffer = new byte[1];
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user