Fix non-nil values for mysql_ssl_set(), broken in r4031.

This commit is contained in:
Ansgar Becker
2012-01-24 22:19:02 +00:00
parent a86650d10b
commit 15cf7cd45b

View File

@ -836,6 +836,7 @@ var
CurCharset: String; CurCharset: String;
StartupInfo: TStartupInfo; StartupInfo: TStartupInfo;
ExitCode: LongWord; ExitCode: LongWord;
sslca, sslkey, sslcert: PAnsiChar;
PluginDir: AnsiString; PluginDir: AnsiString;
Vars, Status: TDBQuery; Vars, Status: TDBQuery;
begin begin
@ -852,11 +853,21 @@ begin
case FParameters.NetType of case FParameters.NetType of
ntMySQL_TCPIP: begin ntMySQL_TCPIP: begin
if FParameters.WantSSL then begin if FParameters.WantSSL then begin
// mysql_ssl_set() wants nil, while PAnsiChar(AnsiString()) is never nil
sslkey := nil;
sslcert := nil;
sslca := nil;
if FParameters.SSLPrivateKey <> '' then
sslkey := PAnsiChar(AnsiString(FParameters.SSLPrivateKey));
if FParameters.SSLCertificate <> '' then
sslcert := PAnsiChar(AnsiString(FParameters.SSLCertificate));
if FParameters.SSLCACertificate <> '' then
sslca := PAnsiChar(AnsiString(FParameters.SSLCACertificate));
{ TODO : Use Cipher and CAPath parameters } { TODO : Use Cipher and CAPath parameters }
mysql_ssl_set(FHandle, mysql_ssl_set(FHandle,
PAnsiChar(AnsiString(FParameters.SSLPrivateKey)), sslkey,
PAnsiChar(AnsiString(FParameters.SSLCertificate)), sslcert,
PAnsiChar(AnsiString(FParameters.SSLCACertificate)), sslca,
nil, nil,
nil); nil);
Log(lcInfo, 'SSL parameters successfully set.'); Log(lcInfo, 'SSL parameters successfully set.');