unit _uc_tek_updater_thread;
interface
uses
Windows,SysUtils,ComCtrls,Classes,ScktComp;
type
TTEK_UPDATER_THREAD = class(TThread)
private
FCCC :TClientSocket;
_WinSk :TWinSocketStream;
StatError :Integer;
_sDataZund : string;
_sDataRESPONSE :String;
procedure _OnTekUpTerminated(Sender: TObject);
protected
procedure Execute; override;
public
_tek_up_Domain : string;
_tek_up_port : integer;
_tek_up_full_http_link_stok : string;
_tek_up_com_path_plus_Tik_File : string;
_tek_up_zunderCOM :TTreeNode;
constructor Create;
destructor Destroy; override;
end;
implementation
uses unit1,_uc_refs_vars,_uc_refs_consts,_uc_ip_codecs,_uc_tek_updater_func;
{ TTekTekTHREAD }
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
constructor TTEK_UPDATER_THREAD.Create;
begin
inherited Create(True); // Intially suspended
FreeOnTerminate := True;
OnTerminate := _OnTekUpTerminated;
FCCC := TClientSocket.Create(nil);
FCCC.ClientType := ctBlocking;
end;
//------------------------------------------------------------------------------
destructor TTEK_UPDATER_THREAD.Destroy;
begin
FCCC.Free;
inherited;
end;
//------------------------------------------------------------------------------
procedure TTEK_UPDATER_THREAD._OnTekUpTerminated(Sender: TObject);
begin
//TLogger.Log(ret+sep+ret+'_OnTekTerminated'+ret+_tek_Domain+ret+_tek_full_http_link_stok+ret+_tek_com_path_plus_Tik_File);
//TLogger.Log('TComUPDATERdata:'+_tek_up_Domain+ret+_sDataRESPONSE+ret+sep+ret+_sDataZund+ret+sep);
if (NOT _tek_up_zunderCOM._EXO_NODE_IS_STOPING) then //avoid coincidence
TComUPDATER._goUpdaterComTekData(_sDataRESPONSE,_tek_up_zunderCOM);
end;
//------------------------------------------------------------------------------
procedure TTEK_UPDATER_THREAD.Execute;
var
_RcvL:integer;
_pBuf: PChar;
aa : string;
begin
StatError:=0;
_RcvL:=0;
_sDataRESPONSE:='';
try
// this will BOYA dend ipwhatver it is = good or lan
//cee:='u=32&b='+encry(ip_to_int(AA_LOCAL_USED_IP));
//if (a_NAT_is_on) then cee:='u=32&s=1'; // made WAN in start_masters !!!
aa:='e=_T2&v='+_VV_LOCAL_USER_PC_ID;
if (_VV_LOCAL_CONFIG_ROUTER_IS_ON) then aa:=aa+'&n=1' // NAT-Active
else aa:=aa+'&c='+TIpCodecs.encry(TIpCodecs.ip_to_int(_VV_LOCAL_USER_IP_MASTER)); // NORMAL
// this will BOYA dend ipwhatver it is = good or lan
_sDataZund:='GET '+_tek_up_com_path_plus_Tik_File+'?'+aa+' HTTP/1.0'+ret+
'User-Agent: '+_C_EXOSEE_WEB_TEK_USER_MERDA+ret+
'Host: '+_tek_up_Domain+ret+
'Connection: Close'+ret+
ret;
FCCC.Host_name := _tek_up_Domain;
FCCC.Port := _tek_up_port;
FCCC.Active := True;
if FCCC.Socket.Connected then
begin
_WinSk := TWinSocketStream.Create(FCCC.Socket, 10000);
try ////----------------t2
_WinSk.Write(_sDataZund[1],length(_sDataZund));
GetMem(_pBuf, _C_EXOSEE_WEB_TEK_BUFFER_SIZE);
try
while (not Terminated)and(FCCC.Socket.Connected) do
begin
if _WinSk.WaitForData(10000) then // 10 sec ...
begin
_RcvL:=_WinSk.Read(_pBuf^,_C_EXOSEE_WEB_TEK_BUFFER_SIZE);
_sDataRESPONSE:=_sDataRESPONSE+ copy(_pBuf,1,_RcvL);
end; // 5 sec data on
if _RcvL=0 then break;
end; // end Loop ---------------------------------------------------------------
finally FreeMem(_pBuf); end; //------------4
finally
FCCC.Socket.Close;
_WinSk.Free;
end; //----------------t2
end
else
StatError:=1; //error_connection);
except end; // avoid errors
end;
end.
interface
uses
Windows,SysUtils,ComCtrls,Classes,ScktComp;
type
TTEK_UPDATER_THREAD = class(TThread)
private
FCCC :TClientSocket;
_WinSk :TWinSocketStream;
StatError :Integer;
_sDataZund : string;
_sDataRESPONSE :String;
procedure _OnTekUpTerminated(Sender: TObject);
protected
procedure Execute; override;
public
_tek_up_Domain : string;
_tek_up_port : integer;
_tek_up_full_http_link_stok : string;
_tek_up_com_path_plus_Tik_File : string;
_tek_up_zunderCOM :TTreeNode;
constructor Create;
destructor Destroy; override;
end;
implementation
uses unit1,_uc_refs_vars,_uc_refs_consts,_uc_ip_codecs,_uc_tek_updater_func;
{ TTekTekTHREAD }
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
constructor TTEK_UPDATER_THREAD.Create;
begin
inherited Create(True); // Intially suspended
FreeOnTerminate := True;
OnTerminate := _OnTekUpTerminated;
FCCC := TClientSocket.Create(nil);
FCCC.ClientType := ctBlocking;
end;
//------------------------------------------------------------------------------
destructor TTEK_UPDATER_THREAD.Destroy;
begin
FCCC.Free;
inherited;
end;
//------------------------------------------------------------------------------
procedure TTEK_UPDATER_THREAD._OnTekUpTerminated(Sender: TObject);
begin
//TLogger.Log(ret+sep+ret+'_OnTekTerminated'+ret+_tek_Domain+ret+_tek_full_http_link_stok+ret+_tek_com_path_plus_Tik_File);
//TLogger.Log('TComUPDATERdata:'+_tek_up_Domain+ret+_sDataRESPONSE+ret+sep+ret+_sDataZund+ret+sep);
if (NOT _tek_up_zunderCOM._EXO_NODE_IS_STOPING) then //avoid coincidence
TComUPDATER._goUpdaterComTekData(_sDataRESPONSE,_tek_up_zunderCOM);
end;
//------------------------------------------------------------------------------
procedure TTEK_UPDATER_THREAD.Execute;
var
_RcvL:integer;
_pBuf: PChar;
aa : string;
begin
StatError:=0;
_RcvL:=0;
_sDataRESPONSE:='';
try
// this will BOYA dend ipwhatver it is = good or lan
//cee:='u=32&b='+encry(ip_to_int(AA_LOCAL_USED_IP));
//if (a_NAT_is_on) then cee:='u=32&s=1'; // made WAN in start_masters !!!
aa:='e=_T2&v='+_VV_LOCAL_USER_PC_ID;
if (_VV_LOCAL_CONFIG_ROUTER_IS_ON) then aa:=aa+'&n=1' // NAT-Active
else aa:=aa+'&c='+TIpCodecs.encry(TIpCodecs.ip_to_int(_VV_LOCAL_USER_IP_MASTER)); // NORMAL
// this will BOYA dend ipwhatver it is = good or lan
_sDataZund:='GET '+_tek_up_com_path_plus_Tik_File+'?'+aa+' HTTP/1.0'+ret+
'User-Agent: '+_C_EXOSEE_WEB_TEK_USER_MERDA+ret+
'Host: '+_tek_up_Domain+ret+
'Connection: Close'+ret+
ret;
FCCC.Host_name := _tek_up_Domain;
FCCC.Port := _tek_up_port;
FCCC.Active := True;
if FCCC.Socket.Connected then
begin
_WinSk := TWinSocketStream.Create(FCCC.Socket, 10000);
try ////----------------t2
_WinSk.Write(_sDataZund[1],length(_sDataZund));
GetMem(_pBuf, _C_EXOSEE_WEB_TEK_BUFFER_SIZE);
try
while (not Terminated)and(FCCC.Socket.Connected) do
begin
if _WinSk.WaitForData(10000) then // 10 sec ...
begin
_RcvL:=_WinSk.Read(_pBuf^,_C_EXOSEE_WEB_TEK_BUFFER_SIZE);
_sDataRESPONSE:=_sDataRESPONSE+ copy(_pBuf,1,_RcvL);
end; // 5 sec data on
if _RcvL=0 then break;
end; // end Loop ---------------------------------------------------------------
finally FreeMem(_pBuf); end; //------------4
finally
FCCC.Socket.Close;
_WinSk.Free;
end; //----------------t2
end
else
StatError:=1; //error_connection);
except end; // avoid errors
end;
end.