]> source.dussan.org Git - nextcloud-server.git/commitdiff
Working remote.php with webdav and caldav
authorBart Visscher <bartv@thisnet.nl>
Sat, 5 May 2012 22:12:51 +0000 (00:12 +0200)
committerBart Visscher <bartv@thisnet.nl>
Sat, 5 May 2012 22:12:51 +0000 (00:12 +0200)
.htaccess
3rdparty/Sabre/DAV/Server.php
apps/files/appinfo/remote.php
remote.php

index adc6667d5bf64ce0e4f282dc9c53da2a7b187255..73e1af6213488a5f68c4bd5852d399aa2a6e2ab9 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -19,5 +19,6 @@ RewriteRule ^.well-known/carddav /remote/carddav.php [R]
 RewriteRule ^.well-known/caldav /remote/caldav.php [R]
 
 RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L]
+RewriteRule ^remote/(.*) remote.php [QSA,L]
 </IfModule>
 Options -Indexes
index 4284c127b6e120ac33b110e5df019e0502d6d797..50b190e8fabf834a9c421b9638eadb71156e20b6 100644 (file)
@@ -215,7 +215,7 @@ class Sabre_DAV_Server {
             $DOM->appendChild($error);
 
             $error->appendChild($DOM->createElement('s:exception',get_class($e)));
-            $error->appendChild($DOM->createElement('s:message',$e->getMessage()));
+            $error->appendChild($DOM->createElement('s:message',htmlentities($e->getMessage())));
             if ($this->debugExceptions) {
                 $error->appendChild($DOM->createElement('s:file',$e->getFile()));
                 $error->appendChild($DOM->createElement('s:line',$e->getLine()));
index 6d54a4baed21e1b47f322edd1cc7c303976d2be5..0f618c391ad19c5998eb08ca8a7e1bbf1987186a 100644 (file)
@@ -37,7 +37,7 @@ $publicDir = new OC_Connector_Sabre_Directory('');
 
 // Fire up server
 $server = new Sabre_DAV_Server($publicDir);
-$server->setBaseUri(OC::$WEBROOT.'/remote/webdav.php');
+$server->setBaseUri($baseuri);
 
 // Load plugins
 $server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend,'ownCloud'));
index e11b72ee8c21e6106e23b450b5bac60af42754a4..ab5364aad6e9496ea367c544b2765f7a6be2c0ac 100644 (file)
@@ -2,11 +2,15 @@
 $RUNTIME_NOSETUPFS = true;
 //$RUNTIME_NOAPPS = TRUE;
 require_once('lib/base.php');
-$file = OCP\CONFIG::getAppValue('core', $_GET['service']);
+$path_info = $_SERVER['PATH_INFO'];
+if (!$pos = strpos($path_info, '/', 1)) {
+       $pos = strlen($path_info);
+}
+$service=substr($path_info, 1, $pos-1);
+$file = OCP\CONFIG::getAppValue('core', $service);
 if(is_null($file)){
        header('HTTP/1.0 404 Not Found');
        exit;
 }
-$baseuri = OC::$WEBROOT . '/remote.php?service=' . $_GET['service'] . '&amp;p=';
-parse_str($_GET['p'], $_GET);
-require_once(OC::$APPSROOT . $file);
\ No newline at end of file
+$baseuri = '/remote.php/'.$service.'/';
+require_once(OC::$APPSROOT . $file);