Raise connection error when local SSH port for plink is already in use. See http://www.heidisql.com/forum.php?t=18395

This commit is contained in:
Ansgar Becker
2015-05-11 17:51:12 +00:00
parent 9228488032
commit e206d95c42
3 changed files with 34 additions and 2 deletions

View File

@ -13,7 +13,7 @@ uses
Windows, ShlObj, ActiveX, VirtualTrees, SynRegExpr, Messages, Math,
Registry, DateUtils, Generics.Collections, StrUtils, AnsiStrings, TlHelp32, Types,
dbconnection, mysql_structures, SynMemo, Menus, WinInet, gnugettext, Themes,
Character, ImgList, System.UITypes, ActnList;
Character, ImgList, System.UITypes, ActnList, WinSock;
type
@ -325,6 +325,7 @@ type
function GetSystemImageIndex(Filename: String): Integer;
function GetExecutableBits: Byte;
procedure Help(Sender: TObject; Anchor: String);
function PortOpen(Port: Word): Boolean;
var
@ -2690,6 +2691,29 @@ begin
end;
function PortOpen(Port: Word): Boolean;
var
client: sockaddr_in;
sock: Integer;
ret: Integer;
wsdata: WSAData;
begin
Result := True;
ret := WSAStartup($0002, wsdata);
if ret<>0 then
Exit;
try
client.sin_family := AF_INET;
client.sin_port := htons(Port);
client.sin_addr.s_addr := inet_addr(PAnsiChar('127.0.0.1'));
sock := socket(AF_INET, SOCK_STREAM, 0);
Result := connect(sock, client, SizeOf(client)) <> 0;
finally
WSACleanup;
end;
end;
{ Threading stuff }