mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 12:52:25 -05:00 
			
		
		
		
	[chore]: Bump golang.org/x/net from 0.29.0 to 0.30.0 (#3402)
This commit is contained in:
		
					parent
					
						
							
								bd1866ad8a
							
						
					
				
			
			
				commit
				
					
						33bd97a535
					
				
			
		
					 44 changed files with 679 additions and 252 deletions
				
			
		
							
								
								
									
										8
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -73,11 +73,11 @@ require ( | ||||||
| 	go.opentelemetry.io/otel/sdk/metric v1.29.0 | 	go.opentelemetry.io/otel/sdk/metric v1.29.0 | ||||||
| 	go.opentelemetry.io/otel/trace v1.29.0 | 	go.opentelemetry.io/otel/trace v1.29.0 | ||||||
| 	go.uber.org/automaxprocs v1.6.0 | 	go.uber.org/automaxprocs v1.6.0 | ||||||
| 	golang.org/x/crypto v0.27.0 | 	golang.org/x/crypto v0.28.0 | ||||||
| 	golang.org/x/image v0.20.0 | 	golang.org/x/image v0.20.0 | ||||||
| 	golang.org/x/net v0.29.0 | 	golang.org/x/net v0.30.0 | ||||||
| 	golang.org/x/oauth2 v0.23.0 | 	golang.org/x/oauth2 v0.23.0 | ||||||
| 	golang.org/x/text v0.18.0 | 	golang.org/x/text v0.19.0 | ||||||
| 	gopkg.in/mcuadros/go-syslog.v2 v2.3.0 | 	gopkg.in/mcuadros/go-syslog.v2 v2.3.0 | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 | 	gopkg.in/yaml.v3 v3.0.1 | ||||||
| 	modernc.org/sqlite v0.0.0-00010101000000-000000000000 | 	modernc.org/sqlite v0.0.0-00010101000000-000000000000 | ||||||
|  | @ -213,7 +213,7 @@ require ( | ||||||
| 	golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect | 	golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect | ||||||
| 	golang.org/x/mod v0.18.0 // indirect | 	golang.org/x/mod v0.18.0 // indirect | ||||||
| 	golang.org/x/sync v0.8.0 // indirect | 	golang.org/x/sync v0.8.0 // indirect | ||||||
| 	golang.org/x/sys v0.25.0 // indirect | 	golang.org/x/sys v0.26.0 // indirect | ||||||
| 	golang.org/x/tools v0.22.0 // indirect | 	golang.org/x/tools v0.22.0 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect | 	google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -668,8 +668,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U | ||||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= | golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= | ||||||
| golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= | golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= | ||||||
| golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= | golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= | ||||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= | ||||||
|  | @ -739,8 +739,8 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R | ||||||
| golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
| golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | ||||||
| golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= | golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= | ||||||
| golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= | golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= | ||||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
| golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||||
| golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||||
|  | @ -800,13 +800,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc | ||||||
| golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= | golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= | ||||||
| golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | 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= | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||||
| golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= | golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= | ||||||
| golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= | golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= | ||||||
| golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= | golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= | ||||||
| golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
|  | @ -814,8 +814,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | 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= | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | ||||||
| golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||||
| golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= | golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= | ||||||
| golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= | golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= | ||||||
| golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/crypto/sha3/shake.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/crypto/sha3/shake.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -85,9 +85,9 @@ func newCShake(N, S []byte, rate, outputLen int, dsbyte byte) ShakeHash { | ||||||
| 
 | 
 | ||||||
| 	// leftEncode returns max 9 bytes | 	// leftEncode returns max 9 bytes | ||||||
| 	c.initBlock = make([]byte, 0, 9*2+len(N)+len(S)) | 	c.initBlock = make([]byte, 0, 9*2+len(N)+len(S)) | ||||||
| 	c.initBlock = append(c.initBlock, leftEncode(uint64(len(N)*8))...) | 	c.initBlock = append(c.initBlock, leftEncode(uint64(len(N))*8)...) | ||||||
| 	c.initBlock = append(c.initBlock, N...) | 	c.initBlock = append(c.initBlock, N...) | ||||||
| 	c.initBlock = append(c.initBlock, leftEncode(uint64(len(S)*8))...) | 	c.initBlock = append(c.initBlock, leftEncode(uint64(len(S))*8)...) | ||||||
| 	c.initBlock = append(c.initBlock, S...) | 	c.initBlock = append(c.initBlock, S...) | ||||||
| 	c.Write(bytepad(c.initBlock, c.rate)) | 	c.Write(bytepad(c.initBlock, c.rate)) | ||||||
| 	return &c | 	return &c | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/crypto/ssh/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/crypto/ssh/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -510,8 +510,8 @@ userAuthLoop: | ||||||
| 			if err := s.transport.writePacket(Marshal(discMsg)); err != nil { | 			if err := s.transport.writePacket(Marshal(discMsg)); err != nil { | ||||||
| 				return nil, err | 				return nil, err | ||||||
| 			} | 			} | ||||||
| 
 | 			authErrs = append(authErrs, discMsg) | ||||||
| 			return nil, discMsg | 			return nil, &ServerAuthError{Errors: authErrs} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		var userAuthReq userAuthRequestMsg | 		var userAuthReq userAuthRequestMsg | ||||||
|  |  | ||||||
							
								
								
									
										122
									
								
								vendor/golang.org/x/net/http2/config.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								vendor/golang.org/x/net/http2/config.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,122 @@ | ||||||
|  | // Copyright 2024 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 | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"math" | ||||||
|  | 	"net/http" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // http2Config is a package-internal version of net/http.HTTP2Config. | ||||||
|  | // | ||||||
|  | // http.HTTP2Config was added in Go 1.24. | ||||||
|  | // When running with a version of net/http that includes HTTP2Config, | ||||||
|  | // we merge the configuration with the fields in Transport or Server | ||||||
|  | // to produce an http2Config. | ||||||
|  | // | ||||||
|  | // Zero valued fields in http2Config are interpreted as in the | ||||||
|  | // net/http.HTTPConfig documentation. | ||||||
|  | // | ||||||
|  | // Precedence order for reconciling configurations is: | ||||||
|  | // | ||||||
|  | //   - Use the net/http.{Server,Transport}.HTTP2Config value, when non-zero. | ||||||
|  | //   - Otherwise use the http2.{Server.Transport} value. | ||||||
|  | //   - If the resulting value is zero or out of range, use a default. | ||||||
|  | type http2Config struct { | ||||||
|  | 	MaxConcurrentStreams         uint32 | ||||||
|  | 	MaxDecoderHeaderTableSize    uint32 | ||||||
|  | 	MaxEncoderHeaderTableSize    uint32 | ||||||
|  | 	MaxReadFrameSize             uint32 | ||||||
|  | 	MaxUploadBufferPerConnection int32 | ||||||
|  | 	MaxUploadBufferPerStream     int32 | ||||||
|  | 	SendPingTimeout              time.Duration | ||||||
|  | 	PingTimeout                  time.Duration | ||||||
|  | 	WriteByteTimeout             time.Duration | ||||||
|  | 	PermitProhibitedCipherSuites bool | ||||||
|  | 	CountError                   func(errType string) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // configFromServer merges configuration settings from | ||||||
|  | // net/http.Server.HTTP2Config and http2.Server. | ||||||
|  | func configFromServer(h1 *http.Server, h2 *Server) http2Config { | ||||||
|  | 	conf := http2Config{ | ||||||
|  | 		MaxConcurrentStreams:         h2.MaxConcurrentStreams, | ||||||
|  | 		MaxEncoderHeaderTableSize:    h2.MaxEncoderHeaderTableSize, | ||||||
|  | 		MaxDecoderHeaderTableSize:    h2.MaxDecoderHeaderTableSize, | ||||||
|  | 		MaxReadFrameSize:             h2.MaxReadFrameSize, | ||||||
|  | 		MaxUploadBufferPerConnection: h2.MaxUploadBufferPerConnection, | ||||||
|  | 		MaxUploadBufferPerStream:     h2.MaxUploadBufferPerStream, | ||||||
|  | 		SendPingTimeout:              h2.ReadIdleTimeout, | ||||||
|  | 		PingTimeout:                  h2.PingTimeout, | ||||||
|  | 		WriteByteTimeout:             h2.WriteByteTimeout, | ||||||
|  | 		PermitProhibitedCipherSuites: h2.PermitProhibitedCipherSuites, | ||||||
|  | 		CountError:                   h2.CountError, | ||||||
|  | 	} | ||||||
|  | 	fillNetHTTPServerConfig(&conf, h1) | ||||||
|  | 	setConfigDefaults(&conf, true) | ||||||
|  | 	return conf | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // configFromServer merges configuration settings from h2 and h2.t1.HTTP2 | ||||||
|  | // (the net/http Transport). | ||||||
|  | func configFromTransport(h2 *Transport) http2Config { | ||||||
|  | 	conf := http2Config{ | ||||||
|  | 		MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize, | ||||||
|  | 		MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize, | ||||||
|  | 		MaxReadFrameSize:          h2.MaxReadFrameSize, | ||||||
|  | 		SendPingTimeout:           h2.ReadIdleTimeout, | ||||||
|  | 		PingTimeout:               h2.PingTimeout, | ||||||
|  | 		WriteByteTimeout:          h2.WriteByteTimeout, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// Unlike most config fields, where out-of-range values revert to the default, | ||||||
|  | 	// Transport.MaxReadFrameSize clips. | ||||||
|  | 	if conf.MaxReadFrameSize < minMaxFrameSize { | ||||||
|  | 		conf.MaxReadFrameSize = minMaxFrameSize | ||||||
|  | 	} else if conf.MaxReadFrameSize > maxFrameSize { | ||||||
|  | 		conf.MaxReadFrameSize = maxFrameSize | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if h2.t1 != nil { | ||||||
|  | 		fillNetHTTPTransportConfig(&conf, h2.t1) | ||||||
|  | 	} | ||||||
|  | 	setConfigDefaults(&conf, false) | ||||||
|  | 	return conf | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func setDefault[T ~int | ~int32 | ~uint32 | ~int64](v *T, minval, maxval, defval T) { | ||||||
|  | 	if *v < minval || *v > maxval { | ||||||
|  | 		*v = defval | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func setConfigDefaults(conf *http2Config, server bool) { | ||||||
|  | 	setDefault(&conf.MaxConcurrentStreams, 1, math.MaxUint32, defaultMaxStreams) | ||||||
|  | 	setDefault(&conf.MaxEncoderHeaderTableSize, 1, math.MaxUint32, initialHeaderTableSize) | ||||||
|  | 	setDefault(&conf.MaxDecoderHeaderTableSize, 1, math.MaxUint32, initialHeaderTableSize) | ||||||
|  | 	if server { | ||||||
|  | 		setDefault(&conf.MaxUploadBufferPerConnection, initialWindowSize, math.MaxInt32, 1<<20) | ||||||
|  | 	} else { | ||||||
|  | 		setDefault(&conf.MaxUploadBufferPerConnection, initialWindowSize, math.MaxInt32, transportDefaultConnFlow) | ||||||
|  | 	} | ||||||
|  | 	if server { | ||||||
|  | 		setDefault(&conf.MaxUploadBufferPerStream, 1, math.MaxInt32, 1<<20) | ||||||
|  | 	} else { | ||||||
|  | 		setDefault(&conf.MaxUploadBufferPerStream, 1, math.MaxInt32, transportDefaultStreamFlow) | ||||||
|  | 	} | ||||||
|  | 	setDefault(&conf.MaxReadFrameSize, minMaxFrameSize, maxFrameSize, defaultMaxReadFrameSize) | ||||||
|  | 	setDefault(&conf.PingTimeout, 1, math.MaxInt64, 15*time.Second) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // adjustHTTP1MaxHeaderSize converts a limit in bytes on the size of an HTTP/1 header | ||||||
|  | // to an HTTP/2 MAX_HEADER_LIST_SIZE value. | ||||||
|  | func adjustHTTP1MaxHeaderSize(n int64) int64 { | ||||||
|  | 	// http2's count is in a slightly different unit and includes 32 bytes per pair. | ||||||
|  | 	// So, take the net/http.Server value and pad it up a bit, assuming 10 headers. | ||||||
|  | 	const perFieldOverhead = 32 // per http2 spec | ||||||
|  | 	const typicalHeaders = 10   // conservative | ||||||
|  | 	return n + typicalHeaders*perFieldOverhead | ||||||
|  | } | ||||||
							
								
								
									
										61
									
								
								vendor/golang.org/x/net/http2/config_go124.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								vendor/golang.org/x/net/http2/config_go124.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | ||||||
|  | // Copyright 2024 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.24 | ||||||
|  | 
 | ||||||
|  | package http2 | ||||||
|  | 
 | ||||||
|  | import "net/http" | ||||||
|  | 
 | ||||||
|  | // fillNetHTTPServerConfig sets fields in conf from srv.HTTP2. | ||||||
|  | func fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) { | ||||||
|  | 	fillNetHTTPConfig(conf, srv.HTTP2) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // fillNetHTTPServerConfig sets fields in conf from tr.HTTP2. | ||||||
|  | func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) { | ||||||
|  | 	fillNetHTTPConfig(conf, tr.HTTP2) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) { | ||||||
|  | 	if h2 == nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxConcurrentStreams != 0 { | ||||||
|  | 		conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxEncoderHeaderTableSize != 0 { | ||||||
|  | 		conf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize) | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxDecoderHeaderTableSize != 0 { | ||||||
|  | 		conf.MaxDecoderHeaderTableSize = uint32(h2.MaxDecoderHeaderTableSize) | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxConcurrentStreams != 0 { | ||||||
|  | 		conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxReadFrameSize != 0 { | ||||||
|  | 		conf.MaxReadFrameSize = uint32(h2.MaxReadFrameSize) | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxReceiveBufferPerConnection != 0 { | ||||||
|  | 		conf.MaxUploadBufferPerConnection = int32(h2.MaxReceiveBufferPerConnection) | ||||||
|  | 	} | ||||||
|  | 	if h2.MaxReceiveBufferPerStream != 0 { | ||||||
|  | 		conf.MaxUploadBufferPerStream = int32(h2.MaxReceiveBufferPerStream) | ||||||
|  | 	} | ||||||
|  | 	if h2.SendPingTimeout != 0 { | ||||||
|  | 		conf.SendPingTimeout = h2.SendPingTimeout | ||||||
|  | 	} | ||||||
|  | 	if h2.PingTimeout != 0 { | ||||||
|  | 		conf.PingTimeout = h2.PingTimeout | ||||||
|  | 	} | ||||||
|  | 	if h2.WriteByteTimeout != 0 { | ||||||
|  | 		conf.WriteByteTimeout = h2.WriteByteTimeout | ||||||
|  | 	} | ||||||
|  | 	if h2.PermitProhibitedCipherSuites { | ||||||
|  | 		conf.PermitProhibitedCipherSuites = true | ||||||
|  | 	} | ||||||
|  | 	if h2.CountError != nil { | ||||||
|  | 		conf.CountError = h2.CountError | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										16
									
								
								vendor/golang.org/x/net/http2/config_pre_go124.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								vendor/golang.org/x/net/http2/config_pre_go124.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | // Copyright 2024 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.24 | ||||||
|  | 
 | ||||||
|  | package http2 | ||||||
|  | 
 | ||||||
|  | import "net/http" | ||||||
|  | 
 | ||||||
|  | // Pre-Go 1.24 fallback. | ||||||
|  | // The Server.HTTP2 and Transport.HTTP2 config fields were added in Go 1.24. | ||||||
|  | 
 | ||||||
|  | func fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) {} | ||||||
|  | 
 | ||||||
|  | func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) {} | ||||||
							
								
								
									
										49
									
								
								vendor/golang.org/x/net/http2/http2.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										49
									
								
								vendor/golang.org/x/net/http2/http2.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -19,8 +19,9 @@ import ( | ||||||
| 	"bufio" | 	"bufio" | ||||||
| 	"context" | 	"context" | ||||||
| 	"crypto/tls" | 	"crypto/tls" | ||||||
|  | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io" | 	"net" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"os" | 	"os" | ||||||
| 	"sort" | 	"sort" | ||||||
|  | @ -238,12 +239,18 @@ func (cw closeWaiter) Wait() { | ||||||
| // idle memory usage with many connections. | // idle memory usage with many connections. | ||||||
| type bufferedWriter struct { | type bufferedWriter struct { | ||||||
| 	_           incomparable | 	_           incomparable | ||||||
| 	w  io.Writer     // immutable | 	group       synctestGroupInterface // immutable | ||||||
|  | 	conn        net.Conn               // immutable | ||||||
| 	bw          *bufio.Writer          // non-nil when data is buffered | 	bw          *bufio.Writer          // non-nil when data is buffered | ||||||
|  | 	byteTimeout time.Duration          // immutable, WriteByteTimeout | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func newBufferedWriter(w io.Writer) *bufferedWriter { | func newBufferedWriter(group synctestGroupInterface, conn net.Conn, timeout time.Duration) *bufferedWriter { | ||||||
| 	return &bufferedWriter{w: w} | 	return &bufferedWriter{ | ||||||
|  | 		group:       group, | ||||||
|  | 		conn:        conn, | ||||||
|  | 		byteTimeout: timeout, | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // bufWriterPoolBufferSize is the size of bufio.Writer's | // bufWriterPoolBufferSize is the size of bufio.Writer's | ||||||
|  | @ -270,7 +277,7 @@ func (w *bufferedWriter) Available() int { | ||||||
| func (w *bufferedWriter) Write(p []byte) (n int, err error) { | func (w *bufferedWriter) Write(p []byte) (n int, err error) { | ||||||
| 	if w.bw == nil { | 	if w.bw == nil { | ||||||
| 		bw := bufWriterPool.Get().(*bufio.Writer) | 		bw := bufWriterPool.Get().(*bufio.Writer) | ||||||
| 		bw.Reset(w.w) | 		bw.Reset((*bufferedWriterTimeoutWriter)(w)) | ||||||
| 		w.bw = bw | 		w.bw = bw | ||||||
| 	} | 	} | ||||||
| 	return w.bw.Write(p) | 	return w.bw.Write(p) | ||||||
|  | @ -288,6 +295,38 @@ func (w *bufferedWriter) Flush() error { | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | type bufferedWriterTimeoutWriter bufferedWriter | ||||||
|  | 
 | ||||||
|  | func (w *bufferedWriterTimeoutWriter) Write(p []byte) (n int, err error) { | ||||||
|  | 	return writeWithByteTimeout(w.group, w.conn, w.byteTimeout, p) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // writeWithByteTimeout writes to conn. | ||||||
|  | // If more than timeout passes without any bytes being written to the connection, | ||||||
|  | // the write fails. | ||||||
|  | func writeWithByteTimeout(group synctestGroupInterface, conn net.Conn, timeout time.Duration, p []byte) (n int, err error) { | ||||||
|  | 	if timeout <= 0 { | ||||||
|  | 		return conn.Write(p) | ||||||
|  | 	} | ||||||
|  | 	for { | ||||||
|  | 		var now time.Time | ||||||
|  | 		if group == nil { | ||||||
|  | 			now = time.Now() | ||||||
|  | 		} else { | ||||||
|  | 			now = group.Now() | ||||||
|  | 		} | ||||||
|  | 		conn.SetWriteDeadline(now.Add(timeout)) | ||||||
|  | 		nn, err := conn.Write(p[n:]) | ||||||
|  | 		n += nn | ||||||
|  | 		if n == len(p) || nn == 0 || !errors.Is(err, os.ErrDeadlineExceeded) { | ||||||
|  | 			// Either we finished the write, made no progress, or hit the deadline. | ||||||
|  | 			// Whichever it is, we're done now. | ||||||
|  | 			conn.SetWriteDeadline(time.Time{}) | ||||||
|  | 			return n, err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func mustUint31(v int32) uint32 { | func mustUint31(v int32) uint32 { | ||||||
| 	if v < 0 || v > 2147483647 { | 	if v < 0 || v > 2147483647 { | ||||||
| 		panic("out of range") | 		panic("out of range") | ||||||
|  |  | ||||||
							
								
								
									
										173
									
								
								vendor/golang.org/x/net/http2/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										173
									
								
								vendor/golang.org/x/net/http2/server.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -29,6 +29,7 @@ import ( | ||||||
| 	"bufio" | 	"bufio" | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"crypto/rand" | ||||||
| 	"crypto/tls" | 	"crypto/tls" | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | @ -56,6 +57,10 @@ const ( | ||||||
| 	firstSettingsTimeout  = 2 * time.Second // should be in-flight with preface anyway | 	firstSettingsTimeout  = 2 * time.Second // should be in-flight with preface anyway | ||||||
| 	handlerChunkWriteSize = 4 << 10 | 	handlerChunkWriteSize = 4 << 10 | ||||||
| 	defaultMaxStreams     = 250 // TODO: make this 100 as the GFE seems to? | 	defaultMaxStreams     = 250 // TODO: make this 100 as the GFE seems to? | ||||||
|  | 
 | ||||||
|  | 	// maxQueuedControlFrames is the maximum number of control frames like | ||||||
|  | 	// SETTINGS, PING and RST_STREAM that will be queued for writing before | ||||||
|  | 	// the connection is closed to prevent memory exhaustion attacks. | ||||||
| 	maxQueuedControlFrames = 10000 | 	maxQueuedControlFrames = 10000 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -127,6 +132,22 @@ type Server struct { | ||||||
| 	// If zero or negative, there is no timeout. | 	// If zero or negative, there is no timeout. | ||||||
| 	IdleTimeout time.Duration | 	IdleTimeout time.Duration | ||||||
| 
 | 
 | ||||||
|  | 	// ReadIdleTimeout is the timeout after which a health check using a ping | ||||||
|  | 	// frame will be carried out if no frame is received on the connection. | ||||||
|  | 	// If zero, no health check is performed. | ||||||
|  | 	ReadIdleTimeout time.Duration | ||||||
|  | 
 | ||||||
|  | 	// PingTimeout is the timeout after which the connection will be closed | ||||||
|  | 	// if a response to a ping is not received. | ||||||
|  | 	// If zero, a default of 15 seconds is used. | ||||||
|  | 	PingTimeout time.Duration | ||||||
|  | 
 | ||||||
|  | 	// WriteByteTimeout is the timeout after which a connection will be | ||||||
|  | 	// closed if no data can be written to it. The timeout begins when data is | ||||||
|  | 	// available to write, and is extended whenever any bytes are written. | ||||||
|  | 	// If zero or negative, there is no timeout. | ||||||
|  | 	WriteByteTimeout time.Duration | ||||||
|  | 
 | ||||||
| 	// MaxUploadBufferPerConnection is the size of the initial flow | 	// MaxUploadBufferPerConnection is the size of the initial flow | ||||||
| 	// control window for each connections. The HTTP/2 spec does not | 	// control window for each connections. The HTTP/2 spec does not | ||||||
| 	// allow this to be smaller than 65535 or larger than 2^32-1. | 	// allow this to be smaller than 65535 or larger than 2^32-1. | ||||||
|  | @ -189,57 +210,6 @@ func (s *Server) afterFunc(d time.Duration, f func()) timer { | ||||||
| 	return timeTimer{time.AfterFunc(d, f)} | 	return timeTimer{time.AfterFunc(d, f)} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *Server) initialConnRecvWindowSize() int32 { |  | ||||||
| 	if s.MaxUploadBufferPerConnection >= initialWindowSize { |  | ||||||
| 		return s.MaxUploadBufferPerConnection |  | ||||||
| 	} |  | ||||||
| 	return 1 << 20 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (s *Server) initialStreamRecvWindowSize() int32 { |  | ||||||
| 	if s.MaxUploadBufferPerStream > 0 { |  | ||||||
| 		return s.MaxUploadBufferPerStream |  | ||||||
| 	} |  | ||||||
| 	return 1 << 20 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (s *Server) maxReadFrameSize() uint32 { |  | ||||||
| 	if v := s.MaxReadFrameSize; v >= minMaxFrameSize && v <= maxFrameSize { |  | ||||||
| 		return v |  | ||||||
| 	} |  | ||||||
| 	return defaultMaxReadFrameSize |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (s *Server) maxConcurrentStreams() uint32 { |  | ||||||
| 	if v := s.MaxConcurrentStreams; v > 0 { |  | ||||||
| 		return v |  | ||||||
| 	} |  | ||||||
| 	return defaultMaxStreams |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (s *Server) maxDecoderHeaderTableSize() uint32 { |  | ||||||
| 	if v := s.MaxDecoderHeaderTableSize; v > 0 { |  | ||||||
| 		return v |  | ||||||
| 	} |  | ||||||
| 	return initialHeaderTableSize |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (s *Server) maxEncoderHeaderTableSize() uint32 { |  | ||||||
| 	if v := s.MaxEncoderHeaderTableSize; v > 0 { |  | ||||||
| 		return v |  | ||||||
| 	} |  | ||||||
| 	return initialHeaderTableSize |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // maxQueuedControlFrames is the maximum number of control frames like |  | ||||||
| // SETTINGS, PING and RST_STREAM that will be queued for writing before |  | ||||||
| // the connection is closed to prevent memory exhaustion attacks. |  | ||||||
| func (s *Server) maxQueuedControlFrames() int { |  | ||||||
| 	// TODO: if anybody asks, add a Server field, and remember to define the |  | ||||||
| 	// behavior of negative values. |  | ||||||
| 	return maxQueuedControlFrames |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| type serverInternalState struct { | type serverInternalState struct { | ||||||
| 	mu          sync.Mutex | 	mu          sync.Mutex | ||||||
| 	activeConns map[*serverConn]struct{} | 	activeConns map[*serverConn]struct{} | ||||||
|  | @ -440,13 +410,15 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon | ||||||
| 	baseCtx, cancel := serverConnBaseContext(c, opts) | 	baseCtx, cancel := serverConnBaseContext(c, opts) | ||||||
| 	defer cancel() | 	defer cancel() | ||||||
| 
 | 
 | ||||||
|  | 	http1srv := opts.baseConfig() | ||||||
|  | 	conf := configFromServer(http1srv, s) | ||||||
| 	sc := &serverConn{ | 	sc := &serverConn{ | ||||||
| 		srv:                         s, | 		srv:                         s, | ||||||
| 		hs:                          opts.baseConfig(), | 		hs:                          http1srv, | ||||||
| 		conn:                        c, | 		conn:                        c, | ||||||
| 		baseCtx:                     baseCtx, | 		baseCtx:                     baseCtx, | ||||||
| 		remoteAddrStr:               c.RemoteAddr().String(), | 		remoteAddrStr:               c.RemoteAddr().String(), | ||||||
| 		bw:                          newBufferedWriter(c), | 		bw:                          newBufferedWriter(s.group, c, conf.WriteByteTimeout), | ||||||
| 		handler:                     opts.handler(), | 		handler:                     opts.handler(), | ||||||
| 		streams:                     make(map[uint32]*stream), | 		streams:                     make(map[uint32]*stream), | ||||||
| 		readFrameCh:                 make(chan readFrameResult), | 		readFrameCh:                 make(chan readFrameResult), | ||||||
|  | @ -456,9 +428,12 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon | ||||||
| 		bodyReadCh:                  make(chan bodyReadMsg),         // buffering doesn't matter either way | 		bodyReadCh:                  make(chan bodyReadMsg),         // buffering doesn't matter either way | ||||||
| 		doneServing:                 make(chan struct{}), | 		doneServing:                 make(chan struct{}), | ||||||
| 		clientMaxStreams:            math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value" | 		clientMaxStreams:            math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value" | ||||||
| 		advMaxStreams:               s.maxConcurrentStreams(), | 		advMaxStreams:               conf.MaxConcurrentStreams, | ||||||
| 		initialStreamSendWindowSize: initialWindowSize, | 		initialStreamSendWindowSize: initialWindowSize, | ||||||
|  | 		initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream, | ||||||
| 		maxFrameSize:                initialMaxFrameSize, | 		maxFrameSize:                initialMaxFrameSize, | ||||||
|  | 		pingTimeout:                 conf.PingTimeout, | ||||||
|  | 		countErrorFunc:              conf.CountError, | ||||||
| 		serveG:                      newGoroutineLock(), | 		serveG:                      newGoroutineLock(), | ||||||
| 		pushEnabled:                 true, | 		pushEnabled:                 true, | ||||||
| 		sawClientPreface:            opts.SawClientPreface, | 		sawClientPreface:            opts.SawClientPreface, | ||||||
|  | @ -491,15 +466,15 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon | ||||||
| 	sc.flow.add(initialWindowSize) | 	sc.flow.add(initialWindowSize) | ||||||
| 	sc.inflow.init(initialWindowSize) | 	sc.inflow.init(initialWindowSize) | ||||||
| 	sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) | 	sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) | ||||||
| 	sc.hpackEncoder.SetMaxDynamicTableSizeLimit(s.maxEncoderHeaderTableSize()) | 	sc.hpackEncoder.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize) | ||||||
| 
 | 
 | ||||||
| 	fr := NewFramer(sc.bw, c) | 	fr := NewFramer(sc.bw, c) | ||||||
| 	if s.CountError != nil { | 	if conf.CountError != nil { | ||||||
| 		fr.countError = s.CountError | 		fr.countError = conf.CountError | ||||||
| 	} | 	} | ||||||
| 	fr.ReadMetaHeaders = hpack.NewDecoder(s.maxDecoderHeaderTableSize(), nil) | 	fr.ReadMetaHeaders = hpack.NewDecoder(conf.MaxDecoderHeaderTableSize, nil) | ||||||
| 	fr.MaxHeaderListSize = sc.maxHeaderListSize() | 	fr.MaxHeaderListSize = sc.maxHeaderListSize() | ||||||
| 	fr.SetMaxReadFrameSize(s.maxReadFrameSize()) | 	fr.SetMaxReadFrameSize(conf.MaxReadFrameSize) | ||||||
| 	sc.framer = fr | 	sc.framer = fr | ||||||
| 
 | 
 | ||||||
| 	if tc, ok := c.(connectionStater); ok { | 	if tc, ok := c.(connectionStater); ok { | ||||||
|  | @ -532,7 +507,7 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon | ||||||
| 			// So for now, do nothing here again. | 			// So for now, do nothing here again. | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if !s.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) { | 		if !conf.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) { | ||||||
| 			// "Endpoints MAY choose to generate a connection error | 			// "Endpoints MAY choose to generate a connection error | ||||||
| 			// (Section 5.4.1) of type INADEQUATE_SECURITY if one of | 			// (Section 5.4.1) of type INADEQUATE_SECURITY if one of | ||||||
| 			// the prohibited cipher suites are negotiated." | 			// the prohibited cipher suites are negotiated." | ||||||
|  | @ -569,7 +544,7 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon | ||||||
| 		opts.UpgradeRequest = nil | 		opts.UpgradeRequest = nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	sc.serve() | 	sc.serve(conf) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) { | func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) { | ||||||
|  | @ -609,6 +584,7 @@ type serverConn struct { | ||||||
| 	tlsState         *tls.ConnectionState   // shared by all handlers, like net/http | 	tlsState         *tls.ConnectionState   // shared by all handlers, like net/http | ||||||
| 	remoteAddrStr    string | 	remoteAddrStr    string | ||||||
| 	writeSched       WriteScheduler | 	writeSched       WriteScheduler | ||||||
|  | 	countErrorFunc   func(errType string) | ||||||
| 
 | 
 | ||||||
| 	// Everything following is owned by the serve loop; use serveG.check(): | 	// Everything following is owned by the serve loop; use serveG.check(): | ||||||
| 	serveG                      goroutineLock // used to verify funcs are on serve() | 	serveG                      goroutineLock // used to verify funcs are on serve() | ||||||
|  | @ -628,6 +604,7 @@ type serverConn struct { | ||||||
| 	streams                     map[uint32]*stream | 	streams                     map[uint32]*stream | ||||||
| 	unstartedHandlers           []unstartedHandler | 	unstartedHandlers           []unstartedHandler | ||||||
| 	initialStreamSendWindowSize int32 | 	initialStreamSendWindowSize int32 | ||||||
|  | 	initialStreamRecvWindowSize int32 | ||||||
| 	maxFrameSize                int32 | 	maxFrameSize                int32 | ||||||
| 	peerMaxHeaderListSize       uint32            // zero means unknown (default) | 	peerMaxHeaderListSize       uint32            // zero means unknown (default) | ||||||
| 	canonHeader                 map[string]string // http2-lower-case -> Go-Canonical-Case | 	canonHeader                 map[string]string // http2-lower-case -> Go-Canonical-Case | ||||||
|  | @ -638,9 +615,14 @@ type serverConn struct { | ||||||
| 	inGoAway                    bool              // we've started to or sent GOAWAY | 	inGoAway                    bool              // we've started to or sent GOAWAY | ||||||
| 	inFrameScheduleLoop         bool              // whether we're in the scheduleFrameWrite loop | 	inFrameScheduleLoop         bool              // whether we're in the scheduleFrameWrite loop | ||||||
| 	needToSendGoAway            bool              // we need to schedule a GOAWAY frame write | 	needToSendGoAway            bool              // we need to schedule a GOAWAY frame write | ||||||
|  | 	pingSent                    bool | ||||||
|  | 	sentPingData                [8]byte | ||||||
| 	goAwayCode                  ErrCode | 	goAwayCode                  ErrCode | ||||||
| 	shutdownTimer               timer // nil until used | 	shutdownTimer               timer // nil until used | ||||||
| 	idleTimer                   timer // nil if unused | 	idleTimer                   timer // nil if unused | ||||||
|  | 	readIdleTimeout             time.Duration | ||||||
|  | 	pingTimeout                 time.Duration | ||||||
|  | 	readIdleTimer               timer // nil if unused | ||||||
| 
 | 
 | ||||||
| 	// Owned by the writeFrameAsync goroutine: | 	// Owned by the writeFrameAsync goroutine: | ||||||
| 	headerWriteBuf bytes.Buffer | 	headerWriteBuf bytes.Buffer | ||||||
|  | @ -655,11 +637,7 @@ func (sc *serverConn) maxHeaderListSize() uint32 { | ||||||
| 	if n <= 0 { | 	if n <= 0 { | ||||||
| 		n = http.DefaultMaxHeaderBytes | 		n = http.DefaultMaxHeaderBytes | ||||||
| 	} | 	} | ||||||
| 	// http2's count is in a slightly different unit and includes 32 bytes per pair. | 	return uint32(adjustHTTP1MaxHeaderSize(int64(n))) | ||||||
| 	// So, take the net/http.Server value and pad it up a bit, assuming 10 headers. |  | ||||||
| 	const perFieldOverhead = 32 // per http2 spec |  | ||||||
| 	const typicalHeaders = 10   // conservative |  | ||||||
| 	return uint32(n + typicalHeaders*perFieldOverhead) |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (sc *serverConn) curOpenStreams() uint32 { | func (sc *serverConn) curOpenStreams() uint32 { | ||||||
|  | @ -923,7 +901,7 @@ func (sc *serverConn) notePanic() { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (sc *serverConn) serve() { | func (sc *serverConn) serve(conf http2Config) { | ||||||
| 	sc.serveG.check() | 	sc.serveG.check() | ||||||
| 	defer sc.notePanic() | 	defer sc.notePanic() | ||||||
| 	defer sc.conn.Close() | 	defer sc.conn.Close() | ||||||
|  | @ -937,18 +915,18 @@ func (sc *serverConn) serve() { | ||||||
| 
 | 
 | ||||||
| 	sc.writeFrame(FrameWriteRequest{ | 	sc.writeFrame(FrameWriteRequest{ | ||||||
| 		write: writeSettings{ | 		write: writeSettings{ | ||||||
| 			{SettingMaxFrameSize, sc.srv.maxReadFrameSize()}, | 			{SettingMaxFrameSize, conf.MaxReadFrameSize}, | ||||||
| 			{SettingMaxConcurrentStreams, sc.advMaxStreams}, | 			{SettingMaxConcurrentStreams, sc.advMaxStreams}, | ||||||
| 			{SettingMaxHeaderListSize, sc.maxHeaderListSize()}, | 			{SettingMaxHeaderListSize, sc.maxHeaderListSize()}, | ||||||
| 			{SettingHeaderTableSize, sc.srv.maxDecoderHeaderTableSize()}, | 			{SettingHeaderTableSize, conf.MaxDecoderHeaderTableSize}, | ||||||
| 			{SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())}, | 			{SettingInitialWindowSize, uint32(sc.initialStreamRecvWindowSize)}, | ||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
| 	sc.unackedSettings++ | 	sc.unackedSettings++ | ||||||
| 
 | 
 | ||||||
| 	// Each connection starts with initialWindowSize inflow tokens. | 	// Each connection starts with initialWindowSize inflow tokens. | ||||||
| 	// If a higher value is configured, we add more tokens. | 	// If a higher value is configured, we add more tokens. | ||||||
| 	if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 { | 	if diff := conf.MaxUploadBufferPerConnection - initialWindowSize; diff > 0 { | ||||||
| 		sc.sendWindowUpdate(nil, int(diff)) | 		sc.sendWindowUpdate(nil, int(diff)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -968,11 +946,18 @@ func (sc *serverConn) serve() { | ||||||
| 		defer sc.idleTimer.Stop() | 		defer sc.idleTimer.Stop() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if conf.SendPingTimeout > 0 { | ||||||
|  | 		sc.readIdleTimeout = conf.SendPingTimeout | ||||||
|  | 		sc.readIdleTimer = sc.srv.afterFunc(conf.SendPingTimeout, sc.onReadIdleTimer) | ||||||
|  | 		defer sc.readIdleTimer.Stop() | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	go sc.readFrames() // closed by defer sc.conn.Close above | 	go sc.readFrames() // closed by defer sc.conn.Close above | ||||||
| 
 | 
 | ||||||
| 	settingsTimer := sc.srv.afterFunc(firstSettingsTimeout, sc.onSettingsTimer) | 	settingsTimer := sc.srv.afterFunc(firstSettingsTimeout, sc.onSettingsTimer) | ||||||
| 	defer settingsTimer.Stop() | 	defer settingsTimer.Stop() | ||||||
| 
 | 
 | ||||||
|  | 	lastFrameTime := sc.srv.now() | ||||||
| 	loopNum := 0 | 	loopNum := 0 | ||||||
| 	for { | 	for { | ||||||
| 		loopNum++ | 		loopNum++ | ||||||
|  | @ -986,6 +971,7 @@ func (sc *serverConn) serve() { | ||||||
| 		case res := <-sc.wroteFrameCh: | 		case res := <-sc.wroteFrameCh: | ||||||
| 			sc.wroteFrame(res) | 			sc.wroteFrame(res) | ||||||
| 		case res := <-sc.readFrameCh: | 		case res := <-sc.readFrameCh: | ||||||
|  | 			lastFrameTime = sc.srv.now() | ||||||
| 			// Process any written frames before reading new frames from the client since a | 			// Process any written frames before reading new frames from the client since a | ||||||
| 			// written frame could have triggered a new stream to be started. | 			// written frame could have triggered a new stream to be started. | ||||||
| 			if sc.writingFrameAsync { | 			if sc.writingFrameAsync { | ||||||
|  | @ -1017,6 +1003,8 @@ func (sc *serverConn) serve() { | ||||||
| 				case idleTimerMsg: | 				case idleTimerMsg: | ||||||
| 					sc.vlogf("connection is idle") | 					sc.vlogf("connection is idle") | ||||||
| 					sc.goAway(ErrCodeNo) | 					sc.goAway(ErrCodeNo) | ||||||
|  | 				case readIdleTimerMsg: | ||||||
|  | 					sc.handlePingTimer(lastFrameTime) | ||||||
| 				case shutdownTimerMsg: | 				case shutdownTimerMsg: | ||||||
| 					sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr()) | 					sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr()) | ||||||
| 					return | 					return | ||||||
|  | @ -1039,7 +1027,7 @@ func (sc *serverConn) serve() { | ||||||
| 		// If the peer is causing us to generate a lot of control frames, | 		// If the peer is causing us to generate a lot of control frames, | ||||||
| 		// but not reading them from us, assume they are trying to make us | 		// but not reading them from us, assume they are trying to make us | ||||||
| 		// run out of memory. | 		// run out of memory. | ||||||
| 		if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() { | 		if sc.queuedControlFrames > maxQueuedControlFrames { | ||||||
| 			sc.vlogf("http2: too many control frames in send queue, closing connection") | 			sc.vlogf("http2: too many control frames in send queue, closing connection") | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
|  | @ -1055,12 +1043,39 @@ func (sc *serverConn) serve() { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (sc *serverConn) handlePingTimer(lastFrameReadTime time.Time) { | ||||||
|  | 	if sc.pingSent { | ||||||
|  | 		sc.vlogf("timeout waiting for PING response") | ||||||
|  | 		sc.conn.Close() | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	pingAt := lastFrameReadTime.Add(sc.readIdleTimeout) | ||||||
|  | 	now := sc.srv.now() | ||||||
|  | 	if pingAt.After(now) { | ||||||
|  | 		// We received frames since arming the ping timer. | ||||||
|  | 		// Reset it for the next possible timeout. | ||||||
|  | 		sc.readIdleTimer.Reset(pingAt.Sub(now)) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	sc.pingSent = true | ||||||
|  | 	// Ignore crypto/rand.Read errors: It generally can't fail, and worse case if it does | ||||||
|  | 	// is we send a PING frame containing 0s. | ||||||
|  | 	_, _ = rand.Read(sc.sentPingData[:]) | ||||||
|  | 	sc.writeFrame(FrameWriteRequest{ | ||||||
|  | 		write: &writePing{data: sc.sentPingData}, | ||||||
|  | 	}) | ||||||
|  | 	sc.readIdleTimer.Reset(sc.pingTimeout) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| type serverMessage int | type serverMessage int | ||||||
| 
 | 
 | ||||||
| // Message values sent to serveMsgCh. | // Message values sent to serveMsgCh. | ||||||
| var ( | var ( | ||||||
| 	settingsTimerMsg    = new(serverMessage) | 	settingsTimerMsg    = new(serverMessage) | ||||||
| 	idleTimerMsg        = new(serverMessage) | 	idleTimerMsg        = new(serverMessage) | ||||||
|  | 	readIdleTimerMsg    = new(serverMessage) | ||||||
| 	shutdownTimerMsg    = new(serverMessage) | 	shutdownTimerMsg    = new(serverMessage) | ||||||
| 	gracefulShutdownMsg = new(serverMessage) | 	gracefulShutdownMsg = new(serverMessage) | ||||||
| 	handlerDoneMsg      = new(serverMessage) | 	handlerDoneMsg      = new(serverMessage) | ||||||
|  | @ -1068,6 +1083,7 @@ var ( | ||||||
| 
 | 
 | ||||||
| func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) } | func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) } | ||||||
| func (sc *serverConn) onIdleTimer()     { sc.sendServeMsg(idleTimerMsg) } | func (sc *serverConn) onIdleTimer()     { sc.sendServeMsg(idleTimerMsg) } | ||||||
|  | func (sc *serverConn) onReadIdleTimer() { sc.sendServeMsg(readIdleTimerMsg) } | ||||||
| func (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) } | func (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) } | ||||||
| 
 | 
 | ||||||
| func (sc *serverConn) sendServeMsg(msg interface{}) { | func (sc *serverConn) sendServeMsg(msg interface{}) { | ||||||
|  | @ -1320,6 +1336,10 @@ func (sc *serverConn) wroteFrame(res frameWriteResult) { | ||||||
| 	sc.writingFrame = false | 	sc.writingFrame = false | ||||||
| 	sc.writingFrameAsync = false | 	sc.writingFrameAsync = false | ||||||
| 
 | 
 | ||||||
|  | 	if res.err != nil { | ||||||
|  | 		sc.conn.Close() | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	wr := res.wr | 	wr := res.wr | ||||||
| 
 | 
 | ||||||
| 	if writeEndsStream(wr.write) { | 	if writeEndsStream(wr.write) { | ||||||
|  | @ -1594,6 +1614,11 @@ func (sc *serverConn) processFrame(f Frame) error { | ||||||
| func (sc *serverConn) processPing(f *PingFrame) error { | func (sc *serverConn) processPing(f *PingFrame) error { | ||||||
| 	sc.serveG.check() | 	sc.serveG.check() | ||||||
| 	if f.IsAck() { | 	if f.IsAck() { | ||||||
|  | 		if sc.pingSent && sc.sentPingData == f.Data { | ||||||
|  | 			// This is a response to a PING we sent. | ||||||
|  | 			sc.pingSent = false | ||||||
|  | 			sc.readIdleTimer.Reset(sc.readIdleTimeout) | ||||||
|  | 		} | ||||||
| 		// 6.7 PING: " An endpoint MUST NOT respond to PING frames | 		// 6.7 PING: " An endpoint MUST NOT respond to PING frames | ||||||
| 		// containing this flag." | 		// containing this flag." | ||||||
| 		return nil | 		return nil | ||||||
|  | @ -2160,7 +2185,7 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream | ||||||
| 	st.cw.Init() | 	st.cw.Init() | ||||||
| 	st.flow.conn = &sc.flow // link to conn-level counter | 	st.flow.conn = &sc.flow // link to conn-level counter | ||||||
| 	st.flow.add(sc.initialStreamSendWindowSize) | 	st.flow.add(sc.initialStreamSendWindowSize) | ||||||
| 	st.inflow.init(sc.srv.initialStreamRecvWindowSize()) | 	st.inflow.init(sc.initialStreamRecvWindowSize) | ||||||
| 	if sc.hs.WriteTimeout > 0 { | 	if sc.hs.WriteTimeout > 0 { | ||||||
| 		st.writeDeadline = sc.srv.afterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) | 		st.writeDeadline = sc.srv.afterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) | ||||||
| 	} | 	} | ||||||
|  | @ -3301,7 +3326,7 @@ func (sc *serverConn) countError(name string, err error) error { | ||||||
| 	if sc == nil || sc.srv == nil { | 	if sc == nil || sc.srv == nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	f := sc.srv.CountError | 	f := sc.countErrorFunc | ||||||
| 	if f == nil { | 	if f == nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
							
								
								
									
										101
									
								
								vendor/golang.org/x/net/http2/transport.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										101
									
								
								vendor/golang.org/x/net/http2/transport.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -25,7 +25,6 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/http/httptrace" | 	"net/http/httptrace" | ||||||
| 	"net/textproto" | 	"net/textproto" | ||||||
| 	"os" |  | ||||||
| 	"sort" | 	"sort" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
|  | @ -227,40 +226,26 @@ func (t *Transport) contextWithTimeout(ctx context.Context, d time.Duration) (co | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (t *Transport) maxHeaderListSize() uint32 { | func (t *Transport) maxHeaderListSize() uint32 { | ||||||
| 	if t.MaxHeaderListSize == 0 { | 	n := int64(t.MaxHeaderListSize) | ||||||
|  | 	if t.t1 != nil && t.t1.MaxResponseHeaderBytes != 0 { | ||||||
|  | 		n = t.t1.MaxResponseHeaderBytes | ||||||
|  | 		if n > 0 { | ||||||
|  | 			n = adjustHTTP1MaxHeaderSize(n) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if n <= 0 { | ||||||
| 		return 10 << 20 | 		return 10 << 20 | ||||||
| 	} | 	} | ||||||
| 	if t.MaxHeaderListSize == 0xffffffff { | 	if n >= 0xffffffff { | ||||||
| 		return 0 | 		return 0 | ||||||
| 	} | 	} | ||||||
| 	return t.MaxHeaderListSize | 	return uint32(n) | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (t *Transport) maxFrameReadSize() uint32 { |  | ||||||
| 	if t.MaxReadFrameSize == 0 { |  | ||||||
| 		return 0 // use the default provided by the peer |  | ||||||
| 	} |  | ||||||
| 	if t.MaxReadFrameSize < minMaxFrameSize { |  | ||||||
| 		return minMaxFrameSize |  | ||||||
| 	} |  | ||||||
| 	if t.MaxReadFrameSize > maxFrameSize { |  | ||||||
| 		return maxFrameSize |  | ||||||
| 	} |  | ||||||
| 	return t.MaxReadFrameSize |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (t *Transport) disableCompression() bool { | func (t *Transport) disableCompression() bool { | ||||||
| 	return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression) | 	return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (t *Transport) pingTimeout() time.Duration { |  | ||||||
| 	if t.PingTimeout == 0 { |  | ||||||
| 		return 15 * time.Second |  | ||||||
| 	} |  | ||||||
| 	return t.PingTimeout |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2. | // ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2. | ||||||
| // It returns an error if t1 has already been HTTP/2-enabled. | // It returns an error if t1 has already been HTTP/2-enabled. | ||||||
| // | // | ||||||
|  | @ -375,6 +360,9 @@ type ClientConn struct { | ||||||
| 	peerMaxHeaderListSize       uint64 | 	peerMaxHeaderListSize       uint64 | ||||||
| 	peerMaxHeaderTableSize      uint32 | 	peerMaxHeaderTableSize      uint32 | ||||||
| 	initialWindowSize           uint32 | 	initialWindowSize           uint32 | ||||||
|  | 	initialStreamRecvWindowSize int32 | ||||||
|  | 	readIdleTimeout             time.Duration | ||||||
|  | 	pingTimeout                 time.Duration | ||||||
| 
 | 
 | ||||||
| 	// reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests. | 	// reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests. | ||||||
| 	// Write to reqHeaderMu to lock it, read from it to unlock. | 	// Write to reqHeaderMu to lock it, read from it to unlock. | ||||||
|  | @ -499,6 +487,7 @@ func (cs *clientStream) closeReqBodyLocked() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type stickyErrWriter struct { | type stickyErrWriter struct { | ||||||
|  | 	group   synctestGroupInterface | ||||||
| 	conn    net.Conn | 	conn    net.Conn | ||||||
| 	timeout time.Duration | 	timeout time.Duration | ||||||
| 	err     *error | 	err     *error | ||||||
|  | @ -508,22 +497,9 @@ func (sew stickyErrWriter) Write(p []byte) (n int, err error) { | ||||||
| 	if *sew.err != nil { | 	if *sew.err != nil { | ||||||
| 		return 0, *sew.err | 		return 0, *sew.err | ||||||
| 	} | 	} | ||||||
| 	for { | 	n, err = writeWithByteTimeout(sew.group, sew.conn, sew.timeout, p) | ||||||
| 		if sew.timeout != 0 { |  | ||||||
| 			sew.conn.SetWriteDeadline(time.Now().Add(sew.timeout)) |  | ||||||
| 		} |  | ||||||
| 		nn, err := sew.conn.Write(p[n:]) |  | ||||||
| 		n += nn |  | ||||||
| 		if n < len(p) && nn > 0 && errors.Is(err, os.ErrDeadlineExceeded) { |  | ||||||
| 			// Keep extending the deadline so long as we're making progress. |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		if sew.timeout != 0 { |  | ||||||
| 			sew.conn.SetWriteDeadline(time.Time{}) |  | ||||||
| 		} |  | ||||||
| 	*sew.err = err | 	*sew.err = err | ||||||
| 	return n, err | 	return n, err | ||||||
| 	} |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // noCachedConnError is the concrete type of ErrNoCachedConn, which | // noCachedConnError is the concrete type of ErrNoCachedConn, which | ||||||
|  | @ -758,25 +734,12 @@ func (t *Transport) expectContinueTimeout() time.Duration { | ||||||
| 	return t.t1.ExpectContinueTimeout | 	return t.t1.ExpectContinueTimeout | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (t *Transport) maxDecoderHeaderTableSize() uint32 { |  | ||||||
| 	if v := t.MaxDecoderHeaderTableSize; v > 0 { |  | ||||||
| 		return v |  | ||||||
| 	} |  | ||||||
| 	return initialHeaderTableSize |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (t *Transport) maxEncoderHeaderTableSize() uint32 { |  | ||||||
| 	if v := t.MaxEncoderHeaderTableSize; v > 0 { |  | ||||||
| 		return v |  | ||||||
| 	} |  | ||||||
| 	return initialHeaderTableSize |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { | func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { | ||||||
| 	return t.newClientConn(c, t.disableKeepAlives()) | 	return t.newClientConn(c, t.disableKeepAlives()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { | func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { | ||||||
|  | 	conf := configFromTransport(t) | ||||||
| 	cc := &ClientConn{ | 	cc := &ClientConn{ | ||||||
| 		t:                           t, | 		t:                           t, | ||||||
| 		tconn:                       c, | 		tconn:                       c, | ||||||
|  | @ -784,18 +747,23 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro | ||||||
| 		nextStreamID:                1, | 		nextStreamID:                1, | ||||||
| 		maxFrameSize:                16 << 10, // spec default | 		maxFrameSize:                16 << 10, // spec default | ||||||
| 		initialWindowSize:           65535,    // spec default | 		initialWindowSize:           65535,    // spec default | ||||||
|  | 		initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream, | ||||||
| 		maxConcurrentStreams:        initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. | 		maxConcurrentStreams:        initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. | ||||||
| 		peerMaxHeaderListSize:       0xffffffffffffffff,          // "infinite", per spec. Use 2^64-1 instead. | 		peerMaxHeaderListSize:       0xffffffffffffffff,          // "infinite", per spec. Use 2^64-1 instead. | ||||||
| 		streams:                     make(map[uint32]*clientStream), | 		streams:                     make(map[uint32]*clientStream), | ||||||
| 		singleUse:                   singleUse, | 		singleUse:                   singleUse, | ||||||
| 		wantSettingsAck:             true, | 		wantSettingsAck:             true, | ||||||
|  | 		readIdleTimeout:             conf.SendPingTimeout, | ||||||
|  | 		pingTimeout:                 conf.PingTimeout, | ||||||
| 		pings:                       make(map[[8]byte]chan struct{}), | 		pings:                       make(map[[8]byte]chan struct{}), | ||||||
| 		reqHeaderMu:                 make(chan struct{}, 1), | 		reqHeaderMu:                 make(chan struct{}, 1), | ||||||
| 	} | 	} | ||||||
|  | 	var group synctestGroupInterface | ||||||
| 	if t.transportTestHooks != nil { | 	if t.transportTestHooks != nil { | ||||||
| 		t.markNewGoroutine() | 		t.markNewGoroutine() | ||||||
| 		t.transportTestHooks.newclientconn(cc) | 		t.transportTestHooks.newclientconn(cc) | ||||||
| 		c = cc.tconn | 		c = cc.tconn | ||||||
|  | 		group = t.group | ||||||
| 	} | 	} | ||||||
| 	if VerboseLogs { | 	if VerboseLogs { | ||||||
| 		t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) | 		t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) | ||||||
|  | @ -807,24 +775,23 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro | ||||||
| 	// TODO: adjust this writer size to account for frame size + | 	// TODO: adjust this writer size to account for frame size + | ||||||
| 	// MTU + crypto/tls record padding. | 	// MTU + crypto/tls record padding. | ||||||
| 	cc.bw = bufio.NewWriter(stickyErrWriter{ | 	cc.bw = bufio.NewWriter(stickyErrWriter{ | ||||||
|  | 		group:   group, | ||||||
| 		conn:    c, | 		conn:    c, | ||||||
| 		timeout: t.WriteByteTimeout, | 		timeout: conf.WriteByteTimeout, | ||||||
| 		err:     &cc.werr, | 		err:     &cc.werr, | ||||||
| 	}) | 	}) | ||||||
| 	cc.br = bufio.NewReader(c) | 	cc.br = bufio.NewReader(c) | ||||||
| 	cc.fr = NewFramer(cc.bw, cc.br) | 	cc.fr = NewFramer(cc.bw, cc.br) | ||||||
| 	if t.maxFrameReadSize() != 0 { | 	cc.fr.SetMaxReadFrameSize(conf.MaxReadFrameSize) | ||||||
| 		cc.fr.SetMaxReadFrameSize(t.maxFrameReadSize()) |  | ||||||
| 	} |  | ||||||
| 	if t.CountError != nil { | 	if t.CountError != nil { | ||||||
| 		cc.fr.countError = t.CountError | 		cc.fr.countError = t.CountError | ||||||
| 	} | 	} | ||||||
| 	maxHeaderTableSize := t.maxDecoderHeaderTableSize() | 	maxHeaderTableSize := conf.MaxDecoderHeaderTableSize | ||||||
| 	cc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil) | 	cc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil) | ||||||
| 	cc.fr.MaxHeaderListSize = t.maxHeaderListSize() | 	cc.fr.MaxHeaderListSize = t.maxHeaderListSize() | ||||||
| 
 | 
 | ||||||
| 	cc.henc = hpack.NewEncoder(&cc.hbuf) | 	cc.henc = hpack.NewEncoder(&cc.hbuf) | ||||||
| 	cc.henc.SetMaxDynamicTableSizeLimit(t.maxEncoderHeaderTableSize()) | 	cc.henc.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize) | ||||||
| 	cc.peerMaxHeaderTableSize = initialHeaderTableSize | 	cc.peerMaxHeaderTableSize = initialHeaderTableSize | ||||||
| 
 | 
 | ||||||
| 	if cs, ok := c.(connectionStater); ok { | 	if cs, ok := c.(connectionStater); ok { | ||||||
|  | @ -834,11 +801,9 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro | ||||||
| 
 | 
 | ||||||
| 	initialSettings := []Setting{ | 	initialSettings := []Setting{ | ||||||
| 		{ID: SettingEnablePush, Val: 0}, | 		{ID: SettingEnablePush, Val: 0}, | ||||||
| 		{ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow}, | 		{ID: SettingInitialWindowSize, Val: uint32(cc.initialStreamRecvWindowSize)}, | ||||||
| 	} |  | ||||||
| 	if max := t.maxFrameReadSize(); max != 0 { |  | ||||||
| 		initialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: max}) |  | ||||||
| 	} | 	} | ||||||
|  | 	initialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: conf.MaxReadFrameSize}) | ||||||
| 	if max := t.maxHeaderListSize(); max != 0 { | 	if max := t.maxHeaderListSize(); max != 0 { | ||||||
| 		initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max}) | 		initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max}) | ||||||
| 	} | 	} | ||||||
|  | @ -848,8 +813,8 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro | ||||||
| 
 | 
 | ||||||
| 	cc.bw.Write(clientPreface) | 	cc.bw.Write(clientPreface) | ||||||
| 	cc.fr.WriteSettings(initialSettings...) | 	cc.fr.WriteSettings(initialSettings...) | ||||||
| 	cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow) | 	cc.fr.WriteWindowUpdate(0, uint32(conf.MaxUploadBufferPerConnection)) | ||||||
| 	cc.inflow.init(transportDefaultConnFlow + initialWindowSize) | 	cc.inflow.init(conf.MaxUploadBufferPerConnection + initialWindowSize) | ||||||
| 	cc.bw.Flush() | 	cc.bw.Flush() | ||||||
| 	if cc.werr != nil { | 	if cc.werr != nil { | ||||||
| 		cc.Close() | 		cc.Close() | ||||||
|  | @ -867,7 +832,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (cc *ClientConn) healthCheck() { | func (cc *ClientConn) healthCheck() { | ||||||
| 	pingTimeout := cc.t.pingTimeout() | 	pingTimeout := cc.pingTimeout | ||||||
| 	// We don't need to periodically ping in the health check, because the readLoop of ClientConn will | 	// We don't need to periodically ping in the health check, because the readLoop of ClientConn will | ||||||
| 	// trigger the healthCheck again if there is no frame received. | 	// trigger the healthCheck again if there is no frame received. | ||||||
| 	ctx, cancel := cc.t.contextWithTimeout(context.Background(), pingTimeout) | 	ctx, cancel := cc.t.contextWithTimeout(context.Background(), pingTimeout) | ||||||
|  | @ -2199,7 +2164,7 @@ type resAndError struct { | ||||||
| func (cc *ClientConn) addStreamLocked(cs *clientStream) { | func (cc *ClientConn) addStreamLocked(cs *clientStream) { | ||||||
| 	cs.flow.add(int32(cc.initialWindowSize)) | 	cs.flow.add(int32(cc.initialWindowSize)) | ||||||
| 	cs.flow.setConnFlow(&cc.flow) | 	cs.flow.setConnFlow(&cc.flow) | ||||||
| 	cs.inflow.init(transportDefaultStreamFlow) | 	cs.inflow.init(cc.initialStreamRecvWindowSize) | ||||||
| 	cs.ID = cc.nextStreamID | 	cs.ID = cc.nextStreamID | ||||||
| 	cc.nextStreamID += 2 | 	cc.nextStreamID += 2 | ||||||
| 	cc.streams[cs.ID] = cs | 	cc.streams[cs.ID] = cs | ||||||
|  | @ -2345,7 +2310,7 @@ func (cc *ClientConn) countReadFrameError(err error) { | ||||||
| func (rl *clientConnReadLoop) run() error { | func (rl *clientConnReadLoop) run() error { | ||||||
| 	cc := rl.cc | 	cc := rl.cc | ||||||
| 	gotSettings := false | 	gotSettings := false | ||||||
| 	readIdleTimeout := cc.t.ReadIdleTimeout | 	readIdleTimeout := cc.readIdleTimeout | ||||||
| 	var t timer | 	var t timer | ||||||
| 	if readIdleTimeout != 0 { | 	if readIdleTimeout != 0 { | ||||||
| 		t = cc.t.afterFunc(readIdleTimeout, cc.healthCheck) | 		t = cc.t.afterFunc(readIdleTimeout, cc.healthCheck) | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								vendor/golang.org/x/net/http2/write.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/golang.org/x/net/http2/write.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -131,6 +131,16 @@ func (se StreamError) writeFrame(ctx writeContext) error { | ||||||
| 
 | 
 | ||||||
| func (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } | func (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } | ||||||
| 
 | 
 | ||||||
|  | type writePing struct { | ||||||
|  | 	data [8]byte | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (w writePing) writeFrame(ctx writeContext) error { | ||||||
|  | 	return ctx.Framer().WritePing(false, w.data) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (w writePing) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.data) <= max } | ||||||
|  | 
 | ||||||
| type writePingAck struct{ pf *PingFrame } | type writePingAck struct{ pf *PingFrame } | ||||||
| 
 | 
 | ||||||
| func (w writePingAck) writeFrame(ctx writeContext) error { | func (w writePingAck) writeFrame(ctx writeContext) error { | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -156,7 +156,7 @@ from the generated architecture-specific files listed below, and merge these | ||||||
| into a common file for each OS. | into a common file for each OS. | ||||||
| 
 | 
 | ||||||
| The merge is performed in the following steps: | The merge is performed in the following steps: | ||||||
| 1. Construct the set of common code that is idential in all architecture-specific files. | 1. Construct the set of common code that is identical in all architecture-specific files. | ||||||
| 2. Write this common code to the merged file. | 2. Write this common code to the merged file. | ||||||
| 3. Remove the common code from all architecture-specific files. | 3. Remove the common code from all architecture-specific files. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/mkerrors.sh
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/mkerrors.sh
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -656,7 +656,7 @@ errors=$( | ||||||
| signals=$( | signals=$( | ||||||
| 	echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | | 	echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | | ||||||
| 	awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | | 	awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | | ||||||
| 	grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | | 	grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | | ||||||
| 	sort | 	sort | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -666,7 +666,7 @@ echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags | | ||||||
| 	sort >_error.grep | 	sort >_error.grep | ||||||
| echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | | echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | | ||||||
| 	awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | | 	awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | | ||||||
| 	grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | | 	grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | | ||||||
| 	sort >_signal.grep | 	sort >_signal.grep | ||||||
| 
 | 
 | ||||||
| echo '// mkerrors.sh' "$@" | echo '// mkerrors.sh' "$@" | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_aix.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_aix.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -360,7 +360,7 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, | ||||||
| 	var status _C_int | 	var status _C_int | ||||||
| 	var r Pid_t | 	var r Pid_t | ||||||
| 	err = ERESTART | 	err = ERESTART | ||||||
| 	// AIX wait4 may return with ERESTART errno, while the processus is still | 	// AIX wait4 may return with ERESTART errno, while the process is still | ||||||
| 	// active. | 	// active. | ||||||
| 	for err == ERESTART { | 	for err == ERESTART { | ||||||
| 		r, err = wait4(Pid_t(pid), &status, options, rusage) | 		r, err = wait4(Pid_t(pid), &status, options, rusage) | ||||||
|  |  | ||||||
							
								
								
									
										63
									
								
								vendor/golang.org/x/sys/unix/syscall_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										63
									
								
								vendor/golang.org/x/sys/unix/syscall_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1295,6 +1295,48 @@ func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { | ||||||
| 	return &value, err | 	return &value, err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the "vegas" | ||||||
|  | // algorithm. | ||||||
|  | // | ||||||
|  | // The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: | ||||||
|  | // | ||||||
|  | //	algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) | ||||||
|  | func GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) { | ||||||
|  | 	var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment | ||||||
|  | 	vallen := _Socklen(SizeofTCPCCInfo) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) | ||||||
|  | 	out := (*TCPVegasInfo)(unsafe.Pointer(&value[0])) | ||||||
|  | 	return out, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the "dctp" | ||||||
|  | // algorithm. | ||||||
|  | // | ||||||
|  | // The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: | ||||||
|  | // | ||||||
|  | //	algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) | ||||||
|  | func GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) { | ||||||
|  | 	var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment | ||||||
|  | 	vallen := _Socklen(SizeofTCPCCInfo) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) | ||||||
|  | 	out := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0])) | ||||||
|  | 	return out, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the "bbr" | ||||||
|  | // algorithm. | ||||||
|  | // | ||||||
|  | // The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: | ||||||
|  | // | ||||||
|  | //	algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) | ||||||
|  | func GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) { | ||||||
|  | 	var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment | ||||||
|  | 	vallen := _Socklen(SizeofTCPCCInfo) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) | ||||||
|  | 	out := (*TCPBBRInfo)(unsafe.Pointer(&value[0])) | ||||||
|  | 	return out, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // GetsockoptString returns the string value of the socket option opt for the | // GetsockoptString returns the string value of the socket option opt for the | ||||||
| // socket associated with fd at the given socket level. | // socket associated with fd at the given socket level. | ||||||
| func GetsockoptString(fd, level, opt int) (string, error) { | func GetsockoptString(fd, level, opt int) (string, error) { | ||||||
|  | @ -1959,7 +2001,26 @@ func Getpgrp() (pid int) { | ||||||
| //sysnb	Getpid() (pid int) | //sysnb	Getpid() (pid int) | ||||||
| //sysnb	Getppid() (ppid int) | //sysnb	Getppid() (ppid int) | ||||||
| //sys	Getpriority(which int, who int) (prio int, err error) | //sys	Getpriority(which int, who int) (prio int, err error) | ||||||
| //sys	Getrandom(buf []byte, flags int) (n int, err error) | 
 | ||||||
|  | func Getrandom(buf []byte, flags int) (n int, err error) { | ||||||
|  | 	vdsoRet, supported := vgetrandom(buf, uint32(flags)) | ||||||
|  | 	if supported { | ||||||
|  | 		if vdsoRet < 0 { | ||||||
|  | 			return 0, errnoErr(syscall.Errno(-vdsoRet)) | ||||||
|  | 		} | ||||||
|  | 		return vdsoRet, nil | ||||||
|  | 	} | ||||||
|  | 	var p *byte | ||||||
|  | 	if len(buf) > 0 { | ||||||
|  | 		p = &buf[0] | ||||||
|  | 	} | ||||||
|  | 	r, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags)) | ||||||
|  | 	if e != 0 { | ||||||
|  | 		return 0, errnoErr(e) | ||||||
|  | 	} | ||||||
|  | 	return int(r), nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
| //sysnb	Getrusage(who int, rusage *Rusage) (err error) | //sysnb	Getrusage(who int, rusage *Rusage) (err error) | ||||||
| //sysnb	Getsid(pid int) (sid int, err error) | //sysnb	Getsid(pid int) (sid int, err error) | ||||||
| //sysnb	Gettid() (tid int) | //sysnb	Gettid() (tid int) | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -182,3 +182,5 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error | ||||||
| 	} | 	} | ||||||
| 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) | 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | const SYS_FSTATAT = SYS_NEWFSTATAT | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -214,3 +214,5 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error | ||||||
| 	} | 	} | ||||||
| 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) | 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | const SYS_FSTATAT = SYS_NEWFSTATAT | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -187,3 +187,5 @@ func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error | ||||||
| 	} | 	} | ||||||
| 	return riscvHWProbe(pairs, setSize, set, flags) | 	return riscvHWProbe(pairs, setSize, set, flags) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | const SYS_FSTATAT = SYS_NEWFSTATAT | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								vendor/golang.org/x/sys/unix/vgetrandom_linux.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/golang.org/x/sys/unix/vgetrandom_linux.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | // Copyright 2024 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 linux && go1.24 | ||||||
|  | 
 | ||||||
|  | package unix | ||||||
|  | 
 | ||||||
|  | import _ "unsafe" | ||||||
|  | 
 | ||||||
|  | //go:linkname vgetrandom runtime.vgetrandom | ||||||
|  | //go:noescape | ||||||
|  | func vgetrandom(p []byte, flags uint32) (ret int, supported bool) | ||||||
							
								
								
									
										11
									
								
								vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | ||||||
|  | // Copyright 2024 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 !linux || !go1.24 | ||||||
|  | 
 | ||||||
|  | package unix | ||||||
|  | 
 | ||||||
|  | func vgetrandom(p []byte, flags uint32) (ret int, supported bool) { | ||||||
|  | 	return -1, false | ||||||
|  | } | ||||||
							
								
								
									
										13
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -495,6 +495,7 @@ const ( | ||||||
| 	BPF_F_TEST_REG_INVARIANTS                   = 0x80 | 	BPF_F_TEST_REG_INVARIANTS                   = 0x80 | ||||||
| 	BPF_F_TEST_RND_HI32                         = 0x4 | 	BPF_F_TEST_RND_HI32                         = 0x4 | ||||||
| 	BPF_F_TEST_RUN_ON_CPU                       = 0x1 | 	BPF_F_TEST_RUN_ON_CPU                       = 0x1 | ||||||
|  | 	BPF_F_TEST_SKB_CHECKSUM_COMPLETE            = 0x4 | ||||||
| 	BPF_F_TEST_STATE_FREQ                       = 0x8 | 	BPF_F_TEST_STATE_FREQ                       = 0x8 | ||||||
| 	BPF_F_TEST_XDP_LIVE_FRAMES                  = 0x2 | 	BPF_F_TEST_XDP_LIVE_FRAMES                  = 0x2 | ||||||
| 	BPF_F_XDP_DEV_BOUND_ONLY                    = 0x40 | 	BPF_F_XDP_DEV_BOUND_ONLY                    = 0x40 | ||||||
|  | @ -1922,6 +1923,7 @@ const ( | ||||||
| 	MNT_EXPIRE                                  = 0x4 | 	MNT_EXPIRE                                  = 0x4 | ||||||
| 	MNT_FORCE                                   = 0x1 | 	MNT_FORCE                                   = 0x1 | ||||||
| 	MNT_ID_REQ_SIZE_VER0                        = 0x18 | 	MNT_ID_REQ_SIZE_VER0                        = 0x18 | ||||||
|  | 	MNT_ID_REQ_SIZE_VER1                        = 0x20 | ||||||
| 	MODULE_INIT_COMPRESSED_FILE                 = 0x4 | 	MODULE_INIT_COMPRESSED_FILE                 = 0x4 | ||||||
| 	MODULE_INIT_IGNORE_MODVERSIONS              = 0x1 | 	MODULE_INIT_IGNORE_MODVERSIONS              = 0x1 | ||||||
| 	MODULE_INIT_IGNORE_VERMAGIC                 = 0x2 | 	MODULE_INIT_IGNORE_VERMAGIC                 = 0x2 | ||||||
|  | @ -2187,7 +2189,7 @@ const ( | ||||||
| 	NFT_REG_SIZE                                = 0x10 | 	NFT_REG_SIZE                                = 0x10 | ||||||
| 	NFT_REJECT_ICMPX_MAX                        = 0x3 | 	NFT_REJECT_ICMPX_MAX                        = 0x3 | ||||||
| 	NFT_RT_MAX                                  = 0x4 | 	NFT_RT_MAX                                  = 0x4 | ||||||
| 	NFT_SECMARK_CTX_MAXLEN                      = 0x100 | 	NFT_SECMARK_CTX_MAXLEN                      = 0x1000 | ||||||
| 	NFT_SET_MAXNAMELEN                          = 0x100 | 	NFT_SET_MAXNAMELEN                          = 0x100 | ||||||
| 	NFT_SOCKET_MAX                              = 0x3 | 	NFT_SOCKET_MAX                              = 0x3 | ||||||
| 	NFT_TABLE_F_MASK                            = 0x7 | 	NFT_TABLE_F_MASK                            = 0x7 | ||||||
|  | @ -2356,9 +2358,11 @@ const ( | ||||||
| 	PERF_MEM_LVLNUM_IO                          = 0xa | 	PERF_MEM_LVLNUM_IO                          = 0xa | ||||||
| 	PERF_MEM_LVLNUM_L1                          = 0x1 | 	PERF_MEM_LVLNUM_L1                          = 0x1 | ||||||
| 	PERF_MEM_LVLNUM_L2                          = 0x2 | 	PERF_MEM_LVLNUM_L2                          = 0x2 | ||||||
|  | 	PERF_MEM_LVLNUM_L2_MHB                      = 0x5 | ||||||
| 	PERF_MEM_LVLNUM_L3                          = 0x3 | 	PERF_MEM_LVLNUM_L3                          = 0x3 | ||||||
| 	PERF_MEM_LVLNUM_L4                          = 0x4 | 	PERF_MEM_LVLNUM_L4                          = 0x4 | ||||||
| 	PERF_MEM_LVLNUM_LFB                         = 0xc | 	PERF_MEM_LVLNUM_LFB                         = 0xc | ||||||
|  | 	PERF_MEM_LVLNUM_MSC                         = 0x6 | ||||||
| 	PERF_MEM_LVLNUM_NA                          = 0xf | 	PERF_MEM_LVLNUM_NA                          = 0xf | ||||||
| 	PERF_MEM_LVLNUM_PMEM                        = 0xe | 	PERF_MEM_LVLNUM_PMEM                        = 0xe | ||||||
| 	PERF_MEM_LVLNUM_RAM                         = 0xd | 	PERF_MEM_LVLNUM_RAM                         = 0xd | ||||||
|  | @ -2431,6 +2435,7 @@ const ( | ||||||
| 	PRIO_PGRP                                   = 0x1 | 	PRIO_PGRP                                   = 0x1 | ||||||
| 	PRIO_PROCESS                                = 0x0 | 	PRIO_PROCESS                                = 0x0 | ||||||
| 	PRIO_USER                                   = 0x2 | 	PRIO_USER                                   = 0x2 | ||||||
|  | 	PROCFS_IOCTL_MAGIC                          = 'f' | ||||||
| 	PROC_SUPER_MAGIC                            = 0x9fa0 | 	PROC_SUPER_MAGIC                            = 0x9fa0 | ||||||
| 	PROT_EXEC                                   = 0x4 | 	PROT_EXEC                                   = 0x4 | ||||||
| 	PROT_GROWSDOWN                              = 0x1000000 | 	PROT_GROWSDOWN                              = 0x1000000 | ||||||
|  | @ -2933,11 +2938,12 @@ const ( | ||||||
| 	RUSAGE_SELF                                 = 0x0 | 	RUSAGE_SELF                                 = 0x0 | ||||||
| 	RUSAGE_THREAD                               = 0x1 | 	RUSAGE_THREAD                               = 0x1 | ||||||
| 	RWF_APPEND                                  = 0x10 | 	RWF_APPEND                                  = 0x10 | ||||||
|  | 	RWF_ATOMIC                                  = 0x40 | ||||||
| 	RWF_DSYNC                                   = 0x2 | 	RWF_DSYNC                                   = 0x2 | ||||||
| 	RWF_HIPRI                                   = 0x1 | 	RWF_HIPRI                                   = 0x1 | ||||||
| 	RWF_NOAPPEND                                = 0x20 | 	RWF_NOAPPEND                                = 0x20 | ||||||
| 	RWF_NOWAIT                                  = 0x8 | 	RWF_NOWAIT                                  = 0x8 | ||||||
| 	RWF_SUPPORTED                               = 0x3f | 	RWF_SUPPORTED                               = 0x7f | ||||||
| 	RWF_SYNC                                    = 0x4 | 	RWF_SYNC                                    = 0x4 | ||||||
| 	RWF_WRITE_LIFE_NOT_SET                      = 0x0 | 	RWF_WRITE_LIFE_NOT_SET                      = 0x0 | ||||||
| 	SCHED_BATCH                                 = 0x3 | 	SCHED_BATCH                                 = 0x3 | ||||||
|  | @ -3210,6 +3216,7 @@ const ( | ||||||
| 	STATX_ATTR_MOUNT_ROOT                       = 0x2000 | 	STATX_ATTR_MOUNT_ROOT                       = 0x2000 | ||||||
| 	STATX_ATTR_NODUMP                           = 0x40 | 	STATX_ATTR_NODUMP                           = 0x40 | ||||||
| 	STATX_ATTR_VERITY                           = 0x100000 | 	STATX_ATTR_VERITY                           = 0x100000 | ||||||
|  | 	STATX_ATTR_WRITE_ATOMIC                     = 0x400000 | ||||||
| 	STATX_BASIC_STATS                           = 0x7ff | 	STATX_BASIC_STATS                           = 0x7ff | ||||||
| 	STATX_BLOCKS                                = 0x400 | 	STATX_BLOCKS                                = 0x400 | ||||||
| 	STATX_BTIME                                 = 0x800 | 	STATX_BTIME                                 = 0x800 | ||||||
|  | @ -3226,6 +3233,7 @@ const ( | ||||||
| 	STATX_SUBVOL                                = 0x8000 | 	STATX_SUBVOL                                = 0x8000 | ||||||
| 	STATX_TYPE                                  = 0x1 | 	STATX_TYPE                                  = 0x1 | ||||||
| 	STATX_UID                                   = 0x8 | 	STATX_UID                                   = 0x8 | ||||||
|  | 	STATX_WRITE_ATOMIC                          = 0x10000 | ||||||
| 	STATX__RESERVED                             = 0x80000000 | 	STATX__RESERVED                             = 0x80000000 | ||||||
| 	SYNC_FILE_RANGE_WAIT_AFTER                  = 0x4 | 	SYNC_FILE_RANGE_WAIT_AFTER                  = 0x4 | ||||||
| 	SYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1 | 	SYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1 | ||||||
|  | @ -3624,6 +3632,7 @@ const ( | ||||||
| 	XDP_UMEM_PGOFF_COMPLETION_RING              = 0x180000000 | 	XDP_UMEM_PGOFF_COMPLETION_RING              = 0x180000000 | ||||||
| 	XDP_UMEM_PGOFF_FILL_RING                    = 0x100000000 | 	XDP_UMEM_PGOFF_FILL_RING                    = 0x100000000 | ||||||
| 	XDP_UMEM_REG                                = 0x4 | 	XDP_UMEM_REG                                = 0x4 | ||||||
|  | 	XDP_UMEM_TX_METADATA_LEN                    = 0x4 | ||||||
| 	XDP_UMEM_TX_SW_CSUM                         = 0x2 | 	XDP_UMEM_TX_SW_CSUM                         = 0x2 | ||||||
| 	XDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1 | 	XDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1 | ||||||
| 	XDP_USE_NEED_WAKEUP                         = 0x8 | 	XDP_USE_NEED_WAKEUP                         = 0x8 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -153,9 +153,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x20 | 	NFDBITS                          = 0x20 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -153,9 +153,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x20 | 	NFDBITS                          = 0x20 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -154,9 +154,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -154,9 +154,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x20 | 	NFDBITS                          = 0x20 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x20 | 	NFDBITS                          = 0x20 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -152,9 +152,14 @@ const ( | ||||||
| 	NL3                              = 0x300 | 	NL3                              = 0x300 | ||||||
| 	NLDLY                            = 0x300 | 	NLDLY                            = 0x300 | ||||||
| 	NOFLSH                           = 0x80000000 | 	NOFLSH                           = 0x80000000 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x4 | 	OLCUC                            = 0x4 | ||||||
| 	ONLCR                            = 0x2 | 	ONLCR                            = 0x2 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -152,9 +152,14 @@ const ( | ||||||
| 	NL3                              = 0x300 | 	NL3                              = 0x300 | ||||||
| 	NLDLY                            = 0x300 | 	NLDLY                            = 0x300 | ||||||
| 	NOFLSH                           = 0x80000000 | 	NOFLSH                           = 0x80000000 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x4 | 	OLCUC                            = 0x4 | ||||||
| 	ONLCR                            = 0x2 | 	ONLCR                            = 0x2 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -152,9 +152,14 @@ const ( | ||||||
| 	NL3                              = 0x300 | 	NL3                              = 0x300 | ||||||
| 	NLDLY                            = 0x300 | 	NLDLY                            = 0x300 | ||||||
| 	NOFLSH                           = 0x80000000 | 	NOFLSH                           = 0x80000000 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x4 | 	OLCUC                            = 0x4 | ||||||
| 	ONLCR                            = 0x2 | 	ONLCR                            = 0x2 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -150,9 +150,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x8008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0xb703 | 	NS_GET_NSTYPE                    = 0xb703 | ||||||
| 	NS_GET_OWNER_UID                 = 0xb704 | 	NS_GET_OWNER_UID                 = 0xb704 | ||||||
| 	NS_GET_PARENT                    = 0xb702 | 	NS_GET_PARENT                    = 0xb702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x8004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x8004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x8004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x8004b709 | ||||||
| 	NS_GET_USERNS                    = 0xb701 | 	NS_GET_USERNS                    = 0xb701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -155,9 +155,14 @@ const ( | ||||||
| 	NFDBITS                          = 0x40 | 	NFDBITS                          = 0x40 | ||||||
| 	NLDLY                            = 0x100 | 	NLDLY                            = 0x100 | ||||||
| 	NOFLSH                           = 0x80 | 	NOFLSH                           = 0x80 | ||||||
|  | 	NS_GET_MNTNS_ID                  = 0x4008b705 | ||||||
| 	NS_GET_NSTYPE                    = 0x2000b703 | 	NS_GET_NSTYPE                    = 0x2000b703 | ||||||
| 	NS_GET_OWNER_UID                 = 0x2000b704 | 	NS_GET_OWNER_UID                 = 0x2000b704 | ||||||
| 	NS_GET_PARENT                    = 0x2000b702 | 	NS_GET_PARENT                    = 0x2000b702 | ||||||
|  | 	NS_GET_PID_FROM_PIDNS            = 0x4004b706 | ||||||
|  | 	NS_GET_PID_IN_PIDNS              = 0x4004b708 | ||||||
|  | 	NS_GET_TGID_FROM_PIDNS           = 0x4004b707 | ||||||
|  | 	NS_GET_TGID_IN_PIDNS             = 0x4004b709 | ||||||
| 	NS_GET_USERNS                    = 0x2000b701 | 	NS_GET_USERNS                    = 0x2000b701 | ||||||
| 	OLCUC                            = 0x2 | 	OLCUC                            = 0x2 | ||||||
| 	ONLCR                            = 0x4 | 	ONLCR                            = 0x4 | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								vendor/golang.org/x/sys/unix/zsyscall_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/golang.org/x/sys/unix/zsyscall_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -971,23 +971,6 @@ func Getpriority(which int, who int) (prio int, err error) { | ||||||
| 
 | 
 | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||||
| 
 | 
 | ||||||
| func Getrandom(buf []byte, flags int) (n int, err error) { |  | ||||||
| 	var _p0 unsafe.Pointer |  | ||||||
| 	if len(buf) > 0 { |  | ||||||
| 		_p0 = unsafe.Pointer(&buf[0]) |  | ||||||
| 	} else { |  | ||||||
| 		_p0 = unsafe.Pointer(&_zero) |  | ||||||
| 	} |  | ||||||
| 	r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) |  | ||||||
| 	n = int(r0) |  | ||||||
| 	if e1 != 0 { |  | ||||||
| 		err = errnoErr(e1) |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
| 
 |  | ||||||
| func Getrusage(who int, rusage *Rusage) (err error) { | func Getrusage(who int, rusage *Rusage) (err error) { | ||||||
| 	_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) | 	_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) | ||||||
| 	if e1 != 0 { | 	if e1 != 0 { | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -341,6 +341,7 @@ const ( | ||||||
| 	SYS_STATX                   = 332 | 	SYS_STATX                   = 332 | ||||||
| 	SYS_IO_PGETEVENTS           = 333 | 	SYS_IO_PGETEVENTS           = 333 | ||||||
| 	SYS_RSEQ                    = 334 | 	SYS_RSEQ                    = 334 | ||||||
|  | 	SYS_URETPROBE               = 335 | ||||||
| 	SYS_PIDFD_SEND_SIGNAL       = 424 | 	SYS_PIDFD_SEND_SIGNAL       = 424 | ||||||
| 	SYS_IO_URING_SETUP          = 425 | 	SYS_IO_URING_SETUP          = 425 | ||||||
| 	SYS_IO_URING_ENTER          = 426 | 	SYS_IO_URING_ENTER          = 426 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -85,7 +85,7 @@ const ( | ||||||
| 	SYS_SPLICE                  = 76 | 	SYS_SPLICE                  = 76 | ||||||
| 	SYS_TEE                     = 77 | 	SYS_TEE                     = 77 | ||||||
| 	SYS_READLINKAT              = 78 | 	SYS_READLINKAT              = 78 | ||||||
| 	SYS_FSTATAT                 = 79 | 	SYS_NEWFSTATAT              = 79 | ||||||
| 	SYS_FSTAT                   = 80 | 	SYS_FSTAT                   = 80 | ||||||
| 	SYS_SYNC                    = 81 | 	SYS_SYNC                    = 81 | ||||||
| 	SYS_FSYNC                   = 82 | 	SYS_FSYNC                   = 82 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -84,6 +84,8 @@ const ( | ||||||
| 	SYS_SPLICE                  = 76 | 	SYS_SPLICE                  = 76 | ||||||
| 	SYS_TEE                     = 77 | 	SYS_TEE                     = 77 | ||||||
| 	SYS_READLINKAT              = 78 | 	SYS_READLINKAT              = 78 | ||||||
|  | 	SYS_NEWFSTATAT              = 79 | ||||||
|  | 	SYS_FSTAT                   = 80 | ||||||
| 	SYS_SYNC                    = 81 | 	SYS_SYNC                    = 81 | ||||||
| 	SYS_FSYNC                   = 82 | 	SYS_FSYNC                   = 82 | ||||||
| 	SYS_FDATASYNC               = 83 | 	SYS_FDATASYNC               = 83 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -84,7 +84,7 @@ const ( | ||||||
| 	SYS_SPLICE                  = 76 | 	SYS_SPLICE                  = 76 | ||||||
| 	SYS_TEE                     = 77 | 	SYS_TEE                     = 77 | ||||||
| 	SYS_READLINKAT              = 78 | 	SYS_READLINKAT              = 78 | ||||||
| 	SYS_FSTATAT                 = 79 | 	SYS_NEWFSTATAT              = 79 | ||||||
| 	SYS_FSTAT                   = 80 | 	SYS_FSTAT                   = 80 | ||||||
| 	SYS_SYNC                    = 81 | 	SYS_SYNC                    = 81 | ||||||
| 	SYS_FSYNC                   = 82 | 	SYS_FSYNC                   = 82 | ||||||
|  |  | ||||||
							
								
								
									
										40
									
								
								vendor/golang.org/x/sys/unix/ztypes_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								vendor/golang.org/x/sys/unix/ztypes_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -111,7 +111,11 @@ type Statx_t struct { | ||||||
| 	Dio_mem_align             uint32 | 	Dio_mem_align             uint32 | ||||||
| 	Dio_offset_align          uint32 | 	Dio_offset_align          uint32 | ||||||
| 	Subvol                    uint64 | 	Subvol                    uint64 | ||||||
| 	_                [11]uint64 | 	Atomic_write_unit_min     uint32 | ||||||
|  | 	Atomic_write_unit_max     uint32 | ||||||
|  | 	Atomic_write_segments_max uint32 | ||||||
|  | 	_                         [1]uint32 | ||||||
|  | 	_                         [9]uint64 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type Fsid struct { | type Fsid struct { | ||||||
|  | @ -516,6 +520,29 @@ type TCPInfo struct { | ||||||
| 	Total_rto_time       uint32 | 	Total_rto_time       uint32 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | type TCPVegasInfo struct { | ||||||
|  | 	Enabled uint32 | ||||||
|  | 	Rttcnt  uint32 | ||||||
|  | 	Rtt     uint32 | ||||||
|  | 	Minrtt  uint32 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type TCPDCTCPInfo struct { | ||||||
|  | 	Enabled  uint16 | ||||||
|  | 	Ce_state uint16 | ||||||
|  | 	Alpha    uint32 | ||||||
|  | 	Ab_ecn   uint32 | ||||||
|  | 	Ab_tot   uint32 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type TCPBBRInfo struct { | ||||||
|  | 	Bw_lo       uint32 | ||||||
|  | 	Bw_hi       uint32 | ||||||
|  | 	Min_rtt     uint32 | ||||||
|  | 	Pacing_gain uint32 | ||||||
|  | 	Cwnd_gain   uint32 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| type CanFilter struct { | type CanFilter struct { | ||||||
| 	Id   uint32 | 	Id   uint32 | ||||||
| 	Mask uint32 | 	Mask uint32 | ||||||
|  | @ -557,6 +584,7 @@ const ( | ||||||
| 	SizeofICMPv6Filter      = 0x20 | 	SizeofICMPv6Filter      = 0x20 | ||||||
| 	SizeofUcred             = 0xc | 	SizeofUcred             = 0xc | ||||||
| 	SizeofTCPInfo           = 0xf8 | 	SizeofTCPInfo           = 0xf8 | ||||||
|  | 	SizeofTCPCCInfo         = 0x14 | ||||||
| 	SizeofCanFilter         = 0x8 | 	SizeofCanFilter         = 0x8 | ||||||
| 	SizeofTCPRepairOpt      = 0x8 | 	SizeofTCPRepairOpt      = 0x8 | ||||||
| ) | ) | ||||||
|  | @ -3766,7 +3794,7 @@ const ( | ||||||
| 	ETHTOOL_MSG_PSE_GET                       = 0x24 | 	ETHTOOL_MSG_PSE_GET                       = 0x24 | ||||||
| 	ETHTOOL_MSG_PSE_SET                       = 0x25 | 	ETHTOOL_MSG_PSE_SET                       = 0x25 | ||||||
| 	ETHTOOL_MSG_RSS_GET                       = 0x26 | 	ETHTOOL_MSG_RSS_GET                       = 0x26 | ||||||
| 	ETHTOOL_MSG_USER_MAX                      = 0x2b | 	ETHTOOL_MSG_USER_MAX                      = 0x2c | ||||||
| 	ETHTOOL_MSG_KERNEL_NONE                   = 0x0 | 	ETHTOOL_MSG_KERNEL_NONE                   = 0x0 | ||||||
| 	ETHTOOL_MSG_STRSET_GET_REPLY              = 0x1 | 	ETHTOOL_MSG_STRSET_GET_REPLY              = 0x1 | ||||||
| 	ETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2 | 	ETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2 | ||||||
|  | @ -3806,7 +3834,7 @@ const ( | ||||||
| 	ETHTOOL_MSG_MODULE_NTF                    = 0x24 | 	ETHTOOL_MSG_MODULE_NTF                    = 0x24 | ||||||
| 	ETHTOOL_MSG_PSE_GET_REPLY                 = 0x25 | 	ETHTOOL_MSG_PSE_GET_REPLY                 = 0x25 | ||||||
| 	ETHTOOL_MSG_RSS_GET_REPLY                 = 0x26 | 	ETHTOOL_MSG_RSS_GET_REPLY                 = 0x26 | ||||||
| 	ETHTOOL_MSG_KERNEL_MAX                    = 0x2b | 	ETHTOOL_MSG_KERNEL_MAX                    = 0x2c | ||||||
| 	ETHTOOL_FLAG_COMPACT_BITSETS              = 0x1 | 	ETHTOOL_FLAG_COMPACT_BITSETS              = 0x1 | ||||||
| 	ETHTOOL_FLAG_OMIT_REPLY                   = 0x2 | 	ETHTOOL_FLAG_OMIT_REPLY                   = 0x2 | ||||||
| 	ETHTOOL_FLAG_STATS                        = 0x4 | 	ETHTOOL_FLAG_STATS                        = 0x4 | ||||||
|  | @ -3951,7 +3979,7 @@ const ( | ||||||
| 	ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL   = 0x17 | 	ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL   = 0x17 | ||||||
| 	ETHTOOL_A_COALESCE_USE_CQE_MODE_TX        = 0x18 | 	ETHTOOL_A_COALESCE_USE_CQE_MODE_TX        = 0x18 | ||||||
| 	ETHTOOL_A_COALESCE_USE_CQE_MODE_RX        = 0x19 | 	ETHTOOL_A_COALESCE_USE_CQE_MODE_RX        = 0x19 | ||||||
| 	ETHTOOL_A_COALESCE_MAX                    = 0x1c | 	ETHTOOL_A_COALESCE_MAX                    = 0x1e | ||||||
| 	ETHTOOL_A_PAUSE_UNSPEC                    = 0x0 | 	ETHTOOL_A_PAUSE_UNSPEC                    = 0x0 | ||||||
| 	ETHTOOL_A_PAUSE_HEADER                    = 0x1 | 	ETHTOOL_A_PAUSE_HEADER                    = 0x1 | ||||||
| 	ETHTOOL_A_PAUSE_AUTONEG                   = 0x2 | 	ETHTOOL_A_PAUSE_AUTONEG                   = 0x2 | ||||||
|  | @ -4609,7 +4637,7 @@ const ( | ||||||
| 	NL80211_ATTR_MAC_HINT                                   = 0xc8 | 	NL80211_ATTR_MAC_HINT                                   = 0xc8 | ||||||
| 	NL80211_ATTR_MAC_MASK                                   = 0xd7 | 	NL80211_ATTR_MAC_MASK                                   = 0xd7 | ||||||
| 	NL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca | 	NL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca | ||||||
| 	NL80211_ATTR_MAX                                        = 0x14a | 	NL80211_ATTR_MAX                                        = 0x14c | ||||||
| 	NL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4 | 	NL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4 | ||||||
| 	NL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce | 	NL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce | ||||||
| 	NL80211_ATTR_MAX_MATCH_SETS                             = 0x85 | 	NL80211_ATTR_MAX_MATCH_SETS                             = 0x85 | ||||||
|  | @ -5213,7 +5241,7 @@ const ( | ||||||
| 	NL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf | 	NL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf | ||||||
| 	NL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe | 	NL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe | ||||||
| 	NL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf | 	NL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf | ||||||
| 	NL80211_FREQUENCY_ATTR_MAX                              = 0x20 | 	NL80211_FREQUENCY_ATTR_MAX                              = 0x21 | ||||||
| 	NL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6 | 	NL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6 | ||||||
| 	NL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11 | 	NL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11 | ||||||
| 	NL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc | 	NL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -65,7 +65,7 @@ func LoadDLL(name string) (dll *DLL, err error) { | ||||||
| 	return d, nil | 	return d, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // MustLoadDLL is like LoadDLL but panics if load operation failes. | // MustLoadDLL is like LoadDLL but panics if load operation fails. | ||||||
| func MustLoadDLL(name string) *DLL { | func MustLoadDLL(name string) *DLL { | ||||||
| 	d, e := LoadDLL(name) | 	d, e := LoadDLL(name) | ||||||
| 	if e != nil { | 	if e != nil { | ||||||
|  |  | ||||||
							
								
								
									
										8
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -1058,7 +1058,7 @@ go.uber.org/multierr | ||||||
| # golang.org/x/arch v0.8.0 | # golang.org/x/arch v0.8.0 | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| golang.org/x/arch/x86/x86asm | golang.org/x/arch/x86/x86asm | ||||||
| # golang.org/x/crypto v0.27.0 | # golang.org/x/crypto v0.28.0 | ||||||
| ## explicit; go 1.20 | ## explicit; go 1.20 | ||||||
| golang.org/x/crypto/acme | golang.org/x/crypto/acme | ||||||
| golang.org/x/crypto/acme/autocert | golang.org/x/crypto/acme/autocert | ||||||
|  | @ -1096,7 +1096,7 @@ golang.org/x/image/webp | ||||||
| golang.org/x/mod/internal/lazyregexp | golang.org/x/mod/internal/lazyregexp | ||||||
| golang.org/x/mod/module | golang.org/x/mod/module | ||||||
| golang.org/x/mod/semver | golang.org/x/mod/semver | ||||||
| # golang.org/x/net v0.29.0 | # golang.org/x/net v0.30.0 | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| golang.org/x/net/bpf | golang.org/x/net/bpf | ||||||
| golang.org/x/net/context | golang.org/x/net/context | ||||||
|  | @ -1124,13 +1124,13 @@ golang.org/x/oauth2/internal | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| golang.org/x/sync/errgroup | golang.org/x/sync/errgroup | ||||||
| golang.org/x/sync/semaphore | golang.org/x/sync/semaphore | ||||||
| # golang.org/x/sys v0.25.0 | # golang.org/x/sys v0.26.0 | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| golang.org/x/sys/cpu | golang.org/x/sys/cpu | ||||||
| golang.org/x/sys/unix | golang.org/x/sys/unix | ||||||
| golang.org/x/sys/windows | golang.org/x/sys/windows | ||||||
| golang.org/x/sys/windows/registry | golang.org/x/sys/windows/registry | ||||||
| # golang.org/x/text v0.18.0 | # golang.org/x/text v0.19.0 | ||||||
| ## explicit; go 1.18 | ## explicit; go 1.18 | ||||||
| golang.org/x/text/cases | golang.org/x/text/cases | ||||||
| golang.org/x/text/encoding | golang.org/x/text/encoding | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue