Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
67e0894d
Commit
67e0894d
authored
8 years ago
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
common/httpclient, les: removed httpclient
parent
6cc87a31
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
4 additions
and
210 deletions
+4
-210
httpclient.go
common/httpclient/httpclient.go
+0
-124
httpclient_test.go
common/httpclient/httpclient_test.go
+0
-77
backend.go
les/backend.go
+0
-3
roundtripper_test.go
swarm/api/http/roundtripper_test.go
+4
-6
No files found.
common/httpclient/httpclient.go
deleted
100644 → 0
View file @
6cc87a31
// Copyright 2015 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package
httpclient
import
(
"fmt"
"io/ioutil"
"net/http"
"path/filepath"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
)
type
HTTPClient
struct
{
*
http
.
Transport
DocRoot
string
schemes
[]
string
}
func
New
(
docRoot
string
)
(
self
*
HTTPClient
)
{
self
=
&
HTTPClient
{
Transport
:
&
http
.
Transport
{},
DocRoot
:
docRoot
,
schemes
:
[]
string
{
"file"
},
}
self
.
RegisterProtocol
(
"file"
,
http
.
NewFileTransport
(
http
.
Dir
(
self
.
DocRoot
)))
return
}
// Clients should be reused instead of created as needed. Clients are safe for concurrent use by multiple goroutines.
// A Client is higher-level than a RoundTripper (such as Transport) and additionally handles HTTP details such as cookies and redirects.
func
(
self
*
HTTPClient
)
Client
()
*
http
.
Client
{
return
&
http
.
Client
{
Transport
:
self
,
}
}
func
(
self
*
HTTPClient
)
RegisterScheme
(
scheme
string
,
rt
http
.
RoundTripper
)
{
self
.
schemes
=
append
(
self
.
schemes
,
scheme
)
self
.
RegisterProtocol
(
scheme
,
rt
)
}
func
(
self
*
HTTPClient
)
HasScheme
(
scheme
string
)
bool
{
for
_
,
s
:=
range
self
.
schemes
{
if
s
==
scheme
{
return
true
}
}
return
false
}
func
(
self
*
HTTPClient
)
GetAuthContent
(
uri
string
,
hash
common
.
Hash
)
([]
byte
,
error
)
{
// retrieve content
content
,
err
:=
self
.
Get
(
uri
,
""
)
if
err
!=
nil
{
return
nil
,
err
}
// check hash to authenticate content
chash
:=
crypto
.
Keccak256Hash
(
content
)
if
chash
!=
hash
{
return
nil
,
fmt
.
Errorf
(
"content hash mismatch %x != %x (exp)"
,
hash
[
:
],
chash
[
:
])
}
return
content
,
nil
}
// Get(uri, path) downloads the document at uri, if path is non-empty it
// is interpreted as a filepath to which the contents are saved
func
(
self
*
HTTPClient
)
Get
(
uri
,
path
string
)
([]
byte
,
error
)
{
// retrieve content
resp
,
err
:=
self
.
Client
()
.
Get
(
uri
)
if
err
!=
nil
{
return
nil
,
err
}
defer
func
()
{
if
resp
!=
nil
{
resp
.
Body
.
Close
()
}
}()
var
content
[]
byte
content
,
err
=
ioutil
.
ReadAll
(
resp
.
Body
)
if
err
!=
nil
{
return
nil
,
err
}
if
resp
.
StatusCode
/
100
!=
2
{
return
content
,
fmt
.
Errorf
(
"HTTP error: %s"
,
resp
.
Status
)
}
if
path
!=
""
{
var
abspath
string
abspath
,
err
=
filepath
.
Abs
(
path
)
if
err
!=
nil
{
return
nil
,
err
}
err
=
ioutil
.
WriteFile
(
abspath
,
content
,
0600
)
if
err
!=
nil
{
return
nil
,
err
}
}
return
content
,
nil
}
This diff is collapsed.
Click to expand it.
common/httpclient/httpclient_test.go
deleted
100644 → 0
View file @
6cc87a31
// Copyright 2015 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package
httpclient
import
(
"io/ioutil"
"net/http"
"os"
"path"
"testing"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
)
func
TestGetAuthContent
(
t
*
testing
.
T
)
{
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"httpclient-test"
)
if
err
!=
nil
{
t
.
Fatal
(
"cannot create temporary directory:"
,
err
)
}
defer
os
.
RemoveAll
(
dir
)
client
:=
New
(
dir
)
text
:=
"test"
hash
:=
crypto
.
Keccak256Hash
([]
byte
(
text
))
if
err
:=
ioutil
.
WriteFile
(
path
.
Join
(
dir
,
"test.content"
),
[]
byte
(
text
),
os
.
ModePerm
);
err
!=
nil
{
t
.
Fatal
(
"could not write test file"
,
err
)
}
content
,
err
:=
client
.
GetAuthContent
(
"file:///test.content"
,
hash
)
if
err
!=
nil
{
t
.
Errorf
(
"no error expected, got %v"
,
err
)
}
if
string
(
content
)
!=
text
{
t
.
Errorf
(
"incorrect content. expected %v, got %v"
,
text
,
string
(
content
))
}
hash
=
common
.
Hash
{}
content
,
err
=
client
.
GetAuthContent
(
"file:///test.content"
,
hash
)
expected
:=
"content hash mismatch 0000000000000000000000000000000000000000000000000000000000000000 != 9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658 (exp)"
if
err
==
nil
{
t
.
Errorf
(
"expected error, got nothing"
)
}
else
{
if
err
.
Error
()
!=
expected
{
t
.
Errorf
(
"expected error '%s' got '%v'"
,
expected
,
err
)
}
}
}
type
rt
struct
{}
func
(
rt
)
RoundTrip
(
req
*
http
.
Request
)
(
resp
*
http
.
Response
,
err
error
)
{
return
}
func
TestRegisterScheme
(
t
*
testing
.
T
)
{
client
:=
New
(
"/tmp/"
)
if
client
.
HasScheme
(
"scheme"
)
{
t
.
Errorf
(
"expected scheme not to be registered"
)
}
client
.
RegisterScheme
(
"scheme"
,
rt
{})
if
!
client
.
HasScheme
(
"scheme"
)
{
t
.
Errorf
(
"expected scheme to be registered"
)
}
}
This diff is collapsed.
Click to expand it.
les/backend.go
View file @
67e0894d
...
...
@@ -26,7 +26,6 @@ import (
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/compiler"
"github.com/ethereum/go-ethereum/common/httpclient"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth"
...
...
@@ -62,7 +61,6 @@ type LightEthereum struct {
eventMux
*
event
.
TypeMux
pow
*
ethash
.
Ethash
httpclient
*
httpclient
.
HTTPClient
accountManager
*
accounts
.
Manager
solcPath
string
solc
*
compiler
.
Solidity
...
...
@@ -96,7 +94,6 @@ func New(ctx *node.ServiceContext, config *eth.Config) (*LightEthereum, error) {
accountManager
:
ctx
.
AccountManager
,
pow
:
pow
,
shutdownChan
:
make
(
chan
bool
),
httpclient
:
httpclient
.
New
(
config
.
DocRoot
),
netVersionId
:
config
.
NetworkId
,
NatSpec
:
config
.
NatSpec
,
PowTest
:
config
.
PowTest
,
...
...
This diff is collapsed.
Click to expand it.
swarm/api/http/roundtripper_test.go
View file @
67e0894d
...
...
@@ -22,8 +22,6 @@ import (
"strings"
"testing"
"time"
"github.com/ethereum/go-ethereum/common/httpclient"
)
const
port
=
"3222"
...
...
@@ -41,10 +39,10 @@ func TestRoundTripper(t *testing.T) {
go
http
.
ListenAndServe
(
":"
+
port
,
serveMux
)
rt
:=
&
RoundTripper
{
Port
:
port
}
client
:=
httpclient
.
New
(
"/"
)
client
.
RegisterProtocol
(
"bzz"
,
rt
)
resp
,
err
:=
client
.
Client
()
.
Get
(
"bzz://test.com/path"
)
trans
:=
&
http
.
Transport
{}
trans
.
RegisterProtocol
(
"bzz"
,
rt
)
client
:=
&
http
.
Client
{
Transport
:
trans
}
resp
,
err
:=
client
.
Get
(
"bzz://test.com/path"
)
if
err
!=
nil
{
t
.
Errorf
(
"expected no error, got %v"
,
err
)
return
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment