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
<43ECF0A9.6080805@rowe-clan.net>,
"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_INT_EQUAL(tc, APR_EINCOMPLETE, rv);
>>>>      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.
>>>
>>>Bill
>> 
>> 
>> 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
paths
>> 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
I
>> 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
result
> is complete because it was rooted (to currect drive).
> 
> With UNC paths, the path '//' is incomplete because we don't know
the
> 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
correct.


> Of course you can use 'bar:bash/foo', and 'bar/bash' is not absolute,
while
> 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
'//foo/bar/*' 
> 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.

Brad





Mime
View raw message