diff options
author | Péter Szilágyi <peterke@gmail.com> | 2019-05-09 05:49:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-09 05:49:14 +0800 |
commit | c94d582aa781b26412ba7d570f6707d193303a02 (patch) | |
tree | 8bd9dcc165433ac2464540e4f60b51ded14d6fd4 | |
parent | be4d74f8d22e573d37a4bf4514aa4320cb62a75d (diff) | |
parent | ab10c1557864566ef3d6ffa3dd8592d9a7c23bd1 (diff) | |
download | go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.tar go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.tar.gz go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.tar.bz2 go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.tar.lz go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.tar.xz go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.tar.zst go-tangerine-c94d582aa781b26412ba7d570f6707d193303a02.zip |
Merge pull request #19539 from karalabe/faucet-updates
cmd/faucet: embed git commit hash/date, disable Google+
-rw-r--r-- | cmd/faucet/faucet.go | 49 |
1 files changed, 12 insertions, 37 deletions
diff --git a/cmd/faucet/faucet.go b/cmd/faucet/faucet.go index 78b4a6563..08b23d46c 100644 --- a/cmd/faucet/faucet.go +++ b/cmd/faucet/faucet.go @@ -88,6 +88,11 @@ var ( ether = new(big.Int).Exp(big.NewInt(10), big.NewInt(18), nil) ) +var ( + gitCommit = "" // Git SHA1 commit hash of the release (set via linker flags) + gitDate = "" // Git commit date YYYYMMDD of the release (set via linker flags) +) + func main() { // Parse the flags and set up the logger to print everything requested flag.Parse() @@ -216,7 +221,7 @@ func newFaucet(genesis *core.Genesis, port int, enodes []*discv5.Node, network u // Assemble the raw devp2p protocol stack stack, err := node.New(&node.Config{ Name: "geth", - Version: params.VersionWithMeta, + Version: params.VersionWithCommit(gitCommit, gitDate), DataDir: filepath.Join(os.Getenv("HOME"), ".faucet"), P2P: p2p.Config{ NAT: nat.Any(), @@ -440,10 +445,14 @@ func (f *faucet) apiHandler(conn *websocket.Conn) { return } continue + case strings.HasPrefix(msg.URL, "https://plus.google.com/"): + if err = sendError(conn, errors.New("Google+ authentication discontinued as the service was sunset")); err != nil { + log.Warn("Failed to send Google+ deprecation to client", "err", err) + return + } + continue case strings.HasPrefix(msg.URL, "https://twitter.com/"): username, avatar, address, err = authTwitter(msg.URL) - case strings.HasPrefix(msg.URL, "https://plus.google.com/"): - username, avatar, address, err = authGooglePlus(msg.URL) case strings.HasPrefix(msg.URL, "https://www.facebook.com/"): username, avatar, address, err = authFacebook(msg.URL) case *noauthFlag: @@ -699,40 +708,6 @@ func authTwitter(url string) (string, string, common.Address, error) { return username + "@twitter", avatar, address, nil } -// authGooglePlus tries to authenticate a faucet request using GooglePlus posts, -// returning the username, avatar URL and Ethereum address to fund on success. -func authGooglePlus(url string) (string, string, common.Address, error) { - // Ensure the user specified a meaningful URL, no fancy nonsense - parts := strings.Split(url, "/") - if len(parts) < 4 || parts[len(parts)-2] != "posts" { - return "", "", common.Address{}, errors.New("Invalid Google+ post URL") - } - username := parts[len(parts)-3] - - // Google's API isn't really friendly with direct links. Still, we don't - // want to do ask read permissions from users, so just load the public posts and - // scrape it for the Ethereum address and profile URL. - res, err := http.Get(url) - if err != nil { - return "", "", common.Address{}, err - } - defer res.Body.Close() - - body, err := ioutil.ReadAll(res.Body) - if err != nil { - return "", "", common.Address{}, err - } - address := common.HexToAddress(string(regexp.MustCompile("0x[0-9a-fA-F]{40}").Find(body))) - if address == (common.Address{}) { - return "", "", common.Address{}, errors.New("No Ethereum address found to fund") - } - var avatar string - if parts = regexp.MustCompile("src=\"([^\"]+googleusercontent.com[^\"]+photo.jpg)\"").FindStringSubmatch(string(body)); len(parts) == 2 { - avatar = parts[1] - } - return username + "@google+", avatar, address, nil -} - // authFacebook tries to authenticate a faucet request using Facebook posts, // returning the username, avatar URL and Ethereum address to fund on success. func authFacebook(url string) (string, string, common.Address, error) { |