aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/api
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2017-01-09 18:16:06 +0800
committerFelix Lange <fjl@twurst.com>2017-01-09 23:24:42 +0800
commitb9b3efb09f9281a5859646d2dcf36b5813132efb (patch)
treef9dc8f9d82108b33bec4669b09a99d06d24239a9 /swarm/api
parent0f34d506b5ae9b76de97318c906e56dddd5309f6 (diff)
downloaddexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.tar
dexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.tar.gz
dexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.tar.bz2
dexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.tar.lz
dexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.tar.xz
dexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.tar.zst
dexon-b9b3efb09f9281a5859646d2dcf36b5813132efb.zip
all: fix ineffectual assignments and remove uses of crypto.Sha3
go get github.com/gordonklaus/ineffassign ineffassign .
Diffstat (limited to 'swarm/api')
-rw-r--r--swarm/api/api.go9
-rw-r--r--swarm/api/config.go2
-rw-r--r--swarm/api/filesystem.go38
-rw-r--r--swarm/api/filesystem_test.go1
4 files changed, 30 insertions, 20 deletions
diff --git a/swarm/api/api.go b/swarm/api/api.go
index 673cff350..3f48437a5 100644
--- a/swarm/api/api.go
+++ b/swarm/api/api.go
@@ -140,8 +140,11 @@ func (self *Api) Put(content, contentType string) (string, error) {
// to resolve path to content using dpa retrieve
// it returns a section reader, mimeType, status and an error
func (self *Api) Get(uri string, nameresolver bool) (reader storage.LazySectionReader, mimeType string, status int, err error) {
-
key, _, path, err := self.parseAndResolve(uri, nameresolver)
+ if err != nil {
+ return nil, "", 500, fmt.Errorf("can't resolve: %v", err)
+ }
+
quitC := make(chan bool)
trie, err := loadManifest(self.dpa, key, quitC)
if err != nil {
@@ -166,6 +169,10 @@ func (self *Api) Get(uri string, nameresolver bool) (reader storage.LazySectionR
func (self *Api) Modify(uri, contentHash, contentType string, nameresolver bool) (newRootHash string, err error) {
root, _, path, err := self.parseAndResolve(uri, nameresolver)
+ if err != nil {
+ return "", fmt.Errorf("can't resolve: %v", err)
+ }
+
quitC := make(chan bool)
trie, err := loadManifest(self.dpa, root, quitC)
if err != nil {
diff --git a/swarm/api/config.go b/swarm/api/config.go
index 14a559c75..b4c6e3d4a 100644
--- a/swarm/api/config.go
+++ b/swarm/api/config.go
@@ -69,7 +69,7 @@ func NewConfig(path string, contract common.Address, prvKey *ecdsa.PrivateKey, n
var data []byte
pubkey := crypto.FromECDSAPub(&prvKey.PublicKey)
pubkeyhex := common.ToHex(pubkey)
- keyhex := crypto.Sha3Hash(pubkey).Hex()
+ keyhex := crypto.Keccak256Hash(pubkey).Hex()
self = &Config{
SyncParams: network.NewSyncParams(dirpath),
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()
}
diff --git a/swarm/api/filesystem_test.go b/swarm/api/filesystem_test.go
index f6657aede..4a27cb1da 100644
--- a/swarm/api/filesystem_test.go
+++ b/swarm/api/filesystem_test.go
@@ -130,6 +130,7 @@ func TestApiDirUploadModify(t *testing.T) {
content = readPath(t, "testdata", "test0", "index.css")
resp = testGet(t, api, bzzhash+"/index.css")
exp = expResponse(content, "text/css", 0)
+ checkResponse(t, resp, exp)
_, _, _, err = api.Get(bzzhash, true)
if err == nil {