initial ipv6 support

This commit is contained in:
Massimo Melina 2020-05-22 12:14:24 +02:00
parent 6367b5675d
commit 9bfec9beaa
4 changed files with 20 additions and 9 deletions

View File

@ -3,5 +3,6 @@ Initially developed with Delphi 6, now with Delphi 10.3.3
Icons are generated at http://fontello.com/ . Use fontello.json for further modifications. Icons are generated at http://fontello.com/ . Use fontello.json for further modifications.
=== LIBS USED === LIBS USED
ICS v8.58 by François PIETTE http://www.overbyte.be ICS v8.63 by François PIETTE http://www.overbyte.be
TRegExpr v0.952 by Andrey V. Sorokin http://www.regexpstudio.com/TRegExpr/TRegExpr.html TRegExpr v0.952 by Andrey V. Sorokin http://www.regexpstudio.com/TRegExpr/TRegExpr.html
JEDI Code Library v2.7 https://github.com/project-jedi/jcl

View File

@ -29,7 +29,7 @@ unit HSlib;
interface interface
uses uses
OverbyteIcsWSocket, classes, messages, winprocs, forms, extctrls, sysutils, system.contnrs, strUtils, winsock, inifiles, types; OverbyteIcsWSocket, OverbyteIcsWSockets, classes, messages, winprocs, forms, extctrls, sysutils, system.contnrs, strUtils, winsock, inifiles, types;
const const
VERSION = '2.11.0'; VERSION = '2.11.0';
@ -261,7 +261,7 @@ type
procedure calculateSpeed(); procedure calculateSpeed();
procedure processDisconnecting(); procedure processDisconnecting();
public public
sock: Twsocket; // listening socket sock: TwsocketServer; // listening socket
conns, // full list of connected clients conns, // full list of connected clients
disconnecting, // list of pending disconnections disconnecting, // list of pending disconnections
offlines, // disconnected clients to be freed offlines, // disconnected clients to be freed
@ -661,15 +661,25 @@ begin
result:=FALSE; result:=FALSE;
if active or not assigned(sock) then exit; if active or not assigned(sock) then exit;
try try
if onAddress = '' then onAddress:='*'; if onAddress = '' then
if (onAddress = '') or (onAddress = '*') then sock.addr:='0.0.0.0' onAddress:='*';
else sock.addr:=onAddress; sock.addr:=ifThen(onAddress = '*', '0.0.0.0', onAddress);
sock.port:=port; sock.port:=port;
sock.proto:='6';
sock.listen(); sock.listen();
if port = '0' then if port = '0' then
P_port:=sock.getxport(); P_port:=sock.getxport();
result:=TRUE; result:=TRUE;
try
sock.MultiListenSockets.Clear();
with sock.MultiListenSockets.Add do
begin
addr := '::';
Port := sock.port
end;
sock.MultiListen();
except end;
notify(HE_OPEN, NIL); notify(HE_OPEN, NIL);
except except
end; end;
@ -689,7 +699,7 @@ begin notify(HE_CLOSE, NIL) end;
constructor ThttpSrv.create(); constructor ThttpSrv.create();
begin begin
sock:=TWSocket.create(NIL); sock:=TWSocketServer.create(NIL);
sock.OnSessionAvailable:=connected; sock.OnSessionAvailable:=connected;
sock.OnSessionClosed:=disconnected; sock.OnSessionClosed:=disconnected;
sock.OnBgException:=bgexception; sock.OnBgException:=bgexception;

View File

@ -2935,7 +2935,6 @@ object mainFrm: TmainFrm
object pwdInPagesChk: TMenuItem object pwdInPagesChk: TMenuItem
AutoCheck = True AutoCheck = True
Caption = 'Include password in pages (for download managers)' Caption = 'Include password in pages (for download managers)'
OnClick = pwdInPagesChkClick
end end
object httpsUrlsChk: TMenuItem object httpsUrlsChk: TMenuItem
AutoCheck = True AutoCheck = True

View File

@ -1,3 +1,4 @@
+ replace shellExtDlg.gif with transparent png (english system)
+ expiring links + expiring links
* dismiss regexp lib http://docwiki.embarcadero.com/Libraries/Rio/en/System.RegularExpressions.TRegEx * dismiss regexp lib http://docwiki.embarcadero.com/Libraries/Rio/en/System.RegularExpressions.TRegEx
+ ipv6 + ipv6