[originally from svn r4788]
[this svn revision also touched bmbm,caltrap,charset,enigma,filter,fonts,golem,grunge,halibut,html,lj,local,misc,polyhedra,putty-website,putty-wishlist,puzzles,pycee,sdlgames,svn-tools,timber,tweak]
No very good reason, but I've occasionally wanted to frob it to see if it
makes any difference to problems I'm having, and it was easy.
Tested that it does actually cause keepalives on Windows (with tcpdump);
should also work on Unix. Not implemented on Mac (does nothing), but then
neither is TCP_NODELAY.
Quite a big checkin, much of which is adding `keepalive' alongside `nodelay'
in network function calls.
[originally from svn r4309]
sk_new() on invocation; these functions become responsible for (eventually)
freeing it. The caller must not do anything with 'addr' after it's been passed
in. (Ick.)
Why:
A SOCKS5 crash appears to have been caused by overzealous freeing of
a SockAddr (ssh.c:1.257 [r2492]), which for proxied connections is
squirreled away long-term (and this can't easily be avoided).
It would have been nice to make a copy of the SockAddr, in case the caller has
a use for it, but one of the implementations (uxnet.c) hides a "struct
addrinfo" in there, and we have no defined way to duplicate those. (None of the
current callers _do_ have a further use for the SockAddr.)
As far as I can tell, everything _except_ proxying only needs addr for the
duration of the call, so sk_addr_free()s immediately. If I'm mistaken, it
should at least be easier to find the offending free()...
[originally from svn r3383]
[r2492 == bdd6633970d9c53ce0ad97b460c8c684285bb15e]
we're switching from and show the panel we're switching to, rather than
iterating over all the panels, hiding and showing them as appropriate.
This has that consequence that all controls have to be created invisible,
since they no longer get hidden after creation. As usual, the scroll
bars on list boxes have a special hack of their own.
[originally from svn r3183]
- Erase the background of System 7 editboxes before drawing them.
- Set the height of listboxes correctly.
- Set the panel-selection listbox to 20 items high.
[originally from svn r3121]
This isn't _quite_ right, since it uses a b/w dither everywhere, whereas
it should use grey on colour screens. That would involve mucking around
with DeviceLoop, though, and I'm not sure I can be bothered.
[originally from svn r3066]
editbox control. This means that it has a persistent edit record, can have
its height measured and uses the system font by default, all of which are good.
[originally from svn r3022]