private void CleanupV2Config()
{
//
// If we never setup V2, just return.
//
if (!_V2Initialized)
{
return;
}
//
// V2 stopping sequence:
// 1. Detach request queue from url group - Done in Stop()/Abort()
// 2. Remove urls from url group - Done in Stop()
// 3. Close request queue - Done in Stop()/Abort()
// 4. Close Url group.
// 5. Close server session.
Debug.Assert(_urlGroupId != 0, "HttpCloseUrlGroup called with invalid url group id");
uint statusCode = Interop.HttpApi.HttpCloseUrlGroup(_urlGroupId);
if (statusCode != Interop.HttpApi.ERROR_SUCCESS)
{
if (NetEventSource.IsEnabled) NetEventSource.Error(this, $"CloseV2Config {SR.Format(SR.net_listener_close_urlgroup_error, statusCode)}");
}
_urlGroupId = 0;
Debug.Assert(_serverSessionHandle != null, "ServerSessionHandle is null in CloseV2Config");
Debug.Assert(!_serverSessionHandle.IsInvalid, "ServerSessionHandle is invalid in CloseV2Config");
_serverSessionHandle.Dispose();
}