unit _uc_i_builder;
interface
uses
SysUtils, Classes,ScktComp,comctrls,forms;
type
T_i_builder_THREAD = class(TThread)
private
FCCC :TClientSocket;
sDTS,_ssdbg :string;
_statCode :byte;
protected
procedure Execute; override;
procedure On_i_builder_thread_terminated(Sender: TObject);
public
_newUzoPP :string;
_comADRiDX :string;
_dadyComNode:TTreeNode;
constructor Create;
destructor Destroy; override;
end;
implementation
uses unit1,_uc_funcs,_uc_refs_vars,_uc_refs_consts,_uc_crypto,_uc_cs_new1ini;
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
constructor T_i_builder_THREAD.Create;
begin
inherited Create(True); // Intially suspended
FreeOnTerminate := True;
OnTerminate := On_i_builder_thread_terminated;
FCCC := TClientSocket.Create(Application);
FCCC.ClientType := ctBlocking;
end;
//------------------------------------------------------------------------------
destructor T_i_builder_THREAD.Destroy;
begin
FCCC.Free;
inherited;
end;
//------------------------------------------------------------------------------
procedure T_i_builder_THREAD.On_i_builder_thread_terminated(Sender: TObject);
begin
//_DoDebugLOG('On_i_builder_terminated:'+_ssdbg); // sDTS ;
//dec(_ACTIVE_THREADS_COUNT);
case _statCode of // add user + reason
// 0 : _FXOC_MAIN.TheLOGGER.Log('eR/0 :'+_newUzoPP); // no coonection
// 1 : _FXOC_MAIN.TheLOGGER.Log('eR/1 :',1); // 1_He_NoComInHome
2 : _FXOC_MAIN.TheLOGGER.Log('I_AS_LAN, _X_REJECTED_i',1); // -asLAN_not_Accepted
3 : _FXOC_MAIN.TheLOGGER.Log('X_BANNED_i',1); // he banned me there
4 : _FXOC_MAIN.TheLOGGER.Log('_e781',1); // errKode
5 : _FXOC_MAIN.TheLOGGER.Log('_e782',1); // errKode
7 : _FXOC_MAIN.TheLOGGER.Log('_e783',1); // errKode
10 : set_iBuilt_1_DataNode(_newUzoPP,sDTS,_dadyComNode);
end;
end;
//------------------------------------------------------------------------------
procedure T_i_builder_THREAD.Execute;
var
sk: TWinSocketStream;
begin
(* *)
//inc(_ACTIVE_THREADS_COUNT);
_ssdbg:='_ss_dbg_1';
try
FCCC.Host__ip := _newUzoPP; // 11.11.11.11
FCCC.Port := _C_EXOSEE_MASTER_SERVER_PORT;
FCCC.Active := True;
sk := TWinSocketStream.Create(FCCC.Socket, 20000);
try ////----------------t2
_ssdbg:='_ss_dbg_2';
FCCC.Socket.SendText(TCrypto._BarzaToon(_EXO_iBUILDER)); // send
if sk.WaitForData(10000) then // wait 10 sec
begin
sDTS:=FCCC.Socket.ReceiveText;
_ssdbg:='_ss_dbg_3';
if (sDTS[2]='A') and (sDTS[4]='a') then // signal given ... then go ....
begin
_ssdbg:='_ss_dbg_4';
_statCode :=7;
FCCC.Socket.SendText(TCrypto._BarzaToon(':A'+_VV_LOCAL_USER_MY8_BOOLEANS+'A;'+ // all my bools , lan/wan...status....etc
':B'+_VV_LOCAL_USER_NIKO+'B;'+
':C'+_VV_LOCAL_USER_COUNTRY_CODE+'C;'+
':D'+_VV_LOCAL_USER_MESSAGE+'D;'+
':E_E;'+
':F'+_VV_LOCAL_USER_PC_ID+'F;'+ // com is as needed
':G'+_comADRiDX+'G;'
)); // send my data
_ssdbg:='_ss_dbg_5';
if sk.WaitForData(10000) then
begin
sDTS:=TCrypto.bndaka(FCCC.Socket.ReceiveText);
try
case sDTS[1] of
':' : _statCode :=10; // is ok data is with
'1' : _statCode :=1; //1NoComInHome
'2' : _statCode :=2; //2NoAxLAN
'3' : _statCode :=3; //3Banned
else _statCode :=4; //zzz
end;
except _ssdbg:='_ss_dbg_5a!!!_bug_catched!'; end;
end;
_ssdbg:='_ss_dbg_6';
FCCC.Socket.SendText('####'); /// any data ! just to close there
end
else _statCode:=5;
end;
_ssdbg:='_ss_dbg_7';
finally
FCCC.Socket.Close;
//FCCC.Active :=false; //thread destrucot will free it
sk.Free;
end; //----------------t2 FCCC.Socket.Close;
_ssdbg:='_ss_dbg_8';
Except _ssdbg:='_ss_dbg_9'; end; // avoid errors
end;
//------------------------------------------------------------------------------
end.
interface
uses
SysUtils, Classes,ScktComp,comctrls,forms;
type
T_i_builder_THREAD = class(TThread)
private
FCCC :TClientSocket;
sDTS,_ssdbg :string;
_statCode :byte;
protected
procedure Execute; override;
procedure On_i_builder_thread_terminated(Sender: TObject);
public
_newUzoPP :string;
_comADRiDX :string;
_dadyComNode:TTreeNode;
constructor Create;
destructor Destroy; override;
end;
implementation
uses unit1,_uc_funcs,_uc_refs_vars,_uc_refs_consts,_uc_crypto,_uc_cs_new1ini;
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
constructor T_i_builder_THREAD.Create;
begin
inherited Create(True); // Intially suspended
FreeOnTerminate := True;
OnTerminate := On_i_builder_thread_terminated;
FCCC := TClientSocket.Create(Application);
FCCC.ClientType := ctBlocking;
end;
//------------------------------------------------------------------------------
destructor T_i_builder_THREAD.Destroy;
begin
FCCC.Free;
inherited;
end;
//------------------------------------------------------------------------------
procedure T_i_builder_THREAD.On_i_builder_thread_terminated(Sender: TObject);
begin
//_DoDebugLOG('On_i_builder_terminated:'+_ssdbg); // sDTS ;
//dec(_ACTIVE_THREADS_COUNT);
case _statCode of // add user + reason
// 0 : _FXOC_MAIN.TheLOGGER.Log('eR/0 :'+_newUzoPP); // no coonection
// 1 : _FXOC_MAIN.TheLOGGER.Log('eR/1 :',1); // 1_He_NoComInHome
2 : _FXOC_MAIN.TheLOGGER.Log('I_AS_LAN, _X_REJECTED_i',1); // -asLAN_not_Accepted
3 : _FXOC_MAIN.TheLOGGER.Log('X_BANNED_i',1); // he banned me there
4 : _FXOC_MAIN.TheLOGGER.Log('_e781',1); // errKode
5 : _FXOC_MAIN.TheLOGGER.Log('_e782',1); // errKode
7 : _FXOC_MAIN.TheLOGGER.Log('_e783',1); // errKode
10 : set_iBuilt_1_DataNode(_newUzoPP,sDTS,_dadyComNode);
end;
end;
//------------------------------------------------------------------------------
procedure T_i_builder_THREAD.Execute;
var
sk: TWinSocketStream;
begin
(* *)
//inc(_ACTIVE_THREADS_COUNT);
_ssdbg:='_ss_dbg_1';
try
FCCC.Host__ip := _newUzoPP; // 11.11.11.11
FCCC.Port := _C_EXOSEE_MASTER_SERVER_PORT;
FCCC.Active := True;
sk := TWinSocketStream.Create(FCCC.Socket, 20000);
try ////----------------t2
_ssdbg:='_ss_dbg_2';
FCCC.Socket.SendText(TCrypto._BarzaToon(_EXO_iBUILDER)); // send
if sk.WaitForData(10000) then // wait 10 sec
begin
sDTS:=FCCC.Socket.ReceiveText;
_ssdbg:='_ss_dbg_3';
if (sDTS[2]='A') and (sDTS[4]='a') then // signal given ... then go ....
begin
_ssdbg:='_ss_dbg_4';
_statCode :=7;
FCCC.Socket.SendText(TCrypto._BarzaToon(':A'+_VV_LOCAL_USER_MY8_BOOLEANS+'A;'+ // all my bools , lan/wan...status....etc
':B'+_VV_LOCAL_USER_NIKO+'B;'+
':C'+_VV_LOCAL_USER_COUNTRY_CODE+'C;'+
':D'+_VV_LOCAL_USER_MESSAGE+'D;'+
':E_E;'+
':F'+_VV_LOCAL_USER_PC_ID+'F;'+ // com is as needed
':G'+_comADRiDX+'G;'
)); // send my data
_ssdbg:='_ss_dbg_5';
if sk.WaitForData(10000) then
begin
sDTS:=TCrypto.bndaka(FCCC.Socket.ReceiveText);
try
case sDTS[1] of
':' : _statCode :=10; // is ok data is with
'1' : _statCode :=1; //1NoComInHome
'2' : _statCode :=2; //2NoAxLAN
'3' : _statCode :=3; //3Banned
else _statCode :=4; //zzz
end;
except _ssdbg:='_ss_dbg_5a!!!_bug_catched!'; end;
end;
_ssdbg:='_ss_dbg_6';
FCCC.Socket.SendText('####'); /// any data ! just to close there
end
else _statCode:=5;
end;
_ssdbg:='_ss_dbg_7';
finally
FCCC.Socket.Close;
//FCCC.Active :=false; //thread destrucot will free it
sk.Free;
end; //----------------t2 FCCC.Socket.Close;
_ssdbg:='_ss_dbg_8';
Except _ssdbg:='_ss_dbg_9'; end; // avoid errors
end;
//------------------------------------------------------------------------------
end.