apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brad Nicholes" <BNICHO...@novell.com>
Subject Re: svn commit: r376473 - /apr/apr/trunk/test/testnames.c
Date Fri, 10 Feb 2006 20:36:51 GMT
>>> On 2/10/2006 at 12:59:37 pm, in message
"William A. Rowe, Jr." <wrowe@rowe-clan.net> wrote:
> Brad Nicholes wrote:
>>>>>On 2/9/2006 at 5:50:29 pm, in message
>> <43EBE355.6020705@rowe-clan.net>,
>> "William A. Rowe, Jr." <wrowe@rowe-clan.net> wrote:
>>>Brad Nicholes wrote:
>>>>This doesn't quite fix it either.  For NetWare the returns are
>>>>      ABTS_STR_EQUAL(tc, "/", root);
>>>Ok I'm confused :)
>>>APR_EINCOMPLETE is a fatal condition.  Is the path "//foo/bar"
>> valid?
>>>If so, it's the result that's wrong.
>> So according to the logic that I am seeing for both Win32 and Unix,
>> NetWare is a cross between them.  NetWare does not understand UNC
>> so returning APR_EINCOMPLETE with "//" would be incorrect.  Also,
>> returning APR_SUCCESS with "/" would be incorrect as well since a
>> complete path would require a volume specifier such as "SYS:".  So
>> believe that what it is returning now, APR_EINCOMPLETE with "/" is
>> correct on NetWare.
>> Am I missing something?
> Yup.  On Win32/OS2, the path '/foo' root is 'c:/' path 'foo'.  The
> is complete because it was rooted (to currect drive).
> With UNC paths, the path '//' is incomplete because we don't know
> machine and drive.
> On Netware, is the path '/foo' sufficiently absolute?  I would think
it is.

No, not really because NetWare doesn't have a good concept of "current
working directory".  IOW, if Apache starts from vol2:/apache2, calling
getcwd() doesn't necessarily get you "vol2:/apache2" back.  Given a path
of "/foo", NetWare will assume "sys:/foo" which isn't necessarily

> Of course you can use 'bar:bash/foo', and 'bar/bash' is not absolute,
> the 'bar:/foo' or ':bash/foo' syntaxes are probably incomplete.
> The incomplete root result implies that the system can't figure out
how to
> break apart the path because some information is missing.  You can't,
on any
> UNC path, do a directory listing of '//foo/*'.  You can for
> and
> you can for '/bash/*'.
> Bil

Bottom line is that neither of the results in the test seem valid on
NetWare.  Returning APR_SUCCESS with a path of "/" seems wrong because
an assumption is being made about what "/" means.  And returning
APR_EINCOMPLETE with a path of "//" seems wrong because the path isn't
incomplete, it is invalid.


View raw message