Subject: Re: getaddrinfo() and PF_LOCAL
To: None <tech-net@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-net
Date: 08/02/2001 02:24:51
>> I'm going to be mildly heretical here...why does AF_LOCAL still have
>> anything to do with the filesystem?  [...]
>> Am I being stupid somehow, or is there really no reason beyond
>> backward compatability?

> I don't think I'd call it stupid, I can see your point.

Actually, since I wrote that, one thing came to mind: permissions.  I'm
not sure whether the permission bits on a socket have any semantics,
but those on the directories leading up to it definitely do.

Whether there is reason enough to preserve the filesystem semantics is
debatable.  (Vide infra, too.)

> I'm interested to know what you had in mind for replacing it.  Would
> the kernel just keep the "paths" in a table or some similar
> mechanism?

Basically, yes.  Conceptually, AF_LOCAL addresses would be arbitrary
strings, which the kernel could store any way convenient: linear list,
hash table, trie, 2-3 tree, whatever.

> This would seem to eliminate the need to check for stale files and
> whatnot.

Exactly.  Of course, it would also divorce AF_LOCAL socket names from
filesystem paths in ways that existing code won't handle well (for
example, any code that expects a chdir() to have anything to do with
socket paths), which is basically the backward-compatability argument.

> Would this port easily?

To other OSes, probably not.  Across NetBSD ports, yes, unless someone
does something really boneheaded in the implementation (but that
possibility exists for just about everything).

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B