feat: update syshelper version to 0.2.0 and enhance firewall rules in installer
CI / Windows x64 (push) Successful in 10m9s
CI / Windows x64 (push) Successful in 10m9s
This commit is contained in:
@@ -234,6 +234,31 @@ begin
|
||||
'', SW_HIDE, ewWaitUntilTerminated, Code);
|
||||
end;
|
||||
|
||||
// Без правила брандмауэра панель доступна только с самого компьютера: Windows
|
||||
// режет входящие подключения по умолчанию. Ограничиваемся частными и доменными
|
||||
// сетями — в публичной (кафе, вокзал) панель наружу смотреть не должна.
|
||||
procedure RemoveFirewallRule();
|
||||
var
|
||||
Code: Integer;
|
||||
begin
|
||||
Exec(ExpandConstant('{sys}\netsh.exe'),
|
||||
'advfirewall firewall delete rule name="{#AppName}"',
|
||||
'', SW_HIDE, ewWaitUntilTerminated, Code);
|
||||
end;
|
||||
|
||||
procedure OpenFirewallPort();
|
||||
var
|
||||
Code: Integer;
|
||||
begin
|
||||
// сначала снимаем старое правило, иначе при переустановке они накопятся
|
||||
RemoveFirewallRule();
|
||||
Exec(ExpandConstant('{sys}\netsh.exe'),
|
||||
'advfirewall firewall add rule name="{#AppName}" dir=in action=allow' +
|
||||
' protocol=TCP localport=8787 profile=private,domain' +
|
||||
' program="' + ExpandConstant('{app}\{#AppExeName}') + '"',
|
||||
'', SW_HIDE, ewWaitUntilTerminated, Code);
|
||||
end;
|
||||
|
||||
procedure CurStepChanged(CurStep: TSetupStep);
|
||||
var
|
||||
Started: Boolean;
|
||||
@@ -245,6 +270,7 @@ begin
|
||||
// только затем поднимаем службу.
|
||||
LockDownDataDir();
|
||||
SetPassword();
|
||||
OpenFirewallPort();
|
||||
Started := InstallService();
|
||||
|
||||
// Обе проверки — про молчаливый отказ: без них установка отрапортует об
|
||||
@@ -270,4 +296,5 @@ begin
|
||||
|
||||
StopService();
|
||||
RunSc('delete {#ServiceName}');
|
||||
RemoveFirewallRule();
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user