mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 13:02:24 -05:00 
			
		
		
		
	[chore]: Bump github.com/miekg/dns from 1.1.59 to 1.1.61 (#3014)
This commit is contained in:
		
					parent
					
						
							
								b7dede2a47
							
						
					
				
			
			
				commit
				
					
						3a01377bcc
					
				
			
		
					 17 changed files with 312 additions and 161 deletions
				
			
		
							
								
								
									
										6
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -41,7 +41,7 @@ require ( | ||||||
| 	github.com/h2non/filetype v1.1.3 | 	github.com/h2non/filetype v1.1.3 | ||||||
| 	github.com/jackc/pgx/v5 v5.6.0 | 	github.com/jackc/pgx/v5 v5.6.0 | ||||||
| 	github.com/microcosm-cc/bluemonday v1.0.26 | 	github.com/microcosm-cc/bluemonday v1.0.26 | ||||||
| 	github.com/miekg/dns v1.1.59 | 	github.com/miekg/dns v1.1.61 | ||||||
| 	github.com/minio/minio-go/v7 v7.0.71 | 	github.com/minio/minio-go/v7 v7.0.71 | ||||||
| 	github.com/mitchellh/mapstructure v1.5.0 | 	github.com/mitchellh/mapstructure v1.5.0 | ||||||
| 	github.com/ncruces/go-sqlite3 v0.16.2 | 	github.com/ncruces/go-sqlite3 v0.16.2 | ||||||
|  | @ -213,10 +213,10 @@ require ( | ||||||
| 	go.uber.org/multierr v1.11.0 // indirect | 	go.uber.org/multierr v1.11.0 // indirect | ||||||
| 	golang.org/x/arch v0.8.0 // indirect | 	golang.org/x/arch v0.8.0 // indirect | ||||||
| 	golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect | 	golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect | ||||||
| 	golang.org/x/mod v0.17.0 // indirect | 	golang.org/x/mod v0.18.0 // indirect | ||||||
| 	golang.org/x/sync v0.7.0 // indirect | 	golang.org/x/sync v0.7.0 // indirect | ||||||
| 	golang.org/x/sys v0.21.0 // indirect | 	golang.org/x/sys v0.21.0 // indirect | ||||||
| 	golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect | 	golang.org/x/tools v0.22.0 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 // indirect | 	google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect | ||||||
| 	google.golang.org/grpc v1.63.2 // indirect | 	google.golang.org/grpc v1.63.2 // indirect | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -422,8 +422,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE | ||||||
| github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= | ||||||
| github.com/microcosm-cc/bluemonday v1.0.26 h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58= | github.com/microcosm-cc/bluemonday v1.0.26 h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58= | ||||||
| github.com/microcosm-cc/bluemonday v1.0.26/go.mod h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs= | github.com/microcosm-cc/bluemonday v1.0.26/go.mod h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs= | ||||||
| github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= | github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= | ||||||
| github.com/miekg/dns v1.1.59/go.mod h1:nZpewl5p6IvctfgrckopVx2OlSEHPRO/U4SYkRklrEk= | github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= | ||||||
| github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= | github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= | ||||||
| github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= | github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= | ||||||
| github.com/minio/minio-go/v7 v7.0.71 h1:No9XfOKTYi6i0GnBj+WZwD8WP5GZfL7n7GOjRqCdAjA= | github.com/minio/minio-go/v7 v7.0.71 h1:No9XfOKTYi6i0GnBj+WZwD8WP5GZfL7n7GOjRqCdAjA= | ||||||
|  | @ -720,8 +720,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB | ||||||
| golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
| golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||||
| golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | ||||||
| golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= | golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= | ||||||
| golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= | golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= | ||||||
| golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
| golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||||
|  | @ -876,8 +876,8 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc | ||||||
| golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||||
| golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= | ||||||
| golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | ||||||
| golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= | golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= | ||||||
| golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= | golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= | ||||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								vendor/github.com/miekg/dns/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/miekg/dns/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -188,6 +188,9 @@ Example programs can be found in the `github.com/miekg/exdns` repository. | ||||||
| * 8777 - DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery | * 8777 - DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery | ||||||
| * 8914 - Extended DNS Errors | * 8914 - Extended DNS Errors | ||||||
| * 8976 - Message Digest for DNS Zones (ZONEMD RR) | * 8976 - Message Digest for DNS Zones (ZONEMD RR) | ||||||
|  | * 9460 - Service Binding and Parameter Specification via the DNS | ||||||
|  | * 9461 - Service Binding Mapping for DNS Servers | ||||||
|  | * 9462 - Discovery of Designated Resolvers | ||||||
| 
 | 
 | ||||||
| ## Loosely Based Upon | ## Loosely Based Upon | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										40
									
								
								vendor/github.com/miekg/dns/scan_rr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								vendor/github.com/miekg/dns/scan_rr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -55,7 +55,10 @@ func endingToTxtSlice(c *zlexer, errstr string) ([]string, *ParseError) { | ||||||
| 			sx := []string{} | 			sx := []string{} | ||||||
| 			p := 0 | 			p := 0 | ||||||
| 			for { | 			for { | ||||||
| 				i := escapedStringOffset(l.token[p:], 255) | 				i, ok := escapedStringOffset(l.token[p:], 255) | ||||||
|  | 				if !ok { | ||||||
|  | 					return nil, &ParseError{err: errstr, lex: l} | ||||||
|  | 				} | ||||||
| 				if i != -1 && p+i != len(l.token) { | 				if i != -1 && p+i != len(l.token) { | ||||||
| 					sx = append(sx, l.token[p:p+i]) | 					sx = append(sx, l.token[p:p+i]) | ||||||
| 				} else { | 				} else { | ||||||
|  | @ -1919,29 +1922,36 @@ func (rr *APL) parse(c *zlexer, o string) *ParseError { | ||||||
| 
 | 
 | ||||||
| // escapedStringOffset finds the offset within a string (which may contain escape | // escapedStringOffset finds the offset within a string (which may contain escape | ||||||
| // sequences) that corresponds to a certain byte offset. If the input offset is | // sequences) that corresponds to a certain byte offset. If the input offset is | ||||||
| // out of bounds, -1 is returned. | // out of bounds, -1 is returned (which is *not* considered an error). | ||||||
| func escapedStringOffset(s string, byteOffset int) int { | func escapedStringOffset(s string, desiredByteOffset int) (int, bool) { | ||||||
| 	if byteOffset == 0 { | 	if desiredByteOffset == 0 { | ||||||
| 		return 0 | 		return 0, true | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	offset := 0 | 	currentByteOffset, i := 0, 0 | ||||||
| 	for i := 0; i < len(s); i++ { | 
 | ||||||
| 		offset += 1 | 	for i < len(s) { | ||||||
|  | 		currentByteOffset += 1 | ||||||
| 
 | 
 | ||||||
| 		// Skip escape sequences | 		// Skip escape sequences | ||||||
| 		if s[i] != '\\' { | 		if s[i] != '\\' { | ||||||
| 			// Not an escape sequence; nothing to do. | 			// Single plain byte, not an escape sequence. | ||||||
| 		} else if isDDD(s[i+1:]) { |  | ||||||
| 			i += 3 |  | ||||||
| 		} else { |  | ||||||
| 			i++ | 			i++ | ||||||
|  | 		} else if isDDD(s[i+1:]) { | ||||||
|  | 			// Skip backslash and DDD. | ||||||
|  | 			i += 4 | ||||||
|  | 		} else if len(s[i+1:]) < 1 { | ||||||
|  | 			// No character following the backslash; that's an error. | ||||||
|  | 			return 0, false | ||||||
|  | 		} else { | ||||||
|  | 			// Skip backslash and following byte. | ||||||
|  | 			i += 2 | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if offset >= byteOffset { | 		if currentByteOffset >= desiredByteOffset { | ||||||
| 			return i + 1 | 			return i, true | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return -1 | 	return -1, true | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								vendor/github.com/miekg/dns/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/miekg/dns/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -188,6 +188,14 @@ type DecorateReader func(Reader) Reader | ||||||
| // Implementations should never return a nil Writer. | // Implementations should never return a nil Writer. | ||||||
| type DecorateWriter func(Writer) Writer | type DecorateWriter func(Writer) Writer | ||||||
| 
 | 
 | ||||||
|  | // MsgInvalidFunc is a listener hook for observing incoming messages that were discarded | ||||||
|  | // because they could not be parsed. | ||||||
|  | // Every message that is read by a Reader will eventually be provided to the Handler, | ||||||
|  | // rejected (or ignored) by the MsgAcceptFunc, or passed to this function. | ||||||
|  | type MsgInvalidFunc func(m []byte, err error) | ||||||
|  | 
 | ||||||
|  | func DefaultMsgInvalidFunc(m []byte, err error) {} | ||||||
|  | 
 | ||||||
| // A Server defines parameters for running an DNS server. | // A Server defines parameters for running an DNS server. | ||||||
| type Server struct { | type Server struct { | ||||||
| 	// Address to listen on, ":dns" if empty. | 	// Address to listen on, ":dns" if empty. | ||||||
|  | @ -233,6 +241,8 @@ type Server struct { | ||||||
| 	// AcceptMsgFunc will check the incoming message and will reject it early in the process. | 	// AcceptMsgFunc will check the incoming message and will reject it early in the process. | ||||||
| 	// By default DefaultMsgAcceptFunc will be used. | 	// By default DefaultMsgAcceptFunc will be used. | ||||||
| 	MsgAcceptFunc MsgAcceptFunc | 	MsgAcceptFunc MsgAcceptFunc | ||||||
|  | 	// MsgInvalidFunc is optional, will be called if a message is received but cannot be parsed. | ||||||
|  | 	MsgInvalidFunc MsgInvalidFunc | ||||||
| 
 | 
 | ||||||
| 	// Shutdown handling | 	// Shutdown handling | ||||||
| 	lock     sync.RWMutex | 	lock     sync.RWMutex | ||||||
|  | @ -277,6 +287,9 @@ func (srv *Server) init() { | ||||||
| 	if srv.MsgAcceptFunc == nil { | 	if srv.MsgAcceptFunc == nil { | ||||||
| 		srv.MsgAcceptFunc = DefaultMsgAcceptFunc | 		srv.MsgAcceptFunc = DefaultMsgAcceptFunc | ||||||
| 	} | 	} | ||||||
|  | 	if srv.MsgInvalidFunc == nil { | ||||||
|  | 		srv.MsgInvalidFunc = DefaultMsgInvalidFunc | ||||||
|  | 	} | ||||||
| 	if srv.Handler == nil { | 	if srv.Handler == nil { | ||||||
| 		srv.Handler = DefaultServeMux | 		srv.Handler = DefaultServeMux | ||||||
| 	} | 	} | ||||||
|  | @ -531,6 +544,7 @@ func (srv *Server) serveUDP(l net.PacketConn) error { | ||||||
| 			if cap(m) == srv.UDPSize { | 			if cap(m) == srv.UDPSize { | ||||||
| 				srv.udpPool.Put(m[:srv.UDPSize]) | 				srv.udpPool.Put(m[:srv.UDPSize]) | ||||||
| 			} | 			} | ||||||
|  | 			srv.MsgInvalidFunc(m, ErrShortRead) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		wg.Add(1) | 		wg.Add(1) | ||||||
|  | @ -611,6 +625,7 @@ func (srv *Server) serveUDPPacket(wg *sync.WaitGroup, m []byte, u net.PacketConn | ||||||
| func (srv *Server) serveDNS(m []byte, w *response) { | func (srv *Server) serveDNS(m []byte, w *response) { | ||||||
| 	dh, off, err := unpackMsgHdr(m, 0) | 	dh, off, err := unpackMsgHdr(m, 0) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | 		srv.MsgInvalidFunc(m, err) | ||||||
| 		// Let client hang, they are sending crap; any reply can be used to amplify. | 		// Let client hang, they are sending crap; any reply can be used to amplify. | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  | @ -620,10 +635,12 @@ func (srv *Server) serveDNS(m []byte, w *response) { | ||||||
| 
 | 
 | ||||||
| 	switch action := srv.MsgAcceptFunc(dh); action { | 	switch action := srv.MsgAcceptFunc(dh); action { | ||||||
| 	case MsgAccept: | 	case MsgAccept: | ||||||
| 		if req.unpack(dh, m, off) == nil { | 		err := req.unpack(dh, m, off) | ||||||
|  | 		if err == nil { | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		srv.MsgInvalidFunc(m, err) | ||||||
| 		fallthrough | 		fallthrough | ||||||
| 	case MsgReject, MsgRejectNotImplemented: | 	case MsgReject, MsgRejectNotImplemented: | ||||||
| 		opcode := req.Opcode | 		opcode := req.Opcode | ||||||
|  |  | ||||||
							
								
								
									
										50
									
								
								vendor/github.com/miekg/dns/svcb.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/miekg/dns/svcb.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -14,7 +14,7 @@ import ( | ||||||
| // SVCBKey is the type of the keys used in the SVCB RR. | // SVCBKey is the type of the keys used in the SVCB RR. | ||||||
| type SVCBKey uint16 | type SVCBKey uint16 | ||||||
| 
 | 
 | ||||||
| // Keys defined in draft-ietf-dnsop-svcb-https-08 Section 14.3.2. | // Keys defined in rfc9460 | ||||||
| const ( | const ( | ||||||
| 	SVCB_MANDATORY SVCBKey = iota | 	SVCB_MANDATORY SVCBKey = iota | ||||||
| 	SVCB_ALPN | 	SVCB_ALPN | ||||||
|  | @ -23,7 +23,8 @@ const ( | ||||||
| 	SVCB_IPV4HINT | 	SVCB_IPV4HINT | ||||||
| 	SVCB_ECHCONFIG | 	SVCB_ECHCONFIG | ||||||
| 	SVCB_IPV6HINT | 	SVCB_IPV6HINT | ||||||
| 	SVCB_DOHPATH // draft-ietf-add-svcb-dns-02 Section 9 | 	SVCB_DOHPATH // rfc9461 Section 5 | ||||||
|  | 	SVCB_OHTTP   // rfc9540 Section 8 | ||||||
| 
 | 
 | ||||||
| 	svcb_RESERVED SVCBKey = 65535 | 	svcb_RESERVED SVCBKey = 65535 | ||||||
| ) | ) | ||||||
|  | @ -37,6 +38,7 @@ var svcbKeyToStringMap = map[SVCBKey]string{ | ||||||
| 	SVCB_ECHCONFIG:       "ech", | 	SVCB_ECHCONFIG:       "ech", | ||||||
| 	SVCB_IPV6HINT:        "ipv6hint", | 	SVCB_IPV6HINT:        "ipv6hint", | ||||||
| 	SVCB_DOHPATH:         "dohpath", | 	SVCB_DOHPATH:         "dohpath", | ||||||
|  | 	SVCB_OHTTP:           "ohttp", | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var svcbStringToKeyMap = reverseSVCBKeyMap(svcbKeyToStringMap) | var svcbStringToKeyMap = reverseSVCBKeyMap(svcbKeyToStringMap) | ||||||
|  | @ -201,6 +203,8 @@ func makeSVCBKeyValue(key SVCBKey) SVCBKeyValue { | ||||||
| 		return new(SVCBIPv6Hint) | 		return new(SVCBIPv6Hint) | ||||||
| 	case SVCB_DOHPATH: | 	case SVCB_DOHPATH: | ||||||
| 		return new(SVCBDoHPath) | 		return new(SVCBDoHPath) | ||||||
|  | 	case SVCB_OHTTP: | ||||||
|  | 		return new(SVCBOhttp) | ||||||
| 	case svcb_RESERVED: | 	case svcb_RESERVED: | ||||||
| 		return nil | 		return nil | ||||||
| 	default: | 	default: | ||||||
|  | @ -771,8 +775,8 @@ func (s *SVCBIPv6Hint) copy() SVCBKeyValue { | ||||||
| // SVCBDoHPath pair is used to indicate the URI template that the | // SVCBDoHPath pair is used to indicate the URI template that the | ||||||
| // clients may use to construct a DNS over HTTPS URI. | // clients may use to construct a DNS over HTTPS URI. | ||||||
| // | // | ||||||
| // See RFC xxxx (https://datatracker.ietf.org/doc/html/draft-ietf-add-svcb-dns-02) | // See RFC 9461 (https://datatracker.ietf.org/doc/html/rfc9461) | ||||||
| // and RFC yyyy (https://datatracker.ietf.org/doc/html/draft-ietf-add-ddr-06). | // and RFC 9462 (https://datatracker.ietf.org/doc/html/rfc9462). | ||||||
| // | // | ||||||
| // A basic example of using the dohpath option together with the alpn | // A basic example of using the dohpath option together with the alpn | ||||||
| // option to indicate support for DNS over HTTPS on a certain path: | // option to indicate support for DNS over HTTPS on a certain path: | ||||||
|  | @ -816,6 +820,44 @@ func (s *SVCBDoHPath) copy() SVCBKeyValue { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // The "ohttp" SvcParamKey is used to indicate that a service described in a SVCB RR | ||||||
|  | // can be accessed as a target using an associated gateway. | ||||||
|  | // Both the presentation and wire-format values for the "ohttp" parameter MUST be empty. | ||||||
|  | // | ||||||
|  | // See RFC 9460 (https://datatracker.ietf.org/doc/html/rfc9460/) | ||||||
|  | // and RFC 9230 (https://datatracker.ietf.org/doc/html/rfc9230/) | ||||||
|  | // | ||||||
|  | // A basic example of using the dohpath option together with the alpn | ||||||
|  | // option to indicate support for DNS over HTTPS on a certain path: | ||||||
|  | // | ||||||
|  | //	s := new(dns.SVCB) | ||||||
|  | //	s.Hdr = dns.RR_Header{Name: ".", Rrtype: dns.TypeSVCB, Class: dns.ClassINET} | ||||||
|  | //	e := new(dns.SVCBAlpn) | ||||||
|  | //	e.Alpn = []string{"h2", "h3"} | ||||||
|  | //	p := new(dns.SVCBOhttp) | ||||||
|  | //	s.Value = append(s.Value, e, p) | ||||||
|  | type SVCBOhttp struct{} | ||||||
|  | 
 | ||||||
|  | func (*SVCBOhttp) Key() SVCBKey          { return SVCB_OHTTP } | ||||||
|  | func (*SVCBOhttp) copy() SVCBKeyValue    { return &SVCBOhttp{} } | ||||||
|  | func (*SVCBOhttp) pack() ([]byte, error) { return []byte{}, nil } | ||||||
|  | func (*SVCBOhttp) String() string        { return "" } | ||||||
|  | func (*SVCBOhttp) len() int              { return 0 } | ||||||
|  | 
 | ||||||
|  | func (*SVCBOhttp) unpack(b []byte) error { | ||||||
|  | 	if len(b) != 0 { | ||||||
|  | 		return errors.New("dns: svcbotthp: svcbotthp must have no value") | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (*SVCBOhttp) parse(b string) error { | ||||||
|  | 	if b != "" { | ||||||
|  | 		return errors.New("dns: svcbotthp: svcbotthp must have no value") | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // SVCBLocal pair is intended for experimental/private use. The key is recommended | // SVCBLocal pair is intended for experimental/private use. The key is recommended | ||||||
| // to be in the range [SVCB_PRIVATE_LOWER, SVCB_PRIVATE_UPPER]. | // to be in the range [SVCB_PRIVATE_LOWER, SVCB_PRIVATE_UPPER]. | ||||||
| // Basic use pattern for creating a keyNNNNN option: | // Basic use pattern for creating a keyNNNNN option: | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								vendor/github.com/miekg/dns/xfr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/miekg/dns/xfr.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -209,6 +209,7 @@ func (t *Transfer) inIxfr(q *Msg, c chan *Envelope) { | ||||||
| //	ch := make(chan *dns.Envelope) | //	ch := make(chan *dns.Envelope) | ||||||
| //	tr := new(dns.Transfer) | //	tr := new(dns.Transfer) | ||||||
| //	var wg sync.WaitGroup | //	var wg sync.WaitGroup | ||||||
|  | //	wg.Add(1) | ||||||
| //	go func() { | //	go func() { | ||||||
| //		tr.Out(w, r, ch) | //		tr.Out(w, r, ch) | ||||||
| //		wg.Done() | //		wg.Done() | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/mod/module/module.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/mod/module/module.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -506,6 +506,7 @@ var badWindowsNames = []string{ | ||||||
| 	"PRN", | 	"PRN", | ||||||
| 	"AUX", | 	"AUX", | ||||||
| 	"NUL", | 	"NUL", | ||||||
|  | 	"COM0", | ||||||
| 	"COM1", | 	"COM1", | ||||||
| 	"COM2", | 	"COM2", | ||||||
| 	"COM3", | 	"COM3", | ||||||
|  | @ -515,6 +516,7 @@ var badWindowsNames = []string{ | ||||||
| 	"COM7", | 	"COM7", | ||||||
| 	"COM8", | 	"COM8", | ||||||
| 	"COM9", | 	"COM9", | ||||||
|  | 	"LPT0", | ||||||
| 	"LPT1", | 	"LPT1", | ||||||
| 	"LPT2", | 	"LPT2", | ||||||
| 	"LPT3", | 	"LPT3", | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -13,6 +13,7 @@ import ( | ||||||
| 	"golang.org/x/tools/internal/gocommand" | 	"golang.org/x/tools/internal/gocommand" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | // TODO(adonovan): move back into go/packages. | ||||||
| func GetSizesForArgsGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { | func GetSizesForArgsGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { | ||||||
| 	inv.Verb = "list" | 	inv.Verb = "list" | ||||||
| 	inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} | 	inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} | ||||||
|  |  | ||||||
							
								
								
									
										8
									
								
								vendor/golang.org/x/tools/go/packages/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/golang.org/x/tools/go/packages/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -198,14 +198,6 @@ Instead, ssadump no longer requests the runtime package, | ||||||
| but seeks it among the dependencies of the user-specified packages, | but seeks it among the dependencies of the user-specified packages, | ||||||
| and emits an error if it is not found. | and emits an error if it is not found. | ||||||
| 
 | 
 | ||||||
| Overlays: The Overlay field in the Config allows providing alternate contents |  | ||||||
| for Go source files, by providing a mapping from file path to contents. |  | ||||||
| go/packages will pull in new imports added in overlay files when go/packages |  | ||||||
| is run in LoadImports mode or greater. |  | ||||||
| Overlay support for the go list driver isn't complete yet: if the file doesn't |  | ||||||
| exist on disk, it will only be recognized in an overlay if it is a non-test file |  | ||||||
| and the package would be reported even without the overlay. |  | ||||||
| 
 |  | ||||||
| Questions & Tasks | Questions & Tasks | ||||||
| 
 | 
 | ||||||
| - Add GOARCH/GOOS? | - Add GOARCH/GOOS? | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								vendor/golang.org/x/tools/go/packages/external.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/golang.org/x/tools/go/packages/external.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -34,8 +34,8 @@ type DriverRequest struct { | ||||||
| 	// Tests specifies whether the patterns should also return test packages. | 	// Tests specifies whether the patterns should also return test packages. | ||||||
| 	Tests bool `json:"tests"` | 	Tests bool `json:"tests"` | ||||||
| 
 | 
 | ||||||
| 	// Overlay maps file paths (relative to the driver's working directory) to the byte contents | 	// Overlay maps file paths (relative to the driver's working directory) | ||||||
| 	// of overlay files. | 	// to the contents of overlay files (see Config.Overlay). | ||||||
| 	Overlay map[string][]byte `json:"overlay"` | 	Overlay map[string][]byte `json:"overlay"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -119,7 +119,19 @@ func findExternalDriver(cfg *Config) driver { | ||||||
| 		stderr := new(bytes.Buffer) | 		stderr := new(bytes.Buffer) | ||||||
| 		cmd := exec.CommandContext(cfg.Context, tool, words...) | 		cmd := exec.CommandContext(cfg.Context, tool, words...) | ||||||
| 		cmd.Dir = cfg.Dir | 		cmd.Dir = cfg.Dir | ||||||
| 		cmd.Env = cfg.Env | 		// The cwd gets resolved to the real path. On Darwin, where | ||||||
|  | 		// /tmp is a symlink, this breaks anything that expects the | ||||||
|  | 		// working directory to keep the original path, including the | ||||||
|  | 		// go command when dealing with modules. | ||||||
|  | 		// | ||||||
|  | 		// os.Getwd stdlib has a special feature where if the | ||||||
|  | 		// cwd and the PWD are the same node then it trusts | ||||||
|  | 		// the PWD, so by setting it in the env for the child | ||||||
|  | 		// process we fix up all the paths returned by the go | ||||||
|  | 		// command. | ||||||
|  | 		// | ||||||
|  | 		// (See similar trick in Invocation.run in ../../internal/gocommand/invoke.go) | ||||||
|  | 		cmd.Env = append(slicesClip(cfg.Env), "PWD="+cfg.Dir) | ||||||
| 		cmd.Stdin = bytes.NewReader(req) | 		cmd.Stdin = bytes.NewReader(req) | ||||||
| 		cmd.Stdout = buf | 		cmd.Stdout = buf | ||||||
| 		cmd.Stderr = stderr | 		cmd.Stderr = stderr | ||||||
|  | @ -138,3 +150,7 @@ func findExternalDriver(cfg *Config) driver { | ||||||
| 		return &response, nil | 		return &response, nil | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // slicesClip removes unused capacity from the slice, returning s[:len(s):len(s)]. | ||||||
|  | // TODO(adonovan): use go1.21 slices.Clip. | ||||||
|  | func slicesClip[S ~[]E, E any](s S) S { return s[:len(s):len(s)] } | ||||||
|  |  | ||||||
							
								
								
									
										82
									
								
								vendor/golang.org/x/tools/go/packages/golist.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										82
									
								
								vendor/golang.org/x/tools/go/packages/golist.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -841,6 +841,7 @@ func (state *golistState) cfgInvocation() gocommand.Invocation { | ||||||
| 		Env:        cfg.Env, | 		Env:        cfg.Env, | ||||||
| 		Logf:       cfg.Logf, | 		Logf:       cfg.Logf, | ||||||
| 		WorkingDir: cfg.Dir, | 		WorkingDir: cfg.Dir, | ||||||
|  | 		Overlay:    cfg.goListOverlayFile, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -849,26 +850,6 @@ func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, | ||||||
| 	cfg := state.cfg | 	cfg := state.cfg | ||||||
| 
 | 
 | ||||||
| 	inv := state.cfgInvocation() | 	inv := state.cfgInvocation() | ||||||
| 
 |  | ||||||
| 	// For Go versions 1.16 and above, `go list` accepts overlays directly via |  | ||||||
| 	// the -overlay flag. Set it, if it's available. |  | ||||||
| 	// |  | ||||||
| 	// The check for "list" is not necessarily required, but we should avoid |  | ||||||
| 	// getting the go version if possible. |  | ||||||
| 	if verb == "list" { |  | ||||||
| 		goVersion, err := state.getGoVersion() |  | ||||||
| 		if err != nil { |  | ||||||
| 			return nil, err |  | ||||||
| 		} |  | ||||||
| 		if goVersion >= 16 { |  | ||||||
| 			filename, cleanup, err := state.writeOverlays() |  | ||||||
| 			if err != nil { |  | ||||||
| 				return nil, err |  | ||||||
| 			} |  | ||||||
| 			defer cleanup() |  | ||||||
| 			inv.Overlay = filename |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	inv.Verb = verb | 	inv.Verb = verb | ||||||
| 	inv.Args = args | 	inv.Args = args | ||||||
| 	gocmdRunner := cfg.gocmdRunner | 	gocmdRunner := cfg.gocmdRunner | ||||||
|  | @ -1015,67 +996,6 @@ func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, | ||||||
| 	return stdout, nil | 	return stdout, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // OverlayJSON is the format overlay files are expected to be in. |  | ||||||
| // The Replace map maps from overlaid paths to replacement paths: |  | ||||||
| // the Go command will forward all reads trying to open |  | ||||||
| // each overlaid path to its replacement path, or consider the overlaid |  | ||||||
| // path not to exist if the replacement path is empty. |  | ||||||
| // |  | ||||||
| // From golang/go#39958. |  | ||||||
| type OverlayJSON struct { |  | ||||||
| 	Replace map[string]string `json:"replace,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // writeOverlays writes out files for go list's -overlay flag, as described |  | ||||||
| // above. |  | ||||||
| func (state *golistState) writeOverlays() (filename string, cleanup func(), err error) { |  | ||||||
| 	// Do nothing if there are no overlays in the config. |  | ||||||
| 	if len(state.cfg.Overlay) == 0 { |  | ||||||
| 		return "", func() {}, nil |  | ||||||
| 	} |  | ||||||
| 	dir, err := os.MkdirTemp("", "gopackages-*") |  | ||||||
| 	if err != nil { |  | ||||||
| 		return "", nil, err |  | ||||||
| 	} |  | ||||||
| 	// The caller must clean up this directory, unless this function returns an |  | ||||||
| 	// error. |  | ||||||
| 	cleanup = func() { |  | ||||||
| 		os.RemoveAll(dir) |  | ||||||
| 	} |  | ||||||
| 	defer func() { |  | ||||||
| 		if err != nil { |  | ||||||
| 			cleanup() |  | ||||||
| 		} |  | ||||||
| 	}() |  | ||||||
| 	overlays := map[string]string{} |  | ||||||
| 	for k, v := range state.cfg.Overlay { |  | ||||||
| 		// Create a unique filename for the overlaid files, to avoid |  | ||||||
| 		// creating nested directories. |  | ||||||
| 		noSeparator := strings.Join(strings.Split(filepath.ToSlash(k), "/"), "") |  | ||||||
| 		f, err := os.CreateTemp(dir, fmt.Sprintf("*-%s", noSeparator)) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return "", func() {}, err |  | ||||||
| 		} |  | ||||||
| 		if _, err := f.Write(v); err != nil { |  | ||||||
| 			return "", func() {}, err |  | ||||||
| 		} |  | ||||||
| 		if err := f.Close(); err != nil { |  | ||||||
| 			return "", func() {}, err |  | ||||||
| 		} |  | ||||||
| 		overlays[k] = f.Name() |  | ||||||
| 	} |  | ||||||
| 	b, err := json.Marshal(OverlayJSON{Replace: overlays}) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return "", func() {}, err |  | ||||||
| 	} |  | ||||||
| 	// Write out the overlay file that contains the filepath mappings. |  | ||||||
| 	filename = filepath.Join(dir, "overlay.json") |  | ||||||
| 	if err := os.WriteFile(filename, b, 0665); err != nil { |  | ||||||
| 		return "", func() {}, err |  | ||||||
| 	} |  | ||||||
| 	return filename, cleanup, nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func containsGoFile(s []string) bool { | func containsGoFile(s []string) bool { | ||||||
| 	for _, f := range s { | 	for _, f := range s { | ||||||
| 		if strings.HasSuffix(f, ".go") { | 		if strings.HasSuffix(f, ".go") { | ||||||
|  |  | ||||||
							
								
								
									
										95
									
								
								vendor/golang.org/x/tools/go/packages/packages.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										95
									
								
								vendor/golang.org/x/tools/go/packages/packages.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -37,10 +37,20 @@ import ( | ||||||
| // A LoadMode controls the amount of detail to return when loading. | // A LoadMode controls the amount of detail to return when loading. | ||||||
| // The bits below can be combined to specify which fields should be | // The bits below can be combined to specify which fields should be | ||||||
| // filled in the result packages. | // filled in the result packages. | ||||||
|  | // | ||||||
| // The zero value is a special case, equivalent to combining | // The zero value is a special case, equivalent to combining | ||||||
| // the NeedName, NeedFiles, and NeedCompiledGoFiles bits. | // the NeedName, NeedFiles, and NeedCompiledGoFiles bits. | ||||||
|  | // | ||||||
| // ID and Errors (if present) will always be filled. | // ID and Errors (if present) will always be filled. | ||||||
| // Load may return more information than requested. | // [Load] may return more information than requested. | ||||||
|  | // | ||||||
|  | // Unfortunately there are a number of open bugs related to | ||||||
|  | // interactions among the LoadMode bits: | ||||||
|  | // - https://github.com/golang/go/issues/48226 | ||||||
|  | // - https://github.com/golang/go/issues/56633 | ||||||
|  | // - https://github.com/golang/go/issues/56677 | ||||||
|  | // - https://github.com/golang/go/issues/58726 | ||||||
|  | // - https://github.com/golang/go/issues/63517 | ||||||
| type LoadMode int | type LoadMode int | ||||||
| 
 | 
 | ||||||
| const ( | const ( | ||||||
|  | @ -123,7 +133,14 @@ const ( | ||||||
| 
 | 
 | ||||||
| // A Config specifies details about how packages should be loaded. | // A Config specifies details about how packages should be loaded. | ||||||
| // The zero value is a valid configuration. | // The zero value is a valid configuration. | ||||||
|  | // | ||||||
| // Calls to Load do not modify this struct. | // Calls to Load do not modify this struct. | ||||||
|  | // | ||||||
|  | // TODO(adonovan): #67702: this is currently false: in fact, | ||||||
|  | // calls to [Load] do not modify the public fields of this struct, but | ||||||
|  | // may modify hidden fields, so concurrent calls to [Load] must not | ||||||
|  | // use the same Config. But perhaps we should reestablish the | ||||||
|  | // documented invariant. | ||||||
| type Config struct { | type Config struct { | ||||||
| 	// Mode controls the level of information returned for each package. | 	// Mode controls the level of information returned for each package. | ||||||
| 	Mode LoadMode | 	Mode LoadMode | ||||||
|  | @ -199,13 +216,23 @@ type Config struct { | ||||||
| 	// setting Tests may have no effect. | 	// setting Tests may have no effect. | ||||||
| 	Tests bool | 	Tests bool | ||||||
| 
 | 
 | ||||||
| 	// Overlay provides a mapping of absolute file paths to file contents. | 	// Overlay is a mapping from absolute file paths to file contents. | ||||||
| 	// If the file with the given path already exists, the parser will use the |  | ||||||
| 	// alternative file contents provided by the map. |  | ||||||
| 	// | 	// | ||||||
| 	// Overlays provide incomplete support for when a given file doesn't | 	// For each map entry, [Load] uses the alternative file | ||||||
| 	// already exist on disk. See the package doc above for more details. | 	// contents provided by the overlay mapping instead of reading | ||||||
|  | 	// from the file system. This mechanism can be used to enable | ||||||
|  | 	// editor-integrated tools to correctly analyze the contents | ||||||
|  | 	// of modified but unsaved buffers, for example. | ||||||
|  | 	// | ||||||
|  | 	// The overlay mapping is passed to the build system's driver | ||||||
|  | 	// (see "The driver protocol") so that it too can report | ||||||
|  | 	// consistent package metadata about unsaved files. However, | ||||||
|  | 	// drivers may vary in their level of support for overlays. | ||||||
| 	Overlay map[string][]byte | 	Overlay map[string][]byte | ||||||
|  | 
 | ||||||
|  | 	// goListOverlayFile is the JSON file that encodes the Overlay | ||||||
|  | 	// mapping, used by 'go list -overlay=...' | ||||||
|  | 	goListOverlayFile string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Load loads and returns the Go packages named by the given patterns. | // Load loads and returns the Go packages named by the given patterns. | ||||||
|  | @ -213,6 +240,20 @@ type Config struct { | ||||||
| // Config specifies loading options; | // Config specifies loading options; | ||||||
| // nil behaves the same as an empty Config. | // nil behaves the same as an empty Config. | ||||||
| // | // | ||||||
|  | // The [Config.Mode] field is a set of bits that determine what kinds | ||||||
|  | // of information should be computed and returned. Modes that require | ||||||
|  | // more information tend to be slower. See [LoadMode] for details | ||||||
|  | // and important caveats. Its zero value is equivalent to | ||||||
|  | // NeedName | NeedFiles | NeedCompiledGoFiles. | ||||||
|  | // | ||||||
|  | // Each call to Load returns a new set of [Package] instances. | ||||||
|  | // The Packages and their Imports form a directed acyclic graph. | ||||||
|  | // | ||||||
|  | // If the [NeedTypes] mode flag was set, each call to Load uses a new | ||||||
|  | // [types.Importer], so [types.Object] and [types.Type] values from | ||||||
|  | // different calls to Load must not be mixed as they will have | ||||||
|  | // inconsistent notions of type identity. | ||||||
|  | // | ||||||
| // If any of the patterns was invalid as defined by the | // If any of the patterns was invalid as defined by the | ||||||
| // underlying build system, Load returns an error. | // underlying build system, Load returns an error. | ||||||
| // It may return an empty list of packages without an error, | // It may return an empty list of packages without an error, | ||||||
|  | @ -286,6 +327,17 @@ func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, erro | ||||||
| 		// (fall through) | 		// (fall through) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	// go list fallback | ||||||
|  | 	// | ||||||
|  | 	// Write overlays once, as there are many calls | ||||||
|  | 	// to 'go list' (one per chunk plus others too). | ||||||
|  | 	overlay, cleanupOverlay, err := gocommand.WriteOverlays(cfg.Overlay) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, false, err | ||||||
|  | 	} | ||||||
|  | 	defer cleanupOverlay() | ||||||
|  | 	cfg.goListOverlayFile = overlay | ||||||
|  | 
 | ||||||
| 	response, err := callDriverOnChunks(goListDriver, cfg, chunks) | 	response, err := callDriverOnChunks(goListDriver, cfg, chunks) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, false, err | 		return nil, false, err | ||||||
|  | @ -365,6 +417,9 @@ func mergeResponses(responses ...*DriverResponse) *DriverResponse { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // A Package describes a loaded Go package. | // A Package describes a loaded Go package. | ||||||
|  | // | ||||||
|  | // It also defines part of the JSON schema of [DriverResponse]. | ||||||
|  | // See the package documentation for an overview. | ||||||
| type Package struct { | type Package struct { | ||||||
| 	// ID is a unique identifier for a package, | 	// ID is a unique identifier for a package, | ||||||
| 	// in a syntax provided by the underlying build system. | 	// in a syntax provided by the underlying build system. | ||||||
|  | @ -423,6 +478,13 @@ type Package struct { | ||||||
| 	// to corresponding loaded Packages. | 	// to corresponding loaded Packages. | ||||||
| 	Imports map[string]*Package | 	Imports map[string]*Package | ||||||
| 
 | 
 | ||||||
|  | 	// Module is the module information for the package if it exists. | ||||||
|  | 	// | ||||||
|  | 	// Note: it may be missing for std and cmd; see Go issue #65816. | ||||||
|  | 	Module *Module | ||||||
|  | 
 | ||||||
|  | 	// -- The following fields are not part of the driver JSON schema. -- | ||||||
|  | 
 | ||||||
| 	// Types provides type information for the package. | 	// Types provides type information for the package. | ||||||
| 	// The NeedTypes LoadMode bit sets this field for packages matching the | 	// The NeedTypes LoadMode bit sets this field for packages matching the | ||||||
| 	// patterns; type information for dependencies may be missing or incomplete, | 	// patterns; type information for dependencies may be missing or incomplete, | ||||||
|  | @ -431,15 +493,15 @@ type Package struct { | ||||||
| 	// Each call to [Load] returns a consistent set of type | 	// Each call to [Load] returns a consistent set of type | ||||||
| 	// symbols, as defined by the comment at [types.Identical]. | 	// symbols, as defined by the comment at [types.Identical]. | ||||||
| 	// Avoid mixing type information from two or more calls to [Load]. | 	// Avoid mixing type information from two or more calls to [Load]. | ||||||
| 	Types *types.Package | 	Types *types.Package `json:"-"` | ||||||
| 
 | 
 | ||||||
| 	// Fset provides position information for Types, TypesInfo, and Syntax. | 	// Fset provides position information for Types, TypesInfo, and Syntax. | ||||||
| 	// It is set only when Types is set. | 	// It is set only when Types is set. | ||||||
| 	Fset *token.FileSet | 	Fset *token.FileSet `json:"-"` | ||||||
| 
 | 
 | ||||||
| 	// IllTyped indicates whether the package or any dependency contains errors. | 	// IllTyped indicates whether the package or any dependency contains errors. | ||||||
| 	// It is set only when Types is set. | 	// It is set only when Types is set. | ||||||
| 	IllTyped bool | 	IllTyped bool `json:"-"` | ||||||
| 
 | 
 | ||||||
| 	// Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. | 	// Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. | ||||||
| 	// | 	// | ||||||
|  | @ -449,26 +511,28 @@ type Package struct { | ||||||
| 	// | 	// | ||||||
| 	// Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are | 	// Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are | ||||||
| 	// removed.  If parsing returned nil, Syntax may be shorter than CompiledGoFiles. | 	// removed.  If parsing returned nil, Syntax may be shorter than CompiledGoFiles. | ||||||
| 	Syntax []*ast.File | 	Syntax []*ast.File `json:"-"` | ||||||
| 
 | 
 | ||||||
| 	// TypesInfo provides type information about the package's syntax trees. | 	// TypesInfo provides type information about the package's syntax trees. | ||||||
| 	// It is set only when Syntax is set. | 	// It is set only when Syntax is set. | ||||||
| 	TypesInfo *types.Info | 	TypesInfo *types.Info `json:"-"` | ||||||
| 
 | 
 | ||||||
| 	// TypesSizes provides the effective size function for types in TypesInfo. | 	// TypesSizes provides the effective size function for types in TypesInfo. | ||||||
| 	TypesSizes types.Sizes | 	TypesSizes types.Sizes `json:"-"` | ||||||
|  | 
 | ||||||
|  | 	// -- internal -- | ||||||
| 
 | 
 | ||||||
| 	// forTest is the package under test, if any. | 	// forTest is the package under test, if any. | ||||||
| 	forTest string | 	forTest string | ||||||
| 
 | 
 | ||||||
| 	// depsErrors is the DepsErrors field from the go list response, if any. | 	// depsErrors is the DepsErrors field from the go list response, if any. | ||||||
| 	depsErrors []*packagesinternal.PackageError | 	depsErrors []*packagesinternal.PackageError | ||||||
| 
 |  | ||||||
| 	// module is the module information for the package if it exists. |  | ||||||
| 	Module *Module |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Module provides module information for a package. | // Module provides module information for a package. | ||||||
|  | // | ||||||
|  | // It also defines part of the JSON schema of [DriverResponse]. | ||||||
|  | // See the package documentation for an overview. | ||||||
| type Module struct { | type Module struct { | ||||||
| 	Path      string       // module path | 	Path      string       // module path | ||||||
| 	Version   string       // module version | 	Version   string       // module version | ||||||
|  | @ -601,6 +665,7 @@ func (p *Package) UnmarshalJSON(b []byte) error { | ||||||
| 		OtherFiles:      flat.OtherFiles, | 		OtherFiles:      flat.OtherFiles, | ||||||
| 		EmbedFiles:      flat.EmbedFiles, | 		EmbedFiles:      flat.EmbedFiles, | ||||||
| 		EmbedPatterns:   flat.EmbedPatterns, | 		EmbedPatterns:   flat.EmbedPatterns, | ||||||
|  | 		IgnoredFiles:    flat.IgnoredFiles, | ||||||
| 		ExportFile:      flat.ExportFile, | 		ExportFile:      flat.ExportFile, | ||||||
| 	} | 	} | ||||||
| 	if len(flat.Imports) > 0 { | 	if len(flat.Imports) > 0 { | ||||||
|  |  | ||||||
							
								
								
									
										96
									
								
								vendor/golang.org/x/tools/internal/gocommand/invoke.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										96
									
								
								vendor/golang.org/x/tools/internal/gocommand/invoke.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -8,12 +8,14 @@ package gocommand | ||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"encoding/json" | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io" | 	"io" | ||||||
| 	"log" | 	"log" | ||||||
| 	"os" | 	"os" | ||||||
| 	"os/exec" | 	"os/exec" | ||||||
|  | 	"path/filepath" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 	"runtime" | 	"runtime" | ||||||
|  | @ -167,7 +169,9 @@ type Invocation struct { | ||||||
| 	// TODO(rfindley): remove, in favor of Args. | 	// TODO(rfindley): remove, in favor of Args. | ||||||
| 	ModFile string | 	ModFile string | ||||||
| 
 | 
 | ||||||
| 	// If Overlay is set, the go command is invoked with -overlay=Overlay. | 	// Overlay is the name of the JSON overlay file that describes | ||||||
|  | 	// unsaved editor buffers; see [WriteOverlays]. | ||||||
|  | 	// If set, the go command is invoked with -overlay=Overlay. | ||||||
| 	// TODO(rfindley): remove, in favor of Args. | 	// TODO(rfindley): remove, in favor of Args. | ||||||
| 	Overlay string | 	Overlay string | ||||||
| 
 | 
 | ||||||
|  | @ -255,12 +259,15 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { | ||||||
| 		waitDelay.Set(reflect.ValueOf(30 * time.Second)) | 		waitDelay.Set(reflect.ValueOf(30 * time.Second)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// On darwin the cwd gets resolved to the real path, which breaks anything that | 	// The cwd gets resolved to the real path. On Darwin, where | ||||||
| 	// expects the working directory to keep the original path, including the | 	// /tmp is a symlink, this breaks anything that expects the | ||||||
|  | 	// working directory to keep the original path, including the | ||||||
| 	// go command when dealing with modules. | 	// go command when dealing with modules. | ||||||
| 	// The Go stdlib has a special feature where if the cwd and the PWD are the | 	// | ||||||
| 	// same node then it trusts the PWD, so by setting it in the env for the child | 	// os.Getwd has a special feature where if the cwd and the PWD | ||||||
| 	// process we fix up all the paths returned by the go command. | 	// are the same node then it trusts the PWD, so by setting it | ||||||
|  | 	// in the env for the child process we fix up all the paths | ||||||
|  | 	// returned by the go command. | ||||||
| 	if !i.CleanEnv { | 	if !i.CleanEnv { | ||||||
| 		cmd.Env = os.Environ() | 		cmd.Env = os.Environ() | ||||||
| 	} | 	} | ||||||
|  | @ -351,6 +358,7 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	startTime := time.Now() | ||||||
| 	err = cmd.Start() | 	err = cmd.Start() | ||||||
| 	if stdoutW != nil { | 	if stdoutW != nil { | ||||||
| 		// The child process has inherited the pipe file, | 		// The child process has inherited the pipe file, | ||||||
|  | @ -377,7 +385,7 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { | ||||||
| 		case err := <-resChan: | 		case err := <-resChan: | ||||||
| 			return err | 			return err | ||||||
| 		case <-timer.C: | 		case <-timer.C: | ||||||
| 			HandleHangingGoCommand(cmd.Process) | 			HandleHangingGoCommand(startTime, cmd) | ||||||
| 		case <-ctx.Done(): | 		case <-ctx.Done(): | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
|  | @ -411,7 +419,7 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { | ||||||
| 	return <-resChan | 	return <-resChan | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func HandleHangingGoCommand(proc *os.Process) { | func HandleHangingGoCommand(start time.Time, cmd *exec.Cmd) { | ||||||
| 	switch runtime.GOOS { | 	switch runtime.GOOS { | ||||||
| 	case "linux", "darwin", "freebsd", "netbsd": | 	case "linux", "darwin", "freebsd", "netbsd": | ||||||
| 		fmt.Fprintln(os.Stderr, `DETECTED A HANGING GO COMMAND | 		fmt.Fprintln(os.Stderr, `DETECTED A HANGING GO COMMAND | ||||||
|  | @ -444,7 +452,7 @@ See golang/go#54461 for more details.`) | ||||||
| 			panic(fmt.Sprintf("running %s: %v", listFiles, err)) | 			panic(fmt.Sprintf("running %s: %v", listFiles, err)) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	panic(fmt.Sprintf("detected hanging go command (pid %d): see golang/go#54461 for more details", proc.Pid)) | 	panic(fmt.Sprintf("detected hanging go command (golang/go#54461); waited %s\n\tcommand:%s\n\tpid:%d", time.Since(start), cmd, cmd.Process.Pid)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func cmdDebugStr(cmd *exec.Cmd) string { | func cmdDebugStr(cmd *exec.Cmd) string { | ||||||
|  | @ -468,3 +476,73 @@ func cmdDebugStr(cmd *exec.Cmd) string { | ||||||
| 	} | 	} | ||||||
| 	return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) | 	return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // WriteOverlays writes each value in the overlay (see the Overlay | ||||||
|  | // field of go/packages.Config) to a temporary file and returns the name | ||||||
|  | // of a JSON file describing the mapping that is suitable for the "go | ||||||
|  | // list -overlay" flag. | ||||||
|  | // | ||||||
|  | // On success, the caller must call the cleanup function exactly once | ||||||
|  | // when the files are no longer needed. | ||||||
|  | func WriteOverlays(overlay map[string][]byte) (filename string, cleanup func(), err error) { | ||||||
|  | 	// Do nothing if there are no overlays in the config. | ||||||
|  | 	if len(overlay) == 0 { | ||||||
|  | 		return "", func() {}, nil | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	dir, err := os.MkdirTemp("", "gocommand-*") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// The caller must clean up this directory, | ||||||
|  | 	// unless this function returns an error. | ||||||
|  | 	// (The cleanup operand of each return | ||||||
|  | 	// statement below is ignored.) | ||||||
|  | 	defer func() { | ||||||
|  | 		cleanup = func() { | ||||||
|  | 			os.RemoveAll(dir) | ||||||
|  | 		} | ||||||
|  | 		if err != nil { | ||||||
|  | 			cleanup() | ||||||
|  | 			cleanup = nil | ||||||
|  | 		} | ||||||
|  | 	}() | ||||||
|  | 
 | ||||||
|  | 	// Write each map entry to a temporary file. | ||||||
|  | 	overlays := make(map[string]string) | ||||||
|  | 	for k, v := range overlay { | ||||||
|  | 		// Use a unique basename for each file (001-foo.go), | ||||||
|  | 		// to avoid creating nested directories. | ||||||
|  | 		base := fmt.Sprintf("%d-%s.go", 1+len(overlays), filepath.Base(k)) | ||||||
|  | 		filename := filepath.Join(dir, base) | ||||||
|  | 		err := os.WriteFile(filename, v, 0666) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return "", nil, err | ||||||
|  | 		} | ||||||
|  | 		overlays[k] = filename | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// Write the JSON overlay file that maps logical file names to temp files. | ||||||
|  | 	// | ||||||
|  | 	// OverlayJSON is the format overlay files are expected to be in. | ||||||
|  | 	// The Replace map maps from overlaid paths to replacement paths: | ||||||
|  | 	// the Go command will forward all reads trying to open | ||||||
|  | 	// each overlaid path to its replacement path, or consider the overlaid | ||||||
|  | 	// path not to exist if the replacement path is empty. | ||||||
|  | 	// | ||||||
|  | 	// From golang/go#39958. | ||||||
|  | 	type OverlayJSON struct { | ||||||
|  | 		Replace map[string]string `json:"replace,omitempty"` | ||||||
|  | 	} | ||||||
|  | 	b, err := json.Marshal(OverlayJSON{Replace: overlays}) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", nil, err | ||||||
|  | 	} | ||||||
|  | 	filename = filepath.Join(dir, "overlay.json") | ||||||
|  | 	if err := os.WriteFile(filename, b, 0666); err != nil { | ||||||
|  | 		return "", nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return filename, nil, nil | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										28
									
								
								vendor/golang.org/x/tools/internal/imports/fix.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/golang.org/x/tools/internal/imports/fix.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -104,7 +104,10 @@ type packageInfo struct { | ||||||
| 
 | 
 | ||||||
| // parseOtherFiles parses all the Go files in srcDir except filename, including | // parseOtherFiles parses all the Go files in srcDir except filename, including | ||||||
| // test files if filename looks like a test. | // test files if filename looks like a test. | ||||||
| func parseOtherFiles(fset *token.FileSet, srcDir, filename string) []*ast.File { | // | ||||||
|  | // It returns an error only if ctx is cancelled. Files with parse errors are | ||||||
|  | // ignored. | ||||||
|  | func parseOtherFiles(ctx context.Context, fset *token.FileSet, srcDir, filename string) ([]*ast.File, error) { | ||||||
| 	// This could use go/packages but it doesn't buy much, and it fails | 	// This could use go/packages but it doesn't buy much, and it fails | ||||||
| 	// with https://golang.org/issue/26296 in LoadFiles mode in some cases. | 	// with https://golang.org/issue/26296 in LoadFiles mode in some cases. | ||||||
| 	considerTests := strings.HasSuffix(filename, "_test.go") | 	considerTests := strings.HasSuffix(filename, "_test.go") | ||||||
|  | @ -112,11 +115,14 @@ func parseOtherFiles(fset *token.FileSet, srcDir, filename string) []*ast.File { | ||||||
| 	fileBase := filepath.Base(filename) | 	fileBase := filepath.Base(filename) | ||||||
| 	packageFileInfos, err := os.ReadDir(srcDir) | 	packageFileInfos, err := os.ReadDir(srcDir) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil | 		return nil, ctx.Err() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	var files []*ast.File | 	var files []*ast.File | ||||||
| 	for _, fi := range packageFileInfos { | 	for _, fi := range packageFileInfos { | ||||||
|  | 		if ctx.Err() != nil { | ||||||
|  | 			return nil, ctx.Err() | ||||||
|  | 		} | ||||||
| 		if fi.Name() == fileBase || !strings.HasSuffix(fi.Name(), ".go") { | 		if fi.Name() == fileBase || !strings.HasSuffix(fi.Name(), ".go") { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
|  | @ -132,7 +138,7 @@ func parseOtherFiles(fset *token.FileSet, srcDir, filename string) []*ast.File { | ||||||
| 		files = append(files, f) | 		files = append(files, f) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return files | 	return files, ctx.Err() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // addGlobals puts the names of package vars into the provided map. | // addGlobals puts the names of package vars into the provided map. | ||||||
|  | @ -557,12 +563,7 @@ func (p *pass) addCandidate(imp *ImportInfo, pkg *packageInfo) { | ||||||
| 
 | 
 | ||||||
| // fixImports adds and removes imports from f so that all its references are | // fixImports adds and removes imports from f so that all its references are | ||||||
| // satisfied and there are no unused imports. | // satisfied and there are no unused imports. | ||||||
| // | func fixImports(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error { | ||||||
| // This is declared as a variable rather than a function so goimports can |  | ||||||
| // easily be extended by adding a file with an init function. |  | ||||||
| var fixImports = fixImportsDefault |  | ||||||
| 
 |  | ||||||
| func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error { |  | ||||||
| 	fixes, err := getFixes(context.Background(), fset, f, filename, env) | 	fixes, err := getFixes(context.Background(), fset, f, filename, env) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
|  | @ -592,7 +593,10 @@ func getFixes(ctx context.Context, fset *token.FileSet, f *ast.File, filename st | ||||||
| 		return fixes, nil | 		return fixes, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	otherFiles := parseOtherFiles(fset, srcDir, filename) | 	otherFiles, err := parseOtherFiles(ctx, fset, srcDir, filename) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	// Second pass: add information from other files in the same package, | 	// Second pass: add information from other files in the same package, | ||||||
| 	// like their package vars and imports. | 	// like their package vars and imports. | ||||||
|  | @ -1192,7 +1196,7 @@ func addExternalCandidates(ctx context.Context, pass *pass, refs references, fil | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	if err = resolver.scan(context.Background(), callback); err != nil { | 	if err = resolver.scan(ctx, callback); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -1203,7 +1207,7 @@ func addExternalCandidates(ctx context.Context, pass *pass, refs references, fil | ||||||
| 	} | 	} | ||||||
| 	results := make(chan result, len(refs)) | 	results := make(chan result, len(refs)) | ||||||
| 
 | 
 | ||||||
| 	ctx, cancel := context.WithCancel(context.TODO()) | 	ctx, cancel := context.WithCancel(ctx) | ||||||
| 	var wg sync.WaitGroup | 	var wg sync.WaitGroup | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		cancel() | 		cancel() | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/tools/internal/versions/types_go122.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/tools/internal/versions/types_go122.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,7 +12,7 @@ import ( | ||||||
| 	"go/types" | 	"go/types" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // FileVersions returns a file's Go version. | // FileVersion returns a file's Go version. | ||||||
| // The reported version is an unknown Future version if a | // The reported version is an unknown Future version if a | ||||||
| // version cannot be determined. | // version cannot be determined. | ||||||
| func FileVersion(info *types.Info, file *ast.File) string { | func FileVersion(info *types.Info, file *ast.File) string { | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -482,7 +482,7 @@ github.com/mattn/go-isatty | ||||||
| ## explicit; go 1.21 | ## explicit; go 1.21 | ||||||
| github.com/microcosm-cc/bluemonday | github.com/microcosm-cc/bluemonday | ||||||
| github.com/microcosm-cc/bluemonday/css | github.com/microcosm-cc/bluemonday/css | ||||||
| # github.com/miekg/dns v1.1.59 | # github.com/miekg/dns v1.1.61 | ||||||
| ## explicit; go 1.19 | ## explicit; go 1.19 | ||||||
| github.com/miekg/dns | github.com/miekg/dns | ||||||
| # github.com/minio/md5-simd v1.1.2 | # github.com/minio/md5-simd v1.1.2 | ||||||
|  | @ -1079,7 +1079,7 @@ golang.org/x/image/tiff/lzw | ||||||
| golang.org/x/image/vp8 | golang.org/x/image/vp8 | ||||||
| golang.org/x/image/vp8l | golang.org/x/image/vp8l | ||||||
| golang.org/x/image/webp | golang.org/x/image/webp | ||||||
| # golang.org/x/mod v0.17.0 | # golang.org/x/mod v0.18.0 | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| golang.org/x/mod/internal/lazyregexp | golang.org/x/mod/internal/lazyregexp | ||||||
| golang.org/x/mod/module | golang.org/x/mod/module | ||||||
|  | @ -1140,7 +1140,7 @@ golang.org/x/text/transform | ||||||
| golang.org/x/text/unicode/bidi | golang.org/x/text/unicode/bidi | ||||||
| golang.org/x/text/unicode/norm | golang.org/x/text/unicode/norm | ||||||
| golang.org/x/text/width | golang.org/x/text/width | ||||||
| # golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d | # golang.org/x/tools v0.22.0 | ||||||
| ## explicit; go 1.19 | ## explicit; go 1.19 | ||||||
| golang.org/x/tools/go/ast/astutil | golang.org/x/tools/go/ast/astutil | ||||||
| golang.org/x/tools/go/gcexportdata | golang.org/x/tools/go/gcexportdata | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue