@@ -79,7 +79,7 @@ public override async Task<int> ReadAsync(byte[] buffer, int offset, int count,
79
79
return NegotiateStreamConstants . HeaderLength ;
80
80
}
81
81
// Read and cache packet from server.
82
- var payload = await m_serverSession . ReceiveReplyAsync ( m_ioBehavior , cancellationToken ) ;
82
+ var payload = await m_serverSession . ReceiveReplyAsync ( m_ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
83
83
var segment = payload . ArraySegment ;
84
84
85
85
if ( segment . Count > NegotiateStreamConstants . MaxPayloadLength )
@@ -118,7 +118,7 @@ public override async Task<int> ReadAsync(byte[] buffer, int offset, int count,
118
118
return bytesRead ;
119
119
}
120
120
121
- public override int Read ( byte [ ] buffer , int offset , int count ) => ReadAsync ( buffer , offset , count , m_cancellationToken ) . Result ;
121
+ public override int Read ( byte [ ] buffer , int offset , int count ) => ReadAsync ( buffer , offset , count , m_cancellationToken ) . GetAwaiter ( ) . GetResult ( ) ;
122
122
123
123
public override async Task WriteAsync ( byte [ ] buffer , int offset , int count , CancellationToken cancellationToken )
124
124
{
@@ -183,12 +183,12 @@ public override async Task WriteAsync(byte[] buffer, int offset, int count, Canc
183
183
// full payload provided
184
184
payload = new PayloadData ( new ArraySegment < byte > ( buffer , offset , m_writePayloadLength ) ) ;
185
185
}
186
- await m_serverSession . SendReplyAsync ( payload , m_ioBehavior , cancellationToken ) ;
186
+ await m_serverSession . SendReplyAsync ( payload , m_ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
187
187
// Need to parse NegotiateStream header next time
188
188
m_writePayloadLength = 0 ;
189
189
}
190
190
191
- public override void Write ( byte [ ] buffer , int offset , int count ) => WriteAsync ( buffer , offset , count , m_cancellationToken ) . Wait ( ) ;
191
+ public override void Write ( byte [ ] buffer , int offset , int count ) => WriteAsync ( buffer , offset , count , m_cancellationToken ) . GetAwaiter ( ) . GetResult ( ) ;
192
192
193
193
public override bool CanRead => true ;
194
194
@@ -223,14 +223,24 @@ public static async Task<PayloadData> AuthenticateAsync(byte[] switchRequestPayl
223
223
using ( var negotiateStream = new NegotiateStream ( innerStream ) )
224
224
{
225
225
var targetName = GetServicePrincipalName ( switchRequestPayloadData ) ;
226
- await negotiateStream . AuthenticateAsClientAsync ( CredentialCache . DefaultNetworkCredentials , targetName ) ;
227
-
226
+ #if NETSTANDARD1_3
227
+ await negotiateStream . AuthenticateAsClientAsync ( CredentialCache . DefaultNetworkCredentials , targetName ) . ConfigureAwait ( false ) ;
228
+ #else
229
+ if ( ioBehavior == IOBehavior . Synchronous )
230
+ {
231
+ negotiateStream . AuthenticateAsClient ( CredentialCache . DefaultNetworkCredentials , targetName ) ;
232
+ }
233
+ else
234
+ {
235
+ await negotiateStream . AuthenticateAsClientAsync ( CredentialCache . DefaultNetworkCredentials , targetName ) . ConfigureAwait ( false ) ;
236
+ }
237
+ #endif
228
238
if ( innerStream . MySQLProtocolPayload . ArraySegment . Array != null )
229
239
// return already pre-read OK packet.
230
240
return innerStream . MySQLProtocolPayload ;
231
241
232
242
// Read final OK packet from server
233
- return await session . ReceiveReplyAsync ( ioBehavior , cancellationToken ) ;
243
+ return await session . ReceiveReplyAsync ( ioBehavior , cancellationToken ) . ConfigureAwait ( false ) ;
234
244
}
235
245
}
236
246
}
0 commit comments