Skip to content

Commit 9654539

Browse files
authored
[release/5.0] Don't call HttpCloseUrlGroup if you didn't create it (#28511)
* Add created bool * Be explicit in setting the flag
1 parent 78d4438 commit 9654539

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/Servers/HttpSys/src/NativeInterop/UrlGroup.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ internal class UrlGroup : IDisposable
1919
private ServerSession _serverSession;
2020
private ILogger _logger;
2121
private bool _disposed;
22+
private bool _created;
2223

2324
internal unsafe UrlGroup(ServerSession serverSession, ILogger logger)
2425
{
2526
_serverSession = serverSession;
2627
_logger = logger;
2728

2829
ulong urlGroupId = 0;
30+
_created = true;
2931
var statusCode = HttpApi.HttpCreateUrlGroup(
3032
_serverSession.Id.DangerousGetServerSessionId(), &urlGroupId, 0);
3133

@@ -41,6 +43,7 @@ internal unsafe UrlGroup(ServerSession serverSession, ILogger logger)
4143
internal unsafe UrlGroup(RequestQueue requestQueue, UrlPrefix url)
4244
{
4345
ulong urlGroupId = 0;
46+
_created = false;
4447
var statusCode = HttpApi.HttpFindUrlGroupId(
4548
url.FullPrefix, requestQueue.Handle, &urlGroupId);
4649

@@ -138,14 +141,20 @@ public void Dispose()
138141

139142
_disposed = true;
140143

141-
Debug.Assert(Id != 0, "HttpCloseUrlGroup called with invalid url group id");
144+
if (_created)
145+
{
142146

143-
uint statusCode = HttpApi.HttpCloseUrlGroup(Id);
147+
Debug.Assert(Id != 0, "HttpCloseUrlGroup called with invalid url group id");
148+
149+
uint statusCode = HttpApi.HttpCloseUrlGroup(Id);
150+
151+
if (statusCode != UnsafeNclNativeMethods.ErrorCodes.ERROR_SUCCESS)
152+
{
153+
_logger.LogError(LoggerEventIds.CloseUrlGroupError, "HttpCloseUrlGroup; Result: {0}", statusCode);
154+
}
144155

145-
if (statusCode != UnsafeNclNativeMethods.ErrorCodes.ERROR_SUCCESS)
146-
{
147-
_logger.LogError(LoggerEventIds.CloseUrlGroupError, "HttpCloseUrlGroup; Result: {0}" , statusCode);
148156
}
157+
149158
Id = 0;
150159
}
151160

0 commit comments

Comments
 (0)