Hi Ian -
[cc: vm-dev for the usual suspects]
Okay, after looking through the changes it seems like most of the
implementation should be fairly straightforward. There are a couple of
questions I have about various areas though:
* Concurrent lookups: It appears that the resolver can't be used
concurrently, is this right? (I had hoped we'd get rid of it in this
round) Also, it seems that the image side code isn't currently
serializing requests properly, in particular when getting the "next"
address information etc. Is this correct or am I missing something?
* "Local" addresses: What exactly does the "local" address family mean?
In your code you seem to simply stat() the input - are these files? If
they are files, why would one use sockets to access them (we have a
FilePlugin after all ;-) and what security implications does that have?
* Socket address lifetime: Why are socket addresses bound to the current
session? It seems to me that the client should be able to decide for how
long to cache an address. It's probably a good idea to dump addresses
when the system gets restarted but I don't see why this would be
*necessary*. And if it isn't necessary, I'd prefer to leave that option
to the client.
* Address families: Does it make sense to add AF_IRDA (infra-red) and
AF_BTM (bluetooth) as available address families? Windows supports them
but I don't know about the Unixes. And while we're at it: How about
SOCK_RDM (reliable datagram) and SOCK_SEQPACKET (pseudo-stream) sockets?
Croquet could sure use those if supported ;-)