NetWare uses the Unix implementation of apr_file_dup() and apr_file_dup2(). There is not a NetWare specific implementation of these functions. After looking at the apr_file_t structures for Unix and NetWare, and comparing them to the initialization that is done in the functions, it appears that the only missing initialization is
is_pipe flags (if not dup2 call) timeout Is there a reason why these fields would not be set to the original values after a call to apr_file_dup() or apr_file_dup2()? Brad Brad Nicholes Senior Software Engineer Novell, Inc., the leading provider of Net business solutions http://www.novell.com >>> Stas Bekman <[EMAIL PROTECTED]> Saturday, September 20, 2003 3:11:08 AM >>> [EMAIL PROTECTED] wrote: > stas 2003/09/19 11:07:26 > > Modified: . Tag: APR_0_9_BRANCH CHANGES > file_io/win32 Tag: APR_0_9_BRANCH filedup.c > Log: > fix apr_file_dup() and apr_file_dup2() to dup the ungetchar member There are no tests for apr_file* functions? netware From a quick glance there are other fields which aren't dupped on win32, i haven't checked others. At least these fields seem to be missing: struct apr_file_t { [...] BOOLEAN pipe; // Is this a pipe of a file? OVERLAPPED *pOverlapped; apr_interval_time_t timeout; [...] apr_finfo_t *finfo; I don't know if they need to be dupped though. I haven't checked other OSs, but netware seems to miss (*new_file)->ungetchar = old_file->ungetchar; as well. > Revision Changes Path > No revision > No revision > 1.426.2.2 +3 -0 apr/CHANGES > > Index: CHANGES > =================================================================== > RCS file: /home/cvs/apr/CHANGES,v > retrieving revision 1.426.2.1 > retrieving revision 1.426.2.2 > diff -u -u -r1.426.2.1 -r1.426.2.2 > --- CHANGES 17 Sep 2003 19:07:30 -0000 1.426.2.1 > +++ CHANGES 19 Sep 2003 18:07:26 -0000 1.426.2.2 > @@ -1,5 +1,8 @@ > Changes with APR 0.9.4 > > + *) win32: fix apr_file_dup() and apr_file_dup2() to dup the > + ungetchar member [Stas Bekman] > + > *) Preserve leading '../' segments as when merging to an empty and > unrooted path - fixes a bug observed in SVN with Win32/Netware/OS2. > [Mike Pilato <[EMAIL PROTECTED]>, William Rowe] > > > > No revision > No revision > 1.54.2.1 +2 -0 apr/file_io/win32/filedup.c > > Index: filedup.c > =================================================================== > RCS file: /home/cvs/apr/file_io/win32/filedup.c,v > retrieving revision 1.54 > retrieving revision 1.54.2.1 > diff -u -u -r1.54 -r1.54.2.1 > --- filedup.c 7 Jan 2003 00:52:53 -0000 1.54 > +++ filedup.c 19 Sep 2003 18:07:26 -0000 1.54.2.1 > @@ -81,6 +81,7 @@ > (*new_file)->fname = apr_pstrdup(p, old_file->fname); > (*new_file)->append = old_file->append; > (*new_file)->buffered = FALSE; > + (*new_file)->ungetchar = old_file->ungetchar; > > apr_pool_cleanup_register((*new_file)->pool, (void *)(*new_file), file_cleanup, > apr_pool_cleanup_null); > @@ -150,6 +151,7 @@ > new_file->fname = apr_pstrdup(new_file->pool, old_file->fname); > new_file->append = old_file->append; > new_file->buffered = FALSE; > + new_file->ungetchar = old_file->ungetchar; > > return APR_SUCCESS; > #endif /* !defined(_WIN32_WCE) */ > > > -- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
