Date: Wed, 16 Aug 2000 15:01:27 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: lauras AT softhome DOT net Message-Id: <7263-Wed16Aug2000150127+0300-eliz@is.elta.co.il> X-Mailer: Emacs 20.6 (via feedmail 8.2.emacs20_6 I) and Blat ver 1.8.5b CC: djgpp-workers AT delorie DOT com In-reply-to: <399A6110.CA193440@softhome.net> (message from Laurynas Biveinis on Wed, 16 Aug 2000 11:38:24 +0200) Subject: Re: Patch: open() adjustment for symlinks References: <39998D7D DOT 70F85B9E AT softhome DOT net> <5137-Tue15Aug2000223737+0300-eliz AT is DOT elta DOT co DOT il> <3999A16F DOT F8809412 AT softhome DOT net> <3099-Wed16Aug2000002312+0300-eliz AT is DOT elta DOT co DOT il> <399A6110 DOT CA193440 AT softhome DOT net> Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > Date: Wed, 16 Aug 2000 11:38:24 +0200 > From: Laurynas Biveinis > > > But we do need to have some > > reasonable way for an FSEXT to survive the `open' call where it calls > > __solve_symlinks. We don't want the `open' call to start failing for > > an FSEXT emulation just because we added symlink support to `open'. > > Sorry, I don't understand: what do you mean by FSEXT surviving open call > where it calls __solve_symlinks? Sorry for being unclear. Let me try to explain. I was thinking about an FSEXT which emulates a device that doesn't exist. Calling real DOS functions on such a device will certainly fail, since DOS doesn't know about that device. In v2.03, calling `open' on such a device would be handled by the FSEXT called by _open. Since now `open' calls `__solve_symlinks' as well, I was worried that `open' will now start to fail for such emulated devices, because it doesn't (and cannot) hook `__solve_symlinks'. If `__solve_symlinks' boils down to `_open' and `_read', which *can* be hooked by an FSEXT, then perhaps there's no problem. We need at least document the fact that FSEXT cannot hook the symlink resolution (thus, an FSEXT cannot easily simulate symlinks), but that the FSEXT will see the symlink-related calls via `_open' and `_read' handlers.