Brad Nicholes wrote:
On 2/10/2006 at 12:59:37 pm, in message
<[EMAIL PROTECTED]>,
"William A. Rowe, Jr." <[EMAIL PROTECTED]> wrote:
Brad Nicholes wrote:
On 2/9/2006 at 5:50:29 pm, in message
<[EMAIL PROTECTED]>,
"William A. Rowe, Jr." <[EMAIL PROTECTED]> 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