Skip to content

Commit bb6ee08

Browse files
committed
Add convenience PayloadData constructor.
1 parent 2b47735 commit bb6ee08

File tree

10 files changed

+18
-26
lines changed

10 files changed

+18
-26
lines changed

src/MySqlConnector/Core/ServerSession.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -313,20 +313,20 @@ private async Task<PayloadData> SwitchAuthenticationAsync(ConnectionSettings cs,
313313
case "mysql_native_password":
314314
AuthPluginData = switchRequest.Data;
315315
var hashedPassword = AuthenticationUtility.CreateAuthenticationResponse(AuthPluginData, 0, cs.Password);
316-
payload = new PayloadData(new ArraySegment<byte>(hashedPassword));
316+
payload = new PayloadData(hashedPassword);
317317
await SendReplyAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);
318318
return await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
319319

320320
case "mysql_clear_password":
321321
if (!m_isSecureConnection)
322322
throw new MySqlException("Authentication method '{0}' requires a secure connection.".FormatInvariant(switchRequest.Name));
323-
payload = new PayloadData(new ArraySegment<byte>(Encoding.UTF8.GetBytes(cs.Password)));
323+
payload = new PayloadData(Encoding.UTF8.GetBytes(cs.Password));
324324
await SendReplyAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);
325325
return await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
326326

327327
case "caching_sha2_password":
328328
var scrambleBytes = AuthenticationUtility.CreateScrambleResponse(Utility.TrimZeroByte(switchRequest.Data), cs.Password);
329-
payload = new PayloadData(new ArraySegment<byte>(scrambleBytes));
329+
payload = new PayloadData(scrambleBytes);
330330
await SendReplyAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);
331331
payload = await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
332332

@@ -366,7 +366,7 @@ private async Task<PayloadData> SendClearPasswordAsync(ConnectionSettings cs, IO
366366
Array.Resize(ref passwordBytes, passwordBytes.Length + 1);
367367

368368
// send plaintext password
369-
var payload = new PayloadData(new ArraySegment<byte>(passwordBytes));
369+
var payload = new PayloadData(passwordBytes);
370370
await SendReplyAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);
371371
return await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
372372
}
@@ -404,7 +404,7 @@ private async Task<PayloadData> SendEncryptedPasswordAsync(
404404
// encrypt with RSA public key
405405
var padding = switchRequest.Name == "caching_sha2_password" ? RSAEncryptionPadding.Pkcs1 : RSAEncryptionPadding.OaepSHA1;
406406
var encryptedPassword = rsa.Encrypt(passwordBytes, padding);
407-
var payload = new PayloadData(new ArraySegment<byte>(encryptedPassword));
407+
var payload = new PayloadData(encryptedPassword);
408408
await SendReplyAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);
409409
return await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
410410
}
@@ -429,7 +429,7 @@ private async Task<string> GetRsaPublicKeyAsync(string switchRequestName, Connec
429429
{
430430
// request the RSA public key
431431
var payloadContent = switchRequestName == "caching_sha2_password" ? (byte) 0x02 : (byte) 0x01;
432-
await SendReplyAsync(new PayloadData(new ArraySegment<byte>(new byte[] { payloadContent }, 0, 1)), ioBehavior, cancellationToken).ConfigureAwait(false);
432+
await SendReplyAsync(new PayloadData(new[] { payloadContent }), ioBehavior, cancellationToken).ConfigureAwait(false);
433433
var payload = await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
434434
var publicKeyPayload = AuthenticationMoreDataPayload.Create(payload);
435435
return Encoding.ASCII.GetString(publicKeyPayload.Data);

src/MySqlConnector/Protocol/PayloadData.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ namespace MySqlConnector.Protocol
55
{
66
internal struct PayloadData
77
{
8-
public PayloadData(ArraySegment<byte> data)
9-
{
10-
ArraySegment = data;
11-
}
8+
public PayloadData(byte[] data) => ArraySegment = new ArraySegment<byte>(data);
9+
10+
public PayloadData(ArraySegment<byte> data) => ArraySegment = data;
1211

1312
public void ThrowIfError()
1413
{

src/MySqlConnector/Protocol/Payloads/ChangeUserPayload.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public static PayloadData Create(string user, byte[] authResponse, string schema
2020
if (connectionAttributes != null)
2121
writer.Write(connectionAttributes);
2222

23-
return new PayloadData(new ArraySegment<byte>(writer.ToBytes()));
23+
return new PayloadData(writer.ToBytes());
2424
}
2525
}
2626
}

src/MySqlConnector/Protocol/Payloads/EmptyPayload.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ internal sealed class EmptyPayload
66
{
77
public static PayloadData Create()
88
{
9-
return new PayloadData(new ArraySegment<byte>(new byte[] { }));
9+
return new PayloadData(new byte[0]);
1010
}
1111
}
1212
}

src/MySqlConnector/Protocol/Payloads/HandshakeResponse41Payload.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private static PayloadWriter CreateCapabilitiesPayload(ProtocolCapabilities serv
3333
}
3434

3535
public static PayloadData CreateWithSsl(ProtocolCapabilities serverCapabilities, ConnectionSettings cs, bool useCompression) =>
36-
new PayloadData(new ArraySegment<byte>(CreateCapabilitiesPayload(serverCapabilities, cs, useCompression, ProtocolCapabilities.Ssl).ToBytes()));
36+
new PayloadData(CreateCapabilitiesPayload(serverCapabilities, cs, useCompression, ProtocolCapabilities.Ssl).ToBytes());
3737

3838
public static PayloadData Create(InitialHandshakePayload handshake, ConnectionSettings cs, bool useCompression, byte[] connectionAttributes)
3939
{
@@ -53,7 +53,7 @@ public static PayloadData Create(InitialHandshakePayload handshake, ConnectionSe
5353
if (connectionAttributes != null)
5454
writer.Write(connectionAttributes);
5555

56-
return new PayloadData(new ArraySegment<byte>(writer.ToBytes()));
56+
return new PayloadData(writer.ToBytes());
5757
}
5858
}
5959
}

src/MySqlConnector/Protocol/Payloads/InitDatabasePayload.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public static PayloadData Create(string databaseName)
1313
writer.WriteByte((byte) CommandKind.InitDatabase);
1414
writer.Write(Encoding.UTF8.GetBytes(databaseName));
1515

16-
return new PayloadData(new ArraySegment<byte>(writer.ToBytes()));
16+
return new PayloadData(writer.ToBytes());
1717
}
1818
}
1919
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using System;
2-
31
namespace MySqlConnector.Protocol.Payloads
42
{
53
internal sealed class PingPayload
64
{
7-
public static PayloadData Create() => new PayloadData(new ArraySegment<byte>(new[] { (byte) CommandKind.Ping }));
5+
public static PayloadData Create() => new PayloadData(new[] { (byte) CommandKind.Ping });
86
}
97
}

src/MySqlConnector/Protocol/Payloads/QueryPayload.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Text;
32

43
namespace MySqlConnector.Protocol.Payloads
@@ -11,7 +10,7 @@ public static PayloadData Create(string query)
1110
var payload = new byte[length + 1];
1211
payload[0] = (byte) CommandKind.Query;
1312
Encoding.UTF8.GetBytes(query, 0, query.Length, payload, 1);
14-
return new PayloadData(new ArraySegment<byte>(payload));
13+
return new PayloadData(payload);
1514
}
1615
}
1716
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using System;
2-
31
namespace MySqlConnector.Protocol.Payloads
42
{
53
internal sealed class QuitPayload
64
{
7-
public static PayloadData Create() => new PayloadData(new ArraySegment<byte>(new[] { (byte) CommandKind.Quit }));
5+
public static PayloadData Create() => new PayloadData(new[] { (byte) CommandKind.Quit });
86
}
97
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using System;
2-
31
namespace MySqlConnector.Protocol.Payloads
42
{
53
internal sealed class ResetConnectionPayload
64
{
7-
public static PayloadData Create() => new PayloadData(new ArraySegment<byte>(new[] { (byte) CommandKind.ResetConnection }));
5+
public static PayloadData Create() => new PayloadData(new[] { (byte) CommandKind.ResetConnection });
86
}
97
}

0 commit comments

Comments
 (0)