aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/api/filesystem.go
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2017-01-10 05:53:17 +0800
committerGitHub <noreply@github.com>2017-01-10 05:53:17 +0800
commit02b67558e8eaa7b34a28b8dd0223824bbbb52349 (patch)
tree33bbc5057d4546d93d6d0e92b90eef19b49abb83 /swarm/api/filesystem.go
parent91c8f87fb128c070b6c557a142e25d4428c96487 (diff)
parentb9b3efb09f9281a5859646d2dcf36b5813132efb (diff)
downloaddexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.tar
dexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.tar.gz
dexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.tar.bz2
dexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.tar.lz
dexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.tar.xz
dexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.tar.zst
dexon-02b67558e8eaa7b34a28b8dd0223824bbbb52349.zip
Merge pull request #3535 from fjl/all-ineffassign
all: fix ineffectual assignments
Diffstat (limited to 'swarm/api/filesystem.go')
-rw-r--r--swarm/api/filesystem.go38
1 files changed, 20 insertions, 18 deletions
diff --git a/swarm/api/filesystem.go b/swarm/api/filesystem.go
index 428f3e3ac..96aaf36df 100644
--- a/swarm/api/filesystem.go
+++ b/swarm/api/filesystem.go
@@ -241,24 +241,7 @@ func (self *FileSystem) Download(bzzpath, localpath string) error {
}
go func(i int, entry *downloadListEntry) {
defer wg.Done()
- f, err := os.Create(entry.path) // TODO: path separators
- if err == nil {
-
- reader := self.api.dpa.Retrieve(entry.key)
- writer := bufio.NewWriter(f)
- size, err := reader.Size(quitC)
- if err == nil {
- _, err = io.CopyN(writer, reader, size) // TODO: handle errors
- err2 := writer.Flush()
- if err == nil {
- err = err2
- }
- err2 = f.Close()
- if err == nil {
- err = err2
- }
- }
- }
+ err := retrieveToFile(quitC, self.api.dpa, entry.key, entry.path)
if err != nil {
select {
case errC <- err:
@@ -279,5 +262,24 @@ func (self *FileSystem) Download(bzzpath, localpath string) error {
case <-quitC:
return fmt.Errorf("aborted")
}
+}
+func retrieveToFile(quitC chan bool, dpa *storage.DPA, key storage.Key, path string) error {
+ f, err := os.Create(path) // TODO: path separators
+ if err != nil {
+ return err
+ }
+ reader := dpa.Retrieve(key)
+ writer := bufio.NewWriter(f)
+ size, err := reader.Size(quitC)
+ if err != nil {
+ return err
+ }
+ if _, err = io.CopyN(writer, reader, size); err != nil {
+ return err
+ }
+ if err := writer.Flush(); err != nil {
+ return err
+ }
+ return f.Close()
}