Compare commits
	
		
			8 Commits
		
	
	
		
			td-v2.0.5
			...
			v2.0.4-mzq
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 730a7fb8c0 | |||
| a9add11578 | |||
|   | a0bd8c6f2d | ||
|   | 63272c3b7a | ||
|   | 07701fd755 | ||
|   | 48894d6f5e | ||
|   | b5eb7da8e5 | ||
|   | 2879c0790c | 
| @@ -12,7 +12,7 @@ | |||||||
| 	"features": { | 	"features": { | ||||||
| 		"ghcr.io/devcontainers/features/docker-in-docker:2": {}, | 		"ghcr.io/devcontainers/features/docker-in-docker:2": {}, | ||||||
| 		"ghcr.io/devcontainers/features/go:1": { | 		"ghcr.io/devcontainers/features/go:1": { | ||||||
| 			"version": "1.23.8" | 			"version": "1.23.7" | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/actions/install-go/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/actions/install-go/action.yml
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,7 @@ description: "Reusable action to install Go, so there is one place to bump Go ve | |||||||
| inputs: | inputs: | ||||||
|   go-version: |   go-version: | ||||||
|     required: true |     required: true | ||||||
|     default: "1.23.8" |     default: "1.23.7" | ||||||
|     description: "Go version to install" |     description: "Go version to install" | ||||||
|  |  | ||||||
| runs: | runs: | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/api-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/api-release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -6,7 +6,7 @@ on: | |||||||
| name: API Release | name: API Release | ||||||
|  |  | ||||||
| env: | env: | ||||||
|   GO_VERSION: "1.23.8" |   GO_VERSION: "1.23.7" | ||||||
|  |  | ||||||
| permissions: # added using https://github.com/step-security/secure-workflows | permissions: # added using https://github.com/step-security/secure-workflows | ||||||
|   contents: read |   contents: read | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -189,7 +189,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-arm, macos-13, windows-2019, windows-2022] |         os: [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-arm, macos-13, windows-2019, windows-2022] | ||||||
|         go-version: ["1.24.2", "1.23.8"] |         go-version: ["1.24.1", "1.23.7"] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | ||||||
|       - uses: ./.github/actions/install-go |       - uses: ./.github/actions/install-go | ||||||
| @@ -405,9 +405,7 @@ jobs: | |||||||
|           script/setup/install-critools |           script/setup/install-critools | ||||||
|           script/setup/install-failpoint-binaries |           script/setup/install-failpoint-binaries | ||||||
|  |  | ||||||
|       # Disable criu testing on arm64 until we can solve the consistent failures of restore testing |       - name: Install criu | ||||||
|       - if: matrix.os != 'ubuntu-24.04-arm' |  | ||||||
|         name: Install criu |  | ||||||
|         run: | |         run: | | ||||||
|           sudo add-apt-repository -y ppa:criu/ppa |           sudo add-apt-repository -y ppa:criu/ppa | ||||||
|           sudo apt-get update |           sudo apt-get update | ||||||
| @@ -488,12 +486,8 @@ jobs: | |||||||
|           TEST_RUNTIME: ${{ matrix.runtime }} |           TEST_RUNTIME: ${{ matrix.runtime }} | ||||||
|           CGROUP_DRIVER: ${{ matrix.cgroup_driver }} |           CGROUP_DRIVER: ${{ matrix.cgroup_driver }} | ||||||
|         run: | |         run: | | ||||||
|           # skipping the ipv6 test till https://github.com/actions/runner-images/issues/11985 is fixed |  | ||||||
|           if [[ ${{matrix.os}} == "ubuntu-22.04" ]]; then |  | ||||||
|             skip_test="runtime should support port mapping with host port and container port" |  | ||||||
|           fi |  | ||||||
|           env |           env | ||||||
|           sudo -E PATH=$PATH SKIP_TEST="$skip_test" ./script/critest.sh "${{github.workspace}}/report" |           sudo -E PATH=$PATH ./script/critest.sh "${{github.workspace}}/report" | ||||||
|  |  | ||||||
|       # Log the status of this VM to investigate issues like |       # Log the status of this VM to investigate issues like | ||||||
|       # https://github.com/containerd/containerd/issues/4969 |       # https://github.com/containerd/containerd/issues/4969 | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ on: | |||||||
| name: Release | name: Release | ||||||
|  |  | ||||||
| env: | env: | ||||||
|   GO_VERSION: "1.23.8" |   GO_VERSION: "1.23.7" | ||||||
|  |  | ||||||
| permissions: # added using https://github.com/step-security/secure-workflows | permissions: # added using https://github.com/step-security/secure-workflows | ||||||
|   contents: read |   contents: read | ||||||
| @@ -64,7 +64,7 @@ jobs: | |||||||
|  |  | ||||||
|   build: |   build: | ||||||
|     name: Build Release Binaries |     name: Build Release Binaries | ||||||
|     runs-on: ubuntu-24.04 |     runs-on: ubuntu-20.04 | ||||||
|     timeout-minutes: 30 |     timeout-minutes: 30 | ||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							| @@ -107,7 +107,7 @@ EOF | |||||||
|   config.vm.provision "install-golang", type: "shell", run: "once" do |sh| |   config.vm.provision "install-golang", type: "shell", run: "once" do |sh| | ||||||
|     sh.upload_path = "/tmp/vagrant-install-golang" |     sh.upload_path = "/tmp/vagrant-install-golang" | ||||||
|     sh.env = { |     sh.env = { | ||||||
|         'GO_VERSION': ENV['GO_VERSION'] || "1.23.8", |         'GO_VERSION': ENV['GO_VERSION'] || "1.23.7", | ||||||
|     } |     } | ||||||
|     sh.inline = <<~SHELL |     sh.inline = <<~SHELL | ||||||
|         #!/usr/bin/env bash |         #!/usr/bin/env bash | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| module github.com/containerd/containerd/api | module github.com/containerd/containerd/api | ||||||
|  |  | ||||||
| go 1.23.0 | go 1.21 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/containerd/ttrpc v1.2.5 | 	github.com/containerd/ttrpc v1.2.5 | ||||||
| @@ -17,7 +17,7 @@ require ( | |||||||
| 	github.com/golang/protobuf v1.5.3 // indirect | 	github.com/golang/protobuf v1.5.3 // indirect | ||||||
| 	github.com/opencontainers/go-digest v1.0.0 // indirect | 	github.com/opencontainers/go-digest v1.0.0 // indirect | ||||||
| 	github.com/sirupsen/logrus v1.9.3 // indirect | 	github.com/sirupsen/logrus v1.9.3 // indirect | ||||||
| 	golang.org/x/net v0.37.0 // indirect | 	golang.org/x/net v0.23.0 // indirect | ||||||
| 	golang.org/x/sys v0.31.0 // indirect | 	golang.org/x/sys v0.18.0 // indirect | ||||||
| 	golang.org/x/text v0.23.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								api/go.sum
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								api/go.sum
									
									
									
									
									
								
							| @@ -42,8 +42,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn | |||||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= | golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= | ||||||
| golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -51,12 +51,12 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h | |||||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
| golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| 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.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||||
|   | |||||||
| @@ -280,7 +280,6 @@ func (c *container) NewTask(ctx context.Context, ioCreate cio.Creator, opts ...N | |||||||
| 	} | 	} | ||||||
| 	info := TaskInfo{ | 	info := TaskInfo{ | ||||||
| 		runtime: r.Runtime.Name, | 		runtime: r.Runtime.Name, | ||||||
| 		runtimeOptions: r.Runtime.Options, |  | ||||||
| 	} | 	} | ||||||
| 	for _, o := range opts { | 	for _, o := range opts { | ||||||
| 		if err := o(ctx, c.client, &info); err != nil { | 		if err := o(ctx, c.client, &info); err != nil { | ||||||
|   | |||||||
| @@ -146,11 +146,6 @@ type TaskInfo struct { | |||||||
|  |  | ||||||
| 	// runtime is the runtime name for the container, and cannot be changed. | 	// runtime is the runtime name for the container, and cannot be changed. | ||||||
| 	runtime string | 	runtime string | ||||||
|  |  | ||||||
| 	// runtimeOptions is the runtime options for the container, and when task options are set, |  | ||||||
| 	// they will be based on the runtimeOptions. |  | ||||||
| 	// https://github.com/containerd/containerd/issues/11568 |  | ||||||
| 	runtimeOptions typeurl.Any |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // Runtime name for the container | // Runtime name for the container | ||||||
| @@ -158,29 +153,6 @@ func (i *TaskInfo) Runtime() string { | |||||||
| 	return i.runtime | 	return i.runtime | ||||||
| } | } | ||||||
|  |  | ||||||
| // getRuncOptions returns a reference to the runtime options for use by the task. |  | ||||||
| // If the set of options is not set by the opts passed into the NewTask creation |  | ||||||
| // this function first attempts to initialize the runtime options with a copy of the runtimeOptions, |  | ||||||
| // otherwise an empty set of options is assigned and returned |  | ||||||
| func (i *TaskInfo) getRuncOptions() (*options.Options, error) { |  | ||||||
| 	if i.Options != nil { |  | ||||||
| 		opts, ok := i.Options.(*options.Options) |  | ||||||
| 		if !ok { |  | ||||||
| 			return nil, errors.New("invalid runtime v2 options format") |  | ||||||
| 		} |  | ||||||
| 		return opts, nil |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	opts := &options.Options{} |  | ||||||
| 	if i.runtimeOptions != nil && i.runtimeOptions.GetValue() != nil { |  | ||||||
| 		if err := typeurl.UnmarshalTo(i.runtimeOptions, opts); err != nil { |  | ||||||
| 			return nil, fmt.Errorf("failed to get runtime v2 options: %w", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	i.Options = opts |  | ||||||
| 	return opts, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Task is the executable object within containerd | // Task is the executable object within containerd | ||||||
| type Task interface { | type Task interface { | ||||||
| 	Process | 	Process | ||||||
|   | |||||||
| @@ -54,9 +54,12 @@ func WithRuntimePath(absRuntimePath string) NewTaskOpts { | |||||||
| // usually it is served inside a sandbox, and we can get it from sandbox status. | // usually it is served inside a sandbox, and we can get it from sandbox status. | ||||||
| func WithTaskAPIEndpoint(address string, version uint32) NewTaskOpts { | func WithTaskAPIEndpoint(address string, version uint32) NewTaskOpts { | ||||||
| 	return func(ctx context.Context, client *Client, info *TaskInfo) error { | 	return func(ctx context.Context, client *Client, info *TaskInfo) error { | ||||||
| 		opts, err := info.getRuncOptions() | 		if info.Options == nil { | ||||||
| 		if err != nil { | 			info.Options = &options.Options{} | ||||||
| 			return err | 		} | ||||||
|  | 		opts, ok := info.Options.(*options.Options) | ||||||
|  | 		if !ok { | ||||||
|  | 			return errors.New("invalid runtime v2 options format") | ||||||
| 		} | 		} | ||||||
| 		opts.TaskApiAddress = address | 		opts.TaskApiAddress = address | ||||||
| 		opts.TaskApiVersion = version | 		opts.TaskApiVersion = version | ||||||
| @@ -116,9 +119,12 @@ func WithCheckpointImagePath(path string) CheckpointTaskOpts { | |||||||
| // WithRestoreImagePath sets image path for create option | // WithRestoreImagePath sets image path for create option | ||||||
| func WithRestoreImagePath(path string) NewTaskOpts { | func WithRestoreImagePath(path string) NewTaskOpts { | ||||||
| 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | ||||||
| 		opts, err := ti.getRuncOptions() | 		if ti.Options == nil { | ||||||
| 		if err != nil { | 			ti.Options = &options.Options{} | ||||||
| 			return err | 		} | ||||||
|  | 		opts, ok := ti.Options.(*options.Options) | ||||||
|  | 		if !ok { | ||||||
|  | 			return errors.New("invalid runtime v2 options format") | ||||||
| 		} | 		} | ||||||
| 		opts.CriuImagePath = path | 		opts.CriuImagePath = path | ||||||
| 		return nil | 		return nil | ||||||
| @@ -128,9 +134,12 @@ func WithRestoreImagePath(path string) NewTaskOpts { | |||||||
| // WithRestoreWorkPath sets criu work path for create option | // WithRestoreWorkPath sets criu work path for create option | ||||||
| func WithRestoreWorkPath(path string) NewTaskOpts { | func WithRestoreWorkPath(path string) NewTaskOpts { | ||||||
| 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | ||||||
| 		opts, err := ti.getRuncOptions() | 		if ti.Options == nil { | ||||||
| 		if err != nil { | 			ti.Options = &options.Options{} | ||||||
| 			return err | 		} | ||||||
|  | 		opts, ok := ti.Options.(*options.Options) | ||||||
|  | 		if !ok { | ||||||
|  | 			return errors.New("invalid runtime v2 options format") | ||||||
| 		} | 		} | ||||||
| 		opts.CriuWorkPath = path | 		opts.CriuWorkPath = path | ||||||
| 		return nil | 		return nil | ||||||
|   | |||||||
| @@ -20,14 +20,20 @@ package client | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"errors" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/api/types/runc/options" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // WithNoNewKeyring causes tasks not to be created with a new keyring for secret storage. | // WithNoNewKeyring causes tasks not to be created with a new keyring for secret storage. | ||||||
| // There is an upper limit on the number of keyrings in a linux system | // There is an upper limit on the number of keyrings in a linux system | ||||||
| func WithNoNewKeyring(ctx context.Context, c *Client, ti *TaskInfo) error { | func WithNoNewKeyring(ctx context.Context, c *Client, ti *TaskInfo) error { | ||||||
| 	opts, err := ti.getRuncOptions() | 	if ti.Options == nil { | ||||||
| 	if err != nil { | 		ti.Options = &options.Options{} | ||||||
| 		return err | 	} | ||||||
|  | 	opts, ok := ti.Options.(*options.Options) | ||||||
|  | 	if !ok { | ||||||
|  | 		return errors.New("invalid v2 shim create options format") | ||||||
| 	} | 	} | ||||||
| 	opts.NoNewKeyring = true | 	opts.NoNewKeyring = true | ||||||
| 	return nil | 	return nil | ||||||
| @@ -35,9 +41,12 @@ func WithNoNewKeyring(ctx context.Context, c *Client, ti *TaskInfo) error { | |||||||
|  |  | ||||||
| // WithNoPivotRoot instructs the runtime not to you pivot_root | // WithNoPivotRoot instructs the runtime not to you pivot_root | ||||||
| func WithNoPivotRoot(_ context.Context, _ *Client, ti *TaskInfo) error { | func WithNoPivotRoot(_ context.Context, _ *Client, ti *TaskInfo) error { | ||||||
| 	opts, err := ti.getRuncOptions() | 	if ti.Options == nil { | ||||||
| 	if err != nil { | 		ti.Options = &options.Options{} | ||||||
| 		return err | 	} | ||||||
|  | 	opts, ok := ti.Options.(*options.Options) | ||||||
|  | 	if !ok { | ||||||
|  | 		return errors.New("invalid v2 shim create options format") | ||||||
| 	} | 	} | ||||||
| 	opts.NoPivotRoot = true | 	opts.NoPivotRoot = true | ||||||
| 	return nil | 	return nil | ||||||
| @@ -46,9 +55,12 @@ func WithNoPivotRoot(_ context.Context, _ *Client, ti *TaskInfo) error { | |||||||
| // WithShimCgroup sets the existing cgroup for the shim | // WithShimCgroup sets the existing cgroup for the shim | ||||||
| func WithShimCgroup(path string) NewTaskOpts { | func WithShimCgroup(path string) NewTaskOpts { | ||||||
| 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | ||||||
| 		opts, err := ti.getRuncOptions() | 		if ti.Options == nil { | ||||||
| 		if err != nil { | 			ti.Options = &options.Options{} | ||||||
| 			return err | 		} | ||||||
|  | 		opts, ok := ti.Options.(*options.Options) | ||||||
|  | 		if !ok { | ||||||
|  | 			return errors.New("invalid v2 shim create options format") | ||||||
| 		} | 		} | ||||||
| 		opts.ShimCgroup = path | 		opts.ShimCgroup = path | ||||||
| 		return nil | 		return nil | ||||||
| @@ -58,9 +70,12 @@ func WithShimCgroup(path string) NewTaskOpts { | |||||||
| // WithUIDOwner allows console I/O to work with the remapped UID in user namespace | // WithUIDOwner allows console I/O to work with the remapped UID in user namespace | ||||||
| func WithUIDOwner(uid uint32) NewTaskOpts { | func WithUIDOwner(uid uint32) NewTaskOpts { | ||||||
| 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | ||||||
| 		opts, err := ti.getRuncOptions() | 		if ti.Options == nil { | ||||||
| 		if err != nil { | 			ti.Options = &options.Options{} | ||||||
| 			return err | 		} | ||||||
|  | 		opts, ok := ti.Options.(*options.Options) | ||||||
|  | 		if !ok { | ||||||
|  | 			return errors.New("invalid v2 shim create options format") | ||||||
| 		} | 		} | ||||||
| 		opts.IoUid = uid | 		opts.IoUid = uid | ||||||
| 		return nil | 		return nil | ||||||
| @@ -70,9 +85,12 @@ func WithUIDOwner(uid uint32) NewTaskOpts { | |||||||
| // WithGIDOwner allows console I/O to work with the remapped GID in user namespace | // WithGIDOwner allows console I/O to work with the remapped GID in user namespace | ||||||
| func WithGIDOwner(gid uint32) NewTaskOpts { | func WithGIDOwner(gid uint32) NewTaskOpts { | ||||||
| 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | 	return func(ctx context.Context, c *Client, ti *TaskInfo) error { | ||||||
| 		opts, err := ti.getRuncOptions() | 		if ti.Options == nil { | ||||||
| 		if err != nil { | 			ti.Options = &options.Options{} | ||||||
| 			return err | 		} | ||||||
|  | 		opts, ok := ti.Options.(*options.Options) | ||||||
|  | 		if !ok { | ||||||
|  | 			return errors.New("invalid v2 shim create options format") | ||||||
| 		} | 		} | ||||||
| 		opts.IoGid = gid | 		opts.IoGid = gid | ||||||
| 		return nil | 		return nil | ||||||
|   | |||||||
| @@ -302,6 +302,7 @@ func getTTRPCClient(cliContext *cli.Context) (*ttrpc.Client, error) { | |||||||
| 	s2, _ := shim.SocketAddress(ctx, cliContext.String("address"), id, false) | 	s2, _ := shim.SocketAddress(ctx, cliContext.String("address"), id, false) | ||||||
| 	s2 = strings.TrimPrefix(s2, "unix://") | 	s2 = strings.TrimPrefix(s2, "unix://") | ||||||
|  |  | ||||||
|  | 	log.L.Infof("mzq-test, shim.go getTaskService, id: %v, ns: %v, s1: %v, s2: %v\n", id, ns, s1, s2) | ||||||
| 	for _, socket := range []string{s2, "\x00" + s1} { | 	for _, socket := range []string{s2, "\x00" + s1} { | ||||||
| 		conn, err := net.Dial("unix", socket) | 		conn, err := net.Dial("unix", socket) | ||||||
| 		if err == nil { | 		if err == nil { | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ | |||||||
| #   docker run --privileged --group-add keep-groups -v ./critest_exit_code.txt:/tmp/critest_exit_code.txt containerd-test | #   docker run --privileged --group-add keep-groups -v ./critest_exit_code.txt:/tmp/critest_exit_code.txt containerd-test | ||||||
| # ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||||
|  |  | ||||||
| ARG GOLANG_VERSION=1.23.8 | ARG GOLANG_VERSION=1.23.7 | ||||||
| ARG GOLANG_IMAGE=golang | ARG GOLANG_IMAGE=golang | ||||||
|  |  | ||||||
| FROM ${GOLANG_IMAGE}:${GOLANG_VERSION} AS golang | FROM ${GOLANG_IMAGE}:${GOLANG_VERSION} AS golang | ||||||
|   | |||||||
| @@ -43,11 +43,11 @@ go run main.go --target_dir $SRC/containerd/images | |||||||
|  |  | ||||||
| apt-get update && apt-get install -y wget | apt-get update && apt-get install -y wget | ||||||
| cd $SRC | cd $SRC | ||||||
| wget --quiet https://go.dev/dl/go1.23.8.linux-amd64.tar.gz | wget --quiet https://go.dev/dl/go1.23.7.linux-amd64.tar.gz | ||||||
|  |  | ||||||
| mkdir temp-go | mkdir temp-go | ||||||
| rm -rf /root/.go/* | rm -rf /root/.go/* | ||||||
| tar -C temp-go/ -xzf go1.23.8.linux-amd64.tar.gz | tar -C temp-go/ -xzf go1.23.7.linux-amd64.tar.gz | ||||||
| mv temp-go/go/* /root/.go/ | mv temp-go/go/* /root/.go/ | ||||||
| cd $SRC/containerd | cd $SRC/containerd | ||||||
|  |  | ||||||
|   | |||||||
| @@ -479,15 +479,13 @@ func (pw *pushWriter) Digest() digest.Digest { | |||||||
|  |  | ||||||
| func (pw *pushWriter) Commit(ctx context.Context, size int64, expected digest.Digest, opts ...content.Opt) error { | func (pw *pushWriter) Commit(ctx context.Context, size int64, expected digest.Digest, opts ...content.Opt) error { | ||||||
| 	// Check whether read has already thrown an error | 	// Check whether read has already thrown an error | ||||||
| 	if pw.pipe != nil { |  | ||||||
| 	if _, err := pw.pipe.Write([]byte{}); err != nil && !errors.Is(err, io.ErrClosedPipe) { | 	if _, err := pw.pipe.Write([]byte{}); err != nil && !errors.Is(err, io.ErrClosedPipe) { | ||||||
| 		return fmt.Errorf("pipe error before commit: %w", err) | 		return fmt.Errorf("pipe error before commit: %w", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if err := pw.pipe.Close(); err != nil { | 	if err := pw.pipe.Close(); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// TODO: timeout waiting for response | 	// TODO: timeout waiting for response | ||||||
| 	var resp *http.Response | 	var resp *http.Response | ||||||
| 	select { | 	select { | ||||||
|   | |||||||
| @@ -138,6 +138,7 @@ func (b *binary) Start(ctx context.Context, opts *types.Any, onClose func()) (_ | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  | 	log.G(ctx).Infof("mzq-test, binary.go Start, ns: %v, cmd: %+v, response: %v, opts: %+v, conn: %+v, params: %v\n", ns, cmd, string(response), opts, conn, params) | ||||||
|  |  | ||||||
| 	// Save bootstrap configuration (so containerd can restore shims after restart). | 	// Save bootstrap configuration (so containerd can restore shims after restart). | ||||||
| 	if err := writeBootstrapParams(filepath.Join(b.bundle.Path, "bootstrap.json"), params); err != nil { | 	if err := writeBootstrapParams(filepath.Join(b.bundle.Path, "bootstrap.json"), params); err != nil { | ||||||
|   | |||||||
| @@ -91,9 +91,9 @@ func loadShim(ctx context.Context, bundle *Bundle, onClose func()) (_ ShimInstan | |||||||
| 		// To prevent flood of error messages, the expected error | 		// To prevent flood of error messages, the expected error | ||||||
| 		// should be reset, like os.ErrClosed or os.ErrNotExist, which | 		// should be reset, like os.ErrClosed or os.ErrNotExist, which | ||||||
| 		// depends on platform. | 		// depends on platform. | ||||||
| 		err = checkCopyShimLogError(shimCtx, err) | 		err = checkCopyShimLogError(ctx, err) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.G(shimCtx).WithError(err).Error("copy shim log after reload") | 			log.G(ctx).WithError(err).Error("copy shim log after reload") | ||||||
| 		} | 		} | ||||||
| 	}() | 	}() | ||||||
| 	onCloseWithShimLog := func() { | 	onCloseWithShimLog := func() { | ||||||
| @@ -111,6 +111,13 @@ func loadShim(ctx context.Context, bundle *Bundle, onClose func()) (_ ShimInstan | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("unable to make connection: %w", err) | 		return nil, fmt.Errorf("unable to make connection: %w", err) | ||||||
| 	} | 	} | ||||||
|  | 	a := log.Fields{ | ||||||
|  | 		"mzq-test": true, | ||||||
|  | 		"conn":     fmt.Sprintf("%+v", conn), | ||||||
|  | 		"params":   fmt.Sprintf("%+v", params), | ||||||
|  | 		"bundle":   fmt.Sprintf("%+v", bundle), | ||||||
|  | 	} | ||||||
|  | 	log.G(ctx).WithFields(a).Info("shim.go loadShim") | ||||||
|  |  | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		if retErr != nil { | 		if retErr != nil { | ||||||
| @@ -277,6 +284,12 @@ func makeConnection(ctx context.Context, id string, params client.BootstrapParam | |||||||
| 			} | 			} | ||||||
| 		}() | 		}() | ||||||
|  |  | ||||||
|  | 		a := log.Fields{ | ||||||
|  | 			"mzq-test": true, | ||||||
|  | 			"conn":     fmt.Sprintf("%+v", conn), | ||||||
|  | 			"params":   fmt.Sprintf("%+v", params), | ||||||
|  | 		} | ||||||
|  | 		log.G(ctx).WithFields(a).Info("shim.go makeConnection makeConnection") | ||||||
| 		return ttrpc.NewClient( | 		return ttrpc.NewClient( | ||||||
| 			conn, | 			conn, | ||||||
| 			ttrpc.WithOnClose(onClose), | 			ttrpc.WithOnClose(onClose), | ||||||
|   | |||||||
| @@ -207,6 +207,14 @@ func (m *ShimManager) Start(ctx context.Context, id string, bundle *Bundle, opts | |||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, fmt.Errorf("failed to load sandbox task %q: %w", opts.SandboxID, err) | 			return nil, fmt.Errorf("failed to load sandbox task %q: %w", opts.SandboxID, err) | ||||||
| 		} | 		} | ||||||
|  | 		a := log.Fields{ | ||||||
|  | 			"mzq-test": true, | ||||||
|  | 			"id":       id, | ||||||
|  | 			"opts":     fmt.Sprintf("%+v", opts), | ||||||
|  | 			"params":   fmt.Sprintf("%+v", params), | ||||||
|  | 			"bundle":   fmt.Sprintf("%+v", bundle), | ||||||
|  | 		} | ||||||
|  | 		log.G(ctx).WithFields(a).Info("manager.go Start") | ||||||
|  |  | ||||||
| 		if err := m.shims.Add(ctx, shim); err != nil { | 		if err := m.shims.Add(ctx, shim); err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| @@ -256,7 +264,13 @@ func (m *ShimManager) startShim(ctx context.Context, bundle *Bundle, id string, | |||||||
| 		env:          m.env, | 		env:          m.env, | ||||||
| 	}) | 	}) | ||||||
| 	shim, err := b.Start(ctx, typeurl.MarshalProto(topts), func() { | 	shim, err := b.Start(ctx, typeurl.MarshalProto(topts), func() { | ||||||
| 		log.G(ctx).WithField("id", id).Info("shim disconnected") | 		a := log.Fields{ | ||||||
|  | 			"mzq-test": true, | ||||||
|  | 			"ns":       ns, | ||||||
|  | 			"topts":    topts, | ||||||
|  | 			"b":        fmt.Sprintf("%+v", b), | ||||||
|  | 		} | ||||||
|  | 		log.G(ctx).WithFields(a).Info("shim disconnected") | ||||||
|  |  | ||||||
| 		cleanupAfterDeadShim(cleanup.Background(ctx), id, m.shims, m.events, b) | 		cleanupAfterDeadShim(cleanup.Background(ctx), id, m.shims, m.events, b) | ||||||
| 		// Remove self from the runtime task list. Even though the cleanupAfterDeadShim() | 		// Remove self from the runtime task list. Even though the cleanupAfterDeadShim() | ||||||
|   | |||||||
| @@ -266,12 +266,12 @@ func (m *TaskManager) validateRuntimeFeatures(ctx context.Context, opts runtime. | |||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	topts := opts.TaskOptions | 	ropts := opts.RuntimeOptions | ||||||
| 	if topts == nil || topts.GetValue() == nil { | 	if ropts == nil || ropts.GetValue() == nil { | ||||||
| 		topts = opts.RuntimeOptions | 		ropts = opts.TaskOptions | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	pInfo, err := m.PluginInfo(ctx, &apitypes.RuntimeRequest{RuntimePath: opts.Runtime, Options: typeurl.MarshalProto(topts)}) | 	pInfo, err := m.PluginInfo(ctx, &apitypes.RuntimeRequest{RuntimePath: opts.Runtime, Options: typeurl.MarshalProto(ropts)}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("runtime info: %w", err) | 		return fmt.Errorf("runtime info: %w", err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -21,6 +21,4 @@ const ( | |||||||
| 	// This will be based on the client compilation target, so take that into | 	// This will be based on the client compilation target, so take that into | ||||||
| 	// account when choosing this value. | 	// account when choosing this value. | ||||||
| 	DefaultSnapshotter = "overlayfs" | 	DefaultSnapshotter = "overlayfs" | ||||||
| 	// DefaultDiffer will set the default differ for the platform. |  | ||||||
| 	DefaultDiffer = "walking" |  | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -23,6 +23,4 @@ const ( | |||||||
| 	// This will be based on the client compilation target, so take that into | 	// This will be based on the client compilation target, so take that into | ||||||
| 	// account when choosing this value. | 	// account when choosing this value. | ||||||
| 	DefaultSnapshotter = "native" | 	DefaultSnapshotter = "native" | ||||||
| 	// DefaultDiffer will set the default differ for the platform. |  | ||||||
| 	DefaultDiffer = "walking" |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								go.mod
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| module github.com/containerd/containerd/v2 | module github.com/containerd/containerd/v2 | ||||||
|  |  | ||||||
| go 1.23.0 | go 1.22.0 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	dario.cat/mergo v1.0.1 | 	dario.cat/mergo v1.0.1 | ||||||
| @@ -74,8 +74,8 @@ require ( | |||||||
| 	go.opentelemetry.io/otel/sdk v1.31.0 | 	go.opentelemetry.io/otel/sdk v1.31.0 | ||||||
| 	go.opentelemetry.io/otel/trace v1.31.0 | 	go.opentelemetry.io/otel/trace v1.31.0 | ||||||
| 	golang.org/x/mod v0.21.0 | 	golang.org/x/mod v0.21.0 | ||||||
| 	golang.org/x/sync v0.12.0 | 	golang.org/x/sync v0.10.0 | ||||||
| 	golang.org/x/sys v0.31.0 | 	golang.org/x/sys v0.28.0 | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 | ||||||
| 	google.golang.org/grpc v1.68.1 | 	google.golang.org/grpc v1.68.1 | ||||||
| 	google.golang.org/protobuf v1.35.2 | 	google.golang.org/protobuf v1.35.2 | ||||||
| @@ -86,7 +86,7 @@ require ( | |||||||
| 	k8s.io/klog/v2 v2.130.1 | 	k8s.io/klog/v2 v2.130.1 | ||||||
| 	k8s.io/kubelet v0.31.2 | 	k8s.io/kubelet v0.31.2 | ||||||
| 	k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 | 	k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 | ||||||
| 	tags.cncf.io/container-device-interface v1.0.0 | 	tags.cncf.io/container-device-interface v0.8.1 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| @@ -102,7 +102,7 @@ require ( | |||||||
| 	github.com/emicklei/go-restful/v3 v3.11.0 // indirect | 	github.com/emicklei/go-restful/v3 v3.11.0 // indirect | ||||||
| 	github.com/felixge/httpsnoop v1.0.4 // indirect | 	github.com/felixge/httpsnoop v1.0.4 // indirect | ||||||
| 	github.com/fxamacker/cbor/v2 v2.7.0 // indirect | 	github.com/fxamacker/cbor/v2 v2.7.0 // indirect | ||||||
| 	github.com/go-jose/go-jose/v4 v4.0.5 // indirect | 	github.com/go-jose/go-jose/v4 v4.0.4 // indirect | ||||||
| 	github.com/go-logr/logr v1.4.2 // indirect | 	github.com/go-logr/logr v1.4.2 // indirect | ||||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | 	github.com/go-logr/stdr v1.2.2 // indirect | ||||||
| 	github.com/go-openapi/jsonpointer v0.19.6 // indirect | 	github.com/go-openapi/jsonpointer v0.19.6 // indirect | ||||||
| @@ -152,12 +152,12 @@ require ( | |||||||
| 	go.opencensus.io v0.24.0 // indirect | 	go.opencensus.io v0.24.0 // indirect | ||||||
| 	go.opentelemetry.io/otel/metric v1.31.0 // indirect | 	go.opentelemetry.io/otel/metric v1.31.0 // indirect | ||||||
| 	go.opentelemetry.io/proto/otlp v1.3.1 // indirect | 	go.opentelemetry.io/proto/otlp v1.3.1 // indirect | ||||||
| 	golang.org/x/crypto v0.36.0 // indirect | 	golang.org/x/crypto v0.31.0 // indirect | ||||||
| 	golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 // indirect | 	golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 // indirect | ||||||
| 	golang.org/x/net v0.37.0 // indirect | 	golang.org/x/net v0.33.0 // indirect | ||||||
| 	golang.org/x/oauth2 v0.28.0 // indirect | 	golang.org/x/oauth2 v0.23.0 // indirect | ||||||
| 	golang.org/x/term v0.30.0 // indirect | 	golang.org/x/term v0.27.0 // indirect | ||||||
| 	golang.org/x/text v0.23.0 // indirect | 	golang.org/x/text v0.21.0 // indirect | ||||||
| 	golang.org/x/time v0.3.0 // indirect | 	golang.org/x/time v0.3.0 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect | 	google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect | ||||||
| 	gopkg.in/inf.v0 v0.9.1 // indirect | 	gopkg.in/inf.v0 v0.9.1 // indirect | ||||||
| @@ -169,7 +169,7 @@ require ( | |||||||
| 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect | 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect | ||||||
| 	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect | 	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect | ||||||
| 	sigs.k8s.io/yaml v1.4.0 // indirect | 	sigs.k8s.io/yaml v1.4.0 // indirect | ||||||
| 	tags.cncf.io/container-device-interface/specs-go v1.0.0 // indirect | 	tags.cncf.io/container-device-interface/specs-go v0.8.0 // indirect | ||||||
| ) | ) | ||||||
|  |  | ||||||
| exclude ( | exclude ( | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								go.sum
									
									
									
									
									
								
							| @@ -119,8 +119,8 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos | |||||||
| github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= | github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= | ||||||
| github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= | github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= | ||||||
| github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= | github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= | ||||||
| github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= | github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= | ||||||
| github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= | github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc= | ||||||
| github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | ||||||
| github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | ||||||
| github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= | github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= | ||||||
| @@ -407,8 +407,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY | |||||||
| golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= | golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= | ||||||
| golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= | golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= | ||||||
| golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= | golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= | ||||||
| golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= | golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= | ||||||
| golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= | golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= | ||||||
| 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-20231214170342-aacd6d4b4611 h1:qCEDpW1G+vcj3Y7Fy52pEM1AWm3abj8WimGYejI3SC4= | golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 h1:qCEDpW1G+vcj3Y7Fy52pEM1AWm3abj8WimGYejI3SC4= | ||||||
| golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= | golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= | ||||||
| @@ -442,11 +442,11 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= | |||||||
| golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= | golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= | ||||||
| golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= | golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= | ||||||
| golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= | golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= | ||||||
| golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= | golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= | ||||||
| golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= | golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= | ||||||
| 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.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= | golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= | ||||||
| golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= | golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= | ||||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -458,9 +458,8 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||||||
| golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= | golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= | ||||||
| golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||||
| golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||||
|  | golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= | ||||||
| golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= | ||||||
| golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= |  | ||||||
| golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= |  | ||||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| @@ -483,9 +482,8 @@ golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||||||
| golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
|  | golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= | ||||||
| golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= |  | ||||||
| golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= |  | ||||||
| golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= | golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-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= | ||||||
| @@ -494,9 +492,8 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= | |||||||
| golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= | golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= | ||||||
| golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= | golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= | ||||||
| golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= | golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= | ||||||
|  | golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= | ||||||
| golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= | golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= | ||||||
| golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= |  | ||||||
| golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= |  | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.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= | ||||||
| @@ -505,9 +502,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | |||||||
| golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= | golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= | ||||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
|  | golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= | ||||||
| golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= | golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= | ||||||
| golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= |  | ||||||
| golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= |  | ||||||
| golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= | golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= | ||||||
| golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| @@ -598,7 +594,7 @@ sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+s | |||||||
| sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= | sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= | ||||||
| sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= | sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= | ||||||
| sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= | sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= | ||||||
| tags.cncf.io/container-device-interface v1.0.0 h1:fbwPQiWZNpXUb9Os6t6JW52rsOppTFUbeJOpNtN1TmI= | tags.cncf.io/container-device-interface v0.8.1 h1:c0jN4Mt6781jD67NdPajmZlD1qrqQyov/Xfoab37lj0= | ||||||
| tags.cncf.io/container-device-interface v1.0.0/go.mod h1:mmi2aRGmOjK/6NR3TXjLpEIarOJ9qwgZjQ3nTIRwAaA= | tags.cncf.io/container-device-interface v0.8.1/go.mod h1:Apb7N4VdILW0EVdEMRYXIDVRZfNJZ+kmEUss2kRRQ6Y= | ||||||
| tags.cncf.io/container-device-interface/specs-go v1.0.0 h1:8gLw29hH1ZQP9K1YtAzpvkHCjjyIxHZYzBAvlQ+0vD8= | tags.cncf.io/container-device-interface/specs-go v0.8.0 h1:QYGFzGxvYK/ZLMrjhvY0RjpUavIn4KcmRmVP/JjdBTA= | ||||||
| tags.cncf.io/container-device-interface/specs-go v1.0.0/go.mod h1:u86hoFWqnh3hWz3esofRFKbI261bUlvUfLKGrDhJkgQ= | tags.cncf.io/container-device-interface/specs-go v0.8.0/go.mod h1:BhJIkjjPh4qpys+qm4DAYtUyryaTDg9zris+AczXyws= | ||||||
|   | |||||||
| @@ -19,26 +19,12 @@ | |||||||
| package client | package client | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"context" |  | ||||||
| 	"strings" |  | ||||||
| 	"sync" |  | ||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/api/services/tasks/v1" |  | ||||||
| 	"github.com/containerd/containerd/api/types/runc/options" |  | ||||||
| 	. "github.com/containerd/containerd/v2/client" | 	. "github.com/containerd/containerd/v2/client" | ||||||
| 	"github.com/containerd/containerd/v2/integration/images" | 	"github.com/containerd/containerd/v2/integration/images" | ||||||
| 	"github.com/containerd/containerd/v2/pkg/deprecation" | 	"github.com/containerd/containerd/v2/pkg/deprecation" | ||||||
| 	"github.com/containerd/containerd/v2/pkg/oci" |  | ||||||
| 	"github.com/containerd/containerd/v2/pkg/protobuf" |  | ||||||
| 	"github.com/containerd/containerd/v2/plugins" |  | ||||||
| 	"github.com/containerd/errdefs" |  | ||||||
| 	"github.com/containerd/errdefs/pkg/errgrpc" |  | ||||||
| 	"github.com/containerd/platforms" | 	"github.com/containerd/platforms" | ||||||
| 	"github.com/containerd/typeurl/v2" |  | ||||||
| 	"github.com/google/go-cmp/cmp" |  | ||||||
| 	"github.com/stretchr/testify/require" |  | ||||||
| 	"google.golang.org/grpc" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
| @@ -77,118 +63,3 @@ func TestImagePullSchema1WithEmptyLayers(t *testing.T) { | |||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| func TestNewTaskWithRuntimeOption(t *testing.T) { |  | ||||||
| 	t.Parallel() |  | ||||||
|  |  | ||||||
| 	fakeTasks := &fakeTaskService{ |  | ||||||
| 		TasksClient:    tasks.NewTasksClient(nil), |  | ||||||
| 		createRequests: map[string]*tasks.CreateTaskRequest{}, |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	cli, err := newClient(t, address, |  | ||||||
| 		WithServices(WithTaskClient(fakeTasks)), |  | ||||||
| 	) |  | ||||||
| 	require.NoError(t, err) |  | ||||||
| 	defer cli.Close() |  | ||||||
|  |  | ||||||
| 	var ( |  | ||||||
| 		image       Image |  | ||||||
| 		ctx, cancel = testContext(t) |  | ||||||
| 	) |  | ||||||
| 	defer cancel() |  | ||||||
|  |  | ||||||
| 	image, err = cli.GetImage(ctx, testImage) |  | ||||||
| 	require.NoError(t, err) |  | ||||||
|  |  | ||||||
| 	for _, tc := range []struct { |  | ||||||
| 		name            string |  | ||||||
| 		runtimeOption   *options.Options |  | ||||||
| 		taskOpts        []NewTaskOpts |  | ||||||
| 		expectedOptions *options.Options |  | ||||||
| 	}{ |  | ||||||
| 		{ |  | ||||||
| 			name: "should be empty options", |  | ||||||
| 			runtimeOption: &options.Options{ |  | ||||||
| 				BinaryName: "no-runc", |  | ||||||
| 			}, |  | ||||||
| 			expectedOptions: nil, |  | ||||||
| 		}, |  | ||||||
| 		{ |  | ||||||
| 			name: "should overwrite IOUid/ShimCgroup", |  | ||||||
| 			runtimeOption: &options.Options{ |  | ||||||
| 				BinaryName:    "no-runc", |  | ||||||
| 				ShimCgroup:    "/abc", |  | ||||||
| 				IoUid:         1000, |  | ||||||
| 				SystemdCgroup: true, |  | ||||||
| 			}, |  | ||||||
| 			taskOpts: []NewTaskOpts{ |  | ||||||
| 				WithUIDOwner(2000), |  | ||||||
| 				WithGIDOwner(3000), |  | ||||||
| 				WithShimCgroup("/def"), |  | ||||||
| 			}, |  | ||||||
| 			expectedOptions: &options.Options{ |  | ||||||
| 				BinaryName:    "no-runc", |  | ||||||
| 				ShimCgroup:    "/def", |  | ||||||
| 				IoUid:         2000, |  | ||||||
| 				IoGid:         3000, |  | ||||||
| 				SystemdCgroup: true, |  | ||||||
| 			}, |  | ||||||
| 		}, |  | ||||||
| 	} { |  | ||||||
| 		t.Run(tc.name, func(t *testing.T) { |  | ||||||
| 			id := strings.Replace(t.Name(), "/", "_", -1) |  | ||||||
|  |  | ||||||
| 			container, err := cli.NewContainer( |  | ||||||
| 				ctx, |  | ||||||
| 				id, |  | ||||||
| 				WithNewSnapshotView(id, image), |  | ||||||
| 				WithNewSpec(oci.WithImageConfig(image), withExitStatus(7)), |  | ||||||
| 				WithRuntime(plugins.RuntimeRuncV2, tc.runtimeOption), |  | ||||||
| 			) |  | ||||||
| 			require.NoError(t, err) |  | ||||||
| 			defer container.Delete(ctx, WithSnapshotCleanup) |  | ||||||
|  |  | ||||||
| 			_, err = container.NewTask(ctx, empty(), tc.taskOpts...) |  | ||||||
| 			require.NoError(t, err) |  | ||||||
|  |  | ||||||
| 			fakeTasks.Lock() |  | ||||||
| 			req := fakeTasks.createRequests[id] |  | ||||||
| 			fakeTasks.Unlock() |  | ||||||
|  |  | ||||||
| 			if tc.expectedOptions == nil { |  | ||||||
| 				require.Nil(t, req.Options) |  | ||||||
| 				return |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			gotOptions := &options.Options{} |  | ||||||
| 			require.NoError(t, typeurl.UnmarshalTo(req.Options, gotOptions)) |  | ||||||
| 			require.True(t, cmp.Equal(tc.expectedOptions, gotOptions, protobuf.Compare)) |  | ||||||
| 		}) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type fakeTaskService struct { |  | ||||||
| 	sync.Mutex |  | ||||||
| 	createRequests map[string]*tasks.CreateTaskRequest |  | ||||||
| 	tasks.TasksClient |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (ts *fakeTaskService) Create(ctx context.Context, in *tasks.CreateTaskRequest, opts ...grpc.CallOption) (*tasks.CreateTaskResponse, error) { |  | ||||||
| 	ts.Lock() |  | ||||||
| 	defer ts.Unlock() |  | ||||||
|  |  | ||||||
| 	ts.createRequests[in.ContainerID] = in |  | ||||||
| 	return &tasks.CreateTaskResponse{ |  | ||||||
| 		ContainerID: in.ContainerID, |  | ||||||
| 		Pid:         1, |  | ||||||
| 	}, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (ts *fakeTaskService) Get(ctx context.Context, in *tasks.GetRequest, opts ...grpc.CallOption) (*tasks.GetResponse, error) { |  | ||||||
| 	return nil, errgrpc.ToGRPC(errdefs.ErrNotFound) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (ts *fakeTaskService) Delete(ctx context.Context, in *tasks.DeleteTaskRequest, opts ...grpc.CallOption) (*tasks.DeleteResponse, error) { |  | ||||||
| 	return nil, errgrpc.ToGRPC(errdefs.ErrNotFound) |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1090,19 +1090,6 @@ func TestContainerRuntimeOptionsv2(t *testing.T) { | |||||||
| 	if !strings.Contains(err.Error(), `"no-runc"`) { | 	if !strings.Contains(err.Error(), `"no-runc"`) { | ||||||
| 		t.Errorf("task creation should have failed because of lack of executable. Instead failed with: %v", err.Error()) | 		t.Errorf("task creation should have failed because of lack of executable. Instead failed with: %v", err.Error()) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// It doesn't matter what the NewTaskOpts function is. We are using an existing function in the client package, |  | ||||||
| 	// which will cause the TaskOptions in the new task request to be non-empty. |  | ||||||
| 	// https://github.com/containerd/containerd/issues/11568 |  | ||||||
| 	task, err = container.NewTask(ctx, empty(), WithNoNewKeyring) |  | ||||||
| 	if err == nil { |  | ||||||
| 		t.Errorf("task creation should have failed") |  | ||||||
| 		task.Delete(ctx) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	if !strings.Contains(err.Error(), `"no-runc"`) { |  | ||||||
| 		t.Errorf("task creation should have failed because of lack of executable. Instead failed with: %v", err.Error()) |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func TestContainerKillInitPidHost(t *testing.T) { | func TestContainerKillInitPidHost(t *testing.T) { | ||||||
|   | |||||||
| @@ -43,7 +43,7 @@ type podSandboxEventHandler struct { | |||||||
| func (p *podSandboxEventHandler) HandleEvent(any interface{}) error { | func (p *podSandboxEventHandler) HandleEvent(any interface{}) error { | ||||||
| 	switch e := any.(type) { | 	switch e := any.(type) { | ||||||
| 	case *eventtypes.TaskExit: | 	case *eventtypes.TaskExit: | ||||||
| 		log.L.Debugf("TaskExit event in podsandbox handler %+v", e) | 		log.L.Infof("TaskExit event in podsandbox handler %+v", e) | ||||||
| 		// Use ID instead of ContainerID to rule out TaskExit event for exec. | 		// Use ID instead of ContainerID to rule out TaskExit event for exec. | ||||||
| 		sb := p.controller.store.Get(e.ID) | 		sb := p.controller.store.Get(e.ID) | ||||||
| 		if sb == nil { | 		if sb == nil { | ||||||
|   | |||||||
| @@ -105,6 +105,7 @@ guest:x:100:guest | |||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	for _, testCase := range testCases { | 	for _, testCase := range testCases { | ||||||
|  | 		testCase := testCase | ||||||
| 		t.Run(testCase.user, func(t *testing.T) { | 		t.Run(testCase.user, func(t *testing.T) { | ||||||
| 			t.Parallel() | 			t.Parallel() | ||||||
| 			s := Spec{ | 			s := Spec{ | ||||||
|   | |||||||
| @@ -57,6 +57,7 @@ func WithPublishTTRPCOpts(opts ...ttrpc.ClientOpts) PublisherOpts { | |||||||
|  |  | ||||||
| // NewPublisher creates a new remote events publisher | // NewPublisher creates a new remote events publisher | ||||||
| func NewPublisher(address string, opts ...PublisherOpts) (*RemoteEventsPublisher, error) { | func NewPublisher(address string, opts ...PublisherOpts) (*RemoteEventsPublisher, error) { | ||||||
|  | 	log.L.Infof("mzq-test, publisher.go NewPublisher, address: %v, opts: %+v\n", address, opts) | ||||||
| 	client, err := ttrpcutil.NewClient(address) | 	client, err := ttrpcutil.NewClient(address) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
|   | |||||||
| @@ -247,6 +247,14 @@ func run(ctx context.Context, manager Manager, config Config) error { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	ttrpcAddress := os.Getenv(ttrpcAddressEnv) | 	ttrpcAddress := os.Getenv(ttrpcAddressEnv) | ||||||
|  | 	a := log.Fields{ | ||||||
|  | 		"mzq-test":     true, | ||||||
|  | 		"manager":      manager, | ||||||
|  | 		"config":       fmt.Sprintf("%+v", config), | ||||||
|  | 		"signals":      fmt.Sprintf("%+v", signals), | ||||||
|  | 		"ttrpcAddress": ttrpcAddress, | ||||||
|  | 	} | ||||||
|  | 	log.G(ctx).WithFields(a).Info("shim.go run") | ||||||
|  |  | ||||||
| 	ctx = namespaces.WithNamespace(ctx, namespaceFlag) | 	ctx = namespaces.WithNamespace(ctx, namespaceFlag) | ||||||
| 	ctx = context.WithValue(ctx, OptsKey{}, Opts{BundlePath: bundlePath, Debug: debugFlag}) | 	ctx = context.WithValue(ctx, OptsKey{}, Opts{BundlePath: bundlePath, Debug: debugFlag}) | ||||||
|   | |||||||
| @@ -73,12 +73,13 @@ func init() { | |||||||
|  |  | ||||||
| 			options := &images.CRIImageServiceOptions{ | 			options := &images.CRIImageServiceOptions{ | ||||||
| 				Content:          mdb.ContentStore(), | 				Content:          mdb.ContentStore(), | ||||||
|  | 				Images:           metadata.NewImageStore(mdb), | ||||||
| 				RuntimePlatforms: map[string]images.ImagePlatform{}, | 				RuntimePlatforms: map[string]images.ImagePlatform{}, | ||||||
| 				Snapshotters:     map[string]snapshots.Snapshotter{}, | 				Snapshotters:     map[string]snapshots.Snapshotter{}, | ||||||
| 				ImageFSPaths:     map[string]string{}, | 				ImageFSPaths:     map[string]string{}, | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			ctrdCli, err := containerd.New( | 			options.Client, err = containerd.New( | ||||||
| 				"", | 				"", | ||||||
| 				containerd.WithDefaultNamespace(constants.K8sContainerdNamespace), | 				containerd.WithDefaultNamespace(constants.K8sContainerdNamespace), | ||||||
| 				containerd.WithDefaultPlatform(platforms.Default()), | 				containerd.WithDefaultPlatform(platforms.Default()), | ||||||
| @@ -87,8 +88,6 @@ func init() { | |||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return nil, fmt.Errorf("unable to init client for cri image service: %w", err) | 				return nil, fmt.Errorf("unable to init client for cri image service: %w", err) | ||||||
| 			} | 			} | ||||||
| 			options.Images = ctrdCli.ImageService() |  | ||||||
| 			options.Client = ctrdCli |  | ||||||
|  |  | ||||||
| 			allSnapshotters := mdb.Snapshotters() | 			allSnapshotters := mdb.Snapshotters() | ||||||
| 			defaultSnapshotter := config.Snapshotter | 			defaultSnapshotter := config.Snapshotter | ||||||
|   | |||||||
| @@ -28,7 +28,6 @@ func defaultUnpackConfig() []unpackConfiguration { | |||||||
| 		{ | 		{ | ||||||
| 			Platform:    platforms.Format(platforms.DefaultSpec()), | 			Platform:    platforms.Format(platforms.DefaultSpec()), | ||||||
| 			Snapshotter: defaults.DefaultSnapshotter, | 			Snapshotter: defaults.DefaultSnapshotter, | ||||||
| 			Differ:      defaults.DefaultDiffer, |  | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,27 +0,0 @@ | |||||||
| # commit to be tagged for new release |  | ||||||
| commit = "HEAD" |  | ||||||
|  |  | ||||||
| project_name = "containerd" |  | ||||||
| github_repo = "containerd/containerd" |  | ||||||
| match_deps = "^github.com/(containerd/[a-zA-Z0-9-]+)$" |  | ||||||
| ignore_deps = [ "github.com/containerd/containerd" ] |  | ||||||
|  |  | ||||||
| # previous release |  | ||||||
| previous = "v2.0.4" |  | ||||||
|  |  | ||||||
| pre_release = false |  | ||||||
|  |  | ||||||
| preface = """\ |  | ||||||
| The fifth patch release for containerd 2.0 includes various bug fixes and updates. |  | ||||||
| """ |  | ||||||
|  |  | ||||||
| postface = """\ |  | ||||||
| ### Which file should I download? |  | ||||||
| * `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`:         ✅Recommended. Dynamically linked with glibc 2.31 (Ubuntu 20.04). |  | ||||||
| * `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`:  Statically linked. Expected to be used on non-glibc Linux distributions. Not position-independent. |  | ||||||
|  |  | ||||||
| In addition to containerd, typically you will have to install [runc](https://github.com/opencontainers/runc/releases) |  | ||||||
| and [CNI plugins](https://github.com/containernetworking/plugins/releases) from their official sites too. |  | ||||||
|  |  | ||||||
| See also the [Getting Started](https://github.com/containerd/containerd/blob/main/docs/getting-started.md) documentation. |  | ||||||
| """ |  | ||||||
| @@ -70,11 +70,6 @@ if [ ! -z "$CGROUP_DRIVER" ] && [ "$CGROUP_DRIVER" = "systemd" ];then | |||||||
| EOF | EOF | ||||||
| fi | fi | ||||||
|  |  | ||||||
| GINKGO_SKIP_TEST=() |  | ||||||
| if [ ! -z "$SKIP_TEST" ]; then |  | ||||||
|   GINKGO_SKIP_TEST+=("--ginkgo.skip" "$SKIP_TEST") |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| ls /etc/cni/net.d | ls /etc/cni/net.d | ||||||
|  |  | ||||||
| /usr/local/bin/containerd \ | /usr/local/bin/containerd \ | ||||||
| @@ -90,4 +85,4 @@ do | |||||||
|     crictl --runtime-endpoint ${BDIR}/c.sock info && break || sleep 1 |     crictl --runtime-endpoint ${BDIR}/c.sock info && break || sleep 1 | ||||||
| done | done | ||||||
|  |  | ||||||
| critest --report-dir "$report_dir" --runtime-endpoint=unix:///${BDIR}/c.sock --parallel=8 "${GINKGO_SKIP_TEST[@]}" "${EXTRA_CRITEST_OPTIONS:-""}" | critest --report-dir "$report_dir" --runtime-endpoint=unix:///${BDIR}/c.sock --parallel=8 "${EXTRA_CRITEST_OPTIONS:-""}" | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| # lived test environment. | # lived test environment. | ||||||
| Set-MpPreference -DisableRealtimeMonitoring:$true | Set-MpPreference -DisableRealtimeMonitoring:$true | ||||||
|  |  | ||||||
| $PACKAGES= @{ mingw = "10.2.0"; git = ""; golang = "1.23.8"; make = ""; nssm = "" } | $PACKAGES= @{ mingw = "10.2.0"; git = ""; golang = "1.23.7"; make = ""; nssm = "" } | ||||||
|  |  | ||||||
| Write-Host "Downloading chocolatey package" | Write-Host "Downloading chocolatey package" | ||||||
| curl.exe -L "https://packages.chocolatey.org/chocolatey.0.10.15.nupkg" -o 'c:\choco.zip' | curl.exe -L "https://packages.chocolatey.org/chocolatey.0.10.15.nupkg" -o 'c:\choco.zip' | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| v1.2.6 | v1.2.5 | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								vendor/github.com/containerd/ttrpc/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/containerd/ttrpc/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -109,7 +109,13 @@ func chainUnaryInterceptors(interceptors []UnaryClientInterceptor, final Invoker | |||||||
|  |  | ||||||
| // NewClient creates a new ttrpc client using the given connection | // NewClient creates a new ttrpc client using the given connection | ||||||
| func NewClient(conn net.Conn, opts ...ClientOpts) *Client { | func NewClient(conn net.Conn, opts ...ClientOpts) *Client { | ||||||
|  | 	a := log.Fields{ | ||||||
|  | 		"mzq-test": true, | ||||||
|  | 		"conn":     fmt.Sprintf("%+v", conn), | ||||||
|  | 		"opts":     fmt.Sprintf("%+v", opts), | ||||||
|  | 	} | ||||||
| 	ctx, cancel := context.WithCancel(context.Background()) | 	ctx, cancel := context.WithCancel(context.Background()) | ||||||
|  | 	log.G(ctx).WithFields(a).Info("client.go NewClient") | ||||||
| 	channel := newChannel(conn) | 	channel := newChannel(conn) | ||||||
| 	c := &Client{ | 	c := &Client{ | ||||||
| 		codec:           codec{}, | 		codec:           codec{}, | ||||||
| @@ -368,7 +374,12 @@ func (c *Client) receiveLoop() error { | |||||||
| 			sid := streamID(msg.header.StreamID) | 			sid := streamID(msg.header.StreamID) | ||||||
| 			s := c.getStream(sid) | 			s := c.getStream(sid) | ||||||
| 			if s == nil { | 			if s == nil { | ||||||
| 				log.G(c.ctx).WithField("stream", sid).Error("ttrpc: received message on inactive stream") | 				a := log.Fields{ | ||||||
|  | 					"mzq-test": true, | ||||||
|  | 					"stream":   sid, | ||||||
|  | 					"c":        fmt.Sprintf("%+v", c), | ||||||
|  | 				} | ||||||
|  | 				log.G(c.ctx).WithFields(a).Errorf("ttrpc: received message on inactive stream") | ||||||
| 				continue | 				continue | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,3 +7,9 @@ When submitting code, please make every effort to follow existing conventions | |||||||
| and style in order to keep the code as readable as possible. Please also make | and style in order to keep the code as readable as possible. Please also make | ||||||
| sure all tests pass by running `go test`, and format your code with `go fmt`. | sure all tests pass by running `go test`, and format your code with `go fmt`. | ||||||
| We also recommend using `golint` and `errcheck`. | We also recommend using `golint` and `errcheck`. | ||||||
|  |  | ||||||
|  | Before your code can be accepted into the project you must also sign the | ||||||
|  | Individual Contributor License Agreement.  We use [cla-assistant.io][1] and you | ||||||
|  | will be prompted to sign once a pull request is opened. | ||||||
|  |  | ||||||
|  | [1]: https://cla-assistant.io/ | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								vendor/github.com/go-jose/go-jose/v4/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/go-jose/go-jose/v4/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -9,6 +9,14 @@ Package jose aims to provide an implementation of the Javascript Object Signing | |||||||
| and Encryption set of standards. This includes support for JSON Web Encryption, | and Encryption set of standards. This includes support for JSON Web Encryption, | ||||||
| JSON Web Signature, and JSON Web Token standards. | JSON Web Signature, and JSON Web Token standards. | ||||||
|  |  | ||||||
|  | **Disclaimer**: This library contains encryption software that is subject to | ||||||
|  | the U.S. Export Administration Regulations. You may not export, re-export, | ||||||
|  | transfer or download this code or any part of it in violation of any United | ||||||
|  | States law, directive or regulation. In particular this software may not be | ||||||
|  | exported or re-exported in any form or on any media to Iran, North Sudan, | ||||||
|  | Syria, Cuba, or North Korea, or to denied persons or entities mentioned on any | ||||||
|  | US maintained blocked list. | ||||||
|  |  | ||||||
| ## Overview | ## Overview | ||||||
|  |  | ||||||
| The implementation follows the | The implementation follows the | ||||||
| @@ -101,6 +109,6 @@ allows attaching a key id. | |||||||
|  |  | ||||||
| Examples can be found in the Godoc | Examples can be found in the Godoc | ||||||
| reference for this package. The | reference for this package. The | ||||||
| [`jose-util`](https://github.com/go-jose/go-jose/tree/main/jose-util) | [`jose-util`](https://github.com/go-jose/go-jose/tree/v4/jose-util) | ||||||
| subdirectory also contains a small command-line utility which might be useful | subdirectory also contains a small command-line utility which might be useful | ||||||
| as an example as well. | as an example as well. | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-jose/go-jose/v4/jwe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-jose/go-jose/v4/jwe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -288,11 +288,10 @@ func ParseEncryptedCompact( | |||||||
| 	keyAlgorithms []KeyAlgorithm, | 	keyAlgorithms []KeyAlgorithm, | ||||||
| 	contentEncryption []ContentEncryption, | 	contentEncryption []ContentEncryption, | ||||||
| ) (*JSONWebEncryption, error) { | ) (*JSONWebEncryption, error) { | ||||||
| 	// Five parts is four separators | 	parts := strings.Split(input, ".") | ||||||
| 	if strings.Count(input, ".") != 4 { | 	if len(parts) != 5 { | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: compact JWE format must have five parts") | 		return nil, fmt.Errorf("go-jose/go-jose: compact JWE format must have five parts") | ||||||
| 	} | 	} | ||||||
| 	parts := strings.SplitN(input, ".", 5) |  | ||||||
|  |  | ||||||
| 	rawProtected, err := base64.RawURLEncoding.DecodeString(parts[0]) | 	rawProtected, err := base64.RawURLEncoding.DecodeString(parts[0]) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/go-jose/go-jose/v4/jwk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-jose/go-jose/v4/jwk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -239,10 +239,10 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) { | |||||||
| 				keyPub = key | 				keyPub = key | ||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 			return fmt.Errorf("go-jose/go-jose: unknown curve %s'", raw.Crv) | 			err = fmt.Errorf("go-jose/go-jose: unknown curve %s'", raw.Crv) | ||||||
| 		} | 		} | ||||||
| 	default: | 	default: | ||||||
| 		return fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty) | 		err = fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-jose/go-jose/v4/jws.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-jose/go-jose/v4/jws.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -327,11 +327,10 @@ func parseSignedCompact( | |||||||
| 	payload []byte, | 	payload []byte, | ||||||
| 	signatureAlgorithms []SignatureAlgorithm, | 	signatureAlgorithms []SignatureAlgorithm, | ||||||
| ) (*JSONWebSignature, error) { | ) (*JSONWebSignature, error) { | ||||||
| 	// Three parts is two separators | 	parts := strings.Split(input, ".") | ||||||
| 	if strings.Count(input, ".") != 2 { | 	if len(parts) != 3 { | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: compact JWS format must have three parts") | 		return nil, fmt.Errorf("go-jose/go-jose: compact JWS format must have three parts") | ||||||
| 	} | 	} | ||||||
| 	parts := strings.SplitN(input, ".", 3) |  | ||||||
|  |  | ||||||
| 	if parts[1] != "" && payload != nil { | 	if parts[1] != "" && payload != nil { | ||||||
| 		return nil, fmt.Errorf("go-jose/go-jose: payload is not detached") | 		return nil, fmt.Errorf("go-jose/go-jose: payload is not detached") | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/net/http2/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/net/http2/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -60,7 +60,7 @@ func configFromServer(h1 *http.Server, h2 *Server) http2Config { | |||||||
| 	return conf | 	return conf | ||||||
| } | } | ||||||
|  |  | ||||||
| // configFromTransport merges configuration settings from h2 and h2.t1.HTTP2 | // configFromServer merges configuration settings from h2 and h2.t1.HTTP2 | ||||||
| // (the net/http Transport). | // (the net/http Transport). | ||||||
| func configFromTransport(h2 *Transport) http2Config { | func configFromTransport(h2 *Transport) http2Config { | ||||||
| 	conf := http2Config{ | 	conf := http2Config{ | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/net/http2/config_go124.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/net/http2/config_go124.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ func fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) { | |||||||
| 	fillNetHTTPConfig(conf, srv.HTTP2) | 	fillNetHTTPConfig(conf, srv.HTTP2) | ||||||
| } | } | ||||||
|  |  | ||||||
| // fillNetHTTPTransportConfig sets fields in conf from tr.HTTP2. | // fillNetHTTPServerConfig sets fields in conf from tr.HTTP2. | ||||||
| func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) { | func fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) { | ||||||
| 	fillNetHTTPConfig(conf, tr.HTTP2) | 	fillNetHTTPConfig(conf, tr.HTTP2) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,11 +1,11 @@ | |||||||
| // Copyright 2025 The Go Authors. All rights reserved. | // Copyright 2014 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
| 
 | 
 | ||||||
| package httpcommon | package http2 | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"net/textproto" | 	"net/http" | ||||||
| 	"sync" | 	"sync" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| @@ -82,15 +82,13 @@ func buildCommonHeaderMaps() { | |||||||
| 	commonLowerHeader = make(map[string]string, len(common)) | 	commonLowerHeader = make(map[string]string, len(common)) | ||||||
| 	commonCanonHeader = make(map[string]string, len(common)) | 	commonCanonHeader = make(map[string]string, len(common)) | ||||||
| 	for _, v := range common { | 	for _, v := range common { | ||||||
| 		chk := textproto.CanonicalMIMEHeaderKey(v) | 		chk := http.CanonicalHeaderKey(v) | ||||||
| 		commonLowerHeader[chk] = v | 		commonLowerHeader[chk] = v | ||||||
| 		commonCanonHeader[v] = chk | 		commonCanonHeader[v] = chk | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // LowerHeader returns the lowercase form of a header name, | func lowerHeader(v string) (lower string, ascii bool) { | ||||||
| // used on the wire for HTTP/2 and HTTP/3 requests. |  | ||||||
| func LowerHeader(v string) (lower string, ascii bool) { |  | ||||||
| 	buildCommonHeaderMapsOnce() | 	buildCommonHeaderMapsOnce() | ||||||
| 	if s, ok := commonLowerHeader[v]; ok { | 	if s, ok := commonLowerHeader[v]; ok { | ||||||
| 		return s, true | 		return s, true | ||||||
| @@ -98,18 +96,10 @@ func LowerHeader(v string) (lower string, ascii bool) { | |||||||
| 	return asciiToLower(v) | 	return asciiToLower(v) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // CanonicalHeader canonicalizes a header name. (For example, "host" becomes "Host".) | func canonicalHeader(v string) string { | ||||||
| func CanonicalHeader(v string) string { |  | ||||||
| 	buildCommonHeaderMapsOnce() | 	buildCommonHeaderMapsOnce() | ||||||
| 	if s, ok := commonCanonHeader[v]; ok { | 	if s, ok := commonCanonHeader[v]; ok { | ||||||
| 		return s | 		return s | ||||||
| 	} | 	} | ||||||
| 	return textproto.CanonicalMIMEHeaderKey(v) | 	return http.CanonicalHeaderKey(v) | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // CachedCanonicalHeader returns the canonical form of a well-known header name. |  | ||||||
| func CachedCanonicalHeader(v string) (string, bool) { |  | ||||||
| 	buildCommonHeaderMapsOnce() |  | ||||||
| 	s, ok := commonCanonHeader[v] |  | ||||||
| 	return s, ok |  | ||||||
| } | } | ||||||
							
								
								
									
										31
									
								
								vendor/golang.org/x/net/http2/http2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								vendor/golang.org/x/net/http2/http2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -38,15 +38,7 @@ var ( | |||||||
| 	logFrameWrites                 bool | 	logFrameWrites                 bool | ||||||
| 	logFrameReads                  bool | 	logFrameReads                  bool | ||||||
| 	inTests                        bool | 	inTests                        bool | ||||||
|  | 	disableExtendedConnectProtocol bool | ||||||
| 	// Enabling extended CONNECT by causes browsers to attempt to use |  | ||||||
| 	// WebSockets-over-HTTP/2. This results in problems when the server's websocket |  | ||||||
| 	// package doesn't support extended CONNECT. |  | ||||||
| 	// |  | ||||||
| 	// Disable extended CONNECT by default for now. |  | ||||||
| 	// |  | ||||||
| 	// Issue #71128. |  | ||||||
| 	disableExtendedConnectProtocol = true |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func init() { | func init() { | ||||||
| @@ -59,8 +51,8 @@ func init() { | |||||||
| 		logFrameWrites = true | 		logFrameWrites = true | ||||||
| 		logFrameReads = true | 		logFrameReads = true | ||||||
| 	} | 	} | ||||||
| 	if strings.Contains(e, "http2xconnect=1") { | 	if strings.Contains(e, "http2xconnect=0") { | ||||||
| 		disableExtendedConnectProtocol = false | 		disableExtendedConnectProtocol = true | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -415,6 +407,23 @@ func (s *sorter) SortStrings(ss []string) { | |||||||
| 	s.v = save | 	s.v = save | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // validPseudoPath reports whether v is a valid :path pseudo-header | ||||||
|  | // value. It must be either: | ||||||
|  | // | ||||||
|  | //   - a non-empty string starting with '/' | ||||||
|  | //   - the string '*', for OPTIONS requests. | ||||||
|  | // | ||||||
|  | // For now this is only used a quick check for deciding when to clean | ||||||
|  | // up Opaque URLs before sending requests from the Transport. | ||||||
|  | // See golang.org/issue/16847 | ||||||
|  | // | ||||||
|  | // We used to enforce that the path also didn't start with "//", but | ||||||
|  | // Google's GFE accepts such paths and Chrome sends them, so ignore | ||||||
|  | // that part of the spec. See golang.org/issue/19103. | ||||||
|  | func validPseudoPath(v string) bool { | ||||||
|  | 	return (len(v) > 0 && v[0] == '/') || v == "*" | ||||||
|  | } | ||||||
|  |  | ||||||
| // incomparable is a zero-width, non-comparable type. Adding it to a struct | // incomparable is a zero-width, non-comparable type. Adding it to a struct | ||||||
| // makes that struct also non-comparable, and generally doesn't add | // makes that struct also non-comparable, and generally doesn't add | ||||||
| // any size (as long as it's first). | // any size (as long as it's first). | ||||||
|   | |||||||
							
								
								
									
										125
									
								
								vendor/golang.org/x/net/http2/server.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										125
									
								
								vendor/golang.org/x/net/http2/server.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -50,7 +50,6 @@ import ( | |||||||
|  |  | ||||||
| 	"golang.org/x/net/http/httpguts" | 	"golang.org/x/net/http/httpguts" | ||||||
| 	"golang.org/x/net/http2/hpack" | 	"golang.org/x/net/http2/hpack" | ||||||
| 	"golang.org/x/net/internal/httpcommon" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -813,7 +812,8 @@ const maxCachedCanonicalHeadersKeysSize = 2048 | |||||||
|  |  | ||||||
| func (sc *serverConn) canonicalHeader(v string) string { | func (sc *serverConn) canonicalHeader(v string) string { | ||||||
| 	sc.serveG.check() | 	sc.serveG.check() | ||||||
| 	cv, ok := httpcommon.CachedCanonicalHeader(v) | 	buildCommonHeaderMapsOnce() | ||||||
|  | 	cv, ok := commonCanonHeader[v] | ||||||
| 	if ok { | 	if ok { | ||||||
| 		return cv | 		return cv | ||||||
| 	} | 	} | ||||||
| @@ -2233,25 +2233,25 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream | |||||||
| func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) { | func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) { | ||||||
| 	sc.serveG.check() | 	sc.serveG.check() | ||||||
|  |  | ||||||
| 	rp := httpcommon.ServerRequestParam{ | 	rp := requestParam{ | ||||||
| 		Method:    f.PseudoValue("method"), | 		method:    f.PseudoValue("method"), | ||||||
| 		Scheme:    f.PseudoValue("scheme"), | 		scheme:    f.PseudoValue("scheme"), | ||||||
| 		Authority: f.PseudoValue("authority"), | 		authority: f.PseudoValue("authority"), | ||||||
| 		Path:      f.PseudoValue("path"), | 		path:      f.PseudoValue("path"), | ||||||
| 		Protocol:  f.PseudoValue("protocol"), | 		protocol:  f.PseudoValue("protocol"), | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// extended connect is disabled, so we should not see :protocol | 	// extended connect is disabled, so we should not see :protocol | ||||||
| 	if disableExtendedConnectProtocol && rp.Protocol != "" { | 	if disableExtendedConnectProtocol && rp.protocol != "" { | ||||||
| 		return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) | 		return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	isConnect := rp.Method == "CONNECT" | 	isConnect := rp.method == "CONNECT" | ||||||
| 	if isConnect { | 	if isConnect { | ||||||
| 		if rp.Protocol == "" && (rp.Path != "" || rp.Scheme != "" || rp.Authority == "") { | 		if rp.protocol == "" && (rp.path != "" || rp.scheme != "" || rp.authority == "") { | ||||||
| 			return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) | 			return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) | ||||||
| 		} | 		} | ||||||
| 	} else if rp.Method == "" || rp.Path == "" || (rp.Scheme != "https" && rp.Scheme != "http") { | 	} else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") { | ||||||
| 		// See 8.1.2.6 Malformed Requests and Responses: | 		// See 8.1.2.6 Malformed Requests and Responses: | ||||||
| 		// | 		// | ||||||
| 		// Malformed requests or responses that are detected | 		// Malformed requests or responses that are detected | ||||||
| @@ -2265,16 +2265,15 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res | |||||||
| 		return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) | 		return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	header := make(http.Header) | 	rp.header = make(http.Header) | ||||||
| 	rp.Header = header |  | ||||||
| 	for _, hf := range f.RegularFields() { | 	for _, hf := range f.RegularFields() { | ||||||
| 		header.Add(sc.canonicalHeader(hf.Name), hf.Value) | 		rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value) | ||||||
| 	} | 	} | ||||||
| 	if rp.Authority == "" { | 	if rp.authority == "" { | ||||||
| 		rp.Authority = header.Get("Host") | 		rp.authority = rp.header.Get("Host") | ||||||
| 	} | 	} | ||||||
| 	if rp.Protocol != "" { | 	if rp.protocol != "" { | ||||||
| 		header.Set(":protocol", rp.Protocol) | 		rp.header.Set(":protocol", rp.protocol) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	rw, req, err := sc.newWriterAndRequestNoBody(st, rp) | 	rw, req, err := sc.newWriterAndRequestNoBody(st, rp) | ||||||
| @@ -2283,7 +2282,7 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res | |||||||
| 	} | 	} | ||||||
| 	bodyOpen := !f.StreamEnded() | 	bodyOpen := !f.StreamEnded() | ||||||
| 	if bodyOpen { | 	if bodyOpen { | ||||||
| 		if vv, ok := rp.Header["Content-Length"]; ok { | 		if vv, ok := rp.header["Content-Length"]; ok { | ||||||
| 			if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { | 			if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { | ||||||
| 				req.ContentLength = int64(cl) | 				req.ContentLength = int64(cl) | ||||||
| 			} else { | 			} else { | ||||||
| @@ -2299,38 +2298,84 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res | |||||||
| 	return rw, req, nil | 	return rw, req, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp httpcommon.ServerRequestParam) (*responseWriter, *http.Request, error) { | type requestParam struct { | ||||||
|  | 	method                  string | ||||||
|  | 	scheme, authority, path string | ||||||
|  | 	protocol                string | ||||||
|  | 	header                  http.Header | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*responseWriter, *http.Request, error) { | ||||||
| 	sc.serveG.check() | 	sc.serveG.check() | ||||||
|  |  | ||||||
| 	var tlsState *tls.ConnectionState // nil if not scheme https | 	var tlsState *tls.ConnectionState // nil if not scheme https | ||||||
| 	if rp.Scheme == "https" { | 	if rp.scheme == "https" { | ||||||
| 		tlsState = sc.tlsState | 		tlsState = sc.tlsState | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	res := httpcommon.NewServerRequest(rp) | 	needsContinue := httpguts.HeaderValuesContainsToken(rp.header["Expect"], "100-continue") | ||||||
| 	if res.InvalidReason != "" { | 	if needsContinue { | ||||||
| 		return nil, nil, sc.countError(res.InvalidReason, streamError(st.id, ErrCodeProtocol)) | 		rp.header.Del("Expect") | ||||||
|  | 	} | ||||||
|  | 	// Merge Cookie headers into one "; "-delimited value. | ||||||
|  | 	if cookies := rp.header["Cookie"]; len(cookies) > 1 { | ||||||
|  | 		rp.header.Set("Cookie", strings.Join(cookies, "; ")) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Setup Trailers | ||||||
|  | 	var trailer http.Header | ||||||
|  | 	for _, v := range rp.header["Trailer"] { | ||||||
|  | 		for _, key := range strings.Split(v, ",") { | ||||||
|  | 			key = http.CanonicalHeaderKey(textproto.TrimString(key)) | ||||||
|  | 			switch key { | ||||||
|  | 			case "Transfer-Encoding", "Trailer", "Content-Length": | ||||||
|  | 				// Bogus. (copy of http1 rules) | ||||||
|  | 				// Ignore. | ||||||
|  | 			default: | ||||||
|  | 				if trailer == nil { | ||||||
|  | 					trailer = make(http.Header) | ||||||
|  | 				} | ||||||
|  | 				trailer[key] = nil | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	delete(rp.header, "Trailer") | ||||||
|  |  | ||||||
|  | 	var url_ *url.URL | ||||||
|  | 	var requestURI string | ||||||
|  | 	if rp.method == "CONNECT" && rp.protocol == "" { | ||||||
|  | 		url_ = &url.URL{Host: rp.authority} | ||||||
|  | 		requestURI = rp.authority // mimic HTTP/1 server behavior | ||||||
|  | 	} else { | ||||||
|  | 		var err error | ||||||
|  | 		url_, err = url.ParseRequestURI(rp.path) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, nil, sc.countError("bad_path", streamError(st.id, ErrCodeProtocol)) | ||||||
|  | 		} | ||||||
|  | 		requestURI = rp.path | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	body := &requestBody{ | 	body := &requestBody{ | ||||||
| 		conn:          sc, | 		conn:          sc, | ||||||
| 		stream:        st, | 		stream:        st, | ||||||
| 		needsContinue: res.NeedsContinue, | 		needsContinue: needsContinue, | ||||||
| 	} | 	} | ||||||
| 	req := (&http.Request{ | 	req := &http.Request{ | ||||||
| 		Method:     rp.Method, | 		Method:     rp.method, | ||||||
| 		URL:        res.URL, | 		URL:        url_, | ||||||
| 		RemoteAddr: sc.remoteAddrStr, | 		RemoteAddr: sc.remoteAddrStr, | ||||||
| 		Header:     rp.Header, | 		Header:     rp.header, | ||||||
| 		RequestURI: res.RequestURI, | 		RequestURI: requestURI, | ||||||
| 		Proto:      "HTTP/2.0", | 		Proto:      "HTTP/2.0", | ||||||
| 		ProtoMajor: 2, | 		ProtoMajor: 2, | ||||||
| 		ProtoMinor: 0, | 		ProtoMinor: 0, | ||||||
| 		TLS:        tlsState, | 		TLS:        tlsState, | ||||||
| 		Host:       rp.Authority, | 		Host:       rp.authority, | ||||||
| 		Body:       body, | 		Body:       body, | ||||||
| 		Trailer:    res.Trailer, | 		Trailer:    trailer, | ||||||
| 	}).WithContext(st.ctx) | 	} | ||||||
|  | 	req = req.WithContext(st.ctx) | ||||||
|  |  | ||||||
| 	rw := sc.newResponseWriter(st, req) | 	rw := sc.newResponseWriter(st, req) | ||||||
| 	return rw, req, nil | 	return rw, req, nil | ||||||
| } | } | ||||||
| @@ -3225,12 +3270,12 @@ func (sc *serverConn) startPush(msg *startPushRequest) { | |||||||
| 		// we start in "half closed (remote)" for simplicity. | 		// we start in "half closed (remote)" for simplicity. | ||||||
| 		// See further comments at the definition of stateHalfClosedRemote. | 		// See further comments at the definition of stateHalfClosedRemote. | ||||||
| 		promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote) | 		promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote) | ||||||
| 		rw, req, err := sc.newWriterAndRequestNoBody(promised, httpcommon.ServerRequestParam{ | 		rw, req, err := sc.newWriterAndRequestNoBody(promised, requestParam{ | ||||||
| 			Method:    msg.method, | 			method:    msg.method, | ||||||
| 			Scheme:    msg.url.Scheme, | 			scheme:    msg.url.Scheme, | ||||||
| 			Authority: msg.url.Host, | 			authority: msg.url.Host, | ||||||
| 			Path:      msg.url.RequestURI(), | 			path:      msg.url.RequestURI(), | ||||||
| 			Header:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE | 			header:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE | ||||||
| 		}) | 		}) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			// Should not happen, since we've already validated msg.url. | 			// Should not happen, since we've already validated msg.url. | ||||||
|   | |||||||
							
								
								
									
										347
									
								
								vendor/golang.org/x/net/http2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										347
									
								
								vendor/golang.org/x/net/http2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -25,6 +25,7 @@ import ( | |||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/http/httptrace" | 	"net/http/httptrace" | ||||||
| 	"net/textproto" | 	"net/textproto" | ||||||
|  | 	"sort" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"sync" | 	"sync" | ||||||
| @@ -34,7 +35,6 @@ import ( | |||||||
| 	"golang.org/x/net/http/httpguts" | 	"golang.org/x/net/http/httpguts" | ||||||
| 	"golang.org/x/net/http2/hpack" | 	"golang.org/x/net/http2/hpack" | ||||||
| 	"golang.org/x/net/idna" | 	"golang.org/x/net/idna" | ||||||
| 	"golang.org/x/net/internal/httpcommon" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -375,7 +375,6 @@ type ClientConn struct { | |||||||
| 	doNotReuse       bool       // whether conn is marked to not be reused for any future requests | 	doNotReuse       bool       // whether conn is marked to not be reused for any future requests | ||||||
| 	closing          bool | 	closing          bool | ||||||
| 	closed           bool | 	closed           bool | ||||||
| 	closedOnIdle     bool                     // true if conn was closed for idleness |  | ||||||
| 	seenSettings     bool                     // true if we've seen a settings frame, false otherwise | 	seenSettings     bool                     // true if we've seen a settings frame, false otherwise | ||||||
| 	seenSettingsChan chan struct{}            // closed when seenSettings is true or frame reading fails | 	seenSettingsChan chan struct{}            // closed when seenSettings is true or frame reading fails | ||||||
| 	wantSettingsAck  bool                     // we sent a SETTINGS frame and haven't heard back | 	wantSettingsAck  bool                     // we sent a SETTINGS frame and haven't heard back | ||||||
| @@ -1090,12 +1089,10 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { | |||||||
|  |  | ||||||
| 	// If this connection has never been used for a request and is closed, | 	// If this connection has never been used for a request and is closed, | ||||||
| 	// then let it take a request (which will fail). | 	// then let it take a request (which will fail). | ||||||
| 	// If the conn was closed for idleness, we're racing the idle timer; |  | ||||||
| 	// don't try to use the conn. (Issue #70515.) |  | ||||||
| 	// | 	// | ||||||
| 	// This avoids a situation where an error early in a connection's lifetime | 	// This avoids a situation where an error early in a connection's lifetime | ||||||
| 	// goes unreported. | 	// goes unreported. | ||||||
| 	if cc.nextStreamID == 1 && cc.streamsReserved == 0 && cc.closed && !cc.closedOnIdle { | 	if cc.nextStreamID == 1 && cc.streamsReserved == 0 && cc.closed { | ||||||
| 		st.canTakeNewRequest = true | 		st.canTakeNewRequest = true | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -1158,7 +1155,6 @@ func (cc *ClientConn) closeIfIdle() { | |||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	cc.closed = true | 	cc.closed = true | ||||||
| 	cc.closedOnIdle = true |  | ||||||
| 	nextID := cc.nextStreamID | 	nextID := cc.nextStreamID | ||||||
| 	// TODO: do clients send GOAWAY too? maybe? Just Close: | 	// TODO: do clients send GOAWAY too? maybe? Just Close: | ||||||
| 	cc.mu.Unlock() | 	cc.mu.Unlock() | ||||||
| @@ -1275,6 +1271,23 @@ func (cc *ClientConn) closeForLostPing() { | |||||||
| // exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. | // exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. | ||||||
| var errRequestCanceled = errors.New("net/http: request canceled") | var errRequestCanceled = errors.New("net/http: request canceled") | ||||||
|  |  | ||||||
|  | func commaSeparatedTrailers(req *http.Request) (string, error) { | ||||||
|  | 	keys := make([]string, 0, len(req.Trailer)) | ||||||
|  | 	for k := range req.Trailer { | ||||||
|  | 		k = canonicalHeader(k) | ||||||
|  | 		switch k { | ||||||
|  | 		case "Transfer-Encoding", "Trailer", "Content-Length": | ||||||
|  | 			return "", fmt.Errorf("invalid Trailer key %q", k) | ||||||
|  | 		} | ||||||
|  | 		keys = append(keys, k) | ||||||
|  | 	} | ||||||
|  | 	if len(keys) > 0 { | ||||||
|  | 		sort.Strings(keys) | ||||||
|  | 		return strings.Join(keys, ","), nil | ||||||
|  | 	} | ||||||
|  | 	return "", nil | ||||||
|  | } | ||||||
|  |  | ||||||
| func (cc *ClientConn) responseHeaderTimeout() time.Duration { | func (cc *ClientConn) responseHeaderTimeout() time.Duration { | ||||||
| 	if cc.t.t1 != nil { | 	if cc.t.t1 != nil { | ||||||
| 		return cc.t.t1.ResponseHeaderTimeout | 		return cc.t.t1.ResponseHeaderTimeout | ||||||
| @@ -1286,6 +1299,22 @@ func (cc *ClientConn) responseHeaderTimeout() time.Duration { | |||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // checkConnHeaders checks whether req has any invalid connection-level headers. | ||||||
|  | // per RFC 7540 section 8.1.2.2: Connection-Specific Header Fields. | ||||||
|  | // Certain headers are special-cased as okay but not transmitted later. | ||||||
|  | func checkConnHeaders(req *http.Request) error { | ||||||
|  | 	if v := req.Header.Get("Upgrade"); v != "" { | ||||||
|  | 		return fmt.Errorf("http2: invalid Upgrade request header: %q", req.Header["Upgrade"]) | ||||||
|  | 	} | ||||||
|  | 	if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { | ||||||
|  | 		return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv) | ||||||
|  | 	} | ||||||
|  | 	if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { | ||||||
|  | 		return fmt.Errorf("http2: invalid Connection request header: %q", vv) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| // actualContentLength returns a sanitized version of | // actualContentLength returns a sanitized version of | ||||||
| // req.ContentLength, where 0 actually means zero (not unknown) and -1 | // req.ContentLength, where 0 actually means zero (not unknown) and -1 | ||||||
| // means unknown. | // means unknown. | ||||||
| @@ -1331,7 +1360,25 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) | |||||||
| 		donec:                make(chan struct{}), | 		donec:                make(chan struct{}), | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	cs.requestedGzip = httpcommon.IsRequestGzip(req.Method, req.Header, cc.t.disableCompression()) | 	// TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? | ||||||
|  | 	if !cc.t.disableCompression() && | ||||||
|  | 		req.Header.Get("Accept-Encoding") == "" && | ||||||
|  | 		req.Header.Get("Range") == "" && | ||||||
|  | 		!cs.isHead { | ||||||
|  | 		// Request gzip only, not deflate. Deflate is ambiguous and | ||||||
|  | 		// not as universally supported anyway. | ||||||
|  | 		// See: https://zlib.net/zlib_faq.html#faq39 | ||||||
|  | 		// | ||||||
|  | 		// Note that we don't request this for HEAD requests, | ||||||
|  | 		// due to a bug in nginx: | ||||||
|  | 		//   http://trac.nginx.org/nginx/ticket/358 | ||||||
|  | 		//   https://golang.org/issue/5522 | ||||||
|  | 		// | ||||||
|  | 		// We don't request gzip if the request is for a range, since | ||||||
|  | 		// auto-decoding a portion of a gzipped document will just fail | ||||||
|  | 		// anyway. See https://golang.org/issue/8923 | ||||||
|  | 		cs.requestedGzip = true | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	go cs.doRequest(req, streamf) | 	go cs.doRequest(req, streamf) | ||||||
|  |  | ||||||
| @@ -1445,6 +1492,10 @@ func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStre | |||||||
| 	cc := cs.cc | 	cc := cs.cc | ||||||
| 	ctx := cs.ctx | 	ctx := cs.ctx | ||||||
|  |  | ||||||
|  | 	if err := checkConnHeaders(req); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	// wait for setting frames to be received, a server can change this value later, | 	// wait for setting frames to be received, a server can change this value later, | ||||||
| 	// but we just wait for the first settings frame | 	// but we just wait for the first settings frame | ||||||
| 	var isExtendedConnect bool | 	var isExtendedConnect bool | ||||||
| @@ -1608,39 +1659,26 @@ func (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error { | |||||||
| 	// we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is | 	// we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is | ||||||
| 	// sent by writeRequestBody below, along with any Trailers, | 	// sent by writeRequestBody below, along with any Trailers, | ||||||
| 	// again in form HEADERS{1}, CONTINUATION{0,}) | 	// again in form HEADERS{1}, CONTINUATION{0,}) | ||||||
| 	cc.hbuf.Reset() | 	trailers, err := commaSeparatedTrailers(req) | ||||||
| 	res, err := encodeRequestHeaders(req, cs.requestedGzip, cc.peerMaxHeaderListSize, func(name, value string) { |  | ||||||
| 		cc.writeHeader(name, value) |  | ||||||
| 	}) |  | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("http2: %w", err) | 		return err | ||||||
|  | 	} | ||||||
|  | 	hasTrailers := trailers != "" | ||||||
|  | 	contentLen := actualContentLength(req) | ||||||
|  | 	hasBody := contentLen != 0 | ||||||
|  | 	hdrs, err := cc.encodeHeaders(req, cs.requestedGzip, trailers, contentLen) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
| 	} | 	} | ||||||
| 	hdrs := cc.hbuf.Bytes() |  | ||||||
|  |  | ||||||
| 	// Write the request. | 	// Write the request. | ||||||
| 	endStream := !res.HasBody && !res.HasTrailers | 	endStream := !hasBody && !hasTrailers | ||||||
| 	cs.sentHeaders = true | 	cs.sentHeaders = true | ||||||
| 	err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) | 	err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) | ||||||
| 	traceWroteHeaders(cs.trace) | 	traceWroteHeaders(cs.trace) | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
| func encodeRequestHeaders(req *http.Request, addGzipHeader bool, peerMaxHeaderListSize uint64, headerf func(name, value string)) (httpcommon.EncodeHeadersResult, error) { |  | ||||||
| 	return httpcommon.EncodeHeaders(req.Context(), httpcommon.EncodeHeadersParam{ |  | ||||||
| 		Request: httpcommon.Request{ |  | ||||||
| 			Header:              req.Header, |  | ||||||
| 			Trailer:             req.Trailer, |  | ||||||
| 			URL:                 req.URL, |  | ||||||
| 			Host:                req.Host, |  | ||||||
| 			Method:              req.Method, |  | ||||||
| 			ActualContentLength: actualContentLength(req), |  | ||||||
| 		}, |  | ||||||
| 		AddGzipHeader:         addGzipHeader, |  | ||||||
| 		PeerMaxHeaderListSize: peerMaxHeaderListSize, |  | ||||||
| 		DefaultUserAgent:      defaultUserAgent, |  | ||||||
| 	}, headerf) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // cleanupWriteRequest performs post-request tasks. | // cleanupWriteRequest performs post-request tasks. | ||||||
| // | // | ||||||
| // If err (the result of writeRequest) is non-nil and the stream is not closed, | // If err (the result of writeRequest) is non-nil and the stream is not closed, | ||||||
| @@ -2028,6 +2066,218 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func validateHeaders(hdrs http.Header) string { | ||||||
|  | 	for k, vv := range hdrs { | ||||||
|  | 		if !httpguts.ValidHeaderFieldName(k) && k != ":protocol" { | ||||||
|  | 			return fmt.Sprintf("name %q", k) | ||||||
|  | 		} | ||||||
|  | 		for _, v := range vv { | ||||||
|  | 			if !httpguts.ValidHeaderFieldValue(v) { | ||||||
|  | 				// Don't include the value in the error, | ||||||
|  | 				// because it may be sensitive. | ||||||
|  | 				return fmt.Sprintf("value for header %q", k) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | var errNilRequestURL = errors.New("http2: Request.URI is nil") | ||||||
|  |  | ||||||
|  | func isNormalConnect(req *http.Request) bool { | ||||||
|  | 	return req.Method == "CONNECT" && req.Header.Get(":protocol") == "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // requires cc.wmu be held. | ||||||
|  | func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { | ||||||
|  | 	cc.hbuf.Reset() | ||||||
|  | 	if req.URL == nil { | ||||||
|  | 		return nil, errNilRequestURL | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	host := req.Host | ||||||
|  | 	if host == "" { | ||||||
|  | 		host = req.URL.Host | ||||||
|  | 	} | ||||||
|  | 	host, err := httpguts.PunycodeHostPort(host) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	if !httpguts.ValidHostHeader(host) { | ||||||
|  | 		return nil, errors.New("http2: invalid Host header") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var path string | ||||||
|  | 	if !isNormalConnect(req) { | ||||||
|  | 		path = req.URL.RequestURI() | ||||||
|  | 		if !validPseudoPath(path) { | ||||||
|  | 			orig := path | ||||||
|  | 			path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) | ||||||
|  | 			if !validPseudoPath(path) { | ||||||
|  | 				if req.URL.Opaque != "" { | ||||||
|  | 					return nil, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) | ||||||
|  | 				} else { | ||||||
|  | 					return nil, fmt.Errorf("invalid request :path %q", orig) | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Check for any invalid headers+trailers and return an error before we | ||||||
|  | 	// potentially pollute our hpack state. (We want to be able to | ||||||
|  | 	// continue to reuse the hpack encoder for future requests) | ||||||
|  | 	if err := validateHeaders(req.Header); err != "" { | ||||||
|  | 		return nil, fmt.Errorf("invalid HTTP header %s", err) | ||||||
|  | 	} | ||||||
|  | 	if err := validateHeaders(req.Trailer); err != "" { | ||||||
|  | 		return nil, fmt.Errorf("invalid HTTP trailer %s", err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	enumerateHeaders := func(f func(name, value string)) { | ||||||
|  | 		// 8.1.2.3 Request Pseudo-Header Fields | ||||||
|  | 		// The :path pseudo-header field includes the path and query parts of the | ||||||
|  | 		// target URI (the path-absolute production and optionally a '?' character | ||||||
|  | 		// followed by the query production, see Sections 3.3 and 3.4 of | ||||||
|  | 		// [RFC3986]). | ||||||
|  | 		f(":authority", host) | ||||||
|  | 		m := req.Method | ||||||
|  | 		if m == "" { | ||||||
|  | 			m = http.MethodGet | ||||||
|  | 		} | ||||||
|  | 		f(":method", m) | ||||||
|  | 		if !isNormalConnect(req) { | ||||||
|  | 			f(":path", path) | ||||||
|  | 			f(":scheme", req.URL.Scheme) | ||||||
|  | 		} | ||||||
|  | 		if trailers != "" { | ||||||
|  | 			f("trailer", trailers) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		var didUA bool | ||||||
|  | 		for k, vv := range req.Header { | ||||||
|  | 			if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { | ||||||
|  | 				// Host is :authority, already sent. | ||||||
|  | 				// Content-Length is automatic, set below. | ||||||
|  | 				continue | ||||||
|  | 			} else if asciiEqualFold(k, "connection") || | ||||||
|  | 				asciiEqualFold(k, "proxy-connection") || | ||||||
|  | 				asciiEqualFold(k, "transfer-encoding") || | ||||||
|  | 				asciiEqualFold(k, "upgrade") || | ||||||
|  | 				asciiEqualFold(k, "keep-alive") { | ||||||
|  | 				// Per 8.1.2.2 Connection-Specific Header | ||||||
|  | 				// Fields, don't send connection-specific | ||||||
|  | 				// fields. We have already checked if any | ||||||
|  | 				// are error-worthy so just ignore the rest. | ||||||
|  | 				continue | ||||||
|  | 			} else if asciiEqualFold(k, "user-agent") { | ||||||
|  | 				// Match Go's http1 behavior: at most one | ||||||
|  | 				// User-Agent. If set to nil or empty string, | ||||||
|  | 				// then omit it. Otherwise if not mentioned, | ||||||
|  | 				// include the default (below). | ||||||
|  | 				didUA = true | ||||||
|  | 				if len(vv) < 1 { | ||||||
|  | 					continue | ||||||
|  | 				} | ||||||
|  | 				vv = vv[:1] | ||||||
|  | 				if vv[0] == "" { | ||||||
|  | 					continue | ||||||
|  | 				} | ||||||
|  | 			} else if asciiEqualFold(k, "cookie") { | ||||||
|  | 				// Per 8.1.2.5 To allow for better compression efficiency, the | ||||||
|  | 				// Cookie header field MAY be split into separate header fields, | ||||||
|  | 				// each with one or more cookie-pairs. | ||||||
|  | 				for _, v := range vv { | ||||||
|  | 					for { | ||||||
|  | 						p := strings.IndexByte(v, ';') | ||||||
|  | 						if p < 0 { | ||||||
|  | 							break | ||||||
|  | 						} | ||||||
|  | 						f("cookie", v[:p]) | ||||||
|  | 						p++ | ||||||
|  | 						// strip space after semicolon if any. | ||||||
|  | 						for p+1 <= len(v) && v[p] == ' ' { | ||||||
|  | 							p++ | ||||||
|  | 						} | ||||||
|  | 						v = v[p:] | ||||||
|  | 					} | ||||||
|  | 					if len(v) > 0 { | ||||||
|  | 						f("cookie", v) | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				continue | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			for _, v := range vv { | ||||||
|  | 				f(k, v) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		if shouldSendReqContentLength(req.Method, contentLength) { | ||||||
|  | 			f("content-length", strconv.FormatInt(contentLength, 10)) | ||||||
|  | 		} | ||||||
|  | 		if addGzipHeader { | ||||||
|  | 			f("accept-encoding", "gzip") | ||||||
|  | 		} | ||||||
|  | 		if !didUA { | ||||||
|  | 			f("user-agent", defaultUserAgent) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Do a first pass over the headers counting bytes to ensure | ||||||
|  | 	// we don't exceed cc.peerMaxHeaderListSize. This is done as a | ||||||
|  | 	// separate pass before encoding the headers to prevent | ||||||
|  | 	// modifying the hpack state. | ||||||
|  | 	hlSize := uint64(0) | ||||||
|  | 	enumerateHeaders(func(name, value string) { | ||||||
|  | 		hf := hpack.HeaderField{Name: name, Value: value} | ||||||
|  | 		hlSize += uint64(hf.Size()) | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	if hlSize > cc.peerMaxHeaderListSize { | ||||||
|  | 		return nil, errRequestHeaderListSize | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	trace := httptrace.ContextClientTrace(req.Context()) | ||||||
|  | 	traceHeaders := traceHasWroteHeaderField(trace) | ||||||
|  |  | ||||||
|  | 	// Header list size is ok. Write the headers. | ||||||
|  | 	enumerateHeaders(func(name, value string) { | ||||||
|  | 		name, ascii := lowerHeader(name) | ||||||
|  | 		if !ascii { | ||||||
|  | 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||||
|  | 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
|  | 		cc.writeHeader(name, value) | ||||||
|  | 		if traceHeaders { | ||||||
|  | 			traceWroteHeaderField(trace, name, value) | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	return cc.hbuf.Bytes(), nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // shouldSendReqContentLength reports whether the http2.Transport should send | ||||||
|  | // a "content-length" request header. This logic is basically a copy of the net/http | ||||||
|  | // transferWriter.shouldSendContentLength. | ||||||
|  | // The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). | ||||||
|  | // -1 means unknown. | ||||||
|  | func shouldSendReqContentLength(method string, contentLength int64) bool { | ||||||
|  | 	if contentLength > 0 { | ||||||
|  | 		return true | ||||||
|  | 	} | ||||||
|  | 	if contentLength < 0 { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	// For zero bodies, whether we send a content-length depends on the method. | ||||||
|  | 	// It also kinda doesn't matter for http2 either way, with END_STREAM. | ||||||
|  | 	switch method { | ||||||
|  | 	case "POST", "PUT", "PATCH": | ||||||
|  | 		return true | ||||||
|  | 	default: | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| // requires cc.wmu be held. | // requires cc.wmu be held. | ||||||
| func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { | func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { | ||||||
| 	cc.hbuf.Reset() | 	cc.hbuf.Reset() | ||||||
| @@ -2044,7 +2294,7 @@ func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for k, vv := range trailer { | 	for k, vv := range trailer { | ||||||
| 		lowKey, ascii := httpcommon.LowerHeader(k) | 		lowKey, ascii := lowerHeader(k) | ||||||
| 		if !ascii { | 		if !ascii { | ||||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). | 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||||
| @@ -2184,12 +2434,9 @@ func (rl *clientConnReadLoop) cleanup() { | |||||||
| 	// This avoids a situation where new connections are constantly created, | 	// This avoids a situation where new connections are constantly created, | ||||||
| 	// added to the pool, fail, and are removed from the pool, without any error | 	// added to the pool, fail, and are removed from the pool, without any error | ||||||
| 	// being surfaced to the user. | 	// being surfaced to the user. | ||||||
| 	unusedWaitTime := 5 * time.Second | 	const unusedWaitTime = 5 * time.Second | ||||||
| 	if cc.idleTimeout > 0 && unusedWaitTime > cc.idleTimeout { |  | ||||||
| 		unusedWaitTime = cc.idleTimeout |  | ||||||
| 	} |  | ||||||
| 	idleTime := cc.t.now().Sub(cc.lastActive) | 	idleTime := cc.t.now().Sub(cc.lastActive) | ||||||
| 	if atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime && !cc.closedOnIdle { | 	if atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime { | ||||||
| 		cc.idleTimer = cc.t.afterFunc(unusedWaitTime-idleTime, func() { | 		cc.idleTimer = cc.t.afterFunc(unusedWaitTime-idleTime, func() { | ||||||
| 			cc.t.connPool().MarkDead(cc) | 			cc.t.connPool().MarkDead(cc) | ||||||
| 		}) | 		}) | ||||||
| @@ -2210,13 +2457,6 @@ func (rl *clientConnReadLoop) cleanup() { | |||||||
| 	} | 	} | ||||||
| 	cc.cond.Broadcast() | 	cc.cond.Broadcast() | ||||||
| 	cc.mu.Unlock() | 	cc.mu.Unlock() | ||||||
|  |  | ||||||
| 	if !cc.seenSettings { |  | ||||||
| 		// If we have a pending request that wants extended CONNECT, |  | ||||||
| 		// let it continue and fail with the connection error. |  | ||||||
| 		cc.extendedConnectAllowed = true |  | ||||||
| 		close(cc.seenSettingsChan) |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // countReadFrameError calls Transport.CountError with a string | // countReadFrameError calls Transport.CountError with a string | ||||||
| @@ -2309,6 +2549,9 @@ func (rl *clientConnReadLoop) run() error { | |||||||
| 			if VerboseLogs { | 			if VerboseLogs { | ||||||
| 				cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err) | 				cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err) | ||||||
| 			} | 			} | ||||||
|  | 			if !cc.seenSettings { | ||||||
|  | 				close(cc.seenSettingsChan) | ||||||
|  | 			} | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -2403,7 +2646,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra | |||||||
| 		Status:     status + " " + http.StatusText(statusCode), | 		Status:     status + " " + http.StatusText(statusCode), | ||||||
| 	} | 	} | ||||||
| 	for _, hf := range regularFields { | 	for _, hf := range regularFields { | ||||||
| 		key := httpcommon.CanonicalHeader(hf.Name) | 		key := canonicalHeader(hf.Name) | ||||||
| 		if key == "Trailer" { | 		if key == "Trailer" { | ||||||
| 			t := res.Trailer | 			t := res.Trailer | ||||||
| 			if t == nil { | 			if t == nil { | ||||||
| @@ -2411,7 +2654,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra | |||||||
| 				res.Trailer = t | 				res.Trailer = t | ||||||
| 			} | 			} | ||||||
| 			foreachHeaderElement(hf.Value, func(v string) { | 			foreachHeaderElement(hf.Value, func(v string) { | ||||||
| 				t[httpcommon.CanonicalHeader(v)] = nil | 				t[canonicalHeader(v)] = nil | ||||||
| 			}) | 			}) | ||||||
| 		} else { | 		} else { | ||||||
| 			vv := header[key] | 			vv := header[key] | ||||||
| @@ -2535,7 +2778,7 @@ func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFr | |||||||
|  |  | ||||||
| 	trailer := make(http.Header) | 	trailer := make(http.Header) | ||||||
| 	for _, hf := range f.RegularFields() { | 	for _, hf := range f.RegularFields() { | ||||||
| 		key := httpcommon.CanonicalHeader(hf.Name) | 		key := canonicalHeader(hf.Name) | ||||||
| 		trailer[key] = append(trailer[key], hf.Value) | 		trailer[key] = append(trailer[key], hf.Value) | ||||||
| 	} | 	} | ||||||
| 	cs.trailer = trailer | 	cs.trailer = trailer | ||||||
| @@ -3081,7 +3324,7 @@ func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, ping bool, | |||||||
|  |  | ||||||
| var ( | var ( | ||||||
| 	errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit") | 	errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit") | ||||||
| 	errRequestHeaderListSize  = httpcommon.ErrRequestHeaderListSize | 	errRequestHeaderListSize  = errors.New("http2: request header list larger than peer's advertised limit") | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func (cc *ClientConn) logf(format string, args ...interface{}) { | func (cc *ClientConn) logf(format string, args ...interface{}) { | ||||||
| @@ -3265,6 +3508,16 @@ func traceFirstResponseByte(trace *httptrace.ClientTrace) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { | ||||||
|  | 	return trace != nil && trace.WroteHeaderField != nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { | ||||||
|  | 	if trace != nil && trace.WroteHeaderField != nil { | ||||||
|  | 		trace.WroteHeaderField(k, []string{v}) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { | func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { | ||||||
| 	if trace != nil { | 	if trace != nil { | ||||||
| 		return trace.Got1xxResponse | 		return trace.Got1xxResponse | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/net/http2/write.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/net/http2/write.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,6 @@ import ( | |||||||
|  |  | ||||||
| 	"golang.org/x/net/http/httpguts" | 	"golang.org/x/net/http/httpguts" | ||||||
| 	"golang.org/x/net/http2/hpack" | 	"golang.org/x/net/http2/hpack" | ||||||
| 	"golang.org/x/net/internal/httpcommon" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // writeFramer is implemented by any type that is used to write frames. | // writeFramer is implemented by any type that is used to write frames. | ||||||
| @@ -352,7 +351,7 @@ func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) { | |||||||
| 	} | 	} | ||||||
| 	for _, k := range keys { | 	for _, k := range keys { | ||||||
| 		vv := h[k] | 		vv := h[k] | ||||||
| 		k, ascii := httpcommon.LowerHeader(k) | 		k, ascii := lowerHeader(k) | ||||||
| 		if !ascii { | 		if !ascii { | ||||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header | ||||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). | 			// field names have to be ASCII characters (just as in HTTP/1.x). | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								vendor/golang.org/x/net/internal/httpcommon/ascii.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								vendor/golang.org/x/net/internal/httpcommon/ascii.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,53 +0,0 @@ | |||||||
| // Copyright 2025 The Go Authors. All rights reserved. |  | ||||||
| // Use of this source code is governed by a BSD-style |  | ||||||
| // license that can be found in the LICENSE file. |  | ||||||
|  |  | ||||||
| package httpcommon |  | ||||||
|  |  | ||||||
| import "strings" |  | ||||||
|  |  | ||||||
| // The HTTP protocols are defined in terms of ASCII, not Unicode. This file |  | ||||||
| // contains helper functions which may use Unicode-aware functions which would |  | ||||||
| // otherwise be unsafe and could introduce vulnerabilities if used improperly. |  | ||||||
|  |  | ||||||
| // asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t |  | ||||||
| // are equal, ASCII-case-insensitively. |  | ||||||
| func asciiEqualFold(s, t string) bool { |  | ||||||
| 	if len(s) != len(t) { |  | ||||||
| 		return false |  | ||||||
| 	} |  | ||||||
| 	for i := 0; i < len(s); i++ { |  | ||||||
| 		if lower(s[i]) != lower(t[i]) { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // lower returns the ASCII lowercase version of b. |  | ||||||
| func lower(b byte) byte { |  | ||||||
| 	if 'A' <= b && b <= 'Z' { |  | ||||||
| 		return b + ('a' - 'A') |  | ||||||
| 	} |  | ||||||
| 	return b |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // isASCIIPrint returns whether s is ASCII and printable according to |  | ||||||
| // https://tools.ietf.org/html/rfc20#section-4.2. |  | ||||||
| func isASCIIPrint(s string) bool { |  | ||||||
| 	for i := 0; i < len(s); i++ { |  | ||||||
| 		if s[i] < ' ' || s[i] > '~' { |  | ||||||
| 			return false |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // asciiToLower returns the lowercase version of s if s is ASCII and printable, |  | ||||||
| // and whether or not it was. |  | ||||||
| func asciiToLower(s string) (lower string, ok bool) { |  | ||||||
| 	if !isASCIIPrint(s) { |  | ||||||
| 		return "", false |  | ||||||
| 	} |  | ||||||
| 	return strings.ToLower(s), true |  | ||||||
| } |  | ||||||
							
								
								
									
										467
									
								
								vendor/golang.org/x/net/internal/httpcommon/request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										467
									
								
								vendor/golang.org/x/net/internal/httpcommon/request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,467 +0,0 @@ | |||||||
| // Copyright 2025 The Go Authors. All rights reserved. |  | ||||||
| // Use of this source code is governed by a BSD-style |  | ||||||
| // license that can be found in the LICENSE file. |  | ||||||
|  |  | ||||||
| package httpcommon |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"errors" |  | ||||||
| 	"fmt" |  | ||||||
| 	"net/http/httptrace" |  | ||||||
| 	"net/textproto" |  | ||||||
| 	"net/url" |  | ||||||
| 	"sort" |  | ||||||
| 	"strconv" |  | ||||||
| 	"strings" |  | ||||||
|  |  | ||||||
| 	"golang.org/x/net/http/httpguts" |  | ||||||
| 	"golang.org/x/net/http2/hpack" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var ( |  | ||||||
| 	ErrRequestHeaderListSize = errors.New("request header list larger than peer's advertised limit") |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // Request is a subset of http.Request. |  | ||||||
| // It'd be simpler to pass an *http.Request, of course, but we can't depend on net/http |  | ||||||
| // without creating a dependency cycle. |  | ||||||
| type Request struct { |  | ||||||
| 	URL                 *url.URL |  | ||||||
| 	Method              string |  | ||||||
| 	Host                string |  | ||||||
| 	Header              map[string][]string |  | ||||||
| 	Trailer             map[string][]string |  | ||||||
| 	ActualContentLength int64 // 0 means 0, -1 means unknown |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // EncodeHeadersParam is parameters to EncodeHeaders. |  | ||||||
| type EncodeHeadersParam struct { |  | ||||||
| 	Request Request |  | ||||||
|  |  | ||||||
| 	// AddGzipHeader indicates that an "accept-encoding: gzip" header should be |  | ||||||
| 	// added to the request. |  | ||||||
| 	AddGzipHeader bool |  | ||||||
|  |  | ||||||
| 	// PeerMaxHeaderListSize, when non-zero, is the peer's MAX_HEADER_LIST_SIZE setting. |  | ||||||
| 	PeerMaxHeaderListSize uint64 |  | ||||||
|  |  | ||||||
| 	// DefaultUserAgent is the User-Agent header to send when the request |  | ||||||
| 	// neither contains a User-Agent nor disables it. |  | ||||||
| 	DefaultUserAgent string |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // EncodeHeadersParam is the result of EncodeHeaders. |  | ||||||
| type EncodeHeadersResult struct { |  | ||||||
| 	HasBody     bool |  | ||||||
| 	HasTrailers bool |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // EncodeHeaders constructs request headers common to HTTP/2 and HTTP/3. |  | ||||||
| // It validates a request and calls headerf with each pseudo-header and header |  | ||||||
| // for the request. |  | ||||||
| // The headerf function is called with the validated, canonicalized header name. |  | ||||||
| func EncodeHeaders(ctx context.Context, param EncodeHeadersParam, headerf func(name, value string)) (res EncodeHeadersResult, _ error) { |  | ||||||
| 	req := param.Request |  | ||||||
|  |  | ||||||
| 	// Check for invalid connection-level headers. |  | ||||||
| 	if err := checkConnHeaders(req.Header); err != nil { |  | ||||||
| 		return res, err |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if req.URL == nil { |  | ||||||
| 		return res, errors.New("Request.URL is nil") |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	host := req.Host |  | ||||||
| 	if host == "" { |  | ||||||
| 		host = req.URL.Host |  | ||||||
| 	} |  | ||||||
| 	host, err := httpguts.PunycodeHostPort(host) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return res, err |  | ||||||
| 	} |  | ||||||
| 	if !httpguts.ValidHostHeader(host) { |  | ||||||
| 		return res, errors.New("invalid Host header") |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// isNormalConnect is true if this is a non-extended CONNECT request. |  | ||||||
| 	isNormalConnect := false |  | ||||||
| 	var protocol string |  | ||||||
| 	if vv := req.Header[":protocol"]; len(vv) > 0 { |  | ||||||
| 		protocol = vv[0] |  | ||||||
| 	} |  | ||||||
| 	if req.Method == "CONNECT" && protocol == "" { |  | ||||||
| 		isNormalConnect = true |  | ||||||
| 	} else if protocol != "" && req.Method != "CONNECT" { |  | ||||||
| 		return res, errors.New("invalid :protocol header in non-CONNECT request") |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Validate the path, except for non-extended CONNECT requests which have no path. |  | ||||||
| 	var path string |  | ||||||
| 	if !isNormalConnect { |  | ||||||
| 		path = req.URL.RequestURI() |  | ||||||
| 		if !validPseudoPath(path) { |  | ||||||
| 			orig := path |  | ||||||
| 			path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) |  | ||||||
| 			if !validPseudoPath(path) { |  | ||||||
| 				if req.URL.Opaque != "" { |  | ||||||
| 					return res, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) |  | ||||||
| 				} else { |  | ||||||
| 					return res, fmt.Errorf("invalid request :path %q", orig) |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Check for any invalid headers+trailers and return an error before we |  | ||||||
| 	// potentially pollute our hpack state. (We want to be able to |  | ||||||
| 	// continue to reuse the hpack encoder for future requests) |  | ||||||
| 	if err := validateHeaders(req.Header); err != "" { |  | ||||||
| 		return res, fmt.Errorf("invalid HTTP header %s", err) |  | ||||||
| 	} |  | ||||||
| 	if err := validateHeaders(req.Trailer); err != "" { |  | ||||||
| 		return res, fmt.Errorf("invalid HTTP trailer %s", err) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	trailers, err := commaSeparatedTrailers(req.Trailer) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return res, err |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	enumerateHeaders := func(f func(name, value string)) { |  | ||||||
| 		// 8.1.2.3 Request Pseudo-Header Fields |  | ||||||
| 		// The :path pseudo-header field includes the path and query parts of the |  | ||||||
| 		// target URI (the path-absolute production and optionally a '?' character |  | ||||||
| 		// followed by the query production, see Sections 3.3 and 3.4 of |  | ||||||
| 		// [RFC3986]). |  | ||||||
| 		f(":authority", host) |  | ||||||
| 		m := req.Method |  | ||||||
| 		if m == "" { |  | ||||||
| 			m = "GET" |  | ||||||
| 		} |  | ||||||
| 		f(":method", m) |  | ||||||
| 		if !isNormalConnect { |  | ||||||
| 			f(":path", path) |  | ||||||
| 			f(":scheme", req.URL.Scheme) |  | ||||||
| 		} |  | ||||||
| 		if protocol != "" { |  | ||||||
| 			f(":protocol", protocol) |  | ||||||
| 		} |  | ||||||
| 		if trailers != "" { |  | ||||||
| 			f("trailer", trailers) |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		var didUA bool |  | ||||||
| 		for k, vv := range req.Header { |  | ||||||
| 			if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { |  | ||||||
| 				// Host is :authority, already sent. |  | ||||||
| 				// Content-Length is automatic, set below. |  | ||||||
| 				continue |  | ||||||
| 			} else if asciiEqualFold(k, "connection") || |  | ||||||
| 				asciiEqualFold(k, "proxy-connection") || |  | ||||||
| 				asciiEqualFold(k, "transfer-encoding") || |  | ||||||
| 				asciiEqualFold(k, "upgrade") || |  | ||||||
| 				asciiEqualFold(k, "keep-alive") { |  | ||||||
| 				// Per 8.1.2.2 Connection-Specific Header |  | ||||||
| 				// Fields, don't send connection-specific |  | ||||||
| 				// fields. We have already checked if any |  | ||||||
| 				// are error-worthy so just ignore the rest. |  | ||||||
| 				continue |  | ||||||
| 			} else if asciiEqualFold(k, "user-agent") { |  | ||||||
| 				// Match Go's http1 behavior: at most one |  | ||||||
| 				// User-Agent. If set to nil or empty string, |  | ||||||
| 				// then omit it. Otherwise if not mentioned, |  | ||||||
| 				// include the default (below). |  | ||||||
| 				didUA = true |  | ||||||
| 				if len(vv) < 1 { |  | ||||||
| 					continue |  | ||||||
| 				} |  | ||||||
| 				vv = vv[:1] |  | ||||||
| 				if vv[0] == "" { |  | ||||||
| 					continue |  | ||||||
| 				} |  | ||||||
| 			} else if asciiEqualFold(k, "cookie") { |  | ||||||
| 				// Per 8.1.2.5 To allow for better compression efficiency, the |  | ||||||
| 				// Cookie header field MAY be split into separate header fields, |  | ||||||
| 				// each with one or more cookie-pairs. |  | ||||||
| 				for _, v := range vv { |  | ||||||
| 					for { |  | ||||||
| 						p := strings.IndexByte(v, ';') |  | ||||||
| 						if p < 0 { |  | ||||||
| 							break |  | ||||||
| 						} |  | ||||||
| 						f("cookie", v[:p]) |  | ||||||
| 						p++ |  | ||||||
| 						// strip space after semicolon if any. |  | ||||||
| 						for p+1 <= len(v) && v[p] == ' ' { |  | ||||||
| 							p++ |  | ||||||
| 						} |  | ||||||
| 						v = v[p:] |  | ||||||
| 					} |  | ||||||
| 					if len(v) > 0 { |  | ||||||
| 						f("cookie", v) |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 				continue |  | ||||||
| 			} else if k == ":protocol" { |  | ||||||
| 				// :protocol pseudo-header was already sent above. |  | ||||||
| 				continue |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			for _, v := range vv { |  | ||||||
| 				f(k, v) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		if shouldSendReqContentLength(req.Method, req.ActualContentLength) { |  | ||||||
| 			f("content-length", strconv.FormatInt(req.ActualContentLength, 10)) |  | ||||||
| 		} |  | ||||||
| 		if param.AddGzipHeader { |  | ||||||
| 			f("accept-encoding", "gzip") |  | ||||||
| 		} |  | ||||||
| 		if !didUA { |  | ||||||
| 			f("user-agent", param.DefaultUserAgent) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Do a first pass over the headers counting bytes to ensure |  | ||||||
| 	// we don't exceed cc.peerMaxHeaderListSize. This is done as a |  | ||||||
| 	// separate pass before encoding the headers to prevent |  | ||||||
| 	// modifying the hpack state. |  | ||||||
| 	if param.PeerMaxHeaderListSize > 0 { |  | ||||||
| 		hlSize := uint64(0) |  | ||||||
| 		enumerateHeaders(func(name, value string) { |  | ||||||
| 			hf := hpack.HeaderField{Name: name, Value: value} |  | ||||||
| 			hlSize += uint64(hf.Size()) |  | ||||||
| 		}) |  | ||||||
|  |  | ||||||
| 		if hlSize > param.PeerMaxHeaderListSize { |  | ||||||
| 			return res, ErrRequestHeaderListSize |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	trace := httptrace.ContextClientTrace(ctx) |  | ||||||
|  |  | ||||||
| 	// Header list size is ok. Write the headers. |  | ||||||
| 	enumerateHeaders(func(name, value string) { |  | ||||||
| 		name, ascii := LowerHeader(name) |  | ||||||
| 		if !ascii { |  | ||||||
| 			// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header |  | ||||||
| 			// field names have to be ASCII characters (just as in HTTP/1.x). |  | ||||||
| 			return |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		headerf(name, value) |  | ||||||
|  |  | ||||||
| 		if trace != nil && trace.WroteHeaderField != nil { |  | ||||||
| 			trace.WroteHeaderField(name, []string{value}) |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	res.HasBody = req.ActualContentLength != 0 |  | ||||||
| 	res.HasTrailers = trailers != "" |  | ||||||
| 	return res, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // IsRequestGzip reports whether we should add an Accept-Encoding: gzip header |  | ||||||
| // for a request. |  | ||||||
| func IsRequestGzip(method string, header map[string][]string, disableCompression bool) bool { |  | ||||||
| 	// TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? |  | ||||||
| 	if !disableCompression && |  | ||||||
| 		len(header["Accept-Encoding"]) == 0 && |  | ||||||
| 		len(header["Range"]) == 0 && |  | ||||||
| 		method != "HEAD" { |  | ||||||
| 		// Request gzip only, not deflate. Deflate is ambiguous and |  | ||||||
| 		// not as universally supported anyway. |  | ||||||
| 		// See: https://zlib.net/zlib_faq.html#faq39 |  | ||||||
| 		// |  | ||||||
| 		// Note that we don't request this for HEAD requests, |  | ||||||
| 		// due to a bug in nginx: |  | ||||||
| 		//   http://trac.nginx.org/nginx/ticket/358 |  | ||||||
| 		//   https://golang.org/issue/5522 |  | ||||||
| 		// |  | ||||||
| 		// We don't request gzip if the request is for a range, since |  | ||||||
| 		// auto-decoding a portion of a gzipped document will just fail |  | ||||||
| 		// anyway. See https://golang.org/issue/8923 |  | ||||||
| 		return true |  | ||||||
| 	} |  | ||||||
| 	return false |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // checkConnHeaders checks whether req has any invalid connection-level headers. |  | ||||||
| // |  | ||||||
| // https://www.rfc-editor.org/rfc/rfc9114.html#section-4.2-3 |  | ||||||
| // https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.2-1 |  | ||||||
| // |  | ||||||
| // Certain headers are special-cased as okay but not transmitted later. |  | ||||||
| // For example, we allow "Transfer-Encoding: chunked", but drop the header when encoding. |  | ||||||
| func checkConnHeaders(h map[string][]string) error { |  | ||||||
| 	if vv := h["Upgrade"]; len(vv) > 0 && (vv[0] != "" && vv[0] != "chunked") { |  | ||||||
| 		return fmt.Errorf("invalid Upgrade request header: %q", vv) |  | ||||||
| 	} |  | ||||||
| 	if vv := h["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { |  | ||||||
| 		return fmt.Errorf("invalid Transfer-Encoding request header: %q", vv) |  | ||||||
| 	} |  | ||||||
| 	if vv := h["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { |  | ||||||
| 		return fmt.Errorf("invalid Connection request header: %q", vv) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func commaSeparatedTrailers(trailer map[string][]string) (string, error) { |  | ||||||
| 	keys := make([]string, 0, len(trailer)) |  | ||||||
| 	for k := range trailer { |  | ||||||
| 		k = CanonicalHeader(k) |  | ||||||
| 		switch k { |  | ||||||
| 		case "Transfer-Encoding", "Trailer", "Content-Length": |  | ||||||
| 			return "", fmt.Errorf("invalid Trailer key %q", k) |  | ||||||
| 		} |  | ||||||
| 		keys = append(keys, k) |  | ||||||
| 	} |  | ||||||
| 	if len(keys) > 0 { |  | ||||||
| 		sort.Strings(keys) |  | ||||||
| 		return strings.Join(keys, ","), nil |  | ||||||
| 	} |  | ||||||
| 	return "", nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // validPseudoPath reports whether v is a valid :path pseudo-header |  | ||||||
| // value. It must be either: |  | ||||||
| // |  | ||||||
| //   - a non-empty string starting with '/' |  | ||||||
| //   - the string '*', for OPTIONS requests. |  | ||||||
| // |  | ||||||
| // For now this is only used a quick check for deciding when to clean |  | ||||||
| // up Opaque URLs before sending requests from the Transport. |  | ||||||
| // See golang.org/issue/16847 |  | ||||||
| // |  | ||||||
| // We used to enforce that the path also didn't start with "//", but |  | ||||||
| // Google's GFE accepts such paths and Chrome sends them, so ignore |  | ||||||
| // that part of the spec. See golang.org/issue/19103. |  | ||||||
| func validPseudoPath(v string) bool { |  | ||||||
| 	return (len(v) > 0 && v[0] == '/') || v == "*" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func validateHeaders(hdrs map[string][]string) string { |  | ||||||
| 	for k, vv := range hdrs { |  | ||||||
| 		if !httpguts.ValidHeaderFieldName(k) && k != ":protocol" { |  | ||||||
| 			return fmt.Sprintf("name %q", k) |  | ||||||
| 		} |  | ||||||
| 		for _, v := range vv { |  | ||||||
| 			if !httpguts.ValidHeaderFieldValue(v) { |  | ||||||
| 				// Don't include the value in the error, |  | ||||||
| 				// because it may be sensitive. |  | ||||||
| 				return fmt.Sprintf("value for header %q", k) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // shouldSendReqContentLength reports whether we should send |  | ||||||
| // a "content-length" request header. This logic is basically a copy of the net/http |  | ||||||
| // transferWriter.shouldSendContentLength. |  | ||||||
| // The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). |  | ||||||
| // -1 means unknown. |  | ||||||
| func shouldSendReqContentLength(method string, contentLength int64) bool { |  | ||||||
| 	if contentLength > 0 { |  | ||||||
| 		return true |  | ||||||
| 	} |  | ||||||
| 	if contentLength < 0 { |  | ||||||
| 		return false |  | ||||||
| 	} |  | ||||||
| 	// For zero bodies, whether we send a content-length depends on the method. |  | ||||||
| 	// It also kinda doesn't matter for http2 either way, with END_STREAM. |  | ||||||
| 	switch method { |  | ||||||
| 	case "POST", "PUT", "PATCH": |  | ||||||
| 		return true |  | ||||||
| 	default: |  | ||||||
| 		return false |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // ServerRequestParam is parameters to NewServerRequest. |  | ||||||
| type ServerRequestParam struct { |  | ||||||
| 	Method                  string |  | ||||||
| 	Scheme, Authority, Path string |  | ||||||
| 	Protocol                string |  | ||||||
| 	Header                  map[string][]string |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // ServerRequestResult is the result of NewServerRequest. |  | ||||||
| type ServerRequestResult struct { |  | ||||||
| 	// Various http.Request fields. |  | ||||||
| 	URL        *url.URL |  | ||||||
| 	RequestURI string |  | ||||||
| 	Trailer    map[string][]string |  | ||||||
|  |  | ||||||
| 	NeedsContinue bool // client provided an "Expect: 100-continue" header |  | ||||||
|  |  | ||||||
| 	// If the request should be rejected, this is a short string suitable for passing |  | ||||||
| 	// to the http2 package's CountError function. |  | ||||||
| 	// It might be a bit odd to return errors this way rather than returing an error, |  | ||||||
| 	// but this ensures we don't forget to include a CountError reason. |  | ||||||
| 	InvalidReason string |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func NewServerRequest(rp ServerRequestParam) ServerRequestResult { |  | ||||||
| 	needsContinue := httpguts.HeaderValuesContainsToken(rp.Header["Expect"], "100-continue") |  | ||||||
| 	if needsContinue { |  | ||||||
| 		delete(rp.Header, "Expect") |  | ||||||
| 	} |  | ||||||
| 	// Merge Cookie headers into one "; "-delimited value. |  | ||||||
| 	if cookies := rp.Header["Cookie"]; len(cookies) > 1 { |  | ||||||
| 		rp.Header["Cookie"] = []string{strings.Join(cookies, "; ")} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Setup Trailers |  | ||||||
| 	var trailer map[string][]string |  | ||||||
| 	for _, v := range rp.Header["Trailer"] { |  | ||||||
| 		for _, key := range strings.Split(v, ",") { |  | ||||||
| 			key = textproto.CanonicalMIMEHeaderKey(textproto.TrimString(key)) |  | ||||||
| 			switch key { |  | ||||||
| 			case "Transfer-Encoding", "Trailer", "Content-Length": |  | ||||||
| 				// Bogus. (copy of http1 rules) |  | ||||||
| 				// Ignore. |  | ||||||
| 			default: |  | ||||||
| 				if trailer == nil { |  | ||||||
| 					trailer = make(map[string][]string) |  | ||||||
| 				} |  | ||||||
| 				trailer[key] = nil |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	delete(rp.Header, "Trailer") |  | ||||||
|  |  | ||||||
| 	// "':authority' MUST NOT include the deprecated userinfo subcomponent |  | ||||||
| 	// for "http" or "https" schemed URIs." |  | ||||||
| 	// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.3.1-2.3.8 |  | ||||||
| 	if strings.IndexByte(rp.Authority, '@') != -1 && (rp.Scheme == "http" || rp.Scheme == "https") { |  | ||||||
| 		return ServerRequestResult{ |  | ||||||
| 			InvalidReason: "userinfo_in_authority", |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	var url_ *url.URL |  | ||||||
| 	var requestURI string |  | ||||||
| 	if rp.Method == "CONNECT" && rp.Protocol == "" { |  | ||||||
| 		url_ = &url.URL{Host: rp.Authority} |  | ||||||
| 		requestURI = rp.Authority // mimic HTTP/1 server behavior |  | ||||||
| 	} else { |  | ||||||
| 		var err error |  | ||||||
| 		url_, err = url.ParseRequestURI(rp.Path) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return ServerRequestResult{ |  | ||||||
| 				InvalidReason: "bad_path", |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		requestURI = rp.Path |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return ServerRequestResult{ |  | ||||||
| 		URL:           url_, |  | ||||||
| 		NeedsContinue: needsContinue, |  | ||||||
| 		RequestURI:    requestURI, |  | ||||||
| 		Trailer:       trailer, |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
							
								
								
									
										8
									
								
								vendor/golang.org/x/net/proxy/per_host.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/golang.org/x/net/proxy/per_host.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,7 +7,6 @@ package proxy | |||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"net" | 	"net" | ||||||
| 	"net/netip" |  | ||||||
| 	"strings" | 	"strings" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -58,8 +57,7 @@ func (p *PerHost) DialContext(ctx context.Context, network, addr string) (c net. | |||||||
| } | } | ||||||
|  |  | ||||||
| func (p *PerHost) dialerForRequest(host string) Dialer { | func (p *PerHost) dialerForRequest(host string) Dialer { | ||||||
| 	if nip, err := netip.ParseAddr(host); err == nil { | 	if ip := net.ParseIP(host); ip != nil { | ||||||
| 		ip := net.IP(nip.AsSlice()) |  | ||||||
| 		for _, net := range p.bypassNetworks { | 		for _, net := range p.bypassNetworks { | ||||||
| 			if net.Contains(ip) { | 			if net.Contains(ip) { | ||||||
| 				return p.bypass | 				return p.bypass | ||||||
| @@ -110,8 +108,8 @@ func (p *PerHost) AddFromString(s string) { | |||||||
| 			} | 			} | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		if nip, err := netip.ParseAddr(host); err == nil { | 		if ip := net.ParseIP(host); ip != nil { | ||||||
| 			p.AddIP(net.IP(nip.AsSlice())) | 			p.AddIP(ip) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		if strings.HasPrefix(host, "*.") { | 		if strings.HasPrefix(host, "*.") { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/oauth2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/oauth2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -5,6 +5,15 @@ | |||||||
|  |  | ||||||
| oauth2 package contains a client implementation for OAuth 2.0 spec. | oauth2 package contains a client implementation for OAuth 2.0 spec. | ||||||
|  |  | ||||||
|  | ## Installation | ||||||
|  |  | ||||||
|  | ~~~~ | ||||||
|  | go get golang.org/x/oauth2 | ||||||
|  | ~~~~ | ||||||
|  |  | ||||||
|  | Or you can manually git clone the repository to | ||||||
|  | `$(go env GOPATH)/src/golang.org/x/oauth2`. | ||||||
|  |  | ||||||
| See pkg.go.dev for further documentation and examples. | See pkg.go.dev for further documentation and examples. | ||||||
|  |  | ||||||
| * [pkg.go.dev/golang.org/x/oauth2](https://pkg.go.dev/golang.org/x/oauth2) | * [pkg.go.dev/golang.org/x/oauth2](https://pkg.go.dev/golang.org/x/oauth2) | ||||||
| @@ -24,11 +33,7 @@ The main issue tracker for the oauth2 repository is located at | |||||||
| https://github.com/golang/oauth2/issues. | https://github.com/golang/oauth2/issues. | ||||||
|  |  | ||||||
| This repository uses Gerrit for code changes. To learn how to submit changes to | This repository uses Gerrit for code changes. To learn how to submit changes to | ||||||
| this repository, see https://go.dev/doc/contribute. | this repository, see https://golang.org/doc/contribute.html. In particular: | ||||||
|  |  | ||||||
| The git repository is https://go.googlesource.com/oauth2. |  | ||||||
|  |  | ||||||
| Note: |  | ||||||
|  |  | ||||||
| * Excluding trivial changes, all contributions should be connected to an existing issue. | * Excluding trivial changes, all contributions should be connected to an existing issue. | ||||||
| * API changes must go through the [change proposal process](https://go.dev/s/proposal-process) before they can be accepted. | * API changes must go through the [change proposal process](https://go.dev/s/proposal-process) before they can be accepted. | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								vendor/golang.org/x/oauth2/oauth2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/golang.org/x/oauth2/oauth2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -56,7 +56,7 @@ type Config struct { | |||||||
| 	// the OAuth flow, after the resource owner's URLs. | 	// the OAuth flow, after the resource owner's URLs. | ||||||
| 	RedirectURL string | 	RedirectURL string | ||||||
|  |  | ||||||
| 	// Scopes specifies optional requested permissions. | 	// Scope specifies optional requested permissions. | ||||||
| 	Scopes []string | 	Scopes []string | ||||||
|  |  | ||||||
| 	// authStyleCache caches which auth style to use when Endpoint.AuthStyle is | 	// authStyleCache caches which auth style to use when Endpoint.AuthStyle is | ||||||
| @@ -288,7 +288,7 @@ func (tf *tokenRefresher) Token() (*Token, error) { | |||||||
| 	if tf.refreshToken != tk.RefreshToken { | 	if tf.refreshToken != tk.RefreshToken { | ||||||
| 		tf.refreshToken = tk.RefreshToken | 		tf.refreshToken = tk.RefreshToken | ||||||
| 	} | 	} | ||||||
| 	return tk, nil | 	return tk, err | ||||||
| } | } | ||||||
|  |  | ||||||
| // reuseTokenSource is a TokenSource that holds a single token in memory | // reuseTokenSource is a TokenSource that holds a single token in memory | ||||||
| @@ -356,15 +356,11 @@ func NewClient(ctx context.Context, src TokenSource) *http.Client { | |||||||
| 	if src == nil { | 	if src == nil { | ||||||
| 		return internal.ContextClient(ctx) | 		return internal.ContextClient(ctx) | ||||||
| 	} | 	} | ||||||
| 	cc := internal.ContextClient(ctx) |  | ||||||
| 	return &http.Client{ | 	return &http.Client{ | ||||||
| 		Transport: &Transport{ | 		Transport: &Transport{ | ||||||
| 			Base:   cc.Transport, | 			Base:   internal.ContextClient(ctx).Transport, | ||||||
| 			Source: ReuseTokenSource(nil, src), | 			Source: ReuseTokenSource(nil, src), | ||||||
| 		}, | 		}, | ||||||
| 		CheckRedirect: cc.CheckRedirect, |  | ||||||
| 		Jar:           cc.Jar, |  | ||||||
| 		Timeout:       cc.Timeout, |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/oauth2/pkce.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/oauth2/pkce.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -21,7 +21,7 @@ const ( | |||||||
| // | // | ||||||
| // A fresh verifier should be generated for each authorization. | // A fresh verifier should be generated for each authorization. | ||||||
| // S256ChallengeOption(verifier) should then be passed to Config.AuthCodeURL | // S256ChallengeOption(verifier) should then be passed to Config.AuthCodeURL | ||||||
| // (or Config.DeviceAuth) and VerifierOption(verifier) to Config.Exchange | // (or Config.DeviceAccess) and VerifierOption(verifier) to Config.Exchange | ||||||
| // (or Config.DeviceAccessToken). | // (or Config.DeviceAccessToken). | ||||||
| func GenerateVerifier() string { | func GenerateVerifier() string { | ||||||
| 	// "RECOMMENDED that the output of a suitable random number generator be | 	// "RECOMMENDED that the output of a suitable random number generator be | ||||||
| @@ -51,7 +51,7 @@ func S256ChallengeFromVerifier(verifier string) string { | |||||||
| } | } | ||||||
|  |  | ||||||
| // S256ChallengeOption derives a PKCE code challenge derived from verifier with | // S256ChallengeOption derives a PKCE code challenge derived from verifier with | ||||||
| // method S256. It should be passed to Config.AuthCodeURL or Config.DeviceAuth | // method S256. It should be passed to Config.AuthCodeURL or Config.DeviceAccess | ||||||
| // only. | // only. | ||||||
| func S256ChallengeOption(verifier string) AuthCodeOption { | func S256ChallengeOption(verifier string) AuthCodeOption { | ||||||
| 	return challengeOption{ | 	return challengeOption{ | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sync/errgroup/errgroup.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sync/errgroup/errgroup.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -46,7 +46,7 @@ func (g *Group) done() { | |||||||
| // returns a non-nil error or the first time Wait returns, whichever occurs | // returns a non-nil error or the first time Wait returns, whichever occurs | ||||||
| // first. | // first. | ||||||
| func WithContext(ctx context.Context) (*Group, context.Context) { | func WithContext(ctx context.Context) (*Group, context.Context) { | ||||||
| 	ctx, cancel := context.WithCancelCause(ctx) | 	ctx, cancel := withCancelCause(ctx) | ||||||
| 	return &Group{cancel: cancel}, ctx | 	return &Group{cancel: cancel}, ctx | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -118,7 +118,6 @@ func (g *Group) TryGo(f func() error) bool { | |||||||
|  |  | ||||||
| // SetLimit limits the number of active goroutines in this group to at most n. | // SetLimit limits the number of active goroutines in this group to at most n. | ||||||
| // A negative value indicates no limit. | // A negative value indicates no limit. | ||||||
| // A limit of zero will prevent any new goroutines from being added. |  | ||||||
| // | // | ||||||
| // Any subsequent call to the Go method will block until it can add an active | // Any subsequent call to the Go method will block until it can add an active | ||||||
| // goroutine without exceeding the configured limit. | // goroutine without exceeding the configured limit. | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								vendor/golang.org/x/sync/errgroup/go120.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/golang.org/x/sync/errgroup/go120.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | // Copyright 2023 The Go Authors. All rights reserved. | ||||||
|  | // Use of this source code is governed by a BSD-style | ||||||
|  | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|  | //go:build go1.20 | ||||||
|  |  | ||||||
|  | package errgroup | ||||||
|  |  | ||||||
|  | import "context" | ||||||
|  |  | ||||||
|  | func withCancelCause(parent context.Context) (context.Context, func(error)) { | ||||||
|  | 	return context.WithCancelCause(parent) | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								vendor/golang.org/x/sync/errgroup/pre_go120.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								vendor/golang.org/x/sync/errgroup/pre_go120.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | // Copyright 2023 The Go Authors. All rights reserved. | ||||||
|  | // Use of this source code is governed by a BSD-style | ||||||
|  | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|  | //go:build !go1.20 | ||||||
|  |  | ||||||
|  | package errgroup | ||||||
|  |  | ||||||
|  | import "context" | ||||||
|  |  | ||||||
|  | func withCancelCause(parent context.Context) (context.Context, func(error)) { | ||||||
|  | 	ctx, cancel := context.WithCancel(parent) | ||||||
|  | 	return ctx, func(error) { cancel() } | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/cpu/cpu.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/cpu/cpu.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -72,9 +72,6 @@ var X86 struct { | |||||||
| 	HasSSSE3            bool // Supplemental streaming SIMD extension 3 | 	HasSSSE3            bool // Supplemental streaming SIMD extension 3 | ||||||
| 	HasSSE41            bool // Streaming SIMD extension 4 and 4.1 | 	HasSSE41            bool // Streaming SIMD extension 4 and 4.1 | ||||||
| 	HasSSE42            bool // Streaming SIMD extension 4 and 4.2 | 	HasSSE42            bool // Streaming SIMD extension 4 and 4.2 | ||||||
| 	HasAVXIFMA          bool // Advanced vector extension Integer Fused Multiply Add |  | ||||||
| 	HasAVXVNNI          bool // Advanced vector extension Vector Neural Network Instructions |  | ||||||
| 	HasAVXVNNIInt8      bool // Advanced vector extension Vector Neural Network Int8 instructions |  | ||||||
| 	_                   CacheLinePad | 	_                   CacheLinePad | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -53,9 +53,6 @@ func initOptions() { | |||||||
| 		{Name: "sse41", Feature: &X86.HasSSE41}, | 		{Name: "sse41", Feature: &X86.HasSSE41}, | ||||||
| 		{Name: "sse42", Feature: &X86.HasSSE42}, | 		{Name: "sse42", Feature: &X86.HasSSE42}, | ||||||
| 		{Name: "ssse3", Feature: &X86.HasSSSE3}, | 		{Name: "ssse3", Feature: &X86.HasSSSE3}, | ||||||
| 		{Name: "avxifma", Feature: &X86.HasAVXIFMA}, |  | ||||||
| 		{Name: "avxvnni", Feature: &X86.HasAVXVNNI}, |  | ||||||
| 		{Name: "avxvnniint8", Feature: &X86.HasAVXVNNIInt8}, |  | ||||||
|  |  | ||||||
| 		// These capabilities should always be enabled on amd64: | 		// These capabilities should always be enabled on amd64: | ||||||
| 		{Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, | 		{Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, | ||||||
| @@ -109,7 +106,7 @@ func archInit() { | |||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	eax7, ebx7, ecx7, edx7 := cpuid(7, 0) | 	_, ebx7, ecx7, edx7 := cpuid(7, 0) | ||||||
| 	X86.HasBMI1 = isSet(3, ebx7) | 	X86.HasBMI1 = isSet(3, ebx7) | ||||||
| 	X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX | 	X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX | ||||||
| 	X86.HasBMI2 = isSet(8, ebx7) | 	X86.HasBMI2 = isSet(8, ebx7) | ||||||
| @@ -137,24 +134,14 @@ func archInit() { | |||||||
| 		X86.HasAVX512VAES = isSet(9, ecx7) | 		X86.HasAVX512VAES = isSet(9, ecx7) | ||||||
| 		X86.HasAVX512VBMI2 = isSet(6, ecx7) | 		X86.HasAVX512VBMI2 = isSet(6, ecx7) | ||||||
| 		X86.HasAVX512BITALG = isSet(12, ecx7) | 		X86.HasAVX512BITALG = isSet(12, ecx7) | ||||||
|  |  | ||||||
|  | 		eax71, _, _, _ := cpuid(7, 1) | ||||||
|  | 		X86.HasAVX512BF16 = isSet(5, eax71) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	X86.HasAMXTile = isSet(24, edx7) | 	X86.HasAMXTile = isSet(24, edx7) | ||||||
| 	X86.HasAMXInt8 = isSet(25, edx7) | 	X86.HasAMXInt8 = isSet(25, edx7) | ||||||
| 	X86.HasAMXBF16 = isSet(22, edx7) | 	X86.HasAMXBF16 = isSet(22, edx7) | ||||||
|  |  | ||||||
| 	// These features depend on the second level of extended features. |  | ||||||
| 	if eax7 >= 1 { |  | ||||||
| 		eax71, _, _, edx71 := cpuid(7, 1) |  | ||||||
| 		if X86.HasAVX512 { |  | ||||||
| 			X86.HasAVX512BF16 = isSet(5, eax71) |  | ||||||
| 		} |  | ||||||
| 		if X86.HasAVX { |  | ||||||
| 			X86.HasAVXIFMA = isSet(23, eax71) |  | ||||||
| 			X86.HasAVXVNNI = isSet(4, eax71) |  | ||||||
| 			X86.HasAVXVNNIInt8 = isSet(4, edx71) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func isSet(bitpos uint, value uint32) bool { | func isSet(bitpos uint, value uint32) bool { | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								vendor/golang.org/x/sys/unix/auxv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/golang.org/x/sys/unix/auxv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,36 +0,0 @@ | |||||||
| // Copyright 2025 The Go Authors. All rights reserved. |  | ||||||
| // Use of this source code is governed by a BSD-style |  | ||||||
| // license that can be found in the LICENSE file. |  | ||||||
|  |  | ||||||
| //go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) |  | ||||||
|  |  | ||||||
| package unix |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"syscall" |  | ||||||
| 	"unsafe" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| //go:linkname runtime_getAuxv runtime.getAuxv |  | ||||||
| func runtime_getAuxv() []uintptr |  | ||||||
|  |  | ||||||
| // Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. |  | ||||||
| // The returned slice is always a fresh copy, owned by the caller. |  | ||||||
| // It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, |  | ||||||
| // which happens in some locked-down environments and build modes. |  | ||||||
| func Auxv() ([][2]uintptr, error) { |  | ||||||
| 	vec := runtime_getAuxv() |  | ||||||
| 	vecLen := len(vec) |  | ||||||
|  |  | ||||||
| 	if vecLen == 0 { |  | ||||||
| 		return nil, syscall.ENOENT |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if vecLen%2 != 0 { |  | ||||||
| 		return nil, syscall.EINVAL |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	result := make([]uintptr, vecLen) |  | ||||||
| 	copy(result, vec) |  | ||||||
| 	return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil |  | ||||||
| } |  | ||||||
							
								
								
									
										13
									
								
								vendor/golang.org/x/sys/unix/auxv_unsupported.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/golang.org/x/sys/unix/auxv_unsupported.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,13 +0,0 @@ | |||||||
| // Copyright 2025 The Go Authors. All rights reserved. |  | ||||||
| // Use of this source code is governed by a BSD-style |  | ||||||
| // license that can be found in the LICENSE file. |  | ||||||
|  |  | ||||||
| //go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) |  | ||||||
|  |  | ||||||
| package unix |  | ||||||
|  |  | ||||||
| import "syscall" |  | ||||||
|  |  | ||||||
| func Auxv() ([][2]uintptr, error) { |  | ||||||
| 	return nil, syscall.ENOTSUP |  | ||||||
| } |  | ||||||
							
								
								
									
										12
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -246,18 +246,6 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||||||
| 	return sendfile(outfd, infd, offset, count) | 	return sendfile(outfd, infd, offset, count) | ||||||
| } | } | ||||||
|  |  | ||||||
| func Dup3(oldfd, newfd, flags int) error { |  | ||||||
| 	if oldfd == newfd || flags&^O_CLOEXEC != 0 { |  | ||||||
| 		return EINVAL |  | ||||||
| 	} |  | ||||||
| 	how := F_DUP2FD |  | ||||||
| 	if flags&O_CLOEXEC != 0 { |  | ||||||
| 		how = F_DUP2FD_CLOEXEC |  | ||||||
| 	} |  | ||||||
| 	_, err := fcntl(oldfd, how, newfd) |  | ||||||
| 	return err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
|   | |||||||
							
								
								
									
										87
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										87
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1102,90 +1102,3 @@ func (s *Strioctl) SetInt(i int) { | |||||||
| func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { | func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { | ||||||
| 	return ioctlPtrRet(fd, req, unsafe.Pointer(s)) | 	return ioctlPtrRet(fd, req, unsafe.Pointer(s)) | ||||||
| } | } | ||||||
|  |  | ||||||
| // Ucred Helpers |  | ||||||
| // See ucred(3c) and getpeerucred(3c) |  | ||||||
|  |  | ||||||
| //sys	getpeerucred(fd uintptr, ucred *uintptr) (err error) |  | ||||||
| //sys	ucredFree(ucred uintptr) = ucred_free |  | ||||||
| //sys	ucredGet(pid int) (ucred uintptr, err error) = ucred_get |  | ||||||
| //sys	ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid |  | ||||||
| //sys	ucredGetegid(ucred uintptr) (gid int) = ucred_getegid |  | ||||||
| //sys	ucredGetruid(ucred uintptr) (uid int) = ucred_getruid |  | ||||||
| //sys	ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid |  | ||||||
| //sys	ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid |  | ||||||
| //sys	ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid |  | ||||||
| //sys	ucredGetpid(ucred uintptr) (pid int) = ucred_getpid |  | ||||||
|  |  | ||||||
| // Ucred is an opaque struct that holds user credentials. |  | ||||||
| type Ucred struct { |  | ||||||
| 	ucred uintptr |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // We need to ensure that ucredFree is called on the underlying ucred |  | ||||||
| // when the Ucred is garbage collected. |  | ||||||
| func ucredFinalizer(u *Ucred) { |  | ||||||
| 	ucredFree(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetPeerUcred(fd uintptr) (*Ucred, error) { |  | ||||||
| 	var ucred uintptr |  | ||||||
| 	err := getpeerucred(fd, &ucred) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	result := &Ucred{ |  | ||||||
| 		ucred: ucred, |  | ||||||
| 	} |  | ||||||
| 	// set the finalizer on the result so that the ucred will be freed |  | ||||||
| 	runtime.SetFinalizer(result, ucredFinalizer) |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func UcredGet(pid int) (*Ucred, error) { |  | ||||||
| 	ucred, err := ucredGet(pid) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	result := &Ucred{ |  | ||||||
| 		ucred: ucred, |  | ||||||
| 	} |  | ||||||
| 	// set the finalizer on the result so that the ucred will be freed |  | ||||||
| 	runtime.SetFinalizer(result, ucredFinalizer) |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Geteuid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGeteuid(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Getruid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGetruid(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Getsuid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGetsuid(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Getegid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGetegid(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Getrgid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGetrgid(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Getsgid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGetsgid(u.ucred) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (u *Ucred) Getpid() int { |  | ||||||
| 	defer runtime.KeepAlive(u) |  | ||||||
| 	return ucredGetpid(u.ucred) |  | ||||||
| } |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1245,7 +1245,6 @@ const ( | |||||||
| 	FAN_REPORT_DFID_NAME                        = 0xc00 | 	FAN_REPORT_DFID_NAME                        = 0xc00 | ||||||
| 	FAN_REPORT_DFID_NAME_TARGET                 = 0x1e00 | 	FAN_REPORT_DFID_NAME_TARGET                 = 0x1e00 | ||||||
| 	FAN_REPORT_DIR_FID                          = 0x400 | 	FAN_REPORT_DIR_FID                          = 0x400 | ||||||
| 	FAN_REPORT_FD_ERROR                         = 0x2000 |  | ||||||
| 	FAN_REPORT_FID                              = 0x200 | 	FAN_REPORT_FID                              = 0x200 | ||||||
| 	FAN_REPORT_NAME                             = 0x800 | 	FAN_REPORT_NAME                             = 0x800 | ||||||
| 	FAN_REPORT_PIDFD                            = 0x80 | 	FAN_REPORT_PIDFD                            = 0x80 | ||||||
| @@ -1331,10 +1330,8 @@ const ( | |||||||
| 	FUSE_SUPER_MAGIC                            = 0x65735546 | 	FUSE_SUPER_MAGIC                            = 0x65735546 | ||||||
| 	FUTEXFS_SUPER_MAGIC                         = 0xbad1dea | 	FUTEXFS_SUPER_MAGIC                         = 0xbad1dea | ||||||
| 	F_ADD_SEALS                                 = 0x409 | 	F_ADD_SEALS                                 = 0x409 | ||||||
| 	F_CREATED_QUERY                             = 0x404 |  | ||||||
| 	F_DUPFD                                     = 0x0 | 	F_DUPFD                                     = 0x0 | ||||||
| 	F_DUPFD_CLOEXEC                             = 0x406 | 	F_DUPFD_CLOEXEC                             = 0x406 | ||||||
| 	F_DUPFD_QUERY                               = 0x403 |  | ||||||
| 	F_EXLCK                                     = 0x4 | 	F_EXLCK                                     = 0x4 | ||||||
| 	F_GETFD                                     = 0x1 | 	F_GETFD                                     = 0x1 | ||||||
| 	F_GETFL                                     = 0x3 | 	F_GETFL                                     = 0x3 | ||||||
| @@ -1554,7 +1551,6 @@ const ( | |||||||
| 	IPPROTO_ROUTING                             = 0x2b | 	IPPROTO_ROUTING                             = 0x2b | ||||||
| 	IPPROTO_RSVP                                = 0x2e | 	IPPROTO_RSVP                                = 0x2e | ||||||
| 	IPPROTO_SCTP                                = 0x84 | 	IPPROTO_SCTP                                = 0x84 | ||||||
| 	IPPROTO_SMC                                 = 0x100 |  | ||||||
| 	IPPROTO_TCP                                 = 0x6 | 	IPPROTO_TCP                                 = 0x6 | ||||||
| 	IPPROTO_TP                                  = 0x1d | 	IPPROTO_TP                                  = 0x1d | ||||||
| 	IPPROTO_UDP                                 = 0x11 | 	IPPROTO_UDP                                 = 0x11 | ||||||
| @@ -1627,8 +1623,6 @@ const ( | |||||||
| 	IPV6_UNICAST_IF                             = 0x4c | 	IPV6_UNICAST_IF                             = 0x4c | ||||||
| 	IPV6_USER_FLOW                              = 0xe | 	IPV6_USER_FLOW                              = 0xe | ||||||
| 	IPV6_V6ONLY                                 = 0x1a | 	IPV6_V6ONLY                                 = 0x1a | ||||||
| 	IPV6_VERSION                                = 0x60 |  | ||||||
| 	IPV6_VERSION_MASK                           = 0xf0 |  | ||||||
| 	IPV6_XFRM_POLICY                            = 0x23 | 	IPV6_XFRM_POLICY                            = 0x23 | ||||||
| 	IP_ADD_MEMBERSHIP                           = 0x23 | 	IP_ADD_MEMBERSHIP                           = 0x23 | ||||||
| 	IP_ADD_SOURCE_MEMBERSHIP                    = 0x27 | 	IP_ADD_SOURCE_MEMBERSHIP                    = 0x27 | ||||||
| @@ -1873,7 +1867,6 @@ const ( | |||||||
| 	MADV_UNMERGEABLE                            = 0xd | 	MADV_UNMERGEABLE                            = 0xd | ||||||
| 	MADV_WILLNEED                               = 0x3 | 	MADV_WILLNEED                               = 0x3 | ||||||
| 	MADV_WIPEONFORK                             = 0x12 | 	MADV_WIPEONFORK                             = 0x12 | ||||||
| 	MAP_DROPPABLE                               = 0x8 |  | ||||||
| 	MAP_FILE                                    = 0x0 | 	MAP_FILE                                    = 0x0 | ||||||
| 	MAP_FIXED                                   = 0x10 | 	MAP_FIXED                                   = 0x10 | ||||||
| 	MAP_FIXED_NOREPLACE                         = 0x100000 | 	MAP_FIXED_NOREPLACE                         = 0x100000 | ||||||
| @@ -1974,7 +1967,6 @@ const ( | |||||||
| 	MSG_PEEK                                    = 0x2 | 	MSG_PEEK                                    = 0x2 | ||||||
| 	MSG_PROXY                                   = 0x10 | 	MSG_PROXY                                   = 0x10 | ||||||
| 	MSG_RST                                     = 0x1000 | 	MSG_RST                                     = 0x1000 | ||||||
| 	MSG_SOCK_DEVMEM                             = 0x2000000 |  | ||||||
| 	MSG_SYN                                     = 0x400 | 	MSG_SYN                                     = 0x400 | ||||||
| 	MSG_TRUNC                                   = 0x20 | 	MSG_TRUNC                                   = 0x20 | ||||||
| 	MSG_TRYHARD                                 = 0x4 | 	MSG_TRYHARD                                 = 0x4 | ||||||
| @@ -2091,7 +2083,6 @@ const ( | |||||||
| 	NFC_ATR_REQ_MAXSIZE                         = 0x40 | 	NFC_ATR_REQ_MAXSIZE                         = 0x40 | ||||||
| 	NFC_ATR_RES_GB_MAXSIZE                      = 0x2f | 	NFC_ATR_RES_GB_MAXSIZE                      = 0x2f | ||||||
| 	NFC_ATR_RES_MAXSIZE                         = 0x40 | 	NFC_ATR_RES_MAXSIZE                         = 0x40 | ||||||
| 	NFC_ATS_MAXSIZE                             = 0x14 |  | ||||||
| 	NFC_COMM_ACTIVE                             = 0x0 | 	NFC_COMM_ACTIVE                             = 0x0 | ||||||
| 	NFC_COMM_PASSIVE                            = 0x1 | 	NFC_COMM_PASSIVE                            = 0x1 | ||||||
| 	NFC_DEVICE_NAME_MAXSIZE                     = 0x8 | 	NFC_DEVICE_NAME_MAXSIZE                     = 0x8 | ||||||
| @@ -2172,7 +2163,6 @@ const ( | |||||||
| 	NFNL_SUBSYS_QUEUE                           = 0x3 | 	NFNL_SUBSYS_QUEUE                           = 0x3 | ||||||
| 	NFNL_SUBSYS_ULOG                            = 0x4 | 	NFNL_SUBSYS_ULOG                            = 0x4 | ||||||
| 	NFS_SUPER_MAGIC                             = 0x6969 | 	NFS_SUPER_MAGIC                             = 0x6969 | ||||||
| 	NFT_BITWISE_BOOL                            = 0x0 |  | ||||||
| 	NFT_CHAIN_FLAGS                             = 0x7 | 	NFT_CHAIN_FLAGS                             = 0x7 | ||||||
| 	NFT_CHAIN_MAXNAMELEN                        = 0x100 | 	NFT_CHAIN_MAXNAMELEN                        = 0x100 | ||||||
| 	NFT_CT_MAX                                  = 0x17 | 	NFT_CT_MAX                                  = 0x17 | ||||||
| @@ -2501,7 +2491,6 @@ const ( | |||||||
| 	PR_GET_PDEATHSIG                            = 0x2 | 	PR_GET_PDEATHSIG                            = 0x2 | ||||||
| 	PR_GET_SECCOMP                              = 0x15 | 	PR_GET_SECCOMP                              = 0x15 | ||||||
| 	PR_GET_SECUREBITS                           = 0x1b | 	PR_GET_SECUREBITS                           = 0x1b | ||||||
| 	PR_GET_SHADOW_STACK_STATUS                  = 0x4a |  | ||||||
| 	PR_GET_SPECULATION_CTRL                     = 0x34 | 	PR_GET_SPECULATION_CTRL                     = 0x34 | ||||||
| 	PR_GET_TAGGED_ADDR_CTRL                     = 0x38 | 	PR_GET_TAGGED_ADDR_CTRL                     = 0x38 | ||||||
| 	PR_GET_THP_DISABLE                          = 0x2a | 	PR_GET_THP_DISABLE                          = 0x2a | ||||||
| @@ -2510,7 +2499,6 @@ const ( | |||||||
| 	PR_GET_TIMING                               = 0xd | 	PR_GET_TIMING                               = 0xd | ||||||
| 	PR_GET_TSC                                  = 0x19 | 	PR_GET_TSC                                  = 0x19 | ||||||
| 	PR_GET_UNALIGN                              = 0x5 | 	PR_GET_UNALIGN                              = 0x5 | ||||||
| 	PR_LOCK_SHADOW_STACK_STATUS                 = 0x4c |  | ||||||
| 	PR_MCE_KILL                                 = 0x21 | 	PR_MCE_KILL                                 = 0x21 | ||||||
| 	PR_MCE_KILL_CLEAR                           = 0x0 | 	PR_MCE_KILL_CLEAR                           = 0x0 | ||||||
| 	PR_MCE_KILL_DEFAULT                         = 0x2 | 	PR_MCE_KILL_DEFAULT                         = 0x2 | ||||||
| @@ -2537,8 +2525,6 @@ const ( | |||||||
| 	PR_PAC_GET_ENABLED_KEYS                     = 0x3d | 	PR_PAC_GET_ENABLED_KEYS                     = 0x3d | ||||||
| 	PR_PAC_RESET_KEYS                           = 0x36 | 	PR_PAC_RESET_KEYS                           = 0x36 | ||||||
| 	PR_PAC_SET_ENABLED_KEYS                     = 0x3c | 	PR_PAC_SET_ENABLED_KEYS                     = 0x3c | ||||||
| 	PR_PMLEN_MASK                               = 0x7f000000 |  | ||||||
| 	PR_PMLEN_SHIFT                              = 0x18 |  | ||||||
| 	PR_PPC_DEXCR_CTRL_CLEAR                     = 0x4 | 	PR_PPC_DEXCR_CTRL_CLEAR                     = 0x4 | ||||||
| 	PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC              = 0x10 | 	PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC              = 0x10 | ||||||
| 	PR_PPC_DEXCR_CTRL_EDITABLE                  = 0x1 | 	PR_PPC_DEXCR_CTRL_EDITABLE                  = 0x1 | ||||||
| @@ -2606,7 +2592,6 @@ const ( | |||||||
| 	PR_SET_PTRACER                              = 0x59616d61 | 	PR_SET_PTRACER                              = 0x59616d61 | ||||||
| 	PR_SET_SECCOMP                              = 0x16 | 	PR_SET_SECCOMP                              = 0x16 | ||||||
| 	PR_SET_SECUREBITS                           = 0x1c | 	PR_SET_SECUREBITS                           = 0x1c | ||||||
| 	PR_SET_SHADOW_STACK_STATUS                  = 0x4b |  | ||||||
| 	PR_SET_SPECULATION_CTRL                     = 0x35 | 	PR_SET_SPECULATION_CTRL                     = 0x35 | ||||||
| 	PR_SET_SYSCALL_USER_DISPATCH                = 0x3b | 	PR_SET_SYSCALL_USER_DISPATCH                = 0x3b | ||||||
| 	PR_SET_TAGGED_ADDR_CTRL                     = 0x37 | 	PR_SET_TAGGED_ADDR_CTRL                     = 0x37 | ||||||
| @@ -2617,9 +2602,6 @@ const ( | |||||||
| 	PR_SET_UNALIGN                              = 0x6 | 	PR_SET_UNALIGN                              = 0x6 | ||||||
| 	PR_SET_VMA                                  = 0x53564d41 | 	PR_SET_VMA                                  = 0x53564d41 | ||||||
| 	PR_SET_VMA_ANON_NAME                        = 0x0 | 	PR_SET_VMA_ANON_NAME                        = 0x0 | ||||||
| 	PR_SHADOW_STACK_ENABLE                      = 0x1 |  | ||||||
| 	PR_SHADOW_STACK_PUSH                        = 0x4 |  | ||||||
| 	PR_SHADOW_STACK_WRITE                       = 0x2 |  | ||||||
| 	PR_SME_GET_VL                               = 0x40 | 	PR_SME_GET_VL                               = 0x40 | ||||||
| 	PR_SME_SET_VL                               = 0x3f | 	PR_SME_SET_VL                               = 0x3f | ||||||
| 	PR_SME_SET_VL_ONEXEC                        = 0x40000 | 	PR_SME_SET_VL_ONEXEC                        = 0x40000 | ||||||
| @@ -2929,6 +2911,7 @@ const ( | |||||||
| 	RTM_NEWNEXTHOP                              = 0x68 | 	RTM_NEWNEXTHOP                              = 0x68 | ||||||
| 	RTM_NEWNEXTHOPBUCKET                        = 0x74 | 	RTM_NEWNEXTHOPBUCKET                        = 0x74 | ||||||
| 	RTM_NEWNSID                                 = 0x58 | 	RTM_NEWNSID                                 = 0x58 | ||||||
|  | 	RTM_NEWNVLAN                                = 0x70 | ||||||
| 	RTM_NEWPREFIX                               = 0x34 | 	RTM_NEWPREFIX                               = 0x34 | ||||||
| 	RTM_NEWQDISC                                = 0x24 | 	RTM_NEWQDISC                                = 0x24 | ||||||
| 	RTM_NEWROUTE                                = 0x18 | 	RTM_NEWROUTE                                = 0x18 | ||||||
| @@ -2937,7 +2920,6 @@ const ( | |||||||
| 	RTM_NEWTCLASS                               = 0x28 | 	RTM_NEWTCLASS                               = 0x28 | ||||||
| 	RTM_NEWTFILTER                              = 0x2c | 	RTM_NEWTFILTER                              = 0x2c | ||||||
| 	RTM_NEWTUNNEL                               = 0x78 | 	RTM_NEWTUNNEL                               = 0x78 | ||||||
| 	RTM_NEWVLAN                                 = 0x70 |  | ||||||
| 	RTM_NR_FAMILIES                             = 0x1b | 	RTM_NR_FAMILIES                             = 0x1b | ||||||
| 	RTM_NR_MSGTYPES                             = 0x6c | 	RTM_NR_MSGTYPES                             = 0x6c | ||||||
| 	RTM_SETDCB                                  = 0x4f | 	RTM_SETDCB                                  = 0x4f | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -116,8 +116,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -306,7 +304,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -116,8 +116,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -307,7 +305,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -312,7 +310,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -109,7 +109,6 @@ const ( | |||||||
| 	F_SETOWN                         = 0x8 | 	F_SETOWN                         = 0x8 | ||||||
| 	F_UNLCK                          = 0x2 | 	F_UNLCK                          = 0x2 | ||||||
| 	F_WRLCK                          = 0x1 | 	F_WRLCK                          = 0x1 | ||||||
| 	GCS_MAGIC                        = 0x47435300 |  | ||||||
| 	HIDIOCGRAWINFO                   = 0x80084803 | 	HIDIOCGRAWINFO                   = 0x80084803 | ||||||
| 	HIDIOCGRDESC                     = 0x90044802 | 	HIDIOCGRDESC                     = 0x90044802 | ||||||
| 	HIDIOCGRDESCSIZE                 = 0x80044801 | 	HIDIOCGRDESCSIZE                 = 0x80044801 | ||||||
| @@ -120,8 +119,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -305,7 +302,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -116,8 +116,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -299,7 +297,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x80 | 	IN_NONBLOCK                      = 0x80 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -305,7 +303,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x80 | 	IN_NONBLOCK                      = 0x80 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -305,7 +303,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x80 | 	IN_NONBLOCK                      = 0x80 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -305,7 +303,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x80 | 	IN_NONBLOCK                      = 0x80 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -305,7 +303,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff |  | ||||||
| 	ISIG                             = 0x80 | 	ISIG                             = 0x80 | ||||||
| 	IUCLC                            = 0x1000 | 	IUCLC                            = 0x1000 | ||||||
| 	IXOFF                            = 0x400 | 	IXOFF                            = 0x400 | ||||||
| @@ -360,7 +358,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff |  | ||||||
| 	ISIG                             = 0x80 | 	ISIG                             = 0x80 | ||||||
| 	IUCLC                            = 0x1000 | 	IUCLC                            = 0x1000 | ||||||
| 	IXOFF                            = 0x400 | 	IXOFF                            = 0x400 | ||||||
| @@ -364,7 +362,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x80 | 	ISIG                             = 0x80 | ||||||
| 	IUCLC                            = 0x1000 | 	IUCLC                            = 0x1000 | ||||||
| 	IXOFF                            = 0x400 | 	IXOFF                            = 0x400 | ||||||
| @@ -364,7 +362,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xffffff0f |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xffff0f00 |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -296,7 +294,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -115,8 +115,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x80000 | 	IN_CLOEXEC                       = 0x80000 | ||||||
| 	IN_NONBLOCK                      = 0x800 | 	IN_NONBLOCK                      = 0x800 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -368,7 +366,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||||
| 	SCM_TIMESTAMPNS                  = 0x23 | 	SCM_TIMESTAMPNS                  = 0x23 | ||||||
| 	SCM_TS_OPT_ID                    = 0x51 |  | ||||||
| 	SCM_TXTIME                       = 0x3d | 	SCM_TXTIME                       = 0x3d | ||||||
| 	SCM_WIFI_STATUS                  = 0x29 | 	SCM_WIFI_STATUS                  = 0x29 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103 | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -119,8 +119,6 @@ const ( | |||||||
| 	IN_CLOEXEC                       = 0x400000 | 	IN_CLOEXEC                       = 0x400000 | ||||||
| 	IN_NONBLOCK                      = 0x4000 | 	IN_NONBLOCK                      = 0x4000 | ||||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9 | ||||||
| 	IPV6_FLOWINFO_MASK               = 0xfffffff |  | ||||||
| 	IPV6_FLOWLABEL_MASK              = 0xfffff |  | ||||||
| 	ISIG                             = 0x1 | 	ISIG                             = 0x1 | ||||||
| 	IUCLC                            = 0x200 | 	IUCLC                            = 0x200 | ||||||
| 	IXOFF                            = 0x1000 | 	IXOFF                            = 0x1000 | ||||||
| @@ -359,7 +357,6 @@ const ( | |||||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x38 | 	SCM_TIMESTAMPING_OPT_STATS       = 0x38 | ||||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3c | 	SCM_TIMESTAMPING_PKTINFO         = 0x3c | ||||||
| 	SCM_TIMESTAMPNS                  = 0x21 | 	SCM_TIMESTAMPNS                  = 0x21 | ||||||
| 	SCM_TS_OPT_ID                    = 0x5a |  | ||||||
| 	SCM_TXTIME                       = 0x3f | 	SCM_TXTIME                       = 0x3f | ||||||
| 	SCM_WIFI_STATUS                  = 0x25 | 	SCM_WIFI_STATUS                  = 0x25 | ||||||
| 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | 	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103 | ||||||
|   | |||||||
							
								
								
									
										114
									
								
								vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										114
									
								
								vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -141,16 +141,6 @@ import ( | |||||||
| //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" | //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" | ||||||
| //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" | //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" | ||||||
| //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" | //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" | ||||||
| //go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" |  | ||||||
| //go:cgo_import_dynamic libc_port_create port_create "libc.so" | //go:cgo_import_dynamic libc_port_create port_create "libc.so" | ||||||
| //go:cgo_import_dynamic libc_port_associate port_associate "libc.so" | //go:cgo_import_dynamic libc_port_associate port_associate "libc.so" | ||||||
| //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" | //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" | ||||||
| @@ -290,16 +280,6 @@ import ( | |||||||
| //go:linkname procgetpeername libc_getpeername | //go:linkname procgetpeername libc_getpeername | ||||||
| //go:linkname procsetsockopt libc_setsockopt | //go:linkname procsetsockopt libc_setsockopt | ||||||
| //go:linkname procrecvfrom libc_recvfrom | //go:linkname procrecvfrom libc_recvfrom | ||||||
| //go:linkname procgetpeerucred libc_getpeerucred |  | ||||||
| //go:linkname procucred_get libc_ucred_get |  | ||||||
| //go:linkname procucred_geteuid libc_ucred_geteuid |  | ||||||
| //go:linkname procucred_getegid libc_ucred_getegid |  | ||||||
| //go:linkname procucred_getruid libc_ucred_getruid |  | ||||||
| //go:linkname procucred_getrgid libc_ucred_getrgid |  | ||||||
| //go:linkname procucred_getsuid libc_ucred_getsuid |  | ||||||
| //go:linkname procucred_getsgid libc_ucred_getsgid |  | ||||||
| //go:linkname procucred_getpid libc_ucred_getpid |  | ||||||
| //go:linkname procucred_free libc_ucred_free |  | ||||||
| //go:linkname procport_create libc_port_create | //go:linkname procport_create libc_port_create | ||||||
| //go:linkname procport_associate libc_port_associate | //go:linkname procport_associate libc_port_associate | ||||||
| //go:linkname procport_dissociate libc_port_dissociate | //go:linkname procport_dissociate libc_port_dissociate | ||||||
| @@ -440,16 +420,6 @@ var ( | |||||||
| 	procgetpeername, | 	procgetpeername, | ||||||
| 	procsetsockopt, | 	procsetsockopt, | ||||||
| 	procrecvfrom, | 	procrecvfrom, | ||||||
| 	procgetpeerucred, |  | ||||||
| 	procucred_get, |  | ||||||
| 	procucred_geteuid, |  | ||||||
| 	procucred_getegid, |  | ||||||
| 	procucred_getruid, |  | ||||||
| 	procucred_getrgid, |  | ||||||
| 	procucred_getsuid, |  | ||||||
| 	procucred_getsgid, |  | ||||||
| 	procucred_getpid, |  | ||||||
| 	procucred_free, |  | ||||||
| 	procport_create, | 	procport_create, | ||||||
| 	procport_associate, | 	procport_associate, | ||||||
| 	procport_dissociate, | 	procport_dissociate, | ||||||
| @@ -2059,90 +2029,6 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl | |||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT | ||||||
|  |  | ||||||
| func getpeerucred(fd uintptr, ucred *uintptr) (err error) { |  | ||||||
| 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) |  | ||||||
| 	if e1 != 0 { |  | ||||||
| 		err = errnoErr(e1) |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGet(pid int) (ucred uintptr, err error) { |  | ||||||
| 	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) |  | ||||||
| 	ucred = uintptr(r0) |  | ||||||
| 	if e1 != 0 { |  | ||||||
| 		err = errnoErr(e1) |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGeteuid(ucred uintptr) (uid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	uid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGetegid(ucred uintptr) (gid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	gid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGetruid(ucred uintptr) (uid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	uid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGetrgid(ucred uintptr) (gid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	gid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGetsuid(ucred uintptr) (uid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	uid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGetsgid(ucred uintptr) (gid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	gid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredGetpid(ucred uintptr) (pid int) { |  | ||||||
| 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	pid = int(r0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func ucredFree(ucred uintptr) { |  | ||||||
| 	sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT |  | ||||||
|  |  | ||||||
| func port_create() (n int, err error) { | func port_create() (n int, err error) { | ||||||
| 	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) | 	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) | ||||||
| 	n = int(r0) | 	n = int(r0) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -458,8 +458,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR            = 460 | 	SYS_LSM_SET_SELF_ATTR            = 460 | ||||||
| 	SYS_LSM_LIST_MODULES             = 461 | 	SYS_LSM_LIST_MODULES             = 461 | ||||||
| 	SYS_MSEAL                        = 462 | 	SYS_MSEAL                        = 462 | ||||||
| 	SYS_SETXATTRAT                   = 463 |  | ||||||
| 	SYS_GETXATTRAT                   = 464 |  | ||||||
| 	SYS_LISTXATTRAT                  = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT                = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -381,8 +381,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -422,8 +422,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR            = 460 | 	SYS_LSM_SET_SELF_ATTR            = 460 | ||||||
| 	SYS_LSM_LIST_MODULES             = 461 | 	SYS_LSM_LIST_MODULES             = 461 | ||||||
| 	SYS_MSEAL                        = 462 | 	SYS_MSEAL                        = 462 | ||||||
| 	SYS_SETXATTRAT                   = 463 |  | ||||||
| 	SYS_GETXATTRAT                   = 464 |  | ||||||
| 	SYS_LISTXATTRAT                  = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT                = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -325,8 +325,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -321,8 +321,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -442,8 +442,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR            = 4460 | 	SYS_LSM_SET_SELF_ATTR            = 4460 | ||||||
| 	SYS_LSM_LIST_MODULES             = 4461 | 	SYS_LSM_LIST_MODULES             = 4461 | ||||||
| 	SYS_MSEAL                        = 4462 | 	SYS_MSEAL                        = 4462 | ||||||
| 	SYS_SETXATTRAT                   = 4463 |  | ||||||
| 	SYS_GETXATTRAT                   = 4464 |  | ||||||
| 	SYS_LISTXATTRAT                  = 4465 |  | ||||||
| 	SYS_REMOVEXATTRAT                = 4466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -372,8 +372,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 5460 | 	SYS_LSM_SET_SELF_ATTR       = 5460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 5461 | 	SYS_LSM_LIST_MODULES        = 5461 | ||||||
| 	SYS_MSEAL                   = 5462 | 	SYS_MSEAL                   = 5462 | ||||||
| 	SYS_SETXATTRAT              = 5463 |  | ||||||
| 	SYS_GETXATTRAT              = 5464 |  | ||||||
| 	SYS_LISTXATTRAT             = 5465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 5466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -372,8 +372,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 5460 | 	SYS_LSM_SET_SELF_ATTR       = 5460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 5461 | 	SYS_LSM_LIST_MODULES        = 5461 | ||||||
| 	SYS_MSEAL                   = 5462 | 	SYS_MSEAL                   = 5462 | ||||||
| 	SYS_SETXATTRAT              = 5463 |  | ||||||
| 	SYS_GETXATTRAT              = 5464 |  | ||||||
| 	SYS_LISTXATTRAT             = 5465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 5466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -442,8 +442,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR            = 4460 | 	SYS_LSM_SET_SELF_ATTR            = 4460 | ||||||
| 	SYS_LSM_LIST_MODULES             = 4461 | 	SYS_LSM_LIST_MODULES             = 4461 | ||||||
| 	SYS_MSEAL                        = 4462 | 	SYS_MSEAL                        = 4462 | ||||||
| 	SYS_SETXATTRAT                   = 4463 |  | ||||||
| 	SYS_GETXATTRAT                   = 4464 |  | ||||||
| 	SYS_LISTXATTRAT                  = 4465 |  | ||||||
| 	SYS_REMOVEXATTRAT                = 4466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -449,8 +449,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR            = 460 | 	SYS_LSM_SET_SELF_ATTR            = 460 | ||||||
| 	SYS_LSM_LIST_MODULES             = 461 | 	SYS_LSM_LIST_MODULES             = 461 | ||||||
| 	SYS_MSEAL                        = 462 | 	SYS_MSEAL                        = 462 | ||||||
| 	SYS_SETXATTRAT                   = 463 |  | ||||||
| 	SYS_GETXATTRAT                   = 464 |  | ||||||
| 	SYS_LISTXATTRAT                  = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT                = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -421,8 +421,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -421,8 +421,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -326,8 +326,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -387,8 +387,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -400,8 +400,4 @@ const ( | |||||||
| 	SYS_LSM_SET_SELF_ATTR       = 460 | 	SYS_LSM_SET_SELF_ATTR       = 460 | ||||||
| 	SYS_LSM_LIST_MODULES        = 461 | 	SYS_LSM_LIST_MODULES        = 461 | ||||||
| 	SYS_MSEAL                   = 462 | 	SYS_MSEAL                   = 462 | ||||||
| 	SYS_SETXATTRAT              = 463 |  | ||||||
| 	SYS_GETXATTRAT              = 464 |  | ||||||
| 	SYS_LISTXATTRAT             = 465 |  | ||||||
| 	SYS_REMOVEXATTRAT           = 466 |  | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/golang.org/x/sys/unix/ztypes_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/golang.org/x/sys/unix/ztypes_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -4747,7 +4747,7 @@ const ( | |||||||
| 	NL80211_ATTR_MAC_HINT                                   = 0xc8 | 	NL80211_ATTR_MAC_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                                        = 0x14d | 	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 | ||||||
| @@ -5519,7 +5519,7 @@ const ( | |||||||
| 	NL80211_MNTR_FLAG_CONTROL                               = 0x3 | 	NL80211_MNTR_FLAG_CONTROL                               = 0x3 | ||||||
| 	NL80211_MNTR_FLAG_COOK_FRAMES                           = 0x5 | 	NL80211_MNTR_FLAG_COOK_FRAMES                           = 0x5 | ||||||
| 	NL80211_MNTR_FLAG_FCSFAIL                               = 0x1 | 	NL80211_MNTR_FLAG_FCSFAIL                               = 0x1 | ||||||
| 	NL80211_MNTR_FLAG_MAX                                   = 0x7 | 	NL80211_MNTR_FLAG_MAX                                   = 0x6 | ||||||
| 	NL80211_MNTR_FLAG_OTHER_BSS                             = 0x4 | 	NL80211_MNTR_FLAG_OTHER_BSS                             = 0x4 | ||||||
| 	NL80211_MNTR_FLAG_PLCPFAIL                              = 0x2 | 	NL80211_MNTR_FLAG_PLCPFAIL                              = 0x2 | ||||||
| 	NL80211_MPATH_FLAG_ACTIVE                               = 0x1 | 	NL80211_MPATH_FLAG_ACTIVE                               = 0x1 | ||||||
| @@ -6174,5 +6174,3 @@ type SockDiagReq struct { | |||||||
| 	Family   uint8 | 	Family   uint8 | ||||||
| 	Protocol uint8 | 	Protocol uint8 | ||||||
| } | } | ||||||
|  |  | ||||||
| const RTM_NEWNVLAN = 0x70 |  | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -43,8 +43,8 @@ type DLL struct { | |||||||
| // LoadDLL loads DLL file into memory. | // LoadDLL loads DLL file into memory. | ||||||
| // | // | ||||||
| // Warning: using LoadDLL without an absolute path name is subject to | // Warning: using LoadDLL without an absolute path name is subject to | ||||||
| // DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL], | // DLL preloading attacks. To safely load a system DLL, use LazyDLL | ||||||
| // or use [LoadLibraryEx] directly. | // with System set to true, or use LoadLibraryEx directly. | ||||||
| func LoadDLL(name string) (dll *DLL, err error) { | func LoadDLL(name string) (dll *DLL, err error) { | ||||||
| 	namep, err := UTF16PtrFromString(name) | 	namep, err := UTF16PtrFromString(name) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @@ -271,9 +271,6 @@ func (d *LazyDLL) NewProc(name string) *LazyProc { | |||||||
| } | } | ||||||
|  |  | ||||||
| // NewLazyDLL creates new LazyDLL associated with DLL file. | // NewLazyDLL creates new LazyDLL associated with DLL file. | ||||||
| // |  | ||||||
| // Warning: using NewLazyDLL without an absolute path name is subject to |  | ||||||
| // DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL]. |  | ||||||
| func NewLazyDLL(name string) *LazyDLL { | func NewLazyDLL(name string) *LazyDLL { | ||||||
| 	return &LazyDLL{Name: name} | 	return &LazyDLL{Name: name} | ||||||
| } | } | ||||||
| @@ -413,3 +410,7 @@ func loadLibraryEx(name string, system bool) (*DLL, error) { | |||||||
| 	} | 	} | ||||||
| 	return &DLL{Name: name, Handle: h}, nil | 	return &DLL{Name: name, Handle: h}, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | type errString string | ||||||
|  |  | ||||||
|  | func (s errString) Error() string { return string(s) } | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/k8s.io/apimachinery/pkg/util/httpstream/wsstream/conn.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/k8s.io/apimachinery/pkg/util/httpstream/wsstream/conn.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -219,6 +219,7 @@ func (conn *Conn) Open(w http.ResponseWriter, req *http.Request) (string, []io.R | |||||||
| 	serveHTTPComplete := make(chan struct{}) | 	serveHTTPComplete := make(chan struct{}) | ||||||
| 	// Ensure panic in spawned goroutine is propagated into the parent goroutine. | 	// Ensure panic in spawned goroutine is propagated into the parent goroutine. | ||||||
| 	panicChan := make(chan any, 1) | 	panicChan := make(chan any, 1) | ||||||
|  | 	klog.Infof("mzq-test, conn.go Open, req: %+v, req.Body: %+v, conn: %+v, timeout: %+v\n", req, req.Body, conn, conn.timeout.String()) | ||||||
| 	go func() { | 	go func() { | ||||||
| 		// If websocket server returns, propagate panic if necessary. Otherwise, | 		// If websocket server returns, propagate panic if necessary. Otherwise, | ||||||
| 		// signal HTTPServe finished by closing "serveHTTPComplete". | 		// signal HTTPServe finished by closing "serveHTTPComplete". | ||||||
| @@ -336,7 +337,7 @@ func (conn *Conn) handle(ws *websocket.Conn) { | |||||||
| 		var data []byte | 		var data []byte | ||||||
| 		if err := websocket.Message.Receive(ws, &data); err != nil { | 		if err := websocket.Message.Receive(ws, &data); err != nil { | ||||||
| 			if err != io.EOF { | 			if err != io.EOF { | ||||||
| 				klog.Errorf("Error on socket receive: %v", err) | 				klog.Errorf("mzq-test, Error on socket receive: %v, ws: %+v, data: %v", err, ws, string(data)) | ||||||
| 			} | 			} | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								vendor/k8s.io/kubelet/pkg/cri/streaming/portforward/websocket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/k8s.io/kubelet/pkg/cri/streaming/portforward/websocket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -114,6 +114,7 @@ func handleWebSocketStreams(req *http.Request, w http.ResponseWriter, portForwar | |||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
| 	conn.SetIdleTimeout(idleTimeout) | 	conn.SetIdleTimeout(idleTimeout) | ||||||
|  | 	klog.Infof("mzq-test, portforward/websocket.go, idleTimeout: %+v, req: %+v, req.body: %+v, podName: %v, uid: %v, opts: %+v, portForwarder: %+v, supportedPortForwardProtocols: %+v, streamCreationTimeout: %+v\n", idleTimeout.String(), req.Body, podName, uid, portForwarder, supportedPortForwardProtocols, streamCreationTimeout.String()) | ||||||
| 	_, streams, err := conn.Open(responsewriter.GetOriginal(w), req) | 	_, streams, err := conn.Open(responsewriter.GetOriginal(w), req) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		err = fmt.Errorf("unable to upgrade websocket connection: %v", err) | 		err = fmt.Errorf("unable to upgrade websocket connection: %v", err) | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user