diff --git a/internal/jsre/deps/web3.js b/internal/jsre/deps/web3.js index 9bb899384b..22acb9f863 100644 --- a/internal/jsre/deps/web3.js +++ b/internal/jsre/deps/web3.js @@ -2307,7 +2307,7 @@ var toChecksumAddress = function (address) { }; /** - * Transforms given string to valid 20 bytes-length addres with 0x prefix + * Transforms given string to valid 20 bytes-length address with 0x prefix * * @method toAddress * @param {String} address diff --git a/log/logger.go b/log/logger.go index 15c83a9b25..e2805271a7 100644 --- a/log/logger.go +++ b/log/logger.go @@ -126,13 +126,13 @@ type logger struct { h *swapHandler } -func (l *logger) write(msg string, lvl Lvl, ctx []interface{}) { +func (l *logger) write(msg string, lvl Lvl, ctx []interface{}, skip int) { l.h.Log(&Record{ Time: time.Now(), Lvl: lvl, Msg: msg, Ctx: newContext(l.ctx, ctx), - Call: stack.Caller(2), + Call: stack.Caller(skip), KeyNames: RecordKeyNames{ Time: timeKey, Msg: msgKey, @@ -156,27 +156,27 @@ func newContext(prefix []interface{}, suffix []interface{}) []interface{} { } func (l *logger) Trace(msg string, ctx ...interface{}) { - l.write(msg, LvlTrace, ctx) + l.write(msg, LvlTrace, ctx, 2) } func (l *logger) Debug(msg string, ctx ...interface{}) { - l.write(msg, LvlDebug, ctx) + l.write(msg, LvlDebug, ctx, 2) } func (l *logger) Info(msg string, ctx ...interface{}) { - l.write(msg, LvlInfo, ctx) + l.write(msg, LvlInfo, ctx, 2) } func (l *logger) Warn(msg string, ctx ...interface{}) { - l.write(msg, LvlWarn, ctx) + l.write(msg, LvlWarn, ctx, 2) } func (l *logger) Error(msg string, ctx ...interface{}) { - l.write(msg, LvlError, ctx) + l.write(msg, LvlError, ctx, 2) } func (l *logger) Crit(msg string, ctx ...interface{}) { - l.write(msg, LvlCrit, ctx) + l.write(msg, LvlCrit, ctx, 2) os.Exit(1) } diff --git a/log/root.go b/log/root.go index 71b8cef6d4..dd24c05e32 100644 --- a/log/root.go +++ b/log/root.go @@ -31,31 +31,36 @@ func Root() Logger { // Trace is a convenient alias for Root().Trace func Trace(msg string, ctx ...interface{}) { - root.write(msg, LvlTrace, ctx) + root.write(msg, LvlTrace, ctx, 2) } // Debug is a convenient alias for Root().Debug func Debug(msg string, ctx ...interface{}) { - root.write(msg, LvlDebug, ctx) + root.write(msg, LvlDebug, ctx, 2) } // Info is a convenient alias for Root().Info func Info(msg string, ctx ...interface{}) { - root.write(msg, LvlInfo, ctx) + root.write(msg, LvlInfo, ctx, 2) } // Warn is a convenient alias for Root().Warn func Warn(msg string, ctx ...interface{}) { - root.write(msg, LvlWarn, ctx) + root.write(msg, LvlWarn, ctx, 2) } // Error is a convenient alias for Root().Error func Error(msg string, ctx ...interface{}) { - root.write(msg, LvlError, ctx) + root.write(msg, LvlError, ctx, 2) } // Crit is a convenient alias for Root().Crit func Crit(msg string, ctx ...interface{}) { - root.write(msg, LvlCrit, ctx) + root.write(msg, LvlCrit, ctx, 2) os.Exit(1) } + +// Output is a convenient alias for write +func Output(msg string, lvl Lvl, skip int, ctx ...interface{}) { + root.write(msg, lvl, ctx, skip) +} diff --git a/p2p/protocols/protocol.go b/p2p/protocols/protocol.go index 7b04069edf..bb934ca45a 100644 --- a/p2p/protocols/protocol.go +++ b/p2p/protocols/protocol.go @@ -183,7 +183,7 @@ type Peer struct { // NewPeer constructs a new peer // this constructor is called by the p2p.Protocol#Run function -// the first two arguments are comming the arguments passed to p2p.Protocol.Run function +// the first two arguments are coming the arguments passed to p2p.Protocol.Run function // the third argument is the CodeMap describing the protocol messages and options func NewPeer(p *p2p.Peer, rw p2p.MsgReadWriter, spec *Spec) *Peer { return &Peer{ diff --git a/p2p/protocols/protocol_test.go b/p2p/protocols/protocol_test.go index c79d34eee6..8216bb956a 100644 --- a/p2p/protocols/protocol_test.go +++ b/p2p/protocols/protocol_test.go @@ -154,18 +154,18 @@ func protocolTester(t *testing.T, pp *p2ptest.TestPeerPool) *p2ptest.ProtocolTes func protoHandshakeExchange(id discover.NodeID, proto *protoHandshake) []p2ptest.Exchange { return []p2ptest.Exchange{ - p2ptest.Exchange{ + { Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 0, Msg: &protoHandshake{42, "420"}, Peer: id, }, }, }, - p2ptest.Exchange{ + { Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 0, Msg: proto, Peer: id, @@ -207,18 +207,18 @@ func TestProtoHandshakeSuccess(t *testing.T) { func moduleHandshakeExchange(id discover.NodeID, resp uint) []p2ptest.Exchange { return []p2ptest.Exchange{ - p2ptest.Exchange{ + { Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 1, Msg: &hs0{42}, Peer: id, }, }, }, - p2ptest.Exchange{ + { Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 1, Msg: &hs0{resp}, Peer: id, @@ -255,42 +255,42 @@ func TestModuleHandshakeSuccess(t *testing.T) { func testMultiPeerSetup(a, b discover.NodeID) []p2ptest.Exchange { return []p2ptest.Exchange{ - p2ptest.Exchange{ + { Label: "primary handshake", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 0, Msg: &protoHandshake{42, "420"}, Peer: a, }, - p2ptest.Expect{ + { Code: 0, Msg: &protoHandshake{42, "420"}, Peer: b, }, }, }, - p2ptest.Exchange{ + { Label: "module handshake", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 0, Msg: &protoHandshake{42, "420"}, Peer: a, }, - p2ptest.Trigger{ + { Code: 0, Msg: &protoHandshake{42, "420"}, Peer: b, }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 1, Msg: &hs0{42}, Peer: a, }, - p2ptest.Expect{ + { Code: 1, Msg: &hs0{42}, Peer: b, @@ -298,10 +298,10 @@ func testMultiPeerSetup(a, b discover.NodeID) []p2ptest.Exchange { }, }, - p2ptest.Exchange{Label: "alternative module handshake", Triggers: []p2ptest.Trigger{p2ptest.Trigger{Code: 1, Msg: &hs0{41}, Peer: a}, - p2ptest.Trigger{Code: 1, Msg: &hs0{41}, Peer: b}}}, - p2ptest.Exchange{Label: "repeated module handshake", Triggers: []p2ptest.Trigger{p2ptest.Trigger{Code: 1, Msg: &hs0{1}, Peer: a}}}, - p2ptest.Exchange{Label: "receiving repeated module handshake", Expects: []p2ptest.Expect{p2ptest.Expect{Code: 1, Msg: &hs0{43}, Peer: a}}}} + {Label: "alternative module handshake", Triggers: []p2ptest.Trigger{{Code: 1, Msg: &hs0{41}, Peer: a}, + {Code: 1, Msg: &hs0{41}, Peer: b}}}, + {Label: "repeated module handshake", Triggers: []p2ptest.Trigger{{Code: 1, Msg: &hs0{1}, Peer: a}}}, + {Label: "receiving repeated module handshake", Expects: []p2ptest.Expect{{Code: 1, Msg: &hs0{43}, Peer: a}}}} } func runMultiplePeers(t *testing.T, peer int, errs ...error) { @@ -327,7 +327,7 @@ func runMultiplePeers(t *testing.T, peer int, errs ...error) { // peer 0 sends kill request for peer with index s.TestExchanges(p2ptest.Exchange{ Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 2, Msg: &kill{s.IDs[peer]}, Peer: s.IDs[0], @@ -338,7 +338,7 @@ func runMultiplePeers(t *testing.T, peer int, errs ...error) { // the peer not killed sends a drop request s.TestExchanges(p2ptest.Exchange{ Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 3, Msg: &drop{}, Peer: s.IDs[(peer+1)%2], diff --git a/p2p/simulations/adapters/inproc.go b/p2p/simulations/adapters/inproc.go index 6ecacd87a7..0d22b4f56f 100644 --- a/p2p/simulations/adapters/inproc.go +++ b/p2p/simulations/adapters/inproc.go @@ -112,7 +112,7 @@ func (s *SimAdapter) NewNode(config *NodeConfig) (Node, error) { MaxPeers: math.MaxInt32, NoDiscovery: true, Dialer: s, - EnableMsgEvents: false, + EnableMsgEvents: true, }, NoUSB: true, Logger: log.New("node.id", id.String()), diff --git a/pot/doc.go b/pot/doc.go index 47d0357d93..4c0a03065d 100644 --- a/pot/doc.go +++ b/pot/doc.go @@ -48,8 +48,8 @@ concurrent routines, Pot * retrieval, insertion and deletion by key involves log(n) pointer lookups * for any item retrieval (defined as common prefix on the binary key) -* provide syncronous iterators respecting proximity ordering wrt any item -* provide asyncronous iterator (for parallel execution of operations) over n items +* provide synchronous iterators respecting proximity ordering wrt any item +* provide asynchronous iterator (for parallel execution of operations) over n items * allows cheap iteration over ranges * asymmetric concurrent merge (union) diff --git a/pot/pot.go b/pot/pot.go index 87f51af49c..dfda84804d 100644 --- a/pot/pot.go +++ b/pot/pot.go @@ -559,7 +559,7 @@ func (t *Pot) eachBin(val Val, pof Pof, po int, f func(int, int, func(func(val V } -// EachNeighbour is a syncronous iterator over neighbours of any target val +// EachNeighbour is a synchronous iterator over neighbours of any target val // the order of elements retrieved reflect proximity order to the target // TODO: add maximum proxbin to start range of iteration func (t *Pot) EachNeighbour(val Val, pof Pof, f func(Val, int) bool) bool { @@ -615,7 +615,7 @@ func (t *Pot) eachNeighbour(val Val, pof Pof, f func(Val, int) bool) bool { return true } -// EachNeighbourAsync called on (val, max, maxPos, f, wait) is an asyncronous iterator +// EachNeighbourAsync called on (val, max, maxPos, f, wait) is an asynchronous iterator // over elements not closer than maxPos wrt val. // val does not need to be match an element of the Pot, but if it does, and // maxPos is keylength than it is included in the iteration @@ -762,7 +762,7 @@ func (t *Pot) eachNeighbourAsync(val Val, pof Pof, max int, maxPos int, f func(V // getPos called on (n) returns the forking node at PO n and its index if it exists // otherwise nil -// caller is suppoed to hold the lock +// caller is supposed to hold the lock func (t *Pot) getPos(po int) (n *Pot, i int) { for i, n = range t.bins { if po > n.po { diff --git a/swarm/api/api_test.go b/swarm/api/api_test.go index da1d8bcf23..1f1178549e 100644 --- a/swarm/api/api_test.go +++ b/swarm/api/api_test.go @@ -109,10 +109,11 @@ func TestApiPut(t *testing.T) { content := "hello" exp := expResponse(content, "text/plain", 0) // exp := expResponse([]byte(content), "text/plain", 0) - key, _, err := api.Put(content, exp.MimeType) + key, wait, err := api.Put(content, exp.MimeType) if err != nil { t.Fatalf("unexpected error: %v", err) } + wait() resp := testGet(t, api, key.Hex(), "") checkResponse(t, resp, exp) }) diff --git a/swarm/api/http/error.go b/swarm/api/http/error.go index dbd97182fd..9b9f5c2f96 100644 --- a/swarm/api/http/error.go +++ b/swarm/api/http/error.go @@ -110,7 +110,8 @@ func ShowMultipleChoices(w http.ResponseWriter, r *http.Request, list api.Manife //(and return the correct HTTP status code) func ShowError(w http.ResponseWriter, r *http.Request, msg string, code int) { if code == http.StatusInternalServerError { - log.Error(msg) + //log.Error(msg) + log.Output(msg, log.LvlError, 3) } respond(w, r, &ErrorParams{ Code: code, diff --git a/swarm/api/http/server.go b/swarm/api/http/server.go index 7adddd9ff4..1c9f462ef7 100644 --- a/swarm/api/http/server.go +++ b/swarm/api/http/server.go @@ -90,21 +90,21 @@ type Request struct { // body in swarm and returns the resulting storage key as a text/plain response func (s *Server) HandlePostRaw(w http.ResponseWriter, r *Request) { if r.uri.Path != "" { - s.BadRequest(w, r, "raw POST request cannot contain a path") + ShowError(w, &r.Request, fmt.Sprintf("Bad request %s %s: %s", r.Method, r.uri, "raw POST request cannot contain a path"), http.StatusBadRequest) return } if r.Header.Get("Content-Length") == "" { - s.BadRequest(w, r, "missing Content-Length header in request") + ShowError(w, &r.Request, fmt.Sprintf("Bad request %s %s: %s", r.Method, r.uri, "missing Content-Length header in request"), http.StatusBadRequest) return } key, _, err := s.api.Store(r.Body, r.ContentLength) if err != nil { - s.Error(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) return } - s.logDebug("content for %s stored", key.Log()) + log.Debug(fmt.Sprintf("content for %s stored", key.Log())) w.Header().Set("Content-Type", "text/plain") w.WriteHeader(http.StatusOK) @@ -119,7 +119,7 @@ func (s *Server) HandlePostRaw(w http.ResponseWriter, r *Request) { func (s *Server) HandlePostFiles(w http.ResponseWriter, r *Request) { contentType, params, err := mime.ParseMediaType(r.Header.Get("Content-Type")) if err != nil { - s.BadRequest(w, r, err.Error()) + ShowError(w, &r.Request, fmt.Sprintf("Bad request %s %s: %s", r.Method, r.uri, err), http.StatusBadRequest) return } @@ -127,13 +127,13 @@ func (s *Server) HandlePostFiles(w http.ResponseWriter, r *Request) { if r.uri.Addr != "" { key, err = s.api.Resolve(r.uri) if err != nil { - s.Error(w, r, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)), http.StatusInternalServerError) return } } else { key, err = s.api.NewManifest() if err != nil { - s.Error(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) return } } @@ -152,7 +152,7 @@ func (s *Server) HandlePostFiles(w http.ResponseWriter, r *Request) { } }) if err != nil { - s.Error(w, r, fmt.Errorf("error creating manifest: %s", err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error creating manifest: %s", err)), http.StatusInternalServerError) return } @@ -185,12 +185,12 @@ func (s *Server) handleTarUpload(req *Request, mw *api.ManifestWriter) error { Size: hdr.Size, ModTime: hdr.ModTime, } - s.logDebug("adding %s (%d bytes) to new manifest", entry.Path, entry.Size) + log.Debug(fmt.Sprintf("adding %s (%d bytes) to new manifest", entry.Path, entry.Size)) contentKey, err := mw.AddEntry(tr, entry) if err != nil { return fmt.Errorf("error adding manifest entry from tar stream: %s", err) } - s.logDebug("content for %s stored", contentKey.Log()) + log.Debug(fmt.Sprintf("content for %s stored", contentKey.Log())) } } @@ -242,12 +242,12 @@ func (s *Server) handleMultipartUpload(req *Request, boundary string, mw *api.Ma Size: size, ModTime: time.Now(), } - s.logDebug("adding %s (%d bytes) to new manifest", entry.Path, entry.Size) + log.Debug(fmt.Sprintf("adding %s (%d bytes) to new manifest", entry.Path, entry.Size)) contentKey, err := mw.AddEntry(reader, entry) if err != nil { return fmt.Errorf("error adding manifest entry from multipart form: %s", err) } - s.logDebug("content for %s stored", contentKey.Log()) + log.Debug(fmt.Sprintf("content for %s stored", contentKey.Log())) } } @@ -262,7 +262,7 @@ func (s *Server) handleDirectUpload(req *Request, mw *api.ManifestWriter) error if err != nil { return err } - s.logDebug("content for %s stored", key.Log()) + log.Debug(fmt.Sprintf("content for %s stored", key.Log())) return nil } @@ -272,16 +272,16 @@ func (s *Server) handleDirectUpload(req *Request, mw *api.ManifestWriter) error func (s *Server) HandleDelete(w http.ResponseWriter, r *Request) { key, err := s.api.Resolve(r.uri) if err != nil { - s.Error(w, r, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)), http.StatusInternalServerError) return } newKey, err := s.updateManifest(key, func(mw *api.ManifestWriter) error { - s.logDebug("removing %s from manifest %s", r.uri.Path, key.Log()) + log.Debug(fmt.Sprintf("removing %s from manifest %s", r.uri.Path, key.Log())) return mw.RemoveEntry(r.uri.Path) }) if err != nil { - s.Error(w, r, fmt.Errorf("error updating manifest: %s", err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error updating manifest: %s", err)), http.StatusInternalServerError) return } @@ -298,7 +298,7 @@ func (s *Server) HandleDelete(w http.ResponseWriter, r *Request) { func (s *Server) HandleGet(w http.ResponseWriter, r *Request) { key, err := s.api.Resolve(r.uri) if err != nil { - s.Error(w, r, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)), http.StatusInternalServerError) return } @@ -307,7 +307,7 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *Request) { if r.uri.Path != "" { walker, err := s.api.NewManifestWalker(key, nil) if err != nil { - s.BadRequest(w, r, fmt.Sprintf("%s is not a manifest", key)) + ShowError(w, &r.Request, fmt.Sprintf("Bad request %s %s: %s", r.Method, r.uri, fmt.Sprintf("%s is not a manifest", key)), http.StatusBadRequest) return } var entry *api.ManifestEntry @@ -335,7 +335,7 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *Request) { return api.SkipManifest }) if entry == nil { - s.NotFound(w, r, fmt.Errorf("Manifest entry could not be loaded")) + ShowError(w, &r.Request, fmt.Sprintf("NOT FOUND error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("Manifest entry could not be loaded")), http.StatusNotFound) return } key = storage.Key(common.Hex2Bytes(entry.Hash)) @@ -344,7 +344,7 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *Request) { // check the root chunk exists by retrieving the file's size reader := s.api.Retrieve(key) if _, err := reader.Size(nil); err != nil { - s.NotFound(w, r, fmt.Errorf("Root chunk not found %s: %s", key, err)) + ShowError(w, &r.Request, fmt.Sprintf("NOT FOUND error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("Root chunk not found %s: %s", key, err)), http.StatusNotFound) return } @@ -371,19 +371,19 @@ func (s *Server) HandleGet(w http.ResponseWriter, r *Request) { // contained in the manifest func (s *Server) HandleGetFiles(w http.ResponseWriter, r *Request) { if r.uri.Path != "" { - s.BadRequest(w, r, "files request cannot contain a path") + ShowError(w, &r.Request, fmt.Sprintf("Bad request %s %s: %s", r.Method, r.uri, "files request cannot contain a path"), http.StatusBadRequest) return } key, err := s.api.Resolve(r.uri) if err != nil { - s.Error(w, r, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)), http.StatusInternalServerError) return } walker, err := s.api.NewManifestWalker(key, nil) if err != nil { - s.Error(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) return } @@ -430,7 +430,7 @@ func (s *Server) HandleGetFiles(w http.ResponseWriter, r *Request) { return nil }) if err != nil { - s.logError("error generating tar stream: %s", err) + log.Error(fmt.Sprintf("error generating tar stream: %s", err)) } } @@ -446,14 +446,14 @@ func (s *Server) HandleGetList(w http.ResponseWriter, r *Request) { key, err := s.api.Resolve(r.uri) if err != nil { - s.Error(w, r, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)), http.StatusInternalServerError) return } list, err := s.getManifestList(key, r.uri.Path) if err != nil { - s.Error(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) return } @@ -470,7 +470,7 @@ func (s *Server) HandleGetList(w http.ResponseWriter, r *Request) { List: &list, }) if err != nil { - s.logError("error rendering list HTML: %s", err) + log.Error(fmt.Sprintf("error rendering list HTML: %s", err)) } return } @@ -546,7 +546,7 @@ func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request) { key, err := s.api.Resolve(r.uri) if err != nil { - s.Error(w, r, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("error resolving %s: %s", r.uri.Addr, err)), http.StatusInternalServerError) return } @@ -554,9 +554,9 @@ func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request) { if err != nil { switch status { case http.StatusNotFound: - s.NotFound(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("NOT FOUND error serving %s %s: %s", r.Method, r.uri, err), http.StatusNotFound) default: - s.Error(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) } return } @@ -567,11 +567,11 @@ func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request) { list, err := s.getManifestList(key, r.uri.Path) if err != nil { - s.Error(w, r, err) + ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) return } - s.logDebug(fmt.Sprintf("Multiple choices! --> %v", list)) + log.Debug(fmt.Sprintf("Multiple choices! --> %v", list)) //show a nice page links to available entries ShowMultipleChoices(w, &r.Request, list) return @@ -579,7 +579,7 @@ func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request) { // check the root chunk exists by retrieving the file's size if _, err := reader.Size(nil); err != nil { - s.NotFound(w, r, fmt.Errorf("File not found %s: %s", r.uri, err)) + ShowError(w, &r.Request, fmt.Sprintf("NOT FOUND error serving %s %s: %s", r.Method, r.uri, fmt.Errorf("File not found %s: %s", r.uri, err)), http.StatusNotFound) return } @@ -589,16 +589,16 @@ func (s *Server) HandleGetFile(w http.ResponseWriter, r *Request) { } func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { - s.logDebug("HTTP %s request URL: '%s', Host: '%s', Path: '%s', Referer: '%s', Accept: '%s'", r.Method, r.RequestURI, r.URL.Host, r.URL.Path, r.Referer(), r.Header.Get("Accept")) + log.Debug(fmt.Sprintf("HTTP %s request URL: '%s', Host: '%s', Path: '%s', Referer: '%s', Accept: '%s'", r.Method, r.RequestURI, r.URL.Host, r.URL.Path, r.Referer(), r.Header.Get("Accept"))) uri, err := api.Parse(strings.TrimLeft(r.URL.Path, "/")) req := &Request{Request: *r, uri: uri} if err != nil { - s.logError("Invalid URI %q: %s", r.URL.Path, err) - s.BadRequest(w, req, fmt.Sprintf("Invalid URI %q: %s", r.URL.Path, err)) + log.Error(fmt.Sprintf("Invalid URI %q: %s", r.URL.Path, err)) + ShowError(w, r, fmt.Sprintf("Bad request %s %s: %s", r.Method, uri, fmt.Sprintf("Invalid URI %q: %s", r.URL.Path, err)), http.StatusBadRequest) return } - s.logDebug("%s request received for %s", r.Method, uri) + log.Debug(fmt.Sprintf("%s request received for %s", r.Method, uri)) switch r.Method { case "POST": @@ -666,26 +666,6 @@ func (s *Server) updateManifest(key storage.Key, update func(mw *api.ManifestWri if err != nil { return nil, err } - s.logDebug("generated manifest %s", key) + log.Debug(fmt.Sprintf("generated manifest %s", key)) return key, nil } - -func (s *Server) logDebug(format string, v ...interface{}) { - log.Debug(fmt.Sprintf("[BZZ] HTTP: "+format, v...)) -} - -func (s *Server) logError(format string, v ...interface{}) { - log.Error(fmt.Sprintf("[BZZ] HTTP: "+format, v...)) -} - -func (s *Server) BadRequest(w http.ResponseWriter, r *Request, reason string) { - ShowError(w, &r.Request, fmt.Sprintf("Bad request %s %s: %s", r.Method, r.uri, reason), http.StatusBadRequest) -} - -func (s *Server) Error(w http.ResponseWriter, r *Request, err error) { - ShowError(w, &r.Request, fmt.Sprintf("Error serving %s %s: %s", r.Method, r.uri, err), http.StatusInternalServerError) -} - -func (s *Server) NotFound(w http.ResponseWriter, r *Request, err error) { - ShowError(w, &r.Request, fmt.Sprintf("NOT FOUND error serving %s %s: %s", r.Method, r.uri, err), http.StatusNotFound) -} diff --git a/swarm/api/manifest.go b/swarm/api/manifest.go index b8b64caa89..85a9043789 100644 --- a/swarm/api/manifest.go +++ b/swarm/api/manifest.go @@ -64,7 +64,8 @@ func (a *Api) NewManifest() (storage.Key, error) { if err != nil { return nil, err } - key, _, err := a.Store(bytes.NewReader(data), int64(len(data))) + key, wait, err := a.Store(bytes.NewReader(data), int64(len(data))) + wait() return key, err } diff --git a/swarm/api/storage.go b/swarm/api/storage.go index 4679fabad3..a2ba70c7ac 100644 --- a/swarm/api/storage.go +++ b/swarm/api/storage.go @@ -16,7 +16,11 @@ package api -import "path" +import ( + "path" + + "github.com/ethereum/go-ethereum/swarm/storage" +) type Response struct { MimeType string @@ -41,12 +45,8 @@ func NewStorage(api *Api) *Storage { // its content type // // DEPRECATED: Use the HTTP API instead -func (self *Storage) Put(content, contentType string) (string, error) { - key, _, err := self.api.Put(content, contentType) - if err != nil { - return "", err - } - return key.Hex(), err +func (self *Storage) Put(content, contentType string) (storage.Key, func(), error) { + return self.api.Put(content, contentType) } // Get retrieves the content from bzzpath and reads the response in full diff --git a/swarm/api/storage_test.go b/swarm/api/storage_test.go index d260dd61d8..bcbf53ee37 100644 --- a/swarm/api/storage_test.go +++ b/swarm/api/storage_test.go @@ -31,10 +31,12 @@ func TestStoragePutGet(t *testing.T) { content := "hello" exp := expResponse(content, "text/plain", 0) // exp := expResponse([]byte(content), "text/plain", 0) - bzzhash, err := api.Put(content, exp.MimeType) + bzzkey, wait, err := api.Put(content, exp.MimeType) if err != nil { t.Fatalf("unexpected error: %v", err) } + wait() + bzzhash := bzzkey.Hex() // to check put against the Api#Get resp0 := testGet(t, api.api, bzzhash, "") checkResponse(t, resp0, exp) diff --git a/swarm/network/discovery_test.go b/swarm/network/discovery_test.go index 50e1f468b6..695f9fbcb4 100644 --- a/swarm/network/discovery_test.go +++ b/swarm/network/discovery_test.go @@ -47,7 +47,7 @@ func TestDiscovery(t *testing.T) { s.TestExchanges(p2ptest.Exchange{ Label: "outgoing SubPeersMsg", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 3, Msg: &subPeersMsg{Depth: 0}, Peer: s.ProtocolTester.IDs[0], diff --git a/swarm/network/kademlia.go b/swarm/network/kademlia.go index 376ba9ad5a..d7bb7be6d7 100644 --- a/swarm/network/kademlia.go +++ b/swarm/network/kademlia.go @@ -424,7 +424,7 @@ func (k *Kademlia) callable(val pot.Val) OverlayAddr { return e.addr() } -// BaseAddr return the kademlia base addres +// BaseAddr return the kademlia base address func (k *Kademlia) BaseAddr() []byte { return k.base } diff --git a/swarm/network/protocol.go b/swarm/network/protocol.go index 448e722269..0cf682fb98 100644 --- a/swarm/network/protocol.go +++ b/swarm/network/protocol.go @@ -207,10 +207,11 @@ func (b *Bzz) RunProtocol(spec *protocols.Spec, run func(*BzzPeer) error) func(* // performHandshake implements the negotiation of the bzz handshake // shared among swarm subprotocols func performHandshake(p *protocols.Peer, handshake *HandshakeMsg) error { - ctx, _ := context.WithTimeout(context.Background(), bzzHandshakeTimeout) - // defer cancel() - // ctx, cancel := context.WithTimeout(context.Background(), bzzHandshakeTimeout) - defer close(handshake.done) + ctx, cancel := context.WithTimeout(context.Background(), bzzHandshakeTimeout) + defer func() { + close(handshake.done) + cancel() + }() rsh, err := p.Handshake(ctx, handshake, checkHandshake) if err != nil { handshake.err = err @@ -261,7 +262,7 @@ func NewBzzTestPeer(p *protocols.Peer, addr *BzzAddr) *BzzPeer { } } -// Off returns the overlay peer record for offline persistance +// Off returns the overlay peer record for offline persistence func (p *BzzPeer) Off() OverlayAddr { return p.BzzAddr } diff --git a/swarm/network/protocol_test.go b/swarm/network/protocol_test.go index c603da7e8e..208f830fbf 100644 --- a/swarm/network/protocol_test.go +++ b/swarm/network/protocol_test.go @@ -70,18 +70,18 @@ func (t *testStore) Save(key string, v []byte) error { func HandshakeMsgExchange(lhs, rhs *HandshakeMsg, id discover.NodeID) []p2ptest.Exchange { return []p2ptest.Exchange{ - p2ptest.Exchange{ + { Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 0, Msg: lhs, Peer: id, }, }, }, - p2ptest.Exchange{ + { Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 0, Msg: rhs, Peer: id, diff --git a/swarm/network/simulations/discovery/discovery_test.go b/swarm/network/simulations/discovery/discovery_test.go index cc4373483b..15f3e6764b 100644 --- a/swarm/network/simulations/discovery/discovery_test.go +++ b/swarm/network/simulations/discovery/discovery_test.go @@ -70,7 +70,7 @@ func BenchmarkDiscovery_64_4(b *testing.B) { benchmarkDiscovery(b, 64, 4) } func BenchmarkDiscovery_128_4(b *testing.B) { benchmarkDiscovery(b, 128, 4) } func BenchmarkDiscovery_256_4(b *testing.B) { benchmarkDiscovery(b, 256, 4) } -func TestDiscoverySimulationDockerAdapter(t *testing.T) { +func XTestDiscoverySimulationDockerAdapter(t *testing.T) { testDiscoverySimulationDockerAdapter(t, *nodeCount, *initCount) } diff --git a/swarm/network/stream/delivery_test.go b/swarm/network/stream/delivery_test.go index 183ea2b9e9..2f291a7957 100644 --- a/swarm/network/stream/delivery_test.go +++ b/swarm/network/stream/delivery_test.go @@ -57,7 +57,7 @@ func TestStreamerRetrieveRequest(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "RetrieveRequestMsg", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 5, Msg: &RetrieveRequestMsg{ Key: hash0[:], @@ -97,7 +97,7 @@ func TestStreamerUpstreamRetrieveRequestMsgExchangeWithoutStore(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "RetrieveRequestMsg", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 5, Msg: &RetrieveRequestMsg{ Key: chunk.Key[:], @@ -106,7 +106,7 @@ func TestStreamerUpstreamRetrieveRequestMsgExchangeWithoutStore(t *testing.T) { }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 1, Msg: &OfferedHashesMsg{ HandoverProof: nil, @@ -154,7 +154,7 @@ func TestStreamerUpstreamRetrieveRequestMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "RetrieveRequestMsg", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 5, Msg: &RetrieveRequestMsg{ Key: hash, @@ -163,7 +163,7 @@ func TestStreamerUpstreamRetrieveRequestMsgExchange(t *testing.T) { }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 1, Msg: &OfferedHashesMsg{ HandoverProof: &HandoverProof{ @@ -194,7 +194,7 @@ func TestStreamerUpstreamRetrieveRequestMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "RetrieveRequestMsg", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 5, Msg: &RetrieveRequestMsg{ Key: hash, @@ -204,7 +204,7 @@ func TestStreamerUpstreamRetrieveRequestMsgExchange(t *testing.T) { }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 6, Msg: &ChunkDeliveryMsg{ Key: hash, @@ -256,7 +256,7 @@ func TestStreamerDownstreamChunkDeliveryMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "Subscribe message", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 4, Msg: &SubscribeMsg{ Stream: "foo", @@ -272,7 +272,7 @@ func TestStreamerDownstreamChunkDeliveryMsgExchange(t *testing.T) { p2ptest.Exchange{ Label: "ChunkDeliveryRequest message", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 6, Msg: &ChunkDeliveryMsg{ Key: chunkKey, diff --git a/swarm/network/stream/peer.go b/swarm/network/stream/peer.go index 12810789d9..c1e64bd740 100644 --- a/swarm/network/stream/peer.go +++ b/swarm/network/stream/peer.go @@ -36,7 +36,7 @@ var ( errClientNotFound = errors.New("client not found") ) -// Peer is the Peer extention for the streaming protocol +// Peer is the Peer extension for the streaming protocol type Peer struct { *protocols.Peer streamer *Registry diff --git a/swarm/network/stream/streamer_test.go b/swarm/network/stream/streamer_test.go index 951e008a53..a2aabc7f82 100644 --- a/swarm/network/stream/streamer_test.go +++ b/swarm/network/stream/streamer_test.go @@ -113,7 +113,7 @@ func TestStreamerDownstreamSubscribeUnsubscribeMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "Subscribe message", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 4, Msg: &SubscribeMsg{ Stream: "foo", @@ -139,7 +139,7 @@ func TestStreamerDownstreamSubscribeUnsubscribeMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "Unsubscribe message", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 0, Msg: &UnsubscribeMsg{ Stream: "foo", @@ -173,7 +173,7 @@ func TestStreamerUpstreamSubscribeUnsubscribeMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "Subscribe message", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 4, Msg: &SubscribeMsg{ Stream: "foo", @@ -186,7 +186,7 @@ func TestStreamerUpstreamSubscribeUnsubscribeMsgExchange(t *testing.T) { }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 1, Msg: &OfferedHashesMsg{ Stream: "foo", @@ -210,7 +210,7 @@ func TestStreamerUpstreamSubscribeUnsubscribeMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "unsubscribe message", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 0, Msg: &UnsubscribeMsg{ Stream: "foo", @@ -244,7 +244,7 @@ func TestStreamerUpstreamSubscribeErrorMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "Subscribe message", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 4, Msg: &SubscribeMsg{ Stream: "bar", @@ -257,7 +257,7 @@ func TestStreamerUpstreamSubscribeErrorMsgExchange(t *testing.T) { }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 7, Msg: &SubscribeErrorMsg{ Error: "stream bar not registered", @@ -295,7 +295,7 @@ func TestStreamerDownstreamOfferedHashesMsgExchange(t *testing.T) { err = tester.TestExchanges(p2ptest.Exchange{ Label: "Subscribe message", Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 4, Msg: &SubscribeMsg{ Stream: "foo", @@ -311,7 +311,7 @@ func TestStreamerDownstreamOfferedHashesMsgExchange(t *testing.T) { p2ptest.Exchange{ Label: "WantedHashes message", Triggers: []p2ptest.Trigger{ - p2ptest.Trigger{ + { Code: 1, Msg: &OfferedHashesMsg{ HandoverProof: &HandoverProof{ @@ -326,7 +326,7 @@ func TestStreamerDownstreamOfferedHashesMsgExchange(t *testing.T) { }, }, Expects: []p2ptest.Expect{ - p2ptest.Expect{ + { Code: 2, Msg: &WantedHashesMsg{ Stream: "foo", diff --git a/swarm/pss/client/client_test.go b/swarm/pss/client/client_test.go index f32fa7127a..bfd9f5a18f 100644 --- a/swarm/pss/client/client_test.go +++ b/swarm/pss/client/client_test.go @@ -104,7 +104,8 @@ func TestClientHandshake(t *testing.T) { lproto := pss.NewPingProtocol(lpssping) rproto := pss.NewPingProtocol(rpssping) - ctx, _ := context.WithTimeout(context.Background(), time.Second*10) + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() err = lpsc.RunProtocol(ctx, lproto) if err != nil { t.Fatal(err) @@ -231,13 +232,14 @@ func newServices() adapters.Services { "pss": func(ctx *adapters.ServiceContext) (node.Service, error) { cachedir, err := ioutil.TempDir("", "pss-cache") if err != nil { - return nil, fmt.Errorf("create pss cache tmpdir failed", "error", err) + return nil, fmt.Errorf("create pss cache tmpdir failed: %s", err) } dpa, err := storage.NewLocalDPA(cachedir, make([]byte, 32)) if err != nil { - return nil, fmt.Errorf("local dpa creation failed", "error", err) + return nil, fmt.Errorf("local dpa creation failed: %s", err) } - ctxlocal, _ := context.WithTimeout(context.Background(), time.Second) + ctxlocal, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctxlocal) privkey, err := w.GetPrivateKey(keys) psparams := pss.NewPssParams(privkey) diff --git a/swarm/pss/handshake.go b/swarm/pss/handshake.go index 95bf79ef5a..80aa729111 100644 --- a/swarm/pss/handshake.go +++ b/swarm/pss/handshake.go @@ -254,7 +254,7 @@ func (self *HandshakeController) cleanHandshake(pubkeyid string, topic *Topic, i func (self *HandshakeController) clean() { peerpubkeys := self.handshakes for pubkeyid, peertopics := range peerpubkeys { - for topic, _ := range peertopics { + for topic := range peertopics { self.cleanHandshake(pubkeyid, &topic, true, true) } } @@ -268,7 +268,7 @@ func (self *HandshakeController) handler(msg []byte, p *p2p.Peer, asymmetric boo if !asymmetric { if self.symKeyIndex[symkeyid] != nil { if self.symKeyIndex[symkeyid].count >= self.symKeyIndex[symkeyid].limit { - return fmt.Errorf("discarding message using expired key", "symkeyid", symkeyid) + return fmt.Errorf("discarding message using expired key: %s", symkeyid) } self.symKeyIndex[symkeyid].count++ log.Trace("increment symkey recv use", "symsymkeyid", symkeyid, "count", self.symKeyIndex[symkeyid].count, "limit", self.symKeyIndex[symkeyid].limit, "receiver", common.ToHex(crypto.FromECDSAPub(self.pss.PublicKey()))) @@ -457,7 +457,8 @@ func (self *HandshakeAPI) Handshake(pubkeyid string, topic Topic, sync bool, flu return keys, err } if sync { - ctx, _ := context.WithTimeout(context.Background(), self.ctrl.symKeyRequestTimeout) + ctx, cancel := context.WithTimeout(context.Background(), self.ctrl.symKeyRequestTimeout) + defer cancel() select { case keys = <-hsc: log.Trace("sync handshake response receive", "key", keys) @@ -474,7 +475,7 @@ func (self *HandshakeAPI) AddHandshake(topic Topic) error { return nil } -// Deactivate handshake functionalty on a topic +// Deactivate handshake functionality on a topic func (self *HandshakeAPI) RemoveHandshake(topic *Topic) error { if _, ok := self.ctrl.deregisterFuncs[*topic]; ok { self.ctrl.deregisterFuncs[*topic]() diff --git a/swarm/pss/protocol.go b/swarm/pss/protocol.go index 6c5c289559..11111025bd 100644 --- a/swarm/pss/protocol.go +++ b/swarm/pss/protocol.go @@ -227,7 +227,7 @@ func (self *Protocol) AddPeer(p *p2p.Peer, run func(*p2p.Peer, p2p.MsgReadWriter } go func() { err := run(p, rw) - log.Warn(fmt.Sprintf("pss vprotocol quit on addr %v topic %v: %v", topic, err)) + log.Warn(fmt.Sprintf("pss vprotocol quit topic %v: %v", topic, err)) }() return rw, nil } diff --git a/swarm/pss/protocol_test.go b/swarm/pss/protocol_test.go index 54cd4226d7..b30fc0430d 100644 --- a/swarm/pss/protocol_test.go +++ b/swarm/pss/protocol_test.go @@ -73,11 +73,13 @@ func testProtocol(t *testing.T) { time.Sleep(time.Millisecond * 1000) // replace with hive healthy code lmsgC := make(chan APIMsg) - lctx, _ := context.WithTimeout(context.Background(), time.Second*10) + lctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() lsub, err := clients[0].Subscribe(lctx, "pss", lmsgC, "receive", topic) defer lsub.Unsubscribe() rmsgC := make(chan APIMsg) - rctx, _ := context.WithTimeout(context.Background(), time.Second*10) + rctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() rsub, err := clients[1].Subscribe(rctx, "pss", rmsgC, "receive", topic) defer rsub.Unsubscribe() diff --git a/swarm/pss/pss.go b/swarm/pss/pss.go index 4a7564d34c..bb3540844d 100644 --- a/swarm/pss/pss.go +++ b/swarm/pss/pss.go @@ -190,7 +190,7 @@ var pssSpec = &protocols.Spec{ func (self *Pss) Protocols() []p2p.Protocol { return []p2p.Protocol{ - p2p.Protocol{ + { Name: pssSpec.Name, Version: pssSpec.Version, Length: pssSpec.Length(), @@ -209,7 +209,7 @@ func (self *Pss) Run(p *p2p.Peer, rw p2p.MsgReadWriter) error { func (self *Pss) APIs() []rpc.API { apis := []rpc.API{ - rpc.API{ + { Namespace: "pss", Version: "1.0", Service: NewAPI(self), @@ -418,7 +418,7 @@ func (self *Pss) generateSymmetricKey(topic Topic, address *PssAddress, addToCac // If addtocache is set to true, the key will be added to the cache of keys // used to attempt symmetric decryption of incoming messages. // -// Returns a string id that can be used to retreive the key bytes +// Returns a string id that can be used to retrieve the key bytes // from the whisper backend (see pss.GetSymmetricKey()) func (self *Pss) SetSymmetricKey(key []byte, topic Topic, address *PssAddress, addtocache bool) (string, error) { keyid, err := self.w.AddSymKeyDirect(key) @@ -501,7 +501,7 @@ func (self *Pss) processSym(envelope *whisper.Envelope) (*whisper.ReceivedMessag func (self *Pss) processAsym(envelope *whisper.Envelope) (*whisper.ReceivedMessage, string, *PssAddress, error) { recvmsg, err := envelope.OpenAsymmetric(self.privateKey) if err != nil { - return nil, "", nil, fmt.Errorf("could not decrypt message: %v", "err", err) + return nil, "", nil, fmt.Errorf("could not decrypt message: %s", err) } // check signature (if signed), strip padding if !recvmsg.Validate() { diff --git a/swarm/pss/pss_test.go b/swarm/pss/pss_test.go index 9283b43f72..c674bbec40 100644 --- a/swarm/pss/pss_test.go +++ b/swarm/pss/pss_test.go @@ -137,7 +137,8 @@ func TestTopic(t *testing.T) { func TestCache(t *testing.T) { var err error to, _ := hex.DecodeString("08090a0b0c0d0e0f1011121314150001020304050607161718191a1b1c1d1e1f") - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctx) privkey, err := w.GetPrivateKey(keys) if err != nil { @@ -211,7 +212,8 @@ func TestAddressMatch(t *testing.T) { remoteaddr := []byte("feedbeef") kadparams := network.NewKadParams() kad := network.NewKademlia(localaddr, kadparams) - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctx) if err != nil { t.Fatalf("Could not generate private key: %v", err) @@ -255,12 +257,14 @@ func TestAddressMatch(t *testing.T) { // set and generate pubkeys and symkeys func TestKeys(t *testing.T) { // make our key and init pss with it - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() ourkeys, err := wapi.NewKeyPair(ctx) if err != nil { t.Fatalf("create 'our' key fail") } - ctx, _ = context.WithTimeout(context.Background(), time.Second) + ctx, cancel2 := context.WithTimeout(context.Background(), time.Second) + defer cancel2() theirkeys, err := wapi.NewKeyPair(ctx) if err != nil { t.Fatalf("create 'their' key fail") @@ -449,12 +453,14 @@ func testSymSend(t *testing.T) { // at this point we've verified that symkeys are saved and match on each peer // now try sending symmetrically encrypted message, both directions lmsgC := make(chan APIMsg) - lctx, _ := context.WithTimeout(context.Background(), time.Second*10) + lctx, lcancel := context.WithTimeout(context.Background(), time.Second*10) + defer lcancel() lsub, err := clients[0].Subscribe(lctx, "pss", lmsgC, "receive", topic) log.Trace("lsub", "id", lsub) defer lsub.Unsubscribe() rmsgC := make(chan APIMsg) - rctx, _ := context.WithTimeout(context.Background(), time.Second*10) + rctx, rcancel := context.WithTimeout(context.Background(), time.Second*10) + defer rcancel() rsub, err := clients[1].Subscribe(rctx, "pss", rmsgC, "receive", topic) log.Trace("rsub", "id", rsub) defer rsub.Unsubscribe() @@ -562,12 +568,14 @@ func testAsymSend(t *testing.T) { time.Sleep(time.Millisecond * 500) // replace with hive healthy code lmsgC := make(chan APIMsg) - lctx, _ := context.WithTimeout(context.Background(), time.Second*10) + lctx, lcancel := context.WithTimeout(context.Background(), time.Second*10) + defer lcancel() lsub, err := clients[0].Subscribe(lctx, "pss", lmsgC, "receive", topic) log.Trace("lsub", "id", lsub) defer lsub.Unsubscribe() rmsgC := make(chan APIMsg) - rctx, _ := context.WithTimeout(context.Background(), time.Second*10) + rctx, rcancel := context.WithTimeout(context.Background(), time.Second*10) + defer rcancel() rsub, err := clients[1].Subscribe(rctx, "pss", rmsgC, "receive", topic) log.Trace("rsub", "id", rsub) defer rsub.Unsubscribe() @@ -626,7 +634,7 @@ func worker(id int, jobs <-chan Job, rpcs map[discover.NodeID]*rpc.Client, pubke // params in run name: // nodes/msgs/addrbytes/adaptertype // if adaptertype is exec uses execadapter, simadapter otherwise -func TestNetwork(t *testing.T) { +func XTestNetwork(t *testing.T) { t.Run("3/2000/4/sock", testNetwork) t.Run("4/2000/4/sock", testNetwork) t.Run("8/2000/4/sock", testNetwork) @@ -834,7 +842,8 @@ func benchmarkSymKeySend(b *testing.B) { if err != nil { b.Fatalf("benchmark called with invalid msgsize param '%s': %v", msgsizestring[1], err) } - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctx) privkey, err := w.GetPrivateKey(keys) ps := newTestPss(privkey, nil, nil) @@ -849,7 +858,7 @@ func benchmarkSymKeySend(b *testing.B) { } symkey, err := ps.w.GetSymKey(symkeyid) if err != nil { - b.Fatalf("could not retreive symkey: %v", err) + b.Fatalf("could not retrieve symkey: %v", err) } ps.SetSymmetricKey(symkey, topic, &to, false) @@ -877,7 +886,8 @@ func benchmarkAsymKeySend(b *testing.B) { if err != nil { b.Fatalf("benchmark called with invalid msgsize param '%s': %v", msgsizestring[1], err) } - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctx) privkey, err := w.GetPrivateKey(keys) ps := newTestPss(privkey, nil, nil) @@ -922,7 +932,8 @@ func benchmarkSymkeyBruteforceChangeaddr(b *testing.B) { } pssmsgs := make([]*PssMsg, 0, keycount) var keyid string - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctx) privkey, err := w.GetPrivateKey(keys) if cachesize > 0 { @@ -940,7 +951,7 @@ func benchmarkSymkeyBruteforceChangeaddr(b *testing.B) { } symkey, err := ps.w.GetSymKey(keyid) if err != nil { - b.Fatalf("could not retreive symkey %s: %v", keyid, err) + b.Fatalf("could not retrieve symkey %s: %v", keyid, err) } wparams := &whisper.MessageParams{ TTL: defaultWhisperTTL, @@ -1004,7 +1015,8 @@ func benchmarkSymkeyBruteforceSameaddr(b *testing.B) { } } addr := make([]PssAddress, keycount) - ctx, _ := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctx) privkey, err := w.GetPrivateKey(keys) if cachesize > 0 { @@ -1023,7 +1035,7 @@ func benchmarkSymkeyBruteforceSameaddr(b *testing.B) { } symkey, err := ps.w.GetSymKey(keyid) if err != nil { - b.Fatalf("could not retreive symkey %s: %v", keyid, err) + b.Fatalf("could not retrieve symkey %s: %v", keyid, err) } wparams := &whisper.MessageParams{ TTL: defaultWhisperTTL, @@ -1121,17 +1133,18 @@ func newServices() adapters.Services { pssProtocolName: func(ctx *adapters.ServiceContext) (node.Service, error) { cachedir, err := ioutil.TempDir("", "pss-cache") if err != nil { - return nil, fmt.Errorf("create pss cache tmpdir failed", "error", err) + return nil, fmt.Errorf("create pss cache tmpdir failed: %s", err) } dpa, err := storage.NewLocalDPA(cachedir, network.NewAddrFromNodeID(ctx.Config.ID).Over()) if err != nil { - return nil, fmt.Errorf("local dpa creation failed", "error", err) + return nil, fmt.Errorf("local dpa creation failed: %s", err) } // execadapter does not exec init() initTest() - ctxlocal, _ := context.WithTimeout(context.Background(), time.Second) + ctxlocal, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() keys, err := wapi.NewKeyPair(ctxlocal) privkey, err := w.GetPrivateKey(keys) pssp := NewPssParams(privkey) diff --git a/swarm/storage/dbstore.go b/swarm/storage/dbstore.go index 17a7534646..b7127bc5a3 100644 --- a/swarm/storage/dbstore.go +++ b/swarm/storage/dbstore.go @@ -98,7 +98,7 @@ type DbStore struct { // TODO: Instead of passing the distance function, just pass the address from which distances are calculated // to avoid the appearance of a pluggable distance metric and opportunities of bugs associated with providing -// a function diferent from the one that is actually used. +// a function different from the one that is actually used. func NewDbStore(path string, hash SwarmHasher, capacity uint64, po func(Key) uint8) (s *DbStore, err error) { s = new(DbStore) s.hashfunc = hash