mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-04-22 02:38:32 -05:00
chore(deps): bump github.com/tus/tusd/v2 from 2.4.0 to 2.5.0
Bumps [github.com/tus/tusd/v2](https://github.com/tus/tusd) from 2.4.0 to 2.5.0. - [Release notes](https://github.com/tus/tusd/releases) - [Commits](https://github.com/tus/tusd/compare/v2.4.0...v2.5.0) --- updated-dependencies: - dependency-name: github.com/tus/tusd/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
committed by
Ralf Haferkamp
parent
32879e0603
commit
85bd58e990
+14
-8
@@ -80,12 +80,13 @@ var _ Logger = &intLogger{}
|
||||
// intLogger is an internal logger implementation. Internal in that it is
|
||||
// defined entirely by this package.
|
||||
type intLogger struct {
|
||||
json bool
|
||||
callerOffset int
|
||||
name string
|
||||
timeFormat string
|
||||
timeFn TimeFunction
|
||||
disableTime bool
|
||||
json bool
|
||||
jsonEscapeEnabled bool
|
||||
callerOffset int
|
||||
name string
|
||||
timeFormat string
|
||||
timeFn TimeFunction
|
||||
disableTime bool
|
||||
|
||||
// This is an interface so that it's shared by any derived loggers, since
|
||||
// those derived loggers share the bufio.Writer as well.
|
||||
@@ -173,6 +174,7 @@ func newLogger(opts *LoggerOptions) *intLogger {
|
||||
|
||||
l := &intLogger{
|
||||
json: opts.JSONFormat,
|
||||
jsonEscapeEnabled: !opts.JSONEscapeDisabled,
|
||||
name: opts.Name,
|
||||
timeFormat: TimeFormat,
|
||||
timeFn: time.Now,
|
||||
@@ -667,13 +669,17 @@ func (l *intLogger) logJSON(t time.Time, name string, level Level, msg string, a
|
||||
}
|
||||
}
|
||||
|
||||
err := json.NewEncoder(l.writer).Encode(vals)
|
||||
encoder := json.NewEncoder(l.writer)
|
||||
encoder.SetEscapeHTML(l.jsonEscapeEnabled)
|
||||
err := encoder.Encode(vals)
|
||||
if err != nil {
|
||||
if _, ok := err.(*json.UnsupportedTypeError); ok {
|
||||
plainVal := l.jsonMapEntry(t, name, level, msg)
|
||||
plainVal["@warn"] = errJsonUnsupportedTypeMsg
|
||||
|
||||
json.NewEncoder(l.writer).Encode(plainVal)
|
||||
errEncoder := json.NewEncoder(l.writer)
|
||||
errEncoder.SetEscapeHTML(l.jsonEscapeEnabled)
|
||||
errEncoder.Encode(plainVal)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -264,6 +264,9 @@ type LoggerOptions struct {
|
||||
// Control if the output should be in JSON.
|
||||
JSONFormat bool
|
||||
|
||||
// Control the escape switch of json.Encoder
|
||||
JSONEscapeDisabled bool
|
||||
|
||||
// Include file and line information in each log line
|
||||
IncludeLocation bool
|
||||
|
||||
|
||||
+10
@@ -1,3 +1,13 @@
|
||||
## v1.6.1
|
||||
|
||||
BUGS:
|
||||
|
||||
* Suppress spurious `os.ErrClosed` on plugin shutdown [[GH-299](https://github.com/hashicorp/go-plugin/pull/299)]
|
||||
|
||||
ENHANCEMENTS:
|
||||
|
||||
* deps: bump google.golang.org/grpc to v1.58.3 [[GH-296](https://github.com/hashicorp/go-plugin/pull/296)]
|
||||
|
||||
## v1.6.0
|
||||
|
||||
CHANGES:
|
||||
|
||||
+10
-8
@@ -104,9 +104,9 @@ type Client struct {
|
||||
// goroutines.
|
||||
clientWaitGroup sync.WaitGroup
|
||||
|
||||
// stderrWaitGroup is used to prevent the command's Wait() function from
|
||||
// being called before we've finished reading from the stderr pipe.
|
||||
stderrWaitGroup sync.WaitGroup
|
||||
// pipesWaitGroup is used to prevent the command's Wait() function from
|
||||
// being called before we've finished reading from the stdout and stderr pipe.
|
||||
pipesWaitGroup sync.WaitGroup
|
||||
|
||||
// processKilled is used for testing only, to flag when the process was
|
||||
// forcefully killed.
|
||||
@@ -756,8 +756,8 @@ func (c *Client) Start() (addr net.Addr, err error) {
|
||||
|
||||
// Start goroutine that logs the stderr
|
||||
c.clientWaitGroup.Add(1)
|
||||
c.stderrWaitGroup.Add(1)
|
||||
// logStderr calls Done()
|
||||
c.pipesWaitGroup.Add(1)
|
||||
// logStderr calls c.pipesWaitGroup.Done()
|
||||
go c.logStderr(runner.Name(), runner.Stderr())
|
||||
|
||||
c.clientWaitGroup.Add(1)
|
||||
@@ -767,9 +767,9 @@ func (c *Client) Start() (addr net.Addr, err error) {
|
||||
|
||||
defer c.clientWaitGroup.Done()
|
||||
|
||||
// wait to finish reading from stderr since the stderr pipe reader
|
||||
// wait to finish reading from stdout/stderr since the stdout/stderr pipe readers
|
||||
// will be closed by the subsequent call to cmd.Wait().
|
||||
c.stderrWaitGroup.Wait()
|
||||
c.pipesWaitGroup.Wait()
|
||||
|
||||
// Wait for the command to end.
|
||||
err := runner.Wait(context.Background())
|
||||
@@ -792,8 +792,10 @@ func (c *Client) Start() (addr net.Addr, err error) {
|
||||
// out of stdout
|
||||
linesCh := make(chan string)
|
||||
c.clientWaitGroup.Add(1)
|
||||
c.pipesWaitGroup.Add(1)
|
||||
go func() {
|
||||
defer c.clientWaitGroup.Done()
|
||||
defer c.pipesWaitGroup.Done()
|
||||
defer close(linesCh)
|
||||
|
||||
scanner := bufio.NewScanner(runner.Stdout())
|
||||
@@ -1159,7 +1161,7 @@ func (c *Client) getGRPCMuxer(addr net.Addr) (*grpcmux.GRPCClientMuxer, error) {
|
||||
|
||||
func (c *Client) logStderr(name string, r io.Reader) {
|
||||
defer c.clientWaitGroup.Done()
|
||||
defer c.stderrWaitGroup.Done()
|
||||
defer c.pipesWaitGroup.Done()
|
||||
l := c.logger.Named(filepath.Base(name))
|
||||
|
||||
reader := bufio.NewReaderSize(r, c.config.PluginLogBufferSize)
|
||||
|
||||
+4
-2
@@ -203,8 +203,10 @@ func HandlerForTransactional(reg prometheus.TransactionalGatherer, opts HandlerO
|
||||
|
||||
defer closeWriter()
|
||||
|
||||
rsp.Header().Set(contentEncodingHeader, encodingHeader)
|
||||
|
||||
// Set Content-Encoding only when data is compressed
|
||||
if encodingHeader != string(Identity) {
|
||||
rsp.Header().Set(contentEncodingHeader, encodingHeader)
|
||||
}
|
||||
enc := expfmt.NewEncoder(w, contentType)
|
||||
|
||||
// handleError handles the error according to opts.ErrorHandling
|
||||
|
||||
+3
@@ -54,6 +54,9 @@ func (f FileInfo) StopUpload(response HTTPResponse) {
|
||||
// can be done using the PreUploadCreateCallback to modify certain properties before
|
||||
// an upload is created. Properties which should not be modified (e.g. Size or Offset)
|
||||
// are intentionally left out here.
|
||||
//
|
||||
// Please also consult the documentation for the `ChangeFileInfo` property at
|
||||
// https://tus.github.io/tusd/advanced-topics/hooks/#hook-requests-and-responses.
|
||||
type FileInfoChanges struct {
|
||||
// If ID is not empty, it will be passed to the data store, allowing
|
||||
// hooks to influence the upload ID. Be aware that a data store is not required to
|
||||
|
||||
+31
-18
@@ -396,7 +396,7 @@ func (handler *UnroutedHandler) PostFile(w http.ResponseWriter, r *http.Request)
|
||||
|
||||
handler.Metrics.incUploadsCreated()
|
||||
c.log = c.log.With("id", id)
|
||||
c.log.Info("UploadCreated", "id", id, "size", size, "url", url)
|
||||
c.log.Info("UploadCreated", "size", size, "url", url)
|
||||
|
||||
if handler.config.NotifyCreatedUploads {
|
||||
handler.CreatedUploads <- newHookEvent(c, info)
|
||||
@@ -410,8 +410,10 @@ func (handler *UnroutedHandler) PostFile(w http.ResponseWriter, r *http.Request)
|
||||
}
|
||||
info.Offset = size
|
||||
|
||||
if handler.config.NotifyCompleteUploads {
|
||||
handler.CompleteUploads <- newHookEvent(c, info)
|
||||
resp, err = handler.emitFinishEvents(c, resp, info)
|
||||
if err != nil {
|
||||
handler.sendError(c, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -936,31 +938,42 @@ func (handler *UnroutedHandler) writeChunk(c *httpContext, resp HTTPResponse, up
|
||||
|
||||
// finishUploadIfComplete checks whether an upload is completed (i.e. upload offset
|
||||
// matches upload size) and if so, it will call the data store's FinishUpload
|
||||
// function and send the necessary message on the CompleteUpload channel.
|
||||
// function and emit the necessary events for the hooks.
|
||||
func (handler *UnroutedHandler) finishUploadIfComplete(c *httpContext, resp HTTPResponse, upload Upload, info FileInfo) (HTTPResponse, error) {
|
||||
// If the upload is completed, ...
|
||||
if !info.SizeIsDeferred && info.Offset == info.Size {
|
||||
var err error
|
||||
// ... allow the data storage to finish and cleanup the upload
|
||||
if err := upload.FinishUpload(c); err != nil {
|
||||
if err = upload.FinishUpload(c); err != nil {
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// ... allow the hook callback to run before sending the response
|
||||
if handler.config.PreFinishResponseCallback != nil {
|
||||
resp2, err := handler.config.PreFinishResponseCallback(newHookEvent(c, info))
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
resp = resp.MergeWith(resp2)
|
||||
// ... and call pre-finish callback and send post-finish notification.
|
||||
resp, err = handler.emitFinishEvents(c, resp, info)
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
}
|
||||
|
||||
c.log.Info("UploadFinished", "size", info.Size)
|
||||
handler.Metrics.incUploadsFinished()
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// ... send the info out to the channel
|
||||
if handler.config.NotifyCompleteUploads {
|
||||
handler.CompleteUploads <- newHookEvent(c, info)
|
||||
// emitFinishEvents calls the PreFinishResponseCallback function and sends
|
||||
// the necessary message on the CompleteUpload channel.
|
||||
func (handler *UnroutedHandler) emitFinishEvents(c *httpContext, resp HTTPResponse, info FileInfo) (HTTPResponse, error) {
|
||||
if handler.config.PreFinishResponseCallback != nil {
|
||||
resp2, err := handler.config.PreFinishResponseCallback(newHookEvent(c, info))
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
resp = resp.MergeWith(resp2)
|
||||
}
|
||||
|
||||
c.log.Info("UploadFinished", "size", info.Size)
|
||||
handler.Metrics.incUploadsFinished()
|
||||
|
||||
if handler.config.NotifyCompleteUploads {
|
||||
handler.CompleteUploads <- newHookEvent(c, info)
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
@@ -1545,7 +1558,7 @@ func getRequestId(r *http.Request) string {
|
||||
return reqId
|
||||
}
|
||||
|
||||
// validateUploadId checks whether an ID included in a FileInfoChange struct is allowed.
|
||||
// validateUploadId checks whether an ID included in a FileInfoChanges struct is allowed.
|
||||
func validateUploadId(newId string) error {
|
||||
if newId == "" {
|
||||
// An empty ID from FileInfoChanges is allowed. The store will then
|
||||
|
||||
Reference in New Issue
Block a user