From 9c84b33728e61fe2f3c41840c6f383901a537aed Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Thu, 29 Jul 2021 14:26:53 -0700 Subject: [PATCH] [tailscale1.18] golang.org/x/net/idna: add "omitidna" build tag to disable IDNA when unneeded Updates golang/go#38311 Saves 640 KiB with the version in the Go 1.14 release branch: dev:src $ ls -l idna.with* -rwxr-xr-x 1 bradfitz bradfitz 1925839 Apr 14 08:31 idna.with -rwxr-xr-x 1 bradfitz bradfitz 1269240 Apr 14 08:31 idna.without dev:src $ gosize idna.with 1208154 (79.02%) runtime 148673 ( 9.72%) type 62866 ( 4.11%) reflect 22329 ( 1.46%) unicode 18606 ( 1.22%) golang.org/x/text/unicode/bidi 12578 ( 0.82%) sync 8871 ( 0.58%) internal/reflectlite 8123 ( 0.53%) golang.org/x/net/idna 7446 ( 0.49%) syscall 6337 ( 0.41%) golang.org/x/text/unicode/norm 6312 ( 0.41%) internal/poll 4771 ( 0.31%) os 3415 ( 0.22%) internal/cpu 1878 ( 0.12%) strconv 1407 ( 0.09%) time 1065 ( 0.07%) io 881 ( 0.06%) fmt 764 ( 0.05%) runtime/internal/sys 650 ( 0.04%) sync/atomic 497 ( 0.03%) runtime/debug 475 ( 0.03%) golang.org/x/text/transform 461 ( 0.03%) internal/oserror 367 ( 0.02%) log 349 ( 0.02%) unicode/utf8 329 ( 0.02%) bytes 307 ( 0.02%) errors 277 ( 0.02%) golang.org/x/text/secure/bidirule 185 ( 0.01%) internal/syscall/unix 174 ( 0.01%) encoding/binary 163 ( 0.01%) main 77 ( 0.01%) internal/bytealg 59 ( 0.00%) runtime/internal/atomic 46 ( 0.00%) strings 40 ( 0.00%) math 14 ( 0.00%) internal/fmtsort 11 ( 0.00%) sort 11 ( 0.00%) internal/syscall/execenv dev:src $ gosize idna.without 886959 (88.54%) runtime 101185 (10.10%) type 8301 ( 0.83%) internal/reflectlite 3391 ( 0.34%) internal/cpu 496 ( 0.05%) runtime/debug 476 ( 0.05%) runtime/internal/sys 309 ( 0.03%) errors 204 ( 0.02%) sync 161 ( 0.02%) main 145 ( 0.01%) golang.org/x/net/idna 97 ( 0.01%) time 77 ( 0.01%) internal/bytealg Change-Id: Ibdc119694181ae3f6af0c607b39e865dc2325548 --- .../golang.org/x/net/idna/idna10.0.0.go | 4 +-- src/vendor/golang.org/x/net/idna/omit.go | 33 +++++++++++++++++++ src/vendor/golang.org/x/net/idna/punycode.go | 3 ++ .../golang.org/x/net/idna/tables10.0.0.go | 4 +-- .../golang.org/x/net/idna/tables11.0.0.go | 4 +-- .../golang.org/x/net/idna/tables12.0.0.go | 4 +-- .../golang.org/x/net/idna/tables13.0.0.go | 4 +-- .../golang.org/x/net/idna/tables9.0.0.go | 4 +-- src/vendor/golang.org/x/net/idna/trie.go | 3 ++ src/vendor/golang.org/x/net/idna/trieval.go | 3 ++ 10 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 src/vendor/golang.org/x/net/idna/omit.go diff --git a/src/vendor/golang.org/x/net/idna/idna10.0.0.go b/src/vendor/golang.org/x/net/idna/idna10.0.0.go index 5208ba6cb88424..229a02a62536f6 100644 --- a/src/vendor/golang.org/x/net/idna/idna10.0.0.go +++ b/src/vendor/golang.org/x/net/idna/idna10.0.0.go @@ -4,8 +4,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build go1.10 -// +build go1.10 +//go:build go1.10 && !omitidna +// +build go1.10,!omitidna // Package idna implements IDNA2008 using the compatibility processing // defined by UTS (Unicode Technical Standard) #46, which defines a standard to diff --git a/src/vendor/golang.org/x/net/idna/omit.go b/src/vendor/golang.org/x/net/idna/omit.go new file mode 100644 index 00000000000000..ca8cbb11854bfc --- /dev/null +++ b/src/vendor/golang.org/x/net/idna/omit.go @@ -0,0 +1,33 @@ +//go:build omitidna +// +build omitidna + +package idna + +import "errors" + +var errDisabled = errors.New("idna: support for IDNA is compiled out") + +func ToASCII(s string) (string, error) { + if isASCII(s) { + return s, nil + } + return "", errDisabled +} + +func isASCII(s string) bool { + const RuneSelf = 0x80 + for i := 0; i < len(s); i++ { + if s[0] >= RuneSelf { + return false + } + } + return true +} + +var Lookup fakeProfile + +type fakeProfile struct{} + +func (fakeProfile) ToASCII(s string) (string, error) { + return ToASCII(s) +} diff --git a/src/vendor/golang.org/x/net/idna/punycode.go b/src/vendor/golang.org/x/net/idna/punycode.go index 02c7d59af3b417..f7e35b996832cb 100644 --- a/src/vendor/golang.org/x/net/idna/punycode.go +++ b/src/vendor/golang.org/x/net/idna/punycode.go @@ -1,5 +1,8 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !omitidna +// +build !omitidna + // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. diff --git a/src/vendor/golang.org/x/net/idna/tables10.0.0.go b/src/vendor/golang.org/x/net/idna/tables10.0.0.go index d1d62ef459bb73..8254da7f350cd5 100644 --- a/src/vendor/golang.org/x/net/idna/tables10.0.0.go +++ b/src/vendor/golang.org/x/net/idna/tables10.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 +//go:build go1.10 && !go1.13 && !omitidna +// +build go1.10,!go1.13,!omitidna package idna diff --git a/src/vendor/golang.org/x/net/idna/tables11.0.0.go b/src/vendor/golang.org/x/net/idna/tables11.0.0.go index 167efba71256cd..aeb27b95ad2261 100644 --- a/src/vendor/golang.org/x/net/idna/tables11.0.0.go +++ b/src/vendor/golang.org/x/net/idna/tables11.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 +//go:build go1.13 && !go1.14 && !omitidna +// +build go1.13,!go1.14,!omitidna package idna diff --git a/src/vendor/golang.org/x/net/idna/tables12.0.0.go b/src/vendor/golang.org/x/net/idna/tables12.0.0.go index ab40f7bcc3b812..51ab9d1198d47e 100644 --- a/src/vendor/golang.org/x/net/idna/tables12.0.0.go +++ b/src/vendor/golang.org/x/net/idna/tables12.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 +//go:build go1.14 && !go1.16 && !omitidna +// +build go1.14,!go1.16,!omitidna package idna diff --git a/src/vendor/golang.org/x/net/idna/tables13.0.0.go b/src/vendor/golang.org/x/net/idna/tables13.0.0.go index 390c5e56d2a4e4..e4ac831d9974b1 100644 --- a/src/vendor/golang.org/x/net/idna/tables13.0.0.go +++ b/src/vendor/golang.org/x/net/idna/tables13.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.16 -// +build go1.16 +//go:build go1.16 && !omitidna +// +build go1.16,!omitidna package idna diff --git a/src/vendor/golang.org/x/net/idna/tables9.0.0.go b/src/vendor/golang.org/x/net/idna/tables9.0.0.go index 4074b5332e3e34..3b2b897d403217 100644 --- a/src/vendor/golang.org/x/net/idna/tables9.0.0.go +++ b/src/vendor/golang.org/x/net/idna/tables9.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build !go1.10 -// +build !go1.10 +//go:build !go1.10 && !omitidna +// +build !go1.10,!omitidna package idna diff --git a/src/vendor/golang.org/x/net/idna/trie.go b/src/vendor/golang.org/x/net/idna/trie.go index c4ef847e7a37d6..2cc737175fe3e2 100644 --- a/src/vendor/golang.org/x/net/idna/trie.go +++ b/src/vendor/golang.org/x/net/idna/trie.go @@ -1,5 +1,8 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !omitidna +// +build !omitidna + // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. diff --git a/src/vendor/golang.org/x/net/idna/trieval.go b/src/vendor/golang.org/x/net/idna/trieval.go index 7a8cf889b5bc74..f74a75811a3775 100644 --- a/src/vendor/golang.org/x/net/idna/trieval.go +++ b/src/vendor/golang.org/x/net/idna/trieval.go @@ -1,5 +1,8 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. +//go:build !omitidna +// +build !omitidna + package idna // This file contains definitions for interpreting the trie value of the idna