Though I should post a fix for this in case no one else had
The bug is in
UtilU1.pas
lines 484-487
It is trying to fill DNSList from a comma or space separated list of
ips, but if the delimiter is a space, it never reduces the source
list, so it continually adds to DNSList
procedure FetchDNSList(DNSList : TStringList);
var
Reg : TRegistry;
tempStr : String;
begin
if Assigned(DNSList) then begin
DNSList.Clear;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if
Reg.OpenKey('System\CurrentControlSet\Services\Tcpip\Parameters',
False) then begin
// Read Static Name Servers...
tempStr := Reg.ReadString('NameServer');
if tempStr <> '' then begin
// ************** Bug starts here
while (Pos(',', tempStr) <> 0) or (Pos(' ', tempStr) <> 0) do
begin
DNSList.Add(Trim( Copy(tempStr, 1, Pos(',', tempStr)-1) ));
tempStr := Copy(tempStr, Pos(',', tempStr)+1, Length(tempStr) );
end;
// ************** Bug ends here
DNSList.Add( tempStr );
end;
// Read DHCP Name Servers...
tempStr := Reg.ReadString('DHCPNameServer');
if tempStr <> '' then begin
while Pos(' ', tempStr) <> 0 do begin
DNSList.Add(Trim( Copy(tempStr, 1, Pos(' ', tempStr)-1) ));
tempStr := Copy(tempStr, Pos(' ', tempStr)+1, Length(tempStr) );
end;
DNSList.Add( tempStr );
end;
end;
Reg.Free;
end;
end;
1 solution is to replace the function with the following :-
tempStr := Reg.ReadString('DHCPNameServer');
if tempStr <> '' then begin
while Pos(' ', tempStr) <> 0 do begin
with
tempStr := StringReplace(Reg.ReadString('NameServer'), ' ', ',',
[rfReplaceAll]);
if tempStr <> '' then begin
while (Pos(',', tempStr) <> 0) do begin
Regards, Loki
--- In Hermes-Server@yahoogroups.com, "David" <lokiwashere@...> wrote:
>
> FWIF, it sounds like the same thing is happening for me also
> Downloaded the service, never installed previously
> installed it and ticked "yes" to launch program now
> splash screen hung for ages
> so i killed it, uninstalled it,
> and tried downloading the application version thinking (maybe it's
> just coz im using nt4)
> APplication hung as well.. this time i left it, the mem usage went up
> over 70 meg, and kept going
> I left it longer and eventually I got an "Out of memory" error
> However.... Hermes was completely usable after this and I was happily
> able to set up a user and test things
>
> NT4, 128 meg ram, 250 meg free on drive
>
> hth, Loki
>
> > > Well I have observed some new behavior. I fired up the console
> > > and in a hurry I left it running with just the splash screen showing
> > > like before. I came back a couple hours later and It was showing
> an "out
> > > of memory" error. Click ok and I am at a working console. So it
seems
> > > its not really hung just busy. I'm not sure how long it takes to
> run out
> > > of memory. Could be anywhere from a few minutes to a few hours.
> I'll see
> > > if I can't scrape up some more accurate data. This is getting
> > > interesting. If I had more free time I'd be tempted to install
> Delphi on
> > > that box and step through the code. Oh, and we can rule out DNS
> trouble
> > > since that is all fixed now. Nothing like a good puzzle eh?
>