@@ -19,13 +19,15 @@ internal class UrlGroup : IDisposable
19
19
private ServerSession _serverSession ;
20
20
private ILogger _logger ;
21
21
private bool _disposed ;
22
+ private bool _created ;
22
23
23
24
internal unsafe UrlGroup ( ServerSession serverSession , ILogger logger )
24
25
{
25
26
_serverSession = serverSession ;
26
27
_logger = logger ;
27
28
28
29
ulong urlGroupId = 0 ;
30
+ _created = true ;
29
31
var statusCode = HttpApi . HttpCreateUrlGroup (
30
32
_serverSession . Id . DangerousGetServerSessionId ( ) , & urlGroupId , 0 ) ;
31
33
@@ -41,6 +43,7 @@ internal unsafe UrlGroup(ServerSession serverSession, ILogger logger)
41
43
internal unsafe UrlGroup ( RequestQueue requestQueue , UrlPrefix url )
42
44
{
43
45
ulong urlGroupId = 0 ;
46
+ _created = false ;
44
47
var statusCode = HttpApi . HttpFindUrlGroupId (
45
48
url . FullPrefix , requestQueue . Handle , & urlGroupId ) ;
46
49
@@ -138,14 +141,20 @@ public void Dispose()
138
141
139
142
_disposed = true ;
140
143
141
- Debug . Assert ( Id != 0 , "HttpCloseUrlGroup called with invalid url group id" ) ;
144
+ if ( _created )
145
+ {
142
146
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
+ }
144
155
145
- if ( statusCode != UnsafeNclNativeMethods . ErrorCodes . ERROR_SUCCESS )
146
- {
147
- _logger . LogError ( LoggerEventIds . CloseUrlGroupError , "HttpCloseUrlGroup; Result: {0}" , statusCode ) ;
148
156
}
157
+
149
158
Id = 0 ;
150
159
}
151
160
0 commit comments