go.mod: golang.org/x/net v0.37.0
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
		| @@ -1,6 +1,6 @@ | ||||
| module github.com/containerd/containerd/api | ||||
|  | ||||
| go 1.21 | ||||
| go 1.23.0 | ||||
|  | ||||
| require ( | ||||
| 	github.com/containerd/ttrpc v1.2.5 | ||||
| @@ -17,7 +17,7 @@ require ( | ||||
| 	github.com/golang/protobuf v1.5.3 // indirect | ||||
| 	github.com/opencontainers/go-digest v1.0.0 // indirect | ||||
| 	github.com/sirupsen/logrus v1.9.3 // indirect | ||||
| 	golang.org/x/net v0.23.0 // indirect | ||||
| 	golang.org/x/sys v0.18.0 // indirect | ||||
| 	golang.org/x/text v0.14.0 // indirect | ||||
| 	golang.org/x/net v0.37.0 // indirect | ||||
| 	golang.org/x/sys v0.31.0 // indirect | ||||
| 	golang.org/x/text v0.23.0 // indirect | ||||
| ) | ||||
|   | ||||
							
								
								
									
										12
									
								
								api/go.sum
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								api/go.sum
									
									
									
									
									
								
							| @@ -42,8 +42,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn | ||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= | ||||
| golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||
| golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= | ||||
| golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | ||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| @@ -51,12 +51,12 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||
| golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||
| golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= | ||||
| golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||
| golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= | ||||
| golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
| golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||
|   | ||||
							
								
								
									
										14
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								go.mod
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| module github.com/containerd/containerd/v2 | ||||
|  | ||||
| go 1.22.0 | ||||
| go 1.23.0 | ||||
|  | ||||
| require ( | ||||
| 	dario.cat/mergo v1.0.1 | ||||
| @@ -73,8 +73,8 @@ require ( | ||||
| 	go.opentelemetry.io/otel/sdk v1.31.0 | ||||
| 	go.opentelemetry.io/otel/trace v1.31.0 | ||||
| 	golang.org/x/mod v0.21.0 | ||||
| 	golang.org/x/sync v0.10.0 | ||||
| 	golang.org/x/sys v0.28.0 | ||||
| 	golang.org/x/sync v0.12.0 | ||||
| 	golang.org/x/sys v0.31.0 | ||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 | ||||
| 	google.golang.org/grpc v1.68.1 | ||||
| 	google.golang.org/protobuf v1.35.2 | ||||
| @@ -135,12 +135,12 @@ require ( | ||||
| 	go.opencensus.io v0.24.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v1.31.0 // indirect | ||||
| 	go.opentelemetry.io/proto/otlp v1.3.1 // indirect | ||||
| 	golang.org/x/crypto v0.31.0 // indirect | ||||
| 	golang.org/x/crypto v0.36.0 // indirect | ||||
| 	golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 // indirect | ||||
| 	golang.org/x/net v0.33.0 // indirect | ||||
| 	golang.org/x/net v0.37.0 // indirect | ||||
| 	golang.org/x/oauth2 v0.23.0 // indirect | ||||
| 	golang.org/x/term v0.27.0 // indirect | ||||
| 	golang.org/x/text v0.21.0 // indirect | ||||
| 	golang.org/x/term v0.30.0 // indirect | ||||
| 	golang.org/x/text v0.23.0 // indirect | ||||
| 	golang.org/x/time v0.3.0 // indirect | ||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect | ||||
| 	gopkg.in/inf.v0 v0.9.1 // indirect | ||||
|   | ||||
							
								
								
									
										20
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								go.sum
									
									
									
									
									
								
							| @@ -378,8 +378,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY | ||||
| golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= | ||||
| golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= | ||||
| golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= | ||||
| golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= | ||||
| golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= | ||||
| golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= | ||||
| golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= | ||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||
| golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 h1:qCEDpW1G+vcj3Y7Fy52pEM1AWm3abj8WimGYejI3SC4= | ||||
| golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= | ||||
| @@ -413,8 +413,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= | ||||
| golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= | ||||
| golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= | ||||
| golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= | ||||
| golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= | ||||
| golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= | ||||
| golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= | ||||
| golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | ||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= | ||||
| golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= | ||||
| @@ -429,8 +429,9 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= | ||||
| golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||
| golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||
| golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= | ||||
| golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||
| golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= | ||||
| golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= | ||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| @@ -453,8 +454,9 @@ golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||
| golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||
| golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= | ||||
| golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||
| golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= | ||||
| golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | ||||
| golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| @@ -463,8 +465,9 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= | ||||
| golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= | ||||
| golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= | ||||
| golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= | ||||
| golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= | ||||
| golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= | ||||
| golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= | ||||
| golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | ||||
| @@ -473,8 +476,9 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||
| golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= | ||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||
| golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||
| golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= | ||||
| golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= | ||||
| golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= | ||||
| golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= | ||||
| golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= | ||||
| golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/net/http2/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/net/http2/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -60,7 +60,7 @@ func configFromServer(h1 *http.Server, h2 *Server) http2Config { | ||||
| 	return conf | ||||
| } | ||||
|  | ||||
| // configFromServer merges configuration settings from h2 and h2.t1.HTTP2 | ||||
| // configFromTransport merges configuration settings from h2 and h2.t1.HTTP2 | ||||
| // (the net/http Transport). | ||||
| func configFromTransport(h2 *Transport) http2Config { | ||||
| 	conf := http2Config{ | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/net/http2/config_go124.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/net/http2/config_go124.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ func fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) { | ||||
| 	fillNetHTTPConfig(conf, srv.HTTP2) | ||||
| } | ||||
|  | ||||
| // fillNetHTTPServerConfig sets fields in conf from tr.HTTP2. | ||||
| // fillNetHTTPTransportConfig sets fields in conf from tr.HTTP2. | ||||
| func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) { | ||||
| 	fillNetHTTPConfig(conf, tr.HTTP2) | ||||
| } | ||||
|   | ||||
							
								
								
									
										31
									
								
								vendor/golang.org/x/net/http2/http2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								vendor/golang.org/x/net/http2/http2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -38,7 +38,15 @@ var ( | ||||
| 	logFrameWrites bool | ||||
| 	logFrameReads  bool | ||||
| 	inTests        bool | ||||
| 	disableExtendedConnectProtocol bool | ||||
|  | ||||
| 	// Enabling extended CONNECT by causes browsers to attempt to use | ||||
| 	// WebSockets-over-HTTP/2. This results in problems when the server's websocket | ||||
| 	// package doesn't support extended CONNECT. | ||||
| 	// | ||||
| 	// Disable extended CONNECT by default for now. | ||||
| 	// | ||||
| 	// Issue #71128. | ||||
| 	disableExtendedConnectProtocol = true | ||||
| ) | ||||
|  | ||||
| func init() { | ||||
| @@ -51,8 +59,8 @@ func init() { | ||||
| 		logFrameWrites = true | ||||
| 		logFrameReads = true | ||||
| 	} | ||||
| 	if strings.Contains(e, "http2xconnect=0") { | ||||
| 		disableExtendedConnectProtocol = true | ||||
| 	if strings.Contains(e, "http2xconnect=1") { | ||||
| 		disableExtendedConnectProtocol = false | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -407,23 +415,6 @@ func (s *sorter) SortStrings(ss []string) { | ||||
| 	s.v = save | ||||
| } | ||||
|  | ||||
| // validPseudoPath reports whether v is a valid :path pseudo-header | ||||
| // value. It must be either: | ||||
| // | ||||
| //   - a non-empty string starting with '/' | ||||
| //   - the string '*', for OPTIONS requests. | ||||
| // | ||||
| // For now this is only used a quick check for deciding when to clean | ||||
| // up Opaque URLs before sending requests from the Transport. | ||||
| // See golang.org/issue/16847 | ||||
| // | ||||
| // We used to enforce that the path also didn't start with "//", but | ||||
| // Google's GFE accepts such paths and Chrome sends them, so ignore | ||||
| // that part of the spec. See golang.org/issue/19103. | ||||
| func validPseudoPath(v string) bool { | ||||
| 	return (len(v) > 0 && v[0] == '/') || v == "*" | ||||
| } | ||||
|  | ||||
| // incomparable is a zero-width, non-comparable type. Adding it to a struct | ||||
| // makes that struct also non-comparable, and generally doesn't add | ||||
| // any size (as long as it's first). | ||||
|   | ||||
							
								
								
									
										125
									
								
								vendor/golang.org/x/net/http2/server.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										125
									
								
								vendor/golang.org/x/net/http2/server.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -50,6 +50,7 @@ import ( | ||||
|  | ||||
| 	"golang.org/x/net/http/httpguts" | ||||
| 	"golang.org/x/net/http2/hpack" | ||||
| 	"golang.org/x/net/internal/httpcommon" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -812,8 +813,7 @@ const maxCachedCanonicalHeadersKeysSize = 2048 | ||||
|  | ||||
| func (sc *serverConn) canonicalHeader(v string) string { | ||||
| 	sc.serveG.check() | ||||
| 	buildCommonHeaderMapsOnce() | ||||
| 	cv, ok := commonCanonHeader[v] | ||||
| 	cv, ok := httpcommon.CachedCanonicalHeader(v) | ||||
| 	if ok { | ||||
| 		return cv | ||||
| 	} | ||||
| @@ -2233,25 +2233,25 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream | ||||
| func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) { | ||||
| 	sc.serveG.check() | ||||
|  | ||||
| 	rp := requestParam{ | ||||
| 		method:    f.PseudoValue("method"), | ||||
| 		scheme:    f.PseudoValue("scheme"), | ||||
| 		authority: f.PseudoValue("authority"), | ||||
| 		path:      f.PseudoValue("path"), | ||||
| 		protocol:  f.PseudoValue("protocol"), | ||||
| 	rp := httpcommon.ServerRequestParam{ | ||||
| 		Method:    f.PseudoValue("method"), | ||||
| 		Scheme:    f.PseudoValue("scheme"), | ||||
| 		Authority: f.PseudoValue("authority"), | ||||
| 		Path:      f.PseudoValue("path"), | ||||
| 		Protocol:  f.PseudoValue("protocol"), | ||||
| 	} | ||||
|  | ||||
| 	// extended connect is disabled, so we should not see :protocol | ||||
| 	if disableExtendedConnectProtocol && rp.protocol != "" { | ||||
| 	if disableExtendedConnectProtocol && rp.Protocol != "" { | ||||
| 		return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) | ||||
| 	} | ||||
|  | ||||
| 	isConnect := rp.method == "CONNECT" | ||||
| 	isConnect := rp.Method == "CONNECT" | ||||
| 	if isConnect { | ||||
| 		if rp.protocol == "" && (rp.path != "" || rp.scheme != "" || rp.authority == "") { | ||||
| 		if rp.Protocol == "" && (rp.Path != "" || rp.Scheme != "" || rp.Authority == "") { | ||||
| 			return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) | ||||
| 		} | ||||
| 	} else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") { | ||||
| 	} else if rp.Method == "" || rp.Path == "" || (rp.Scheme != "https" && rp.Scheme != "http") { | ||||
| 		// See 8.1.2.6 Malformed Requests and Responses: | ||||
| 		// | ||||
| 		// Malformed requests or responses that are detected | ||||
| @@ -2265,15 +2265,16 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res | ||||
| 		return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) | ||||
| 	} | ||||
|  | ||||
| 	rp.header = make(http.Header) | ||||
| 	header := make(http.Header) | ||||
| 	rp.Header = header | ||||
| 	for _, hf := range f.RegularFields() { | ||||
| 		rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value) | ||||
| 		header.Add(sc.canonicalHeader(hf.Name), hf.Value) | ||||
| 	} | ||||
| 	if rp.authority == "" { | ||||
| 		rp.authority = rp.header.Get("Host") | ||||
| 	if rp.Authority == "" { | ||||
| 		rp.Authority = header.Get("Host") | ||||
| 	} | ||||
| 	if rp.protocol != "" { | ||||
| 		rp.header.Set(":protocol", rp.protocol) | ||||
| 	if rp.Protocol != "" { | ||||
| 		header.Set(":protocol", rp.Protocol) | ||||
| 	} | ||||
|  | ||||
| 	rw, req, err := sc.newWriterAndRequestNoBody(st, rp) | ||||
| @@ -2282,7 +2283,7 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res | ||||
| 	} | ||||
| 	bodyOpen := !f.StreamEnded() | ||||
| 	if bodyOpen { | ||||
| 		if vv, ok := rp.header["Content-Length"]; ok { | ||||
| 		if vv, ok := rp.Header["Content-Length"]; ok { | ||||
| 			if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { | ||||
| 				req.ContentLength = int64(cl) | ||||
| 			} else { | ||||
| @@ -2298,84 +2299,38 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res | ||||
| 	return rw, req, nil | ||||
| } | ||||
|  | ||||
| type requestParam struct { | ||||
| 	method                  string | ||||
| 	scheme, authority, path string | ||||
| 	protocol                string | ||||
| 	header                  http.Header | ||||
| } | ||||
|  | ||||
| func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*responseWriter, *http.Request, error) { | ||||
| func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp httpcommon.ServerRequestParam) (*responseWriter, *http.Request, error) { | ||||
| 	sc.serveG.check() | ||||
|  | ||||
| 	var tlsState *tls.ConnectionState // nil if not scheme https | ||||
| 	if rp.scheme == "https" { | ||||
| 	if rp.Scheme == "https" { | ||||
| 		tlsState = sc.tlsState | ||||
| 	} | ||||
|  | ||||
| 	needsContinue := httpguts.HeaderValuesContainsToken(rp.header["Expect"], "100-continue") | ||||
| 	if needsContinue { | ||||
| 		rp.header.Del("Expect") | ||||
| 	} | ||||
| 	// Merge Cookie headers into one "; "-delimited value. | ||||
| 	if cookies := rp.header["Cookie"]; len(cookies) > 1 { | ||||
| 		rp.header.Set("Cookie", strings.Join(cookies, "; ")) | ||||
| 	} | ||||
|  | ||||
| 	// Setup Trailers | ||||
| 	var trailer http.Header | ||||
| 	for _, v := range rp.header["Trailer"] { | ||||
| 		for _, key := range strings.Split(v, ",") { | ||||
| 			key = http.CanonicalHeaderKey(textproto.TrimString(key)) | ||||
| 			switch key { | ||||
| 			case "Transfer-Encoding", "Trailer", "Content-Length": | ||||
| 				// Bogus. (copy of http1 rules) | ||||
| 				// Ignore. | ||||
| 			default: | ||||
| 				if trailer == nil { | ||||
| 					trailer = make(http.Header) | ||||
| 				} | ||||
| 				trailer[key] = nil | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	delete(rp.header, "Trailer") | ||||
|  | ||||
| 	var url_ *url.URL | ||||
| 	var requestURI string | ||||
| 	if rp.method == "CONNECT" && rp.protocol == "" { | ||||
| 		url_ = &url.URL{Host: rp.authority} | ||||
| 		requestURI = rp.authority // mimic HTTP/1 server behavior | ||||
| 	} else { | ||||
| 		var err error | ||||
| 		url_, err = url.ParseRequestURI(rp.path) | ||||
| 		if err != nil { | ||||
| 			return nil, nil, sc.countError("bad_path", streamError(st.id, ErrCodeProtocol)) | ||||
| 		} | ||||
| 		requestURI = rp.path | ||||
| 	res := httpcommon.NewServerRequest(rp) | ||||
| 	if res.InvalidReason != "" { | ||||
| 		return nil, nil, sc.countError(res.InvalidReason, streamError(st.id, ErrCodeProtocol)) | ||||
| 	} | ||||
|  | ||||
| 	body := &requestBody{ | ||||
| 		conn:          sc, | ||||
| 		stream:        st, | ||||
| 		needsContinue: needsContinue, | ||||
| 		needsContinue: res.NeedsContinue, | ||||
| 	} | ||||
| 	req := &http.Request{ | ||||
| 		Method:     rp.method, | ||||
| 		URL:        url_, | ||||
| 	req := (&http.Request{ | ||||
| 		Method:     rp.Method, | ||||
| 		URL:        res.URL, | ||||
| 		RemoteAddr: sc.remoteAddrStr, | ||||
| 		Header:     rp.header, | ||||
| 		RequestURI: requestURI, | ||||
| 		Header:     rp.Header, | ||||
| 		RequestURI: res.RequestURI, | ||||
| 		Proto:      "HTTP/2.0", | ||||
| 		ProtoMajor: 2, | ||||
| 		ProtoMinor: 0, | ||||
| 		TLS:        tlsState, | ||||
| 		Host:       rp.authority, | ||||
| 		Host:       rp.Authority, | ||||
| 		Body:       body, | ||||
| 		Trailer:    trailer, | ||||
| 	} | ||||
| 	req = req.WithContext(st.ctx) | ||||
|  | ||||
| 		Trailer:    res.Trailer, | ||||
| 	}).WithContext(st.ctx) | ||||
| 	rw := sc.newResponseWriter(st, req) | ||||
| 	return rw, req, nil | ||||
| } | ||||
| @@ -3270,12 +3225,12 @@ func (sc *serverConn) startPush(msg *startPushRequest) { | ||||
| 		// we start in "half closed (remote)" for simplicity. | ||||
| 		// See further comments at the definition of stateHalfClosedRemote. | ||||
| 		promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote) | ||||
| 		rw, req, err := sc.newWriterAndRequestNoBody(promised, requestParam{ | ||||
| 			method:    msg.method, | ||||
| 			scheme:    msg.url.Scheme, | ||||
| 			authority: msg.url.Host, | ||||
| 			path:      msg.url.RequestURI(), | ||||
| 			header:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE | ||||
| 		rw, req, err := sc.newWriterAndRequestNoBody(promised, httpcommon.ServerRequestParam{ | ||||
| 			Method:    msg.method, | ||||
| 			Scheme:    msg.url.Scheme, | ||||
| 			Authority: msg.url.Host, | ||||
| 			Path:      msg.url.RequestURI(), | ||||
| 			Header:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE | ||||
| 		}) | ||||
| 		if err != nil { | ||||
| 			// Should not happen, since we've already validated msg.url. | ||||
|   | ||||
							
								
								
									
										347
									
								
								vendor/golang.org/x/net/http2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										347
									
								
								vendor/golang.org/x/net/http2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -25,7 +25,6 @@ import ( | ||||
| 	"net/http" | ||||
| 	"net/http/httptrace" | ||||
| 	"net/textproto" | ||||
| 	"sort" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
| @@ -35,6 +34,7 @@ import ( | ||||
| 	"golang.org/x/net/http/httpguts" | ||||
| 	"golang.org/x/net/http2/hpack" | ||||
| 	"golang.org/x/net/idna" | ||||
| 	"golang.org/x/net/internal/httpcommon" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -375,6 +375,7 @@ type ClientConn struct { | ||||
| 	doNotReuse       bool       // whether conn is marked to not be reused for any future requests | ||||
| 	closing          bool | ||||
| 	closed           bool | ||||
| 	closedOnIdle     bool                     // true if conn was closed for idleness | ||||
| 	seenSettings     bool                     // true if we've seen a settings frame, false otherwise | ||||
| 	seenSettingsChan chan struct{}            // closed when seenSettings is true or frame reading fails | ||||
| 	wantSettingsAck  bool                     // we sent a SETTINGS frame and haven't heard back | ||||
| @@ -1089,10 +1090,12 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { | ||||
|  | ||||
| 	// If this connection has never been used for a request and is closed, | ||||
| 	// then let it take a request (which will fail). | ||||
| 	// If the conn was closed for idleness, we're racing the idle timer; | ||||
| 	// don't try to use the conn. (Issue #70515.) | ||||
| 	// | ||||
| 	// This avoids a situation where an error early in a connection's lifetime | ||||
| 	// goes unreported. | ||||
| 	if cc.nextStreamID == 1 && cc.streamsReserved == 0 && cc.closed { | ||||
| 	if cc.nextStreamID == 1 && cc.streamsReserved == 0 && cc.closed && !cc.closedOnIdle { | ||||
| 		st.canTakeNewRequest = true | ||||
| 	} | ||||
|  | ||||
| @@ -1155,6 +1158,7 @@ func (cc *ClientConn) closeIfIdle() { | ||||
| 		return | ||||
| 	} | ||||
| 	cc.closed = true | ||||
| 	cc.closedOnIdle = true | ||||
| 	nextID := cc.nextStreamID | ||||
| 	// TODO: do clients send GOAWAY too? maybe? Just Close: | ||||
| 	cc.mu.Unlock() | ||||
| @@ -1271,23 +1275,6 @@ func (cc *ClientConn) closeForLostPing() { | ||||
| // exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. | ||||
| var errRequestCanceled = errors.New("net/http: request canceled") | ||||
|  | ||||
| func commaSeparatedTrailers(req *http.Request) (string, error) { | ||||
| 	keys := make([]string, 0, len(req.Trailer)) | ||||
| 	for k := range req.Trailer { | ||||
| 		k = canonicalHeader(k) | ||||
| 		switch k { | ||||
| 		case "Transfer-Encoding", "Trailer", "Content-Length": | ||||
| 			return "", fmt.Errorf("invalid Trailer key %q", k) | ||||
| 		} | ||||
| 		keys = append(keys, k) | ||||
| 	} | ||||
| 	if len(keys) > 0 { | ||||
| 		sort.Strings(keys) | ||||
| 		return strings.Join(keys, ","), nil | ||||
| 	} | ||||
| 	return "", nil | ||||
| } | ||||
|  | ||||
| func (cc *ClientConn) responseHeaderTimeout() time.Duration { | ||||
| 	if cc.t.t1 != nil { | ||||
| 		return cc.t.t1.ResponseHeaderTimeout | ||||
| @@ -1299,22 +1286,6 @@ func (cc *ClientConn) responseHeaderTimeout() time.Duration { | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| // checkConnHeaders checks whether req has any invalid connection-level headers. | ||||
| // per RFC 7540 section 8.1.2.2: Connection-Specific Header Fields. | ||||
| // Certain headers are special-cased as okay but not transmitted later. | ||||
| func checkConnHeaders(req *http.Request) error { | ||||
| 	if v := req.Header.Get("Upgrade"); v != "" { | ||||
| 		return fmt.Errorf("http2: invalid Upgrade request header: %q", req.Header["Upgrade"]) | ||||
| 	} | ||||
| 	if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { | ||||
| 		return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv) | ||||
| 	} | ||||
| 	if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { | ||||
| 		return fmt.Errorf("http2: invalid Connection request header: %q", vv) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // actualContentLength returns a sanitized version of | ||||
| // req.ContentLength, where 0 actually means zero (not unknown) and -1 | ||||
| // means unknown. | ||||
| @@ -1360,25 +1331,7 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) | ||||
| 		donec:                make(chan struct{}), | ||||
| 	} | ||||
|  | ||||
| 	// TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? | ||||
| 	if !cc.t.disableCompression() && | ||||
| 		req.Header.Get("Accept-Encoding") == "" && | ||||
| 		req.Header.Get("Range") == "" && | ||||
| 		!cs.isHead { | ||||
| 		// Request gzip only, not deflate. Deflate is ambiguous and | ||||
| 		// not as universally supported anyway. | ||||
| 		// See: https://zlib.net/zlib_faq.html#faq39 | ||||
| 		// | ||||
| 		// Note that we don't request this for HEAD requests, | ||||
| 		// due to a bug in nginx: | ||||
| 		//   http://trac.nginx.org/nginx/ticket/358 | ||||
| 		//   https://golang.org/issue/5522 | ||||
| 		// | ||||
| 		// We don't request gzip if the request is for a range, since | ||||
| 		// auto-decoding a portion of a gzipped document will just fail | ||||
| 		// anyway. See https://golang.org/issue/8923 | ||||
| 		cs.requestedGzip = true | ||||
| 	} | ||||
| 	cs.requestedGzip = httpcommon.IsRequestGzip(req.Method, req.Header, cc.t.disableCompression()) | ||||
|  | ||||
| 	go cs.doRequest(req, streamf) | ||||
|  | ||||
| @@ -1492,10 +1445,6 @@ func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStre | ||||
| 	cc := cs.cc | ||||
| 	ctx := cs.ctx | ||||
|  | ||||
| 	if err := checkConnHeaders(req); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// wait for setting frames to be received, a server can change this value later, | ||||
| 	// but we just wait for the first settings frame | ||||
| 	var isExtendedConnect bool | ||||
| @@ -1659,26 +1608,39 @@ func (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error { | ||||
| 	// we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is | ||||
| 	// sent by writeRequestBody below, along with any Trailers, | ||||
| 	// again in form HEADERS{1}, CONTINUATION{0,}) | ||||
| 	trailers, err := commaSeparatedTrailers(req) | ||||
| 	cc.hbuf.Reset() | ||||
| 	res, err := encodeRequestHeaders(req, cs.requestedGzip, cc.peerMaxHeaderListSize, func(name, value string) { | ||||
| 		cc.writeHeader(name, value) | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	hasTrailers := trailers != "" | ||||
| 	contentLen := actualContentLength(req) | ||||
| 	hasBody := contentLen != 0 | ||||
| 	hdrs, err := cc.encodeHeaders(req, cs.requestedGzip, trailers, contentLen) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 		return fmt.Errorf("http2: %w", err) | ||||
| 	} | ||||
| 	hdrs := cc.hbuf.Bytes() | ||||
|  | ||||
| 	// Write the request. | ||||
| 	endStream := !hasBody && !hasTrailers | ||||
| 	endStream := !res.HasBody && !res.HasTrailers | ||||
| 	cs.sentHeaders = true | ||||
| 	err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) | ||||
| 	traceWroteHeaders(cs.trace) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func encodeRequestHeaders(req *http.Request, addGzipHeader bool, peerMaxHeaderListSize uint64, headerf func(name, value string)) (httpcommon.EncodeHeadersResult, error) { | ||||
| 	return httpcommon.EncodeHeaders(req.Context(), httpcommon.EncodeHeadersParam{ | ||||
| 		Request: httpcommon.Request{ | ||||
| 			Header:              req.Header, | ||||
| 			Trailer:             req.Trailer, | ||||
| 			URL:                 req.URL, | ||||
| 			Host:                req.Host, | ||||
| 			Method:              req.Method, | ||||
| 			ActualContentLength: actualContentLength(req), | ||||
| 		}, | ||||
| 		AddGzipHeader:         addGzipHeader, | ||||
| 		PeerMaxHeaderListSize: peerMaxHeaderListSize, | ||||
| 		DefaultUserAgent:      defaultUserAgent, | ||||
| 	}, headerf) | ||||
| } | ||||
|  | ||||
| // cleanupWriteRequest performs post-request tasks. | ||||
| // | ||||
| // If err (the result of writeRequest) is non-nil and the stream is not closed, | ||||
| @@ -2066,218 +2028,6 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func validateHeaders(hdrs http.Header) string { | ||||
| 	for k, vv := range hdrs { | ||||
| 		if !httpguts.ValidHeaderFieldName(k) && k != ":protocol" { | ||||
| 			return fmt.Sprintf("name %q", k) | ||||
| 		} | ||||
| 		for _, v := range vv { | ||||
| 			if !httpguts.ValidHeaderFieldValue(v) { | ||||
| 				// Don't include the value in the error, | ||||
| 				// because it may be sensitive. | ||||
| 				return fmt.Sprintf("value for header %q", k) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| var errNilRequestURL = errors.New("http2: Request.URI is nil") | ||||
|  | ||||
| func isNormalConnect(req *http.Request) bool { | ||||
| 	return req.Method == "CONNECT" && req.Header.Get(":protocol") == "" | ||||
| } | ||||
|  | ||||
| // requires cc.wmu be held. | ||||
| func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { | ||||
| 	cc.hbuf.Reset() | ||||
| 	if req.URL == nil { | ||||
| 		return nil, errNilRequestURL | ||||
| 	} | ||||
|  | ||||
| 	host := req.Host | ||||
| 	if host == "" { | ||||
| 		host = req.URL.Host | ||||
| 	} | ||||
| 	host, err := httpguts.PunycodeHostPort(host) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if !httpguts.ValidHostHeader(host) { | ||||
| 		return nil, errors.New("http2: invalid Host header") | ||||
| 	} | ||||
|  | ||||
| 	var path string | ||||
| 	if !isNormalConnect(req) { | ||||
| 		path = req.URL.RequestURI() | ||||
| 		if !validPseudoPath(path) { | ||||
| 			orig := path | ||||
| 			path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) | ||||
| 			if !validPseudoPath(path) { | ||||
| 				if req.URL.Opaque != "" { | ||||
| 					return nil, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) | ||||
| 				} else { | ||||
| 					return nil, fmt.Errorf("invalid request :path %q", orig) | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Check for any invalid headers+trailers and return an error before we | ||||
| 	// potentially pollute our hpack state. (We want to be able to | ||||
| 	// continue to reuse the hpack encoder for future requests) | ||||
| 	if err := validateHeaders(req.Header); err != "" { | ||||
| 		return nil, fmt.Errorf("invalid HTTP header %s", err) | ||||
| 	} | ||||
| 	if err := validateHeaders(req.Trailer); err != "" { | ||||
| 		return nil, fmt.Errorf("invalid HTTP trailer %s", err) | ||||
| 	} | ||||
|  | ||||
| 	enumerateHeaders := func(f func(name, value string)) { | ||||
| 		// 8.1.2.3 Request Pseudo-Header Fields | ||||
| 		// The :path pseudo-header field includes the path and query parts of the | ||||
| 		// target URI (the path-absolute production and optionally a '?' character | ||||
| 		// followed by the query production, see Sections 3.3 and 3.4 of | ||||
| 		// [RFC3986]). | ||||
| 		f(":authority", host) | ||||
| 		m := req.Method | ||||
| 		if m == "" { | ||||
| 			m = http.MethodGet | ||||
| 		} | ||||
| 		f(":method", m) | ||||
| 		if !isNormalConnect(req) { | ||||
| 			f(":path", path) | ||||
| 			f(":scheme", req.URL.Scheme) | ||||
| 		} | ||||
| 		if trailers != "" { | ||||
| 			f("trailer", trailers) | ||||
| 		} | ||||
|  | ||||
| 		var didUA bool | ||||
| 		for k, vv := range req.Header { | ||||
| 			if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { | ||||
| 				// Host is :authority, already sent. | ||||
| 				// Content-Length is automatic, set below. | ||||
| 				continue | ||||
| 			} else if asciiEqualFold(k, "connection") || | ||||
| 				asciiEqualFold(k, "proxy-connection") || | ||||
| 				asciiEqualFold(k, "transfer-encoding") || | ||||
| 				asciiEqualFold(k, "upgrade") || | ||||
| 				asciiEqualFold(k, "keep-alive") { | ||||
| 				// Per 8.1.2.2 Connection-Specific Header | ||||
| 				// Fields, don't send connection-specific | ||||
| 				// fields. We have already checked if any | ||||
| 				// are error-worthy so just ignore the rest. | ||||
| 				continue | ||||
| 			} else if asciiEqualFold(k, "user-agent") { | ||||
| 				// Match Go's http1 behavior: at most one | ||||
| 				// User-Agent. If set to nil or empty string, | ||||
| 				// then omit it. Otherwise if not mentioned, | ||||
| 				// include the default (below). | ||||
| 				didUA = true | ||||
| 				if len(vv) < 1 { | ||||
| 					continue | ||||
| 				} | ||||
| 				vv = vv[:1] | ||||
| 				if vv[0] == "" { | ||||
| 					continue | ||||
| 				} | ||||
| 			} else if asciiEqualFold(k, "cookie") { | ||||
| 				// Per 8.1.2.5 To allow for better compression efficiency, the | ||||
| 				// Cookie header field MAY be split into separate header fields, | ||||
| 				// each with one or more cookie-pairs. | ||||
| 				for _, v := range vv { | ||||
| 					for { | ||||
| 						p := strings.IndexByte(v, ';') | ||||
| 						if p < 0 { | ||||
| 							break | ||||
| 						} | ||||
| 						f("cookie", v[:p]) | ||||
| 						p++ | ||||
| 						// strip space after semicolon if any. | ||||
| 						for p+1 <= len(v) && v[p] == ' ' { | ||||
| 							p++ | ||||
| 						} | ||||
| 						v = v[p:] | ||||
| 					} | ||||
| 					if len(v) > 0 { | ||||
| 						f("cookie", v) | ||||
| 					} | ||||
| 				} | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			for _, v := range vv { | ||||
| 				f(k, v) | ||||
| 			} | ||||
| 		} | ||||
| 		if shouldSendReqContentLength(req.Method, contentLength) { | ||||
| 			f("content-length", strconv.FormatInt(contentLength, 10)) | ||||
| 		} | ||||
| 		if addGzipHeader { | ||||
| 			f("accept-encoding", "gzip") | ||||
| 		} | ||||
| 		if !didUA { | ||||
| 			f("user-agent", defaultUserAgent) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Do a first pass over the headers counting bytes to ensure | ||||
| 	// we don't exceed cc.peerMaxHeaderListSize. This is done as a | ||||
| 	// separate pass before encoding the headers to prevent | ||||
| 	// modifying the hpack state. | ||||
| 	hlSize := uint64(0) | ||||
| 	enumerateHeaders(func(name, value string) { | ||||
| 		hf := hpack.HeaderField{Name: name, Value: value} | ||||
| 		hlSize += uint64(hf.Size()) | ||||
| 	}) | ||||
|  | ||||
| 	if hlSize > cc.peerMaxHeaderListSize { | ||||
| 		return nil, errRequestHeaderListSize | ||||
| 	} | ||||
|  | ||||
| 	trace := httptrace.ContextClientTrace(req.Context()) | ||||
| 	traceHeaders := traceHasWroteHeaderField(trace) | ||||
|  | ||||
| 	// Header list size is ok. Write the headers. | ||||
| 	enumerateHeaders(func(name, value string) { | ||||
| 		name, ascii := lowerHeader(name) | ||||
| 		if !ascii { | ||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||
| 			return | ||||
| 		} | ||||
| 		cc.writeHeader(name, value) | ||||
| 		if traceHeaders { | ||||
| 			traceWroteHeaderField(trace, name, value) | ||||
| 		} | ||||
| 	}) | ||||
|  | ||||
| 	return cc.hbuf.Bytes(), nil | ||||
| } | ||||
|  | ||||
| // shouldSendReqContentLength reports whether the http2.Transport should send | ||||
| // a "content-length" request header. This logic is basically a copy of the net/http | ||||
| // transferWriter.shouldSendContentLength. | ||||
| // The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). | ||||
| // -1 means unknown. | ||||
| func shouldSendReqContentLength(method string, contentLength int64) bool { | ||||
| 	if contentLength > 0 { | ||||
| 		return true | ||||
| 	} | ||||
| 	if contentLength < 0 { | ||||
| 		return false | ||||
| 	} | ||||
| 	// For zero bodies, whether we send a content-length depends on the method. | ||||
| 	// It also kinda doesn't matter for http2 either way, with END_STREAM. | ||||
| 	switch method { | ||||
| 	case "POST", "PUT", "PATCH": | ||||
| 		return true | ||||
| 	default: | ||||
| 		return false | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // requires cc.wmu be held. | ||||
| func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { | ||||
| 	cc.hbuf.Reset() | ||||
| @@ -2294,7 +2044,7 @@ func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { | ||||
| 	} | ||||
|  | ||||
| 	for k, vv := range trailer { | ||||
| 		lowKey, ascii := lowerHeader(k) | ||||
| 		lowKey, ascii := httpcommon.LowerHeader(k) | ||||
| 		if !ascii { | ||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||
| @@ -2434,9 +2184,12 @@ func (rl *clientConnReadLoop) cleanup() { | ||||
| 	// This avoids a situation where new connections are constantly created, | ||||
| 	// added to the pool, fail, and are removed from the pool, without any error | ||||
| 	// being surfaced to the user. | ||||
| 	const unusedWaitTime = 5 * time.Second | ||||
| 	unusedWaitTime := 5 * time.Second | ||||
| 	if cc.idleTimeout > 0 && unusedWaitTime > cc.idleTimeout { | ||||
| 		unusedWaitTime = cc.idleTimeout | ||||
| 	} | ||||
| 	idleTime := cc.t.now().Sub(cc.lastActive) | ||||
| 	if atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime { | ||||
| 	if atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime && !cc.closedOnIdle { | ||||
| 		cc.idleTimer = cc.t.afterFunc(unusedWaitTime-idleTime, func() { | ||||
| 			cc.t.connPool().MarkDead(cc) | ||||
| 		}) | ||||
| @@ -2457,6 +2210,13 @@ func (rl *clientConnReadLoop) cleanup() { | ||||
| 	} | ||||
| 	cc.cond.Broadcast() | ||||
| 	cc.mu.Unlock() | ||||
|  | ||||
| 	if !cc.seenSettings { | ||||
| 		// If we have a pending request that wants extended CONNECT, | ||||
| 		// let it continue and fail with the connection error. | ||||
| 		cc.extendedConnectAllowed = true | ||||
| 		close(cc.seenSettingsChan) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // countReadFrameError calls Transport.CountError with a string | ||||
| @@ -2549,9 +2309,6 @@ func (rl *clientConnReadLoop) run() error { | ||||
| 			if VerboseLogs { | ||||
| 				cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err) | ||||
| 			} | ||||
| 			if !cc.seenSettings { | ||||
| 				close(cc.seenSettingsChan) | ||||
| 			} | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| @@ -2646,7 +2403,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra | ||||
| 		Status:     status + " " + http.StatusText(statusCode), | ||||
| 	} | ||||
| 	for _, hf := range regularFields { | ||||
| 		key := canonicalHeader(hf.Name) | ||||
| 		key := httpcommon.CanonicalHeader(hf.Name) | ||||
| 		if key == "Trailer" { | ||||
| 			t := res.Trailer | ||||
| 			if t == nil { | ||||
| @@ -2654,7 +2411,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra | ||||
| 				res.Trailer = t | ||||
| 			} | ||||
| 			foreachHeaderElement(hf.Value, func(v string) { | ||||
| 				t[canonicalHeader(v)] = nil | ||||
| 				t[httpcommon.CanonicalHeader(v)] = nil | ||||
| 			}) | ||||
| 		} else { | ||||
| 			vv := header[key] | ||||
| @@ -2778,7 +2535,7 @@ func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFr | ||||
|  | ||||
| 	trailer := make(http.Header) | ||||
| 	for _, hf := range f.RegularFields() { | ||||
| 		key := canonicalHeader(hf.Name) | ||||
| 		key := httpcommon.CanonicalHeader(hf.Name) | ||||
| 		trailer[key] = append(trailer[key], hf.Value) | ||||
| 	} | ||||
| 	cs.trailer = trailer | ||||
| @@ -3324,7 +3081,7 @@ func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, ping bool, | ||||
|  | ||||
| var ( | ||||
| 	errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit") | ||||
| 	errRequestHeaderListSize  = errors.New("http2: request header list larger than peer's advertised limit") | ||||
| 	errRequestHeaderListSize  = httpcommon.ErrRequestHeaderListSize | ||||
| ) | ||||
|  | ||||
| func (cc *ClientConn) logf(format string, args ...interface{}) { | ||||
| @@ -3508,16 +3265,6 @@ func traceFirstResponseByte(trace *httptrace.ClientTrace) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { | ||||
| 	return trace != nil && trace.WroteHeaderField != nil | ||||
| } | ||||
|  | ||||
| func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { | ||||
| 	if trace != nil && trace.WroteHeaderField != nil { | ||||
| 		trace.WroteHeaderField(k, []string{v}) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { | ||||
| 	if trace != nil { | ||||
| 		return trace.Got1xxResponse | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/net/http2/write.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/net/http2/write.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,6 +13,7 @@ import ( | ||||
|  | ||||
| 	"golang.org/x/net/http/httpguts" | ||||
| 	"golang.org/x/net/http2/hpack" | ||||
| 	"golang.org/x/net/internal/httpcommon" | ||||
| ) | ||||
|  | ||||
| // writeFramer is implemented by any type that is used to write frames. | ||||
| @@ -351,7 +352,7 @@ func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) { | ||||
| 	} | ||||
| 	for _, k := range keys { | ||||
| 		vv := h[k] | ||||
| 		k, ascii := lowerHeader(k) | ||||
| 		k, ascii := httpcommon.LowerHeader(k) | ||||
| 		if !ascii { | ||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||
|   | ||||
							
								
								
									
										53
									
								
								vendor/golang.org/x/net/internal/httpcommon/ascii.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								vendor/golang.org/x/net/internal/httpcommon/ascii.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| // Copyright 2025 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. | ||||
|  | ||||
| package httpcommon | ||||
|  | ||||
| import "strings" | ||||
|  | ||||
| // The HTTP protocols are defined in terms of ASCII, not Unicode. This file | ||||
| // contains helper functions which may use Unicode-aware functions which would | ||||
| // otherwise be unsafe and could introduce vulnerabilities if used improperly. | ||||
|  | ||||
| // asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t | ||||
| // are equal, ASCII-case-insensitively. | ||||
| func asciiEqualFold(s, t string) bool { | ||||
| 	if len(s) != len(t) { | ||||
| 		return false | ||||
| 	} | ||||
| 	for i := 0; i < len(s); i++ { | ||||
| 		if lower(s[i]) != lower(t[i]) { | ||||
| 			return false | ||||
| 		} | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // lower returns the ASCII lowercase version of b. | ||||
| func lower(b byte) byte { | ||||
| 	if 'A' <= b && b <= 'Z' { | ||||
| 		return b + ('a' - 'A') | ||||
| 	} | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| // isASCIIPrint returns whether s is ASCII and printable according to | ||||
| // https://tools.ietf.org/html/rfc20#section-4.2. | ||||
| func isASCIIPrint(s string) bool { | ||||
| 	for i := 0; i < len(s); i++ { | ||||
| 		if s[i] < ' ' || s[i] > '~' { | ||||
| 			return false | ||||
| 		} | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // asciiToLower returns the lowercase version of s if s is ASCII and printable, | ||||
| // and whether or not it was. | ||||
| func asciiToLower(s string) (lower string, ok bool) { | ||||
| 	if !isASCIIPrint(s) { | ||||
| 		return "", false | ||||
| 	} | ||||
| 	return strings.ToLower(s), true | ||||
| } | ||||
| @@ -1,11 +1,11 @@ | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Copyright 2025 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. | ||||
| 
 | ||||
| package http2 | ||||
| package httpcommon | ||||
| 
 | ||||
| import ( | ||||
| 	"net/http" | ||||
| 	"net/textproto" | ||||
| 	"sync" | ||||
| ) | ||||
| 
 | ||||
| @@ -82,13 +82,15 @@ func buildCommonHeaderMaps() { | ||||
| 	commonLowerHeader = make(map[string]string, len(common)) | ||||
| 	commonCanonHeader = make(map[string]string, len(common)) | ||||
| 	for _, v := range common { | ||||
| 		chk := http.CanonicalHeaderKey(v) | ||||
| 		chk := textproto.CanonicalMIMEHeaderKey(v) | ||||
| 		commonLowerHeader[chk] = v | ||||
| 		commonCanonHeader[v] = chk | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func lowerHeader(v string) (lower string, ascii bool) { | ||||
| // LowerHeader returns the lowercase form of a header name, | ||||
| // used on the wire for HTTP/2 and HTTP/3 requests. | ||||
| func LowerHeader(v string) (lower string, ascii bool) { | ||||
| 	buildCommonHeaderMapsOnce() | ||||
| 	if s, ok := commonLowerHeader[v]; ok { | ||||
| 		return s, true | ||||
| @@ -96,10 +98,18 @@ func lowerHeader(v string) (lower string, ascii bool) { | ||||
| 	return asciiToLower(v) | ||||
| } | ||||
| 
 | ||||
| func canonicalHeader(v string) string { | ||||
| // CanonicalHeader canonicalizes a header name. (For example, "host" becomes "Host".) | ||||
| func CanonicalHeader(v string) string { | ||||
| 	buildCommonHeaderMapsOnce() | ||||
| 	if s, ok := commonCanonHeader[v]; ok { | ||||
| 		return s | ||||
| 	} | ||||
| 	return http.CanonicalHeaderKey(v) | ||||
| 	return textproto.CanonicalMIMEHeaderKey(v) | ||||
| } | ||||
| 
 | ||||
| // CachedCanonicalHeader returns the canonical form of a well-known header name. | ||||
| func CachedCanonicalHeader(v string) (string, bool) { | ||||
| 	buildCommonHeaderMapsOnce() | ||||
| 	s, ok := commonCanonHeader[v] | ||||
| 	return s, ok | ||||
| } | ||||
							
								
								
									
										467
									
								
								vendor/golang.org/x/net/internal/httpcommon/request.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										467
									
								
								vendor/golang.org/x/net/internal/httpcommon/request.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,467 @@ | ||||
| // Copyright 2025 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. | ||||
|  | ||||
| package httpcommon | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"net/http/httptrace" | ||||
| 	"net/textproto" | ||||
| 	"net/url" | ||||
| 	"sort" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
|  | ||||
| 	"golang.org/x/net/http/httpguts" | ||||
| 	"golang.org/x/net/http2/hpack" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	ErrRequestHeaderListSize = errors.New("request header list larger than peer's advertised limit") | ||||
| ) | ||||
|  | ||||
| // Request is a subset of http.Request. | ||||
| // It'd be simpler to pass an *http.Request, of course, but we can't depend on net/http | ||||
| // without creating a dependency cycle. | ||||
| type Request struct { | ||||
| 	URL                 *url.URL | ||||
| 	Method              string | ||||
| 	Host                string | ||||
| 	Header              map[string][]string | ||||
| 	Trailer             map[string][]string | ||||
| 	ActualContentLength int64 // 0 means 0, -1 means unknown | ||||
| } | ||||
|  | ||||
| // EncodeHeadersParam is parameters to EncodeHeaders. | ||||
| type EncodeHeadersParam struct { | ||||
| 	Request Request | ||||
|  | ||||
| 	// AddGzipHeader indicates that an "accept-encoding: gzip" header should be | ||||
| 	// added to the request. | ||||
| 	AddGzipHeader bool | ||||
|  | ||||
| 	// PeerMaxHeaderListSize, when non-zero, is the peer's MAX_HEADER_LIST_SIZE setting. | ||||
| 	PeerMaxHeaderListSize uint64 | ||||
|  | ||||
| 	// DefaultUserAgent is the User-Agent header to send when the request | ||||
| 	// neither contains a User-Agent nor disables it. | ||||
| 	DefaultUserAgent string | ||||
| } | ||||
|  | ||||
| // EncodeHeadersParam is the result of EncodeHeaders. | ||||
| type EncodeHeadersResult struct { | ||||
| 	HasBody     bool | ||||
| 	HasTrailers bool | ||||
| } | ||||
|  | ||||
| // EncodeHeaders constructs request headers common to HTTP/2 and HTTP/3. | ||||
| // It validates a request and calls headerf with each pseudo-header and header | ||||
| // for the request. | ||||
| // The headerf function is called with the validated, canonicalized header name. | ||||
| func EncodeHeaders(ctx context.Context, param EncodeHeadersParam, headerf func(name, value string)) (res EncodeHeadersResult, _ error) { | ||||
| 	req := param.Request | ||||
|  | ||||
| 	// Check for invalid connection-level headers. | ||||
| 	if err := checkConnHeaders(req.Header); err != nil { | ||||
| 		return res, err | ||||
| 	} | ||||
|  | ||||
| 	if req.URL == nil { | ||||
| 		return res, errors.New("Request.URL is nil") | ||||
| 	} | ||||
|  | ||||
| 	host := req.Host | ||||
| 	if host == "" { | ||||
| 		host = req.URL.Host | ||||
| 	} | ||||
| 	host, err := httpguts.PunycodeHostPort(host) | ||||
| 	if err != nil { | ||||
| 		return res, err | ||||
| 	} | ||||
| 	if !httpguts.ValidHostHeader(host) { | ||||
| 		return res, errors.New("invalid Host header") | ||||
| 	} | ||||
|  | ||||
| 	// isNormalConnect is true if this is a non-extended CONNECT request. | ||||
| 	isNormalConnect := false | ||||
| 	var protocol string | ||||
| 	if vv := req.Header[":protocol"]; len(vv) > 0 { | ||||
| 		protocol = vv[0] | ||||
| 	} | ||||
| 	if req.Method == "CONNECT" && protocol == "" { | ||||
| 		isNormalConnect = true | ||||
| 	} else if protocol != "" && req.Method != "CONNECT" { | ||||
| 		return res, errors.New("invalid :protocol header in non-CONNECT request") | ||||
| 	} | ||||
|  | ||||
| 	// Validate the path, except for non-extended CONNECT requests which have no path. | ||||
| 	var path string | ||||
| 	if !isNormalConnect { | ||||
| 		path = req.URL.RequestURI() | ||||
| 		if !validPseudoPath(path) { | ||||
| 			orig := path | ||||
| 			path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) | ||||
| 			if !validPseudoPath(path) { | ||||
| 				if req.URL.Opaque != "" { | ||||
| 					return res, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) | ||||
| 				} else { | ||||
| 					return res, fmt.Errorf("invalid request :path %q", orig) | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Check for any invalid headers+trailers and return an error before we | ||||
| 	// potentially pollute our hpack state. (We want to be able to | ||||
| 	// continue to reuse the hpack encoder for future requests) | ||||
| 	if err := validateHeaders(req.Header); err != "" { | ||||
| 		return res, fmt.Errorf("invalid HTTP header %s", err) | ||||
| 	} | ||||
| 	if err := validateHeaders(req.Trailer); err != "" { | ||||
| 		return res, fmt.Errorf("invalid HTTP trailer %s", err) | ||||
| 	} | ||||
|  | ||||
| 	trailers, err := commaSeparatedTrailers(req.Trailer) | ||||
| 	if err != nil { | ||||
| 		return res, err | ||||
| 	} | ||||
|  | ||||
| 	enumerateHeaders := func(f func(name, value string)) { | ||||
| 		// 8.1.2.3 Request Pseudo-Header Fields | ||||
| 		// The :path pseudo-header field includes the path and query parts of the | ||||
| 		// target URI (the path-absolute production and optionally a '?' character | ||||
| 		// followed by the query production, see Sections 3.3 and 3.4 of | ||||
| 		// [RFC3986]). | ||||
| 		f(":authority", host) | ||||
| 		m := req.Method | ||||
| 		if m == "" { | ||||
| 			m = "GET" | ||||
| 		} | ||||
| 		f(":method", m) | ||||
| 		if !isNormalConnect { | ||||
| 			f(":path", path) | ||||
| 			f(":scheme", req.URL.Scheme) | ||||
| 		} | ||||
| 		if protocol != "" { | ||||
| 			f(":protocol", protocol) | ||||
| 		} | ||||
| 		if trailers != "" { | ||||
| 			f("trailer", trailers) | ||||
| 		} | ||||
|  | ||||
| 		var didUA bool | ||||
| 		for k, vv := range req.Header { | ||||
| 			if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { | ||||
| 				// Host is :authority, already sent. | ||||
| 				// Content-Length is automatic, set below. | ||||
| 				continue | ||||
| 			} else if asciiEqualFold(k, "connection") || | ||||
| 				asciiEqualFold(k, "proxy-connection") || | ||||
| 				asciiEqualFold(k, "transfer-encoding") || | ||||
| 				asciiEqualFold(k, "upgrade") || | ||||
| 				asciiEqualFold(k, "keep-alive") { | ||||
| 				// Per 8.1.2.2 Connection-Specific Header | ||||
| 				// Fields, don't send connection-specific | ||||
| 				// fields. We have already checked if any | ||||
| 				// are error-worthy so just ignore the rest. | ||||
| 				continue | ||||
| 			} else if asciiEqualFold(k, "user-agent") { | ||||
| 				// Match Go's http1 behavior: at most one | ||||
| 				// User-Agent. If set to nil or empty string, | ||||
| 				// then omit it. Otherwise if not mentioned, | ||||
| 				// include the default (below). | ||||
| 				didUA = true | ||||
| 				if len(vv) < 1 { | ||||
| 					continue | ||||
| 				} | ||||
| 				vv = vv[:1] | ||||
| 				if vv[0] == "" { | ||||
| 					continue | ||||
| 				} | ||||
| 			} else if asciiEqualFold(k, "cookie") { | ||||
| 				// Per 8.1.2.5 To allow for better compression efficiency, the | ||||
| 				// Cookie header field MAY be split into separate header fields, | ||||
| 				// each with one or more cookie-pairs. | ||||
| 				for _, v := range vv { | ||||
| 					for { | ||||
| 						p := strings.IndexByte(v, ';') | ||||
| 						if p < 0 { | ||||
| 							break | ||||
| 						} | ||||
| 						f("cookie", v[:p]) | ||||
| 						p++ | ||||
| 						// strip space after semicolon if any. | ||||
| 						for p+1 <= len(v) && v[p] == ' ' { | ||||
| 							p++ | ||||
| 						} | ||||
| 						v = v[p:] | ||||
| 					} | ||||
| 					if len(v) > 0 { | ||||
| 						f("cookie", v) | ||||
| 					} | ||||
| 				} | ||||
| 				continue | ||||
| 			} else if k == ":protocol" { | ||||
| 				// :protocol pseudo-header was already sent above. | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			for _, v := range vv { | ||||
| 				f(k, v) | ||||
| 			} | ||||
| 		} | ||||
| 		if shouldSendReqContentLength(req.Method, req.ActualContentLength) { | ||||
| 			f("content-length", strconv.FormatInt(req.ActualContentLength, 10)) | ||||
| 		} | ||||
| 		if param.AddGzipHeader { | ||||
| 			f("accept-encoding", "gzip") | ||||
| 		} | ||||
| 		if !didUA { | ||||
| 			f("user-agent", param.DefaultUserAgent) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Do a first pass over the headers counting bytes to ensure | ||||
| 	// we don't exceed cc.peerMaxHeaderListSize. This is done as a | ||||
| 	// separate pass before encoding the headers to prevent | ||||
| 	// modifying the hpack state. | ||||
| 	if param.PeerMaxHeaderListSize > 0 { | ||||
| 		hlSize := uint64(0) | ||||
| 		enumerateHeaders(func(name, value string) { | ||||
| 			hf := hpack.HeaderField{Name: name, Value: value} | ||||
| 			hlSize += uint64(hf.Size()) | ||||
| 		}) | ||||
|  | ||||
| 		if hlSize > param.PeerMaxHeaderListSize { | ||||
| 			return res, ErrRequestHeaderListSize | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	trace := httptrace.ContextClientTrace(ctx) | ||||
|  | ||||
| 	// Header list size is ok. Write the headers. | ||||
| 	enumerateHeaders(func(name, value string) { | ||||
| 		name, ascii := LowerHeader(name) | ||||
| 		if !ascii { | ||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||
| 			return | ||||
| 		} | ||||
|  | ||||
| 		headerf(name, value) | ||||
|  | ||||
| 		if trace != nil && trace.WroteHeaderField != nil { | ||||
| 			trace.WroteHeaderField(name, []string{value}) | ||||
| 		} | ||||
| 	}) | ||||
|  | ||||
| 	res.HasBody = req.ActualContentLength != 0 | ||||
| 	res.HasTrailers = trailers != "" | ||||
| 	return res, nil | ||||
| } | ||||
|  | ||||
| // IsRequestGzip reports whether we should add an Accept-Encoding: gzip header | ||||
| // for a request. | ||||
| func IsRequestGzip(method string, header map[string][]string, disableCompression bool) bool { | ||||
| 	// TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? | ||||
| 	if !disableCompression && | ||||
| 		len(header["Accept-Encoding"]) == 0 && | ||||
| 		len(header["Range"]) == 0 && | ||||
| 		method != "HEAD" { | ||||
| 		// Request gzip only, not deflate. Deflate is ambiguous and | ||||
| 		// not as universally supported anyway. | ||||
| 		// See: https://zlib.net/zlib_faq.html#faq39 | ||||
| 		// | ||||
| 		// Note that we don't request this for HEAD requests, | ||||
| 		// due to a bug in nginx: | ||||
| 		//   http://trac.nginx.org/nginx/ticket/358 | ||||
| 		//   https://golang.org/issue/5522 | ||||
| 		// | ||||
| 		// We don't request gzip if the request is for a range, since | ||||
| 		// auto-decoding a portion of a gzipped document will just fail | ||||
| 		// anyway. See https://golang.org/issue/8923 | ||||
| 		return true | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| // checkConnHeaders checks whether req has any invalid connection-level headers. | ||||
| // | ||||
| // https://www.rfc-editor.org/rfc/rfc9114.html#section-4.2-3 | ||||
| // https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.2-1 | ||||
| // | ||||
| // Certain headers are special-cased as okay but not transmitted later. | ||||
| // For example, we allow "Transfer-Encoding: chunked", but drop the header when encoding. | ||||
| func checkConnHeaders(h map[string][]string) error { | ||||
| 	if vv := h["Upgrade"]; len(vv) > 0 && (vv[0] != "" && vv[0] != "chunked") { | ||||
| 		return fmt.Errorf("invalid Upgrade request header: %q", vv) | ||||
| 	} | ||||
| 	if vv := h["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { | ||||
| 		return fmt.Errorf("invalid Transfer-Encoding request header: %q", vv) | ||||
| 	} | ||||
| 	if vv := h["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { | ||||
| 		return fmt.Errorf("invalid Connection request header: %q", vv) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func commaSeparatedTrailers(trailer map[string][]string) (string, error) { | ||||
| 	keys := make([]string, 0, len(trailer)) | ||||
| 	for k := range trailer { | ||||
| 		k = CanonicalHeader(k) | ||||
| 		switch k { | ||||
| 		case "Transfer-Encoding", "Trailer", "Content-Length": | ||||
| 			return "", fmt.Errorf("invalid Trailer key %q", k) | ||||
| 		} | ||||
| 		keys = append(keys, k) | ||||
| 	} | ||||
| 	if len(keys) > 0 { | ||||
| 		sort.Strings(keys) | ||||
| 		return strings.Join(keys, ","), nil | ||||
| 	} | ||||
| 	return "", nil | ||||
| } | ||||
|  | ||||
| // validPseudoPath reports whether v is a valid :path pseudo-header | ||||
| // value. It must be either: | ||||
| // | ||||
| //   - a non-empty string starting with '/' | ||||
| //   - the string '*', for OPTIONS requests. | ||||
| // | ||||
| // For now this is only used a quick check for deciding when to clean | ||||
| // up Opaque URLs before sending requests from the Transport. | ||||
| // See golang.org/issue/16847 | ||||
| // | ||||
| // We used to enforce that the path also didn't start with "//", but | ||||
| // Google's GFE accepts such paths and Chrome sends them, so ignore | ||||
| // that part of the spec. See golang.org/issue/19103. | ||||
| func validPseudoPath(v string) bool { | ||||
| 	return (len(v) > 0 && v[0] == '/') || v == "*" | ||||
| } | ||||
|  | ||||
| func validateHeaders(hdrs map[string][]string) string { | ||||
| 	for k, vv := range hdrs { | ||||
| 		if !httpguts.ValidHeaderFieldName(k) && k != ":protocol" { | ||||
| 			return fmt.Sprintf("name %q", k) | ||||
| 		} | ||||
| 		for _, v := range vv { | ||||
| 			if !httpguts.ValidHeaderFieldValue(v) { | ||||
| 				// Don't include the value in the error, | ||||
| 				// because it may be sensitive. | ||||
| 				return fmt.Sprintf("value for header %q", k) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| // shouldSendReqContentLength reports whether we should send | ||||
| // a "content-length" request header. This logic is basically a copy of the net/http | ||||
| // transferWriter.shouldSendContentLength. | ||||
| // The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). | ||||
| // -1 means unknown. | ||||
| func shouldSendReqContentLength(method string, contentLength int64) bool { | ||||
| 	if contentLength > 0 { | ||||
| 		return true | ||||
| 	} | ||||
| 	if contentLength < 0 { | ||||
| 		return false | ||||
| 	} | ||||
| 	// For zero bodies, whether we send a content-length depends on the method. | ||||
| 	// It also kinda doesn't matter for http2 either way, with END_STREAM. | ||||
| 	switch method { | ||||
| 	case "POST", "PUT", "PATCH": | ||||
| 		return true | ||||
| 	default: | ||||
| 		return false | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // ServerRequestParam is parameters to NewServerRequest. | ||||
| type ServerRequestParam struct { | ||||
| 	Method                  string | ||||
| 	Scheme, Authority, Path string | ||||
| 	Protocol                string | ||||
| 	Header                  map[string][]string | ||||
| } | ||||
|  | ||||
| // ServerRequestResult is the result of NewServerRequest. | ||||
| type ServerRequestResult struct { | ||||
| 	// Various http.Request fields. | ||||
| 	URL        *url.URL | ||||
| 	RequestURI string | ||||
| 	Trailer    map[string][]string | ||||
|  | ||||
| 	NeedsContinue bool // client provided an "Expect: 100-continue" header | ||||
|  | ||||
| 	// If the request should be rejected, this is a short string suitable for passing | ||||
| 	// to the http2 package's CountError function. | ||||
| 	// It might be a bit odd to return errors this way rather than returing an error, | ||||
| 	// but this ensures we don't forget to include a CountError reason. | ||||
| 	InvalidReason string | ||||
| } | ||||
|  | ||||
| func NewServerRequest(rp ServerRequestParam) ServerRequestResult { | ||||
| 	needsContinue := httpguts.HeaderValuesContainsToken(rp.Header["Expect"], "100-continue") | ||||
| 	if needsContinue { | ||||
| 		delete(rp.Header, "Expect") | ||||
| 	} | ||||
| 	// Merge Cookie headers into one "; "-delimited value. | ||||
| 	if cookies := rp.Header["Cookie"]; len(cookies) > 1 { | ||||
| 		rp.Header["Cookie"] = []string{strings.Join(cookies, "; ")} | ||||
| 	} | ||||
|  | ||||
| 	// Setup Trailers | ||||
| 	var trailer map[string][]string | ||||
| 	for _, v := range rp.Header["Trailer"] { | ||||
| 		for _, key := range strings.Split(v, ",") { | ||||
| 			key = textproto.CanonicalMIMEHeaderKey(textproto.TrimString(key)) | ||||
| 			switch key { | ||||
| 			case "Transfer-Encoding", "Trailer", "Content-Length": | ||||
| 				// Bogus. (copy of http1 rules) | ||||
| 				// Ignore. | ||||
| 			default: | ||||
| 				if trailer == nil { | ||||
| 					trailer = make(map[string][]string) | ||||
| 				} | ||||
| 				trailer[key] = nil | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	delete(rp.Header, "Trailer") | ||||
|  | ||||
| 	// "':authority' MUST NOT include the deprecated userinfo subcomponent | ||||
| 	// for "http" or "https" schemed URIs." | ||||
| 	// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.3.1-2.3.8 | ||||
| 	if strings.IndexByte(rp.Authority, '@') != -1 && (rp.Scheme == "http" || rp.Scheme == "https") { | ||||
| 		return ServerRequestResult{ | ||||
| 			InvalidReason: "userinfo_in_authority", | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	var url_ *url.URL | ||||
| 	var requestURI string | ||||
| 	if rp.Method == "CONNECT" && rp.Protocol == "" { | ||||
| 		url_ = &url.URL{Host: rp.Authority} | ||||
| 		requestURI = rp.Authority // mimic HTTP/1 server behavior | ||||
| 	} else { | ||||
| 		var err error | ||||
| 		url_, err = url.ParseRequestURI(rp.Path) | ||||
| 		if err != nil { | ||||
| 			return ServerRequestResult{ | ||||
| 				InvalidReason: "bad_path", | ||||
| 			} | ||||
| 		} | ||||
| 		requestURI = rp.Path | ||||
| 	} | ||||
|  | ||||
| 	return ServerRequestResult{ | ||||
| 		URL:           url_, | ||||
| 		NeedsContinue: needsContinue, | ||||
| 		RequestURI:    requestURI, | ||||
| 		Trailer:       trailer, | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										8
									
								
								vendor/golang.org/x/net/proxy/per_host.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/golang.org/x/net/proxy/per_host.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,6 +7,7 @@ package proxy | ||||
| import ( | ||||
| 	"context" | ||||
| 	"net" | ||||
| 	"net/netip" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| @@ -57,7 +58,8 @@ func (p *PerHost) DialContext(ctx context.Context, network, addr string) (c net. | ||||
| } | ||||
|  | ||||
| func (p *PerHost) dialerForRequest(host string) Dialer { | ||||
| 	if ip := net.ParseIP(host); ip != nil { | ||||
| 	if nip, err := netip.ParseAddr(host); err == nil { | ||||
| 		ip := net.IP(nip.AsSlice()) | ||||
| 		for _, net := range p.bypassNetworks { | ||||
| 			if net.Contains(ip) { | ||||
| 				return p.bypass | ||||
| @@ -108,8 +110,8 @@ func (p *PerHost) AddFromString(s string) { | ||||
| 			} | ||||
| 			continue | ||||
| 		} | ||||
| 		if ip := net.ParseIP(host); ip != nil { | ||||
| 			p.AddIP(ip) | ||||
| 		if nip, err := netip.ParseAddr(host); err == nil { | ||||
| 			p.AddIP(net.IP(nip.AsSlice())) | ||||
| 			continue | ||||
| 		} | ||||
| 		if strings.HasPrefix(host, "*.") { | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sync/errgroup/errgroup.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sync/errgroup/errgroup.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -46,7 +46,7 @@ func (g *Group) done() { | ||||
| // returns a non-nil error or the first time Wait returns, whichever occurs | ||||
| // first. | ||||
| func WithContext(ctx context.Context) (*Group, context.Context) { | ||||
| 	ctx, cancel := withCancelCause(ctx) | ||||
| 	ctx, cancel := context.WithCancelCause(ctx) | ||||
| 	return &Group{cancel: cancel}, ctx | ||||
| } | ||||
|  | ||||
| @@ -118,6 +118,7 @@ func (g *Group) TryGo(f func() error) bool { | ||||
|  | ||||
| // SetLimit limits the number of active goroutines in this group to at most n. | ||||
| // A negative value indicates no limit. | ||||
| // A limit of zero will prevent any new goroutines from being added. | ||||
| // | ||||
| // Any subsequent call to the Go method will block until it can add an active | ||||
| // goroutine without exceeding the configured limit. | ||||
|   | ||||
							
								
								
									
										13
									
								
								vendor/golang.org/x/sync/errgroup/go120.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/golang.org/x/sync/errgroup/go120.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,13 +0,0 @@ | ||||
| // Copyright 2023 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. | ||||
|  | ||||
| //go:build go1.20 | ||||
|  | ||||
| package errgroup | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| func withCancelCause(parent context.Context) (context.Context, func(error)) { | ||||
| 	return context.WithCancelCause(parent) | ||||
| } | ||||
							
								
								
									
										14
									
								
								vendor/golang.org/x/sync/errgroup/pre_go120.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/golang.org/x/sync/errgroup/pre_go120.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,14 +0,0 @@ | ||||
| // Copyright 2023 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. | ||||
|  | ||||
| //go:build !go1.20 | ||||
|  | ||||
| package errgroup | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| func withCancelCause(parent context.Context) (context.Context, func(error)) { | ||||
| 	ctx, cancel := context.WithCancel(parent) | ||||
| 	return ctx, func(error) { cancel() } | ||||
| } | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/cpu/cpu.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/cpu/cpu.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -72,6 +72,9 @@ var X86 struct { | ||||
| 	HasSSSE3            bool // Supplemental streaming SIMD extension 3 | ||||
| 	HasSSE41            bool // Streaming SIMD extension 4 and 4.1 | ||||
| 	HasSSE42            bool // Streaming SIMD extension 4 and 4.2 | ||||
| 	HasAVXIFMA          bool // Advanced vector extension Integer Fused Multiply Add | ||||
| 	HasAVXVNNI          bool // Advanced vector extension Vector Neural Network Instructions | ||||
| 	HasAVXVNNIInt8      bool // Advanced vector extension Vector Neural Network Int8 instructions | ||||
| 	_                   CacheLinePad | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										21
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -53,6 +53,9 @@ func initOptions() { | ||||
| 		{Name: "sse41", Feature: &X86.HasSSE41}, | ||||
| 		{Name: "sse42", Feature: &X86.HasSSE42}, | ||||
| 		{Name: "ssse3", Feature: &X86.HasSSSE3}, | ||||
| 		{Name: "avxifma", Feature: &X86.HasAVXIFMA}, | ||||
| 		{Name: "avxvnni", Feature: &X86.HasAVXVNNI}, | ||||
| 		{Name: "avxvnniint8", Feature: &X86.HasAVXVNNIInt8}, | ||||
|  | ||||
| 		// These capabilities should always be enabled on amd64: | ||||
| 		{Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, | ||||
| @@ -106,7 +109,7 @@ func archInit() { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	_, ebx7, ecx7, edx7 := cpuid(7, 0) | ||||
| 	eax7, ebx7, ecx7, edx7 := cpuid(7, 0) | ||||
| 	X86.HasBMI1 = isSet(3, ebx7) | ||||
| 	X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX | ||||
| 	X86.HasBMI2 = isSet(8, ebx7) | ||||
| @@ -134,14 +137,24 @@ func archInit() { | ||||
| 		X86.HasAVX512VAES = isSet(9, ecx7) | ||||
| 		X86.HasAVX512VBMI2 = isSet(6, ecx7) | ||||
| 		X86.HasAVX512BITALG = isSet(12, ecx7) | ||||
|  | ||||
| 		eax71, _, _, _ := cpuid(7, 1) | ||||
| 		X86.HasAVX512BF16 = isSet(5, eax71) | ||||
| 	} | ||||
|  | ||||
| 	X86.HasAMXTile = isSet(24, edx7) | ||||
| 	X86.HasAMXInt8 = isSet(25, edx7) | ||||
| 	X86.HasAMXBF16 = isSet(22, edx7) | ||||
|  | ||||
| 	// These features depend on the second level of extended features. | ||||
| 	if eax7 >= 1 { | ||||
| 		eax71, _, _, edx71 := cpuid(7, 1) | ||||
| 		if X86.HasAVX512 { | ||||
| 			X86.HasAVX512BF16 = isSet(5, eax71) | ||||
| 		} | ||||
| 		if X86.HasAVX { | ||||
| 			X86.HasAVXIFMA = isSet(23, eax71) | ||||
| 			X86.HasAVXVNNI = isSet(4, eax71) | ||||
| 			X86.HasAVXVNNIInt8 = isSet(4, edx71) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func isSet(bitpos uint, value uint32) bool { | ||||
|   | ||||
							
								
								
									
										36
									
								
								vendor/golang.org/x/sys/unix/auxv.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								vendor/golang.org/x/sys/unix/auxv.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| // Copyright 2025 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. | ||||
|  | ||||
| //go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) | ||||
|  | ||||
| package unix | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| //go:linkname runtime_getAuxv runtime.getAuxv | ||||
| func runtime_getAuxv() []uintptr | ||||
|  | ||||
| // Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. | ||||
| // The returned slice is always a fresh copy, owned by the caller. | ||||
| // It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, | ||||
| // which happens in some locked-down environments and build modes. | ||||
| func Auxv() ([][2]uintptr, error) { | ||||
| 	vec := runtime_getAuxv() | ||||
| 	vecLen := len(vec) | ||||
|  | ||||
| 	if vecLen == 0 { | ||||
| 		return nil, syscall.ENOENT | ||||
| 	} | ||||
|  | ||||
| 	if vecLen%2 != 0 { | ||||
| 		return nil, syscall.EINVAL | ||||
| 	} | ||||
|  | ||||
| 	result := make([]uintptr, vecLen) | ||||
| 	copy(result, vec) | ||||
| 	return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil | ||||
| } | ||||
							
								
								
									
										13
									
								
								vendor/golang.org/x/sys/unix/auxv_unsupported.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/golang.org/x/sys/unix/auxv_unsupported.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| // Copyright 2025 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. | ||||
|  | ||||
| //go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) | ||||
|  | ||||
| package unix | ||||
|  | ||||
| import "syscall" | ||||
|  | ||||
| func Auxv() ([][2]uintptr, error) { | ||||
| 	return nil, syscall.ENOTSUP | ||||
| } | ||||
							
								
								
									
										12
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -246,6 +246,18 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | ||||
| 	return sendfile(outfd, infd, offset, count) | ||||
| } | ||||
|  | ||||
| func Dup3(oldfd, newfd, flags int) error { | ||||
| 	if oldfd == newfd || flags&^O_CLOEXEC != 0 { | ||||
| 		return EINVAL | ||||
| 	} | ||||
| 	how := F_DUP2FD | ||||
| 	if flags&O_CLOEXEC != 0 { | ||||
| 		how = F_DUP2FD_CLOEXEC | ||||
| 	} | ||||
| 	_, err := fcntl(oldfd, how, newfd) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Exposed directly | ||||
|  */ | ||||
|   | ||||
							
								
								
									
										87
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										87
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1102,3 +1102,90 @@ func (s *Strioctl) SetInt(i int) { | ||||
| func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { | ||||
| 	return ioctlPtrRet(fd, req, unsafe.Pointer(s)) | ||||
| } | ||||
|  | ||||
| // Ucred Helpers | ||||
| // See ucred(3c) and getpeerucred(3c) | ||||
|  | ||||
| //sys	getpeerucred(fd uintptr, ucred *uintptr) (err error) | ||||
| //sys	ucredFree(ucred uintptr) = ucred_free | ||||
| //sys	ucredGet(pid int) (ucred uintptr, err error) = ucred_get | ||||
| //sys	ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid | ||||
| //sys	ucredGetegid(ucred uintptr) (gid int) = ucred_getegid | ||||
| //sys	ucredGetruid(ucred uintptr) (uid int) = ucred_getruid | ||||
| //sys	ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid | ||||
| //sys	ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid | ||||
| //sys	ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid | ||||
| //sys	ucredGetpid(ucred uintptr) (pid int) = ucred_getpid | ||||
|  | ||||
| // Ucred is an opaque struct that holds user credentials. | ||||
| type Ucred struct { | ||||
| 	ucred uintptr | ||||
| } | ||||
|  | ||||
| // We need to ensure that ucredFree is called on the underlying ucred | ||||
| // when the Ucred is garbage collected. | ||||
| func ucredFinalizer(u *Ucred) { | ||||
| 	ucredFree(u.ucred) | ||||
| } | ||||
|  | ||||
| func GetPeerUcred(fd uintptr) (*Ucred, error) { | ||||
| 	var ucred uintptr | ||||
| 	err := getpeerucred(fd, &ucred) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	result := &Ucred{ | ||||
| 		ucred: ucred, | ||||
| 	} | ||||
| 	// set the finalizer on the result so that the ucred will be freed | ||||
| 	runtime.SetFinalizer(result, ucredFinalizer) | ||||
| 	return result, nil | ||||
| } | ||||
|  | ||||
| func UcredGet(pid int) (*Ucred, error) { | ||||
| 	ucred, err := ucredGet(pid) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	result := &Ucred{ | ||||
| 		ucred: ucred, | ||||
| 	} | ||||
| 	// set the finalizer on the result so that the ucred will be freed | ||||
| 	runtime.SetFinalizer(result, ucredFinalizer) | ||||
| 	return result, nil | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Geteuid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGeteuid(u.ucred) | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Getruid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGetruid(u.ucred) | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Getsuid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGetsuid(u.ucred) | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Getegid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGetegid(u.ucred) | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Getrgid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGetrgid(u.ucred) | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Getsgid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGetsgid(u.ucred) | ||||
| } | ||||
|  | ||||
| func (u *Ucred) Getpid() int { | ||||
| 	defer runtime.KeepAlive(u) | ||||
| 	return ucredGetpid(u.ucred) | ||||
| } | ||||
|   | ||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1245,6 +1245,7 @@ const ( | ||||
| 	FAN_REPORT_DFID_NAME                        = 0xc00 | ||||
| 	FAN_REPORT_DFID_NAME_TARGET                 = 0x1e00 | ||||
| 	FAN_REPORT_DIR_FID                          = 0x400 | ||||
| 	FAN_REPORT_FD_ERROR                         = 0x2000 | ||||
| 	FAN_REPORT_FID                              = 0x200 | ||||
| 	FAN_REPORT_NAME                             = 0x800 | ||||
| 	FAN_REPORT_PIDFD                            = 0x80 | ||||
| @@ -1330,8 +1331,10 @@ const ( | ||||
| 	FUSE_SUPER_MAGIC                            = 0x65735546 | ||||
| 	FUTEXFS_SUPER_MAGIC                         = 0xbad1dea | ||||
| 	F_ADD_SEALS                                 = 0x409 | ||||
| 	F_CREATED_QUERY                             = 0x404 | ||||
| 	F_DUPFD                                     = 0x0 | ||||
| 	F_DUPFD_CLOEXEC                             = 0x406 | ||||
| 	F_DUPFD_QUERY                               = 0x403 | ||||
| 	F_EXLCK                                     = 0x4 | ||||
| 	F_GETFD                                     = 0x1 | ||||
| 	F_GETFL                                     = 0x3 | ||||
| @@ -1551,6 +1554,7 @@ const ( | ||||
| 	IPPROTO_ROUTING                             = 0x2b | ||||
| 	IPPROTO_RSVP                                = 0x2e | ||||
| 	IPPROTO_SCTP                                = 0x84 | ||||
| 	IPPROTO_SMC                                 = 0x100 | ||||
| 	IPPROTO_TCP                                 = 0x6 | ||||
| 	IPPROTO_TP                                  = 0x1d | ||||
| 	IPPROTO_UDP                                 = 0x11 | ||||
| @@ -1623,6 +1627,8 @@ const ( | ||||
| 	IPV6_UNICAST_IF                             = 0x4c | ||||
| 	IPV6_USER_FLOW                              = 0xe | ||||
| 	IPV6_V6ONLY                                 = 0x1a | ||||
| 	IPV6_VERSION                                = 0x60 | ||||
| 	IPV6_VERSION_MASK                           = 0xf0 | ||||
| 	IPV6_XFRM_POLICY                            = 0x23 | ||||
| 	IP_ADD_MEMBERSHIP                           = 0x23 | ||||
| 	IP_ADD_SOURCE_MEMBERSHIP                    = 0x27 | ||||
| @@ -1867,6 +1873,7 @@ const ( | ||||
| 	MADV_UNMERGEABLE                            = 0xd | ||||
| 	MADV_WILLNEED                               = 0x3 | ||||
| 	MADV_WIPEONFORK                             = 0x12 | ||||
| 	MAP_DROPPABLE                               = 0x8 | ||||
| 	MAP_FILE                                    = 0x0 | ||||
| 	MAP_FIXED                                   = 0x10 | ||||
| 	MAP_FIXED_NOREPLACE                         = 0x100000 | ||||
| @@ -1967,6 +1974,7 @@ const ( | ||||
| 	MSG_PEEK                                    = 0x2 | ||||
| 	MSG_PROXY                                   = 0x10 | ||||
| 	MSG_RST                                     = 0x1000 | ||||
| 	MSG_SOCK_DEVMEM                             = 0x2000000 | ||||
| 	MSG_SYN                                     = 0x400 | ||||
| 	MSG_TRUNC                                   = 0x20 | ||||
| 	MSG_TRYHARD                                 = 0x4 | ||||
| @@ -2083,6 +2091,7 @@ const ( | ||||
| 	NFC_ATR_REQ_MAXSIZE                         = 0x40 | ||||
| 	NFC_ATR_RES_GB_MAXSIZE                      = 0x2f | ||||
| 	NFC_ATR_RES_MAXSIZE                         = 0x40 | ||||
| 	NFC_ATS_MAXSIZE                             = 0x14 | ||||
| 	NFC_COMM_ACTIVE                             = 0x0 | ||||
| 	NFC_COMM_PASSIVE                            = 0x1 | ||||
| 	NFC_DEVICE_NAME_MAXSIZE                     = 0x8 | ||||
| @@ -2163,6 +2172,7 @@ const ( | ||||
| 	NFNL_SUBSYS_QUEUE                           = 0x3 | ||||
| 	NFNL_SUBSYS_ULOG                            = 0x4 | ||||
| 	NFS_SUPER_MAGIC                             = 0x6969 | ||||
| 	NFT_BITWISE_BOOL                            = 0x0 | ||||
| 	NFT_CHAIN_FLAGS                             = 0x7 | ||||
| 	NFT_CHAIN_MAXNAMELEN                        = 0x100 | ||||
| 	NFT_CT_MAX                                  = 0x17 | ||||
| @@ -2491,6 +2501,7 @@ const ( | ||||
| 	PR_GET_PDEATHSIG                            = 0x2 | ||||
| 	PR_GET_SECCOMP                              = 0x15 | ||||
| 	PR_GET_SECUREBITS                           = 0x1b | ||||
| 	PR_GET_SHADOW_STACK_STATUS                  = 0x4a | ||||
| 	PR_GET_SPECULATION_CTRL                     = 0x34 | ||||
| 	PR_GET_TAGGED_ADDR_CTRL                     = 0x38 | ||||
| 	PR_GET_THP_DISABLE                          = 0x2a | ||||
| @@ -2499,6 +2510,7 @@ const ( | ||||
| 	PR_GET_TIMING                               = 0xd | ||||
| 	PR_GET_TSC                                  = 0x19 | ||||
| 	PR_GET_UNALIGN                              = 0x5 | ||||
| 	PR_LOCK_SHADOW_STACK_STATUS                 = 0x4c | ||||
| 	PR_MCE_KILL                                 = 0x21 | ||||
| 	PR_MCE_KILL_CLEAR                           = 0x0 | ||||
| 	PR_MCE_KILL_DEFAULT                         = 0x2 | ||||
| @@ -2525,6 +2537,8 @@ const ( | ||||
| 	PR_PAC_GET_ENABLED_KEYS                     = 0x3d | ||||
| 	PR_PAC_RESET_KEYS                           = 0x36 | ||||
| 	PR_PAC_SET_ENABLED_KEYS                     = 0x3c | ||||
| 	PR_PMLEN_MASK                               = 0x7f000000 | ||||
| 	PR_PMLEN_SHIFT                              = 0x18 | ||||
| 	PR_PPC_DEXCR_CTRL_CLEAR                     = 0x4 | ||||
| 	PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC              = 0x10 | ||||
| 	PR_PPC_DEXCR_CTRL_EDITABLE                  = 0x1 | ||||
| @@ -2592,6 +2606,7 @@ const ( | ||||
| 	PR_SET_PTRACER                              = 0x59616d61 | ||||
| 	PR_SET_SECCOMP                              = 0x16 | ||||
| 	PR_SET_SECUREBITS                           = 0x1c | ||||
| 	PR_SET_SHADOW_STACK_STATUS                  = 0x4b | ||||
| 	PR_SET_SPECULATION_CTRL                     = 0x35 | ||||
| 	PR_SET_SYSCALL_USER_DISPATCH                = 0x3b | ||||
| 	PR_SET_TAGGED_ADDR_CTRL                     = 0x37 | ||||
| @@ -2602,6 +2617,9 @@ const ( | ||||
| 	PR_SET_UNALIGN                              = 0x6 | ||||
| 	PR_SET_VMA                                  = 0x53564d41 | ||||
| 	PR_SET_VMA_ANON_NAME                        = 0x0 | ||||
| 	PR_SHADOW_STACK_ENABLE                      = 0x1 | ||||
| 	PR_SHADOW_STACK_PUSH                        = 0x4 | ||||
| 	PR_SHADOW_STACK_WRITE                       = 0x2 | ||||
| 	PR_SME_GET_VL                               = 0x40 | ||||
| 	PR_SME_SET_VL                               = 0x3f | ||||
| 	PR_SME_SET_VL_ONEXEC                        = 0x40000 | ||||
| @@ -2911,7 +2929,6 @@ const ( | ||||
| 	RTM_NEWNEXTHOP                              = 0x68 | ||||
| 	RTM_NEWNEXTHOPBUCKET                        = 0x74 | ||||
| 	RTM_NEWNSID                                 = 0x58 | ||||
| 	RTM_NEWNVLAN                                = 0x70 | ||||
| 	RTM_NEWPREFIX                               = 0x34 | ||||
| 	RTM_NEWQDISC                                = 0x24 | ||||
| 	RTM_NEWROUTE                                = 0x18 | ||||
| @@ -2920,6 +2937,7 @@ const ( | ||||
| 	RTM_NEWTCLASS                               = 0x28 | ||||
| 	RTM_NEWTFILTER                              = 0x2c | ||||
| 	RTM_NEWTUNNEL                               = 0x78 | ||||
| 	RTM_NEWVLAN                                 = 0x70 | ||||
| 	RTM_NR_FAMILIES                             = 0x1b | ||||
| 	RTM_NR_MSGTYPES                             = 0x6c | ||||
| 	RTM_SETDCB                                  = 0x4f | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -116,6 +116,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -304,6 +306,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -116,6 +116,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -305,6 +307,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -310,6 +312,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -109,6 +109,7 @@ const ( | ||||
| 	F_SETOWN                         = 0x8 | ||||
| 	F_UNLCK                          = 0x2 | ||||
| 	F_WRLCK                          = 0x1 | ||||
| 	GCS_MAGIC                        = 0x47435300 | ||||
| 	HIDIOCGRAWINFO                   = 0x80084803 | ||||
| 	HIDIOCGRDESC                     = 0x90044802 | ||||
| 	HIDIOCGRDESCSIZE                 = 0x80044801 | ||||
| @@ -119,6 +120,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -302,6 +305,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -116,6 +116,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -297,6 +299,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x80 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -303,6 +305,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x80 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -303,6 +305,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x80 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -303,6 +305,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x80 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -303,6 +305,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff | ||||
| 	ISIG                             = 0x80 | ||||
| 	IUCLC                            = 0x1000 | ||||
| 	IXOFF                            = 0x400 | ||||
| @@ -358,6 +360,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff | ||||
| 	ISIG                             = 0x80 | ||||
| 	IUCLC                            = 0x1000 | ||||
| 	IXOFF                            = 0x400 | ||||
| @@ -362,6 +364,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x80 | ||||
| 	IUCLC                            = 0x1000 | ||||
| 	IXOFF                            = 0x400 | ||||
| @@ -362,6 +364,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -294,6 +296,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,6 +115,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -366,6 +368,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TS_OPT_ID                    = 0x51 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -119,6 +119,8 @@ const ( | ||||
| 	IN_CLOEXEC                       = 0x400000 | ||||
| 	IN_NONBLOCK                      = 0x4000 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff | ||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| @@ -357,6 +359,7 @@ const ( | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x38 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3c | ||||
| 	SCM_TIMESTAMPNS                  = 0x21 | ||||
| 	SCM_TS_OPT_ID                    = 0x5a | ||||
| 	SCM_TXTIME                       = 0x3f | ||||
| 	SCM_WIFI_STATUS                  = 0x25 | ||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||
|   | ||||
							
								
								
									
										114
									
								
								vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										114
									
								
								vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -141,6 +141,16 @@ import ( | ||||
| //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" | ||||
| //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" | ||||
| //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" | ||||
| //go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" | ||||
| //go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" | ||||
| //go:cgo_import_dynamic libc_port_create port_create "libc.so" | ||||
| //go:cgo_import_dynamic libc_port_associate port_associate "libc.so" | ||||
| //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" | ||||
| @@ -280,6 +290,16 @@ import ( | ||||
| //go:linkname procgetpeername libc_getpeername | ||||
| //go:linkname procsetsockopt libc_setsockopt | ||||
| //go:linkname procrecvfrom libc_recvfrom | ||||
| //go:linkname procgetpeerucred libc_getpeerucred | ||||
| //go:linkname procucred_get libc_ucred_get | ||||
| //go:linkname procucred_geteuid libc_ucred_geteuid | ||||
| //go:linkname procucred_getegid libc_ucred_getegid | ||||
| //go:linkname procucred_getruid libc_ucred_getruid | ||||
| //go:linkname procucred_getrgid libc_ucred_getrgid | ||||
| //go:linkname procucred_getsuid libc_ucred_getsuid | ||||
| //go:linkname procucred_getsgid libc_ucred_getsgid | ||||
| //go:linkname procucred_getpid libc_ucred_getpid | ||||
| //go:linkname procucred_free libc_ucred_free | ||||
| //go:linkname procport_create libc_port_create | ||||
| //go:linkname procport_associate libc_port_associate | ||||
| //go:linkname procport_dissociate libc_port_dissociate | ||||
| @@ -420,6 +440,16 @@ var ( | ||||
| 	procgetpeername, | ||||
| 	procsetsockopt, | ||||
| 	procrecvfrom, | ||||
| 	procgetpeerucred, | ||||
| 	procucred_get, | ||||
| 	procucred_geteuid, | ||||
| 	procucred_getegid, | ||||
| 	procucred_getruid, | ||||
| 	procucred_getrgid, | ||||
| 	procucred_getsuid, | ||||
| 	procucred_getsgid, | ||||
| 	procucred_getpid, | ||||
| 	procucred_free, | ||||
| 	procport_create, | ||||
| 	procport_associate, | ||||
| 	procport_dissociate, | ||||
| @@ -2029,6 +2059,90 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func getpeerucred(fd uintptr, ucred *uintptr) (err error) { | ||||
| 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGet(pid int) (ucred uintptr, err error) { | ||||
| 	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) | ||||
| 	ucred = uintptr(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGeteuid(ucred uintptr) (uid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	uid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGetegid(ucred uintptr) (gid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	gid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGetruid(ucred uintptr) (uid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	uid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGetrgid(ucred uintptr) (gid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	gid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGetsuid(ucred uintptr) (uid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	uid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGetsgid(ucred uintptr) (gid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	gid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredGetpid(ucred uintptr) (pid int) { | ||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	pid = int(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func ucredFree(ucred uintptr) { | ||||
| 	sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||
|  | ||||
| func port_create() (n int, err error) { | ||||
| 	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) | ||||
| 	n = int(r0) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -458,4 +458,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR            = 460 | ||||
| 	SYS_LSM_LIST_MODULES             = 461 | ||||
| 	SYS_MSEAL                        = 462 | ||||
| 	SYS_SETXATTRAT                   = 463 | ||||
| 	SYS_GETXATTRAT                   = 464 | ||||
| 	SYS_LISTXATTRAT                  = 465 | ||||
| 	SYS_REMOVEXATTRAT                = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -381,4 +381,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -422,4 +422,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR            = 460 | ||||
| 	SYS_LSM_LIST_MODULES             = 461 | ||||
| 	SYS_MSEAL                        = 462 | ||||
| 	SYS_SETXATTRAT                   = 463 | ||||
| 	SYS_GETXATTRAT                   = 464 | ||||
| 	SYS_LISTXATTRAT                  = 465 | ||||
| 	SYS_REMOVEXATTRAT                = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -325,4 +325,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -321,4 +321,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -442,4 +442,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR            = 4460 | ||||
| 	SYS_LSM_LIST_MODULES             = 4461 | ||||
| 	SYS_MSEAL                        = 4462 | ||||
| 	SYS_SETXATTRAT                   = 4463 | ||||
| 	SYS_GETXATTRAT                   = 4464 | ||||
| 	SYS_LISTXATTRAT                  = 4465 | ||||
| 	SYS_REMOVEXATTRAT                = 4466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -372,4 +372,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 5460 | ||||
| 	SYS_LSM_LIST_MODULES        = 5461 | ||||
| 	SYS_MSEAL                   = 5462 | ||||
| 	SYS_SETXATTRAT              = 5463 | ||||
| 	SYS_GETXATTRAT              = 5464 | ||||
| 	SYS_LISTXATTRAT             = 5465 | ||||
| 	SYS_REMOVEXATTRAT           = 5466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -372,4 +372,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 5460 | ||||
| 	SYS_LSM_LIST_MODULES        = 5461 | ||||
| 	SYS_MSEAL                   = 5462 | ||||
| 	SYS_SETXATTRAT              = 5463 | ||||
| 	SYS_GETXATTRAT              = 5464 | ||||
| 	SYS_LISTXATTRAT             = 5465 | ||||
| 	SYS_REMOVEXATTRAT           = 5466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -442,4 +442,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR            = 4460 | ||||
| 	SYS_LSM_LIST_MODULES             = 4461 | ||||
| 	SYS_MSEAL                        = 4462 | ||||
| 	SYS_SETXATTRAT                   = 4463 | ||||
| 	SYS_GETXATTRAT                   = 4464 | ||||
| 	SYS_LISTXATTRAT                  = 4465 | ||||
| 	SYS_REMOVEXATTRAT                = 4466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -449,4 +449,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR            = 460 | ||||
| 	SYS_LSM_LIST_MODULES             = 461 | ||||
| 	SYS_MSEAL                        = 462 | ||||
| 	SYS_SETXATTRAT                   = 463 | ||||
| 	SYS_GETXATTRAT                   = 464 | ||||
| 	SYS_LISTXATTRAT                  = 465 | ||||
| 	SYS_REMOVEXATTRAT                = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -421,4 +421,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -421,4 +421,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -326,4 +326,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -387,4 +387,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -400,4 +400,8 @@ const ( | ||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||
| 	SYS_LSM_LIST_MODULES        = 461 | ||||
| 	SYS_MSEAL                   = 462 | ||||
| 	SYS_SETXATTRAT              = 463 | ||||
| 	SYS_GETXATTRAT              = 464 | ||||
| 	SYS_LISTXATTRAT             = 465 | ||||
| 	SYS_REMOVEXATTRAT           = 466 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/golang.org/x/sys/unix/ztypes_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/golang.org/x/sys/unix/ztypes_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -4747,7 +4747,7 @@ const ( | ||||
| 	NL80211_ATTR_MAC_HINT                                   = 0xc8 | ||||
| 	NL80211_ATTR_MAC_MASK                                   = 0xd7 | ||||
| 	NL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca | ||||
| 	NL80211_ATTR_MAX                                        = 0x14c | ||||
| 	NL80211_ATTR_MAX                                        = 0x14d | ||||
| 	NL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4 | ||||
| 	NL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce | ||||
| 	NL80211_ATTR_MAX_MATCH_SETS                             = 0x85 | ||||
| @@ -5519,7 +5519,7 @@ const ( | ||||
| 	NL80211_MNTR_FLAG_CONTROL                               = 0x3 | ||||
| 	NL80211_MNTR_FLAG_COOK_FRAMES                           = 0x5 | ||||
| 	NL80211_MNTR_FLAG_FCSFAIL                               = 0x1 | ||||
| 	NL80211_MNTR_FLAG_MAX                                   = 0x6 | ||||
| 	NL80211_MNTR_FLAG_MAX                                   = 0x7 | ||||
| 	NL80211_MNTR_FLAG_OTHER_BSS                             = 0x4 | ||||
| 	NL80211_MNTR_FLAG_PLCPFAIL                              = 0x2 | ||||
| 	NL80211_MPATH_FLAG_ACTIVE                               = 0x1 | ||||
| @@ -6174,3 +6174,5 @@ type SockDiagReq struct { | ||||
| 	Family   uint8 | ||||
| 	Protocol uint8 | ||||
| } | ||||
|  | ||||
| const RTM_NEWNVLAN = 0x70 | ||||
|   | ||||
							
								
								
									
										11
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -43,8 +43,8 @@ type DLL struct { | ||||
| // LoadDLL loads DLL file into memory. | ||||
| // | ||||
| // Warning: using LoadDLL without an absolute path name is subject to | ||||
| // DLL preloading attacks. To safely load a system DLL, use LazyDLL | ||||
| // with System set to true, or use LoadLibraryEx directly. | ||||
| // DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL], | ||||
| // or use [LoadLibraryEx] directly. | ||||
| func LoadDLL(name string) (dll *DLL, err error) { | ||||
| 	namep, err := UTF16PtrFromString(name) | ||||
| 	if err != nil { | ||||
| @@ -271,6 +271,9 @@ func (d *LazyDLL) NewProc(name string) *LazyProc { | ||||
| } | ||||
|  | ||||
| // NewLazyDLL creates new LazyDLL associated with DLL file. | ||||
| // | ||||
| // Warning: using NewLazyDLL without an absolute path name is subject to | ||||
| // DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL]. | ||||
| func NewLazyDLL(name string) *LazyDLL { | ||||
| 	return &LazyDLL{Name: name} | ||||
| } | ||||
| @@ -410,7 +413,3 @@ func loadLibraryEx(name string, system bool) (*DLL, error) { | ||||
| 	} | ||||
| 	return &DLL{Name: name, Handle: h}, nil | ||||
| } | ||||
|  | ||||
| type errString string | ||||
|  | ||||
| func (s errString) Error() string { return string(s) } | ||||
|   | ||||
							
								
								
									
										25
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @@ -572,8 +572,8 @@ go.opentelemetry.io/proto/otlp/collector/trace/v1 | ||||
| go.opentelemetry.io/proto/otlp/common/v1 | ||||
| go.opentelemetry.io/proto/otlp/resource/v1 | ||||
| go.opentelemetry.io/proto/otlp/trace/v1 | ||||
| # golang.org/x/crypto v0.31.0 | ||||
| ## explicit; go 1.20 | ||||
| # golang.org/x/crypto v0.36.0 | ||||
| ## explicit; go 1.23.0 | ||||
| golang.org/x/crypto/cast5 | ||||
| golang.org/x/crypto/cryptobyte | ||||
| golang.org/x/crypto/cryptobyte/asn1 | ||||
| @@ -592,8 +592,8 @@ golang.org/x/exp/slices | ||||
| # golang.org/x/mod v0.21.0 | ||||
| ## explicit; go 1.22.0 | ||||
| golang.org/x/mod/semver | ||||
| # golang.org/x/net v0.33.0 | ||||
| ## explicit; go 1.18 | ||||
| # golang.org/x/net v0.37.0 | ||||
| ## explicit; go 1.23.0 | ||||
| golang.org/x/net/bpf | ||||
| golang.org/x/net/html | ||||
| golang.org/x/net/html/atom | ||||
| @@ -601,6 +601,7 @@ golang.org/x/net/http/httpguts | ||||
| golang.org/x/net/http2 | ||||
| golang.org/x/net/http2/hpack | ||||
| golang.org/x/net/idna | ||||
| golang.org/x/net/internal/httpcommon | ||||
| golang.org/x/net/internal/socks | ||||
| golang.org/x/net/internal/timeseries | ||||
| golang.org/x/net/proxy | ||||
| @@ -610,12 +611,12 @@ golang.org/x/net/websocket | ||||
| ## explicit; go 1.18 | ||||
| golang.org/x/oauth2 | ||||
| golang.org/x/oauth2/internal | ||||
| # golang.org/x/sync v0.10.0 | ||||
| ## explicit; go 1.18 | ||||
| # golang.org/x/sync v0.12.0 | ||||
| ## explicit; go 1.23.0 | ||||
| golang.org/x/sync/errgroup | ||||
| golang.org/x/sync/semaphore | ||||
| # golang.org/x/sys v0.28.0 | ||||
| ## explicit; go 1.18 | ||||
| # golang.org/x/sys v0.31.0 | ||||
| ## explicit; go 1.23.0 | ||||
| golang.org/x/sys/cpu | ||||
| golang.org/x/sys/plan9 | ||||
| golang.org/x/sys/unix | ||||
| @@ -624,11 +625,11 @@ golang.org/x/sys/windows/registry | ||||
| golang.org/x/sys/windows/svc | ||||
| golang.org/x/sys/windows/svc/debug | ||||
| golang.org/x/sys/windows/svc/mgr | ||||
| # golang.org/x/term v0.27.0 | ||||
| ## explicit; go 1.18 | ||||
| # golang.org/x/term v0.30.0 | ||||
| ## explicit; go 1.23.0 | ||||
| golang.org/x/term | ||||
| # golang.org/x/text v0.21.0 | ||||
| ## explicit; go 1.18 | ||||
| # golang.org/x/text v0.23.0 | ||||
| ## explicit; go 1.23.0 | ||||
| golang.org/x/text/secure/bidirule | ||||
| golang.org/x/text/transform | ||||
| golang.org/x/text/unicode/bidi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Akihiro Suda
					Akihiro Suda