[Pkg-owncloud-commits] [owncloud] 71/131: Throw lock exceptions if remote share returned 423 status code

David Prévot taffit at moszumanska.debian.org
Tue Aug 11 15:58:33 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v8.1.1
in repository owncloud.

commit 335372064e99853d22829b32ae851c617c14e743
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Wed Jul 1 13:17:29 2015 +0200

    Throw lock exceptions if remote share returned 423 status code
---
 lib/private/files/storage/dav.php | 44 ++++++++++++++++++++++++---------------
 1 file changed, 27 insertions(+), 17 deletions(-)

diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index e02f971..24cf3c2 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -219,9 +219,9 @@ class DAV extends Common {
 				$this->statCache->set($path, false);
 				return false;
 			}
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		}
 		return false;
 	}
@@ -286,9 +286,9 @@ class DAV extends Common {
 			if ($e->getHttpStatus() === 404) {
 				return false;
 			}
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		}
 		return false;
 	}
@@ -311,9 +311,9 @@ class DAV extends Common {
 			if ($e->getHttpStatus() === 404) {
 				return false;
 			}
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		}
 		return false;
 	}
@@ -363,6 +363,9 @@ class DAV extends Common {
 				$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 				if ($statusCode !== 200) {
 					Util::writeLog("webdav client", 'curl GET ' . curl_getinfo($curl, CURLINFO_EFFECTIVE_URL) . ' returned status code ' . $statusCode, Util::ERROR);
+					if ($statusCode === 423) {
+						throw new \OCP\Lock\LockedException($path);
+					}
 				}
 				curl_close($curl);
 				rewind($fp);
@@ -446,10 +449,10 @@ class DAV extends Common {
 				if ($e->getHttpStatus() === 501) {
 					return false;
 				}
-				$this->convertException($e);
+				$this->convertException($e, $path);
 				return false;
 			} catch (\Exception $e) {
-				$this->convertException($e);
+				$this->convertException($e, $path);
 				return false;
 			}
 		} else {
@@ -502,6 +505,9 @@ class DAV extends Common {
 		$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 		if ($statusCode !== 200) {
 			Util::writeLog("webdav client", 'curl GET ' . curl_getinfo($curl, CURLINFO_EFFECTIVE_URL) . ' returned status code ' . $statusCode, Util::ERROR);
+			if ($statusCode === 423) {
+				throw new \OCP\Lock\LockedException($path);
+			}
 		}
 		curl_close($curl);
 		fclose($source);
@@ -564,9 +570,9 @@ class DAV extends Common {
 			if ($e->getHttpStatus() === 404) {
 				return array();
 			}
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		}
 		return array();
 	}
@@ -591,9 +597,9 @@ class DAV extends Common {
 			if ($e->getHttpStatus() === 404) {
 				return false;
 			}
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		}
 		return false;
 	}
@@ -643,9 +649,9 @@ class DAV extends Common {
 				return false;
 			}
 
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 		}
 		return false;
 	}
@@ -767,10 +773,10 @@ class DAV extends Common {
 				}
 				return false;
 			}
-			$this->convertException($e);
+			$this->convertException($e, $path);
 			return false;
 		} catch (\Exception $e) {
-			$this->convertException($e);
+			$this->convertException($e, $path);
 			return false;
 		}
 	}
@@ -782,15 +788,19 @@ class DAV extends Common {
 	 * or do nothing.
 	 *
 	 * @param Exception $e sabre exception
+	 * @param string $path optional path from the operation
 	 *
 	 * @throws StorageInvalidException if the storage is invalid, for example
 	 * when the authentication expired or is invalid
 	 * @throws StorageNotAvailableException if the storage is not available,
 	 * which might be temporary
 	 */
-	private function convertException(Exception $e) {
+	private function convertException(Exception $e, $path = '') {
 		Util::writeLog('files_external', $e->getMessage(), Util::ERROR);
 		if ($e instanceof ClientHttpException) {
+			if ($e->getHttpStatus() === 423) {
+				throw new \OCP\Lock\LockedException($path);
+			}
 			if ($e->getHttpStatus() === 401) {
 				// either password was changed or was invalid all along
 				throw new StorageInvalidException(get_class($e).': '.$e->getMessage());

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list