Skip to content

Commit 7fd0ac0

Browse files
Merging main into darc-main-ba006199-e339-4fcf-9700-a8388febddc7
2 parents 3628f0b + 4fccb63 commit 7fd0ac0

File tree

15 files changed

+509
-360
lines changed

15 files changed

+509
-360
lines changed

.github/policies/resourceManagement.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ configuration:
553553
then:
554554
- removeMilestone
555555
- addMilestone:
556-
milestone: 9.0.6
556+
milestone: 9.0.7
557557
description: '[Milestone Assignments] Assign Milestone to PRs merged to release/9.0 branch'
558558
- if:
559559
- payloadType: Pull_Request
@@ -564,7 +564,7 @@ configuration:
564564
then:
565565
- removeMilestone
566566
- addMilestone:
567-
milestone: 8.0.17
567+
milestone: 8.0.18
568568
description: '[Milestone Assignments] Assign Milestone to PRs merged to release/8.0 branch'
569569
- if:
570570
- payloadType: Issues

eng/Version.Details.xml

Lines changed: 181 additions & 181 deletions
Large diffs are not rendered by default.

eng/Versions.props

Lines changed: 87 additions & 87 deletions
Large diffs are not rendered by default.

eng/common/core-templates/job/publish-build-assets.yml

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ parameters:
3232
# Optional: 🌤️ or not the build has assets it wants to publish to BAR
3333
isAssetlessBuild: false
3434

35+
# Optional, publishing version
36+
publishingVersion: 3
37+
38+
# Optional: A minimatch pattern for the asset manifests to publish to BAR
39+
assetManifestsPattern: '*/manifests/**/*.xml'
40+
3541
jobs:
3642
- job: Asset_Registry_Publish
3743

@@ -77,13 +83,31 @@ jobs:
7783
clean: true
7884

7985
- ${{ if eq(parameters.isAssetlessBuild, 'false') }}:
80-
- task: DownloadPipelineArtifact@2
81-
displayName: Download Asset Manifests
82-
inputs:
83-
artifactName: AssetManifests
84-
targetPath: '$(Build.StagingDirectory)/AssetManifests'
85-
condition: ${{ parameters.condition }}
86-
continueOnError: ${{ parameters.continueOnError }}
86+
- ${{ if eq(parameters.publishingVersion, 3) }}:
87+
- task: DownloadPipelineArtifact@2
88+
displayName: Download Asset Manifests
89+
inputs:
90+
artifactName: AssetManifests
91+
targetPath: '$(Build.StagingDirectory)/AssetManifests'
92+
condition: ${{ parameters.condition }}
93+
continueOnError: ${{ parameters.continueOnError }}
94+
- ${{ if eq(parameters.publishingVersion, 4) }}:
95+
- task: DownloadPipelineArtifact@2
96+
displayName: Download V4 asset manifests
97+
inputs:
98+
itemPattern: '*/manifests/**/*.xml'
99+
targetPath: '$(Build.StagingDirectory)/AllAssetManifests'
100+
condition: ${{ parameters.condition }}
101+
continueOnError: ${{ parameters.continueOnError }}
102+
- task: CopyFiles@2
103+
displayName: Copy V4 asset manifests to AssetManifests
104+
inputs:
105+
SourceFolder: '$(Build.StagingDirectory)/AllAssetManifests'
106+
Contents: ${{ parameters.assetManifestsPattern }}
107+
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
108+
flattenFolders: true
109+
condition: ${{ parameters.condition }}
110+
continueOnError: ${{ parameters.continueOnError }}
87111

88112
- task: NuGetAuthenticate@1
89113

@@ -120,6 +144,17 @@ jobs:
120144
Copy-Item -Path $symbolExclusionfile -Destination "$(Build.StagingDirectory)/ReleaseConfigs"
121145
}
122146
147+
- ${{ if eq(parameters.publishingVersion, 4) }}:
148+
- template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml
149+
parameters:
150+
is1ESPipeline: ${{ parameters.is1ESPipeline }}
151+
args:
152+
targetPath: '$(Build.ArtifactStagingDirectory)/MergedManifest.xml'
153+
artifactName: AssetManifests
154+
displayName: 'Publish Merged Manifest'
155+
retryCountOnTaskFailure: 10 # for any logs being locked
156+
sbomEnabled: false # we don't need SBOM for logs
157+
123158
- template: /eng/common/core-templates/steps/publish-build-artifacts.yml
124159
parameters:
125160
is1ESPipeline: ${{ parameters.is1ESPipeline }}

eng/common/tools.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,7 @@ function GetDarc {
528528
fi
529529

530530
"$eng_root/common/darc-init.sh" --toolpath "$darc_path" $version
531+
darc_tool="$darc_path/darc"
531532
}
532533

533534
# Returns a full path to an Arcade SDK task project file.

eng/common/vmr-sync.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,14 @@ Set-StrictMode -Version Latest
103103
Highlight 'Installing .NET, preparing the tooling..'
104104
. .\eng\common\tools.ps1
105105
$dotnetRoot = InitializeDotNetCli -install:$true
106+
$darc = Get-Darc
106107
$dotnet = "$dotnetRoot\dotnet.exe"
107-
& "$dotnet" tool restore
108108

109109
Highlight "Starting the synchronization of VMR.."
110110

111111
# Synchronize the VMR
112112
$darcArgs = (
113-
"darc", "vmr", "forwardflow",
113+
"vmr", "forwardflow",
114114
"--tmp", $tmpDir,
115115
"--$verbosity",
116116
$vmrDir
@@ -124,7 +124,7 @@ if ($azdevPat) {
124124
$darcArgs += ("--azdev-pat", $azdevPat)
125125
}
126126

127-
& "$dotnet" $darcArgs
127+
& "$darc" $darcArgs
128128

129129
if ($LASTEXITCODE -eq 0) {
130130
Highlight "Synchronization succeeded"

eng/common/vmr-sync.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ set -e
164164
highlight 'Installing .NET, preparing the tooling..'
165165
source "./eng/common/tools.sh"
166166
InitializeDotNetCli true
167+
GetDarc
167168
dotnetDir=$( cd ./.dotnet/; pwd -P )
168169
dotnet=$dotnetDir/dotnet
169-
"$dotnet" tool restore
170170

171171
highlight "Starting the synchronization of VMR.."
172172
set +e
@@ -186,7 +186,9 @@ fi
186186

187187
# Synchronize the VMR
188188

189-
"$dotnet" darc vmr forwardflow \
189+
export DOTNET_ROOT="$dotnetDir"
190+
191+
"$darc_tool" vmr forwardflow \
190192
--tmp "$tmp_dir" \
191193
$azdev_pat \
192194
--$verbosity \

global.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
"jdk": "latest"
2828
},
2929
"msbuild-sdks": {
30-
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25302.103",
31-
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25302.103",
32-
"Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25302.103",
30+
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25303.102",
31+
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25303.102",
32+
"Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25303.102",
3333
"Microsoft.Build.NoTargets": "3.7.0",
3434
"Microsoft.Build.Traversal": "3.4.0"
3535
}

src/Servers/Kestrel/Core/src/ListenOptionsHttpsExtensions.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System.Security.Cryptography.X509Certificates;
66
using Microsoft.AspNetCore.Server.Kestrel.Core;
77
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure;
8-
using Microsoft.AspNetCore.Server.Kestrel.Core.Middleware;
98
using Microsoft.AspNetCore.Server.Kestrel.Https;
109
using Microsoft.AspNetCore.Server.Kestrel.Https.Internal;
1110
using Microsoft.Extensions.DependencyInjection;
@@ -198,15 +197,6 @@ public static ListenOptions UseHttps(this ListenOptions listenOptions, HttpsConn
198197
listenOptions.IsTls = true;
199198
listenOptions.HttpsOptions = httpsOptions;
200199

201-
if (httpsOptions.TlsClientHelloBytesCallback is not null)
202-
{
203-
listenOptions.Use(next =>
204-
{
205-
var middleware = new TlsListenerMiddleware(next, httpsOptions.TlsClientHelloBytesCallback);
206-
return middleware.OnTlsClientHelloAsync;
207-
});
208-
}
209-
210200
listenOptions.Use(next =>
211201
{
212202
var middleware = new HttpsConnectionMiddleware(next, httpsOptions, listenOptions.Protocols, loggerFactory, metrics);

src/Servers/Kestrel/Core/src/Middleware/HttpsConnectionMiddleware.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using Microsoft.AspNetCore.Server.Kestrel.Core.Features;
1818
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
1919
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure;
20+
using Microsoft.AspNetCore.Server.Kestrel.Core.Middleware;
2021
using Microsoft.Extensions.Logging;
2122
using Microsoft.Extensions.Logging.Abstractions;
2223

@@ -44,6 +45,9 @@ internal sealed class HttpsConnectionMiddleware
4445
private readonly Func<TlsHandshakeCallbackContext, ValueTask<SslServerAuthenticationOptions>>? _tlsCallbackOptions;
4546
private readonly object? _tlsCallbackOptionsState;
4647

48+
// Captures raw TLS client hello and invokes a user callback if any
49+
private readonly TlsListener? _tlsListener;
50+
4751
// Internal for testing
4852
internal readonly HttpProtocols _httpProtocols;
4953

@@ -112,6 +116,11 @@ public HttpsConnectionMiddleware(ConnectionDelegate next, HttpsConnectionAdapter
112116
(RemoteCertificateValidationCallback?)null : RemoteCertificateValidationCallback;
113117

114118
_sslStreamFactory = s => new SslStream(s, leaveInnerStreamOpen: false, userCertificateValidationCallback: remoteCertificateValidationCallback);
119+
120+
if (options.TlsClientHelloBytesCallback is not null)
121+
{
122+
_tlsListener = new TlsListener(options.TlsClientHelloBytesCallback);
123+
}
115124
}
116125

117126
internal HttpsConnectionMiddleware(
@@ -162,6 +171,10 @@ public async Task OnConnectionAsync(ConnectionContext context)
162171
using var cancellationTokenSource = _ctsPool.Rent();
163172
cancellationTokenSource.CancelAfter(_handshakeTimeout);
164173

174+
if (_tlsListener is not null)
175+
{
176+
await _tlsListener.OnTlsClientHelloAsync(context, cancellationTokenSource.Token);
177+
}
165178
if (_tlsCallbackOptions is null)
166179
{
167180
await DoOptionsBasedHandshakeAsync(context, sslStream, feature, cancellationTokenSource.Token);

0 commit comments

Comments
 (0)