projects
/
mgsmtp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Avoid memory leaks when using TRelayer
[mgsmtp.git]
/
Relay.pas
diff --git
a/Relay.pas
b/Relay.pas
index bcbcc9d92ee6842c5de66b050df69c6890e949e1..017d943b22463595f184cf51911f176ea112bca5 100644
(file)
--- a/
Relay.pas
+++ b/
Relay.pas
@@
-176,6
+176,7
@@
begin
FTransactionComplete:= false;
FRoutingTarget:= RoutingTable.GetRouteInfo(Envelope.RelayHost);
Response:= TRFCReply.Create;
FTransactionComplete:= false;
FRoutingTarget:= RoutingTable.GetRouteInfo(Envelope.RelayHost);
Response:= TRFCReply.Create;
+ TCP:= nil;
FillChar(SMTPExtensions, SizeOf(TSMTPExtensions), #0);
end;
FillChar(SMTPExtensions, SizeOf(TSMTPExtensions), #0);
end;
@@
-183,6
+184,7
@@
destructor TRelayer.Destroy;
begin
FRoutingTarget.Free;
Response.Free;
begin
FRoutingTarget.Free;
Response.Free;
+ if TCP <> nil then TCP.Free;
inherited Destroy;
end;
inherited Destroy;
end;
@@
-340,6
+342,7
@@
begin
Inc(i);
end;
Result:= TCP.Connected;
Inc(i);
end;
Result:= TCP.Connected;
+ if not TCP.Connected then FreeAndNil(TCP);
end
else Result:= false;
MXList.Free;
end
else Result:= false;
MXList.Free;
@@
-539,7
+542,7
@@
procedure TRelayer.CloseConnection;
begin
TCP.SendCommand(SMTP_C_QUIT);
{TCP.ReadResponse(Response);}
begin
TCP.SendCommand(SMTP_C_QUIT);
{TCP.ReadResponse(Response);}
-
TCP.Free
;
+
FreeAndNil(TCP)
;
end;
end;