On Sat, 9 Jun 2007, dean gaudet wrote: > > for an example of a library wanting to cache an open fd ... and failing > miserably at protecting itself from the application closing its fd read:
Heh. Why the hell doesn't that thing just do an "fstat()" on the thing, and compare the inode number? Not that I would guarantee that it works either for a socket, but it would seem to make more sense than what it apparently does now, and I think it should work at least on Linux. (Ie linux will give fake "st_ino" numbers to sockets. Whether anybody else will do that, I have no friggin clue. And you probably shouldn't depend on it even under Linux, but damn, despite all of those issues, it's likely better and more logical than what libnss-ldap apparently does now ;) Doing a "fstat()" call is how you generally test if two fd's point to the same file. Doing the same thing for sockets would at least be half-way sane, and even if the OS doesn't give new sockets individual st_ino numbers, they probably won't be *changing*. Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/