|
|
@@ -58,7 +58,7 @@ import (
|
|
|
"github.com/ethereum/go-ethereum/p2p/enode"
|
|
|
"github.com/ethereum/go-ethereum/p2p/nat"
|
|
|
"github.com/ethereum/go-ethereum/params"
|
|
|
- "golang.org/x/net/websocket"
|
|
|
+ "github.com/gorilla/websocket"
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
@@ -296,8 +296,7 @@ func (f *faucet) listenAndServe(port int) error {
|
|
|
go f.loop()
|
|
|
|
|
|
http.HandleFunc("/", f.webHandler)
|
|
|
- http.Handle("/api", websocket.Handler(f.apiHandler))
|
|
|
-
|
|
|
+ http.HandleFunc("/api", f.apiHandler)
|
|
|
return http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
|
|
|
}
|
|
|
|
|
|
@@ -308,7 +307,13 @@ func (f *faucet) webHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
}
|
|
|
|
|
|
// apiHandler handles requests for Ether grants and transaction statuses.
|
|
|
-func (f *faucet) apiHandler(conn *websocket.Conn) {
|
|
|
+func (f *faucet) apiHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
+ upgrader := websocket.Upgrader{}
|
|
|
+ conn, err := upgrader.Upgrade(w, r, nil)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
// Start tracking the connection and drop at the end
|
|
|
defer conn.Close()
|
|
|
|
|
|
@@ -331,7 +336,6 @@ func (f *faucet) apiHandler(conn *websocket.Conn) {
|
|
|
head *types.Header
|
|
|
balance *big.Int
|
|
|
nonce uint64
|
|
|
- err error
|
|
|
)
|
|
|
for head == nil || balance == nil {
|
|
|
// Retrieve the current stats cached by the faucet
|
|
|
@@ -376,7 +380,7 @@ func (f *faucet) apiHandler(conn *websocket.Conn) {
|
|
|
Tier uint `json:"tier"`
|
|
|
Captcha string `json:"captcha"`
|
|
|
}
|
|
|
- if err = websocket.JSON.Receive(conn, &msg); err != nil {
|
|
|
+ if err = conn.ReadJSON(&msg); err != nil {
|
|
|
return
|
|
|
}
|
|
|
if !*noauthFlag && !strings.HasPrefix(msg.URL, "https://gist.github.com/") && !strings.HasPrefix(msg.URL, "https://twitter.com/") &&
|
|
|
@@ -657,7 +661,7 @@ func send(conn *websocket.Conn, value interface{}, timeout time.Duration) error
|
|
|
timeout = 60 * time.Second
|
|
|
}
|
|
|
conn.SetWriteDeadline(time.Now().Add(timeout))
|
|
|
- return websocket.JSON.Send(conn, value)
|
|
|
+ return conn.WriteJSON(value)
|
|
|
}
|
|
|
|
|
|
// sendError transmits an error to the remote end of the websocket, also setting
|