bufs.Put(buf)
if err != nil {
- ke := err.(*KeepError)
- http.Error(resp, ke.Error(), ke.HTTPCode)
+ code := http.StatusInternalServerError
+ if err, ok := err.(*KeepError); ok {
+ code = err.HTTPCode
+ }
+ http.Error(resp, err.Error(), code)
return
}
size, err := vol.Get(ctx, hash, buf)
select {
case <-ctx.Done():
- return 0, ctx.Err()
+ return 0, ErrClientDisconnect
default:
}
if err != nil {
return vol.Replication(), nil // success!
}
if ctx.Err() != nil {
- return 0, ctx.Err()
+ return 0, ErrClientDisconnect
}
}
for _, vol := range writables {
err := vol.Put(ctx, hash, block)
if ctx.Err() != nil {
- return 0, ctx.Err()
+ return 0, ErrClientDisconnect
}
if err == nil {
return vol.Replication(), nil // success!