[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "001_OPTIONS/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44708',
'REMOTE_ADDR' => '127.0.0.1',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'OPTIONS',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE, Keep-Alive',
'HTTP_TE' => 'trailers',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630830,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "001_OPTIONS/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "001_OPTIONS/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '1',
'Allow' => 'GET, HEAD, PROPFIND, PROPPATCH, OPTIONS, DELETE, COPY, MOVE, MKCOL, PUT',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "001_OPTIONS/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "001_OPTIONS/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 200 OK
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "002_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44708',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '0',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630830,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "002_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "002_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "002_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "002_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "003_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44708',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '1',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630832,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "003_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "003_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "003_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/file.xml
Mon, 15 Aug 2005 15:13:00 +0000
19
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/file.bin
Mon, 15 Aug 2005 15:13:00 +0000
7
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "003_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "004_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44708',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '1',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630833,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "004_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "004_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "004_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/file.xml
Mon, 15 Aug 2005 15:13:00 +0000
19
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/file.bin
Mon, 15 Aug 2005 15:13:00 +0000
7
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "004_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "005_GET/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44710',
'REMOTE_ADDR' => '127.0.0.1',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/file.xml',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'GET',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630842,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "005_GET/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "005_GET/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
'Content-Type' => 'text/xml; charset="utf-8"',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "005_GET/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "005_GET/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 200 OK
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "006_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44710',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/collection/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '0',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630845,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "006_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "006_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "006_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/collection/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "006_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "007_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44710',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/collection/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '1',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630848,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "007_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "007_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "007_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/collection/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection/file.txt
Mon, 15 Aug 2005 15:13:00 +0000
18
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection/subdir
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "007_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "008_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44710',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/collection/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '1',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630849,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "008_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "008_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "008_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/collection/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection/file.txt
Mon, 15 Aug 2005 15:13:00 +0000
18
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection/subdir
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "008_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "009_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44710',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '0',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630850,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "009_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "009_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "009_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "009_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "010_MKCOL/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44711',
'REMOTE_ADDR' => '127.0.0.1',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'MKCOL',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630862,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "010_MKCOL/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "010_MKCOL/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "010_MKCOL/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "010_MKCOL/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 201 Created
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "011_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44711',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '1',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630864,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "011_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "011_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "011_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/collection
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/file.xml
Mon, 15 Aug 2005 15:13:00 +0000
19
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/file.bin
Mon, 15 Aug 2005 15:13:00 +0000
7
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/put_test
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "011_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "012_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44711',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '0',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630864,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "012_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "012_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "012_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/put_test/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "012_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "013_PUT/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44713',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '18803',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/put_test.html',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PUT',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_CONTENT_LENGTH' => '18803',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630877,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "013_PUT/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
eZ component: Webdav, Design, 1.0
eZ component: Webdav, Design, 1.0
| Author: |
Kore Nordmann, Tobias Schlitt |
| Revision: |
$Rev$ |
| Date: |
$Date$ |
| Status: |
Draft |
The scope of this document is to describe the initial design of a component
that provides a WebDAV server, which works with all major other implementations
of the WebDAV protocol.
It is currently not planned to also offer a WebDAV client component.
Because of the variaty of buggy and incomplete implementations of WebDAV, this
component will provide an abstraction to suite the different needs. Beside
that, an abstract interface to the backend will be provided.
The main class of this component will provide a fully RFC 2518 compliant
implementation of a WebDAV server. An instance of this class retrieves an
instance of a handler class, which takes care for performing the requested
operations on a backend (for example the filesystem).
Additionally, a collection of classes, which inherit the main class will be
provided. Each of this classes will provide a compatibility layer on top of the
RFC implementation, which works correctly with one or more "buggy" WebDAV
clients. A factory pattern implementation will be provided, which takes
automatically care of creating the correct server instance for a client.
The component is basically devided into 3 tiers: The top tier, being
represented by the main server class. An instance of this class is responsible
to dispatch a received request to a correct transport handler, which is capable
of parsing the request.
The transport handler level is the second tier. Classes in this tier are
responsible to parse an incoming request and extract all relevant information
to generate a response for it into a struct object. These struct object is then
passed back to the server object.
Based on the request struct object, the server checks the capabilities of its
third tier, the used backend handler. If the handler object provides all
necessary capabilities to generate a response, it is called to do so. If the
server class can perform emulation of not available capabilities and rely on
different features of the backend. In case there is no way, the backend can
handle the request, the server class will indicate that with an error
response.
The way back flows through the 3 tiers back again: The backend handler
generates a response object, which is passed back to the main server object,
which makes the active transport handler encode the response and sends it back
to the client.
The ezcWebdavServer class is the main class of the package. It has to be
instantiated to create a server instance and provides a method to get the
server up and running. An object of this class takes the main controll over
serving the webdav service.
Among the configuration of the server instance there must be: A backend handler
object, which will be used to serve the received WebDAV requests. A fitting
configuration for the backend handler. A collection of transport handlers which
can be used to parse incoming requests. General configuration on the bevahiour
of the server instance (like locking and stuff).
The backend handler object must extend the base class ezcWebdavBackendHandler
and must indicate to the main server, which capabilities it provides. The
server class can potentially emulate certain capabilities, if the handler does
not provide it. An example here is locking, which can be either performed by
the handler itself or the main server class.
Such emulation functionality could possibly be extracted to a third category of
classes, which is only loaded by the main server object on-demand.
All configured transport handlers must implement the interface
ezcWebdavTransportHandler, which defines the necessary methods.
The standard webdav server contains a list of transport handlers associated
with regular expressions which should match the client name to be used. As a
fallback the standards compliant transport handler will be used.
Special implementation added by the user will be add on top of the list, to be
used at highest priority.
All backend handlers for the Webdav component must extends this abstract base
class and implement its abstract methods for very basic WebDAV serving. The
operations defined for every backend handler to be mandatory are:
- head()
- get()
- propFind()
- propFetch()
All other WebDAV operations are optional to be implemented by a backend handler
and are defined by the handler itself. The additional basic capabilities of
backend handlers are indicated by implementing interfaces for the support
additional request methods, like put, change, etc.
Additional features, like encryption support will be indicated by returning a
bitmask of supported features by the backend handler.
The logical groups of capabilities are:
- Put
- The put capability indicates, that a handler is capable of handling file
uploads via HTTP-PUT method.
- Change
- This sub class of WebDAV operations defines delete, copy and move operations to
be supported by the handler class.
- Make collection
- The creation of new collections also makes up a capability unit and can
optionally be implemented.
- Lock
- If the hander provides locking facilities on its own, the main server object
must not take care about that.
- GZIP-Compress
- Handlers implementing this facility can deal with GZIP and bzip2 based
compression.
If a handler does not support a certain facility and the main server object is
not capable of emulating it, the server will respond using a "501 Not
Implemented" server error.
A class implementing this interface is capable of parsing a raw HTTP request
into a struct extending ezcWebdavRequest and generating the HTTP response out
of the ezcWebdavResponse struct. One transport handler is usually built to
handle the communication with a certain set of specific client
implementations.
A transport handler class will be able to parse the incoming HTTP request data
into a struct identifying a certain type of request and containg all necessary
and unified data, so that a backend handler can repsond to it.
The backend handler will then create a corresponding response object, which
will be encoded back into HTTP data by the transport handler and send to the
client by the server.
Each request type will come with its own struct classes to represent request
and response data for the request. Beside the structured HTTP data, the structs
can contain any additional information that must be transferred between server,
transport handler and backend handler.
All struct classes representing either a request of response of the server will
extend the abstract base classes ezcWebdavRequest and ezcWebdavResponse.
An example of this structure is: ezcWebdavGetRequest and ezcWebdavGetResponse
These 2 classes will be used to serve GET requests. Beside the usual request
information - like URI, date and headers - the request object will contain
information about partial GET mechanisms to use and what else is important.
The backend handler will return an instance of ezcWebdavGetResponse if the
request was handled correctly, or a corresponding ezcWebdavErrorResponse
object, if the request failed.
The main server instance will know about available clients and will have a
regular expression for each of them, to identify the clients it communicates
to by matching the regualr expression against the client name provided in the
HTTP headers.
This class is meant to calculate the path of the requested item from the
backend based on the given path by the webdav client. The resulting path
string is absolute to the root of the backend repository.
This class is necessary to calculate the correct path when a server uses
rewrite rules for mapping directories to one or more webdav implementations.
The basic class uses pathinfo to parse the requested file / collection.
Request: /path/to/webdav.php/path/to/file
Result: /path/to/file
You may want to provide custome implementations for different mappings so that
rewrite could be used by the webserver to access files.
Request: /images/path/to/file
Rewritten: /path/to/dav_images.php/path/to/file
Result: /path/to/file
The factory class is necessary, because the paths contained in the request
body will match the same scheme like the original request path, but not be
rewritten by the webserver, so that the user may extend the path factory to
fit his own purposes.
The following snippet shows the API calls necessary to get a WebDAV server up
and running.
<?php
$server = new ezcWebdavServer();
// Server data using file backend with data in "path/"
$server->backend = new ezcWebdavBackendFile( '/path' );
// Optionally register aditional transport handlers
//
// This step is only required, when a user wants to provide own
// implementations for special clients.
$server->registerTransportHandler(
// Regular expression to match client name
'(Microsoft.*Webdav\s+XP)i',
// Class name of transport handler, extending ezcWebdavTransportHandler
'ezcWebdavMicrosoftTransport'
);
$server->registerTransportHandler(
// Regular expression to match client name
'(.*Firefox.*)i',
// Class name of transport handler, extending ezcWebdavTransportHandler
'ezcWebdavMozillaTransport'
);
// Serve requests
$server->handle();
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "013_PUT/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "013_PUT/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "013_PUT/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 201 Created
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "014_MKCOL/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44714',
'REMOTE_ADDR' => '127.0.0.1',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/collection/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'MKCOL',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630891,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "014_MKCOL/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "014_MKCOL/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "014_MKCOL/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "014_MKCOL/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 201 Created
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "015_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44714',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '1',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630892,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "015_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "015_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "015_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/put_test/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/put_test/put_test.html
Mon, 15 Aug 2005 15:13:00 +0000
0
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
http://webdav/put_test/collection
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "015_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "016_PROPFIND/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44714',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '288',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/collection/',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PROPFIND',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_DEPTH' => '0',
'HTTP_CONTENT_LENGTH' => '288',
'CONTENT_TYPE' => 'application/xml',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630892,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "016_PROPFIND/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "016_PROPFIND/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'text/xml; charset="utf-8"',
'Server' => 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "016_PROPFIND/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
http://webdav/put_test/collection/
Mon, 15 Aug 2005 15:13:00 +0000
4096
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "016_PROPFIND/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 207 Multi-Status
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "017_PUT/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44716',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '14013',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/collection/put_test.xml',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PUT',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_CONTENT_LENGTH' => '14013',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630905,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "017_PUT/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
eZ component: Webdav, Design, 1.0Kore Nordmann, Tobias Schlitt$Rev$$Date$DraftContentsScopeDesign overviewTiersClassesezcWebdavServerezcWebdavBackendezcWebdavTransportezcWebdavPathFactoryExample codeScopeThe scope of this document is to describe the initial design of a component
that provides a WebDAV server, which works with all major other implementations
of the WebDAV protocol.It is currently not planned to also offer a WebDAV client component.Design overviewBecause of the variaty of buggy and incomplete implementations of WebDAV, this
component will provide an abstraction to suite the different needs. Beside
that, an abstract interface to the backend will be provided.The main class of this component will provide a fully RFC 2518 compliant
implementation of a WebDAV server. An instance of this class retrieves an
instance of a handler class, which takes care for performing the requested
operations on a backend (for example the filesystem).Additionally, a collection of classes, which inherit the main class will be
provided. Each of this classes will provide a compatibility layer on top of the
RFC implementation, which works correctly with one or more "buggy" WebDAV
clients. A factory pattern implementation will be provided, which takes
automatically care of creating the correct server instance for a client.TiersThe component is basically devided into 3 tiers: The top tier, being
represented by the main server class. An instance of this class is responsible
to dispatch a received request to a correct transport handler, which is capable
of parsing the request.The transport handler level is the second tier. Classes in this tier are
responsible to parse an incoming request and extract all relevant information
to generate a response for it into a struct object. These struct object is then
passed back to the server object.Based on the request struct object, the server checks the capabilities of its
third tier, the used backend handler. If the handler object provides all
necessary capabilities to generate a response, it is called to do so. If the
server class can perform emulation of not available capabilities and rely on
different features of the backend. In case there is no way, the backend can
handle the request, the server class will indicate that with an error
response.The way back flows through the 3 tiers back again: The backend handler
generates a response object, which is passed back to the main server object,
which makes the active transport handler encode the response and sends it back
to the client.ClassesezcWebdavServerThe ezcWebdavServer class is the main class of the package. It has to be
instantiated to create a server instance and provides a method to get the
server up and running. An object of this class takes the main controll over
serving the webdav service.Among the configuration of the server instance there must be: A backend handler
object, which will be used to serve the received WebDAV requests. A fitting
configuration for the backend handler. A collection of transport handlers which
can be used to parse incoming requests. General configuration on the bevahiour
of the server instance (like locking and stuff).The backend handler object must extend the base class ezcWebdavBackendHandler
and must indicate to the main server, which capabilities it provides. The
server class can potentially emulate certain capabilities, if the handler does
not provide it. An example here is locking, which can be either performed by
the handler itself or the main server class.Such emulation functionality could possibly be extracted to a third category of
classes, which is only loaded by the main server object on-demand.All configured transport handlers must implement the interface
ezcWebdavTransportHandler, which defines the necessary methods.The standard webdav server contains a list of transport handlers associated
with regular expressions which should match the client name to be used. As a
fallback the standards compliant transport handler will be used.Special implementation added by the user will be add on top of the list, to be
used at highest priority.ezcWebdavBackendAll backend handlers for the Webdav component must extends this abstract base
class and implement its abstract methods for very basic WebDAV serving. The
operations defined for every backend handler to be mandatory are:head()get()propFind()propFetch()All other WebDAV operations are optional to be implemented by a backend handler
and are defined by the handler itself. The additional basic capabilities of
backend handlers are indicated by implementing interfaces for the support
additional request methods, like put, change, etc.Additional features, like encryption support will be indicated by returning a
bitmask of supported features by the backend handler.The logical groups of capabilities are:PutThe put capability indicates, that a handler is capable of handling file
uploads via HTTP-PUT method.ChangeThis sub class of WebDAV operations defines delete, copy and move operations to
be supported by the handler class.Make collectionThe creation of new collections also makes up a capability unit and can
optionally be implemented.LockIf the hander provides locking facilities on its own, the main server object
must not take care about that.GZIP-CompressHandlers implementing this facility can deal with GZIP and bzip2 based
compression.If a handler does not support a certain facility and the main server object is
not capable of emulating it, the server will respond using a "501 Not
Implemented" server error.ezcWebdavTransportA class implementing this interface is capable of parsing a raw HTTP request
into a struct extending ezcWebdavRequest and generating the HTTP response out
of the ezcWebdavResponse struct. One transport handler is usually built to
handle the communication with a certain set of specific client
implementations.A transport handler class will be able to parse the incoming HTTP request data
into a struct identifying a certain type of request and containg all necessary
and unified data, so that a backend handler can repsond to it.The backend handler will then create a corresponding response object, which
will be encoded back into HTTP data by the transport handler and send to the
client by the server.Each request type will come with its own struct classes to represent request
and response data for the request. Beside the structured HTTP data, the structs
can contain any additional information that must be transferred between server,
transport handler and backend handler.All struct classes representing either a request of response of the server will
extend the abstract base classes ezcWebdavRequest and ezcWebdavResponse.An example of this structure is: ezcWebdavGetRequest and ezcWebdavGetResponseThese 2 classes will be used to serve GET requests. Beside the usual request
information - like URI, date and headers - the request object will contain
information about partial GET mechanisms to use and what else is important.
The backend handler will return an instance of ezcWebdavGetResponse if the
request was handled correctly, or a corresponding ezcWebdavErrorResponse
object, if the request failed.The main server instance will know about available clients and will have a
regular expression for each of them, to identify the clients it communicates
to by matching the regualr expression against the client name provided in the
HTTP headers.ezcWebdavPathFactoryThis class is meant to calculate the path of the requested item from the
backend based on the given path by the webdav client. The resulting path
string is absolute to the root of the backend repository.This class is necessary to calculate the correct path when a server uses
rewrite rules for mapping directories to one or more webdav implementations.
The basic class uses pathinfo to parse the requested file / collection.Request: /path/to/webdav.php/path/to/file
Result: /path/to/fileYou may want to provide custome implementations for different mappings so that
rewrite could be used by the webserver to access files.Request: /images/path/to/file
Rewritten: /path/to/dav_images.php/path/to/file
Result: /path/to/fileThe factory class is necessary, because the paths contained in the request
body will match the same scheme like the original request path, but not be
rewritten by the webserver, so that the user may extend the path factory to
fit his own purposes.Example codeThe following snippet shows the API calls necessary to get a WebDAV server up
and running. <?php
$server = new ezcWebdavServer();
// Server data using file backend with data in "path/"
$server->backend = new ezcWebdavBackendFile( '/path' );
// Optionally register aditional transport handlers
//
// This step is only required, when a user wants to provide own
// implementations for special clients.
$server->registerTransportHandler(
// Regular expression to match client name
'(Microsoft.*Webdav\s+XP)i',
// Class name of transport handler, extending ezcWebdavTransportHandler
'ezcWebdavMicrosoftTransport'
);
$server->registerTransportHandler(
// Regular expression to match client name
'(.*Firefox.*)i',
// Class name of transport handler, extending ezcWebdavTransportHandler
'ezcWebdavMozillaTransport'
);
// Serve requests
$server->handle();Local Variables:
mode: rst
fill-column: 79
End:
vim: et syn=rst tw=79
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "017_PUT/response":
[0m[34m----- Printing file contents for "headers"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m 'lighttpd/1.4.18/eZComponents/dev/ezcWebdavTransportMock',
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "017_PUT/response":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[36;1m--- Printing infos for test "017_PUT/response":
[0m[34m----- Printing file contents for "status"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mHTTP/1.1 201 Created
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "018_PUT/request":
[0m[34m----- Printing file contents for "server"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0m '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.14/bin:/opt/sun-jdk-1.4.2.14/jre/bin:/opt/sun-jdk-1.4.2.14/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/vmware/server/bin',
'PWD' => '/var/www/webdav/bin',
'PHP_FCGI_MAX_REQUESTS' => '10000',
'_' => '/usr/local/php/php-5.2-cvs/bin/php-cgi',
'SERVER_SOFTWARE' => 'lighttpd/1.4.18',
'SERVER_NAME' => 'webdav',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PORT' => '80',
'SERVER_ADDR' => '127.0.0.1',
'REMOTE_PORT' => '44716',
'REMOTE_ADDR' => '127.0.0.1',
'CONTENT_LENGTH' => '10644',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/var/www/webdav/htdocs/index.php',
'DOCUMENT_ROOT' => '/var/www/webdav/htdocs/',
'REQUEST_URI' => '/put_test/collection/put_test.zip',
'REDIRECT_URI' => 'index.php',
'QUERY_STRING' => '',
'REQUEST_METHOD' => 'PUT',
'REDIRECT_STATUS' => '200',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'HTTP_HOST' => 'webdav',
'HTTP_USER_AGENT' => 'cadaver/0.22.5 neon/0.26.3',
'HTTP_CONNECTION' => 'TE',
'HTTP_TE' => 'trailers',
'HTTP_CONTENT_LENGTH' => '10644',
'ORIG_PATH_INFO' => '',
'PHP_SELF' => '/index.php',
'REQUEST_TIME' => 1192630907,
);
?>
[0m[30;1m-------------------------------------- END -------------------------------------
[0m[0m
[0m[32;1m- Printing infos for test suite "cadaver":
[0m[36;1m--- Printing infos for test "018_PUT/request":
[0m[34m----- Printing file contents for "body"
[0m[30;1m------------------------------------- START ------------------------------------
[0m[0mPK î‰M7%““þÞ ½6 put_test.xmlUT áGáGUx èd ½[isÛ6þÎ_Õt𤫣IÛmëÚê$qÒf¶‡'u÷šÌt ”P“— ¨¿~ß ARrãnvû!–( ïý¼Øó¯ß–…¸UÕ¦º˜=^~<ªJM¦«íŬuùâ‹Ù×ëäüO—?>¿þçÕ‘™´-UåÄÕÏϾ{õ\Ìþ¼Z½ºüž;]Ø¥5m“ªÜ4[µ¬”[.¯/Å¥ÿU|£*ÕètµzñÃjõï¿›‰Ùιúlµ:y ü`WÊû™ËfÈÓbÁçI§2±9ôT>^~*XÒq«3{1S¿-RSÖ¦‚'‹½Údòv‘)«·Õâñ¯d©hÙÑ;{#xåüàµðÔÄ|^ÌþN?¯øGÿgéÞº™pÚ°@ý+:Nðò¹¸äÃè¬õ9-]ÿîÊó/DÁt•›õ¹lÝÎ4뿚F‰L“•²‚¥×f£¥?¥»B;w¾ò«Îu«ÑÒë^«ÛÎWÝ÷ó”¸þàþ…ÇôåÜ:éZ»¾ldGøo竎´3µNEZHkQm©©ðmg¬ìþ«Wk÷ HûÜ?è„Ú´E¡Ü/…¶n}Žÿþ¢*×çµlä¶‘õÈUª˜ˆÎÏ<ÓÙÅ̦¦V³õOø%óãhÿ*:ö)<é(x_1.·Zígk¶ŒÞ'ÕO:ªNCtÎÖ×øç}Rø´£àM8[?ç'©ü}Ö‘Q¿¥JÔ¥šÙ°ÿDÞ§p™RÝÈôFUYDö?yŸt?ŸÒu¬lmQ¾ÏÞ'í/¦´kév¹Liõ+xú’Ÿ¾ýÕÀ/{ÎÞʲ.àp±ú‚¿ üöG8! R©cjt<(0â&5Nxèéé]ï” ]ÂäÂí´íS|v³@Úè‚AÀJ;-Ÿp‹ì!›GJD
F1)Á¹¤ä¶Ñ!¥ªj¹×7ºV™–Kȧ+ü¶ò‹×ü7V;²êLjŠåÀ NB*ö)”ݪSoøz«XÛ¯H«iÛ ®8ˆÊ€Â
ÈaÑAײ°”
öÚKÆè´Ä]ciK®e°§|t:¨A¹¶„
xðæþ¶öÓ,ÓÈ @ÚaN À£øŠ#ˆ+@;íˆãȳ¼C&CŠVT¬ìØÝÐ@7
¥ïAò J¦h©}x&èCCGbqj ŽR„#Bepjj-±Äþðßq_QPóG¸ £ÄÝSá® . Òª©I˜
lŸ@¥nJX˜¢âØP_‚gÞ
<{Þýz×CÛKïŠ\Y£û:sŒŸt¥çÑTÙG=Xd#g