OSDN Git Service
(root)
/
winbottle
/
winbottle.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cfc62b1
)
Terminate後は受信イベント(OnSLPPEvent)を発生させないように変更
author
naru
<bottle@mikage.to>
Sun, 14 Nov 2004 17:16:23 +0000
(17:16 +0000)
committer
naru
<bottle@mikage.to>
Sun, 14 Nov 2004 17:16:23 +0000
(17:16 +0000)
sakurasuite/IdSLPP20.pas
patch
|
blob
|
history
diff --git
a/sakurasuite/IdSLPP20.pas
b/sakurasuite/IdSLPP20.pas
index
f6c53d5
..
b84a399
100644
(file)
--- a/
sakurasuite/IdSLPP20.pas
+++ b/
sakurasuite/IdSLPP20.pas
@@
-67,13
+67,12
@@
type
procedure SetOnConnectFailed(const Value: TNotifyEvent);
public
constructor Create(AOwner: TComponent); override;
procedure SetOnConnectFailed(const Value: TNotifyEvent);
public
constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure Connect(const ATimeout: Integer = IdTimeoutDefault); override;
procedure ConnectServer(const ATimeout: Integer = IdTimeoutDefault);
procedure Disconnect; override;
procedure DoOnSlppEvent;
procedure DoOnConnect;
procedure DoOnConnectFailed;
procedure ConnectServer(const ATimeout: Integer = IdTimeoutDefault);
procedure Disconnect; override;
procedure DoOnSlppEvent;
procedure DoOnConnect;
procedure DoOnConnectFailed;
+ procedure DoOnDisconnect;
property SLPP20ReadThread: TIdSLPP20ReadThread read FSLPPThread;
property LastReadTime: Int64 read FLastReadTime write SetLastReadTime;
property LastReadTimeInterval: integer read GetLastReadTimeInterval;
property SLPP20ReadThread: TIdSLPP20ReadThread read FSLPPThread;
property LastReadTime: Int64 read FLastReadTime write SetLastReadTime;
property LastReadTimeInterval: integer read GetLastReadTimeInterval;
@@
-105,11
+104,7
@@
end;
{ TIdSLPP20 }
{ TIdSLPP20 }
-procedure TIdSLPP20.Connect(const ATimeout: Integer);
-begin
- inherited Connect(ATimeout);
-end;
-
+// Do NOT call TIdSLPP20.Connect outside of this unit.
procedure TIdSLPP20.ConnectServer;
begin
try
procedure TIdSLPP20.ConnectServer;
begin
try
@@
-129,22
+124,15
@@
begin
ProxyPass := '';
end;
ProxyPass := '';
end;
-destructor TIdSLPP20.Destroy;
-begin
- inherited;
-end;
-
procedure TIdSLPP20.Disconnect;
begin
inherited Disconnect;
if Assigned(FSLPPThread) then begin
procedure TIdSLPP20.Disconnect;
begin
inherited Disconnect;
if Assigned(FSLPPThread) then begin
+ // The thread will be destroyed eventually
FSLPPThread.Terminate;
FSLPPThread.Terminate;
- // FSLPPThread.WaitFor;
FSLPPThread := nil;
end;
FSLPPThread := nil;
end;
- if Assigned(FOnDisconnect) then begin
- OnDisconnect(self);
- end;
+ DoOnDisconnect;
end;
procedure TIdSLPP20.DoOnConnect;
end;
procedure TIdSLPP20.DoOnConnect;
@@
-227,6
+215,12
@@
begin
FProxyPass := Value;
end;
FProxyPass := Value;
end;
+procedure TIdSLPP20.DoOnDisconnect;
+begin
+ if Assigned(FOnDisconnect) then
+ FOnDisconnect(Self);
+end;
+
{ TIdSLPP20ReadThread }
constructor TIdSLPP20ReadThread.Create(AClient: TIdSLPP20);
{ TIdSLPP20ReadThread }
constructor TIdSLPP20ReadThread.Create(AClient: TIdSLPP20);
@@
-239,7
+233,7
@@
end;
procedure TIdSLPP20ReadThread.Execute;
var Line: String;
procedure TIdSLPP20ReadThread.Execute;
var Line: String;
- EncodedPassword,PlainPassword: String;
+ EncodedPassword,
PlainPassword: String;
Base64Encoder: TIdEncoderMIME;
begin
try
Base64Encoder: TIdEncoderMIME;
begin
try
@@
-256,9
+250,12
@@
begin
if FClient.ProxyUser <> '' then begin
if FClient.ProxyPass <> '' then begin
PlainPassword := FClient.ProxyUser + ':' + FClient.ProxyPass;
if FClient.ProxyUser <> '' then begin
if FClient.ProxyPass <> '' then begin
PlainPassword := FClient.ProxyUser + ':' + FClient.ProxyPass;
- Base64Encoder.Create(nil);
- EncodedPassword := Base64Encoder.Encode(PlainPassword);
- FreeAndNil(Base64Encoder);
+ Base64Encoder := TIdEncoderMIME.Create(nil);
+ try
+ EncodedPassword := Base64Encoder.Encode(PlainPassword);
+ finally
+ Base64Encoder.Free;
+ end;
end;
end;
end;
end;
@@
-289,12
+286,11
@@
begin
FReceivedLog.SaveToFile(ExtractFilePath(Application.ExeName)+'slpp20_debug.log');
end;
if not FClient.ReadLnTimedOut then FClient.LastReadTime := getTickCount;
FReceivedLog.SaveToFile(ExtractFilePath(Application.ExeName)+'slpp20_debug.log');
end;
if not FClient.ReadLnTimedOut then FClient.LastReadTime := getTickCount;
- if Length(Line) = 0 then begin
- if FRecvData.Count > 0 then begin
+ if Length(Line) = 0 then begin
//
\8b
ó
\8d
s
\82
ª
\82
â
\82
Á
\82
Ä
\82
«
\82
Ä
+ if FRecvData.Count > 0 then begin
//
\89
½
\82
©
\82
ª
\93
Í
\82
¢
\82
Ä
\82
¢
\82
é
\8f
ê
\8d
\87
FClient.CheckForDisconnect; //
\90
Ø
\92
f
\8c
ã
\82
Ì
\92
\86
\93
r
\94
¼
\92
[
\82
È
\83
f
\81
[
\83
^
\91
\97
\90
M
\82
ð
\96
h
\82
®
FClient.CheckForDisconnect; //
\90
Ø
\92
f
\8c
ã
\82
Ì
\92
\86
\93
r
\94
¼
\92
[
\82
È
\83
f
\81
[
\83
^
\91
\97
\90
M
\82
ð
\96
h
\82
®
-
while Parse do begi
n
+
if Parse and not Terminated the
n
Synchronize(FClient.DoOnSlppEvent);
Synchronize(FClient.DoOnSlppEvent);
- end;
FRecvData.Clear;
end;
end else begin
FRecvData.Clear;
end;
end else begin
@@
-307,7
+303,8
@@
begin
end;
end;
end;
end;
- if ( FClient.Connected ) then FClient.Disconnect;
+ if FClient.Connected then
+ FClient.Disconnect;
FreeAndNil(FReceivedLog);
FreeAndNil(FRecvData);
end;
FreeAndNil(FReceivedLog);
FreeAndNil(FRecvData);
end;