Skip to content

Commit

Permalink
Merge pull request #171 from SebastianC/lambdaIsWindows
Browse files Browse the repository at this point in the history
Fixes #170 - Refactoring checks for Windows platform to work with AWS/Lambda.
  • Loading branch information
bgrainger committed Jan 31, 2017
2 parents db81790 + d54b0db commit 5daf099
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/MySqlConnector/Serialization/ConnectionSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public ConnectionSettings(MySqlConnectionStringBuilder csb)
ConnectionString = csb.ConnectionString;

// Base Options
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && (csb.Server.StartsWith("/", StringComparison.Ordinal) || csb.Server.StartsWith("./", StringComparison.Ordinal)))
if (!Utility.IsWindows() && (csb.Server.StartsWith("/", StringComparison.Ordinal) || csb.Server.StartsWith("./", StringComparison.Ordinal)))
{
if (!File.Exists(csb.Server))
throw new MySqlException("Cannot find Unix Socket at " + csb.Server);
Expand Down
2 changes: 1 addition & 1 deletion src/MySqlConnector/Serialization/MySqlSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ private async Task InitSslAsync(ProtocolCapabilities serverCapabilities, Connect

// SslProtocols.Tls1.2 throws an exception in Windows, see https://github.com/mysql-net/MySqlConnector/pull/101
var sslProtocols = SslProtocols.Tls | SslProtocols.Tls11;
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
if (!Utility.IsWindows())
sslProtocols |= SslProtocols.Tls12;

var checkCertificateRevocation = cs.SslMode == MySqlSslMode.VerifyFull;
Expand Down
2 changes: 1 addition & 1 deletion src/MySqlConnector/Serialization/SerializationUtility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public static void SetKeepalive(Socket socket, uint keepAliveTimeSeconds)

// If keepAliveTimeSeconds > 0, override keepalive options on the socket
const uint keepAliveIntervalMillis = 1000;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
if (Utility.IsWindows())
{
// http://stackoverflow.com/a/11834055/1419658
// Windows takes time in milliseconds
Expand Down
16 changes: 15 additions & 1 deletion src/MySqlConnector/Utility.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Globalization;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace MySql.Data
Expand Down Expand Up @@ -96,5 +97,18 @@ public static void WriteUtf8(this BinaryWriter writer, string value, int startIn
}
}
}
}

public static bool IsWindows()
{
try
{
// OSPlatform.Windows is not supported on AWS Lambda
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
}
catch (PlatformNotSupportedException)
{
return false;
}
}
}
}

0 comments on commit 5daf099

Please sign in to comment.