summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2005-01-31 10:28:55 +0000
committerCorinna Vinschen <corinna@vinschen.de>2005-01-31 10:28:55 +0000
commit4f27e288c55cd54a2759a59d06a52ed44dac494b (patch)
treee2f6752ee7c755d7dd29612c439c2a13d4d88338 /winsup/cygwin/path.cc
parentd0ae095b8cebb70f5c73783e816fc41779902913 (diff)
downloadcygnal-4f27e288c55cd54a2759a59d06a52ed44dac494b.tar.gz
cygnal-4f27e288c55cd54a2759a59d06a52ed44dac494b.tar.bz2
cygnal-4f27e288c55cd54a2759a59d06a52ed44dac494b.zip
* cygheap.h (class cygheap_fdenum): New class to enumerate used
fhandlers. * dtable.h (class dtable): Add cygheap_fdenum as friend class. * fhandler.h (fhandler_base::get_proc_fd_name): New virtual method to return a name for /proc/<pid>/fd. (fhandler_socket::get_proc_fd_name): Ditto. (fhandler_pipe::get_proc_fd_name): Ditto. (fhandler_virtual::opendir): Make virtual method. (fhandler_process::opendir): New method. * fhandler.cc (fhandler_base::get_proc_fd_name): New method. * fhandler_process.cc: Include ctype.h. (PROCESS_FD): Define. (process_listing): Add "fd". (fhandler_process::exists): Fix comment. Return 1 in case of "fd" directory. Handle files below "fd". (fhandler_process::fstat): Drop "self" handling. Set correct link count for directories. (fhandler_process::opendir): New method to handle "fd" directory. (fhandler_process::readdir): Add "fd" handling. (fhandler_process::open): Drop "self" handling. (fhandler_process::fill_filebuf): Ditto. Add "fd" handling. Fix "maps" output string. * fhandler_registry.cc (fhandler_registry::fstat): Set correct link count for directories. * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method. * path.cc (symlink_info::set): Fix thinko. * pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout. Drop local path variable in PICOM_FIFO case. Fix debug output. Close handles as early as possible. Add PICOM_FDS and PICOM_FD handling. (_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling. (_pinfo::fd): New method. (_pinfo::fds): New method. * pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD. (_pinfo::fd): Declare. (_pinfo::fds): Declare. * pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc16
1 files changed, 2 insertions, 14 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 0d2637537..5d5d1eade 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -3135,22 +3135,10 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt)
int
symlink_info::set (char *path, int type)
{
- extern suffix_info stat_suffixes[];
-
strcpy (contents, path);
pflags = PATH_SYMLINK;
- if (type == -3) /* /proc/self */
- {
- fileattr = FILE_ATTRIBUTE_DIRECTORY;
- error = 0;
- }
- else
- {
- /* That's save since a virtual symlink doesn't point to itself. */
- path_conv pc (contents, PC_SYM_NOFOLLOW | PC_FULL, stat_suffixes);
- fileattr = pc;
- error = pc.error;
- }
+ fileattr = FILE_ATTRIBUTE_NORMAL;
+ error = 0;
is_symlink = true;
ext_tacked_on = case_clash = false;
ext_here = NULL;