Update On Tue Apr 15 20:36:35 CEST 2025

This commit is contained in:
github-action[bot]
2025-04-15 20:36:36 +02:00
parent 987930c9c8
commit 9ee24e815a
84 changed files with 2504 additions and 1688 deletions

1
.github/update.log vendored
View File

@@ -973,3 +973,4 @@ Update On Fri Apr 11 20:36:10 CEST 2025
Update On Sat Apr 12 20:33:39 CEST 2025
Update On Sun Apr 13 20:36:07 CEST 2025
Update On Mon Apr 14 20:39:52 CEST 2025
Update On Tue Apr 15 20:36:26 CEST 2025

113
clash-meta/.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,113 @@
name: Test
on:
push:
paths-ignore:
- "docs/**"
- "README.md"
- ".github/ISSUE_TEMPLATE/**"
branches:
- Alpha
tags:
- "v*"
pull_request:
branches:
- Alpha
jobs:
test:
strategy:
matrix:
os:
- 'ubuntu-latest' # amd64 linux
- 'windows-latest' # amd64 windows
- 'macos-latest' # arm64 macos
- 'ubuntu-24.04-arm' # arm64 linux
- 'macos-13' # amd64 macos
go-version:
- '1.24'
- '1.23'
- '1.22'
- '1.21'
- '1.20'
fail-fast: false
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
env:
CGO_ENABLED: 0
GOTOOLCHAIN: local
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
# this patch file only works on golang1.24.x
# that means after golang1.25 release it must be changed
# see: https://github.com/MetaCubeX/go/commits/release-branch.go1.24/
# revert:
# 693def151adff1af707d82d28f55dba81ceb08e1: "crypto/rand,runtime: switch RtlGenRandom for ProcessPrng"
# 7c1157f9544922e96945196b47b95664b1e39108: "net: remove sysSocket fallback for Windows 7"
# 48042aa09c2f878c4faa576948b07fe625c4707a: "syscall: remove Windows 7 console handle workaround"
# a17d959debdb04cd550016a3501dd09d50cd62e7: "runtime: always use LoadLibraryEx to load system libraries"
- name: Revert Golang1.24 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.24' }}
run: |
cd $(go env GOROOT)
curl https://github.com/MetaCubeX/go/commit/2a406dc9f1ea7323d6ca9fccb2fe9ddebb6b1cc8.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/7b1fd7d39c6be0185fbe1d929578ab372ac5c632.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/979d6d8bab3823ff572ace26767fd2ce3cf351ae.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/ac3e93c061779dfefc0dd13a5b6e6f764a25621e.diff | patch --verbose -p 1
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
# this patch file only works on golang1.23.x
# that means after golang1.24 release it must be changed
# see: https://github.com/MetaCubeX/go/commits/release-branch.go1.23/
# revert:
# 693def151adff1af707d82d28f55dba81ceb08e1: "crypto/rand,runtime: switch RtlGenRandom for ProcessPrng"
# 7c1157f9544922e96945196b47b95664b1e39108: "net: remove sysSocket fallback for Windows 7"
# 48042aa09c2f878c4faa576948b07fe625c4707a: "syscall: remove Windows 7 console handle workaround"
# a17d959debdb04cd550016a3501dd09d50cd62e7: "runtime: always use LoadLibraryEx to load system libraries"
- name: Revert Golang1.23 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.23' }}
run: |
cd $(go env GOROOT)
curl https://github.com/MetaCubeX/go/commit/9ac42137ef6730e8b7daca016ece831297a1d75b.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/21290de8a4c91408de7c2b5b68757b1e90af49dd.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/6a31d3fa8e47ddabc10bd97bff10d9a85f4cfb76.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/69e2eed6dd0f6d815ebf15797761c13f31213dd6.diff | patch --verbose -p 1
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
# this patch file only works on golang1.22.x
# that means after golang1.23 release it must be changed
# see: https://github.com/MetaCubeX/go/commits/release-branch.go1.22/
# revert:
# 693def151adff1af707d82d28f55dba81ceb08e1: "crypto/rand,runtime: switch RtlGenRandom for ProcessPrng"
# 7c1157f9544922e96945196b47b95664b1e39108: "net: remove sysSocket fallback for Windows 7"
# 48042aa09c2f878c4faa576948b07fe625c4707a: "syscall: remove Windows 7 console handle workaround"
# a17d959debdb04cd550016a3501dd09d50cd62e7: "runtime: always use LoadLibraryEx to load system libraries"
- name: Revert Golang1.22 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.22' }}
run: |
cd $(go env GOROOT)
curl https://github.com/MetaCubeX/go/commit/9779155f18b6556a034f7bb79fb7fb2aad1e26a9.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/ef0606261340e608017860b423ffae5c1ce78239.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/7f83badcb925a7e743188041cb6e561fc9b5b642.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/83ff9782e024cb328b690cbf0da4e7848a327f4f.diff | patch --verbose -p 1
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
- name: Revert Golang1.21 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.21' }}
run: |
cd $(go env GOROOT)
curl https://github.com/golang/go/commit/9e43850a3298a9b8b1162ba0033d4c53f8637571.diff | patch --verbose -R -p 1
- name: Test
run: go test ./... -v -count=1
- name: Test with tag with_gvisor
run: go test ./... -v -count=1 -tags "with_gvisor"

View File

@@ -22,9 +22,10 @@ func sleepAndSend[T any](ctx context.Context, delay int, input T) func() (T, err
}
func TestPicker_Basic(t *testing.T) {
t.Parallel()
picker, ctx := WithContext[int](context.Background())
picker.Go(sleepAndSend(ctx, 30, 2))
picker.Go(sleepAndSend(ctx, 20, 1))
picker.Go(sleepAndSend(ctx, 200, 2))
picker.Go(sleepAndSend(ctx, 100, 1))
number := picker.Wait()
assert.NotNil(t, number)
@@ -32,8 +33,9 @@ func TestPicker_Basic(t *testing.T) {
}
func TestPicker_Timeout(t *testing.T) {
t.Parallel()
picker, ctx := WithTimeout[int](context.Background(), time.Millisecond*5)
picker.Go(sleepAndSend(ctx, 20, 1))
picker.Go(sleepAndSend(ctx, 100, 1))
number := picker.Wait()
assert.Equal(t, number, lo.Empty[int]())

View File

@@ -1681,7 +1681,7 @@ version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e"
dependencies = [
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]
@@ -4899,7 +4899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
dependencies = [
"cfg-if",
"windows-targets 0.48.5",
"windows-targets 0.52.6",
]
[[package]]
@@ -6250,9 +6250,9 @@ dependencies = [
[[package]]
name = "openssl"
version = "0.10.71"
version = "0.10.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd"
checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da"
dependencies = [
"bitflags 2.9.0",
"cfg-if",
@@ -6291,9 +6291,9 @@ dependencies = [
[[package]]
name = "openssl-sys"
version = "0.9.106"
version = "0.9.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd"
checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07"
dependencies = [
"cc",
"libc",
@@ -7779,9 +7779,9 @@ dependencies = [
[[package]]
name = "rust-i18n"
version = "3.1.3"
version = "3.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71b3a6e1c6565b77c86d868eea3068b0eb39582510f9c78cfbd5c67bd36fda9b"
checksum = "a2b6307cde881492032919adf26e254981604a6657b339ae23cce8358e9ee203"
dependencies = [
"globwalk",
"once_cell",
@@ -11125,7 +11125,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]

View File

@@ -44,7 +44,7 @@
"clsx": "2.1.1",
"d3-interpolate-path": "2.3.0",
"sass-embedded": "1.86.3",
"tailwind-merge": "3.0.2",
"tailwind-merge": "3.2.0",
"typescript-plugin-css-modules": "5.1.0",
"vite-plugin-dts": "4.5.3"
}

View File

@@ -5,7 +5,7 @@
"mihomo_alpha": "alpha-8fa4e81",
"clash_rs": "v0.7.7",
"clash_premium": "2023-09-05-gdcc8d87",
"clash_rs_alpha": "0.7.7-alpha+sha.0d2d303"
"clash_rs_alpha": "0.7.7-alpha+sha.2f70559"
},
"arch_template": {
"mihomo": {
@@ -69,5 +69,5 @@
"linux-armv7hf": "clash-armv7-unknown-linux-gnueabihf"
}
},
"updated_at": "2025-04-12T22:20:40.754Z"
"updated_at": "2025-04-14T22:20:56.639Z"
}

View File

@@ -85,7 +85,7 @@
"eslint-plugin-react-compiler": "19.0.0-beta-ebf51a3-20250411",
"eslint-plugin-react-hooks": "5.2.0",
"globals": "16.0.0",
"knip": "5.46.5",
"knip": "5.50.4",
"lint-staged": "15.5.1",
"neostandard": "0.12.1",
"npm-run-all2": "7.0.2",

View File

@@ -103,8 +103,8 @@ importers:
specifier: 16.0.0
version: 16.0.0
knip:
specifier: 5.46.5
version: 5.46.5(@types/node@22.13.17)(typescript@5.8.2)
specifier: 5.50.4
version: 5.50.4(@types/node@22.13.17)(typescript@5.8.2)
lint-staged:
specifier: 15.5.1
version: 15.5.1
@@ -529,8 +529,8 @@ importers:
specifier: 1.86.3
version: 1.86.3
tailwind-merge:
specifier: 3.0.2
version: 3.0.2
specifier: 3.2.0
version: 3.2.0
typescript-plugin-css-modules:
specifier: 5.1.0
version: 5.1.0(typescript@5.8.2)
@@ -2021,26 +2021,14 @@ packages:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
'@nodelib/fs.scandir@4.0.1':
resolution: {integrity: sha512-vAkI715yhnmiPupY+dq+xenu5Tdf2TBQ66jLvBIcCddtz+5Q8LbMKaf9CIJJreez8fQ8fgaY+RaywQx8RJIWpw==}
engines: {node: '>=18.18.0'}
'@nodelib/fs.stat@2.0.5':
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
'@nodelib/fs.stat@4.0.0':
resolution: {integrity: sha512-ctr6bByzksKRCV0bavi8WoQevU6plSp2IkllIsEqaiKe2mwNNnaluhnRhcsgGZHrrHk57B3lf95MkLMO3STYcg==}
engines: {node: '>=18.18.0'}
'@nodelib/fs.walk@1.2.8':
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
'@nodelib/fs.walk@3.0.1':
resolution: {integrity: sha512-nIh/M6Kh3ZtOmlY00DaUYB4xeeV6F3/ts1l29iwl3/cfyY/OuCfUx+v08zgx8TKPTifXRcjjqVQ4KB2zOYSbyw==}
engines: {node: '>=18.18.0'}
'@nolyfill/is-core-module@1.0.39':
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
@@ -2594,11 +2582,6 @@ packages:
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
engines: {node: '>=10'}
'@snyk/github-codeowners@1.1.0':
resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==}
engines: {node: '>=8.10'}
hasBin: true
'@stylistic/eslint-plugin@2.11.0':
resolution: {integrity: sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -3461,10 +3444,6 @@ packages:
resolution: {integrity: sha512-JVzqkCNRT+VfqzzgPWDPnwvDheSAUdiMUn3NoLXpDJF5lRqeJqyC9iGsAxIOAW+mzIdq+uP1TvcX6bMtrH0agg==}
engines: {node: '>= 14'}
aggregate-error@3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
ahooks@3.8.4:
resolution: {integrity: sha512-39wDEw2ZHvypaT14EpMMk4AzosHWt0z9bulY0BeDsvc9PqJEV+Kjh/4TZfftSsotBMq52iYIOFPd3PR56e0ZJg==}
engines: {node: '>=8.0.0'}
@@ -3845,10 +3824,6 @@ packages:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
clean-stack@2.2.0:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'}
cli-boxes@1.0.0:
resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==}
engines: {node: '>=0.10.0'}
@@ -3911,10 +3886,6 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
@@ -5281,10 +5252,6 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
indent-string@4.0.0:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -5739,8 +5706,8 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
knip@5.46.5:
resolution: {integrity: sha512-w5t4K/raY8R8nJ9TZZBi/rZNsrJie6qYUJiL+A8l/4/002WQwzBfFMJftEo1opxgsV0ounFPJYy/9AAw3CO4Rg==}
knip@5.50.4:
resolution: {integrity: sha512-In+GjPpd2P3IDZnBBP4QF27vhQOhuBkICiuN9j+DMOf/m/qAFLGcbvuAGxco8IDvf26pvBnfeSmm1f6iNCkgOA==}
engines: {node: '>=18.18.0'}
hasBin: true
peerDependencies:
@@ -6423,10 +6390,6 @@ packages:
resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
p-map@4.0.0:
resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
engines: {node: '>=10'}
p-retry@6.2.1:
resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==}
engines: {node: '>=16.17'}
@@ -7581,9 +7544,6 @@ packages:
resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
engines: {node: '>= 8.0'}
summary@2.1.0:
resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==}
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@@ -7634,8 +7594,8 @@ packages:
resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
engines: {node: '>=10.0.0'}
tailwind-merge@3.0.2:
resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==}
tailwind-merge@3.2.0:
resolution: {integrity: sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==}
tailwindcss@4.0.17:
resolution: {integrity: sha512-OErSiGzRa6rLiOvaipsDZvLMSpsBZ4ysB4f0VKGXUrjw2jfkJRd6kjRKV2+ZmTCNvwtvgdDam5D7w6WXsdLJZw==}
@@ -9947,25 +9907,13 @@ snapshots:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
'@nodelib/fs.scandir@4.0.1':
dependencies:
'@nodelib/fs.stat': 4.0.0
run-parallel: 1.2.0
'@nodelib/fs.stat@2.0.5': {}
'@nodelib/fs.stat@4.0.0': {}
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1
'@nodelib/fs.walk@3.0.1':
dependencies:
'@nodelib/fs.scandir': 4.0.1
fastq: 1.17.1
'@nolyfill/is-core-module@1.0.39': {}
'@octokit/app@15.1.6':
@@ -10523,12 +10471,6 @@ snapshots:
'@sindresorhus/is@4.6.0': {}
'@snyk/github-codeowners@1.1.0':
dependencies:
commander: 4.1.1
ignore: 5.3.2
p-map: 4.0.0
'@stylistic/eslint-plugin@2.11.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
'@typescript-eslint/utils': 8.29.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.2)
@@ -11454,11 +11396,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
aggregate-error@3.1.0:
dependencies:
clean-stack: 2.2.0
indent-string: 4.0.0
ahooks@3.8.4(react@19.1.0):
dependencies:
'@babel/runtime': 7.26.0
@@ -11907,8 +11844,6 @@ snapshots:
dependencies:
source-map: 0.6.1
clean-stack@2.2.0: {}
cli-boxes@1.0.0: {}
cli-cursor@5.0.0:
@@ -11961,8 +11896,6 @@ snapshots:
commander@2.20.3: {}
commander@4.1.1: {}
commander@7.2.0: {}
commander@8.3.0: {}
@@ -13634,8 +13567,6 @@ snapshots:
imurmurhash@0.1.4: {}
indent-string@4.0.0: {}
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -14035,10 +13966,9 @@ snapshots:
kind-of@6.0.3: {}
knip@5.46.5(@types/node@22.13.17)(typescript@5.8.2):
knip@5.50.4(@types/node@22.13.17)(typescript@5.8.2):
dependencies:
'@nodelib/fs.walk': 3.0.1
'@snyk/github-codeowners': 1.1.0
'@nodelib/fs.walk': 1.2.8
'@types/node': 22.13.17
easy-table: 1.2.0
enhanced-resolve: 5.18.1
@@ -14051,7 +13981,6 @@ snapshots:
pretty-ms: 9.1.0
smol-toml: 1.3.1
strip-json-comments: 5.0.1
summary: 2.1.0
typescript: 5.8.2
zod: 3.24.2
zod-validation-error: 3.3.1(zod@3.24.2)
@@ -14880,10 +14809,6 @@ snapshots:
dependencies:
p-limit: 4.0.0
p-map@4.0.0:
dependencies:
aggregate-error: 3.1.0
p-retry@6.2.1:
dependencies:
'@types/retry': 0.12.2
@@ -16055,8 +15980,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
summary@2.1.0: {}
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
@@ -16107,7 +16030,7 @@ snapshots:
string-width: 4.2.3
strip-ansi: 6.0.1
tailwind-merge@3.0.2: {}
tailwind-merge@3.2.0: {}
tailwindcss@4.0.17: {}

View File

@@ -2,9 +2,9 @@ name: Alpha Build
on:
workflow_dispatch:
schedule:
# schedule:
# UTC+8 0,6,12,18
- cron: "0 16,22,4,10 * * *"
# - cron: "0 16,22,4,10 * * *"
permissions: write-all
env:
CARGO_INCREMENTAL: 0

View File

@@ -12,6 +12,15 @@
- 解锁测试报错信息
- Macos 快捷键关闭窗口无法启用自动轻量模式
- 静默启动异常窗口创建和关闭流程
- 使用 tauri window-state 管理窗口,尝试解决各种窗口异常
#### 新增了:
- 外部控制的开关
- 使用 socks 进行内核通信,以解决各种潜在的内核通信异常
#### 重构了:
- Mihomo 内核不再使用 http 交互,而是使用 socket 进行通信
## v2.2.3

View File

@@ -42,6 +42,7 @@
"@tauri-apps/plugin-process": "^2.2.0",
"@tauri-apps/plugin-shell": "2.2.0",
"@tauri-apps/plugin-updater": "2.3.0",
"@tauri-apps/plugin-window-state": "^2.4.0",
"@types/d3-shape": "^3.1.7",
"@types/json-schema": "^7.0.15",
"ahooks": "^3.8.4",

View File

@@ -1092,6 +1092,7 @@ dependencies = [
"tauri-plugin-process",
"tauri-plugin-shell",
"tauri-plugin-updater",
"tauri-plugin-window-state",
"tempfile",
"tokio",
"tokio-tungstenite 0.26.2",
@@ -1823,6 +1824,12 @@ dependencies = [
"litrs",
]
[[package]]
name = "dotenv"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
[[package]]
name = "downcast-rs"
version = "1.2.1"
@@ -2912,7 +2919,7 @@ dependencies = [
"httpdate",
"itoa 1.0.15",
"pin-project-lite",
"socket2 0.5.8",
"socket2 0.4.10",
"tokio",
"tower-service",
"tracing",
@@ -2932,6 +2939,7 @@ dependencies = [
"http 1.3.1",
"http-body 1.0.1",
"httparse",
"httpdate",
"itoa 1.0.15",
"pin-project-lite",
"smallvec",
@@ -2987,9 +2995,9 @@ dependencies = [
[[package]]
name = "hyper-util"
version = "0.1.10"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4"
checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2"
dependencies = [
"bytes",
"futures-channel",
@@ -2997,13 +3005,29 @@ dependencies = [
"http 1.3.1",
"http-body 1.0.1",
"hyper 1.6.0",
"libc",
"pin-project-lite",
"socket2 0.5.8",
"socket2 0.5.9",
"tokio",
"tower-service",
"tracing",
]
[[package]]
name = "hyperlocal"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7"
dependencies = [
"hex",
"http-body-util",
"hyper 1.6.0",
"hyper-util",
"pin-project-lite",
"tokio",
"tower-service",
]
[[package]]
name = "iana-time-zone"
version = "0.1.62"
@@ -3851,10 +3875,18 @@ dependencies = [
name = "mihomo_api"
version = "0.0.0"
dependencies = [
"reqwest",
"serde",
"async-trait",
"dotenv",
"futures",
"http-body-util",
"hyper 1.6.0",
"hyper-util",
"hyperlocal",
"lazy_static",
"serde_json",
"time",
"tokio",
"tokio-util",
]
[[package]]
@@ -5343,7 +5375,7 @@ dependencies = [
"quinn-udp",
"rustc-hash",
"rustls",
"socket2 0.5.8",
"socket2 0.5.9",
"thiserror 2.0.12",
"tokio",
"tracing",
@@ -5379,7 +5411,7 @@ dependencies = [
"cfg_aliases 0.2.1",
"libc",
"once_cell",
"socket2 0.5.8",
"socket2 0.5.9",
"tracing",
"windows-sys 0.59.0",
]
@@ -6483,9 +6515,9 @@ dependencies = [
[[package]]
name = "socket2"
version = "0.5.8"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8"
checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef"
dependencies = [
"libc",
"windows-sys 0.52.0",
@@ -7130,6 +7162,21 @@ dependencies = [
"zip",
]
[[package]]
name = "tauri-plugin-window-state"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a27a3fe49de72adbe0d84aee33c89a0b059722cd0b42aaeab29eaaee7f7535cd"
dependencies = [
"bitflags 2.9.0",
"log",
"serde",
"serde_json",
"tauri",
"tauri-plugin",
"thiserror 2.0.12",
]
[[package]]
name = "tauri-runtime"
version = "2.5.0"
@@ -7468,7 +7515,7 @@ dependencies = [
"parking_lot",
"pin-project-lite",
"signal-hook-registry",
"socket2 0.5.8",
"socket2 0.5.9",
"tokio-macros",
"tracing",
"windows-sys 0.52.0",

View File

@@ -61,6 +61,7 @@ tauri-plugin-process = "2.2.0"
tauri-plugin-clipboard-manager = "2.2.2"
tauri-plugin-deep-link = "2.2.0"
tauri-plugin-devtools = "2.0.0"
tauri-plugin-window-state = "2.2.2"
zip = "2.5.0"
reqwest_dav = "0.1.15"
aes-gcm = { version = "0.10.3", features = ["std"] }

View File

@@ -214,3 +214,11 @@ pub fn copy_icon_file(path: String, icon_info: IconInfo) -> CmdResult<String> {
Err("file not found".to_string())
}
}
/// 通知UI已准备就绪
#[tauri::command]
pub fn notify_ui_ready() -> CmdResult<()> {
log::info!(target: "app", "前端UI已准备就绪");
crate::utils::resolve::mark_ui_ready();
Ok(())
}

View File

@@ -2,6 +2,7 @@ use super::CmdResult;
use crate::{
config::*, core::*, feat, module::mihomo::MihomoManager, process::AsyncHandler, wrap_err,
};
use mihomo_api::model::MihomoClient;
use serde_yaml::Mapping;
/// 复制Clash环境变量
@@ -70,6 +71,7 @@ pub async fn clash_api_get_proxy_delay(
MihomoManager::global()
.test_proxy_delay(&name, url, timeout)
.await
.map_err(|e| e.to_string())
}
/// 测试URL延迟

View File

@@ -1,24 +1,23 @@
use mihomo_api::model::MihomoClient;
use super::CmdResult;
use crate::module::mihomo::MihomoManager;
#[tauri::command]
pub async fn get_proxies() -> CmdResult<serde_json::Value> {
let mannager = MihomoManager::global();
mannager
.refresh_proxies()
.await
.map(|_| mannager.get_proxies())
.or_else(|_| Ok(mannager.get_proxies()))
let manager = MihomoManager::global();
manager.refresh_proxies().await.map_err(|e| e.to_string())?;
let data = manager.get_data_proxies().await;
Ok(data)
}
#[tauri::command]
pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
let mannager = MihomoManager::global();
mannager
let manager = MihomoManager::global();
manager
.refresh_providers_proxies()
.await
.map(|_| mannager.get_providers_proxies())
.or_else(|_| Ok(mannager.get_providers_proxies()))
.map_err(|e| e.to_string())?;
let data = manager.get_data_providers_proxies().await;
Ok(data)
}

View File

@@ -51,6 +51,10 @@ impl IClashTemp {
map.insert("ipv6".into(), true.into());
map.insert("mode".into(), "rule".into());
map.insert("external-controller".into(), "127.0.0.1:9097".into());
#[cfg(not(target_os = "windows"))]
map.insert("external-controller-unix".into(), "mihomo.sock".into());
#[cfg(target_os = "windows")]
map.insert("external-controller-pipe".into(), r"\\.\pipe\mihomo".into());
let mut cors_map = Mapping::new();
cors_map.insert("allow-private-network".into(), true.into());
cors_map.insert("allow-origins".into(), vec!["*"].into());

View File

@@ -15,6 +15,7 @@ use crate::{
},
};
use anyhow::Result;
use mihomo_api::model::MihomoClient;
use once_cell::sync::OnceCell;
use std::{fmt, path::PathBuf, sync::Arc};
use tauri_plugin_shell::{process::CommandChild, ShellExt};

View File

@@ -6,6 +6,7 @@ use crate::{
process::AsyncHandler,
utils::{logging::Type, resolve},
};
use mihomo_api::model::MihomoClient;
use serde_yaml::{Mapping, Value};
use tauri::Manager;

View File

@@ -1,3 +1,5 @@
use mihomo_api::model::MihomoClient;
#[cfg(target_os = "macos")]
use crate::AppHandleManager;
use crate::{
@@ -74,12 +76,11 @@ pub fn quit() {
"enable": false
}
});
timeout(
Duration::from_secs(1),
MihomoManager::global().patch_configs(disable_tun),
)
.await
.is_ok()
let patch_future =
async { MihomoManager::global().patch_configs(disable_tun).await };
timeout(Duration::from_secs(1), patch_future).await.is_ok()
} else {
true
};

View File

@@ -19,6 +19,7 @@ use tauri::AppHandle;
use tauri::Manager;
use tauri_plugin_autostart::MacosLauncher;
use tauri_plugin_deep_link::DeepLinkExt;
use tauri_plugin_window_state;
use utils::logging::Type;
/// A global singleton handle to the application.
@@ -117,6 +118,11 @@ pub fn run() {
.plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_deep_link::init())
.plugin(
tauri_plugin_window_state::Builder::default()
.with_state_flags(tauri_plugin_window_state::StateFlags::all())
.build(),
)
.setup(|app| {
#[cfg(any(target_os = "linux", all(debug_assertions, windows)))]
{
@@ -153,6 +159,7 @@ pub fn run() {
cmd::restart_core,
cmd::restart_app,
// 添加新的命令
cmd::notify_ui_ready,
cmd::get_running_mode,
cmd::get_app_uptime,
cmd::get_auto_launch_status,

View File

@@ -1,7 +1,3 @@
use anyhow::{Context, Result};
use delay_timer::prelude::TaskBuilder;
use tauri::{Listener, Manager};
use crate::{
config::Config,
core::{handle, timer::Timer},
@@ -10,6 +6,13 @@ use crate::{
AppHandleManager,
};
use anyhow::{Context, Result};
use delay_timer::prelude::TaskBuilder;
use once_cell::sync::OnceCell;
use tauri::{Listener, Manager};
pub static AUTO_LIGHT_WEIGHT_MODE_INIT: OnceCell<()> = OnceCell::new();
const LIGHT_WEIGHT_TASK_UID: &str = "light_weight_task";
pub fn enable_auto_light_weight_mode() {
@@ -143,3 +146,19 @@ fn cancel_light_weight_timer() -> Result<()> {
Ok(())
}
pub fn run_once_auto_lightweight() {
AUTO_LIGHT_WEIGHT_MODE_INIT.get_or_init(|| {
let is_silent_start = { Config::verge().data().enable_silent_start }.unwrap_or(false);
let enable_auto = { Config::verge().data().enable_auto_light_weight_mode }.unwrap_or(false);
if enable_auto && is_silent_start {
logging!(
info,
Type::Lightweight,
true,
"Add timer listener when creating window in silent start mode"
);
enable_auto_light_weight_mode();
}
});
}

View File

@@ -1,4 +1,4 @@
use crate::config::Config;
use crate::{config::Config, utils::dirs::app_socket_path};
use mihomo_api;
use once_cell::sync::{Lazy, OnceCell};
use std::sync::Mutex;
@@ -24,20 +24,18 @@ impl MihomoManager {
&INSTANCE
}
pub fn global() -> mihomo_api::MihomoManager {
pub fn global() -> &'static mihomo_api::MihomoManager {
let instance = MihomoManager::__global();
let (current_server, headers) = MihomoManager::get_clash_client_info().unwrap();
let lock = instance.mihomo.lock().unwrap();
if let Some(mihomo) = lock.get() {
if mihomo.get_mihomo_server() == current_server {
return mihomo.clone();
}
let mihomo = &instance.mihomo;
let lock = mihomo.lock().unwrap();
if lock.get().is_none() {
let socket_path = MihomoManager::get_socket_path();
lock.set(mihomo_api::MihomoManager::new(socket_path)).ok();
}
lock.set(mihomo_api::MihomoManager::new(current_server, headers))
.ok();
lock.get().unwrap().clone()
unsafe { std::mem::transmute(lock.get().unwrap()) }
}
}
@@ -67,4 +65,12 @@ impl MihomoManager {
let token = http::header::HeaderValue::from_str(&auth).unwrap();
(ws_url, token)
}
fn get_socket_path() -> String {
#[cfg(unix)]
let socket_path = app_socket_path().unwrap();
#[cfg(windows)]
let socket_path = r"\\.\pipe\mihomo";
socket_path
}
}

View File

@@ -179,3 +179,10 @@ pub fn get_encryption_key() -> Result<Vec<u8>> {
Ok(key)
}
}
pub fn app_socket_path() -> Result<String> {
let app_dir = app_home_dir()?;
let socket_path = app_dir.join("mihomo.sock");
let socket_path = path_to_str(&socket_path)?;
Ok(socket_path.to_string())
}

View File

@@ -11,9 +11,11 @@ use crate::{
};
use anyhow::{bail, Result};
use once_cell::sync::OnceCell;
use parking_lot::RwLock;
use percent_encoding::percent_decode_str;
use serde_json;
use serde_yaml::Mapping;
use std::net::TcpListener;
use std::{net::TcpListener, sync::Arc};
use tauri::{App, Manager};
use tauri::Url;
@@ -22,6 +24,23 @@ use tauri::Url;
pub static VERSION: OnceCell<String> = OnceCell::new();
// 窗口状态文件中的尺寸
static STATE_WIDTH: OnceCell<u32> = OnceCell::new();
static STATE_HEIGHT: OnceCell<u32> = OnceCell::new();
// 添加全局UI准备就绪标志
static UI_READY: OnceCell<Arc<RwLock<bool>>> = OnceCell::new();
fn get_ui_ready() -> &'static Arc<RwLock<bool>> {
UI_READY.get_or_init(|| Arc::new(RwLock::new(false)))
}
// 标记UI已准备就绪
pub fn mark_ui_ready() {
let mut ready = get_ui_ready().write();
*ready = true;
}
pub fn find_unused_port() -> Result<u16> {
match TcpListener::bind("127.0.0.1:0") {
Ok(listener) => {
@@ -89,8 +108,9 @@ pub async fn resolve_setup(app: &mut App) {
logging_error!(Type::System, true, timer::Timer::global().init());
let enable_auto_light_weight_mode = { Config::verge().data().enable_auto_light_weight_mode };
if enable_auto_light_weight_mode.unwrap_or(false) {
let enable_auto_light_weight_mode =
{ Config::verge().data().enable_auto_light_weight_mode }.unwrap_or(false);
if enable_auto_light_weight_mode && !is_silent_start {
lightweight::enable_auto_light_weight_mode();
}
@@ -123,6 +143,71 @@ pub async fn resolve_reset_async() {
/// create main window
pub fn create_window(is_showup: bool) {
// 打印 .window-state.json 文件路径
if let Ok(app_dir) = crate::utils::dirs::app_home_dir() {
let window_state_path = app_dir.join(".window-state.json");
logging!(
info,
Type::Window,
true,
"窗口状态文件路径: {:?}",
window_state_path
);
// 尝试读取窗口状态文件内容
if window_state_path.exists() {
match std::fs::read_to_string(&window_state_path) {
Ok(content) => {
logging!(info, Type::Window, true, "窗口状态文件内容: {}", content);
// 解析窗口状态文件
match serde_json::from_str::<serde_json::Value>(&content) {
Ok(state_json) => {
if let Some(main_window) = state_json.get("main") {
let width = main_window
.get("width")
.and_then(|v| v.as_u64())
.unwrap_or(0)
as u32;
let height = main_window
.get("height")
.and_then(|v| v.as_u64())
.unwrap_or(0)
as u32;
logging!(
info,
Type::Window,
true,
"窗口状态文件中的尺寸: {}x{}",
width,
height
);
// 保存读取到的尺寸,用于后续检查
STATE_WIDTH.get_or_init(|| width);
STATE_HEIGHT.get_or_init(|| height);
}
}
Err(e) => {
logging!(error, Type::Window, true, "解析窗口状态文件失败: {:?}", e);
}
}
}
Err(e) => {
logging!(error, Type::Window, true, "读取窗口状态文件失败: {:?}", e);
}
}
} else {
logging!(
info,
Type::Window,
true,
"窗口状态文件不存在,将使用默认设置"
);
}
}
if !is_showup {
logging!(info, Type::Window, "Not to display create window");
return;
@@ -156,6 +241,12 @@ pub fn create_window(is_showup: bool) {
return;
}
// 定义默认窗口大小
const DEFAULT_WIDTH: u32 = 900;
const DEFAULT_HEIGHT: u32 = 700;
const MIN_WIDTH: u32 = 650;
const MIN_HEIGHT: u32 = 580;
#[cfg(target_os = "windows")]
let window = tauri::WebviewWindowBuilder::new(
&app_handle,
@@ -163,13 +254,14 @@ pub fn create_window(is_showup: bool) {
tauri::WebviewUrl::App("index.html".into()),
)
.title("Clash Verge")
.inner_size(890.0, 700.0)
.min_inner_size(620.0, 550.0)
.inner_size(DEFAULT_WIDTH as f64, DEFAULT_HEIGHT as f64)
.min_inner_size(MIN_WIDTH as f64, MIN_HEIGHT as f64)
.decorations(false)
.maximizable(true)
.additional_browser_args("--enable-features=msWebView2EnableDraggableRegions --disable-features=OverscrollHistoryNavigation,msExperimentalScrolling")
.transparent(true)
.shadow(true)
.visible(false) // 初始不可见等待UI加载完成后再显示
.build();
#[cfg(target_os = "macos")]
@@ -181,8 +273,9 @@ pub fn create_window(is_showup: bool) {
.decorations(true)
.hidden_title(true)
.title_bar_style(tauri::TitleBarStyle::Overlay)
.inner_size(890.0, 700.0)
.min_inner_size(620.0, 550.0)
.inner_size(DEFAULT_WIDTH as f64, DEFAULT_HEIGHT as f64)
.min_inner_size(MIN_WIDTH as f64, MIN_HEIGHT as f64)
.visible(false) // 初始不可见等待UI加载完成后再显示
.build();
#[cfg(target_os = "linux")]
@@ -193,19 +286,66 @@ pub fn create_window(is_showup: bool) {
)
.title("Clash Verge")
.decorations(false)
.inner_size(890.0, 700.0)
.min_inner_size(620.0, 550.0)
.inner_size(DEFAULT_WIDTH as f64, DEFAULT_HEIGHT as f64)
.min_inner_size(MIN_WIDTH as f64, MIN_HEIGHT as f64)
.transparent(true)
.visible(false) // 初始不可见等待UI加载完成后再显示
.build();
match window {
Ok(window) => {
logging!(info, Type::Window, true, "Window created successfully");
let _ = window.show();
let _ = window.set_focus();
// 静默启动模式等窗口初始化再启动自动进入轻量模式的计时监听器,防止初始化的时候找不到窗口对象导致监听器挂载失败
lightweight::run_once_auto_lightweight();
// 标记前端UI已准备就绪向前端发送启动完成事件
let app_handle_clone = app_handle.clone();
// 获取窗口创建后的初始大小
if let Ok(size) = window.inner_size() {
let state_width = STATE_WIDTH.get().copied().unwrap_or(DEFAULT_WIDTH);
let state_height = STATE_HEIGHT.get().copied().unwrap_or(DEFAULT_HEIGHT);
// 输出所有尺寸信息
logging!(
info,
Type::Window,
true,
"API报告的窗口尺寸: {}x{}, 状态文件尺寸: {}x{}, 默认尺寸: {}x{}",
size.width,
size.height,
state_width,
state_height,
DEFAULT_WIDTH,
DEFAULT_HEIGHT
);
if state_width < DEFAULT_WIDTH || state_height < DEFAULT_HEIGHT {
logging!(
info,
Type::Window,
true,
"状态文件窗口尺寸小于默认值,将使用默认尺寸: {}x{}",
DEFAULT_WIDTH,
DEFAULT_HEIGHT
);
let _ = window.set_size(tauri::LogicalSize::new(
DEFAULT_WIDTH as f64,
DEFAULT_HEIGHT as f64,
));
} else if size.width != state_width || size.height != state_height {
// 如果API报告的尺寸与状态文件不一致记录日志
logging!(
warn,
Type::Window,
true,
"API报告的窗口尺寸与状态文件不一致"
);
}
}
AsyncHandler::spawn(move || async move {
use tauri::Emitter;
@@ -213,7 +353,74 @@ pub fn create_window(is_showup: bool) {
handle::Handle::global().mark_startup_completed();
if let Some(window) = app_handle_clone.get_webview_window("main") {
// 检查窗口大小
match window.inner_size() {
Ok(size) => {
let width = size.width;
let height = size.height;
let state_width = STATE_WIDTH.get().copied().unwrap_or(DEFAULT_WIDTH);
let state_height =
STATE_HEIGHT.get().copied().unwrap_or(DEFAULT_HEIGHT);
logging!(
info,
Type::Window,
true,
"异步任务中窗口尺寸: {}x{}, 状态文件尺寸: {}x{}",
width,
height,
state_width,
state_height
);
}
Err(e) => {
logging!(
error,
Type::Window,
true,
"Failed to get window size: {:?}",
e
);
}
}
// 发送启动完成事件
let _ = window.emit("verge://startup-completed", ());
if is_showup {
// 启动一个任务等待UI准备就绪再显示窗口
let window_clone = window.clone();
AsyncHandler::spawn(move || async move {
async fn wait_for_ui_ready() {
while !*get_ui_ready().read() {
tokio::time::sleep(std::time::Duration::from_millis(50)).await;
}
}
match tokio::time::timeout(
std::time::Duration::from_secs(5),
wait_for_ui_ready(),
)
.await
{
Ok(_) => {
logging!(info, Type::Window, true, "UI准备就绪显示窗口");
}
Err(_) => {
logging!(
warn,
Type::Window,
true,
"等待UI准备就绪超时强制显示窗口"
);
}
}
let _ = window_clone.show();
let _ = window_clone.set_focus();
});
}
}
});
}

View File

@@ -0,0 +1 @@
.env

View File

@@ -2,13 +2,20 @@
name = "mihomo_api"
edition = "2024"
[features]
debug = []
[dependencies]
reqwest = { version = "0.12.15", features = ["json"] }
serde = { version = "1.0.219", features = ["derive"] }
async-trait = "0.1.88"
futures = "0.3.31"
http-body-util = "0.1.3"
hyper = { version = "1.6.0", features = ["http1", "client"] }
hyper-util = "0.1.11"
serde_json = "1.0.140"
time = "0.3.41"
tokio = { version = "1.44.1", features = ["rt", "macros", "rt-multi-thread", "io-std", "net", "io-util", "time"] }
tokio-util = { version = "0.7.14", features = ["codec"] }
[dev-dependencies]
tokio = { version = "1.44.1", features = ["rt", "macros"] }
dotenv = "0.15.0"
lazy_static = "1.5.0"
[target.'cfg(unix)'.dependencies]
hyperlocal = "0.9.1"

View File

@@ -1,162 +1,48 @@
use reqwest::{Method, header::HeaderMap};
use serde_json::json;
use std::{
sync::{Arc, Mutex},
time::Duration,
};
// impl MihomoManager {
// pub async fn patch_configs(&self, config: serde_json::Value) -> Result<(), String> {
// let url = format!("{}/configs", self.mihomo_server);
// let response = self.send_request(Method::PATCH, url, Some(config)).await?;
// if response["code"] == 204 {
// Ok(())
// } else {
// Err(response["message"]
// .as_str()
// .unwrap_or("unknown error")
// .to_string())
// }
// }
// pub async fn test_proxy_delay(
// &self,
// name: &str,
// test_url: Option<String>,
// timeout: i32,
// ) -> Result<serde_json::Value, String> {
// let test_url = test_url.unwrap_or("http://cp.cloudflare.com/generate_204".to_string());
// let url = format!(
// "{}/proxies/{}/delay?url={}&timeout={}",
// self.mihomo_server, name, test_url, timeout
// );
// let response = self.send_request(Method::GET, url, None).await?;
// Ok(response)
// }
// pub async fn delete_connection(&self, id: &str) -> Result<(), String> {
// let url = format!("{}/connections/{}", self.mihomo_server, id);
// let response = self.send_request(Method::DELETE, url, None).await?;
// if response["code"] == 204 {
// Ok(())
// } else {
// Err(response["message"]
// .as_str()
// .unwrap_or("unknown error")
// .to_string())
// }
// }
// }
pub mod model;
pub use model::{MihomoData, MihomoManager};
impl MihomoManager {
pub fn new(mihomo_server: String, headers: HeaderMap) -> Self {
Self {
mihomo_server,
data: Arc::new(Mutex::new(MihomoData {
proxies: serde_json::Value::Null,
providers_proxies: serde_json::Value::Null,
})),
headers,
}
}
fn update_proxies(&self, proxies: serde_json::Value) {
let mut data = self.data.lock().unwrap();
data.proxies = proxies;
}
fn update_providers_proxies(&self, providers_proxies: serde_json::Value) {
let mut data = self.data.lock().unwrap();
data.providers_proxies = providers_proxies;
}
pub fn get_mihomo_server(&self) -> String {
self.mihomo_server.clone()
}
pub fn get_proxies(&self) -> serde_json::Value {
let data = self.data.lock().unwrap();
data.proxies.clone()
}
pub fn get_providers_proxies(&self) -> serde_json::Value {
let data = self.data.lock().unwrap();
data.providers_proxies.clone()
}
async fn send_request(
&self,
method: Method,
url: String,
data: Option<serde_json::Value>,
) -> Result<serde_json::Value, String> {
let client_response = reqwest::ClientBuilder::new()
.default_headers(self.headers.clone())
.no_proxy()
.timeout(Duration::from_secs(60))
.build()
.map_err(|e| e.to_string())?
.request(method.clone(), &url)
.json(&data.unwrap_or(json!({})))
.send()
.await
.map_err(|e| e.to_string())?;
let response = match method {
Method::PATCH => {
let status = client_response.status();
if status.as_u16() == 204 {
json!({"code": 204})
} else {
client_response
.json::<serde_json::Value>()
.await
.map_err(|e| e.to_string())?
}
}
Method::PUT => json!(client_response.text().await.map_err(|e| e.to_string())?),
_ => client_response
.json::<serde_json::Value>()
.await
.map_err(|e| e.to_string())?,
};
Ok(response)
}
pub async fn refresh_proxies(&self) -> Result<&Self, String> {
let url = format!("{}/proxies", self.mihomo_server);
let proxies = self.send_request(Method::GET, url, None).await?;
self.update_proxies(proxies);
Ok(self)
}
pub async fn refresh_providers_proxies(&self) -> Result<&Self, String> {
let url = format!("{}/providers/proxies", self.mihomo_server);
let providers_proxies = self.send_request(Method::GET, url, None).await?;
self.update_providers_proxies(providers_proxies);
Ok(self)
}
}
impl MihomoManager {
pub async fn is_mihomo_running(&self) -> Result<(), String> {
let url = format!("{}/version", self.mihomo_server);
let _response = self.send_request(Method::GET, url, None).await?;
Ok(())
}
pub async fn put_configs_force(&self, clash_config_path: &str) -> Result<(), String> {
let url = format!("{}/configs?force=true", self.mihomo_server);
let payload = serde_json::json!({
"path": clash_config_path,
});
let _response = self.send_request(Method::PUT, url, Some(payload)).await?;
Ok(())
}
pub async fn patch_configs(&self, config: serde_json::Value) -> Result<(), String> {
let url = format!("{}/configs", self.mihomo_server);
let response = self.send_request(Method::PATCH, url, Some(config)).await?;
if response["code"] == 204 {
Ok(())
} else {
Err(response["message"]
.as_str()
.unwrap_or("unknown error")
.to_string())
}
}
pub async fn test_proxy_delay(
&self,
name: &str,
test_url: Option<String>,
timeout: i32,
) -> Result<serde_json::Value, String> {
let test_url = test_url.unwrap_or("http://cp.cloudflare.com/generate_204".to_string());
let url = format!(
"{}/proxies/{}/delay?url={}&timeout={}",
self.mihomo_server, name, test_url, timeout
);
let response = self.send_request(Method::GET, url, None).await?;
Ok(response)
}
pub async fn get_connections(&self) -> Result<serde_json::Value, String> {
let url = format!("{}/connections", self.mihomo_server);
let response = self.send_request(Method::GET, url, None).await?;
Ok(response)
}
pub async fn delete_connection(&self, id: &str) -> Result<(), String> {
let url = format!("{}/connections/{}", self.mihomo_server, id);
let response = self.send_request(Method::DELETE, url, None).await?;
if response["code"] == 204 {
Ok(())
} else {
Err(response["message"]
.as_str()
.unwrap_or("unknown error")
.to_string())
}
}
}
pub use model::{E, MihomoData, MihomoManager};
pub mod platform;
pub mod sock;
pub use platform::Client;

View File

@@ -1,29 +1,57 @@
use std::sync::{Arc, Mutex};
use reqwest::header::HeaderMap;
use async_trait::async_trait;
use hyper::Method;
use serde_json::Value;
use std::{error::Error, sync::Arc};
use tokio::sync::Mutex;
pub struct MihomoData {
pub(crate) proxies: serde_json::Value,
pub(crate) providers_proxies: serde_json::Value,
}
#[derive(Clone)]
impl Default for MihomoData {
fn default() -> Self {
Self {
proxies: Value::Null,
providers_proxies: Value::Null,
}
}
}
pub type E = Box<dyn Error + Send + Sync>;
#[async_trait]
pub trait MihomoClient: Sized {
async fn set_data_proxies(&self, data: Value);
async fn set_data_providers_proxies(&self, data: Value);
async fn get_data_proxies(&self) -> Value;
async fn get_data_providers_proxies(&self) -> Value;
// async fn generate_unix_path(&self, path: &str) -> Uri;
async fn send_request(
&self,
path: &str,
method: Method,
body: Option<Value>,
) -> Result<Value, E>;
async fn get_version(&self) -> Result<Value, E>;
async fn is_mihomo_running(&self) -> Result<(), E>;
async fn put_configs_force(&self, clash_config_path: &str) -> Result<(), E>;
async fn patch_configs(&self, config: Value) -> Result<(), E>;
async fn refresh_proxies(&self) -> Result<&Self, E>;
async fn refresh_providers_proxies(&self) -> Result<&Self, E>;
async fn get_connections(&self) -> Result<Value, E>;
async fn delete_connection(&self, id: &str) -> Result<(), E>;
async fn test_proxy_delay(
&self,
name: &str,
test_url: Option<String>,
timeout: i32,
) -> Result<Value, E>;
}
use crate::platform::Client;
pub struct MihomoManager {
pub(crate) mihomo_server: String,
pub(crate) data: Arc<Mutex<MihomoData>>,
pub(crate) headers: HeaderMap,
}
#[cfg(feature = "debug")]
impl Drop for MihomoData {
fn drop(&mut self) {
println!("Dropping MihomoData");
}
}
#[cfg(feature = "debug")]
impl Drop for MihomoManager {
fn drop(&mut self) {
println!("Dropping MihomoManager");
}
pub(super) socket_path: String,
pub(super) client: Arc<Mutex<Client>>,
pub(super) data: Arc<Mutex<MihomoData>>,
}

View File

@@ -0,0 +1,4 @@
#[cfg(unix)] pub mod unix;
#[cfg(unix)] pub use unix::UnixClient as Client;
#[cfg(windows)] pub mod windows;
#[cfg(windows)] pub use windows::WindowsClient as Client;

View File

@@ -0,0 +1,59 @@
use crate::model::E;
use http_body_util::{BodyExt, Full};
use hyper::{
Method, Request,
body::Bytes,
header::{HeaderName, HeaderValue},
};
use hyper_util::client::legacy::Client;
use hyperlocal::{UnixClientExt, Uri};
use serde_json::Value;
use std::sync::Arc;
use tokio::sync::Mutex;
pub struct UnixClient {
client: Arc<Mutex<Client<hyperlocal::UnixConnector, Full<Bytes>>>>,
}
impl UnixClient {
pub fn new() -> Self {
let client: Client<_, Full<Bytes>> = Client::unix();
Self {
client: Arc::new(Mutex::new(client)),
}
}
pub async fn generate_unix_path(&self, socket_path: &str, path: &str) -> Uri {
Uri::new(socket_path, path).into()
}
pub async fn send_request(
&self,
socket_path: String,
path: &str,
method: Method,
body: Option<Value>,
) -> Result<Value, E> {
let uri = self.generate_unix_path(socket_path.as_str(), path).await;
let mut request_builder = Request::builder().method(method).uri(uri);
let body_bytes = if let Some(body) = body {
request_builder = request_builder.header(
HeaderName::from_static("Content-Type"),
HeaderValue::from_static("application/json"),
);
Bytes::from(serde_json::to_vec(&body)?)
} else {
Bytes::new()
};
let request = request_builder.body(Full::new(body_bytes))?;
let response = self.client.lock().await.request(request).await?;
let body_bytes = response.into_body().collect().await?.to_bytes();
let json_value = serde_json::from_slice(&body_bytes)?;
Ok(json_value)
}
}

View File

@@ -0,0 +1,129 @@
use crate::{model::E, sock};
use hyper::Method;
use serde_json::Value;
use tokio_util::codec::{Framed, LinesCodec};
use std::{sync::Arc, time::Duration};
use tokio::{
time::timeout,
sync::Mutex,
};
use futures::{SinkExt, StreamExt};
use tokio::net::windows::named_pipe::ClientOptions;
pub struct WindowsClient {
lock: Arc<Mutex<()>>,
}
impl WindowsClient {
pub fn new() -> Self {
Self {
lock: Arc::new(Mutex::new(())),
}
}
pub async fn send_request(
&self,
socket_path: String,
path: &str,
method: Method,
body: Option<Value>,
) -> Result<Value, E> {
// Acquire lock before opening pipe
// let _guard = self.lock.lock().await;
// Attempt to open the pipe with retry logic
let mut retries = 0;
let pipe = loop {
match ClientOptions::new().open(socket_path.clone()) {
Ok(pipe) => break pipe,
Err(e) if e.raw_os_error() == Some(231) && retries < 5 => {
retries += 1;
let delay = Duration::from_millis(200 * retries);
tokio::time::sleep(delay).await;
continue;
}
Err(e) => return Err(e.into()),
}
};
// Use a scope to ensure the pipe is dropped when done
let result = async {
let mut framed = Framed::new(pipe, LinesCodec::new());
// Build request
let mut request = format!(
"{} {} HTTP/1.1\r\nHost: localhost\r\nContent-Type: application/json\r\n",
method.as_str(),
path
);
if let Some(ref json_body) = body {
let body_str = json_body.to_string();
request += &format!("Content-Length: {}\r\n\r\n{}", body_str.len(), body_str);
} else {
request += "\r\n";
}
framed.send(request).await?;
// Parse headers
let mut headers_done = false;
let mut is_chunked = false;
while let Ok(Some(Ok(line))) = timeout(Duration::from_secs(5), framed.next()).await {
if line.is_empty() {
headers_done = true;
break;
}
if line.starts_with("HTTP/1.1 4") || line.starts_with("HTTP/1.1 5") {
return Err(format!("Server error: {}", line).into());
}
if line.eq_ignore_ascii_case("Transfer-Encoding: chunked") {
is_chunked = true;
}
}
if !headers_done {
return Err("Malformed response: no headers end".into());
}
let mut response_body = String::new();
if is_chunked {
// Handle chunked encoding
loop {
// Read chunk size line
let chunk_size_line = match timeout(Duration::from_secs(5), framed.next()).await {
Ok(Some(Ok(line))) => line,
_ => break,
};
let chunk_size = match usize::from_str_radix(chunk_size_line.trim(), 16) {
Ok(0) => break, // End of chunks
Ok(_) => (), // We don't actually need the size with LinesCodec
Err(_) => return Err("Invalid chunk size".into()),
};
// Read chunk data line
if let Ok(Some(Ok(data_line))) = timeout(Duration::from_secs(5), framed.next()).await {
response_body.push_str(&data_line);
}
// Skip trailing CRLF (empty line)
let _ = framed.next().await;
}
} else {
// Handle normal content
while let Ok(Some(Ok(line))) = timeout(Duration::from_secs(5), framed.next()).await {
response_body.push_str(&line);
}
}
serde_json::from_str(&response_body).map_err(|e| e.into())
}.await;
result
}
}

View File

@@ -0,0 +1,126 @@
use crate::{model::E, platform::Client};
use async_trait::async_trait;
use hyper::Method;
use serde_json::Value;
use std::sync::Arc;
use tokio::sync::Mutex;
use crate::{
MihomoData,
model::{MihomoClient, MihomoManager},
};
impl MihomoManager {
pub fn new(socket_path: String) -> Self {
let client = Client::new();
Self {
socket_path,
client: Arc::new(Mutex::new(client)),
data: Arc::new(Mutex::new(MihomoData::default())),
}
}
}
#[async_trait]
impl MihomoClient for MihomoManager {
async fn set_data_proxies(&self, data: Value) {
self.data.lock().await.proxies = data;
}
async fn set_data_providers_proxies(&self, data: Value) {
self.data.lock().await.providers_proxies = data;
}
async fn get_data_proxies(&self) -> Value {
self.data.lock().await.proxies.clone()
}
async fn get_data_providers_proxies(&self) -> Value {
self.data.lock().await.providers_proxies.clone()
}
async fn send_request(
&self,
path: &str,
method: Method,
body: Option<Value>,
) -> Result<Value, E> {
let client = self.client.lock().await;
client
.send_request(self.socket_path.clone(), path, method, body)
.await
}
async fn get_version(&self) -> Result<Value, E> {
let data = self.send_request("/version", Method::GET, None).await?;
Ok(data)
}
async fn is_mihomo_running(&self) -> Result<(), E> {
self.get_version().await?;
Ok(())
}
async fn put_configs_force(&self, clash_config_path: &str) -> Result<(), E> {
let body = serde_json::json!({
"path": clash_config_path
});
let _ = self
.send_request("/configs?force=true", Method::PUT, Some(body))
.await?;
Ok(())
}
async fn patch_configs(&self, config: Value) -> Result<(), E> {
let _ = self
.send_request("/configs", Method::PATCH, Some(config))
.await?;
Ok(())
}
async fn refresh_proxies(&self) -> Result<&Self, E> {
let data = self.send_request("/proxies", Method::GET, None).await?;
self.set_data_proxies(data).await;
Ok(self)
}
async fn refresh_providers_proxies(&self) -> Result<&Self, E> {
let data = self
.send_request("/providers/proxies", Method::GET, None)
.await?;
self.set_data_providers_proxies(data).await;
Ok(self)
}
async fn get_connections(&self) -> Result<Value, E> {
let data = self.send_request("/connections", Method::GET, None).await?;
Ok(data)
}
async fn delete_connection(&self, id: &str) -> Result<(), E> {
let _ = self
.send_request(&format!("/connections/{}", id), Method::DELETE, None)
.await?;
Ok(())
}
async fn test_proxy_delay(
&self,
name: &str,
test_url: Option<String>,
timeout: i32,
) -> Result<Value, E> {
let test_url = test_url.unwrap_or("http://cp.cloudflare.com/generate_204".to_string());
let data = self
.send_request(
&format!(
"/proxies/{}/delay?url={}&timeout={}",
name, test_url, timeout
),
Method::GET,
None,
)
.await?;
Ok(data)
}
}

View File

@@ -1,29 +1,58 @@
use mihomo_api;
use reqwest::header::HeaderMap;
use dotenv::dotenv;
use mihomo_api::{self, model::MihomoClient};
use std::env;
#[test]
fn test_mihomo_manager_init() {
let manager = mihomo_api::MihomoManager::new("url".into(), HeaderMap::new());
assert_eq!(manager.get_proxies(), serde_json::Value::Null);
assert_eq!(manager.get_providers_proxies(), serde_json::Value::Null);
lazy_static::lazy_static! {
static ref LOCAL_SOCK: String = {
dotenv().ok();
env::var("LOCAL_SOCK")
.expect("LOCAL_SOCK must be set in .env or environment variables")
.trim_matches('"')
.to_string()
};
}
#[tokio::test]
async fn test_env() {
assert_eq!(LOCAL_SOCK.to_string(), LOCAL_SOCK.to_string());
}
#[tokio::test]
async fn test_mihomo_manager_init() {
let manager = mihomo_api::MihomoManager::new(LOCAL_SOCK.to_string());
let proxies = manager.get_data_proxies().await;
let providers = manager.get_data_providers_proxies().await;
assert_eq!(proxies, serde_json::Value::Null);
assert_eq!(providers, serde_json::Value::Null);
}
#[tokio::test]
async fn test_get_version() {
let manager = mihomo_api::MihomoManager::new(LOCAL_SOCK.to_string());
let version = manager.get_version().await;
assert!(version.is_ok());
if let Ok(version) = version {
assert!(!version.get("version").is_none());
}
}
#[tokio::test]
async fn test_refresh_proxies() {
let manager = mihomo_api::MihomoManager::new("http://127.0.0.1:9097".into(), HeaderMap::new());
let manager = mihomo_api::MihomoManager::new(LOCAL_SOCK.to_string());
let manager = manager.refresh_proxies().await.unwrap();
let proxies = manager.get_proxies();
let providers = manager.get_providers_proxies();
let proxies = manager.get_data_proxies().await;
let providers = manager.get_data_providers_proxies().await;
assert_ne!(proxies, serde_json::Value::Null);
assert_eq!(providers, serde_json::Value::Null);
}
#[tokio::test]
async fn test_refresh_providers_proxies() {
let manager = mihomo_api::MihomoManager::new("http://127.0.0.1:9097".into(), HeaderMap::new());
let manager = mihomo_api::MihomoManager::new(LOCAL_SOCK.to_string());
let manager = manager.refresh_providers_proxies().await.unwrap();
let proxies = manager.get_proxies();
let providers = manager.get_providers_proxies();
let proxies = manager.get_data_proxies().await;
let providers = manager.get_data_providers_proxies().await;
assert_eq!(proxies, serde_json::Value::Null);
assert_ne!(providers, serde_json::Value::Null);
}

View File

@@ -1,32 +1,53 @@
import { forwardRef, useImperativeHandle, useState } from "react";
import { forwardRef, useImperativeHandle, useState, useEffect } from "react";
import { useLockFn } from "ahooks";
import { useTranslation } from "react-i18next";
import { List, ListItem, ListItemText, TextField } from "@mui/material";
import { List, ListItem, ListItemText, TextField, Typography, Box } from "@mui/material";
import { useClashInfo } from "@/hooks/use-clash";
import { BaseDialog, DialogRef, Notice } from "@/components/base";
import { BaseDialog, DialogRef, Notice, Switch } from "@/components/base";
import { useVerge } from "@/hooks/use-verge";
export const ControllerViewer = forwardRef<DialogRef>((props, ref) => {
const { t } = useTranslation();
const [open, setOpen] = useState(false);
const { clashInfo, patchInfo } = useClashInfo();
const { verge, patchVerge } = useVerge();
const [controller, setController] = useState(clashInfo?.server || "");
const [secret, setSecret] = useState(clashInfo?.secret || "");
// 获取外部控制器开关状态
const [enableController, setEnableController] = useState(() => {
const savedState = localStorage.getItem("enable_external_controller");
if (savedState !== null) {
return savedState === "true";
}
return verge?.enable_external_controller ?? true;
});
useImperativeHandle(ref, () => ({
open: () => {
setOpen(true);
setController(clashInfo?.server || "");
setSecret(clashInfo?.secret || "");
// 从localStorage更新开关状态
const savedState = localStorage.getItem("enable_external_controller");
if (savedState !== null) {
setEnableController(savedState === "true");
} else {
setEnableController(verge?.enable_external_controller ?? true);
}
},
close: () => setOpen(false),
}));
const onSave = useLockFn(async () => {
try {
// 只有在启用外部控制器时才更新配置
if (enableController) {
await patchInfo({ "external-controller": controller, secret });
Notice.success(t("External Controller Address Modified"), 1000);
}
Notice.success(t("External Controller Settings Saved"), 1000);
setOpen(false);
} catch (err: any) {
Notice.error(err.message || err.toString(), 4000);
@@ -44,9 +65,17 @@ export const ControllerViewer = forwardRef<DialogRef>((props, ref) => {
onCancel={() => setOpen(false)}
onOk={onSave}
>
<Box>
<Typography variant="body2" color={enableController ? "warning.main" : "text.secondary"}>
{enableController
? t("External controller is enabled info")
: t("External controller is disabled info")}
</Typography>
</Box>
<List>
<ListItem sx={{ padding: "5px 2px" }}>
<ListItemText primary={t("External Controller")} />
<ListItemText primary={t("External Controller Address")} />
<TextField
autoComplete="new-password"
size="small"
@@ -54,6 +83,7 @@ export const ControllerViewer = forwardRef<DialogRef>((props, ref) => {
value={controller}
placeholder="Required"
onChange={(e) => setController(e.target.value)}
disabled={!enableController}
/>
</ListItem>
@@ -68,6 +98,7 @@ export const ControllerViewer = forwardRef<DialogRef>((props, ref) => {
onChange={(e) =>
setSecret(e.target.value?.replace(/[^\x00-\x7F]/g, ""))
}
disabled={!enableController}
/>
</ListItem>
</List>

View File

@@ -701,7 +701,7 @@ export const DnsViewer = forwardRef<DialogRef>((props, ref) => {
<Item>
<ListItemText
primary={t("Prefer H3")}
secondary={t("DNS DOH使用HTTP/3")}
secondary={t("DNS DOH uses HTTP/3")}
/>
<Switch
edge="end"
@@ -713,7 +713,7 @@ export const DnsViewer = forwardRef<DialogRef>((props, ref) => {
<Item>
<ListItemText
primary={t("Respect Rules")}
secondary={t("DNS连接遵守路由规则")}
secondary={t("DNS connections follow routing rules")}
/>
<Switch
edge="end"
@@ -749,7 +749,7 @@ export const DnsViewer = forwardRef<DialogRef>((props, ref) => {
<Item>
<ListItemText
primary={t("Direct Nameserver Follow Policy")}
secondary={t("是否遵循nameserver-policy")}
secondary={t("Whether to follow nameserver policy")}
/>
<Switch
edge="end"

View File

@@ -7,7 +7,7 @@ import {
LanRounded,
} from "@mui/icons-material";
import { DialogRef, Notice, Switch } from "@/components/base";
import { useClash } from "@/hooks/use-clash";
import { useClash, useClashInfo } from "@/hooks/use-clash";
import { GuardState } from "./mods/guard-state";
import { WebUIViewer } from "./mods/web-ui-viewer";
import { ClashPortViewer } from "./mods/clash-port-viewer";
@@ -36,6 +36,7 @@ const SettingClash = ({ onError }: Props) => {
const { clash, version, mutateClash, patchClash } = useClash();
const { verge, mutateVerge, patchVerge } = useVerge();
const { clashInfo, patchInfo } = useClashInfo();
const {
ipv6,
@@ -58,6 +59,15 @@ const SettingClash = ({ onError }: Props) => {
return verge?.enable_dns_settings ?? false;
});
// 添加外部控制器开关状态
const [enableController, setEnableController] = useState(() => {
const savedState = localStorage.getItem("enable_external_controller");
if (savedState !== null) {
return savedState === "true";
}
return verge?.enable_external_controller ?? true;
});
const { addListener } = useListen();
const webRef = useRef<DialogRef>(null);
@@ -108,6 +118,26 @@ const SettingClash = ({ onError }: Props) => {
}
});
// 处理外部控制器开关状态变化
const handleControllerToggle = useLockFn(async (enable: boolean) => {
try {
setEnableController(enable);
localStorage.setItem("enable_external_controller", String(enable));
await patchVerge({ enable_external_controller: enable });
if (!enable) {
await patchInfo({ "external-controller": "", secret: "" });
} else {
// 如果开启,恢复默认值或之前的值
const server = clashInfo?.server || "127.0.0.1:9097";
await patchInfo({ "external-controller": server, secret: clashInfo?.secret || "" });
}
} catch (err: any) {
setEnableController(!enable);
localStorage.setItem("enable_external_controller", String(!enable));
Notice.error(err.message || err.toString());
}
});
return (
<SettingList title={t("Clash Setting")}>
<WebUIViewer ref={webRef} />
@@ -248,11 +278,41 @@ const SettingClash = ({ onError }: Props) => {
</SettingItem>
<SettingItem
label={t("External Controller")}
extra={
<TooltipIcon
icon={SettingsRounded}
onClick={() => ctrlRef.current?.open()}
label={t("External")}
/>
}
>
<Switch
edge="end"
checked={enableController}
onChange={(_, checked) => handleControllerToggle(checked)}
/>
</SettingItem>
<SettingItem onClick={() => webRef.current?.open()} label={t("Web UI")} />
<SettingItem
onClick={enableController ? () => webRef.current?.open() : undefined}
label={
<Typography
component="span"
color={!enableController ? "text.disabled" : "text.primary"}
sx={{ fontSize: "inherit" }}
>
{t("Web UI")}
</Typography>
}
extra={
!enableController && (
<TooltipIcon
title={t("Web UI info")}
sx={{ opacity: "0.7" }}
/>
)
}
/>
<SettingItem
label={t("Clash Core")}

View File

@@ -257,8 +257,8 @@
"Http Port": "منفذ HTTP(S)",
"Redir Port": "منفذ إعادة التوجيه",
"Tproxy Port": "منفذ Tproxy",
"External": "خارجي",
"External Controller": "وحدة التحكم الخارجية",
"External Controller Address": "عنوان وحدة التحكم الخارجية",
"Core Secret": "المفتاح السري للنواة",
"Recommended": "موصى به",
"Open URL": "فتح الرابط",

View File

@@ -278,8 +278,11 @@
"Http Port": "Http(s) Port",
"Redir Port": "Redir Port",
"Tproxy Port": "Tproxy Port",
"External": "External",
"External Controller": "External Controller",
"External Controller Address": "External Controller Address",
"External Controller Settings Saved": "External Controller Settings Saved",
"External Controller is enabled info": "External Controller is enabled. Please set a secret password to avoid security risks.",
"External controller is disabled info": "External controller is disabled. You only need to enable it if you want to control Clash core via web UI.",
"Core Secret": "Core Secret",
"Recommended": "Recommended",
"Open URL": "Open URL",
@@ -434,6 +437,7 @@
"Menu Icon": "Menu Icon",
"PAC File": "PAC File",
"Web UI": "Web UI",
"Web UI info": "External controller is disabled, web UI cannot be used",
"Hotkeys": "Hotkeys",
"Verge Mixed Port": "Verge Mixed Port",
"Verge Socks Port": "Verge Socks Port",
@@ -502,15 +506,15 @@
"Fake IP Filter Mode": "Fake IP Filter Mode",
"Enable IPv6 DNS resolution": "Enable IPv6 DNS resolution",
"Prefer H3": "Prefer H3",
"DNS DOH使用HTTP/3": "DNS DOH uses HTTP/3",
"DNS DOH uses HTTP/3": "DNS DOH uses HTTP/3",
"Respect Rules": "Respect Rules",
"DNS连接遵守路由规则": "DNS connections follow routing rules",
"DNS connections follow routing rules": "DNS connections follow routing rules",
"Use Hosts": "Use Hosts",
"Enable to resolve hosts through hosts file": "Enable to resolve hosts through hosts file",
"Use System Hosts": "Use System Hosts",
"Enable to resolve hosts through system hosts file": "Enable to resolve hosts through system hosts file",
"Direct Nameserver Follow Policy": "Direct Nameserver Follow Policy",
"是否遵循nameserver-policy": "Whether to follow nameserver policy",
"Whether to follow nameserver policy": "Whether to follow nameserver policy",
"Default Nameserver": "Default Nameserver",
"Default DNS servers used to resolve DNS servers": "Default DNS servers used to resolve DNS servers",
"Nameserver": "Nameserver",

View File

@@ -259,8 +259,8 @@
"Http Port": "پورت پروکسی Http(s)",
"Redir Port": "پورت پروکسی شفاف Redir",
"Tproxy Port": "پورت پروکسی شفاف Tproxy",
"External": "خارجی",
"External Controller": "کنترل‌کننده خارجی",
"External Controller Address": "کنترل‌کننده خارجی",
"Core Secret": "رمز اصلی",
"Recommended": "توصیه شده",
"Open URL": "باز کردن آدرس اینترنتی",

View File

@@ -290,8 +290,8 @@
"Http Port": "Port Http(s)",
"Redir Port": "Port Redir",
"Tproxy Port": "Port Tproxy",
"External": "Eksternal",
"External Controller": "Alamat Pengendali Eksternal",
"External Controller": "Eksternal",
"External Controller Address": "Alamat Pengendali Eksternal",
"Core Secret": "Rahasia Inti",
"Recommended": "Direkomendasikan",
"Open URL": "Buka URL",

View File

@@ -274,8 +274,8 @@
"Http Port": "Порт Http(s)-прокси",
"Redir Port": "Порт прозрачного прокси Redir",
"Tproxy Port": "Порт прозрачного прокси Tproxy",
"External": "Внешний контроллер",
"External Controller": "Адрес прослушивания внешнего контроллера",
"External Controller": "Внешний контроллер",
"External Controller Address": "Адрес прослушивания внешнего контроллера",
"Core Secret": "Секрет",
"Recommended": "Рекомендуется",
"Open URL": "Перейти по адресу",
@@ -496,15 +496,15 @@
"Fake IP Range": "Диапазон FakeIP",
"Fake IP Filter Mode": "FakeIP Filter Mode",
"Prefer H3": "Предпочитать H3",
"DNS DOH使用HTTP/3": "DNS DOH использует http/3",
"DNS DOH uses HTTP/3": "DNS DOH использует http/3",
"Respect Rules": "Приоритизировать правила",
"DNS连接遵守路由规则": "Соединения DNS следуют правилам маршрутизации",
"DNS connections follow routing rules": "Соединения DNS следуют правилам маршрутизации",
"Use Hosts": "Использовать файл Hosts",
"Enable to resolve hosts through hosts file": "Включить разрешение хостов через файл Hosts",
"Use System Hosts": "Использовать системный файл Hosts",
"Enable to resolve hosts through system hosts file": "Включить разрешение хостов через системный файл Hosts",
"Direct Nameserver Follow Policy": "Прямой сервер имен следует политике",
"是否遵循nameserver-policy": "Следовать ли политике DNS-серверов",
"Whether to follow nameserver policy": "Следовать ли политике DNS-серверов",
"Default Nameserver": "DNS-сервер по умолчанию",
"Default DNS servers used to resolve DNS servers": "DNS-серверы по умолчанию, используемые для разрешения адресов серверов DNS",
"Nameserver": "DNS-сервер",

View File

@@ -258,8 +258,8 @@
"Http Port": "HTTP(s) прокси порты",
"Redir Port": "Redir — үтә күренмәле прокси порты",
"Tproxy Port": "Tproxy — үтә күренмәле прокси порты",
"External": "Тышкы",
"External Controller": "Тышкы контроллер адресы",
"External Controller": "Тышкы контроллер",
"External Controller Address": "Тышкы контроллер адресы",
"Core Secret": "Серсүз",
"Recommended": "Тавсия ителә",
"Open URL": "URL ачарга",

View File

@@ -278,8 +278,11 @@
"Http Port": "HTTP(S) 代理端口",
"Redir Port": "Redir 透明代理端口",
"TPROXY Port": "TPROXY 透明代理端口",
"External": "外部控制",
"External Controller": "外部控制器监听地址",
"External Controller": "外部控制",
"External Controller Address": "外部控制器监听地址",
"External Controller Settings Saved": "外部控制器设置已保存",
"External controller is enabled info": "外部控制器已启用。请设置一个密钥密码以避免安全风险。",
"External controller is disabled info": "外部控制器已禁用。如果您想通过网页界面控制 Clash 核心才需启用。",
"Core Secret": "API 访问密钥",
"Recommended": "建议设置",
"Open URL": "打开链接",
@@ -434,6 +437,7 @@
"Menu Icon": "菜单图标",
"PAC File": "PAC 文件",
"Web UI": "网页界面",
"Web UI info": "外部控制器已禁用,网页界面无法使用",
"Hotkeys": "快捷键",
"Verge Mixed Port": "Verge 混合端口",
"Verge Socks Port": "Verge SOCKS 端口",
@@ -502,15 +506,15 @@
"Fake IP Filter Mode": "Fake IP 过滤模式",
"Enable IPv6 DNS resolution": "启用 IPv6 DNS 解析",
"Prefer H3": "优先使用 HTTP/3",
"DNS DOH使用HTTP/3": "DNS DOH 使用 HTTP/3 协议",
"DNS DOH uses HTTP/3": "DNS DOH 使用 HTTP/3 协议",
"Respect Rules": "遵循路由规则",
"DNS连接遵守路由规则": "DNS 连接遵循路由规则",
"DNS connections follow routing rules": "DNS 连接遵循路由规则",
"Use Hosts": "使用 Hosts",
"Enable to resolve hosts through hosts file": "启用通过 hosts 文件解析域名",
"Use System Hosts": "使用系统 Hosts",
"Enable to resolve hosts through system hosts file": "启用通过系统 hosts 文件解析域名",
"Direct Nameserver Follow Policy": "直连域名服务器遵循策略",
"是否遵循nameserver-policy": "是否遵循 nameserver-policy 设置",
"Whether to follow nameserver policy": "是否遵循 nameserver-policy 设置",
"Default Nameserver": "默认域名服务器",
"Default DNS servers used to resolve DNS servers": "用于解析 DNS 服务器的默认 DNS 服务器",
"Nameserver": "域名服务器",

View File

@@ -30,6 +30,7 @@ import { useListen } from "@/hooks/use-listen";
import { listen } from "@tauri-apps/api/event";
import { useClashInfo } from "@/hooks/use-clash";
import { initGlobalLogService } from "@/services/global-log-service";
import { invoke } from "@tauri-apps/api/core";
const appWindow = getCurrentWebviewWindow();
export let portableFlag = false;
@@ -209,6 +210,34 @@ const Layout = () => {
};
}, [handleNotice]);
// 监听启动完成事件并通知UI已加载
useEffect(() => {
const notifyUiReady = async () => {
try {
await new Promise(resolve => setTimeout(resolve, 200));
await invoke("notify_ui_ready");
console.log("已通知后端UI准备就绪");
} catch (err) {
console.error("通知UI准备就绪失败:", err);
}
};
// 监听后端发送的启动完成事件
const listenStartupCompleted = async () => {
const unlisten = await listen("verge://startup-completed", () => {
console.log("收到启动完成事件");
});
return unlisten;
};
notifyUiReady();
const unlistenPromise = listenStartupCompleted();
return () => {
unlistenPromise.then(unlisten => unlisten());
};
}, []);
// 语言和起始页设置
useEffect(() => {
if (language) {

View File

@@ -747,6 +747,7 @@ interface IVergeConfig {
enable_system_proxy?: boolean;
enable_global_hotkey?: boolean;
enable_dns_settings?: boolean;
enable_external_controller?: boolean;
proxy_auto_config?: boolean;
pac_file_content?: string;
enable_random_port?: boolean;

View File

@@ -5,10 +5,10 @@
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_VERSION:=2025.01
PKG_VERSION:=2025.04
PKG_RELEASE:=1
PKG_HASH:=cdef7d507c93f1bbd9f015ea9bc21fa074268481405501945abc6f854d5b686f
PKG_HASH:=439d3bef296effd54130be6a731c5b118be7fddd7fcc663ccbc5fb18294d8718
PKG_MAINTAINER:=Tobias Maedel <openwrt@tbspace.de>

View File

@@ -1,6 +1,6 @@
--- a/Makefile
+++ b/Makefile
@@ -2072,26 +2072,7 @@ endif
@@ -2075,26 +2075,7 @@ endif
# Check dtc and pylibfdt, if DTC is provided, else build them
PHONY += scripts_dtc
scripts_dtc: scripts_basic

View File

@@ -1,6 +1,6 @@
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -1162,6 +1162,7 @@ static int fit_config_add_verification_d
@@ -1175,6 +1175,7 @@ static int fit_config_add_verification_d
* 2) get public key (X509_get_pubkey)
* 3) provide der format (d2i_RSAPublicKey)
*/
@@ -8,7 +8,7 @@
static int read_pub_key(const char *keydir, const void *name,
unsigned char **pubkey, int *pubkey_len)
{
@@ -1215,6 +1216,13 @@ err_cert:
@@ -1228,6 +1229,13 @@ err_cert:
fclose(f);
return ret;
}

View File

@@ -1,100 +0,0 @@
--- /dev/null
+++ b/dts/upstream/src/arm64/rockchip/rk3566-nanopi-r3s.dts
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include "rk3568-nanopi-r5s.dtsi"
+
+/ {
+ model = "FriendlyElec NanoPi R3S";
+ compatible = "friendlyarm,nanopi-r3s", "rockchip,rk3568";
+};
--- /dev/null
+++ b/configs/nanopi-r3s-rk3566_defconfig
@@ -0,0 +1,85 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3566-nanopi-r3s"
+CONFIG_ROCKCHIP_RK3568=y
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_SPL_MMC=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_STACK_R_ADDR=0x600000
+CONFIG_SPL_STACK=0x400000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x4000000
+CONFIG_SPL_BSS_MAX_SIZE=0x4000
+CONFIG_SPL_STACK_R=y
+CONFIG_DEBUG_UART_BASE=0xFE660000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_DEBUG_UART=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-nanopi-r3s.dtb"
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x40000
+CONFIG_SPL_PAD_TO=0x7f8000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_ATF=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_REGULATOR=y
+# CONFIG_SPL_DOS_PARTITION is not set
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+CONFIG_CLK_SCMI=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MISC=y
+CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_GMAC_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_SPL_PMIC_RK8XX=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_RESET_SCMI=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_ERRNO_STR=y

View File

@@ -1,210 +0,0 @@
From 7983e6c379a917c500eff31f5f9c646cc408e030 Mon Sep 17 00:00:00 2001
From: Yao Zi <ziyao@disroot.org>
Date: Thu, 29 Aug 2024 09:27:04 +0000
Subject: [PATCH] arm64: dts: rockchip: Add base DT for rk3528 SoC
This initial device tree describes CPU, interrupts and UART on the chip
and is able to boot into basic kernel with only UART. Cache information
is omitted for now as there is no precise documentation. Support for
other features will be added later.
Signed-off-by: Yao Zi <ziyao@disroot.org>
Link: https://lore.kernel.org/r/20240829092705.6241-4-ziyao@disroot.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3528.dtsi | 189 +++++++++++++++++++++++
1 file changed, 189 insertions(+)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3528.dtsi
--- /dev/null
+++ b/dts/upstream/src/arm64/rockchip/rk3528.dtsi
@@ -0,0 +1,189 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2024 Yao Zi <ziyao@disroot.org>
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+ compatible = "rockchip,rk3528";
+
+ interrupt-parent = <&gic>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ aliases {
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
+ serial5 = &uart5;
+ serial6 = &uart6;
+ serial7 = &uart7;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu0>;
+ };
+ core1 {
+ cpu = <&cpu1>;
+ };
+ core2 {
+ cpu = <&cpu2>;
+ };
+ core3 {
+ cpu = <&cpu3>;
+ };
+ };
+ };
+
+ cpu0: cpu@0 {
+ compatible = "arm,cortex-a53";
+ reg = <0x0>;
+ device_type = "cpu";
+ enable-method = "psci";
+ };
+
+ cpu1: cpu@1 {
+ compatible = "arm,cortex-a53";
+ reg = <0x1>;
+ device_type = "cpu";
+ enable-method = "psci";
+ };
+
+ cpu2: cpu@2 {
+ compatible = "arm,cortex-a53";
+ reg = <0x2>;
+ device_type = "cpu";
+ enable-method = "psci";
+ };
+
+ cpu3: cpu@3 {
+ compatible = "arm,cortex-a53";
+ reg = <0x3>;
+ device_type = "cpu";
+ enable-method = "psci";
+ };
+ };
+
+ psci {
+ compatible = "arm,psci-1.0", "arm,psci-0.2";
+ method = "smc";
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+ };
+
+ xin24m: clock-xin24m {
+ compatible = "fixed-clock";
+ clock-frequency = <24000000>;
+ clock-output-names = "xin24m";
+ #clock-cells = <0>;
+ };
+
+ soc {
+ compatible = "simple-bus";
+ ranges = <0x0 0xfe000000 0x0 0xfe000000 0x0 0x2000000>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ gic: interrupt-controller@fed01000 {
+ compatible = "arm,gic-400";
+ reg = <0x0 0xfed01000 0 0x1000>,
+ <0x0 0xfed02000 0 0x2000>,
+ <0x0 0xfed04000 0 0x2000>,
+ <0x0 0xfed06000 0 0x2000>;
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
+ IRQ_TYPE_LEVEL_LOW)>;
+ interrupt-controller;
+ #address-cells = <0>;
+ #interrupt-cells = <3>;
+ };
+
+ uart0: serial@ff9f0000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xff9f0000 0x0 0x100>;
+ clock-frequency = <24000000>;
+ interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart1: serial@ff9f8000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xff9f8000 0x0 0x100>;
+ interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart2: serial@ffa00000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa00000 0x0 0x100>;
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart3: serial@ffa08000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa08000 0x0 0x100>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart4: serial@ffa10000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa10000 0x0 0x100>;
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart5: serial@ffa18000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa18000 0x0 0x100>;
+ interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart6: serial@ffa20000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa20000 0x0 0x100>;
+ interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+
+ uart7: serial@ffa28000 {
+ compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa28000 0x0 0x100>;
+ interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ status = "disabled";
+ };
+ };
+};

View File

@@ -54,7 +54,7 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+#endif
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -309,6 +309,55 @@ config ROCKCHIP_RK3399
@@ -312,6 +312,55 @@ config ROCKCHIP_RK3399
and video codec support. Peripherals include Gigabit Ethernet,
USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
@@ -110,7 +110,7 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
config ROCKCHIP_RK3568
bool "Support Rockchip RK3568"
select ARM64
@@ -626,6 +675,7 @@ source "arch/arm/mach-rockchip/rk3308/Kc
@@ -629,6 +678,7 @@ source "arch/arm/mach-rockchip/rk3308/Kc
source "arch/arm/mach-rockchip/rk3328/Kconfig"
source "arch/arm/mach-rockchip/rk3368/Kconfig"
source "arch/arm/mach-rockchip/rk3399/Kconfig"

View File

@@ -140,8 +140,8 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+
* rk3566
- Anbernic RGxx3 (anbernic-rgxx3-rk3566)
- Hardkernel ODROID-M1S (odroid-m1s-rk3566)
@@ -255,6 +258,15 @@ To build rk3399 boards:
- FriendlyElec NanoPi R3S (nanopi-r3s-rk3566)
@@ -258,6 +261,15 @@ To build rk3399 boards:
make evb-rk3399_defconfig
make CROSS_COMPILE=aarch64-linux-gnu-

View File

@@ -197,28 +197,3 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
* rk3566
- Anbernic RGxx3 (anbernic-rgxx3-rk3566)
--- /dev/null
+++ b/dts/upstream/src/arm64/rockchip/rk3528-radxa-e20c.dts
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd
+ * Copyright (c) 2024 Radxa Limited
+ * Copyright (c) 2024 Yao Zi <ziyao@disroot.org>
+ */
+
+/dts-v1/;
+#include "rk3528.dtsi"
+
+/ {
+ model = "Radxa E20C";
+ compatible = "radxa,e20c", "rockchip,rk3528";
+
+ chosen {
+ stdout-path = "serial0:1500000n8";
+ };
+};
+
+&uart0 {
+ status = "okay";
+};

View File

@@ -398,7 +398,7 @@ protobuf:
chmod 755 "${ROOT}/tools/build/protoc-gen-go-grpc";\
fi
PATH=${PATH}:"${ROOT}/tools/build" ${ROOT}/tools/build/protoc -I="${ROOT}/pkg/appctl/proto" \
PATH=${PATH}:"${ROOT}/tools/build" ${ROOT}/tools/build/protoc -I="${ROOT}/pkg" \
--go_out="${ROOT}/pkg/appctl" --go_opt=module="github.com/enfein/mieru/v3/pkg/appctl" \
--go-grpc_out="${ROOT}/pkg/appctl" --go-grpc_opt=module="github.com/enfein/mieru/v3/pkg/appctl" \
--proto_path="${ROOT}/pkg" \
@@ -408,12 +408,12 @@ protobuf:
"${ROOT}/pkg/appctl/proto/rpc.proto" \
"${ROOT}/pkg/appctl/proto/servercfg.proto"
PATH=${PATH}:"${ROOT}/tools/build" ${ROOT}/tools/build/protoc -I="${ROOT}/pkg/metrics/proto" \
PATH=${PATH}:"${ROOT}/tools/build" ${ROOT}/tools/build/protoc -I="${ROOT}/pkg" \
--go_out="${ROOT}/pkg/metrics" --go_opt=module="github.com/enfein/mieru/v3/pkg/metrics" \
--proto_path="${ROOT}/pkg" \
"${ROOT}/pkg/metrics/proto/metrics.proto"
PATH=${PATH}:"${ROOT}/tools/build" ${ROOT}/tools/build/protoc -I="${ROOT}/pkg/version/updater/proto" \
PATH=${PATH}:"${ROOT}/tools/build" ${ROOT}/tools/build/protoc -I="${ROOT}/pkg" \
--go_out="${ROOT}/pkg/version/updater" --go_opt=module="github.com/enfein/mieru/v3/pkg/version/updater" \
--proto_path="${ROOT}/pkg" \
"${ROOT}/pkg/version/updater/proto/history.proto"

View File

@@ -17,7 +17,7 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: rpc.proto
// source: appctl/proto/rpc.proto
package appctlgrpc
@@ -35,98 +35,105 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
var File_rpc_proto protoreflect.FileDescriptor
var File_appctl_proto_rpc_proto protoreflect.FileDescriptor
var file_rpc_proto_rawDesc = []byte{
0x0a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x1a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x0a, 0x6d, 0x69, 0x73, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x73, 0x65, 0x72,
0x76, 0x65, 0x72, 0x63, 0x66, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf5, 0x03, 0x0a,
0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65,
0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41, 0x70, 0x70,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x45, 0x78, 0x69,
0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
0x2c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x0d, 0x2e,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3c, 0x0a,
0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c,
0x69, 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x47,
0x65, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x0d, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x12,
0x39, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69,
0x6c, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x0d, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x0e, 0x53, 0x74,
0x6f, 0x70, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0e, 0x47, 0x65,
0x74, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76,
0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72,
0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73,
0x74, 0x69, 0x63, 0x73, 0x32, 0xea, 0x04, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c,
0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73,
0x67, 0x12, 0x25, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70,
var file_appctl_proto_rpc_proto_rawDesc = []byte{
0x0a, 0x16, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72,
0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x1a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62,
0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x69, 0x73, 0x63, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x1c, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x66, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x32, 0xf5, 0x03, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x66, 0x65, 0x63,
0x79, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x47,
0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a,
0x04, 0x45, 0x78, 0x69, 0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x12, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12,
0x32, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70,
0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x26,
0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x04, 0x45, 0x78, 0x69, 0x74, 0x12, 0x0d,
0x12, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44,
0x75, 0x6d, 0x70, 0x12, 0x39, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x50, 0x55, 0x50,
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a,
0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2e,
0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38,
0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d,
0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12,
0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74,
0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x32, 0xa2, 0x05, 0x0a, 0x16, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x0d,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x0a,
0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3c, 0x0a, 0x12, 0x47, 0x65,
0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74,
0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54,
0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x39, 0x0a, 0x0f,
0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12,
0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x43,
0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48, 0x65,
0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61,
0x74, 0x68, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x12, 0x3e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74,
0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63,
0x73, 0x32, 0x80, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x09, 0x53,
0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75, 0x2f,
0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x04,
0x53, 0x74, 0x6f, 0x70, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x12, 0x26, 0x0a, 0x06, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x0d, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x04, 0x45, 0x78,
0x69, 0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x12, 0x2c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x0d,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3c,
0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
0x4c, 0x69, 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08,
0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x55, 0x73, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61,
0x64, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x54, 0x68,
0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x39, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72,
0x74, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65,
0x50, 0x61, 0x74, 0x68, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x50, 0x55, 0x50, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x50, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50,
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x0d,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a,
0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73,
0x74, 0x69, 0x63, 0x73, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x65, 0x6d,
0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x32, 0x80, 0x01,
0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x12, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65,
0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70,
0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var file_rpc_proto_goTypes = []interface{}{
var file_appctl_proto_rpc_proto_goTypes = []interface{}{
(*appctlpb.Empty)(nil), // 0: appctl.Empty
(*appctlpb.ProfileSavePath)(nil), // 1: appctl.ProfileSavePath
(*appctlpb.ServerConfig)(nil), // 2: appctl.ServerConfig
@@ -135,8 +142,9 @@ var file_rpc_proto_goTypes = []interface{}{
(*appctlpb.SessionInfoList)(nil), // 5: appctl.SessionInfoList
(*appctlpb.ThreadDump)(nil), // 6: appctl.ThreadDump
(*appctlpb.MemoryStatistics)(nil), // 7: appctl.MemoryStatistics
(*appctlpb.UserWithMetricsList)(nil), // 8: appctl.UserWithMetricsList
}
var file_rpc_proto_depIdxs = []int32{
var file_appctl_proto_rpc_proto_depIdxs = []int32{
0, // 0: appctl.ClientLifecycleService.GetStatus:input_type -> appctl.Empty
0, // 1: appctl.ClientLifecycleService.Exit:input_type -> appctl.Empty
0, // 2: appctl.ClientLifecycleService.GetMetrics:input_type -> appctl.Empty
@@ -153,63 +161,65 @@ var file_rpc_proto_depIdxs = []int32{
0, // 13: appctl.ServerLifecycleService.Exit:input_type -> appctl.Empty
0, // 14: appctl.ServerLifecycleService.GetMetrics:input_type -> appctl.Empty
0, // 15: appctl.ServerLifecycleService.GetSessionInfoList:input_type -> appctl.Empty
0, // 16: appctl.ServerLifecycleService.GetThreadDump:input_type -> appctl.Empty
1, // 17: appctl.ServerLifecycleService.StartCPUProfile:input_type -> appctl.ProfileSavePath
0, // 18: appctl.ServerLifecycleService.StopCPUProfile:input_type -> appctl.Empty
1, // 19: appctl.ServerLifecycleService.GetHeapProfile:input_type -> appctl.ProfileSavePath
0, // 20: appctl.ServerLifecycleService.GetMemoryStatistics:input_type -> appctl.Empty
0, // 21: appctl.ServerConfigService.GetConfig:input_type -> appctl.Empty
2, // 22: appctl.ServerConfigService.SetConfig:input_type -> appctl.ServerConfig
3, // 23: appctl.ClientLifecycleService.GetStatus:output_type -> appctl.AppStatusMsg
0, // 24: appctl.ClientLifecycleService.Exit:output_type -> appctl.Empty
4, // 25: appctl.ClientLifecycleService.GetMetrics:output_type -> appctl.Metrics
5, // 26: appctl.ClientLifecycleService.GetSessionInfoList:output_type -> appctl.SessionInfoList
6, // 27: appctl.ClientLifecycleService.GetThreadDump:output_type -> appctl.ThreadDump
0, // 28: appctl.ClientLifecycleService.StartCPUProfile:output_type -> appctl.Empty
0, // 29: appctl.ClientLifecycleService.StopCPUProfile:output_type -> appctl.Empty
0, // 30: appctl.ClientLifecycleService.GetHeapProfile:output_type -> appctl.Empty
7, // 31: appctl.ClientLifecycleService.GetMemoryStatistics:output_type -> appctl.MemoryStatistics
3, // 32: appctl.ServerLifecycleService.GetStatus:output_type -> appctl.AppStatusMsg
0, // 33: appctl.ServerLifecycleService.Start:output_type -> appctl.Empty
0, // 34: appctl.ServerLifecycleService.Stop:output_type -> appctl.Empty
0, // 35: appctl.ServerLifecycleService.Reload:output_type -> appctl.Empty
0, // 36: appctl.ServerLifecycleService.Exit:output_type -> appctl.Empty
4, // 37: appctl.ServerLifecycleService.GetMetrics:output_type -> appctl.Metrics
5, // 38: appctl.ServerLifecycleService.GetSessionInfoList:output_type -> appctl.SessionInfoList
6, // 39: appctl.ServerLifecycleService.GetThreadDump:output_type -> appctl.ThreadDump
0, // 40: appctl.ServerLifecycleService.StartCPUProfile:output_type -> appctl.Empty
0, // 41: appctl.ServerLifecycleService.StopCPUProfile:output_type -> appctl.Empty
0, // 42: appctl.ServerLifecycleService.GetHeapProfile:output_type -> appctl.Empty
7, // 43: appctl.ServerLifecycleService.GetMemoryStatistics:output_type -> appctl.MemoryStatistics
2, // 44: appctl.ServerConfigService.GetConfig:output_type -> appctl.ServerConfig
2, // 45: appctl.ServerConfigService.SetConfig:output_type -> appctl.ServerConfig
23, // [23:46] is the sub-list for method output_type
0, // [0:23] is the sub-list for method input_type
0, // 16: appctl.ServerLifecycleService.GetUsers:input_type -> appctl.Empty
0, // 17: appctl.ServerLifecycleService.GetThreadDump:input_type -> appctl.Empty
1, // 18: appctl.ServerLifecycleService.StartCPUProfile:input_type -> appctl.ProfileSavePath
0, // 19: appctl.ServerLifecycleService.StopCPUProfile:input_type -> appctl.Empty
1, // 20: appctl.ServerLifecycleService.GetHeapProfile:input_type -> appctl.ProfileSavePath
0, // 21: appctl.ServerLifecycleService.GetMemoryStatistics:input_type -> appctl.Empty
0, // 22: appctl.ServerConfigService.GetConfig:input_type -> appctl.Empty
2, // 23: appctl.ServerConfigService.SetConfig:input_type -> appctl.ServerConfig
3, // 24: appctl.ClientLifecycleService.GetStatus:output_type -> appctl.AppStatusMsg
0, // 25: appctl.ClientLifecycleService.Exit:output_type -> appctl.Empty
4, // 26: appctl.ClientLifecycleService.GetMetrics:output_type -> appctl.Metrics
5, // 27: appctl.ClientLifecycleService.GetSessionInfoList:output_type -> appctl.SessionInfoList
6, // 28: appctl.ClientLifecycleService.GetThreadDump:output_type -> appctl.ThreadDump
0, // 29: appctl.ClientLifecycleService.StartCPUProfile:output_type -> appctl.Empty
0, // 30: appctl.ClientLifecycleService.StopCPUProfile:output_type -> appctl.Empty
0, // 31: appctl.ClientLifecycleService.GetHeapProfile:output_type -> appctl.Empty
7, // 32: appctl.ClientLifecycleService.GetMemoryStatistics:output_type -> appctl.MemoryStatistics
3, // 33: appctl.ServerLifecycleService.GetStatus:output_type -> appctl.AppStatusMsg
0, // 34: appctl.ServerLifecycleService.Start:output_type -> appctl.Empty
0, // 35: appctl.ServerLifecycleService.Stop:output_type -> appctl.Empty
0, // 36: appctl.ServerLifecycleService.Reload:output_type -> appctl.Empty
0, // 37: appctl.ServerLifecycleService.Exit:output_type -> appctl.Empty
4, // 38: appctl.ServerLifecycleService.GetMetrics:output_type -> appctl.Metrics
5, // 39: appctl.ServerLifecycleService.GetSessionInfoList:output_type -> appctl.SessionInfoList
8, // 40: appctl.ServerLifecycleService.GetUsers:output_type -> appctl.UserWithMetricsList
6, // 41: appctl.ServerLifecycleService.GetThreadDump:output_type -> appctl.ThreadDump
0, // 42: appctl.ServerLifecycleService.StartCPUProfile:output_type -> appctl.Empty
0, // 43: appctl.ServerLifecycleService.StopCPUProfile:output_type -> appctl.Empty
0, // 44: appctl.ServerLifecycleService.GetHeapProfile:output_type -> appctl.Empty
7, // 45: appctl.ServerLifecycleService.GetMemoryStatistics:output_type -> appctl.MemoryStatistics
2, // 46: appctl.ServerConfigService.GetConfig:output_type -> appctl.ServerConfig
2, // 47: appctl.ServerConfigService.SetConfig:output_type -> appctl.ServerConfig
24, // [24:48] is the sub-list for method output_type
0, // [0:24] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_rpc_proto_init() }
func file_rpc_proto_init() {
if File_rpc_proto != nil {
func init() { file_appctl_proto_rpc_proto_init() }
func file_appctl_proto_rpc_proto_init() {
if File_appctl_proto_rpc_proto != nil {
return
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rpc_proto_rawDesc,
RawDescriptor: file_appctl_proto_rpc_proto_rawDesc,
NumEnums: 0,
NumMessages: 0,
NumExtensions: 0,
NumServices: 3,
},
GoTypes: file_rpc_proto_goTypes,
DependencyIndexes: file_rpc_proto_depIdxs,
GoTypes: file_appctl_proto_rpc_proto_goTypes,
DependencyIndexes: file_appctl_proto_rpc_proto_depIdxs,
}.Build()
File_rpc_proto = out.File
file_rpc_proto_rawDesc = nil
file_rpc_proto_goTypes = nil
file_rpc_proto_depIdxs = nil
File_appctl_proto_rpc_proto = out.File
file_appctl_proto_rpc_proto_rawDesc = nil
file_appctl_proto_rpc_proto_goTypes = nil
file_appctl_proto_rpc_proto_depIdxs = nil
}

View File

@@ -17,7 +17,7 @@
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v4.22.3
// source: rpc.proto
// source: appctl/proto/rpc.proto
package appctlgrpc
@@ -436,7 +436,7 @@ var ClientLifecycleService_ServiceDesc = grpc.ServiceDesc{
},
},
Streams: []grpc.StreamDesc{},
Metadata: "rpc.proto",
Metadata: "appctl/proto/rpc.proto",
}
const (
@@ -447,6 +447,7 @@ const (
ServerLifecycleService_Exit_FullMethodName = "/appctl.ServerLifecycleService/Exit"
ServerLifecycleService_GetMetrics_FullMethodName = "/appctl.ServerLifecycleService/GetMetrics"
ServerLifecycleService_GetSessionInfoList_FullMethodName = "/appctl.ServerLifecycleService/GetSessionInfoList"
ServerLifecycleService_GetUsers_FullMethodName = "/appctl.ServerLifecycleService/GetUsers"
ServerLifecycleService_GetThreadDump_FullMethodName = "/appctl.ServerLifecycleService/GetThreadDump"
ServerLifecycleService_StartCPUProfile_FullMethodName = "/appctl.ServerLifecycleService/StartCPUProfile"
ServerLifecycleService_StopCPUProfile_FullMethodName = "/appctl.ServerLifecycleService/StopCPUProfile"
@@ -472,6 +473,8 @@ type ServerLifecycleServiceClient interface {
GetMetrics(ctx context.Context, in *appctlpb.Empty, opts ...grpc.CallOption) (*appctlpb.Metrics, error)
// Get server session information.
GetSessionInfoList(ctx context.Context, in *appctlpb.Empty, opts ...grpc.CallOption) (*appctlpb.SessionInfoList, error)
// Get users setting and runtime information.
GetUsers(ctx context.Context, in *appctlpb.Empty, opts ...grpc.CallOption) (*appctlpb.UserWithMetricsList, error)
// Generate a thread dump of server daemon.
GetThreadDump(ctx context.Context, in *appctlpb.Empty, opts ...grpc.CallOption) (*appctlpb.ThreadDump, error)
// Start CPU profiling.
@@ -555,6 +558,15 @@ func (c *serverLifecycleServiceClient) GetSessionInfoList(ctx context.Context, i
return out, nil
}
func (c *serverLifecycleServiceClient) GetUsers(ctx context.Context, in *appctlpb.Empty, opts ...grpc.CallOption) (*appctlpb.UserWithMetricsList, error) {
out := new(appctlpb.UserWithMetricsList)
err := c.cc.Invoke(ctx, ServerLifecycleService_GetUsers_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *serverLifecycleServiceClient) GetThreadDump(ctx context.Context, in *appctlpb.Empty, opts ...grpc.CallOption) (*appctlpb.ThreadDump, error) {
out := new(appctlpb.ThreadDump)
err := c.cc.Invoke(ctx, ServerLifecycleService_GetThreadDump_FullMethodName, in, out, opts...)
@@ -618,6 +630,8 @@ type ServerLifecycleServiceServer interface {
GetMetrics(context.Context, *appctlpb.Empty) (*appctlpb.Metrics, error)
// Get server session information.
GetSessionInfoList(context.Context, *appctlpb.Empty) (*appctlpb.SessionInfoList, error)
// Get users setting and runtime information.
GetUsers(context.Context, *appctlpb.Empty) (*appctlpb.UserWithMetricsList, error)
// Generate a thread dump of server daemon.
GetThreadDump(context.Context, *appctlpb.Empty) (*appctlpb.ThreadDump, error)
// Start CPU profiling.
@@ -656,6 +670,9 @@ func (UnimplementedServerLifecycleServiceServer) GetMetrics(context.Context, *ap
func (UnimplementedServerLifecycleServiceServer) GetSessionInfoList(context.Context, *appctlpb.Empty) (*appctlpb.SessionInfoList, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetSessionInfoList not implemented")
}
func (UnimplementedServerLifecycleServiceServer) GetUsers(context.Context, *appctlpb.Empty) (*appctlpb.UserWithMetricsList, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented")
}
func (UnimplementedServerLifecycleServiceServer) GetThreadDump(context.Context, *appctlpb.Empty) (*appctlpb.ThreadDump, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetThreadDump not implemented")
}
@@ -811,6 +828,24 @@ func _ServerLifecycleService_GetSessionInfoList_Handler(srv interface{}, ctx con
return interceptor(ctx, in, info, handler)
}
func _ServerLifecycleService_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(appctlpb.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ServerLifecycleServiceServer).GetUsers(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ServerLifecycleService_GetUsers_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ServerLifecycleServiceServer).GetUsers(ctx, req.(*appctlpb.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _ServerLifecycleService_GetThreadDump_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(appctlpb.Empty)
if err := dec(in); err != nil {
@@ -936,6 +971,10 @@ var ServerLifecycleService_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetSessionInfoList",
Handler: _ServerLifecycleService_GetSessionInfoList_Handler,
},
{
MethodName: "GetUsers",
Handler: _ServerLifecycleService_GetUsers_Handler,
},
{
MethodName: "GetThreadDump",
Handler: _ServerLifecycleService_GetThreadDump_Handler,
@@ -958,7 +997,7 @@ var ServerLifecycleService_ServiceDesc = grpc.ServiceDesc{
},
},
Streams: []grpc.StreamDesc{},
Metadata: "rpc.proto",
Metadata: "appctl/proto/rpc.proto",
}
const (
@@ -1089,5 +1128,5 @@ var ServerConfigService_ServiceDesc = grpc.ServiceDesc{
},
},
Streams: []grpc.StreamDesc{},
Metadata: "rpc.proto",
Metadata: "appctl/proto/rpc.proto",
}

View File

@@ -17,7 +17,7 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: base.proto
// source: appctl/proto/base.proto
package appctlpb
@@ -78,11 +78,11 @@ func (x AppStatus) String() string {
}
func (AppStatus) Descriptor() protoreflect.EnumDescriptor {
return file_base_proto_enumTypes[0].Descriptor()
return file_appctl_proto_base_proto_enumTypes[0].Descriptor()
}
func (AppStatus) Type() protoreflect.EnumType {
return &file_base_proto_enumTypes[0]
return &file_appctl_proto_base_proto_enumTypes[0]
}
func (x AppStatus) Number() protoreflect.EnumNumber {
@@ -91,7 +91,7 @@ func (x AppStatus) Number() protoreflect.EnumNumber {
// Deprecated: Use AppStatus.Descriptor instead.
func (AppStatus) EnumDescriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{0}
}
type LoggingLevel int32
@@ -139,11 +139,11 @@ func (x LoggingLevel) String() string {
}
func (LoggingLevel) Descriptor() protoreflect.EnumDescriptor {
return file_base_proto_enumTypes[1].Descriptor()
return file_appctl_proto_base_proto_enumTypes[1].Descriptor()
}
func (LoggingLevel) Type() protoreflect.EnumType {
return &file_base_proto_enumTypes[1]
return &file_appctl_proto_base_proto_enumTypes[1]
}
func (x LoggingLevel) Number() protoreflect.EnumNumber {
@@ -152,7 +152,7 @@ func (x LoggingLevel) Number() protoreflect.EnumNumber {
// Deprecated: Use LoggingLevel.Descriptor instead.
func (LoggingLevel) EnumDescriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{1}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{1}
}
type DualStack int32
@@ -194,11 +194,11 @@ func (x DualStack) String() string {
}
func (DualStack) Descriptor() protoreflect.EnumDescriptor {
return file_base_proto_enumTypes[2].Descriptor()
return file_appctl_proto_base_proto_enumTypes[2].Descriptor()
}
func (DualStack) Type() protoreflect.EnumType {
return &file_base_proto_enumTypes[2]
return &file_appctl_proto_base_proto_enumTypes[2]
}
func (x DualStack) Number() protoreflect.EnumNumber {
@@ -207,7 +207,7 @@ func (x DualStack) Number() protoreflect.EnumNumber {
// Deprecated: Use DualStack.Descriptor instead.
func (DualStack) EnumDescriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{2}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{2}
}
type TransportProtocol int32
@@ -243,11 +243,11 @@ func (x TransportProtocol) String() string {
}
func (TransportProtocol) Descriptor() protoreflect.EnumDescriptor {
return file_base_proto_enumTypes[3].Descriptor()
return file_appctl_proto_base_proto_enumTypes[3].Descriptor()
}
func (TransportProtocol) Type() protoreflect.EnumType {
return &file_base_proto_enumTypes[3]
return &file_appctl_proto_base_proto_enumTypes[3]
}
func (x TransportProtocol) Number() protoreflect.EnumNumber {
@@ -256,7 +256,7 @@ func (x TransportProtocol) Number() protoreflect.EnumNumber {
// Deprecated: Use TransportProtocol.Descriptor instead.
func (TransportProtocol) EnumDescriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{3}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{3}
}
type Empty struct {
@@ -268,7 +268,7 @@ type Empty struct {
func (x *Empty) Reset() {
*x = Empty{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[0]
mi := &file_appctl_proto_base_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -281,7 +281,7 @@ func (x *Empty) String() string {
func (*Empty) ProtoMessage() {}
func (x *Empty) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[0]
mi := &file_appctl_proto_base_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -294,7 +294,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message {
// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{0}
}
type AppStatusMsg struct {
@@ -308,7 +308,7 @@ type AppStatusMsg struct {
func (x *AppStatusMsg) Reset() {
*x = AppStatusMsg{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[1]
mi := &file_appctl_proto_base_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -321,7 +321,7 @@ func (x *AppStatusMsg) String() string {
func (*AppStatusMsg) ProtoMessage() {}
func (x *AppStatusMsg) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[1]
mi := &file_appctl_proto_base_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -334,7 +334,7 @@ func (x *AppStatusMsg) ProtoReflect() protoreflect.Message {
// Deprecated: Use AppStatusMsg.ProtoReflect.Descriptor instead.
func (*AppStatusMsg) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{1}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{1}
}
func (x *AppStatusMsg) GetStatus() AppStatus {
@@ -362,7 +362,7 @@ type ServerEndpoint struct {
func (x *ServerEndpoint) Reset() {
*x = ServerEndpoint{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[2]
mi := &file_appctl_proto_base_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -375,7 +375,7 @@ func (x *ServerEndpoint) String() string {
func (*ServerEndpoint) ProtoMessage() {}
func (x *ServerEndpoint) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[2]
mi := &file_appctl_proto_base_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -388,7 +388,7 @@ func (x *ServerEndpoint) ProtoReflect() protoreflect.Message {
// Deprecated: Use ServerEndpoint.ProtoReflect.Descriptor instead.
func (*ServerEndpoint) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{2}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{2}
}
func (x *ServerEndpoint) GetIpAddress() string {
@@ -430,7 +430,7 @@ type PortBinding struct {
func (x *PortBinding) Reset() {
*x = PortBinding{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[3]
mi := &file_appctl_proto_base_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -443,7 +443,7 @@ func (x *PortBinding) String() string {
func (*PortBinding) ProtoMessage() {}
func (x *PortBinding) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[3]
mi := &file_appctl_proto_base_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -456,7 +456,7 @@ func (x *PortBinding) ProtoReflect() protoreflect.Message {
// Deprecated: Use PortBinding.ProtoReflect.Descriptor instead.
func (*PortBinding) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{3}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{3}
}
func (x *PortBinding) GetPort() int32 {
@@ -502,7 +502,7 @@ type User struct {
func (x *User) Reset() {
*x = User{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[4]
mi := &file_appctl_proto_base_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -515,7 +515,7 @@ func (x *User) String() string {
func (*User) ProtoMessage() {}
func (x *User) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[4]
mi := &file_appctl_proto_base_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -528,7 +528,7 @@ func (x *User) ProtoReflect() protoreflect.Message {
// Deprecated: Use User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{4}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{4}
}
func (x *User) GetName() string {
@@ -574,7 +574,7 @@ type Quota struct {
func (x *Quota) Reset() {
*x = Quota{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[5]
mi := &file_appctl_proto_base_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -587,7 +587,7 @@ func (x *Quota) String() string {
func (*Quota) ProtoMessage() {}
func (x *Quota) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[5]
mi := &file_appctl_proto_base_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -600,7 +600,7 @@ func (x *Quota) ProtoReflect() protoreflect.Message {
// Deprecated: Use Quota.ProtoReflect.Descriptor instead.
func (*Quota) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{5}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{5}
}
func (x *Quota) GetDays() int32 {
@@ -631,7 +631,7 @@ type Auth struct {
func (x *Auth) Reset() {
*x = Auth{}
if protoimpl.UnsafeEnabled {
mi := &file_base_proto_msgTypes[6]
mi := &file_appctl_proto_base_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -644,7 +644,7 @@ func (x *Auth) String() string {
func (*Auth) ProtoMessage() {}
func (x *Auth) ProtoReflect() protoreflect.Message {
mi := &file_base_proto_msgTypes[6]
mi := &file_appctl_proto_base_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -657,7 +657,7 @@ func (x *Auth) ProtoReflect() protoreflect.Message {
// Deprecated: Use Auth.ProtoReflect.Descriptor instead.
func (*Auth) Descriptor() ([]byte, []int) {
return file_base_proto_rawDescGZIP(), []int{6}
return file_appctl_proto_base_proto_rawDescGZIP(), []int{6}
}
func (x *Auth) GetUser() string {
@@ -674,103 +674,103 @@ func (x *Auth) GetPassword() string {
return ""
}
var File_base_proto protoreflect.FileDescriptor
var File_appctl_proto_base_proto protoreflect.FileDescriptor
var file_base_proto_rawDesc = []byte{
0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x49, 0x0a,
0x0c, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a,
0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x69,
0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23,
0x0a, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69,
0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0c,
0x70, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a,
0x5f, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64,
0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x50, 0x6f,
0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88,
0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x54, 0x72,
0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48,
0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x21,
0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x48, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01,
0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74,
0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73,
0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x68,
0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x51,
0x75, 0x6f, 0x74, 0x61, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x42, 0x07, 0x0a, 0x05,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73,
0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5a, 0x0a, 0x05, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17,
0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04,
0x64, 0x61, 0x79, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x65, 0x67, 0x61, 0x62,
0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x65,
0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64,
0x61, 0x79, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65,
0x73, 0x22, 0x56, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x73, 0x65,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88,
0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09,
0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x4b, 0x0a, 0x09, 0x41, 0x70, 0x70,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a,
0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52,
0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50,
0x50, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x2a, 0x5b, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c,
0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x09,
0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52,
0x4e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x09, 0x0a,
0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43,
0x45, 0x10, 0x06, 0x2a, 0x5d, 0x0a, 0x09, 0x44, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b,
0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x49, 0x50,
0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x76,
0x34, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x5f, 0x49, 0x50,
0x76, 0x36, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x76,
0x34, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x76, 0x36,
0x10, 0x04, 0x2a, 0x45, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
0x57, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x4f,
0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x01,
0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x02, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d,
0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
var file_appctl_proto_base_proto_rawDesc = []byte{
0x0a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62,
0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x49, 0x0a, 0x0c, 0x41, 0x70,
0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x69, 0x70, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x69,
0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x64,
0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48,
0x01, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01,
0x12, 0x37, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x50, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x70, 0x6f, 0x72,
0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x6f, 0x6d, 0x61,
0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x42,
0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12,
0x3a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x08,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70,
0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02,
0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07,
0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e,
0x67, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50,
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52,
0x0e, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88,
0x01, 0x01, 0x12, 0x25, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x51, 0x75, 0x6f, 0x74,
0x61, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61,
0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42,
0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x22, 0x5a, 0x0a, 0x05, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x04, 0x64,
0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x79,
0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x65, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x67, 0x61, 0x62,
0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x61, 0x79, 0x73,
0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x56,
0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12,
0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01,
0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61,
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x4b, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54,
0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e,
0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e,
0x47, 0x10, 0x04, 0x2a, 0x5b, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65,
0x76, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00,
0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45,
0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03,
0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45,
0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06,
0x2a, 0x5d, 0x0a, 0x09, 0x44, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a,
0x0c, 0x55, 0x53, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x49, 0x50, 0x10, 0x00, 0x12,
0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x76, 0x34, 0x10, 0x01,
0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x5f, 0x49, 0x50, 0x76, 0x36, 0x10,
0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x76, 0x34, 0x10, 0x03,
0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x76, 0x36, 0x10, 0x04, 0x2a,
0x45, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43,
0x4f, 0x4c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x07, 0x0a,
0x03, 0x54, 0x43, 0x50, 0x10, 0x02, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72,
0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_base_proto_rawDescOnce sync.Once
file_base_proto_rawDescData = file_base_proto_rawDesc
file_appctl_proto_base_proto_rawDescOnce sync.Once
file_appctl_proto_base_proto_rawDescData = file_appctl_proto_base_proto_rawDesc
)
func file_base_proto_rawDescGZIP() []byte {
file_base_proto_rawDescOnce.Do(func() {
file_base_proto_rawDescData = protoimpl.X.CompressGZIP(file_base_proto_rawDescData)
func file_appctl_proto_base_proto_rawDescGZIP() []byte {
file_appctl_proto_base_proto_rawDescOnce.Do(func() {
file_appctl_proto_base_proto_rawDescData = protoimpl.X.CompressGZIP(file_appctl_proto_base_proto_rawDescData)
})
return file_base_proto_rawDescData
return file_appctl_proto_base_proto_rawDescData
}
var file_base_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_base_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_base_proto_goTypes = []interface{}{
var file_appctl_proto_base_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_appctl_proto_base_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_appctl_proto_base_proto_goTypes = []interface{}{
(AppStatus)(0), // 0: appctl.AppStatus
(LoggingLevel)(0), // 1: appctl.LoggingLevel
(DualStack)(0), // 2: appctl.DualStack
@@ -783,7 +783,7 @@ var file_base_proto_goTypes = []interface{}{
(*Quota)(nil), // 9: appctl.Quota
(*Auth)(nil), // 10: appctl.Auth
}
var file_base_proto_depIdxs = []int32{
var file_appctl_proto_base_proto_depIdxs = []int32{
0, // 0: appctl.AppStatusMsg.status:type_name -> appctl.AppStatus
7, // 1: appctl.ServerEndpoint.portBindings:type_name -> appctl.PortBinding
3, // 2: appctl.PortBinding.protocol:type_name -> appctl.TransportProtocol
@@ -795,13 +795,13 @@ var file_base_proto_depIdxs = []int32{
0, // [0:4] is the sub-list for field type_name
}
func init() { file_base_proto_init() }
func file_base_proto_init() {
if File_base_proto != nil {
func init() { file_appctl_proto_base_proto_init() }
func file_appctl_proto_base_proto_init() {
if File_appctl_proto_base_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_base_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Empty); i {
case 0:
return &v.state
@@ -813,7 +813,7 @@ func file_base_proto_init() {
return nil
}
}
file_base_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AppStatusMsg); i {
case 0:
return &v.state
@@ -825,7 +825,7 @@ func file_base_proto_init() {
return nil
}
}
file_base_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ServerEndpoint); i {
case 0:
return &v.state
@@ -837,7 +837,7 @@ func file_base_proto_init() {
return nil
}
}
file_base_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PortBinding); i {
case 0:
return &v.state
@@ -849,7 +849,7 @@ func file_base_proto_init() {
return nil
}
}
file_base_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User); i {
case 0:
return &v.state
@@ -861,7 +861,7 @@ func file_base_proto_init() {
return nil
}
}
file_base_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Quota); i {
case 0:
return &v.state
@@ -873,7 +873,7 @@ func file_base_proto_init() {
return nil
}
}
file_base_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_base_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Auth); i {
case 0:
return &v.state
@@ -886,29 +886,29 @@ func file_base_proto_init() {
}
}
}
file_base_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_base_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_base_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_base_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_base_proto_msgTypes[5].OneofWrappers = []interface{}{}
file_base_proto_msgTypes[6].OneofWrappers = []interface{}{}
file_appctl_proto_base_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_appctl_proto_base_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_appctl_proto_base_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_appctl_proto_base_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_appctl_proto_base_proto_msgTypes[5].OneofWrappers = []interface{}{}
file_appctl_proto_base_proto_msgTypes[6].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_base_proto_rawDesc,
RawDescriptor: file_appctl_proto_base_proto_rawDesc,
NumEnums: 4,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_base_proto_goTypes,
DependencyIndexes: file_base_proto_depIdxs,
EnumInfos: file_base_proto_enumTypes,
MessageInfos: file_base_proto_msgTypes,
GoTypes: file_appctl_proto_base_proto_goTypes,
DependencyIndexes: file_appctl_proto_base_proto_depIdxs,
EnumInfos: file_appctl_proto_base_proto_enumTypes,
MessageInfos: file_appctl_proto_base_proto_msgTypes,
}.Build()
File_base_proto = out.File
file_base_proto_rawDesc = nil
file_base_proto_goTypes = nil
file_base_proto_depIdxs = nil
File_appctl_proto_base_proto = out.File
file_appctl_proto_base_proto_rawDesc = nil
file_appctl_proto_base_proto_goTypes = nil
file_appctl_proto_base_proto_depIdxs = nil
}

View File

@@ -17,7 +17,7 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: clientcfg.proto
// source: appctl/proto/clientcfg.proto
package appctlpb
@@ -74,11 +74,11 @@ func (x MultiplexingLevel) String() string {
}
func (MultiplexingLevel) Descriptor() protoreflect.EnumDescriptor {
return file_clientcfg_proto_enumTypes[0].Descriptor()
return file_appctl_proto_clientcfg_proto_enumTypes[0].Descriptor()
}
func (MultiplexingLevel) Type() protoreflect.EnumType {
return &file_clientcfg_proto_enumTypes[0]
return &file_appctl_proto_clientcfg_proto_enumTypes[0]
}
func (x MultiplexingLevel) Number() protoreflect.EnumNumber {
@@ -87,7 +87,7 @@ func (x MultiplexingLevel) Number() protoreflect.EnumNumber {
// Deprecated: Use MultiplexingLevel.Descriptor instead.
func (MultiplexingLevel) EnumDescriptor() ([]byte, []int) {
return file_clientcfg_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_clientcfg_proto_rawDescGZIP(), []int{0}
}
type ClientConfig struct {
@@ -121,7 +121,7 @@ type ClientConfig struct {
func (x *ClientConfig) Reset() {
*x = ClientConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_clientcfg_proto_msgTypes[0]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -134,7 +134,7 @@ func (x *ClientConfig) String() string {
func (*ClientConfig) ProtoMessage() {}
func (x *ClientConfig) ProtoReflect() protoreflect.Message {
mi := &file_clientcfg_proto_msgTypes[0]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -147,7 +147,7 @@ func (x *ClientConfig) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClientConfig.ProtoReflect.Descriptor instead.
func (*ClientConfig) Descriptor() ([]byte, []int) {
return file_clientcfg_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_clientcfg_proto_rawDescGZIP(), []int{0}
}
func (x *ClientConfig) GetProfiles() []*ClientProfile {
@@ -241,7 +241,7 @@ type ClientProfile struct {
func (x *ClientProfile) Reset() {
*x = ClientProfile{}
if protoimpl.UnsafeEnabled {
mi := &file_clientcfg_proto_msgTypes[1]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -254,7 +254,7 @@ func (x *ClientProfile) String() string {
func (*ClientProfile) ProtoMessage() {}
func (x *ClientProfile) ProtoReflect() protoreflect.Message {
mi := &file_clientcfg_proto_msgTypes[1]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -267,7 +267,7 @@ func (x *ClientProfile) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClientProfile.ProtoReflect.Descriptor instead.
func (*ClientProfile) Descriptor() ([]byte, []int) {
return file_clientcfg_proto_rawDescGZIP(), []int{1}
return file_appctl_proto_clientcfg_proto_rawDescGZIP(), []int{1}
}
func (x *ClientProfile) GetProfileName() string {
@@ -317,7 +317,7 @@ type MultiplexingConfig struct {
func (x *MultiplexingConfig) Reset() {
*x = MultiplexingConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_clientcfg_proto_msgTypes[2]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -330,7 +330,7 @@ func (x *MultiplexingConfig) String() string {
func (*MultiplexingConfig) ProtoMessage() {}
func (x *MultiplexingConfig) ProtoReflect() protoreflect.Message {
mi := &file_clientcfg_proto_msgTypes[2]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -343,7 +343,7 @@ func (x *MultiplexingConfig) ProtoReflect() protoreflect.Message {
// Deprecated: Use MultiplexingConfig.ProtoReflect.Descriptor instead.
func (*MultiplexingConfig) Descriptor() ([]byte, []int) {
return file_clientcfg_proto_rawDescGZIP(), []int{2}
return file_appctl_proto_clientcfg_proto_rawDescGZIP(), []int{2}
}
func (x *MultiplexingConfig) GetLevel() MultiplexingLevel {
@@ -365,7 +365,7 @@ type ClientAdvancedSettings struct {
func (x *ClientAdvancedSettings) Reset() {
*x = ClientAdvancedSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_clientcfg_proto_msgTypes[3]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -378,7 +378,7 @@ func (x *ClientAdvancedSettings) String() string {
func (*ClientAdvancedSettings) ProtoMessage() {}
func (x *ClientAdvancedSettings) ProtoReflect() protoreflect.Message {
mi := &file_clientcfg_proto_msgTypes[3]
mi := &file_appctl_proto_clientcfg_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -391,7 +391,7 @@ func (x *ClientAdvancedSettings) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClientAdvancedSettings.ProtoReflect.Descriptor instead.
func (*ClientAdvancedSettings) Descriptor() ([]byte, []int) {
return file_clientcfg_proto_rawDescGZIP(), []int{3}
return file_appctl_proto_clientcfg_proto_rawDescGZIP(), []int{3}
}
func (x *ClientAdvancedSettings) GetNoCheckUpdate() bool {
@@ -401,112 +401,114 @@ func (x *ClientAdvancedSettings) GetNoCheckUpdate() bool {
return false
}
var File_clientcfg_proto protoreflect.FileDescriptor
var File_appctl_proto_clientcfg_proto protoreflect.FileDescriptor
var file_clientcfg_proto_rawDesc = []byte{
0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x63, 0x66, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x06, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x1a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x05, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x61, 0x63, 0x74,
0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x18,
0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x07, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74,
0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x50, 0x6f, 0x72,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x73,
0x35, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x61,
0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
0x67, 0x73, 0x48, 0x03, 0x52, 0x10, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, 0x6f, 0x67,
0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x73, 0x6f, 0x63, 0x6b,
0x73, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28,
0x08, 0x48, 0x05, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x65,
0x6e, 0x4c, 0x41, 0x4e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x50,
0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06,
0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x88,
0x01, 0x01, 0x12, 0x33, 0x0a, 0x12, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c,
0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07,
0x52, 0x12, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65,
0x6e, 0x4c, 0x41, 0x4e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x14, 0x73, 0x6f, 0x63, 0x6b, 0x73,
0x35, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41,
0x75, 0x74, 0x68, 0x52, 0x14, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65,
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63,
0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f,
0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x6f, 0x63, 0x6b,
0x73, 0x35, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e,
0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f,
0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x12, 0x0a, 0x10,
0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e,
0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f,
0x72, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79,
0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x22, 0x9d, 0x02, 0x0a, 0x0d, 0x43, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x70,
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x48, 0x00, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88,
0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x01,
0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x73, 0x65, 0x72,
0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x6d,
0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88,
0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69,
0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65,
0x78, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72,
0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x75, 0x6c,
0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x12, 0x4d, 0x75, 0x6c,
0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x34, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65,
0x78, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x65, 0x76,
0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22,
0x55, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65,
0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x6e, 0x6f, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2a, 0x89, 0x01, 0x0a, 0x11, 0x4d, 0x75, 0x6c, 0x74, 0x69,
0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x14,
0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x46,
0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50,
0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10,
0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x57,
0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x58, 0x49,
0x4e, 0x47, 0x5f, 0x4d, 0x49, 0x44, 0x44, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4d,
0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x48, 0x49, 0x47, 0x48,
0x10, 0x04, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33,
0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
var file_appctl_proto_clientcfg_proto_rawDesc = []byte{
0x0a, 0x1c, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x63, 0x66, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x1a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
0xa1, 0x05, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69,
0x6c, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f,
0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63,
0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d,
0x0a, 0x07, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48,
0x01, 0x52, 0x07, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a,
0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
0x05, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x50, 0x6f, 0x72, 0x74, 0x88,
0x01, 0x01, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x76, 0x61,
0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x03, 0x52, 0x10,
0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65,
0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48,
0x04, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88,
0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x4c, 0x69, 0x73, 0x74,
0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0f, 0x73,
0x6f, 0x63, 0x6b, 0x73, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x88, 0x01,
0x01, 0x12, 0x29, 0x0a, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f,
0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70,
0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x12,
0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c,
0x41, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x12, 0x68, 0x74, 0x74, 0x70,
0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x88, 0x01,
0x01, 0x12, 0x40, 0x0a, 0x14, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65,
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x14, 0x73,
0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72,
0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x50, 0x6f, 0x72, 0x74,
0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x73,
0x35, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x4c, 0x41, 0x4e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68,
0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x15, 0x0a, 0x13,
0x5f, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
0x4c, 0x41, 0x4e, 0x22, 0x9d, 0x02, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72,
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04,
0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x01, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72,
0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65,
0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01,
0x28, 0x05, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c,
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4d, 0x75, 0x6c, 0x74,
0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x03,
0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x88, 0x01,
0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d,
0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d,
0x74, 0x75, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78,
0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78,
0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x65, 0x76,
0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x4c, 0x65,
0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42,
0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x55, 0x0a, 0x16, 0x43, 0x6c, 0x69,
0x65, 0x6e, 0x74, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69,
0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x6e, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10,
0x0a, 0x0e, 0x5f, 0x6e, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x2a, 0x89, 0x01, 0x0a, 0x11, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e,
0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50,
0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00,
0x12, 0x14, 0x0a, 0x10, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47,
0x5f, 0x4f, 0x46, 0x46, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50,
0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13,
0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x49, 0x44,
0x44, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c,
0x45, 0x58, 0x49, 0x4e, 0x47, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x42, 0x30, 0x5a, 0x2e,
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69,
0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_clientcfg_proto_rawDescOnce sync.Once
file_clientcfg_proto_rawDescData = file_clientcfg_proto_rawDesc
file_appctl_proto_clientcfg_proto_rawDescOnce sync.Once
file_appctl_proto_clientcfg_proto_rawDescData = file_appctl_proto_clientcfg_proto_rawDesc
)
func file_clientcfg_proto_rawDescGZIP() []byte {
file_clientcfg_proto_rawDescOnce.Do(func() {
file_clientcfg_proto_rawDescData = protoimpl.X.CompressGZIP(file_clientcfg_proto_rawDescData)
func file_appctl_proto_clientcfg_proto_rawDescGZIP() []byte {
file_appctl_proto_clientcfg_proto_rawDescOnce.Do(func() {
file_appctl_proto_clientcfg_proto_rawDescData = protoimpl.X.CompressGZIP(file_appctl_proto_clientcfg_proto_rawDescData)
})
return file_clientcfg_proto_rawDescData
return file_appctl_proto_clientcfg_proto_rawDescData
}
var file_clientcfg_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_clientcfg_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_clientcfg_proto_goTypes = []interface{}{
var file_appctl_proto_clientcfg_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_appctl_proto_clientcfg_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_appctl_proto_clientcfg_proto_goTypes = []interface{}{
(MultiplexingLevel)(0), // 0: appctl.MultiplexingLevel
(*ClientConfig)(nil), // 1: appctl.ClientConfig
(*ClientProfile)(nil), // 2: appctl.ClientProfile
@@ -517,7 +519,7 @@ var file_clientcfg_proto_goTypes = []interface{}{
(*User)(nil), // 7: appctl.User
(*ServerEndpoint)(nil), // 8: appctl.ServerEndpoint
}
var file_clientcfg_proto_depIdxs = []int32{
var file_appctl_proto_clientcfg_proto_depIdxs = []int32{
2, // 0: appctl.ClientConfig.profiles:type_name -> appctl.ClientProfile
4, // 1: appctl.ClientConfig.advancedSettings:type_name -> appctl.ClientAdvancedSettings
5, // 2: appctl.ClientConfig.loggingLevel:type_name -> appctl.LoggingLevel
@@ -533,14 +535,14 @@ var file_clientcfg_proto_depIdxs = []int32{
0, // [0:8] is the sub-list for field type_name
}
func init() { file_clientcfg_proto_init() }
func file_clientcfg_proto_init() {
if File_clientcfg_proto != nil {
func init() { file_appctl_proto_clientcfg_proto_init() }
func file_appctl_proto_clientcfg_proto_init() {
if File_appctl_proto_clientcfg_proto != nil {
return
}
file_base_proto_init()
file_appctl_proto_base_proto_init()
if !protoimpl.UnsafeEnabled {
file_clientcfg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_clientcfg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientConfig); i {
case 0:
return &v.state
@@ -552,7 +554,7 @@ func file_clientcfg_proto_init() {
return nil
}
}
file_clientcfg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_clientcfg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientProfile); i {
case 0:
return &v.state
@@ -564,7 +566,7 @@ func file_clientcfg_proto_init() {
return nil
}
}
file_clientcfg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_clientcfg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MultiplexingConfig); i {
case 0:
return &v.state
@@ -576,7 +578,7 @@ func file_clientcfg_proto_init() {
return nil
}
}
file_clientcfg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_clientcfg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientAdvancedSettings); i {
case 0:
return &v.state
@@ -589,27 +591,27 @@ func file_clientcfg_proto_init() {
}
}
}
file_clientcfg_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_clientcfg_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_clientcfg_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_clientcfg_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_appctl_proto_clientcfg_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_appctl_proto_clientcfg_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_appctl_proto_clientcfg_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_appctl_proto_clientcfg_proto_msgTypes[3].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_clientcfg_proto_rawDesc,
RawDescriptor: file_appctl_proto_clientcfg_proto_rawDesc,
NumEnums: 1,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_clientcfg_proto_goTypes,
DependencyIndexes: file_clientcfg_proto_depIdxs,
EnumInfos: file_clientcfg_proto_enumTypes,
MessageInfos: file_clientcfg_proto_msgTypes,
GoTypes: file_appctl_proto_clientcfg_proto_goTypes,
DependencyIndexes: file_appctl_proto_clientcfg_proto_depIdxs,
EnumInfos: file_appctl_proto_clientcfg_proto_enumTypes,
MessageInfos: file_appctl_proto_clientcfg_proto_msgTypes,
}.Build()
File_clientcfg_proto = out.File
file_clientcfg_proto_rawDesc = nil
file_clientcfg_proto_goTypes = nil
file_clientcfg_proto_depIdxs = nil
File_appctl_proto_clientcfg_proto = out.File
file_appctl_proto_clientcfg_proto_rawDesc = nil
file_appctl_proto_clientcfg_proto_goTypes = nil
file_appctl_proto_clientcfg_proto_depIdxs = nil
}

View File

@@ -17,11 +17,12 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: misc.proto
// source: appctl/proto/misc.proto
package appctlpb
import (
metricspb "github.com/enfein/mieru/v3/pkg/metrics/metricspb"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
@@ -48,7 +49,7 @@ type Metrics struct {
func (x *Metrics) Reset() {
*x = Metrics{}
if protoimpl.UnsafeEnabled {
mi := &file_misc_proto_msgTypes[0]
mi := &file_appctl_proto_misc_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -61,7 +62,7 @@ func (x *Metrics) String() string {
func (*Metrics) ProtoMessage() {}
func (x *Metrics) ProtoReflect() protoreflect.Message {
mi := &file_misc_proto_msgTypes[0]
mi := &file_appctl_proto_misc_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -74,7 +75,7 @@ func (x *Metrics) ProtoReflect() protoreflect.Message {
// Deprecated: Use Metrics.ProtoReflect.Descriptor instead.
func (*Metrics) Descriptor() ([]byte, []int) {
return file_misc_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{0}
}
func (x *Metrics) GetJson() string {
@@ -84,6 +85,110 @@ func (x *Metrics) GetJson() string {
return ""
}
type UserWithMetrics struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// User information.
User *User `protobuf:"bytes,1,opt,name=user,proto3,oneof" json:"user,omitempty"`
// User runtime information.
Metrics []*metricspb.Metric `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
}
func (x *UserWithMetrics) Reset() {
*x = UserWithMetrics{}
if protoimpl.UnsafeEnabled {
mi := &file_appctl_proto_misc_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserWithMetrics) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserWithMetrics) ProtoMessage() {}
func (x *UserWithMetrics) ProtoReflect() protoreflect.Message {
mi := &file_appctl_proto_misc_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserWithMetrics.ProtoReflect.Descriptor instead.
func (*UserWithMetrics) Descriptor() ([]byte, []int) {
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{1}
}
func (x *UserWithMetrics) GetUser() *User {
if x != nil {
return x.User
}
return nil
}
func (x *UserWithMetrics) GetMetrics() []*metricspb.Metric {
if x != nil {
return x.Metrics
}
return nil
}
type UserWithMetricsList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Items []*UserWithMetrics `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
}
func (x *UserWithMetricsList) Reset() {
*x = UserWithMetricsList{}
if protoimpl.UnsafeEnabled {
mi := &file_appctl_proto_misc_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserWithMetricsList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserWithMetricsList) ProtoMessage() {}
func (x *UserWithMetricsList) ProtoReflect() protoreflect.Message {
mi := &file_appctl_proto_misc_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserWithMetricsList.ProtoReflect.Descriptor instead.
func (*UserWithMetricsList) Descriptor() ([]byte, []int) {
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{2}
}
func (x *UserWithMetricsList) GetItems() []*UserWithMetrics {
if x != nil {
return x.Items
}
return nil
}
type ProfileSavePath struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -96,7 +201,7 @@ type ProfileSavePath struct {
func (x *ProfileSavePath) Reset() {
*x = ProfileSavePath{}
if protoimpl.UnsafeEnabled {
mi := &file_misc_proto_msgTypes[1]
mi := &file_appctl_proto_misc_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -109,7 +214,7 @@ func (x *ProfileSavePath) String() string {
func (*ProfileSavePath) ProtoMessage() {}
func (x *ProfileSavePath) ProtoReflect() protoreflect.Message {
mi := &file_misc_proto_msgTypes[1]
mi := &file_appctl_proto_misc_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -122,7 +227,7 @@ func (x *ProfileSavePath) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProfileSavePath.ProtoReflect.Descriptor instead.
func (*ProfileSavePath) Descriptor() ([]byte, []int) {
return file_misc_proto_rawDescGZIP(), []int{1}
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{3}
}
func (x *ProfileSavePath) GetFilePath() string {
@@ -155,7 +260,7 @@ type SessionInfo struct {
func (x *SessionInfo) Reset() {
*x = SessionInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_misc_proto_msgTypes[2]
mi := &file_appctl_proto_misc_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -168,7 +273,7 @@ func (x *SessionInfo) String() string {
func (*SessionInfo) ProtoMessage() {}
func (x *SessionInfo) ProtoReflect() protoreflect.Message {
mi := &file_misc_proto_msgTypes[2]
mi := &file_appctl_proto_misc_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -181,7 +286,7 @@ func (x *SessionInfo) ProtoReflect() protoreflect.Message {
// Deprecated: Use SessionInfo.ProtoReflect.Descriptor instead.
func (*SessionInfo) Descriptor() ([]byte, []int) {
return file_misc_proto_rawDescGZIP(), []int{2}
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{4}
}
func (x *SessionInfo) GetId() string {
@@ -286,7 +391,7 @@ type SessionInfoList struct {
func (x *SessionInfoList) Reset() {
*x = SessionInfoList{}
if protoimpl.UnsafeEnabled {
mi := &file_misc_proto_msgTypes[3]
mi := &file_appctl_proto_misc_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -299,7 +404,7 @@ func (x *SessionInfoList) String() string {
func (*SessionInfoList) ProtoMessage() {}
func (x *SessionInfoList) ProtoReflect() protoreflect.Message {
mi := &file_misc_proto_msgTypes[3]
mi := &file_appctl_proto_misc_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -312,7 +417,7 @@ func (x *SessionInfoList) ProtoReflect() protoreflect.Message {
// Deprecated: Use SessionInfoList.ProtoReflect.Descriptor instead.
func (*SessionInfoList) Descriptor() ([]byte, []int) {
return file_misc_proto_rawDescGZIP(), []int{3}
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{5}
}
func (x *SessionInfoList) GetItems() []*SessionInfo {
@@ -334,7 +439,7 @@ type ThreadDump struct {
func (x *ThreadDump) Reset() {
*x = ThreadDump{}
if protoimpl.UnsafeEnabled {
mi := &file_misc_proto_msgTypes[4]
mi := &file_appctl_proto_misc_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -347,7 +452,7 @@ func (x *ThreadDump) String() string {
func (*ThreadDump) ProtoMessage() {}
func (x *ThreadDump) ProtoReflect() protoreflect.Message {
mi := &file_misc_proto_msgTypes[4]
mi := &file_appctl_proto_misc_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -360,7 +465,7 @@ func (x *ThreadDump) ProtoReflect() protoreflect.Message {
// Deprecated: Use ThreadDump.ProtoReflect.Descriptor instead.
func (*ThreadDump) Descriptor() ([]byte, []int) {
return file_misc_proto_rawDescGZIP(), []int{4}
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{6}
}
func (x *ThreadDump) GetThreadDump() string {
@@ -385,7 +490,7 @@ type MemoryStatistics struct {
func (x *MemoryStatistics) Reset() {
*x = MemoryStatistics{}
if protoimpl.UnsafeEnabled {
mi := &file_misc_proto_msgTypes[5]
mi := &file_appctl_proto_misc_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -398,7 +503,7 @@ func (x *MemoryStatistics) String() string {
func (*MemoryStatistics) ProtoMessage() {}
func (x *MemoryStatistics) ProtoReflect() protoreflect.Message {
mi := &file_misc_proto_msgTypes[5]
mi := &file_appctl_proto_misc_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -411,7 +516,7 @@ func (x *MemoryStatistics) ProtoReflect() protoreflect.Message {
// Deprecated: Use MemoryStatistics.ProtoReflect.Descriptor instead.
func (*MemoryStatistics) Descriptor() ([]byte, []int) {
return file_misc_proto_rawDescGZIP(), []int{5}
return file_appctl_proto_misc_proto_rawDescGZIP(), []int{7}
}
func (x *MemoryStatistics) GetHeapBytes() uint64 {
@@ -449,134 +554,159 @@ func (x *MemoryStatistics) GetStackBytes() uint64 {
return 0
}
var File_misc_proto protoreflect.FileDescriptor
var File_appctl_proto_misc_proto protoreflect.FileDescriptor
var file_misc_proto_rawDesc = []byte{
0x0a, 0x0a, 0x6d, 0x69, 0x73, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e,
var file_appctl_proto_misc_proto_rawDesc = []byte{
0x0a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d,
0x69, 0x73, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x1a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2b, 0x0a, 0x07, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
0x12, 0x17, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6a, 0x73,
0x6f, 0x6e, 0x22, 0x3f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76,
0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74,
0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50,
0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x50,
0x61, 0x74, 0x68, 0x22, 0x9b, 0x05, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48,
0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a,
0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x48, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01,
0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x48, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05,
0x72, 0x65, 0x63, 0x76, 0x51, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x05, 0x72,
0x65, 0x63, 0x76, 0x51, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x76, 0x42,
0x75, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x07, 0x72, 0x65, 0x63, 0x76,
0x42, 0x75, 0x66, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x65, 0x6e, 0x64, 0x51, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x05, 0x73, 0x65, 0x6e, 0x64, 0x51, 0x88, 0x01,
0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x66, 0x18, 0x09, 0x20, 0x01,
0x28, 0x0d, 0x48, 0x08, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x66, 0x88, 0x01, 0x01,
0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76, 0x54, 0x69, 0x6d, 0x65,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65,
0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x55, 0x73, 0x65,
0x72, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x07,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72,
0x22, 0x44, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72,
0x69, 0x63, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x55, 0x73, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x69, 0x6c,
0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66,
0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66,
0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x9b, 0x05, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01,
0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a,
0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x48, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01,
0x12, 0x23, 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64,
0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01,
0x12, 0x19, 0x0a, 0x05, 0x72, 0x65, 0x63, 0x76, 0x51, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48,
0x05, 0x52, 0x05, 0x72, 0x65, 0x63, 0x76, 0x51, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72,
0x65, 0x63, 0x76, 0x42, 0x75, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x07,
0x72, 0x65, 0x63, 0x76, 0x42, 0x75, 0x66, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x65,
0x6e, 0x64, 0x51, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x05, 0x73, 0x65, 0x6e,
0x64, 0x51, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x66,
0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75,
0x66, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65,
0x63, 0x76, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6c, 0x61, 0x73,
0x74, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0a,
0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x88, 0x01, 0x01,
0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x48, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76, 0x54, 0x69,
0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63,
0x76, 0x53, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0a, 0x52, 0x0b, 0x6c, 0x61,
0x73, 0x74, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c,
0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0b,
0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01,
0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65,
0x6e, 0x64, 0x53, 0x65, 0x71, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42,
0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a,
0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72,
0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74,
0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x51, 0x42, 0x0a, 0x0a,
0x08, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x42, 0x75, 0x66, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x65,
0x6e, 0x64, 0x51, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x66, 0x42,
0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76, 0x54, 0x69, 0x6d, 0x65,
0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71,
0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65,
0x71, 0x22, 0x3c, 0x0a, 0x0f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22,
0x40, 0x0a, 0x0a, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x23, 0x0a,
0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x88,
0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d,
0x70, 0x22, 0xb1, 0x02, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74,
0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x70, 0x42, 0x79,
0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x68, 0x65, 0x61,
0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x68, 0x65, 0x61,
0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01,
0x52, 0x0b, 0x68, 0x65, 0x61, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x88, 0x01, 0x01,
0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61,
0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x74, 0x61, 0x72,
0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01,
0x28, 0x04, 0x48, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70,
0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0a,
0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a,
0x0a, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f,
0x68, 0x65, 0x61, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f,
0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x12, 0x0a, 0x10,
0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73,
0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4a,
0x04, 0x08, 0x01, 0x10, 0x02, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75,
0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69,
0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e,
0x64, 0x53, 0x65, 0x71, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x0b, 0x6c, 0x61,
0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03,
0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x42, 0x0d,
0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x42, 0x08, 0x0a,
0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x65, 0x63, 0x76,
0x51, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x42, 0x75, 0x66, 0x42, 0x08, 0x0a,
0x06, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x51, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x6e, 0x64,
0x42, 0x75, 0x66, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x76,
0x54, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63,
0x76, 0x53, 0x65, 0x71, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e,
0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65,
0x6e, 0x64, 0x53, 0x65, 0x71, 0x22, 0x3c, 0x0a, 0x0f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74,
0x65, 0x6d, 0x73, 0x22, 0x40, 0x0a, 0x0a, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d,
0x70, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x75, 0x6d, 0x70, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44,
0x75, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61,
0x64, 0x44, 0x75, 0x6d, 0x70, 0x22, 0xb1, 0x02, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x68, 0x65,
0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52,
0x09, 0x68, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a,
0x0b, 0x68, 0x65, 0x61, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x70, 0x42,
0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0c, 0x6d, 0x61,
0x78, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a,
0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73,
0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a,
0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04,
0x48, 0x04, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01,
0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42,
0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42,
0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73,
0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x42,
0x79, 0x74, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79,
0x74, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d,
0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
file_misc_proto_rawDescOnce sync.Once
file_misc_proto_rawDescData = file_misc_proto_rawDesc
file_appctl_proto_misc_proto_rawDescOnce sync.Once
file_appctl_proto_misc_proto_rawDescData = file_appctl_proto_misc_proto_rawDesc
)
func file_misc_proto_rawDescGZIP() []byte {
file_misc_proto_rawDescOnce.Do(func() {
file_misc_proto_rawDescData = protoimpl.X.CompressGZIP(file_misc_proto_rawDescData)
func file_appctl_proto_misc_proto_rawDescGZIP() []byte {
file_appctl_proto_misc_proto_rawDescOnce.Do(func() {
file_appctl_proto_misc_proto_rawDescData = protoimpl.X.CompressGZIP(file_appctl_proto_misc_proto_rawDescData)
})
return file_misc_proto_rawDescData
return file_appctl_proto_misc_proto_rawDescData
}
var file_misc_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_misc_proto_goTypes = []interface{}{
var file_appctl_proto_misc_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_appctl_proto_misc_proto_goTypes = []interface{}{
(*Metrics)(nil), // 0: appctl.Metrics
(*ProfileSavePath)(nil), // 1: appctl.ProfileSavePath
(*SessionInfo)(nil), // 2: appctl.SessionInfo
(*SessionInfoList)(nil), // 3: appctl.SessionInfoList
(*ThreadDump)(nil), // 4: appctl.ThreadDump
(*MemoryStatistics)(nil), // 5: appctl.MemoryStatistics
(*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp
(*UserWithMetrics)(nil), // 1: appctl.UserWithMetrics
(*UserWithMetricsList)(nil), // 2: appctl.UserWithMetricsList
(*ProfileSavePath)(nil), // 3: appctl.ProfileSavePath
(*SessionInfo)(nil), // 4: appctl.SessionInfo
(*SessionInfoList)(nil), // 5: appctl.SessionInfoList
(*ThreadDump)(nil), // 6: appctl.ThreadDump
(*MemoryStatistics)(nil), // 7: appctl.MemoryStatistics
(*User)(nil), // 8: appctl.User
(*metricspb.Metric)(nil), // 9: metrics.Metric
(*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp
}
var file_misc_proto_depIdxs = []int32{
6, // 0: appctl.SessionInfo.lastRecvTime:type_name -> google.protobuf.Timestamp
6, // 1: appctl.SessionInfo.lastSendTime:type_name -> google.protobuf.Timestamp
2, // 2: appctl.SessionInfoList.items:type_name -> appctl.SessionInfo
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
var file_appctl_proto_misc_proto_depIdxs = []int32{
8, // 0: appctl.UserWithMetrics.user:type_name -> appctl.User
9, // 1: appctl.UserWithMetrics.metrics:type_name -> metrics.Metric
1, // 2: appctl.UserWithMetricsList.items:type_name -> appctl.UserWithMetrics
10, // 3: appctl.SessionInfo.lastRecvTime:type_name -> google.protobuf.Timestamp
10, // 4: appctl.SessionInfo.lastSendTime:type_name -> google.protobuf.Timestamp
4, // 5: appctl.SessionInfoList.items:type_name -> appctl.SessionInfo
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
}
func init() { file_misc_proto_init() }
func file_misc_proto_init() {
if File_misc_proto != nil {
func init() { file_appctl_proto_misc_proto_init() }
func file_appctl_proto_misc_proto_init() {
if File_appctl_proto_misc_proto != nil {
return
}
file_appctl_proto_base_proto_init()
if !protoimpl.UnsafeEnabled {
file_misc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_misc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Metrics); i {
case 0:
return &v.state
@@ -588,7 +718,31 @@ func file_misc_proto_init() {
return nil
}
}
file_misc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_misc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserWithMetrics); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_appctl_proto_misc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserWithMetricsList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_appctl_proto_misc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ProfileSavePath); i {
case 0:
return &v.state
@@ -600,7 +754,7 @@ func file_misc_proto_init() {
return nil
}
}
file_misc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_misc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SessionInfo); i {
case 0:
return &v.state
@@ -612,7 +766,7 @@ func file_misc_proto_init() {
return nil
}
}
file_misc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_misc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SessionInfoList); i {
case 0:
return &v.state
@@ -624,7 +778,7 @@ func file_misc_proto_init() {
return nil
}
}
file_misc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_misc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ThreadDump); i {
case 0:
return &v.state
@@ -636,7 +790,7 @@ func file_misc_proto_init() {
return nil
}
}
file_misc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_misc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemoryStatistics); i {
case 0:
return &v.state
@@ -649,27 +803,28 @@ func file_misc_proto_init() {
}
}
}
file_misc_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_misc_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_misc_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_misc_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_misc_proto_msgTypes[5].OneofWrappers = []interface{}{}
file_appctl_proto_misc_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_appctl_proto_misc_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_appctl_proto_misc_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_appctl_proto_misc_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_appctl_proto_misc_proto_msgTypes[6].OneofWrappers = []interface{}{}
file_appctl_proto_misc_proto_msgTypes[7].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_misc_proto_rawDesc,
RawDescriptor: file_appctl_proto_misc_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumMessages: 8,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_misc_proto_goTypes,
DependencyIndexes: file_misc_proto_depIdxs,
MessageInfos: file_misc_proto_msgTypes,
GoTypes: file_appctl_proto_misc_proto_goTypes,
DependencyIndexes: file_appctl_proto_misc_proto_depIdxs,
MessageInfos: file_appctl_proto_misc_proto_msgTypes,
}.Build()
File_misc_proto = out.File
file_misc_proto_rawDesc = nil
file_misc_proto_goTypes = nil
file_misc_proto_depIdxs = nil
File_appctl_proto_misc_proto = out.File
file_appctl_proto_misc_proto_rawDesc = nil
file_appctl_proto_misc_proto_goTypes = nil
file_appctl_proto_misc_proto_depIdxs = nil
}

View File

@@ -17,7 +17,7 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: servercfg.proto
// source: appctl/proto/servercfg.proto
package appctlpb
@@ -65,11 +65,11 @@ func (x ProxyProtocol) String() string {
}
func (ProxyProtocol) Descriptor() protoreflect.EnumDescriptor {
return file_servercfg_proto_enumTypes[0].Descriptor()
return file_appctl_proto_servercfg_proto_enumTypes[0].Descriptor()
}
func (ProxyProtocol) Type() protoreflect.EnumType {
return &file_servercfg_proto_enumTypes[0]
return &file_appctl_proto_servercfg_proto_enumTypes[0]
}
func (x ProxyProtocol) Number() protoreflect.EnumNumber {
@@ -78,7 +78,7 @@ func (x ProxyProtocol) Number() protoreflect.EnumNumber {
// Deprecated: Use ProxyProtocol.Descriptor instead.
func (ProxyProtocol) EnumDescriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{0}
}
type EgressAction int32
@@ -117,11 +117,11 @@ func (x EgressAction) String() string {
}
func (EgressAction) Descriptor() protoreflect.EnumDescriptor {
return file_servercfg_proto_enumTypes[1].Descriptor()
return file_appctl_proto_servercfg_proto_enumTypes[1].Descriptor()
}
func (EgressAction) Type() protoreflect.EnumType {
return &file_servercfg_proto_enumTypes[1]
return &file_appctl_proto_servercfg_proto_enumTypes[1]
}
func (x EgressAction) Number() protoreflect.EnumNumber {
@@ -130,7 +130,7 @@ func (x EgressAction) Number() protoreflect.EnumNumber {
// Deprecated: Use EgressAction.Descriptor instead.
func (EgressAction) EnumDescriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{1}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{1}
}
type ServerConfig struct {
@@ -159,7 +159,7 @@ type ServerConfig struct {
func (x *ServerConfig) Reset() {
*x = ServerConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_servercfg_proto_msgTypes[0]
mi := &file_appctl_proto_servercfg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -172,7 +172,7 @@ func (x *ServerConfig) String() string {
func (*ServerConfig) ProtoMessage() {}
func (x *ServerConfig) ProtoReflect() protoreflect.Message {
mi := &file_servercfg_proto_msgTypes[0]
mi := &file_appctl_proto_servercfg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -185,7 +185,7 @@ func (x *ServerConfig) ProtoReflect() protoreflect.Message {
// Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead.
func (*ServerConfig) Descriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{0}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{0}
}
func (x *ServerConfig) GetPortBindings() []*PortBinding {
@@ -250,7 +250,7 @@ type ServerAdvancedSettings struct {
func (x *ServerAdvancedSettings) Reset() {
*x = ServerAdvancedSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_servercfg_proto_msgTypes[1]
mi := &file_appctl_proto_servercfg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -263,7 +263,7 @@ func (x *ServerAdvancedSettings) String() string {
func (*ServerAdvancedSettings) ProtoMessage() {}
func (x *ServerAdvancedSettings) ProtoReflect() protoreflect.Message {
mi := &file_servercfg_proto_msgTypes[1]
mi := &file_appctl_proto_servercfg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -276,7 +276,7 @@ func (x *ServerAdvancedSettings) ProtoReflect() protoreflect.Message {
// Deprecated: Use ServerAdvancedSettings.ProtoReflect.Descriptor instead.
func (*ServerAdvancedSettings) Descriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{1}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{1}
}
func (x *ServerAdvancedSettings) GetAllowLocalDestination() bool {
@@ -301,7 +301,7 @@ type Egress struct {
func (x *Egress) Reset() {
*x = Egress{}
if protoimpl.UnsafeEnabled {
mi := &file_servercfg_proto_msgTypes[2]
mi := &file_appctl_proto_servercfg_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -314,7 +314,7 @@ func (x *Egress) String() string {
func (*Egress) ProtoMessage() {}
func (x *Egress) ProtoReflect() protoreflect.Message {
mi := &file_servercfg_proto_msgTypes[2]
mi := &file_appctl_proto_servercfg_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -327,7 +327,7 @@ func (x *Egress) ProtoReflect() protoreflect.Message {
// Deprecated: Use Egress.ProtoReflect.Descriptor instead.
func (*Egress) Descriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{2}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{2}
}
func (x *Egress) GetProxies() []*EgressProxy {
@@ -363,7 +363,7 @@ type EgressProxy struct {
func (x *EgressProxy) Reset() {
*x = EgressProxy{}
if protoimpl.UnsafeEnabled {
mi := &file_servercfg_proto_msgTypes[3]
mi := &file_appctl_proto_servercfg_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -376,7 +376,7 @@ func (x *EgressProxy) String() string {
func (*EgressProxy) ProtoMessage() {}
func (x *EgressProxy) ProtoReflect() protoreflect.Message {
mi := &file_servercfg_proto_msgTypes[3]
mi := &file_appctl_proto_servercfg_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -389,7 +389,7 @@ func (x *EgressProxy) ProtoReflect() protoreflect.Message {
// Deprecated: Use EgressProxy.ProtoReflect.Descriptor instead.
func (*EgressProxy) Descriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{3}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{3}
}
func (x *EgressProxy) GetName() string {
@@ -448,7 +448,7 @@ type EgressRule struct {
func (x *EgressRule) Reset() {
*x = EgressRule{}
if protoimpl.UnsafeEnabled {
mi := &file_servercfg_proto_msgTypes[4]
mi := &file_appctl_proto_servercfg_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -461,7 +461,7 @@ func (x *EgressRule) String() string {
func (*EgressRule) ProtoMessage() {}
func (x *EgressRule) ProtoReflect() protoreflect.Message {
mi := &file_servercfg_proto_msgTypes[4]
mi := &file_appctl_proto_servercfg_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -474,7 +474,7 @@ func (x *EgressRule) ProtoReflect() protoreflect.Message {
// Deprecated: Use EgressRule.ProtoReflect.Descriptor instead.
func (*EgressRule) Descriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{4}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{4}
}
func (x *EgressRule) GetIpRanges() []string {
@@ -517,7 +517,7 @@ type DNS struct {
func (x *DNS) Reset() {
*x = DNS{}
if protoimpl.UnsafeEnabled {
mi := &file_servercfg_proto_msgTypes[5]
mi := &file_appctl_proto_servercfg_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -530,7 +530,7 @@ func (x *DNS) String() string {
func (*DNS) ProtoMessage() {}
func (x *DNS) ProtoReflect() protoreflect.Message {
mi := &file_servercfg_proto_msgTypes[5]
mi := &file_appctl_proto_servercfg_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -543,7 +543,7 @@ func (x *DNS) ProtoReflect() protoreflect.Message {
// Deprecated: Use DNS.ProtoReflect.Descriptor instead.
func (*DNS) Descriptor() ([]byte, []int) {
return file_servercfg_proto_rawDescGZIP(), []int{5}
return file_appctl_proto_servercfg_proto_rawDescGZIP(), []int{5}
}
func (x *DNS) GetDualStack() DualStack {
@@ -553,114 +553,115 @@ func (x *DNS) GetDualStack() DualStack {
return DualStack_USE_FIRST_IP
}
var File_servercfg_proto protoreflect.FileDescriptor
var File_appctl_proto_servercfg_proto protoreflect.FileDescriptor
var file_servercfg_proto_rawDesc = []byte{
0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x66, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x06, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x1a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x03, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x69,
0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
0x67, 0x52, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12,
0x22, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73,
0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53,
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x76,
0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52,
0x10, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c,
0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x48, 0x01, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
0x48, 0x02, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x67,
0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70,
0x63, 0x74, 0x6c, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x03, 0x52, 0x06, 0x65, 0x67,
0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x44, 0x4e,
0x53, 0x48, 0x04, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f,
0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x67,
0x72, 0x65, 0x73, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x6e, 0x73, 0x22, 0x6d, 0x0a, 0x16,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c,
0x6f, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x6f,
0x63, 0x61, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, 0x0a, 0x06, 0x45,
0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73,
var file_appctl_proto_servercfg_proto_rawDesc = []byte{
0x0a, 0x1c, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x66, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x1a, 0x17, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
0xa4, 0x03, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x12, 0x37, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x07, 0x70, 0x72, 0x6f,
0x78, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x67, 0x72,
0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x98,
0x02, 0x0a, 0x0b, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x17,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12,
0x17, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52,
0x04, 0x68, 0x6f, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01,
0x01, 0x12, 0x45, 0x0a, 0x14, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65,
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x48, 0x04, 0x52,
0x14, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x07,
0x0a, 0x05, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74,
0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65,
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x01, 0x0a, 0x0a, 0x45, 0x67,
0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x70, 0x52, 0x61,
0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x52, 0x61,
0x6e, 0x67, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61,
0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69,
0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e,
0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x6f,
0x78, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09,
0x70, 0x72, 0x6f, 0x78, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07,
0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x72, 0x6f, 0x78,
0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x12, 0x34, 0x0a, 0x09,
0x64, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x11, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x44, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61,
0x63, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x64, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x88,
0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b,
0x2a, 0x46, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
0x6c, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x52, 0x4f,
0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x19, 0x0a,
0x15, 0x53, 0x4f, 0x43, 0x4b, 0x53, 0x35, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52,
0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x01, 0x2a, 0x31, 0x0a, 0x0c, 0x45, 0x67, 0x72, 0x65,
0x73, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x58,
0x59, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12,
0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x42, 0x30, 0x5a, 0x2e, 0x67,
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e,
0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70,
0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
0x50, 0x6f, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x70, 0x6f, 0x72,
0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x05, 0x75, 0x73, 0x65,
0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74,
0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a,
0x10, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c,
0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53,
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x10, 0x61, 0x64, 0x76, 0x61, 0x6e,
0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d,
0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x4c, 0x6f,
0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x6f,
0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a,
0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x74,
0x75, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x67,
0x72, 0x65, 0x73, 0x73, 0x48, 0x03, 0x52, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01,
0x01, 0x12, 0x22, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x44, 0x4e, 0x53, 0x48, 0x04, 0x52, 0x03, 0x64,
0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63,
0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c,
0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x5f,
0x6d, 0x74, 0x75, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x06,
0x0a, 0x04, 0x5f, 0x64, 0x6e, 0x73, 0x22, 0x6d, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
0x12, 0x39, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x65,
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48,
0x00, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x73,
0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, 0x0a, 0x06, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12,
0x2d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73,
0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x28,
0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75, 0x6c,
0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x67, 0x72,
0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01,
0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x50, 0x72, 0x6f,
0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x6f, 0x73,
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x88,
0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x48, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x14, 0x73,
0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x48, 0x04, 0x52, 0x14, 0x73, 0x6f, 0x63, 0x6b, 0x73,
0x35, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88,
0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x6f, 0x73,
0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73,
0x6f, 0x63, 0x6b, 0x73, 0x35, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x01, 0x0a, 0x0a, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x75,
0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x20,
0x0a, 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73,
0x12, 0x31, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73,
0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x4e, 0x61, 0x6d, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x4e,
0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22,
0x49, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x12, 0x34, 0x0a, 0x09, 0x64, 0x75, 0x61, 0x6c, 0x53, 0x74,
0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x63,
0x74, 0x6c, 0x2e, 0x44, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x09,
0x64, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a,
0x5f, 0x64, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2a, 0x46, 0x0a, 0x0d, 0x50, 0x72,
0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x16, 0x55,
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f,
0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x4f, 0x43, 0x4b, 0x53,
0x35, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c,
0x10, 0x01, 0x2a, 0x31, 0x0a, 0x0c, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x00, 0x12, 0x0a, 0x0a,
0x06, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a,
0x45, 0x43, 0x54, 0x10, 0x02, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75,
0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x70, 0x63, 0x74, 0x6c, 0x2f, 0x61,
0x70, 0x70, 0x63, 0x74, 0x6c, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_servercfg_proto_rawDescOnce sync.Once
file_servercfg_proto_rawDescData = file_servercfg_proto_rawDesc
file_appctl_proto_servercfg_proto_rawDescOnce sync.Once
file_appctl_proto_servercfg_proto_rawDescData = file_appctl_proto_servercfg_proto_rawDesc
)
func file_servercfg_proto_rawDescGZIP() []byte {
file_servercfg_proto_rawDescOnce.Do(func() {
file_servercfg_proto_rawDescData = protoimpl.X.CompressGZIP(file_servercfg_proto_rawDescData)
func file_appctl_proto_servercfg_proto_rawDescGZIP() []byte {
file_appctl_proto_servercfg_proto_rawDescOnce.Do(func() {
file_appctl_proto_servercfg_proto_rawDescData = protoimpl.X.CompressGZIP(file_appctl_proto_servercfg_proto_rawDescData)
})
return file_servercfg_proto_rawDescData
return file_appctl_proto_servercfg_proto_rawDescData
}
var file_servercfg_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_servercfg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_servercfg_proto_goTypes = []interface{}{
var file_appctl_proto_servercfg_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_appctl_proto_servercfg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_appctl_proto_servercfg_proto_goTypes = []interface{}{
(ProxyProtocol)(0), // 0: appctl.ProxyProtocol
(EgressAction)(0), // 1: appctl.EgressAction
(*ServerConfig)(nil), // 2: appctl.ServerConfig
@@ -675,7 +676,7 @@ var file_servercfg_proto_goTypes = []interface{}{
(*Auth)(nil), // 11: appctl.Auth
(DualStack)(0), // 12: appctl.DualStack
}
var file_servercfg_proto_depIdxs = []int32{
var file_appctl_proto_servercfg_proto_depIdxs = []int32{
8, // 0: appctl.ServerConfig.portBindings:type_name -> appctl.PortBinding
9, // 1: appctl.ServerConfig.users:type_name -> appctl.User
3, // 2: appctl.ServerConfig.advancedSettings:type_name -> appctl.ServerAdvancedSettings
@@ -695,14 +696,14 @@ var file_servercfg_proto_depIdxs = []int32{
0, // [0:12] is the sub-list for field type_name
}
func init() { file_servercfg_proto_init() }
func file_servercfg_proto_init() {
if File_servercfg_proto != nil {
func init() { file_appctl_proto_servercfg_proto_init() }
func file_appctl_proto_servercfg_proto_init() {
if File_appctl_proto_servercfg_proto != nil {
return
}
file_base_proto_init()
file_appctl_proto_base_proto_init()
if !protoimpl.UnsafeEnabled {
file_servercfg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_servercfg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ServerConfig); i {
case 0:
return &v.state
@@ -714,7 +715,7 @@ func file_servercfg_proto_init() {
return nil
}
}
file_servercfg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_servercfg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ServerAdvancedSettings); i {
case 0:
return &v.state
@@ -726,7 +727,7 @@ func file_servercfg_proto_init() {
return nil
}
}
file_servercfg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_servercfg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Egress); i {
case 0:
return &v.state
@@ -738,7 +739,7 @@ func file_servercfg_proto_init() {
return nil
}
}
file_servercfg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_servercfg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EgressProxy); i {
case 0:
return &v.state
@@ -750,7 +751,7 @@ func file_servercfg_proto_init() {
return nil
}
}
file_servercfg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_servercfg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EgressRule); i {
case 0:
return &v.state
@@ -762,7 +763,7 @@ func file_servercfg_proto_init() {
return nil
}
}
file_servercfg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
file_appctl_proto_servercfg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DNS); i {
case 0:
return &v.state
@@ -775,28 +776,28 @@ func file_servercfg_proto_init() {
}
}
}
file_servercfg_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_servercfg_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_servercfg_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_servercfg_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_servercfg_proto_msgTypes[5].OneofWrappers = []interface{}{}
file_appctl_proto_servercfg_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_appctl_proto_servercfg_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_appctl_proto_servercfg_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_appctl_proto_servercfg_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_appctl_proto_servercfg_proto_msgTypes[5].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_servercfg_proto_rawDesc,
RawDescriptor: file_appctl_proto_servercfg_proto_rawDesc,
NumEnums: 2,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_servercfg_proto_goTypes,
DependencyIndexes: file_servercfg_proto_depIdxs,
EnumInfos: file_servercfg_proto_enumTypes,
MessageInfos: file_servercfg_proto_msgTypes,
GoTypes: file_appctl_proto_servercfg_proto_goTypes,
DependencyIndexes: file_appctl_proto_servercfg_proto_depIdxs,
EnumInfos: file_appctl_proto_servercfg_proto_enumTypes,
MessageInfos: file_appctl_proto_servercfg_proto_msgTypes,
}.Build()
File_servercfg_proto = out.File
file_servercfg_proto_rawDesc = nil
file_servercfg_proto_goTypes = nil
file_servercfg_proto_depIdxs = nil
File_appctl_proto_servercfg_proto = out.File
file_appctl_proto_servercfg_proto_rawDesc = nil
file_appctl_proto_servercfg_proto_goTypes = nil
file_appctl_proto_servercfg_proto_depIdxs = nil
}

View File

@@ -17,7 +17,7 @@ syntax = "proto3";
package appctl;
import "base.proto";
import "appctl/proto/base.proto";
option go_package = "github.com/enfein/mieru/v3/pkg/appctl/appctlpb";

View File

@@ -17,7 +17,9 @@ syntax = "proto3";
package appctl;
import "google/protobuf/timestamp.proto";
import "appctl/proto/base.proto";
import "appctl/proto/google/protobuf/timestamp.proto";
import "metrics/proto/metrics.proto";
option go_package = "github.com/enfein/mieru/v3/pkg/appctl/appctlpb";
@@ -26,6 +28,18 @@ message Metrics {
optional string json = 1;
}
message UserWithMetrics {
// User information.
optional User user = 1;
// User runtime information.
repeated metrics.Metric metrics = 2;
}
message UserWithMetricsList {
repeated UserWithMetrics items = 1;
}
message ProfileSavePath {
// Location to save profile results.
optional string filePath = 1;

View File

@@ -17,9 +17,9 @@ syntax = "proto3";
package appctl;
import "base.proto";
import "misc.proto";
import "servercfg.proto";
import "appctl/proto/base.proto";
import "appctl/proto/misc.proto";
import "appctl/proto/servercfg.proto";
option go_package = "github.com/enfein/mieru/v3/pkg/appctl/appctlgrpc";
@@ -74,6 +74,9 @@ service ServerLifecycleService {
// Get server session information.
rpc GetSessionInfoList(Empty) returns (SessionInfoList);
// Get users setting and runtime information.
rpc GetUsers(Empty) returns (UserWithMetricsList);
// Generate a thread dump of server daemon.
rpc GetThreadDump(Empty) returns (ThreadDump);

View File

@@ -17,7 +17,7 @@ syntax = "proto3";
package appctl;
import "base.proto";
import "appctl/proto/base.proto";
option go_package = "github.com/enfein/mieru/v3/pkg/appctl/appctlpb";

View File

@@ -260,6 +260,10 @@ func (s *serverLifecycleService) GetSessionInfoList(context.Context, *pb.Empty)
return mux.ExportSessionInfoList(), nil
}
func (s *serverLifecycleService) GetUsers(context.Context, *pb.Empty) (*pb.UserWithMetricsList, error) {
return &pb.UserWithMetricsList{}, nil
}
func (s *serverLifecycleService) GetThreadDump(ctx context.Context, req *pb.Empty) (*pb.ThreadDump, error) {
return &pb.ThreadDump{ThreadDump: proto.String(common.GetAllStackTrace())}, nil
}

View File

@@ -17,7 +17,7 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: metrics.proto
// source: metrics/proto/metrics.proto
package metricspb
@@ -71,11 +71,11 @@ func (x MetricType) String() string {
}
func (MetricType) Descriptor() protoreflect.EnumDescriptor {
return file_metrics_proto_enumTypes[0].Descriptor()
return file_metrics_proto_metrics_proto_enumTypes[0].Descriptor()
}
func (MetricType) Type() protoreflect.EnumType {
return &file_metrics_proto_enumTypes[0]
return &file_metrics_proto_metrics_proto_enumTypes[0]
}
func (x MetricType) Number() protoreflect.EnumNumber {
@@ -84,7 +84,7 @@ func (x MetricType) Number() protoreflect.EnumNumber {
// Deprecated: Use MetricType.Descriptor instead.
func (MetricType) EnumDescriptor() ([]byte, []int) {
return file_metrics_proto_rawDescGZIP(), []int{0}
return file_metrics_proto_metrics_proto_rawDescGZIP(), []int{0}
}
type RollUpLabel int32
@@ -126,11 +126,11 @@ func (x RollUpLabel) String() string {
}
func (RollUpLabel) Descriptor() protoreflect.EnumDescriptor {
return file_metrics_proto_enumTypes[1].Descriptor()
return file_metrics_proto_metrics_proto_enumTypes[1].Descriptor()
}
func (RollUpLabel) Type() protoreflect.EnumType {
return &file_metrics_proto_enumTypes[1]
return &file_metrics_proto_metrics_proto_enumTypes[1]
}
func (x RollUpLabel) Number() protoreflect.EnumNumber {
@@ -139,7 +139,7 @@ func (x RollUpLabel) Number() protoreflect.EnumNumber {
// Deprecated: Use RollUpLabel.Descriptor instead.
func (RollUpLabel) EnumDescriptor() ([]byte, []int) {
return file_metrics_proto_rawDescGZIP(), []int{1}
return file_metrics_proto_metrics_proto_rawDescGZIP(), []int{1}
}
type AllMetrics struct {
@@ -153,7 +153,7 @@ type AllMetrics struct {
func (x *AllMetrics) Reset() {
*x = AllMetrics{}
if protoimpl.UnsafeEnabled {
mi := &file_metrics_proto_msgTypes[0]
mi := &file_metrics_proto_metrics_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -166,7 +166,7 @@ func (x *AllMetrics) String() string {
func (*AllMetrics) ProtoMessage() {}
func (x *AllMetrics) ProtoReflect() protoreflect.Message {
mi := &file_metrics_proto_msgTypes[0]
mi := &file_metrics_proto_metrics_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -179,7 +179,7 @@ func (x *AllMetrics) ProtoReflect() protoreflect.Message {
// Deprecated: Use AllMetrics.ProtoReflect.Descriptor instead.
func (*AllMetrics) Descriptor() ([]byte, []int) {
return file_metrics_proto_rawDescGZIP(), []int{0}
return file_metrics_proto_metrics_proto_rawDescGZIP(), []int{0}
}
func (x *AllMetrics) GetGroups() []*MetricGroup {
@@ -201,7 +201,7 @@ type MetricGroup struct {
func (x *MetricGroup) Reset() {
*x = MetricGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_metrics_proto_msgTypes[1]
mi := &file_metrics_proto_metrics_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -214,7 +214,7 @@ func (x *MetricGroup) String() string {
func (*MetricGroup) ProtoMessage() {}
func (x *MetricGroup) ProtoReflect() protoreflect.Message {
mi := &file_metrics_proto_msgTypes[1]
mi := &file_metrics_proto_metrics_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -227,7 +227,7 @@ func (x *MetricGroup) ProtoReflect() protoreflect.Message {
// Deprecated: Use MetricGroup.ProtoReflect.Descriptor instead.
func (*MetricGroup) Descriptor() ([]byte, []int) {
return file_metrics_proto_rawDescGZIP(), []int{1}
return file_metrics_proto_metrics_proto_rawDescGZIP(), []int{1}
}
func (x *MetricGroup) GetName() string {
@@ -258,7 +258,7 @@ type Metric struct {
func (x *Metric) Reset() {
*x = Metric{}
if protoimpl.UnsafeEnabled {
mi := &file_metrics_proto_msgTypes[2]
mi := &file_metrics_proto_metrics_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -271,7 +271,7 @@ func (x *Metric) String() string {
func (*Metric) ProtoMessage() {}
func (x *Metric) ProtoReflect() protoreflect.Message {
mi := &file_metrics_proto_msgTypes[2]
mi := &file_metrics_proto_metrics_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -284,7 +284,7 @@ func (x *Metric) ProtoReflect() protoreflect.Message {
// Deprecated: Use Metric.ProtoReflect.Descriptor instead.
func (*Metric) Descriptor() ([]byte, []int) {
return file_metrics_proto_rawDescGZIP(), []int{2}
return file_metrics_proto_metrics_proto_rawDescGZIP(), []int{2}
}
func (x *Metric) GetName() string {
@@ -328,7 +328,7 @@ type History struct {
func (x *History) Reset() {
*x = History{}
if protoimpl.UnsafeEnabled {
mi := &file_metrics_proto_msgTypes[3]
mi := &file_metrics_proto_metrics_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -341,7 +341,7 @@ func (x *History) String() string {
func (*History) ProtoMessage() {}
func (x *History) ProtoReflect() protoreflect.Message {
mi := &file_metrics_proto_msgTypes[3]
mi := &file_metrics_proto_metrics_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -354,7 +354,7 @@ func (x *History) ProtoReflect() protoreflect.Message {
// Deprecated: Use History.ProtoReflect.Descriptor instead.
func (*History) Descriptor() ([]byte, []int) {
return file_metrics_proto_rawDescGZIP(), []int{3}
return file_metrics_proto_metrics_proto_rawDescGZIP(), []int{3}
}
func (x *History) GetTimeUnixMilli() int64 {
@@ -378,76 +378,77 @@ func (x *History) GetRollUp() RollUpLabel {
return RollUpLabel_NO_ROLL_UP
}
var File_metrics_proto protoreflect.FileDescriptor
var File_metrics_proto_metrics_proto protoreflect.FileDescriptor
var file_metrics_proto_rawDesc = []byte{
0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x3a, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x73, 0x22, 0x5a, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x07,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x22, 0xb2, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74,
0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88,
0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x03, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a,
0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61,
0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x12, 0x29, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x69, 0x6c,
0x6c, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65,
0x55, 0x6e, 0x69, 0x78, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05,
0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x64,
0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x6c, 0x55,
0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x02, 0x52,
0x06, 0x72, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x42, 0x08, 0x0a, 0x06,
0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x55,
0x70, 0x2a, 0x4e, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12,
0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x17, 0x0a,
0x13, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x53, 0x45,
0x52, 0x49, 0x45, 0x53, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10,
0x03, 0x2a, 0x74, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x4c, 0x61, 0x62, 0x65, 0x6c,
0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x10, 0x00,
0x12, 0x15, 0x0a, 0x11, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x53,
0x45, 0x43, 0x4f, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x4f, 0x4c, 0x4c, 0x5f,
0x55, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x02, 0x12, 0x13,
0x0a, 0x0f, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x4f, 0x55,
0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x5f, 0x54,
0x4f, 0x5f, 0x44, 0x41, 0x59, 0x10, 0x04, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75,
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65,
0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
var file_metrics_proto_metrics_proto_rawDesc = []byte{
0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x3a, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x74,
0x72, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x22, 0x5a, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48,
0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x65,
0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x65,
0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65,
0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb2,
0x01, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88,
0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x13, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01,
0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48,
0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x07, 0x68,
0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x07,
0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
0x29, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x69, 0x6c, 0x6c, 0x69,
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e,
0x69, 0x78, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x64, 0x65,
0x6c, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c,
0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
0x52, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x02, 0x52, 0x06, 0x72,
0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64,
0x65, 0x6c, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x2a,
0x4e, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a,
0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b,
0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43,
0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x49,
0x45, 0x53, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10, 0x03, 0x2a,
0x74, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x55, 0x70, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x0e,
0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x10, 0x00, 0x12, 0x15,
0x0a, 0x11, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x43,
0x4f, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50,
0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f,
0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10,
0x03, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x5f, 0x54, 0x4f, 0x5f,
0x44, 0x41, 0x59, 0x10, 0x04, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75,
0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_metrics_proto_rawDescOnce sync.Once
file_metrics_proto_rawDescData = file_metrics_proto_rawDesc
file_metrics_proto_metrics_proto_rawDescOnce sync.Once
file_metrics_proto_metrics_proto_rawDescData = file_metrics_proto_metrics_proto_rawDesc
)
func file_metrics_proto_rawDescGZIP() []byte {
file_metrics_proto_rawDescOnce.Do(func() {
file_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_metrics_proto_rawDescData)
func file_metrics_proto_metrics_proto_rawDescGZIP() []byte {
file_metrics_proto_metrics_proto_rawDescOnce.Do(func() {
file_metrics_proto_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_metrics_proto_metrics_proto_rawDescData)
})
return file_metrics_proto_rawDescData
return file_metrics_proto_metrics_proto_rawDescData
}
var file_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_metrics_proto_goTypes = []interface{}{
var file_metrics_proto_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_metrics_proto_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_metrics_proto_metrics_proto_goTypes = []interface{}{
(MetricType)(0), // 0: metrics.MetricType
(RollUpLabel)(0), // 1: metrics.RollUpLabel
(*AllMetrics)(nil), // 2: metrics.AllMetrics
@@ -455,7 +456,7 @@ var file_metrics_proto_goTypes = []interface{}{
(*Metric)(nil), // 4: metrics.Metric
(*History)(nil), // 5: metrics.History
}
var file_metrics_proto_depIdxs = []int32{
var file_metrics_proto_metrics_proto_depIdxs = []int32{
3, // 0: metrics.AllMetrics.groups:type_name -> metrics.MetricGroup
4, // 1: metrics.MetricGroup.metrics:type_name -> metrics.Metric
0, // 2: metrics.Metric.type:type_name -> metrics.MetricType
@@ -468,13 +469,13 @@ var file_metrics_proto_depIdxs = []int32{
0, // [0:5] is the sub-list for field type_name
}
func init() { file_metrics_proto_init() }
func file_metrics_proto_init() {
if File_metrics_proto != nil {
func init() { file_metrics_proto_metrics_proto_init() }
func file_metrics_proto_metrics_proto_init() {
if File_metrics_proto_metrics_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_metrics_proto_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AllMetrics); i {
case 0:
return &v.state
@@ -486,7 +487,7 @@ func file_metrics_proto_init() {
return nil
}
}
file_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_metrics_proto_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MetricGroup); i {
case 0:
return &v.state
@@ -498,7 +499,7 @@ func file_metrics_proto_init() {
return nil
}
}
file_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_metrics_proto_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Metric); i {
case 0:
return &v.state
@@ -510,7 +511,7 @@ func file_metrics_proto_init() {
return nil
}
}
file_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_metrics_proto_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*History); i {
case 0:
return &v.state
@@ -523,26 +524,26 @@ func file_metrics_proto_init() {
}
}
}
file_metrics_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_metrics_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_metrics_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_metrics_proto_metrics_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_metrics_proto_metrics_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_metrics_proto_metrics_proto_msgTypes[3].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_metrics_proto_rawDesc,
RawDescriptor: file_metrics_proto_metrics_proto_rawDesc,
NumEnums: 2,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_metrics_proto_goTypes,
DependencyIndexes: file_metrics_proto_depIdxs,
EnumInfos: file_metrics_proto_enumTypes,
MessageInfos: file_metrics_proto_msgTypes,
GoTypes: file_metrics_proto_metrics_proto_goTypes,
DependencyIndexes: file_metrics_proto_metrics_proto_depIdxs,
EnumInfos: file_metrics_proto_metrics_proto_enumTypes,
MessageInfos: file_metrics_proto_metrics_proto_msgTypes,
}.Build()
File_metrics_proto = out.File
file_metrics_proto_rawDesc = nil
file_metrics_proto_goTypes = nil
file_metrics_proto_depIdxs = nil
File_metrics_proto_metrics_proto = out.File
file_metrics_proto_metrics_proto_rawDesc = nil
file_metrics_proto_metrics_proto_goTypes = nil
file_metrics_proto_metrics_proto_depIdxs = nil
}

View File

@@ -17,7 +17,7 @@
// versions:
// protoc-gen-go v1.30.0
// protoc v4.22.3
// source: history.proto
// source: version/updater/proto/history.proto
package updaterpb
@@ -46,7 +46,7 @@ type UpdateHistory struct {
func (x *UpdateHistory) Reset() {
*x = UpdateHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_history_proto_msgTypes[0]
mi := &file_version_updater_proto_history_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -59,7 +59,7 @@ func (x *UpdateHistory) String() string {
func (*UpdateHistory) ProtoMessage() {}
func (x *UpdateHistory) ProtoReflect() protoreflect.Message {
mi := &file_history_proto_msgTypes[0]
mi := &file_version_updater_proto_history_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -72,7 +72,7 @@ func (x *UpdateHistory) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateHistory.ProtoReflect.Descriptor instead.
func (*UpdateHistory) Descriptor() ([]byte, []int) {
return file_history_proto_rawDescGZIP(), []int{0}
return file_version_updater_proto_history_proto_rawDescGZIP(), []int{0}
}
func (x *UpdateHistory) GetRecords() []*UpdateRecord {
@@ -102,7 +102,7 @@ type UpdateRecord struct {
func (x *UpdateRecord) Reset() {
*x = UpdateRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_history_proto_msgTypes[1]
mi := &file_version_updater_proto_history_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -115,7 +115,7 @@ func (x *UpdateRecord) String() string {
func (*UpdateRecord) ProtoMessage() {}
func (x *UpdateRecord) ProtoReflect() protoreflect.Message {
mi := &file_history_proto_msgTypes[1]
mi := &file_version_updater_proto_history_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -128,7 +128,7 @@ func (x *UpdateRecord) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateRecord.ProtoReflect.Descriptor instead.
func (*UpdateRecord) Descriptor() ([]byte, []int) {
return file_history_proto_rawDescGZIP(), []int{1}
return file_version_updater_proto_history_proto_rawDescGZIP(), []int{1}
}
func (x *UpdateRecord) GetTimeUnix() int64 {
@@ -166,56 +166,58 @@ func (x *UpdateRecord) GetError() string {
return ""
}
var File_history_proto protoreflect.FileDescriptor
var File_version_updater_proto_history_proto protoreflect.FileDescriptor
var file_history_proto_rawDesc = []byte{
0x0a, 0x0d, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x22, 0x40, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x0c, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x74,
0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52,
0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07,
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52,
0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6c,
0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x6c,
0x65, 0x61, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48,
0x03, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x46, 0x6f, 0x75,
0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01,
0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x42, 0x0a, 0x0a,
0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61,
0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f,
0x6e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x42,
0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e, 0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d,
0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
var file_version_updater_proto_history_proto_rawDesc = []byte{
0x0a, 0x23, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x22, 0x40,
0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
0x2f, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x15, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
0x22, 0x8c, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x12, 0x1f, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x88,
0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01,
0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65,
0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f,
0x6e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18,
0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65,
0x61, 0x73, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x05, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x55,
0x6e, 0x69, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42,
0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42,
0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x6e,
0x66, 0x65, 0x69, 0x6e, 0x2f, 0x6d, 0x69, 0x65, 0x72, 0x75, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b,
0x67, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
file_history_proto_rawDescOnce sync.Once
file_history_proto_rawDescData = file_history_proto_rawDesc
file_version_updater_proto_history_proto_rawDescOnce sync.Once
file_version_updater_proto_history_proto_rawDescData = file_version_updater_proto_history_proto_rawDesc
)
func file_history_proto_rawDescGZIP() []byte {
file_history_proto_rawDescOnce.Do(func() {
file_history_proto_rawDescData = protoimpl.X.CompressGZIP(file_history_proto_rawDescData)
func file_version_updater_proto_history_proto_rawDescGZIP() []byte {
file_version_updater_proto_history_proto_rawDescOnce.Do(func() {
file_version_updater_proto_history_proto_rawDescData = protoimpl.X.CompressGZIP(file_version_updater_proto_history_proto_rawDescData)
})
return file_history_proto_rawDescData
return file_version_updater_proto_history_proto_rawDescData
}
var file_history_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_history_proto_goTypes = []interface{}{
var file_version_updater_proto_history_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_version_updater_proto_history_proto_goTypes = []interface{}{
(*UpdateHistory)(nil), // 0: updater.UpdateHistory
(*UpdateRecord)(nil), // 1: updater.UpdateRecord
}
var file_history_proto_depIdxs = []int32{
var file_version_updater_proto_history_proto_depIdxs = []int32{
1, // 0: updater.UpdateHistory.records:type_name -> updater.UpdateRecord
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
@@ -224,13 +226,13 @@ var file_history_proto_depIdxs = []int32{
0, // [0:1] is the sub-list for field type_name
}
func init() { file_history_proto_init() }
func file_history_proto_init() {
if File_history_proto != nil {
func init() { file_version_updater_proto_history_proto_init() }
func file_version_updater_proto_history_proto_init() {
if File_version_updater_proto_history_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_history_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_version_updater_proto_history_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateHistory); i {
case 0:
return &v.state
@@ -242,7 +244,7 @@ func file_history_proto_init() {
return nil
}
}
file_history_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_version_updater_proto_history_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateRecord); i {
case 0:
return &v.state
@@ -255,23 +257,23 @@ func file_history_proto_init() {
}
}
}
file_history_proto_msgTypes[1].OneofWrappers = []interface{}{}
file_version_updater_proto_history_proto_msgTypes[1].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_history_proto_rawDesc,
RawDescriptor: file_version_updater_proto_history_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_history_proto_goTypes,
DependencyIndexes: file_history_proto_depIdxs,
MessageInfos: file_history_proto_msgTypes,
GoTypes: file_version_updater_proto_history_proto_goTypes,
DependencyIndexes: file_version_updater_proto_history_proto_depIdxs,
MessageInfos: file_version_updater_proto_history_proto_msgTypes,
}.Build()
File_history_proto = out.File
file_history_proto_rawDesc = nil
file_history_proto_goTypes = nil
file_history_proto_depIdxs = nil
File_version_updater_proto_history_proto = out.File
file_version_updater_proto_history_proto_rawDesc = nil
file_version_updater_proto_history_proto_goTypes = nil
file_version_updater_proto_history_proto_depIdxs = nil
}

113
mihomo/.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,113 @@
name: Test
on:
push:
paths-ignore:
- "docs/**"
- "README.md"
- ".github/ISSUE_TEMPLATE/**"
branches:
- Alpha
tags:
- "v*"
pull_request:
branches:
- Alpha
jobs:
test:
strategy:
matrix:
os:
- 'ubuntu-latest' # amd64 linux
- 'windows-latest' # amd64 windows
- 'macos-latest' # arm64 macos
- 'ubuntu-24.04-arm' # arm64 linux
- 'macos-13' # amd64 macos
go-version:
- '1.24'
- '1.23'
- '1.22'
- '1.21'
- '1.20'
fail-fast: false
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
env:
CGO_ENABLED: 0
GOTOOLCHAIN: local
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
# this patch file only works on golang1.24.x
# that means after golang1.25 release it must be changed
# see: https://github.com/MetaCubeX/go/commits/release-branch.go1.24/
# revert:
# 693def151adff1af707d82d28f55dba81ceb08e1: "crypto/rand,runtime: switch RtlGenRandom for ProcessPrng"
# 7c1157f9544922e96945196b47b95664b1e39108: "net: remove sysSocket fallback for Windows 7"
# 48042aa09c2f878c4faa576948b07fe625c4707a: "syscall: remove Windows 7 console handle workaround"
# a17d959debdb04cd550016a3501dd09d50cd62e7: "runtime: always use LoadLibraryEx to load system libraries"
- name: Revert Golang1.24 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.24' }}
run: |
cd $(go env GOROOT)
curl https://github.com/MetaCubeX/go/commit/2a406dc9f1ea7323d6ca9fccb2fe9ddebb6b1cc8.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/7b1fd7d39c6be0185fbe1d929578ab372ac5c632.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/979d6d8bab3823ff572ace26767fd2ce3cf351ae.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/ac3e93c061779dfefc0dd13a5b6e6f764a25621e.diff | patch --verbose -p 1
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
# this patch file only works on golang1.23.x
# that means after golang1.24 release it must be changed
# see: https://github.com/MetaCubeX/go/commits/release-branch.go1.23/
# revert:
# 693def151adff1af707d82d28f55dba81ceb08e1: "crypto/rand,runtime: switch RtlGenRandom for ProcessPrng"
# 7c1157f9544922e96945196b47b95664b1e39108: "net: remove sysSocket fallback for Windows 7"
# 48042aa09c2f878c4faa576948b07fe625c4707a: "syscall: remove Windows 7 console handle workaround"
# a17d959debdb04cd550016a3501dd09d50cd62e7: "runtime: always use LoadLibraryEx to load system libraries"
- name: Revert Golang1.23 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.23' }}
run: |
cd $(go env GOROOT)
curl https://github.com/MetaCubeX/go/commit/9ac42137ef6730e8b7daca016ece831297a1d75b.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/21290de8a4c91408de7c2b5b68757b1e90af49dd.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/6a31d3fa8e47ddabc10bd97bff10d9a85f4cfb76.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/69e2eed6dd0f6d815ebf15797761c13f31213dd6.diff | patch --verbose -p 1
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
# this patch file only works on golang1.22.x
# that means after golang1.23 release it must be changed
# see: https://github.com/MetaCubeX/go/commits/release-branch.go1.22/
# revert:
# 693def151adff1af707d82d28f55dba81ceb08e1: "crypto/rand,runtime: switch RtlGenRandom for ProcessPrng"
# 7c1157f9544922e96945196b47b95664b1e39108: "net: remove sysSocket fallback for Windows 7"
# 48042aa09c2f878c4faa576948b07fe625c4707a: "syscall: remove Windows 7 console handle workaround"
# a17d959debdb04cd550016a3501dd09d50cd62e7: "runtime: always use LoadLibraryEx to load system libraries"
- name: Revert Golang1.22 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.22' }}
run: |
cd $(go env GOROOT)
curl https://github.com/MetaCubeX/go/commit/9779155f18b6556a034f7bb79fb7fb2aad1e26a9.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/ef0606261340e608017860b423ffae5c1ce78239.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/7f83badcb925a7e743188041cb6e561fc9b5b642.diff | patch --verbose -p 1
curl https://github.com/MetaCubeX/go/commit/83ff9782e024cb328b690cbf0da4e7848a327f4f.diff | patch --verbose -p 1
# modify from https://github.com/restic/restic/issues/4636#issuecomment-1896455557
- name: Revert Golang1.21 commit for Windows7/8
if: ${{ runner.os == 'Windows' && matrix.go-version == '1.21' }}
run: |
cd $(go env GOROOT)
curl https://github.com/golang/go/commit/9e43850a3298a9b8b1162ba0033d4c53f8637571.diff | patch --verbose -R -p 1
- name: Test
run: go test ./... -v -count=1
- name: Test with tag with_gvisor
run: go test ./... -v -count=1 -tags "with_gvisor"

View File

@@ -22,9 +22,10 @@ func sleepAndSend[T any](ctx context.Context, delay int, input T) func() (T, err
}
func TestPicker_Basic(t *testing.T) {
t.Parallel()
picker, ctx := WithContext[int](context.Background())
picker.Go(sleepAndSend(ctx, 30, 2))
picker.Go(sleepAndSend(ctx, 20, 1))
picker.Go(sleepAndSend(ctx, 200, 2))
picker.Go(sleepAndSend(ctx, 100, 1))
number := picker.Wait()
assert.NotNil(t, number)
@@ -32,8 +33,9 @@ func TestPicker_Basic(t *testing.T) {
}
func TestPicker_Timeout(t *testing.T) {
t.Parallel()
picker, ctx := WithTimeout[int](context.Background(), time.Millisecond*5)
picker.Go(sleepAndSend(ctx, 20, 1))
picker.Go(sleepAndSend(ctx, 100, 1))
number := picker.Wait()
assert.Equal(t, number, lo.Empty[int]())

View File

@@ -2008,9 +2008,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libc"
version = "0.2.171"
version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]]
name = "libloading"

View File

@@ -394,6 +394,10 @@ pub enum ServerConfigError {
/// Key length mismatch
#[error("invalid key length for {0}, expecting {1} bytes, but found {2} bytes")]
InvalidKeyLength(CipherKind, usize, usize),
/// User Key (ipsk) length mismatch
#[error("invalid user key length for {0}, expecting {1} bytes, but found {2} bytes")]
InvalidUserKeyLength(CipherKind, usize, usize),
}
/// Configuration for a server
@@ -538,6 +542,22 @@ where
for ipsk in split_iter {
match USER_KEY_BASE64_ENGINE.decode(ipsk) {
Ok(v) => {
// Double check identity key's length
match method {
CipherKind::AEAD2022_BLAKE3_AES_128_GCM => {
// AES-128
if v.len() != 16 {
return Err(ServerConfigError::InvalidUserKeyLength(method, 16, v.len()));
}
}
CipherKind::AEAD2022_BLAKE3_AES_256_GCM => {
// AES-256
if v.len() != 32 {
return Err(ServerConfigError::InvalidUserKeyLength(method, 32, v.len()));
}
}
_ => unreachable!("{} doesn't support EIH", method),
}
identity_keys.push(Bytes::from(v));
}
Err(err) => {

View File

@@ -160,6 +160,7 @@ if is_finded("dnsproxy") then
o = s:option(Value, "dnsproxy_shunt_forward", translate("Anti-pollution DNS Server"))
o:value("sdns://AgUAAAAAAAAABzguOC40LjQgsKKKE4EwvtIbNjGjagI2607EdKSVHowYZtyvD9iPrkkHOC44LjQuNAovZG5zLXF1ZXJ5", translate("Google DNSCrypt SDNS"))
o:value("sdns://AgcAAAAAAAAAACC2vD25TAYM7EnyCH8Xw1-0g5OccnTsGH9vQUUH0njRtAxkbnMudHduaWMudHcKL2Rucy1xdWVyeQ", translate("TWNIC-101 DNSCrypt SDNS"))
o:value("sdns://AgcAAAAAAAAADzE4NS4yMjIuMjIyLjIyMiAOp5Svj-oV-Fz-65-8H2VKHLKJ0egmfEgrdPeAQlUFFA8xODUuMjIyLjIyMi4yMjIKL2Rucy1xdWVyeQ", translate("dns.sb DNSCrypt SDNS"))
o:value("sdns://AgMAAAAAAAAADTE0OS4xMTIuMTEyLjkgsBkgdEu7dsmrBT4B4Ht-BQ5HPSD3n3vqQ1-v5DydJC8SZG5zOS5xdWFkOS5uZXQ6NDQzCi9kbnMtcXVlcnk", translate("Quad9 DNSCrypt SDNS"))
o:value("sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20", translate("AdGuard DNSCrypt SDNS"))

View File

@@ -180,6 +180,7 @@ if is_finded("dnsproxy") then
o = s:option(Value, "dnsproxy_tunnel_forward", translate("Anti-pollution DNS Server"))
o:value("sdns://AgUAAAAAAAAABzguOC40LjQgsKKKE4EwvtIbNjGjagI2607EdKSVHowYZtyvD9iPrkkHOC44LjQuNAovZG5zLXF1ZXJ5", translate("Google DNSCrypt SDNS"))
o:value("sdns://AgcAAAAAAAAAACC2vD25TAYM7EnyCH8Xw1-0g5OccnTsGH9vQUUH0njRtAxkbnMudHduaWMudHcKL2Rucy1xdWVyeQ", translate("TWNIC-101 DNSCrypt SDNS"))
o:value("sdns://AgcAAAAAAAAADzE4NS4yMjIuMjIyLjIyMiAOp5Svj-oV-Fz-65-8H2VKHLKJ0egmfEgrdPeAQlUFFA8xODUuMjIyLjIyMi4yMjIKL2Rucy1xdWVyeQ", translate("dns.sb DNSCrypt SDNS"))
o:value("sdns://AgMAAAAAAAAADTE0OS4xMTIuMTEyLjkgsBkgdEu7dsmrBT4B4Ht-BQ5HPSD3n3vqQ1-v5DydJC8SZG5zOS5xdWFkOS5uZXQ6NDQzCi9kbnMtcXVlcnk", translate("Quad9 DNSCrypt SDNS"))
o:value("sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20", translate("AdGuard DNSCrypt SDNS"))

View File

@@ -6,7 +6,12 @@ sdns://AgUAAAAAAAAABzguOC40LjQgsKKKE4EwvtIbNjGjagI2607EdKSVHowYZtyvD9iPrkkHOC44L
sdns://AgcAAAAAAAAADzE4NS4yMjIuMjIyLjIyMiAOp5Svj-oV-Fz-65-8H2VKHLKJ0egmfEgrdPeAQlUFFA8xODUuMjIyLjIyMi4yMjIKL2Rucy1xdWVyeQ
# Quad9
sdns://AgMAAAAAAAAADTE0OS4xMTIuMTEyLjkgsBkgdEu7dsmrBT4B4Ht-BQ5HPSD3n3vqQ1-v5DydJC8SZG5zOS5xdWFkOS5uZXQ6NDQzCi9kbnMtcXVlcnk
sdns://AQMAAAAAAAAADDkuOS45Ljk6ODQ0MyBnyEe4yHWM0SAkVUO-dWdG3zTfHYTAC4xHA2jfgh2GPhkyLmRuc2NyeXB0LWNlcnQucXVhZDkubmV0
# AdGuard
sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20
# Cloudflare
sdns://AgcAAAAAAAAABzEuMC4wLjGgENk8mGSlIfMGXMOlIlCcKvq7AVgcrZxtjon911-ep0cg63Ul-I8NlFj4GplQGb_TTLiczclX57DvMV8Q-JdjgRgSZG5zLmNsb3VkZmxhcmUuY29tCi9kbnMtcXVlcnk
# TWNIC-101
sdns://AgcAAAAAAAAAACC2vD25TAYM7EnyCH8Xw1-0g5OccnTsGH9vQUUH0njRtAxkbnMudHduaWMudHcKL2Rucy1xdWVyeQ
# cs-tx
sdns://AQYAAAAAAAAADTIwOS41OC4xNDcuMzYgMTNyrVlWMsJBa4cvCY-FG925ZShMbL6aTxkJZDDbqVoeMi5kbnNjcnlwdC1jZXJ0LmNyeXB0b3N0b3JtLmlz

View File

@@ -40,25 +40,39 @@ fi
## config
\`\`\`json
`
ubus call uci get '{"config": "nikki"}' | yq -M -P -p json -o json '
.values | to_entries | group_by(.value[".type"]) | map({"key": .[0].value[".type"], "value": [.[].value]}) | from_entries |
. |= (
del(.status) |
del(.editor) |
del(.log)
) |
.*[] |= (
del(.[".type"]) |
del(.[".name"]) |
del(.[".index"]) |
del(.[".anonymous"])
) |
.subscription[] |= .url = "*" |
.lan_access_control[] |= (
select(has("ip")) |= .ip[] |= "*" |
select(has("ip6")) |= .ip6[] |= "*" |
select(has("mac")) |= .mac[] |= "*"
)
ucode -S -e '
import { connect } from "ubus";
const ubus = connect();
const config = ubus.call("uci", "get", { "config": "nikki" });
const result = {};
for (let section_id in config.values) {
const section = config.values[section_id];
const section_type = section[".type"];
if (result[section_type] == null) {
result[section_type] = [];
}
push(result[section_type], section);
}
for (let section_type in result) {
for (let section in result[section_type]) {
delete section[".anonymous"];
delete section[".type"];
delete section[".name"];
delete section[".index"];
}
}
for (let x in result["subscription"]) {
x["url"] = "*";
}
for (let x in result["lan_access_control"]) {
x["ip"] = "*";
x["ip6"] = "*";
x["mac"] = "*";
}
delete result["status"];
delete result["editor"];
delete result["log"];
print(result);
'
`
\`\`\`

View File

@@ -18,7 +18,7 @@ require (
github.com/gorilla/websocket v1.5.3
github.com/improbable-eng/grpc-web v0.15.0
github.com/jhump/protoreflect v1.17.0
github.com/miekg/dns v1.1.64
github.com/miekg/dns v1.1.65
github.com/mustafaturan/bus v1.0.2
github.com/pelletier/go-toml v1.9.5
github.com/pion/dtls/v2 v2.2.12
@@ -37,12 +37,12 @@ require (
github.com/xiaokangwang/VLite v0.0.0-20220418190619-cff95160a432
go.starlark.net v0.0.0-20230612165344-9532f5667272
go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35
golang.org/x/crypto v0.36.0
golang.org/x/net v0.38.0
golang.org/x/sync v0.12.0
golang.org/x/sys v0.31.0
golang.org/x/crypto v0.37.0
golang.org/x/net v0.39.0
golang.org/x/sync v0.13.0
golang.org/x/sys v0.32.0
google.golang.org/grpc v1.71.1
google.golang.org/protobuf v1.36.5
google.golang.org/protobuf v1.36.6
gopkg.in/yaml.v3 v3.0.1
gvisor.dev/gvisor v0.0.0-20231020174304-b8a429915ff1
h12.io/socks v1.0.3
@@ -89,7 +89,7 @@ require (
go.uber.org/mock v0.5.0 // indirect
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
golang.org/x/mod v0.23.0 // indirect
golang.org/x/text v0.23.0 // indirect
golang.org/x/text v0.24.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.30.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect

View File

@@ -319,8 +319,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.64 h1:wuZgD9wwCE6XMT05UU/mlSko71eRSXEAm2EbjQXLKnQ=
github.com/miekg/dns v1.1.64/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck=
github.com/miekg/dns v1.1.65 h1:0+tIPHzUW0GCge7IiK3guGP57VAw7hoPDfApjkMD1Fc=
github.com/miekg/dns v1.1.65/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@@ -592,8 +592,8 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -655,8 +655,8 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -670,8 +670,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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=
@@ -719,8 +719,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.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/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
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-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -740,8 +740,8 @@ golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.12.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.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -835,8 +835,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<Version>7.11.1</Version>
<Version>7.11.2</Version>
</PropertyGroup>
<PropertyGroup>

View File

@@ -26,6 +26,7 @@
Margin="{StaticResource MarginLeftRight8}"
materialDesign:HintAssist.Hint="{x:Static resx:ResUI.MsgFilterTitle}"
materialDesign:TextFieldAssist.HasClearButton="True"
AutomationProperties.Name="{x:Static resx:ResUI.MsgFilterTitle}"
IsEditable="True"
Style="{StaticResource DefComboBox}" />
<Button
@@ -33,6 +34,7 @@
Width="24"
Height="24"
Margin="{StaticResource MarginLeftRight8}"
AutomationProperties.Name="{x:Static resx:ResUI.menuMsgViewCopyAll}"
Style="{StaticResource MaterialDesignFloatingActionMiniLightButton}"
ToolTip="{x:Static resx:ResUI.menuMsgViewCopyAll}">
<materialDesign:PackIcon VerticalAlignment="Center" Kind="ContentCopy" />
@@ -42,6 +44,7 @@
Width="24"
Height="24"
Margin="{StaticResource MarginLeftRight8}"
AutomationProperties.Name="{x:Static resx:ResUI.menuMsgViewClear}"
Style="{StaticResource MaterialDesignFloatingActionMiniLightButton}"
ToolTip="{x:Static resx:ResUI.menuMsgViewClear}">
<materialDesign:PackIcon VerticalAlignment="Center" Kind="Delete" />
@@ -55,6 +58,7 @@
x:Name="togAutoRefresh"
Margin="{StaticResource MarginLeftRight8}"
HorizontalAlignment="Left"
AutomationProperties.Name="{x:Static resx:ResUI.TbAutoRefresh}"
IsChecked="True" />
<TextBlock
Margin="{StaticResource MarginLeftRight8}"
@@ -65,6 +69,7 @@
x:Name="togScrollToEnd"
Margin="{StaticResource MarginLeftRight8}"
HorizontalAlignment="Left"
AutomationProperties.Name="{x:Static resx:ResUI.TbAutoScrollToEnd}"
IsChecked="True" />
</WrapPanel>
<TextBox

View File

@@ -224,7 +224,9 @@ object AppConfig {
)
val PRIVATE_IP_LIST = arrayListOf(
"0.0.0.0/8",
"10.0.0.0/8",
"127.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16",
"169.254.0.0/16",

View File

@@ -303,7 +303,7 @@
<string name="connection_test_pending">منپیزن واجۊری کوݩ</string>
<string name="connection_test_testing">هونی آزمایش ابۊ…</string>
<string name="connection_test_testing_count">%d کانفیگ هونی آزمایش ابۊ...</string>
<string name="connection_test_available">مووفق بی: منپیز HTTP %dms تۊل کشی</string>
<string name="connection_test_available">مووفق بی: منپیز %dms تۊل کشی</string>
<string name="connection_test_error">منپیز و اینترنتن نجوست: %s</string>
<string name="connection_test_fail">اینترنت من دسرس نؽ</string>
<string name="connection_test_error_status_code">کود ختا: #%d</string>
@@ -322,7 +322,7 @@
<string name="update_already_latest_version">سکو نوسخه دیندایی پۊرنیڌه هڌ</string>
<string name="update_new_version_found">نوسخه نۊ ن جوست: %s</string>
<string name="update_now">سکو ورۊ رسۊوی کۊنین</string>
<string name="update_check_pre_release">نوسخیل پؽش ز تیجنیڌنن واجۊری کۊنین</string>
<string name="update_check_pre_release">واجۊری نوسخه یل پؽش ز تیجنیڌن</string>
<string-array name="share_method">
<item>QRcode</item>

View File

@@ -300,7 +300,7 @@
<string name="connection_test_pending">اتصال را بررسی کنید</string>
<string name="connection_test_testing">در حال آزمایش...</string>
<string name="connection_test_testing_count">تست کردن %d کانفیگ…</string>
<string name="connection_test_available">موفقیت: اتصال HTTP %dms طول کشید</string>
<string name="connection_test_available">موفقیت: اتصال %dms طول کشید</string>
<string name="connection_test_error">اتصال به اینترنت شناسایی نشد: %s</string>
<string name="connection_test_fail">اینترنت در دسترس نیست</string>
<string name="connection_test_error_status_code">کد خطا: #%d</string>

View File

@@ -1,9 +1,9 @@
[versions]
agp = "8.9.1"
desugar_jdk_libs = "2.1.5"
desugarJdkLibs = "2.1.5"
gradleLicensePlugin = "0.9.8"
kotlin = "2.1.20"
coreKtx = "1.15.0"
coreKtx = "1.16.0"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
@@ -14,8 +14,8 @@ constraintlayout = "2.2.1"
mmkvStatic = "1.3.12"
gson = "2.12.1"
quickieFoss = "1.14.0"
kotlinx-coroutines-android = "1.10.1"
kotlinx-coroutines-core = "1.10.1"
kotlinxCoroutinesAndroid = "1.10.1"
kotlinxCoroutinesCore = "1.10.1"
swiperefreshlayout = "1.1.0"
toasty = "1.5.2"
editorkit = "2.9.0"
@@ -30,7 +30,7 @@ recyclerview = "1.4.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "swiperefreshlayout" }
desugar_jdk_libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugar_jdk_libs" }
desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugarJdkLibs" }
gradle-license-plugin = { module = "com.jaredsburrows:gradle-license-plugin", version.ref = "gradleLicensePlugin" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
@@ -42,8 +42,8 @@ androidx-constraintlayout = { group = "androidx.constraintlayout", name = "const
mmkv-static = { module = "com.tencent:mmkv-static", version.ref = "mmkvStatic" }
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
quickie-foss = { module = "com.github.T8RIN.QuickieExtended:quickie-foss", version.ref = "quickieFoss" }
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version = "kotlinx-coroutines-android" }
kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version = "kotlinx-coroutines-core" }
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutinesAndroid" }
kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" }
toasty = { module = "com.github.GrenderG:Toasty", version.ref = "toasty" }
editorkit = { module = "com.blacksquircle.ui:editorkit", version.ref = "editorkit" }
language-base = { module = "com.blacksquircle.ui:language-base", version.ref = "editorkit" }