TODO ==== - Handle external URLs in path factory and backends (Bail out with 502 - Bad Gateway) - Add validity checks for $name (XML tag) and $namspace (URI) properties to ezcWebdavDeadProperty. - Desing interface for ezcWebdavTransport extensions (must follow client dispatching) - How to deal with unknown properties in the DAV: namespace? We currently just ignore them. - Check how to deal with namespaces in dead properties. - Memory backend does not support emulation of client test case rfc/proppatch. - Error emulation would need to be highly more flexible. - ezcWebdavDateTime is a temporary solution for the issue that DateTime is currently not correctly serializable. Will this be fixed? We just need it for testing, though. - Client test case litmus/113_props__3_propfind_invalid2 reflects the issue, that we can not reject invalid XML properly. a) the DAV: namespace is invalid by itself. b) DOM does not bail out on loading an XML string without proper XML declaration. WebDAV defines to reject "invalid" issues. - Header handling needs to be refactored to allow plugins to access them. - Add test for mime type file info extensions - We could offer an init hook, which is announced as soon as ezcWebdavServer->init() is called, using it's parameters. This could make sense for plugins to internally store those. But actually it's sugar, because they can also access the data through the server singleton. - URL encoding, UTF-8 and other charsets? - Client initial request to deeper URLs for IE? - Some DAV clients request logs exactly after the time they requested the lock to last. If the request now takes too much time, it may result in an error, since the lock is already gone. Code TODOs on Thu Oct 18 08:20:15 CEST 2007 =========================================== Webdav/src/tools/xml.php:65: * @todo This should throw an exception if loading of the XML fails! Webdav/src/tools/date_time.php:21: * @todo Remove Webdav/src/transports/property_handler.php:106: * @todo How do we need to take care about different namespaces here? Webdav/src/transports/property_handler.php:168: // @TODO: Should this throw an exception, if the match fails? Webdav/src/transports/property_handler.php:224: // @TODO Implement extension plugins Webdav/src/transports/property_handler.php:324: // @TODO Need to check for special values here! Webdav/src/backends/simple.php:599: // @TODO: This assumptions is not particular correct. Webdav/src/backends/simple.php:700: // @TODO: RFC2616 Section 9.6 PUT requires us to send 501 on all Webdav/src/backends/simple.php:824: // @TODO: handle keepalive setting somehow - even the RFC is quite Webdav/src/backends/simple.php:920: // @TODO: handle keepalive setting somehow - even the RFC is quite Webdav/src/backends/simple.php:943: // @TODO: The error generated here should depend on the actual backend Webdav/src/backends/simple.php:1046: // @TODO: Read this from implemented interfaces / features in base class. Webdav/src/backends/file.php:537: // @TODO: Use proper etag hashing stuff Webdav/src/backends/file.php:834: // @TODO: Mind hideDotFiles option Webdav/src/transport.php:419: * @todo Correct exception. Or better: Correct all exception mess! Webdav/src/transport.php:536: * @todo This should be refactored completly and must be made usable for Webdav/src/transport.php:570: * @todo This should be refactored completly and must be made usable for Webdav/src/transport.php:596: // @TODO Add extensiability hook Webdav/src/transport.php:874: * @todo This should be extracted into the LOCK plugin. Webdav/src/transport.php:926: // @TODO is the following not restrictive enough? Webdav/src/transport.php:958: * @todo This should be extracted into the LOCK plugin. Webdav/src/transport.php:1141: // @TODO: Webdav/src/transport.php:1427: * @todo We should possibly offer an ezcWebdavTemplateTiein, which brings Webdav/src/transport.php:1451: * @todo Do we need to set more headers here? Webdav/src/transport.php:1508: * @todo Do we need to set more headers here? Webdav/src/server.php:125: // @todo $this->pluginRegistry->hook( __CLASS__, 'receivedRequest', new ezcWebdavPluginParameters( array( 'request' => $request ) ) ); Webdav/src/server.php:134: // @todo $this->pluginRegistry->hook( __CLASS__, 'generatedResponse', new ezcWebdavPluginParameters( array( 'response' => $response ) ) ); Webdav/src/path_factories/basic.php:43: * @todo This is a temporary hack to satisfy memory backend and RFC. Webdav/src/path_factories/basic.php:82: // @todo This is a cleanup for the memory backend Webdav/src/path_factories/basic.php:88: // @todo Some clients first send with / and then discover it is not a resource Webdav/src/interfaces/response.php:178: // @TODO: Do we need more standard HTTP headers here? Webdav/src/interfaces/request.php:83: // @todo Implement general header checks here. Webdav/tests/clients/rfc/convert.php:69: // @TODO Guessed from here, need validation!