@@ -1450,12 +1450,12 @@ internal SqlError ProcessSNIError(TdsParserStateObject stateObj)
1450
1450
SqlClientEventSource.Log.TryTraceEvent("<sc.TdsParser.ProcessSNIError|ERR> SNIContext must not be None = {0}, _fMARS = {1}, TDS Parser State = {2}", stateObj.DebugOnlyCopyOfSniContext, _fMARS, _state);
1451
1451
1452
1452
#endif
1453
- SNIErrorDetails details = GetSniErrorDetails ();
1453
+ TdsParserStateObject.SniErrorDetails details = stateObj.GetErrorDetails ();
1454
1454
1455
- if (details.sniErrorNumber != 0)
1455
+ if (details.SniErrorNumber != 0)
1456
1456
{
1457
1457
// handle special SNI error codes that are converted into exception which is not a SqlException.
1458
- switch (details.sniErrorNumber )
1458
+ switch (details.SniErrorNumber )
1459
1459
{
1460
1460
case SniErrors.MultiSubnetFailoverWithMoreThan64IPs:
1461
1461
// Connecting with the MultiSubnetFailover connection option to a SQL Server instance configured with more than 64 IP addresses is not supported.
@@ -1476,8 +1476,8 @@ internal SqlError ProcessSNIError(TdsParserStateObject stateObj)
1476
1476
}
1477
1477
// PInvoke code automatically sets the length of the string for us
1478
1478
// So no need to look for \0
1479
- string errorMessage = details.errorMessage ;
1480
- SqlClientEventSource.Log.TryAdvancedTraceEvent("< sc.TdsParser.ProcessSNIError |ERR|ADV > Error message Detail: {0}", details.errorMessage );
1479
+ string errorMessage = details.ErrorMessage ;
1480
+ SqlClientEventSource.Log.TryAdvancedTraceEvent("< sc.TdsParser.ProcessSNIError |ERR|ADV > Error message Detail: {0}", details.ErrorMessage );
1481
1481
1482
1482
/* Format SNI errors and add Context Information
1483
1483
*
@@ -1494,25 +1494,25 @@ internal SqlError ProcessSNIError(TdsParserStateObject stateObj)
1494
1494
1495
1495
if (TdsParserStateObjectFactory.UseManagedSNI)
1496
1496
{
1497
- Debug.Assert(!string.IsNullOrEmpty(details.errorMessage ) || details.sniErrorNumber != 0, "Empty error message received from SNI");
1498
- SqlClientEventSource.Log.TryAdvancedTraceEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > Empty error message received from SNI. Error Message = {0}, SNI Error Number ={1}", details.errorMessage , details.sniErrorNumber );
1497
+ Debug.Assert(!string.IsNullOrEmpty(details.ErrorMessage ) || details.SniErrorNumber != 0, "Empty error message received from SNI");
1498
+ SqlClientEventSource.Log.TryAdvancedTraceEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > Empty error message received from SNI. Error Message = {0}, SNI Error Number ={1}", details.ErrorMessage , details.SniErrorNumber );
1499
1499
}
1500
1500
else
1501
1501
{
1502
- Debug.Assert(!string.IsNullOrEmpty(details.errorMessage ), "Empty error message received from SNI");
1503
- SqlClientEventSource.Log.TryAdvancedTraceEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > Empty error message received from SNI. Error Message = {0}", details.errorMessage );
1502
+ Debug.Assert(!string.IsNullOrEmpty(details.ErrorMessage ), "Empty error message received from SNI");
1503
+ SqlClientEventSource.Log.TryAdvancedTraceEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > Empty error message received from SNI. Error Message = {0}", details.ErrorMessage );
1504
1504
}
1505
1505
1506
1506
string sqlContextInfo = StringsHelper.GetResourceString(stateObj.SniContext.ToString());
1507
- string providerRid = string.Format("SNI_PN{0}", details.provider );
1507
+ string providerRid = string.Format("SNI_PN{0}", details.Provider );
1508
1508
string providerName = StringsHelper.GetResourceString(providerRid);
1509
1509
Debug.Assert(!string.IsNullOrEmpty(providerName), $"invalid providerResourceId '{providerRid}'");
1510
- uint win32ErrorCode = details.nativeError ;
1510
+ uint win32ErrorCode = details.NativeError ;
1511
1511
1512
1512
SqlClientEventSource.Log.TryAdvancedTraceEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > SNI Native Error Code = {0}", win32ErrorCode);
1513
- if (details.sniErrorNumber == 0)
1513
+ if (details.SniErrorNumber == 0)
1514
1514
{
1515
- // Provider error. The message from provider is preceeded with non-localizable info from SNI
1515
+ // Provider error. The message from provider is preceded with non-localizable info from SNI
1516
1516
// strip provider info from SNI
1517
1517
//
1518
1518
int iColon = errorMessage.IndexOf(':');
@@ -1544,33 +1544,33 @@ internal SqlError ProcessSNIError(TdsParserStateObject stateObj)
1544
1544
if (TdsParserStateObjectFactory.UseManagedSNI)
1545
1545
{
1546
1546
// SNI error. Append additional error message info if available and hasn't been included.
1547
- string sniLookupMessage = SQL.GetSNIErrorMessage(details.sniErrorNumber );
1547
+ string sniLookupMessage = SQL.GetSNIErrorMessage(details.SniErrorNumber );
1548
1548
errorMessage = (string.IsNullOrEmpty(errorMessage) || errorMessage.Contains(sniLookupMessage))
1549
1549
? sniLookupMessage
1550
1550
: (sniLookupMessage + ": " + errorMessage);
1551
1551
}
1552
1552
else
1553
1553
{
1554
1554
// SNI error. Replace the entire message.
1555
- errorMessage = SQL.GetSNIErrorMessage(details.sniErrorNumber );
1555
+ errorMessage = SQL.GetSNIErrorMessage(details.SniErrorNumber );
1556
1556
1557
1557
// If its a LocalDB error, then nativeError actually contains a LocalDB-specific error code, not a win32 error code
1558
- if (details.sniErrorNumber == SniErrors.LocalDBErrorCode)
1558
+ if (details.SniErrorNumber == SniErrors.LocalDBErrorCode)
1559
1559
{
1560
- errorMessage += LocalDbApi.GetLocalDbMessage((int)details.nativeError );
1560
+ errorMessage += LocalDbApi.GetLocalDbMessage((int)details.NativeError );
1561
1561
win32ErrorCode = 0;
1562
1562
}
1563
1563
SqlClientEventSource.Log.TryAdvancedTraceEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > Extracting the latest exception from native SNI. errorMessage: {0}", errorMessage);
1564
1564
}
1565
1565
}
1566
1566
errorMessage = string.Format("{0} (provider: {1}, error: {2} - {3})",
1567
- sqlContextInfo, providerName, (int)details.sniErrorNumber , errorMessage);
1567
+ sqlContextInfo, providerName, (int)details.SniErrorNumber , errorMessage);
1568
1568
1569
1569
SqlClientEventSource.Log.TryAdvancedTraceErrorEvent("<sc.TdsParser.ProcessSNIError |ERR|ADV > SNI Error Message. Native Error = {0}, Line Number ={1}, Function ={2}, Exception ={3}, Server = {4}",
1570
- (int)details.nativeError , (int)details.lineNumber , details.function , details.exception , _server);
1570
+ (int)details.NativeError , (int)details.LineNumber , details.Function , details.Exception , _server);
1571
1571
1572
- return new SqlError(infoNumber: (int)details.nativeError , errorState: 0x00, TdsEnums.FATAL_ERROR_CLASS, _server,
1573
- errorMessage, details.function , (int)details.lineNumber , win32ErrorCode: details.nativeError , details.exception );
1572
+ return new SqlError(infoNumber: (int)details.NativeError , errorState: 0x00, TdsEnums.FATAL_ERROR_CLASS, _server,
1573
+ errorMessage, details.Function , (int)details.LineNumber , win32ErrorCode: details.NativeError , details.Exception );
1574
1574
}
1575
1575
}
1576
1576
0 commit comments