apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: svn commit: r376473 - /apr/apr/trunk/test/testnames.c
Date Fri, 10 Feb 2006 20:47:40 GMT
Brad Nicholes wrote:
>>>>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.

Successive slashes are legal (and should be compressed).

But I can see where you are right, if the Netware port doesn't accept the
'/foo' path, then it's wrong (but I thought '/foo' implies local:sys/foo).
So we should special-case this result on Netware.

I'm almost of a mind that since 'machine:vol\path' is the normal syntax, and
we have several platforms which support similar, that we might want to permit
'//machine/vol/path' on Netware as a portable syntax, accepting either <shrug>.

Bill


Mime
View raw message