aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/cloud.google.com
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-28 09:59:11 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-28 09:59:11 +0200
commit7b4e273e539d93682dc87e9a7c7d1f79a4cd1b77 (patch)
treec12ada52827e6b5e8e6620b880a35bb8d2322ebe /vendor/cloud.google.com
parentc3e23de010943fd4b18e0dc95ca5b31267fabe6d (diff)
vendor: add github.com/ianlancetaylor/demangle
Add the new package required by pkg/report/fuchsia.go. Also update everything else because there does not seem to be a way to add a package without a wholesale update.
Diffstat (limited to 'vendor/cloud.google.com')
-rw-r--r--vendor/cloud.google.com/go/storage/go110.go30
-rw-r--r--vendor/cloud.google.com/go/storage/invoke.go9
-rw-r--r--vendor/cloud.google.com/go/storage/not_go110.go40
-rw-r--r--vendor/cloud.google.com/go/storage/storage.go9
-rw-r--r--vendor/cloud.google.com/go/storage/writer.go2
5 files changed, 80 insertions, 10 deletions
diff --git a/vendor/cloud.google.com/go/storage/go110.go b/vendor/cloud.google.com/go/storage/go110.go
new file mode 100644
index 000000000..b85e8c3b9
--- /dev/null
+++ b/vendor/cloud.google.com/go/storage/go110.go
@@ -0,0 +1,30 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build go1.10
+
+package storage
+
+import "google.golang.org/api/googleapi"
+
+func shouldRetry(err error) bool {
+ switch e := err.(type) {
+ case *googleapi.Error:
+ // Retry on 429 and 5xx, according to
+ // https://cloud.google.com/storage/docs/exponential-backoff.
+ return e.Code == 429 || (e.Code >= 500 && e.Code < 600)
+ default:
+ return false
+ }
+}
diff --git a/vendor/cloud.google.com/go/storage/invoke.go b/vendor/cloud.google.com/go/storage/invoke.go
index e8fc924ea..46423a8b2 100644
--- a/vendor/cloud.google.com/go/storage/invoke.go
+++ b/vendor/cloud.google.com/go/storage/invoke.go
@@ -18,7 +18,6 @@ import (
"cloud.google.com/go/internal"
gax "github.com/googleapis/gax-go"
"golang.org/x/net/context"
- "google.golang.org/api/googleapi"
)
// runWithRetry calls the function until it returns nil or a non-retryable error, or
@@ -29,13 +28,7 @@ func runWithRetry(ctx context.Context, call func() error) error {
if err == nil {
return true, nil
}
- e, ok := err.(*googleapi.Error)
- if !ok {
- return true, err
- }
- // Retry on 429 and 5xx, according to
- // https://cloud.google.com/storage/docs/exponential-backoff.
- if e.Code == 429 || (e.Code >= 500 && e.Code < 600) {
+ if shouldRetry(err) {
return false, nil
}
return true, err
diff --git a/vendor/cloud.google.com/go/storage/not_go110.go b/vendor/cloud.google.com/go/storage/not_go110.go
new file mode 100644
index 000000000..c354e74bf
--- /dev/null
+++ b/vendor/cloud.google.com/go/storage/not_go110.go
@@ -0,0 +1,40 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build !go1.10
+
+package storage
+
+import (
+ "net/url"
+ "strings"
+
+ "google.golang.org/api/googleapi"
+)
+
+func shouldRetry(err error) bool {
+ switch e := err.(type) {
+ case *googleapi.Error:
+ // Retry on 429 and 5xx, according to
+ // https://cloud.google.com/storage/docs/exponential-backoff.
+ return e.Code == 429 || (e.Code >= 500 && e.Code < 600)
+ case *url.Error:
+ // Retry on REFUSED_STREAM.
+ // Unfortunately the error type is unexported, so we resort to string
+ // matching.
+ return strings.Contains(e.Error(), "REFUSED_STREAM")
+ default:
+ return false
+ }
+}
diff --git a/vendor/cloud.google.com/go/storage/storage.go b/vendor/cloud.google.com/go/storage/storage.go
index ad2fde4d0..82c0ddbf5 100644
--- a/vendor/cloud.google.com/go/storage/storage.go
+++ b/vendor/cloud.google.com/go/storage/storage.go
@@ -721,11 +721,16 @@ type ObjectAttrs struct {
// sent in the response headers.
ContentDisposition string
- // MD5 is the MD5 hash of the object's content. This field is read-only.
+ // MD5 is the MD5 hash of the object's content. This field is read-only,
+ // except when used from a Writer. If set on a Writer, the uploaded
+ // data is rejected if its MD5 hash does not match this field.
MD5 []byte
// CRC32C is the CRC32 checksum of the object's content using
- // the Castagnoli93 polynomial. This field is read-only.
+ // the Castagnoli93 polynomial. This field is read-only, except when
+ // used from a Writer. If set on a Writer and Writer.SendCRC32C
+ // is true, the uploaded data is rejected if its CRC32c hash does not
+ // match this field.
CRC32C uint32
// MediaLink is an URL to the object's content. This field is read-only.
diff --git a/vendor/cloud.google.com/go/storage/writer.go b/vendor/cloud.google.com/go/storage/writer.go
index 19f4f0e10..109112c62 100644
--- a/vendor/cloud.google.com/go/storage/writer.go
+++ b/vendor/cloud.google.com/go/storage/writer.go
@@ -36,6 +36,8 @@ type Writer struct {
// SendCRC specifies whether to transmit a CRC32C field. It should be set
// to true in addition to setting the Writer's CRC32C field, because zero
// is a valid CRC and normally a zero would not be transmitted.
+ // If a CRC32C is sent, and the data written does not match the checksum,
+ // the write will be rejected.
SendCRC32C bool
// ChunkSize controls the maximum number of bytes of the object that the