mirror of
https://github.com/bolucat/Archive.git
synced 2025-09-26 20:21:35 +08:00
Update On Fri May 3 20:28:02 CEST 2024
This commit is contained in:
1
.github/update.log
vendored
1
.github/update.log
vendored
@@ -635,3 +635,4 @@ Update On Mon Apr 29 20:27:31 CEST 2024
|
||||
Update On Tue Apr 30 20:31:38 CEST 2024
|
||||
Update On Wed May 1 20:30:48 CEST 2024
|
||||
Update On Thu May 2 20:28:05 CEST 2024
|
||||
Update On Fri May 3 20:27:51 CEST 2024
|
||||
|
@@ -17,6 +17,7 @@ data class Proxy(
|
||||
enum class Type(val group: Boolean) {
|
||||
Direct(false),
|
||||
Reject(false),
|
||||
RejectDrop(false),
|
||||
Compatible(false),
|
||||
Pass(false),
|
||||
|
||||
|
@@ -20,7 +20,7 @@
|
||||
"@mui/icons-material": "5.15.16",
|
||||
"@mui/lab": "5.0.0-alpha.170",
|
||||
"@mui/material": "5.15.16",
|
||||
"@mui/x-data-grid": "7.3.1",
|
||||
"@mui/x-data-grid": "7.3.2",
|
||||
"@nyanpasu/interface": "workspace:^",
|
||||
"@nyanpasu/ui": "workspace:^",
|
||||
"@tauri-apps/api": "1.5.4",
|
||||
|
@@ -99,7 +99,7 @@
|
||||
"stylelint-order": "6.0.4",
|
||||
"stylelint-scss": "6.2.1",
|
||||
"tailwindcss": "3.4.3",
|
||||
"tsx": "4.8.2",
|
||||
"tsx": "4.9.0",
|
||||
"typescript": "5.4.5"
|
||||
},
|
||||
"packageManager": "pnpm@9.0.6",
|
||||
|
47
clash-nyanpasu/pnpm-lock.yaml
generated
47
clash-nyanpasu/pnpm-lock.yaml
generated
@@ -127,8 +127,8 @@ importers:
|
||||
specifier: 3.4.3
|
||||
version: 3.4.3
|
||||
tsx:
|
||||
specifier: 4.8.2
|
||||
version: 4.8.2
|
||||
specifier: 4.9.0
|
||||
version: 4.9.0
|
||||
typescript:
|
||||
specifier: 5.4.5
|
||||
version: 5.4.5
|
||||
@@ -181,8 +181,8 @@ importers:
|
||||
specifier: 5.15.16
|
||||
version: 5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@mui/x-data-grid':
|
||||
specifier: 7.3.1
|
||||
version: 7.3.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
specifier: 7.3.2
|
||||
version: 7.3.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@nyanpasu/interface':
|
||||
specifier: workspace:^
|
||||
version: link:../interface
|
||||
@@ -1141,8 +1141,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@mui/x-data-grid@7.3.1':
|
||||
resolution: {integrity: sha512-Z+KlDnk2oZ5uthP4q7koRkD7D3vZ0aiqX+51EmnzUXQljjeQ57GbLm/VHcY+XEg7vvtMsGpycLXFdwwjqINk0A==}
|
||||
'@mui/x-data-grid@7.3.2':
|
||||
resolution: {integrity: sha512-seuRiZ2yyhzeUa7Thzap0xvvizGPSEwJRNOjY9kffjUr+0iXGF3PZGEsMoJ7jCjZ2peHX7FjfqBdssDvizxIDQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
'@mui/material': ^5.15.14
|
||||
@@ -1519,9 +1519,6 @@ packages:
|
||||
'@types/ms@0.7.34':
|
||||
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
|
||||
|
||||
'@types/node@20.12.7':
|
||||
resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==}
|
||||
|
||||
'@types/node@20.12.8':
|
||||
resolution: {integrity: sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==}
|
||||
|
||||
@@ -1826,8 +1823,8 @@ packages:
|
||||
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
caniuse-lite@1.0.30001614:
|
||||
resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==}
|
||||
caniuse-lite@1.0.30001615:
|
||||
resolution: {integrity: sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==}
|
||||
|
||||
ccount@2.0.1:
|
||||
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
||||
@@ -2130,8 +2127,8 @@ packages:
|
||||
eastasianwidth@0.2.0:
|
||||
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
||||
|
||||
electron-to-chromium@1.4.753:
|
||||
resolution: {integrity: sha512-Wn1XKa0Lc5kMe5UIwQc4+i5lhhBggF0l82C1bE3oOMASt4JVqdOyRIVc8mh0kiuL5CCptqwQJBmFbaPglLrN0Q==}
|
||||
electron-to-chromium@1.4.754:
|
||||
resolution: {integrity: sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==}
|
||||
|
||||
emoji-regex@10.3.0:
|
||||
resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
|
||||
@@ -4133,8 +4130,8 @@ packages:
|
||||
tslib@2.6.2:
|
||||
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
||||
|
||||
tsx@4.8.2:
|
||||
resolution: {integrity: sha512-hmmzS4U4mdy1Cnzpl/NQiPUC2k34EcNSTZYVJThYKhdqTwuBeF+4cG9KUK/PFQ7KHaAaYwqlb7QfmsE2nuj+WA==}
|
||||
tsx@4.9.0:
|
||||
resolution: {integrity: sha512-UY0UUhDPL6MkqkZU4xTEjEBOLfV+RIt4xeeJ1qwK73xai4/zveG+X6+tieILa7rjtegUW2LE4p7fw7gAoLuytA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
|
||||
@@ -5141,7 +5138,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@mui/x-data-grid@7.3.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
'@mui/x-data-grid@7.3.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.24.5
|
||||
'@mui/material': 5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
@@ -5419,7 +5416,7 @@ snapshots:
|
||||
|
||||
'@types/adm-zip@0.5.5':
|
||||
dependencies:
|
||||
'@types/node': 20.12.7
|
||||
'@types/node': 20.12.8
|
||||
|
||||
'@types/babel__core@7.20.5':
|
||||
dependencies:
|
||||
@@ -5487,10 +5484,6 @@ snapshots:
|
||||
|
||||
'@types/ms@0.7.34': {}
|
||||
|
||||
'@types/node@20.12.7':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/node@20.12.8':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
@@ -5785,7 +5778,7 @@ snapshots:
|
||||
autoprefixer@10.4.19(postcss@8.4.38):
|
||||
dependencies:
|
||||
browserslist: 4.23.0
|
||||
caniuse-lite: 1.0.30001614
|
||||
caniuse-lite: 1.0.30001615
|
||||
fraction.js: 4.3.7
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.0.0
|
||||
@@ -5835,8 +5828,8 @@ snapshots:
|
||||
|
||||
browserslist@4.23.0:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001614
|
||||
electron-to-chromium: 1.4.753
|
||||
caniuse-lite: 1.0.30001615
|
||||
electron-to-chromium: 1.4.754
|
||||
node-releases: 2.0.14
|
||||
update-browserslist-db: 1.0.14(browserslist@4.23.0)
|
||||
|
||||
@@ -5869,7 +5862,7 @@ snapshots:
|
||||
|
||||
camelcase@6.3.0: {}
|
||||
|
||||
caniuse-lite@1.0.30001614: {}
|
||||
caniuse-lite@1.0.30001615: {}
|
||||
|
||||
ccount@2.0.1: {}
|
||||
|
||||
@@ -6157,7 +6150,7 @@ snapshots:
|
||||
|
||||
eastasianwidth@0.2.0: {}
|
||||
|
||||
electron-to-chromium@1.4.753: {}
|
||||
electron-to-chromium@1.4.754: {}
|
||||
|
||||
emoji-regex@10.3.0: {}
|
||||
|
||||
@@ -8482,7 +8475,7 @@ snapshots:
|
||||
|
||||
tslib@2.6.2: {}
|
||||
|
||||
tsx@4.8.2:
|
||||
tsx@4.9.0:
|
||||
dependencies:
|
||||
esbuild: 0.20.2
|
||||
get-tsconfig: 4.7.3
|
||||
|
@@ -299,7 +299,7 @@ pub fn copy_clash_env(app_handle: &AppHandle) {
|
||||
|
||||
let sh =
|
||||
format!("export https_proxy={http_proxy} http_proxy={http_proxy} all_proxy={socks5_proxy}");
|
||||
let cmd: String = format!("set http_proxy={http_proxy} \n set https_proxy={http_proxy}");
|
||||
let cmd: String = format!("set http_proxy={http_proxy}\r\nset https_proxy={http_proxy}");
|
||||
let ps: String = format!("$env:HTTP_PROXY=\"{http_proxy}\"; $env:HTTPS_PROXY=\"{http_proxy}\"");
|
||||
|
||||
let mut cliboard = app_handle.clipboard_manager();
|
||||
|
@@ -20,6 +20,9 @@ fn main() -> std::io::Result<()> {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1");
|
||||
|
||||
crate::log_err!(init::init_config());
|
||||
|
||||
#[allow(unused_mut)]
|
||||
|
608
filebrowser/files/mime.go
Normal file
608
filebrowser/files/mime.go
Normal file
@@ -0,0 +1,608 @@
|
||||
package files
|
||||
|
||||
// This file contains code primarily sourced from::
|
||||
// github.com/kataras/iris
|
||||
|
||||
import (
|
||||
"mime"
|
||||
)
|
||||
|
||||
const (
|
||||
// ContentBinaryHeaderValue header value for binary data.
|
||||
ContentBinaryHeaderValue = "application/octet-stream"
|
||||
// ContentWebassemblyHeaderValue header value for web assembly files.
|
||||
ContentWebassemblyHeaderValue = "application/wasm"
|
||||
// ContentHTMLHeaderValue is the string of text/html response header's content type value.
|
||||
ContentHTMLHeaderValue = "text/html"
|
||||
// ContentJSONHeaderValue header value for JSON data.
|
||||
ContentJSONHeaderValue = "application/json"
|
||||
// ContentJSONProblemHeaderValue header value for JSON API problem error.
|
||||
// Read more at: https://tools.ietf.org/html/rfc7807
|
||||
ContentJSONProblemHeaderValue = "application/problem+json"
|
||||
// ContentXMLProblemHeaderValue header value for XML API problem error.
|
||||
// Read more at: https://tools.ietf.org/html/rfc7807
|
||||
ContentXMLProblemHeaderValue = "application/problem+xml"
|
||||
// ContentJavascriptHeaderValue header value for JSONP & Javascript data.
|
||||
ContentJavascriptHeaderValue = "text/javascript"
|
||||
// ContentTextHeaderValue header value for Text data.
|
||||
ContentTextHeaderValue = "text/plain"
|
||||
// ContentXMLHeaderValue header value for XML data.
|
||||
ContentXMLHeaderValue = "text/xml"
|
||||
// ContentXMLUnreadableHeaderValue obselete header value for XML.
|
||||
ContentXMLUnreadableHeaderValue = "application/xml"
|
||||
// ContentMarkdownHeaderValue custom key/content type, the real is the text/html.
|
||||
ContentMarkdownHeaderValue = "text/markdown"
|
||||
// ContentYAMLHeaderValue header value for YAML data.
|
||||
ContentYAMLHeaderValue = "application/x-yaml"
|
||||
// ContentYAMLTextHeaderValue header value for YAML plain text.
|
||||
ContentYAMLTextHeaderValue = "text/yaml"
|
||||
// ContentProtobufHeaderValue header value for Protobuf messages data.
|
||||
ContentProtobufHeaderValue = "application/x-protobuf"
|
||||
// ContentMsgPackHeaderValue header value for MsgPack data.
|
||||
ContentMsgPackHeaderValue = "application/msgpack"
|
||||
// ContentMsgPack2HeaderValue alternative header value for MsgPack data.
|
||||
ContentMsgPack2HeaderValue = "application/x-msgpack"
|
||||
// ContentFormHeaderValue header value for post form data.
|
||||
ContentFormHeaderValue = "application/x-www-form-urlencoded"
|
||||
// ContentFormMultipartHeaderValue header value for post multipart form data.
|
||||
ContentFormMultipartHeaderValue = "multipart/form-data"
|
||||
// ContentMultipartRelatedHeaderValue header value for multipart related data.
|
||||
ContentMultipartRelatedHeaderValue = "multipart/related"
|
||||
// ContentGRPCHeaderValue Content-Type header value for gRPC.
|
||||
ContentGRPCHeaderValue = "application/grpc"
|
||||
)
|
||||
|
||||
var types = map[string]string{
|
||||
".3dm": "x-world/x-3dmf",
|
||||
".3dmf": "x-world/x-3dmf",
|
||||
".7z": "application/x-7z-compressed",
|
||||
".a": "application/octet-stream",
|
||||
".aab": "application/x-authorware-bin",
|
||||
".aam": "application/x-authorware-map",
|
||||
".aas": "application/x-authorware-seg",
|
||||
".abc": "text/vndabc",
|
||||
".ace": "application/x-ace-compressed",
|
||||
".acgi": "text/html",
|
||||
".afl": "video/animaflex",
|
||||
".ai": "application/postscript",
|
||||
".aif": "audio/aiff",
|
||||
".aifc": "audio/aiff",
|
||||
".aiff": "audio/aiff",
|
||||
".aim": "application/x-aim",
|
||||
".aip": "text/x-audiosoft-intra",
|
||||
".alz": "application/x-alz-compressed",
|
||||
".ani": "application/x-navi-animation",
|
||||
".aos": "application/x-nokia-9000-communicator-add-on-software",
|
||||
".aps": "application/mime",
|
||||
".apk": "application/vnd.android.package-archive",
|
||||
".arc": "application/x-arc-compressed",
|
||||
".arj": "application/arj",
|
||||
".art": "image/x-jg",
|
||||
".asf": "video/x-ms-asf",
|
||||
".asm": "text/x-asm",
|
||||
".asp": "text/asp",
|
||||
".asx": "application/x-mplayer2",
|
||||
".au": "audio/basic",
|
||||
".avi": "video/x-msvideo",
|
||||
".avs": "video/avs-video",
|
||||
".bcpio": "application/x-bcpio",
|
||||
".bin": "application/mac-binary",
|
||||
".bmp": "image/bmp",
|
||||
".boo": "application/book",
|
||||
".book": "application/book",
|
||||
".boz": "application/x-bzip2",
|
||||
".bsh": "application/x-bsh",
|
||||
".bz2": "application/x-bzip2",
|
||||
".bz": "application/x-bzip",
|
||||
".c++": ContentTextHeaderValue,
|
||||
".c": "text/x-c",
|
||||
".cab": "application/vnd.ms-cab-compressed",
|
||||
".cat": "application/vndms-pkiseccat",
|
||||
".cc": "text/x-c",
|
||||
".ccad": "application/clariscad",
|
||||
".cco": "application/x-cocoa",
|
||||
".cdf": "application/cdf",
|
||||
".cer": "application/pkix-cert",
|
||||
".cha": "application/x-chat",
|
||||
".chat": "application/x-chat",
|
||||
".chrt": "application/vnd.kde.kchart",
|
||||
".class": "application/java",
|
||||
".com": ContentTextHeaderValue,
|
||||
".conf": ContentTextHeaderValue,
|
||||
".cpio": "application/x-cpio",
|
||||
".cpp": "text/x-c",
|
||||
".cpt": "application/mac-compactpro",
|
||||
".crl": "application/pkcs-crl",
|
||||
".crt": "application/pkix-cert",
|
||||
".crx": "application/x-chrome-extension",
|
||||
".csh": "text/x-scriptcsh",
|
||||
".css": "text/css",
|
||||
".csv": "text/csv",
|
||||
".cxx": ContentTextHeaderValue,
|
||||
".dar": "application/x-dar",
|
||||
".dcr": "application/x-director",
|
||||
".deb": "application/x-debian-package",
|
||||
".deepv": "application/x-deepv",
|
||||
".def": ContentTextHeaderValue,
|
||||
".der": "application/x-x509-ca-cert",
|
||||
".dif": "video/x-dv",
|
||||
".dir": "application/x-director",
|
||||
".divx": "video/divx",
|
||||
".dl": "video/dl",
|
||||
".dmg": "application/x-apple-diskimage",
|
||||
".doc": "application/msword",
|
||||
".dot": "application/msword",
|
||||
".dp": "application/commonground",
|
||||
".drw": "application/drafting",
|
||||
".dump": "application/octet-stream",
|
||||
".dv": "video/x-dv",
|
||||
".dvi": "application/x-dvi",
|
||||
".dwf": "drawing/x-dwf=(old)",
|
||||
".dwg": "application/acad",
|
||||
".dxf": "application/dxf",
|
||||
".dxr": "application/x-director",
|
||||
".el": "text/x-scriptelisp",
|
||||
".elc": "application/x-bytecodeelisp=(compiled=elisp)",
|
||||
".eml": "message/rfc822",
|
||||
".env": "application/x-envoy",
|
||||
".eps": "application/postscript",
|
||||
".es": "application/x-esrehber",
|
||||
".etx": "text/x-setext",
|
||||
".evy": "application/envoy",
|
||||
".exe": "application/octet-stream",
|
||||
".f77": "text/x-fortran",
|
||||
".f90": "text/x-fortran",
|
||||
".f": "text/x-fortran",
|
||||
".fdf": "application/vndfdf",
|
||||
".fif": "application/fractals",
|
||||
".fli": "video/fli",
|
||||
".flo": "image/florian",
|
||||
".flv": "video/x-flv",
|
||||
".flx": "text/vndfmiflexstor",
|
||||
".fmf": "video/x-atomic3d-feature",
|
||||
".for": "text/x-fortran",
|
||||
".fpx": "image/vndfpx",
|
||||
".frl": "application/freeloader",
|
||||
".funk": "audio/make",
|
||||
".g3": "image/g3fax",
|
||||
".g": ContentTextHeaderValue,
|
||||
".gif": "image/gif",
|
||||
".gl": "video/gl",
|
||||
".gsd": "audio/x-gsm",
|
||||
".gsm": "audio/x-gsm",
|
||||
".gsp": "application/x-gsp",
|
||||
".gss": "application/x-gss",
|
||||
".gtar": "application/x-gtar",
|
||||
".gz": "application/x-compressed",
|
||||
".gzip": "application/x-gzip",
|
||||
".h": "text/x-h",
|
||||
".hdf": "application/x-hdf",
|
||||
".help": "application/x-helpfile",
|
||||
".hgl": "application/vndhp-hpgl",
|
||||
".hh": "text/x-h",
|
||||
".hlb": "text/x-script",
|
||||
".hlp": "application/hlp",
|
||||
".hpg": "application/vndhp-hpgl",
|
||||
".hpgl": "application/vndhp-hpgl",
|
||||
".hqx": "application/binhex",
|
||||
".hta": "application/hta",
|
||||
".htc": "text/x-component",
|
||||
".htm": "text/html",
|
||||
".html": "text/html",
|
||||
".htmls": "text/html",
|
||||
".htt": "text/webviewhtml",
|
||||
".htx": "text/html",
|
||||
".ice": "x-conference/x-cooltalk",
|
||||
".ico": "image/x-icon",
|
||||
".ics": "text/calendar",
|
||||
".icz": "text/calendar",
|
||||
".idc": ContentTextHeaderValue,
|
||||
".ief": "image/ief",
|
||||
".iefs": "image/ief",
|
||||
".iges": "application/iges",
|
||||
".igs": "application/iges",
|
||||
".ima": "application/x-ima",
|
||||
".imap": "application/x-httpd-imap",
|
||||
".inf": "application/inf",
|
||||
".ins": "application/x-internett-signup",
|
||||
".ip": "application/x-ip2",
|
||||
".isu": "video/x-isvideo",
|
||||
".it": "audio/it",
|
||||
".iv": "application/x-inventor",
|
||||
".ivr": "i-world/i-vrml",
|
||||
".ivy": "application/x-livescreen",
|
||||
".jam": "audio/x-jam",
|
||||
".jav": "text/x-java-source",
|
||||
".java": "text/x-java-source",
|
||||
".jcm": "application/x-java-commerce",
|
||||
".jfif-tbnl": "image/jpeg",
|
||||
".jfif": "image/jpeg",
|
||||
".jnlp": "application/x-java-jnlp-file",
|
||||
".jpe": "image/jpeg",
|
||||
".jpeg": "image/jpeg",
|
||||
".jpg": "image/jpeg",
|
||||
".jps": "image/x-jps",
|
||||
".js": ContentJavascriptHeaderValue,
|
||||
".mjs": ContentJavascriptHeaderValue,
|
||||
".json": ContentJSONHeaderValue,
|
||||
".vue": ContentJavascriptHeaderValue,
|
||||
".jut": "image/jutvision",
|
||||
".kar": "audio/midi",
|
||||
".karbon": "application/vnd.kde.karbon",
|
||||
".kfo": "application/vnd.kde.kformula",
|
||||
".flw": "application/vnd.kde.kivio",
|
||||
".kml": "application/vnd.google-earth.kml+xml",
|
||||
".kmz": "application/vnd.google-earth.kmz",
|
||||
".kon": "application/vnd.kde.kontour",
|
||||
".kpr": "application/vnd.kde.kpresenter",
|
||||
".kpt": "application/vnd.kde.kpresenter",
|
||||
".ksp": "application/vnd.kde.kspread",
|
||||
".kwd": "application/vnd.kde.kword",
|
||||
".kwt": "application/vnd.kde.kword",
|
||||
".ksh": "text/x-scriptksh",
|
||||
".la": "audio/nspaudio",
|
||||
".lam": "audio/x-liveaudio",
|
||||
".latex": "application/x-latex",
|
||||
".lha": "application/lha",
|
||||
".lhx": "application/octet-stream",
|
||||
".list": ContentTextHeaderValue,
|
||||
".lma": "audio/nspaudio",
|
||||
".log": ContentTextHeaderValue,
|
||||
".lsp": "text/x-scriptlisp",
|
||||
".lst": ContentTextHeaderValue,
|
||||
".lsx": "text/x-la-asf",
|
||||
".ltx": "application/x-latex",
|
||||
".lzh": "application/octet-stream",
|
||||
".lzx": "application/lzx",
|
||||
".m1v": "video/mpeg",
|
||||
".m2a": "audio/mpeg",
|
||||
".m2v": "video/mpeg",
|
||||
".m3u": "audio/x-mpegurl",
|
||||
".m": "text/x-m",
|
||||
".man": "application/x-troff-man",
|
||||
".manifest": "text/cache-manifest",
|
||||
".map": "application/x-navimap",
|
||||
".mar": ContentTextHeaderValue,
|
||||
".mbd": "application/mbedlet",
|
||||
".mc$": "application/x-magic-cap-package-10",
|
||||
".mcd": "application/mcad",
|
||||
".mcf": "text/mcf",
|
||||
".mcp": "application/netmc",
|
||||
".me": "application/x-troff-me",
|
||||
".mht": "message/rfc822",
|
||||
".mhtml": "message/rfc822",
|
||||
".mid": "application/x-midi",
|
||||
".midi": "application/x-midi",
|
||||
".mif": "application/x-frame",
|
||||
".mime": "message/rfc822",
|
||||
".mjf": "audio/x-vndaudioexplosionmjuicemediafile",
|
||||
".mjpg": "video/x-motion-jpeg",
|
||||
".mm": "application/base64",
|
||||
".mme": "application/base64",
|
||||
".mod": "audio/mod",
|
||||
".moov": "video/quicktime",
|
||||
".mov": "video/quicktime",
|
||||
".movie": "video/x-sgi-movie",
|
||||
".mp2": "audio/mpeg",
|
||||
".mp3": "audio/mpeg",
|
||||
".mp4": "video/mp4",
|
||||
".mpa": "audio/mpeg",
|
||||
".mpc": "application/x-project",
|
||||
".mpe": "video/mpeg",
|
||||
".mpeg": "video/mpeg",
|
||||
".mpg": "video/mpeg",
|
||||
".mpga": "audio/mpeg",
|
||||
".mpp": "application/vndms-project",
|
||||
".mpt": "application/x-project",
|
||||
".mpv": "application/x-project",
|
||||
".mpx": "application/x-project",
|
||||
".mrc": "application/marc",
|
||||
".ms": "application/x-troff-ms",
|
||||
".mv": "video/x-sgi-movie",
|
||||
".my": "audio/make",
|
||||
".mzz": "application/x-vndaudioexplosionmzz",
|
||||
".nap": "image/naplps",
|
||||
".naplps": "image/naplps",
|
||||
".nc": "application/x-netcdf",
|
||||
".ncm": "application/vndnokiaconfiguration-message",
|
||||
".nif": "image/x-niff",
|
||||
".niff": "image/x-niff",
|
||||
".nix": "application/x-mix-transfer",
|
||||
".nsc": "application/x-conference",
|
||||
".nvd": "application/x-navidoc",
|
||||
".o": "application/octet-stream",
|
||||
".oda": "application/oda",
|
||||
".odb": "application/vnd.oasis.opendocument.database",
|
||||
".odc": "application/vnd.oasis.opendocument.chart",
|
||||
".odf": "application/vnd.oasis.opendocument.formula",
|
||||
".odg": "application/vnd.oasis.opendocument.graphics",
|
||||
".odi": "application/vnd.oasis.opendocument.image",
|
||||
".odm": "application/vnd.oasis.opendocument.text-master",
|
||||
".odp": "application/vnd.oasis.opendocument.presentation",
|
||||
".ods": "application/vnd.oasis.opendocument.spreadsheet",
|
||||
".odt": "application/vnd.oasis.opendocument.text",
|
||||
".oga": "audio/ogg",
|
||||
".ogg": "audio/ogg",
|
||||
".ogv": "video/ogg",
|
||||
".omc": "application/x-omc",
|
||||
".omcd": "application/x-omcdatamaker",
|
||||
".omcr": "application/x-omcregerator",
|
||||
".otc": "application/vnd.oasis.opendocument.chart-template",
|
||||
".otf": "application/vnd.oasis.opendocument.formula-template",
|
||||
".otg": "application/vnd.oasis.opendocument.graphics-template",
|
||||
".oth": "application/vnd.oasis.opendocument.text-web",
|
||||
".oti": "application/vnd.oasis.opendocument.image-template",
|
||||
".otm": "application/vnd.oasis.opendocument.text-master",
|
||||
".otp": "application/vnd.oasis.opendocument.presentation-template",
|
||||
".ots": "application/vnd.oasis.opendocument.spreadsheet-template",
|
||||
".ott": "application/vnd.oasis.opendocument.text-template",
|
||||
".p10": "application/pkcs10",
|
||||
".p12": "application/pkcs-12",
|
||||
".p7a": "application/x-pkcs7-signature",
|
||||
".p7c": "application/pkcs7-mime",
|
||||
".p7m": "application/pkcs7-mime",
|
||||
".p7r": "application/x-pkcs7-certreqresp",
|
||||
".p7s": "application/pkcs7-signature",
|
||||
".p": "text/x-pascal",
|
||||
".part": "application/pro_eng",
|
||||
".pas": "text/pascal",
|
||||
".pbm": "image/x-portable-bitmap",
|
||||
".pcl": "application/vndhp-pcl",
|
||||
".pct": "image/x-pict",
|
||||
".pcx": "image/x-pcx",
|
||||
".pdb": "chemical/x-pdb",
|
||||
".pdf": "application/pdf",
|
||||
".pfunk": "audio/make",
|
||||
".pgm": "image/x-portable-graymap",
|
||||
".pic": "image/pict",
|
||||
".pict": "image/pict",
|
||||
".pkg": "application/x-newton-compatible-pkg",
|
||||
".pko": "application/vndms-pkipko",
|
||||
".pl": "text/x-scriptperl",
|
||||
".plx": "application/x-pixclscript",
|
||||
".pm4": "application/x-pagemaker",
|
||||
".pm5": "application/x-pagemaker",
|
||||
".pm": "text/x-scriptperl-module",
|
||||
".png": "image/png",
|
||||
".pnm": "application/x-portable-anymap",
|
||||
".pot": "application/mspowerpoint",
|
||||
".pov": "model/x-pov",
|
||||
".ppa": "application/vndms-powerpoint",
|
||||
".ppm": "image/x-portable-pixmap",
|
||||
".pps": "application/mspowerpoint",
|
||||
".ppt": "application/mspowerpoint",
|
||||
".ppz": "application/mspowerpoint",
|
||||
".pre": "application/x-freelance",
|
||||
".prt": "application/pro_eng",
|
||||
".ps": "application/postscript",
|
||||
".psd": "application/octet-stream",
|
||||
".pvu": "paleovu/x-pv",
|
||||
".pwz": "application/vndms-powerpoint",
|
||||
".py": "text/x-scriptphyton",
|
||||
".pyc": "application/x-bytecodepython",
|
||||
".qcp": "audio/vndqcelp",
|
||||
".qd3": "x-world/x-3dmf",
|
||||
".qd3d": "x-world/x-3dmf",
|
||||
".qif": "image/x-quicktime",
|
||||
".qt": "video/quicktime",
|
||||
".qtc": "video/x-qtc",
|
||||
".qti": "image/x-quicktime",
|
||||
".qtif": "image/x-quicktime",
|
||||
".ra": "audio/x-pn-realaudio",
|
||||
".ram": "audio/x-pn-realaudio",
|
||||
".rar": "application/x-rar-compressed",
|
||||
".ras": "application/x-cmu-raster",
|
||||
".rast": "image/cmu-raster",
|
||||
".rexx": "text/x-scriptrexx",
|
||||
".rf": "image/vndrn-realflash",
|
||||
".rgb": "image/x-rgb",
|
||||
".rm": "application/vndrn-realmedia",
|
||||
".rmi": "audio/mid",
|
||||
".rmm": "audio/x-pn-realaudio",
|
||||
".rmp": "audio/x-pn-realaudio",
|
||||
".rng": "application/ringing-tones",
|
||||
".rnx": "application/vndrn-realplayer",
|
||||
".roff": "application/x-troff",
|
||||
".rp": "image/vndrn-realpix",
|
||||
".rpm": "audio/x-pn-realaudio-plugin",
|
||||
".rt": "text/vndrn-realtext",
|
||||
".rtf": "text/richtext",
|
||||
".rtx": "text/richtext",
|
||||
".rv": "video/vndrn-realvideo",
|
||||
".s": "text/x-asm",
|
||||
".s3m": "audio/s3m",
|
||||
".s7z": "application/x-7z-compressed",
|
||||
".saveme": "application/octet-stream",
|
||||
".sbk": "application/x-tbook",
|
||||
".scm": "text/x-scriptscheme",
|
||||
".sdml": ContentTextHeaderValue,
|
||||
".sdp": "application/sdp",
|
||||
".sdr": "application/sounder",
|
||||
".sea": "application/sea",
|
||||
".set": "application/set",
|
||||
".sgm": "text/x-sgml",
|
||||
".sgml": "text/x-sgml",
|
||||
".sh": "text/x-scriptsh",
|
||||
".shar": "application/x-bsh",
|
||||
".shtml": "text/x-server-parsed-html",
|
||||
".sid": "audio/x-psid",
|
||||
".skd": "application/x-koan",
|
||||
".skm": "application/x-koan",
|
||||
".skp": "application/x-koan",
|
||||
".skt": "application/x-koan",
|
||||
".sit": "application/x-stuffit",
|
||||
".sitx": "application/x-stuffitx",
|
||||
".sl": "application/x-seelogo",
|
||||
".smi": "application/smil",
|
||||
".smil": "application/smil",
|
||||
".snd": "audio/basic",
|
||||
".sol": "application/solids",
|
||||
".spc": "text/x-speech",
|
||||
".spl": "application/futuresplash",
|
||||
".spr": "application/x-sprite",
|
||||
".sprite": "application/x-sprite",
|
||||
".spx": "audio/ogg",
|
||||
".src": "application/x-wais-source",
|
||||
".ssi": "text/x-server-parsed-html",
|
||||
".ssm": "application/streamingmedia",
|
||||
".sst": "application/vndms-pkicertstore",
|
||||
".step": "application/step",
|
||||
".stl": "application/sla",
|
||||
".stp": "application/step",
|
||||
".sv4cpio": "application/x-sv4cpio",
|
||||
".sv4crc": "application/x-sv4crc",
|
||||
".svf": "image/vnddwg",
|
||||
".svg": "image/svg+xml",
|
||||
".svr": "application/x-world",
|
||||
".swf": "application/x-shockwave-flash",
|
||||
".t": "application/x-troff",
|
||||
".talk": "text/x-speech",
|
||||
".tar": "application/x-tar",
|
||||
".tbk": "application/toolbook",
|
||||
".tcl": "text/x-scripttcl",
|
||||
".tcsh": "text/x-scripttcsh",
|
||||
".tex": "application/x-tex",
|
||||
".texi": "application/x-texinfo",
|
||||
".texinfo": "application/x-texinfo",
|
||||
".text": ContentTextHeaderValue,
|
||||
".tgz": "application/gnutar",
|
||||
".tif": "image/tiff",
|
||||
".tiff": "image/tiff",
|
||||
".tr": "application/x-troff",
|
||||
".tsi": "audio/tsp-audio",
|
||||
".tsp": "application/dsptype",
|
||||
".tsv": "text/tab-separated-values",
|
||||
".turbot": "image/florian",
|
||||
".txt": ContentTextHeaderValue,
|
||||
".uil": "text/x-uil",
|
||||
".uni": "text/uri-list",
|
||||
".unis": "text/uri-list",
|
||||
".unv": "application/i-deas",
|
||||
".uri": "text/uri-list",
|
||||
".uris": "text/uri-list",
|
||||
".ustar": "application/x-ustar",
|
||||
".uu": "text/x-uuencode",
|
||||
".uue": "text/x-uuencode",
|
||||
".vcd": "application/x-cdlink",
|
||||
".vcf": "text/x-vcard",
|
||||
".vcard": "text/x-vcard",
|
||||
".vcs": "text/x-vcalendar",
|
||||
".vda": "application/vda",
|
||||
".vdo": "video/vdo",
|
||||
".vew": "application/groupwise",
|
||||
".viv": "video/vivo",
|
||||
".vivo": "video/vivo",
|
||||
".vmd": "application/vocaltec-media-desc",
|
||||
".vmf": "application/vocaltec-media-file",
|
||||
".voc": "audio/voc",
|
||||
".vos": "video/vosaic",
|
||||
".vox": "audio/voxware",
|
||||
".vqe": "audio/x-twinvq-plugin",
|
||||
".vqf": "audio/x-twinvq",
|
||||
".vql": "audio/x-twinvq-plugin",
|
||||
".vrml": "application/x-vrml",
|
||||
".vrt": "x-world/x-vrt",
|
||||
".vsd": "application/x-visio",
|
||||
".vst": "application/x-visio",
|
||||
".vsw": "application/x-visio",
|
||||
".w60": "application/wordperfect60",
|
||||
".w61": "application/wordperfect61",
|
||||
".w6w": "application/msword",
|
||||
".wav": "audio/wav",
|
||||
".wb1": "application/x-qpro",
|
||||
".wbmp": "image/vnd.wap.wbmp",
|
||||
".web": "application/vndxara",
|
||||
".wiz": "application/msword",
|
||||
".wk1": "application/x-123",
|
||||
".wmf": "windows/metafile",
|
||||
".wml": "text/vnd.wap.wml",
|
||||
".wmlc": "application/vnd.wap.wmlc",
|
||||
".wmls": "text/vnd.wap.wmlscript",
|
||||
".wmlsc": "application/vnd.wap.wmlscriptc",
|
||||
".word": "application/msword",
|
||||
".wp5": "application/wordperfect",
|
||||
".wp6": "application/wordperfect",
|
||||
".wp": "application/wordperfect",
|
||||
".wpd": "application/wordperfect",
|
||||
".wq1": "application/x-lotus",
|
||||
".wri": "application/mswrite",
|
||||
".wrl": "application/x-world",
|
||||
".wrz": "model/vrml",
|
||||
".wsc": "text/scriplet",
|
||||
".wsrc": "application/x-wais-source",
|
||||
".wtk": "application/x-wintalk",
|
||||
".x-png": "image/png",
|
||||
".xbm": "image/x-xbitmap",
|
||||
".xdr": "video/x-amt-demorun",
|
||||
".xgz": "xgl/drawing",
|
||||
".xif": "image/vndxiff",
|
||||
".xl": "application/excel",
|
||||
".xla": "application/excel",
|
||||
".xlb": "application/excel",
|
||||
".xlc": "application/excel",
|
||||
".xld": "application/excel",
|
||||
".xlk": "application/excel",
|
||||
".xll": "application/excel",
|
||||
".xlm": "application/excel",
|
||||
".xls": "application/excel",
|
||||
".xlt": "application/excel",
|
||||
".xlv": "application/excel",
|
||||
".xlw": "application/excel",
|
||||
".xm": "audio/xm",
|
||||
".xml": ContentXMLHeaderValue,
|
||||
".xmz": "xgl/movie",
|
||||
".xpix": "application/x-vndls-xpix",
|
||||
".xpm": "image/x-xpixmap",
|
||||
".xsr": "video/x-amt-showrun",
|
||||
".xwd": "image/x-xwd",
|
||||
".xyz": "chemical/x-pdb",
|
||||
".z": "application/x-compress",
|
||||
".zip": "application/zip",
|
||||
".zoo": "application/octet-stream",
|
||||
".zsh": "text/x-scriptzsh",
|
||||
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
".docm": "application/vnd.ms-word.document.macroEnabled.12",
|
||||
".dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
|
||||
".dotm": "application/vnd.ms-word.template.macroEnabled.12",
|
||||
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
".xlsm": "application/vnd.ms-excel.sheet.macroEnabled.12",
|
||||
".xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
|
||||
".xltm": "application/vnd.ms-excel.template.macroEnabled.12",
|
||||
".xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
|
||||
".xlam": "application/vnd.ms-excel.addin.macroEnabled.12",
|
||||
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
||||
".pptm": "application/vnd.ms-powerpoint.presentation.macroEnabled.12",
|
||||
".ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
|
||||
".ppsm": "application/vnd.ms-powerpoint.slideshow.macroEnabled.12",
|
||||
".potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
|
||||
".potm": "application/vnd.ms-powerpoint.template.macroEnabled.12",
|
||||
".ppam": "application/vnd.ms-powerpoint.addin.macroEnabled.12",
|
||||
".sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
|
||||
".sldm": "application/vnd.ms-powerpoint.slide.macroEnabled.12",
|
||||
".thmx": "application/vnd.ms-officetheme",
|
||||
".onetoc": "application/onenote",
|
||||
".onetoc2": "application/onenote",
|
||||
".onetmp": "application/onenote",
|
||||
".onepkg": "application/onenote",
|
||||
".xpi": "application/x-xpinstall",
|
||||
".wasm": "application/wasm",
|
||||
".m4a": "audio/mp4",
|
||||
".flac": "audio/x-flac",
|
||||
".amr": "audio/amr",
|
||||
".aac": "audio/aac",
|
||||
".opus": "video/ogg",
|
||||
".m4v": "video/mp4",
|
||||
".mkv": "video/x-matroska",
|
||||
".caf": "audio/x-caf",
|
||||
".m3u8": "application/x-mpegURL",
|
||||
".mpd": "application/dash+xml",
|
||||
".webp": "image/webp",
|
||||
}
|
||||
|
||||
//nolint:gochecknoinits
|
||||
func init() {
|
||||
for ext, typ := range types {
|
||||
// skip errors
|
||||
_ = mime.AddExtensionType(ext, typ)
|
||||
}
|
||||
}
|
@@ -12,6 +12,7 @@
|
||||
:data-type="type"
|
||||
:aria-label="name"
|
||||
:aria-selected="isSelected"
|
||||
:data-ext="getExtension(name).toLowerCase()"
|
||||
>
|
||||
<div>
|
||||
<img
|
||||
@@ -209,8 +210,10 @@ const drop = async (event: Event) => {
|
||||
|
||||
const itemClick = (event: Event | KeyboardEvent) => {
|
||||
if (
|
||||
!((event as KeyboardEvent).ctrlKey || (event as KeyboardEvent).metaKey) &&
|
||||
singleClick.value &&
|
||||
!(event as KeyboardEvent).ctrlKey &&
|
||||
!(event as KeyboardEvent).metaKey &&
|
||||
!(event as KeyboardEvent).shiftKey &&
|
||||
!fileStore.multiple
|
||||
)
|
||||
open();
|
||||
@@ -270,4 +273,14 @@ const click = (event: Event | KeyboardEvent) => {
|
||||
const open = () => {
|
||||
router.push({ path: props.url });
|
||||
};
|
||||
|
||||
const getExtension = (fileName: string): string => {
|
||||
const lastDotIndex = fileName.lastIndexOf('.');
|
||||
if (lastDotIndex === -1) {
|
||||
return fileName;
|
||||
}
|
||||
return fileName.substring(lastDotIndex );
|
||||
};
|
||||
|
||||
|
||||
</script>
|
||||
|
@@ -1,14 +1,8 @@
|
||||
<template>
|
||||
<video ref="videoPlayer" class="video-max video-js" controls>
|
||||
<source :src="source" />
|
||||
<track
|
||||
kind="subtitles"
|
||||
v-for="(sub, index) in subtitles"
|
||||
:key="index"
|
||||
:src="sub"
|
||||
:label="subLabel(sub)"
|
||||
:default="index === 0"
|
||||
/>
|
||||
<video ref="videoPlayer" class="video-max video-js" controls preload="auto">
|
||||
<source />
|
||||
<track kind="subtitles" v-for="(sub, index) in subtitles" :key="index" :src="sub" :label="subLabel(sub)"
|
||||
:default="index === 0" />
|
||||
<p class="vjs-no-js">
|
||||
Sorry, your browser doesn't support embedded videos, but don't worry, you
|
||||
can <a :href="source">download it</a>
|
||||
@@ -18,18 +12,18 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, onBeforeUnmount } from "vue";
|
||||
import { ref, onMounted, onBeforeUnmount, nextTick, } from "vue";
|
||||
import videojs from "video.js";
|
||||
import type Player from "video.js/dist/types/player";
|
||||
import "videojs-mobile-ui";
|
||||
import "videojs-hotkeys";
|
||||
|
||||
import "video.js/dist/video-js.min.css";
|
||||
import "videojs-mobile-ui/dist/videojs-mobile-ui.css";
|
||||
|
||||
const videoPlayer = ref<HTMLElement | null>(null);
|
||||
const player = ref<Player | null>(null);
|
||||
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
source: string;
|
||||
@@ -41,33 +35,14 @@ const props = withDefaults(
|
||||
}
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
player.value = videojs(
|
||||
videoPlayer.value!,
|
||||
{
|
||||
html5: {
|
||||
// needed for customizable subtitles
|
||||
// TODO: add to user settings
|
||||
nativeTextTracks: false,
|
||||
},
|
||||
plugins: {
|
||||
hotkeys: {
|
||||
volumeStep: 0.1,
|
||||
seekStep: 10,
|
||||
enableModifiersForNumbers: false,
|
||||
},
|
||||
},
|
||||
...props.options,
|
||||
},
|
||||
// onReady callback
|
||||
async () => {
|
||||
// player.value!.log("onPlayerReady", this);
|
||||
}
|
||||
);
|
||||
// TODO: need to test on mobile
|
||||
// @ts-ignore
|
||||
player.value!.mobileUi();
|
||||
});
|
||||
const source = ref(props.source)
|
||||
const sourceType = ref("")
|
||||
|
||||
nextTick(() => {
|
||||
initVideoPlayer()
|
||||
})
|
||||
|
||||
onMounted(() => { });
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
if (player.value) {
|
||||
@@ -76,6 +51,67 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
});
|
||||
|
||||
const initVideoPlayer = async () => {
|
||||
try {
|
||||
const lang = document.documentElement.lang;
|
||||
const languagePack = await (languageImports[lang] || languageImports.en)?.();
|
||||
videojs.addLanguage('videoPlayerLocal', languagePack.default);
|
||||
sourceType.value = ""
|
||||
|
||||
//
|
||||
sourceType.value = getSourceType(source.value);
|
||||
|
||||
const srcOpt = { sources: { src: props.source, type: sourceType.value } }
|
||||
//Supporting localized language display.
|
||||
const langOpt = { language: "videoPlayerLocal" }
|
||||
// support for playback at different speeds.
|
||||
const playbackRatesOpt = { playbackRates: [0.5, 1, 1.5, 2, 2.5, 3] }
|
||||
let options = getOptions(props.options, langOpt, srcOpt, playbackRatesOpt)
|
||||
player.value = videojs(videoPlayer.value!, options, () => {
|
||||
});
|
||||
|
||||
// TODO: need to test on mobile
|
||||
// @ts-ignore
|
||||
player.value!.mobileUi();
|
||||
} catch (error) {
|
||||
console.error("Error initializing video player:", error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const getOptions = (...srcOpt: any[]) => {
|
||||
const options = {
|
||||
controlBar: {
|
||||
skipButtons: {
|
||||
forward: 5,
|
||||
backward: 5
|
||||
}
|
||||
|
||||
},
|
||||
html5: {
|
||||
nativeTextTracks: false,
|
||||
},
|
||||
plugins: {
|
||||
hotkeys: {
|
||||
volumeStep: 0.1,
|
||||
seekStep: 10,
|
||||
enableModifiersForNumbers: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
return videojs.obj.merge(options, ...srcOpt);
|
||||
}
|
||||
|
||||
// Attempting to fix the issue of being unable to play .MKV format video files
|
||||
const getSourceType = (source: string) => {
|
||||
const fileExtension = source ? source.split("?")[0].split(".").pop() : "";
|
||||
if (fileExtension?.toLowerCase() === "mkv") {
|
||||
return "video/mp4";
|
||||
}
|
||||
return "";
|
||||
};
|
||||
|
||||
const subLabel = (subUrl: string) => {
|
||||
let url: URL;
|
||||
try {
|
||||
@@ -95,6 +131,36 @@ const subLabel = (subUrl: string) => {
|
||||
|
||||
return label;
|
||||
};
|
||||
|
||||
interface LanguageImports {
|
||||
[key: string]: () => Promise<any>;
|
||||
}
|
||||
|
||||
const languageImports: LanguageImports = {
|
||||
'he': () => import('video.js/dist/lang/he.json'),
|
||||
'hu': () => import('video.js/dist/lang/hu.json'),
|
||||
'ar': () => import('video.js/dist/lang/ar.json'),
|
||||
'de': () => import('video.js/dist/lang/de.json'),
|
||||
'el': () => import('video.js/dist/lang/el.json'),
|
||||
'en': () => import('video.js/dist/lang/en.json'),
|
||||
'es': () => import('video.js/dist/lang/es.json'),
|
||||
'fr': () => import('video.js/dist/lang/fr.json'),
|
||||
'it': () => import('video.js/dist/lang/it.json'),
|
||||
'ja': () => import('video.js/dist/lang/ja.json'),
|
||||
'ko': () => import('video.js/dist/lang/ko.json'),
|
||||
'nl-be': () => import('video.js/dist/lang/nl.json'),
|
||||
'pl': () => import('video.js/dist/lang/pl.json'),
|
||||
'pt-br': () => import('video.js/dist/lang/pt-BR.json'),
|
||||
'pt': () => import('video.js/dist/lang/pt-PT.json'),
|
||||
'ro': () => import('video.js/dist/lang/ro.json'),
|
||||
'ru': () => import('video.js/dist/lang/ru.json'),
|
||||
'sk': () => import('video.js/dist/lang/sk.json'),
|
||||
'tr': () => import('video.js/dist/lang/tr.json'),
|
||||
'uk': () => import('video.js/dist/lang/uk.json'),
|
||||
'zh-cn': () => import('video.js/dist/lang/zh-CN.json'),
|
||||
'zh-tw': () => import('video.js/dist/lang/zh-TW.json'),
|
||||
};
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
.video-max {
|
||||
|
@@ -33,117 +33,118 @@
|
||||
|
||||
/* #f90 - Image */
|
||||
|
||||
.file-icons [aria-label$=".ai"] i::before,
|
||||
.file-icons [aria-label$=".odg"] i::before,
|
||||
.file-icons [aria-label$=".xcf"] i::before {
|
||||
.file-icons [data-ext=".ai"] i::before,
|
||||
.file-icons [data-ext=".odg"] i::before,
|
||||
.file-icons [data-ext=".xcf"] i::before {
|
||||
content: "image";
|
||||
}
|
||||
|
||||
/* #f90 - Presentation */
|
||||
|
||||
.file-icons [aria-label$=".odp"] i::before,
|
||||
.file-icons [aria-label$=".ppt"] i::before,
|
||||
.file-icons [aria-label$=".pptx"] i::before {
|
||||
.file-icons [data-ext=".odp"] i::before,
|
||||
.file-icons [data-ext=".ppt"] i::before,
|
||||
.file-icons [data-ext=".pptx"] i::before {
|
||||
content: "slideshow";
|
||||
}
|
||||
|
||||
|
||||
/* #0f0 - Spreadsheet/Database */
|
||||
|
||||
.file-icons [aria-label$=".csv"] i::before,
|
||||
.file-icons [aria-label$=".db"] i::before,
|
||||
.file-icons [aria-label$=".odb"] i::before,
|
||||
.file-icons [aria-label$=".ods"] i::before,
|
||||
.file-icons [aria-label$=".xls"] i::before,
|
||||
.file-icons [aria-label$=".xlsx"] i::before {
|
||||
.file-icons [data-ext=".csv"] i::before,
|
||||
.file-icons [data-ext=".db"] i::before,
|
||||
.file-icons [data-ext=".odb"] i::before,
|
||||
.file-icons [data-ext=".ods"] i::before,
|
||||
.file-icons [data-ext=".xls"] i::before,
|
||||
.file-icons [data-ext=".xlsx"] i::before {
|
||||
content: "border_all";
|
||||
}
|
||||
|
||||
/* #00f - Document */
|
||||
|
||||
.file-icons [aria-label$=".doc"] i::before,
|
||||
.file-icons [aria-label$=".docx"] i::before,
|
||||
.file-icons [aria-label$=".log"] i::before,
|
||||
.file-icons [aria-label$=".odt"] i::before,
|
||||
.file-icons [aria-label$=".rtf"] i::before {
|
||||
.file-icons [data-ext=".doc"] i::before,
|
||||
.file-icons [data-ext=".docx"] i::before,
|
||||
.file-icons [data-ext=".log"] i::before,
|
||||
.file-icons [data-ext=".odt"] i::before,
|
||||
.file-icons [data-ext=".rtf"] i::before {
|
||||
content: "description";
|
||||
}
|
||||
|
||||
/* #999 - Code */
|
||||
|
||||
.file-icons [aria-label$=".c"] i::before,
|
||||
.file-icons [aria-label$=".cpp"] i::before,
|
||||
.file-icons [aria-label$=".cs"] i::before,
|
||||
.file-icons [aria-label$=".css"] i::before,
|
||||
.file-icons [aria-label$=".go"] i::before,
|
||||
.file-icons [aria-label$=".h"] i::before,
|
||||
.file-icons [aria-label$=".html"] i::before,
|
||||
.file-icons [aria-label$=".java"] i::before,
|
||||
.file-icons [aria-label$=".js"] i::before,
|
||||
.file-icons [aria-label$=".json"] i::before,
|
||||
.file-icons [aria-label$=".kt"] i::before,
|
||||
.file-icons [aria-label$=".php"] i::before,
|
||||
.file-icons [aria-label$=".py"] i::before,
|
||||
.file-icons [aria-label$=".rb"] i::before,
|
||||
.file-icons [aria-label$=".rs"] i::before,
|
||||
.file-icons [aria-label$=".vue"] i::before,
|
||||
.file-icons [aria-label$=".xml"] i::before,
|
||||
.file-icons [aria-label$=".yml"] i::before {
|
||||
.file-icons [data-ext=".c"] i::before,
|
||||
.file-icons [data-ext=".cpp"] i::before,
|
||||
.file-icons [data-ext=".cs"] i::before,
|
||||
.file-icons [data-ext=".css"] i::before,
|
||||
.file-icons [data-ext=".go"] i::before,
|
||||
.file-icons [data-ext=".h"] i::before,
|
||||
.file-icons [data-ext=".html"] i::before,
|
||||
.file-icons [data-ext=".java"] i::before,
|
||||
.file-icons [data-ext=".js"] i::before,
|
||||
.file-icons [data-ext=".json"] i::before,
|
||||
.file-icons [data-ext=".kt"] i::before,
|
||||
.file-icons [data-ext=".php"] i::before,
|
||||
.file-icons [data-ext=".py"] i::before,
|
||||
.file-icons [data-ext=".rb"] i::before,
|
||||
.file-icons [data-ext=".rs"] i::before,
|
||||
.file-icons [data-ext=".vue"] i::before,
|
||||
.file-icons [data-ext=".xml"] i::before,
|
||||
.file-icons [data-ext=".yml"] i::before {
|
||||
content: "code";
|
||||
}
|
||||
|
||||
/* #999 - Executable */
|
||||
|
||||
.file-icons [aria-label$=".apk"] i::before,
|
||||
.file-icons [aria-label$=".bat"] i::before,
|
||||
.file-icons [aria-label$=".exe"] i::before,
|
||||
.file-icons [aria-label$=".jar"] i::before,
|
||||
.file-icons [aria-label$=".ps1"] i::before,
|
||||
.file-icons [aria-label$=".sh"] i::before {
|
||||
.file-icons [data-ext=".apk"] i::before,
|
||||
.file-icons [data-ext=".bat"] i::before,
|
||||
.file-icons [data-ext=".exe"] i::before,
|
||||
.file-icons [data-ext=".jar"] i::before,
|
||||
.file-icons [data-ext=".ps1"] i::before,
|
||||
.file-icons [data-ext=".sh"] i::before {
|
||||
content: "web_asset";
|
||||
}
|
||||
|
||||
/* #999 - Installer */
|
||||
|
||||
.file-icons [aria-label$=".deb"] i::before,
|
||||
.file-icons [aria-label$=".msi"] i::before,
|
||||
.file-icons [aria-label$=".pkg"] i::before,
|
||||
.file-icons [aria-label$=".rpm"] i::before {
|
||||
.file-icons [data-ext=".deb"] i::before,
|
||||
.file-icons [data-ext=".msi"] i::before,
|
||||
.file-icons [data-ext=".pkg"] i::before,
|
||||
.file-icons [data-ext=".rpm"] i::before {
|
||||
content: "archive";
|
||||
}
|
||||
|
||||
/* #999 - Compressed */
|
||||
|
||||
.file-icons [aria-label$=".7z"] i::before,
|
||||
.file-icons [aria-label$=".bz2"] i::before,
|
||||
.file-icons [aria-label$=".cab"] i::before,
|
||||
.file-icons [aria-label$=".gz"] i::before,
|
||||
.file-icons [aria-label$=".rar"] i::before,
|
||||
.file-icons [aria-label$=".tar"] i::before,
|
||||
.file-icons [aria-label$=".xz"] i::before,
|
||||
.file-icons [aria-label$=".zip"] i::before,
|
||||
.file-icons [aria-label$=".zst"] i::before {
|
||||
.file-icons [data-ext=".7z"] i::before,
|
||||
.file-icons [data-ext=".bz2"] i::before,
|
||||
.file-icons [data-ext=".cab"] i::before,
|
||||
.file-icons [data-ext=".gz"] i::before,
|
||||
.file-icons [data-ext=".rar"] i::before,
|
||||
.file-icons [data-ext=".tar"] i::before,
|
||||
.file-icons [data-ext=".xz"] i::before,
|
||||
.file-icons [data-ext=".zip"] i::before,
|
||||
.file-icons [data-ext=".zst"] i::before {
|
||||
content: "folder_zip";
|
||||
}
|
||||
|
||||
/* #999 - Disk */
|
||||
|
||||
.file-icons [aria-label$=".ccd"] i::before,
|
||||
.file-icons [aria-label$=".dmg"] i::before,
|
||||
.file-icons [aria-label$=".iso"] i::before,
|
||||
.file-icons [aria-label$=".mdf"] i::before,
|
||||
.file-icons [aria-label$=".vdi"] i::before,
|
||||
.file-icons [aria-label$=".vhd"] i::before,
|
||||
.file-icons [aria-label$=".vmdk"] i::before,
|
||||
.file-icons [aria-label$=".wim"] i::before {
|
||||
.file-icons [data-ext=".ccd"] i::before,
|
||||
.file-icons [data-ext=".dmg"] i::before,
|
||||
.file-icons [data-ext=".iso"] i::before,
|
||||
.file-icons [data-ext=".mdf"] i::before,
|
||||
.file-icons [data-ext=".vdi"] i::before,
|
||||
.file-icons [data-ext=".vhd"] i::before,
|
||||
.file-icons [data-ext=".vmdk"] i::before,
|
||||
.file-icons [data-ext=".wim"] i::before {
|
||||
content: "album";
|
||||
}
|
||||
|
||||
/* #999 - Font */
|
||||
|
||||
.file-icons [aria-label$=".otf"] i::before,
|
||||
.file-icons [aria-label$=".ttf"] i::before,
|
||||
.file-icons [aria-label$=".woff"] i::before,
|
||||
.file-icons [aria-label$=".woff2"] i::before {
|
||||
.file-icons [data-ext=".otf"] i::before,
|
||||
.file-icons [data-ext=".ttf"] i::before,
|
||||
.file-icons [data-ext=".woff"] i::before,
|
||||
.file-icons [data-ext=".woff2"] i::before {
|
||||
content: "font_download";
|
||||
}
|
||||
|
||||
@@ -151,92 +152,93 @@
|
||||
|
||||
/* General */
|
||||
|
||||
.file-icons [data-type="audio"] i {
|
||||
.file-icons [data-ext="audio"] i {
|
||||
color: var(--icon-yellow);
|
||||
}
|
||||
.file-icons [data-type="image"] i {
|
||||
.file-icons [data-ext="image"] i {
|
||||
color: var(--icon-orange);
|
||||
}
|
||||
.file-icons [data-type="video"] i {
|
||||
.file-icons [data-ext="video"] i {
|
||||
color: var(--icon-violet);
|
||||
}
|
||||
.file-icons [data-type="invalid_link"] i {
|
||||
.file-icons [data-ext="invalid_link"] i {
|
||||
color: var(--icon-red);
|
||||
}
|
||||
|
||||
/* #f00 - Adobe/Oracle */
|
||||
|
||||
.file-icons [aria-label$=".ai"] i,
|
||||
.file-icons [aria-label$=".java"] i,
|
||||
.file-icons [aria-label$=".jar"] i,
|
||||
.file-icons [aria-label$=".psd"] i,
|
||||
.file-icons [aria-label$=".rb"] i,
|
||||
.file-icons [data-type="pdf"] i {
|
||||
.file-icons [data-ext=".ai"] i,
|
||||
.file-icons [data-ext=".java"] i,
|
||||
.file-icons [data-ext=".jar"] i,
|
||||
.file-icons [data-ext=".psd"] i,
|
||||
.file-icons [data-ext=".rb"] i,
|
||||
.file-icons [data-ext="pdf"] i {
|
||||
color: var(--icon-red);
|
||||
}
|
||||
|
||||
/* #f90 - Image/Presentation */
|
||||
|
||||
.file-icons [aria-label$=".html"] i,
|
||||
.file-icons [aria-label$=".odg"] i,
|
||||
.file-icons [aria-label$=".odp"] i,
|
||||
.file-icons [aria-label$=".ppt"] i,
|
||||
.file-icons [aria-label$=".pptx"] i,
|
||||
.file-icons [aria-label$=".vue"] i,
|
||||
.file-icons [aria-label$=".xcf"] i {
|
||||
.file-icons [data-ext=".html"] i,
|
||||
.file-icons [data-ext=".odg"] i,
|
||||
.file-icons [data-ext=".odp"] i,
|
||||
.file-icons [data-ext=".ppt"] i,
|
||||
.file-icons [data-ext=".pptx"] i,
|
||||
.file-icons [data-ext=".vue"] i,
|
||||
.file-icons [data-ext=".xcf"] i {
|
||||
color: var(--icon-orange);
|
||||
}
|
||||
|
||||
/* #ff0 - Various */
|
||||
|
||||
.file-icons [aria-label$=".css"] i,
|
||||
.file-icons [aria-label$=".js"] i,
|
||||
.file-icons [aria-label$=".json"] i,
|
||||
.file-icons [aria-label$=".zip"] i {
|
||||
.file-icons [data-ext=".css"] i,
|
||||
.file-icons [data-ext=".js"] i,
|
||||
.file-icons [data-ext=".json"] i,
|
||||
.file-icons [data-ext=".zip"] i {
|
||||
color: var(--icon-yellow);
|
||||
}
|
||||
|
||||
/* #0f0 - Spreadsheet/Google */
|
||||
|
||||
.file-icons [aria-label$=".apk"] i,
|
||||
.file-icons [aria-label$=".dex"] i,
|
||||
.file-icons [aria-label$=".go"] i,
|
||||
.file-icons [aria-label$=".ods"] i,
|
||||
.file-icons [aria-label$=".xls"] i,
|
||||
.file-icons [aria-label$=".xlsx"] i {
|
||||
.file-icons [data-ext=".apk"] i,
|
||||
.file-icons [data-ext=".dex"] i,
|
||||
.file-icons [data-ext=".go"] i,
|
||||
.file-icons [data-ext=".ods"] i,
|
||||
.file-icons [data-ext=".xls"] i,
|
||||
.file-icons [data-ext=".xlsx"] i ,
|
||||
.file-icons [data-ext="xlsx"] i::before{
|
||||
color: var(--icon-green);
|
||||
}
|
||||
|
||||
/* #00f - Document/Microsoft/Apple/Closed */
|
||||
|
||||
.file-icons [aria-label$=".aac"] i,
|
||||
.file-icons [aria-label$=".bat"] i,
|
||||
.file-icons [aria-label$=".cab"] i,
|
||||
.file-icons [aria-label$=".cs"] i,
|
||||
.file-icons [aria-label$=".dmg"] i,
|
||||
.file-icons [aria-label$=".doc"] i,
|
||||
.file-icons [aria-label$=".docx"] i,
|
||||
.file-icons [aria-label$=".emf"] i,
|
||||
.file-icons [aria-label$=".exe"] i,
|
||||
.file-icons [aria-label$=".ico"] i,
|
||||
.file-icons [aria-label$=".mp2"] i,
|
||||
.file-icons [aria-label$=".mp3"] i,
|
||||
.file-icons [aria-label$=".mp4"] i,
|
||||
.file-icons [aria-label$=".mpg"] i,
|
||||
.file-icons [aria-label$=".msi"] i,
|
||||
.file-icons [aria-label$=".odt"] i,
|
||||
.file-icons [aria-label$=".ps1"] i,
|
||||
.file-icons [aria-label$=".rtf"] i,
|
||||
.file-icons [aria-label$=".vob"] i,
|
||||
.file-icons [aria-label$=".wim"] i {
|
||||
.file-icons [data-ext=".aac"] i,
|
||||
.file-icons [data-ext=".bat"] i,
|
||||
.file-icons [data-ext=".cab"] i,
|
||||
.file-icons [data-ext=".cs"] i,
|
||||
.file-icons [data-ext=".dmg"] i,
|
||||
.file-icons [data-ext=".doc"] i,
|
||||
.file-icons [data-ext=".docx"] i,
|
||||
.file-icons [data-ext=".emf"] i,
|
||||
.file-icons [data-ext=".exe"] i,
|
||||
.file-icons [data-ext=".ico"] i,
|
||||
.file-icons [data-ext=".mp2"] i,
|
||||
.file-icons [data-ext=".mp3"] i,
|
||||
.file-icons [data-ext=".mp4"] i,
|
||||
.file-icons [data-ext=".mpg"] i,
|
||||
.file-icons [data-ext=".msi"] i,
|
||||
.file-icons [data-ext=".odt"] i,
|
||||
.file-icons [data-ext=".ps1"] i,
|
||||
.file-icons [data-ext=".rtf"] i,
|
||||
.file-icons [data-ext=".vob"] i,
|
||||
.file-icons [data-ext=".wim"] i {
|
||||
color: var(--icon-blue);
|
||||
}
|
||||
|
||||
/* #60f - Various */
|
||||
|
||||
.file-icons [aria-label$=".iso"] i,
|
||||
.file-icons [aria-label$=".php"] i,
|
||||
.file-icons [aria-label$=".rar"] i {
|
||||
.file-icons [data-ext=".iso"] i,
|
||||
.file-icons [data-ext=".php"] i,
|
||||
.file-icons [data-ext=".rar"] i {
|
||||
color: var(--icon-violet);
|
||||
}
|
||||
|
||||
|
@@ -38,9 +38,9 @@ I18N: [English](README_EN.md) | [简体中文](README.md) | [日本語](README_J
|
||||
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
|
||||
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev libgmp3-dev \
|
||||
libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev \
|
||||
libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python3 \
|
||||
libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 \
|
||||
python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion swig texinfo \
|
||||
uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev fuse-devel
|
||||
uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
|
||||
```
|
||||
|
||||
3. 下载源代码,更新 feeds 并选择配置
|
||||
|
@@ -7,6 +7,7 @@
|
||||
/dts-v1/;
|
||||
#include "mt7988a-rfb-spim-nand.dtsi"
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
model = "MediaTek MT7988A DSA 10G SPIM-NAND RFB";
|
||||
@@ -29,173 +30,105 @@
|
||||
pinctrl-0 = <&mdio0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
&gmac0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
status = "okay";
|
||||
phy-mode = "internal";
|
||||
phy-connection-type = "internal";
|
||||
phy = <&int_2p5g_phy>;
|
||||
};
|
||||
|
||||
&gmac2 {
|
||||
status = "okay";
|
||||
phy-mode = "usxgmii";
|
||||
phy-connection-type = "usxgmii";
|
||||
phy = <&phy8>;
|
||||
};
|
||||
|
||||
&mdio_bus {
|
||||
/* external Aquantia AQR113C */
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 72 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "internal";
|
||||
phy-connection-type = "internal";
|
||||
phy = <&phy15>;
|
||||
/* external Aquantia AQR113C */
|
||||
phy8: ethernet-phy@8 {
|
||||
reg = <8>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 71 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
gmac2: mac@2 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <2>;
|
||||
phy-mode = "10gbase-kr";
|
||||
phy-connection-type = "10gbase-kr";
|
||||
phy = <&phy8>;
|
||||
/* external Maxlinear GPY211C */
|
||||
phy5: ethernet-phy@5 {
|
||||
reg = <5>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
mdio0: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* external Aquantia AQR113C */
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 72 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
/* external Aquantia AQR113C */
|
||||
phy8: ethernet-phy@8 {
|
||||
reg = <8>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 71 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
/* external Maxlinear GPY211C */
|
||||
phy5: ethernet-phy@5 {
|
||||
reg = <5>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
/* external Maxlinear GPY211C */
|
||||
phy13: ethernet-phy@13 {
|
||||
reg = <13>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
/* internal 2.5G PHY */
|
||||
phy15: ethernet-phy@15 {
|
||||
reg = <15>;
|
||||
pinctrl-names = "i2p5gbe-led";
|
||||
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "internal";
|
||||
};
|
||||
/* external Maxlinear GPY211C */
|
||||
phy13: ethernet-phy@13 {
|
||||
reg = <13>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
};
|
||||
|
||||
&int_2p5g_phy {
|
||||
pinctrl-names = "i2p5gbe-led";
|
||||
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
};
|
||||
|
||||
&switch {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan0";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy0>;
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy1>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy2>;
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan3";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy3>;
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mediatek,pio = <&pio>;
|
||||
|
||||
gsw_phy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe0_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p0>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
|
||||
gsw_phy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <1>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe1_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p1>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
|
||||
gsw_phy2: ethernet-phy@2 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <2>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe2_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p2>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
|
||||
gsw_phy3: ethernet-phy@3 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <3>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe3_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p3>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gsw_phy0 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe0_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy0_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&gsw_phy1 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe1_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy1_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&gsw_phy2 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe2_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy2_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&gsw_phy3 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe3_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy3_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
@@ -4,12 +4,13 @@
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/reset/ti-syscon.h>
|
||||
#include <dt-bindings/clock/mediatek,mt7988-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include <dt-bindings/reset/ti-syscon.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
@@ -144,9 +145,9 @@
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
|
||||
/* 320 KiB reserved for ARM Trusted Firmware (BL31 and BL32) */
|
||||
secmon_reserved: secmon@43000000 {
|
||||
reg = <0 0x43000000 0 0x30000>;
|
||||
reg = <0 0x43000000 0 0x50000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
@@ -228,7 +229,7 @@
|
||||
"iocfg_lb_base", "iocfg_tl_base", "eint";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pio 0 0 83>;
|
||||
gpio-ranges = <&pio 0 0 84>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gic>;
|
||||
@@ -260,47 +261,131 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_pins: i2c2-pins-g0 {
|
||||
i2c1_sfp_pins: i2c1-sfp-pins-g0 {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c1_sfp";
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_pins: i2c2-pins {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c2";
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_0_pins: i2c2-pins-g0 {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c2_0";
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_1_pins: i2c2-pins-g1 {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c2_1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe0_led0_pins: gbe0-pins {
|
||||
gbe0_led0_pins: gbe0-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe0_led0";
|
||||
};
|
||||
};
|
||||
|
||||
gbe1_led0_pins: gbe1-pins {
|
||||
gbe1_led0_pins: gbe1-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe1_led0";
|
||||
};
|
||||
};
|
||||
|
||||
gbe2_led0_pins: gbe2-pins {
|
||||
gbe2_led0_pins: gbe2-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe2_led0";
|
||||
};
|
||||
};
|
||||
|
||||
gbe3_led0_pins: gbe3-pins {
|
||||
gbe3_led0_pins: gbe3-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe3_led0";
|
||||
};
|
||||
};
|
||||
|
||||
i2p5gbe_led0_pins: 2p5gbe-pins {
|
||||
gbe0_led1_pins: gbe0-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe0_led1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe1_led1_pins: gbe1-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe1_led1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe2_led1_pins: gbe2-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe2_led1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe3_led1_pins: gbe3-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe3_led1";
|
||||
};
|
||||
};
|
||||
|
||||
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "2p5gbe_led0";
|
||||
};
|
||||
};
|
||||
|
||||
i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "2p5gbe_led1";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_emmc_45: mmc0-pins-emmc-45 {
|
||||
mux {
|
||||
function = "flash";
|
||||
groups = "emmc_45";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_emmc_51: mmc0-pins-emmc-51 {
|
||||
mux {
|
||||
function = "flash";
|
||||
groups = "emmc_51";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_sdcard: mmc0-pins-sdcard {
|
||||
mux {
|
||||
function = "flash";
|
||||
groups = "sdcard";
|
||||
};
|
||||
};
|
||||
|
||||
uart0_pins: uart0-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart0";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sgmiisys0: syscon@10060000 {
|
||||
@@ -380,6 +465,8 @@
|
||||
<&infracfg CLK_INFRA_MUX_UART0_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
|
||||
<&topckgen CLK_TOP_UART_SEL>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -645,6 +732,29 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc0: mmc@11230000 {
|
||||
compatible = "mediatek,mt7986-mmc",
|
||||
"mediatek,mt7981-mmc";
|
||||
reg = <0 0x11230000 0 0x1000>,
|
||||
<0 0x11D60000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&infracfg CLK_INFRA_MSDC400>,
|
||||
<&infracfg CLK_INFRA_MSDC2_HCK>,
|
||||
<&infracfg CLK_INFRA_66M_MSDC_0_HCK>,
|
||||
<&infracfg CLK_INFRA_133M_MSDC_0_HCK>;
|
||||
assigned-clocks = <&topckgen CLK_TOP_EMMC_250M_SEL>,
|
||||
<&topckgen CLK_TOP_EMMC_400M_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_NET1PLL_D5_D2>,
|
||||
<&apmixedsys CLK_APMIXED_MSDCPLL>;
|
||||
clock-names = "source",
|
||||
"hclk",
|
||||
"axi_cg",
|
||||
"ahb_cg";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tphy: tphy@11c50000 {
|
||||
compatible = "mediatek,mt7988",
|
||||
"mediatek,generic-tphy-v2";
|
||||
@@ -747,6 +857,157 @@
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
|
||||
resets = <ðrst 0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan0";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy0>;
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy1>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy2>;
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan3";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy3>;
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mediatek,pio = <&pio>;
|
||||
|
||||
gsw_phy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p0>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy0_led0: gsw-phy0-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy0_led1: gsw-phy0-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gsw_phy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <1>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p1>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy1_led0: gsw-phy1-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy1_led1: gsw-phy1-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gsw_phy2: ethernet-phy@2 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <2>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p2>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy2_led0: gsw-phy2-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy2_led1: gsw-phy2-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gsw_phy3: ethernet-phy@3 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <3>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p3>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy3_led0: gsw-phy3-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy3_led1: gsw-phy3-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ethwarp: syscon@15031000 {
|
||||
@@ -843,6 +1104,40 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
gmac2: mac@2 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
mdio_bus: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* internal 2.5G PHY */
|
||||
int_2p5g_phy: ethernet-phy@15 {
|
||||
reg = <15>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "internal";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@@ -7,6 +7,7 @@
|
||||
/dts-v1/;
|
||||
#include "mt7988a-rfb-spim-nand.dtsi"
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
model = "MediaTek MT7988A DSA 10G SPIM-NAND RFB";
|
||||
@@ -29,173 +30,105 @@
|
||||
pinctrl-0 = <&mdio0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
&gmac0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
status = "okay";
|
||||
phy-mode = "internal";
|
||||
phy-connection-type = "internal";
|
||||
phy = <&int_2p5g_phy>;
|
||||
};
|
||||
|
||||
&gmac2 {
|
||||
status = "okay";
|
||||
phy-mode = "usxgmii";
|
||||
phy-connection-type = "usxgmii";
|
||||
phy = <&phy8>;
|
||||
};
|
||||
|
||||
&mdio_bus {
|
||||
/* external Aquantia AQR113C */
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 72 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "internal";
|
||||
phy-connection-type = "internal";
|
||||
phy = <&phy15>;
|
||||
/* external Aquantia AQR113C */
|
||||
phy8: ethernet-phy@8 {
|
||||
reg = <8>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 71 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
gmac2: mac@2 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <2>;
|
||||
phy-mode = "10gbase-kr";
|
||||
phy-connection-type = "10gbase-kr";
|
||||
phy = <&phy8>;
|
||||
/* external Maxlinear GPY211C */
|
||||
phy5: ethernet-phy@5 {
|
||||
reg = <5>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
mdio0: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* external Aquantia AQR113C */
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 72 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
/* external Aquantia AQR113C */
|
||||
phy8: ethernet-phy@8 {
|
||||
reg = <8>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reset-gpios = <&pio 71 1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
|
||||
/* external Maxlinear GPY211C */
|
||||
phy5: ethernet-phy@5 {
|
||||
reg = <5>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
/* external Maxlinear GPY211C */
|
||||
phy13: ethernet-phy@13 {
|
||||
reg = <13>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
/* internal 2.5G PHY */
|
||||
phy15: ethernet-phy@15 {
|
||||
reg = <15>;
|
||||
pinctrl-names = "i2p5gbe-led";
|
||||
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "internal";
|
||||
};
|
||||
/* external Maxlinear GPY211C */
|
||||
phy13: ethernet-phy@13 {
|
||||
reg = <13>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
};
|
||||
|
||||
&int_2p5g_phy {
|
||||
pinctrl-names = "i2p5gbe-led";
|
||||
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
};
|
||||
|
||||
&switch {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan0";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy0>;
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy1>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy2>;
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan3";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy3>;
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mediatek,pio = <&pio>;
|
||||
|
||||
gsw_phy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe0_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p0>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
|
||||
gsw_phy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <1>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe1_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p1>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
|
||||
gsw_phy2: ethernet-phy@2 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <2>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe2_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p2>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
|
||||
gsw_phy3: ethernet-phy@3 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <3>;
|
||||
phy-mode = "internal";
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe3_led0_pins>;
|
||||
nvmem-cells = <&phy_calibration_p3>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gsw_phy0 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe0_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy0_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&gsw_phy1 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe1_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy1_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&gsw_phy2 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe2_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy2_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&gsw_phy3 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gbe3_led0_pins>;
|
||||
};
|
||||
|
||||
&gsw_phy3_led0 {
|
||||
status = "okay";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
@@ -4,12 +4,13 @@
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/reset/ti-syscon.h>
|
||||
#include <dt-bindings/clock/mediatek,mt7988-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include <dt-bindings/reset/ti-syscon.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
@@ -144,9 +145,9 @@
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
|
||||
/* 320 KiB reserved for ARM Trusted Firmware (BL31 and BL32) */
|
||||
secmon_reserved: secmon@43000000 {
|
||||
reg = <0 0x43000000 0 0x30000>;
|
||||
reg = <0 0x43000000 0 0x50000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
@@ -228,7 +229,7 @@
|
||||
"iocfg_lb_base", "iocfg_tl_base", "eint";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pio 0 0 83>;
|
||||
gpio-ranges = <&pio 0 0 84>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gic>;
|
||||
@@ -260,47 +261,131 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_pins: i2c2-pins-g0 {
|
||||
i2c1_sfp_pins: i2c1-sfp-pins-g0 {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c1_sfp";
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_pins: i2c2-pins {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c2";
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_0_pins: i2c2-pins-g0 {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c2_0";
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_1_pins: i2c2-pins-g1 {
|
||||
mux {
|
||||
function = "i2c";
|
||||
groups = "i2c2_1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe0_led0_pins: gbe0-pins {
|
||||
gbe0_led0_pins: gbe0-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe0_led0";
|
||||
};
|
||||
};
|
||||
|
||||
gbe1_led0_pins: gbe1-pins {
|
||||
gbe1_led0_pins: gbe1-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe1_led0";
|
||||
};
|
||||
};
|
||||
|
||||
gbe2_led0_pins: gbe2-pins {
|
||||
gbe2_led0_pins: gbe2-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe2_led0";
|
||||
};
|
||||
};
|
||||
|
||||
gbe3_led0_pins: gbe3-pins {
|
||||
gbe3_led0_pins: gbe3-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe3_led0";
|
||||
};
|
||||
};
|
||||
|
||||
i2p5gbe_led0_pins: 2p5gbe-pins {
|
||||
gbe0_led1_pins: gbe0-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe0_led1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe1_led1_pins: gbe1-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe1_led1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe2_led1_pins: gbe2-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe2_led1";
|
||||
};
|
||||
};
|
||||
|
||||
gbe3_led1_pins: gbe3-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "gbe3_led1";
|
||||
};
|
||||
};
|
||||
|
||||
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "2p5gbe_led0";
|
||||
};
|
||||
};
|
||||
|
||||
i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
groups = "2p5gbe_led1";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_emmc_45: mmc0-pins-emmc-45 {
|
||||
mux {
|
||||
function = "flash";
|
||||
groups = "emmc_45";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_emmc_51: mmc0-pins-emmc-51 {
|
||||
mux {
|
||||
function = "flash";
|
||||
groups = "emmc_51";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_sdcard: mmc0-pins-sdcard {
|
||||
mux {
|
||||
function = "flash";
|
||||
groups = "sdcard";
|
||||
};
|
||||
};
|
||||
|
||||
uart0_pins: uart0-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart0";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sgmiisys0: syscon@10060000 {
|
||||
@@ -380,6 +465,8 @@
|
||||
<&infracfg CLK_INFRA_MUX_UART0_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
|
||||
<&topckgen CLK_TOP_UART_SEL>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -645,6 +732,29 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc0: mmc@11230000 {
|
||||
compatible = "mediatek,mt7986-mmc",
|
||||
"mediatek,mt7981-mmc";
|
||||
reg = <0 0x11230000 0 0x1000>,
|
||||
<0 0x11D60000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&infracfg CLK_INFRA_MSDC400>,
|
||||
<&infracfg CLK_INFRA_MSDC2_HCK>,
|
||||
<&infracfg CLK_INFRA_66M_MSDC_0_HCK>,
|
||||
<&infracfg CLK_INFRA_133M_MSDC_0_HCK>;
|
||||
assigned-clocks = <&topckgen CLK_TOP_EMMC_250M_SEL>,
|
||||
<&topckgen CLK_TOP_EMMC_400M_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_NET1PLL_D5_D2>,
|
||||
<&apmixedsys CLK_APMIXED_MSDCPLL>;
|
||||
clock-names = "source",
|
||||
"hclk",
|
||||
"axi_cg",
|
||||
"ahb_cg";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tphy: tphy@11c50000 {
|
||||
compatible = "mediatek,mt7988",
|
||||
"mediatek,generic-tphy-v2";
|
||||
@@ -747,6 +857,157 @@
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
|
||||
resets = <ðrst 0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan0";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy0>;
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy1>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy2>;
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan3";
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&gsw_phy3>;
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mediatek,pio = <&pio>;
|
||||
|
||||
gsw_phy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p0>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy0_led0: gsw-phy0-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy0_led1: gsw-phy0-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gsw_phy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <1>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p1>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy1_led0: gsw-phy1-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy1_led1: gsw-phy1-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gsw_phy2: ethernet-phy@2 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <2>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p2>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy2_led0: gsw-phy2-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy2_led1: gsw-phy2-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gsw_phy3: ethernet-phy@3 {
|
||||
compatible = "ethernet-phy-id03a2.9481";
|
||||
reg = <3>;
|
||||
phy-mode = "internal";
|
||||
nvmem-cells = <&phy_calibration_p3>;
|
||||
nvmem-cell-names = "phy-cal-data";
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gsw_phy3_led0: gsw-phy3-led0@0 {
|
||||
reg = <0>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gsw_phy3_led1: gsw-phy3-led1@1 {
|
||||
reg = <1>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ethwarp: syscon@15031000 {
|
||||
@@ -843,6 +1104,40 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "internal";
|
||||
|
||||
fixed-link {
|
||||
speed = <10000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
gmac2: mac@2 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
mdio_bus: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* internal 2.5G PHY */
|
||||
int_2p5g_phy: ethernet-phy@15 {
|
||||
reg = <15>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "internal";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@@ -90,7 +90,14 @@ func (c *ReplayCache) IsDuplicate(data []byte, tag string) bool {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
if time.Since(c.expireTime) > c.expireInterval {
|
||||
// Both current and previous are expired.
|
||||
c.current = make(map[uint64]string)
|
||||
c.previous = make(map[uint64]string)
|
||||
c.expireTime = time.Now().Add(c.expireInterval)
|
||||
}
|
||||
if len(c.current) >= c.capacity || time.Now().After(c.expireTime) {
|
||||
// Move current to previous.
|
||||
c.previous = c.current
|
||||
c.current = make(map[uint64]string)
|
||||
c.expireTime = time.Now().Add(c.expireInterval)
|
||||
|
@@ -170,7 +170,7 @@ func TestExpireInterval(t *testing.T) {
|
||||
t.Errorf("cache sizes are %d %d, want 1 0.", curr, prev)
|
||||
}
|
||||
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
time.Sleep(75 * time.Millisecond)
|
||||
|
||||
if res := cache.IsDuplicate(a, replay.EmptyTag); res == false {
|
||||
t.Errorf("IsDuplicate() = false, want true")
|
||||
@@ -179,12 +179,12 @@ func TestExpireInterval(t *testing.T) {
|
||||
t.Errorf("cache sizes are %d %d, want 1 1.", curr, prev)
|
||||
}
|
||||
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
time.Sleep(150 * time.Millisecond)
|
||||
|
||||
if res := cache.IsDuplicate(b, replay.EmptyTag); res == true {
|
||||
t.Errorf("IsDuplicate() = true, want false")
|
||||
}
|
||||
if curr, prev := cache.Sizes(); curr != 1 || prev != 1 {
|
||||
t.Errorf("cache sizes are %d %d, want 1 1.", curr, prev)
|
||||
if curr, prev := cache.Sizes(); curr != 1 || prev != 0 {
|
||||
t.Errorf("cache sizes are %d %d, want 1 0.", curr, prev)
|
||||
}
|
||||
}
|
||||
|
@@ -156,8 +156,8 @@ return view.extend({
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('routing', form.Value, 'dns_server', _('DNS server'),
|
||||
_('You can only have one server set. It MUST support TCP query.'));
|
||||
o.value('wan', _('Use DNS server from WAN'));
|
||||
_('It MUST support TCP query.'));
|
||||
o.value('wan', _('WAN DNS (read from interface)'));
|
||||
o.value('1.1.1.1', _('CloudFlare Public DNS (1.1.1.1)'));
|
||||
o.value('208.67.222.222', _('Cisco Public DNS (208.67.222.222)'));
|
||||
o.value('8.8.8.8', _('Google Public DNS (8.8.8.8)'));
|
||||
@@ -182,27 +182,37 @@ return view.extend({
|
||||
}
|
||||
|
||||
if (features.hp_has_chinadns_ng) {
|
||||
o = s.taboption('routing', form.Value, 'china_dns_server', _('China DNS server'),
|
||||
_('You can only have two servers set at maximum.'));
|
||||
o.value('', _('Disable'));
|
||||
o.value('wan', _('Use DNS server from WAN'));
|
||||
o.value('wan_114', _('Use DNS server from WAN + 114DNS'));
|
||||
o = s.taboption('routing', form.DynamicList, 'china_dns_server', _('China DNS server'));
|
||||
o.value('wan', _('WAN DNS (read from interface)'));
|
||||
o.value('223.5.5.5', _('Aliyun Public DNS (223.5.5.5)'));
|
||||
o.value('210.2.4.8', _('CNNIC Public DNS (210.2.4.8)'));
|
||||
o.value('119.29.29.29', _('Tencent Public DNS (119.29.29.29)'));
|
||||
o.value('114.114.114.114', _('Xinfeng Public DNS (114.114.114.114)'));
|
||||
o.depends('routing_mode', 'bypass_mainland_china');
|
||||
o.validate = function(section_id, value) {
|
||||
if (section_id && value && !['wan', 'wan_114'].includes(value)) {
|
||||
var dns_servers = value.split(',');
|
||||
var ipv6_support = this.map.lookupOption('ipv6_support', section_id)[0].formvalue(section_id);
|
||||
o.validate = function(section_id) {
|
||||
if (section_id) {
|
||||
var value = this.map.lookupOption('china_dns_server', section_id)[0].formvalue(section_id);
|
||||
if (value.length < 1)
|
||||
return true;
|
||||
|
||||
if (dns_servers.length > 2)
|
||||
if (!features.hp_has_chinadns_ng_v2 && value.length > 2)
|
||||
return _('You can only have two servers set at maximum.');
|
||||
|
||||
for (var i of dns_servers)
|
||||
if (!stubValidator.apply((ipv6_support === '1') ? 'ipaddr' : 'ip4addr', i))
|
||||
return _('Expecting: %s').format(_('valid IP address'));
|
||||
for (var dns of value) {
|
||||
var ipv6_support = this.map.lookupOption('ipv6_support', section_id)[0].formvalue(section_id);
|
||||
if (dns === 'wan') {
|
||||
continue;
|
||||
} else {
|
||||
var err = _('Expecting: %s').format(_('valid address#port'));
|
||||
dns = dns.split('#');
|
||||
if (dns.length > 2)
|
||||
return err;
|
||||
if (!stubValidator.apply((ipv6_support === '1') ? 'ipaddr' : 'ip4addr', dns[0]))
|
||||
return err;
|
||||
if (dns[1] && !stubValidator.apply('port', dns[1]))
|
||||
return err;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -299,6 +309,7 @@ return view.extend({
|
||||
so = ss.option(form.Flag, 'endpoint_independent_nat', _('Enable endpoint-independent NAT'),
|
||||
_('Performance may degrade slightly, so it is not recommended to enable on when it is not needed.'));
|
||||
so.default = so.enabled;
|
||||
so.depends('tcpip_stack', 'mixed');
|
||||
so.depends('tcpip_stack', 'gvisor');
|
||||
so.rmempty = false;
|
||||
|
||||
|
@@ -1323,7 +1323,7 @@ return view.extend({
|
||||
}
|
||||
}
|
||||
o.onclick = function() {
|
||||
return fs.exec('/etc/homeproxy/scripts/update_subscriptions.uc').then((res) => {
|
||||
return fs.exec_direct('/etc/homeproxy/scripts/update_subscriptions.uc').then((res) => {
|
||||
return location.reload();
|
||||
}).catch((err) => {
|
||||
ui.addNotification(null, E('p', _('An error occurred during updating subscriptions: %s').format(err)));
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
20240220150003
|
||||
20240502150004
|
||||
|
@@ -8,6 +8,10 @@
|
||||
2001:c68::/32
|
||||
2001:cc0::/32
|
||||
2001:da8::/32
|
||||
2001:daa:1::/48
|
||||
2001:daa:2::/47
|
||||
2001:daa:4::/47
|
||||
2001:daa:6::/48
|
||||
2001:dc7::/32
|
||||
2001:dd8:1::/48
|
||||
2001:dd8:5::/48
|
||||
@@ -26,18 +30,15 @@
|
||||
2001:df7:1480::/48
|
||||
2400:1160::/32
|
||||
2400:3200::/32
|
||||
2400:3f60:3::/48
|
||||
2400:5280:f803::/48
|
||||
2400:5400:10::/48
|
||||
2400:58a0:1400::/48
|
||||
2400:58a0:1402::/48
|
||||
2400:5a60:100::/48
|
||||
2400:6000::/32
|
||||
2400:6460::/40
|
||||
2400:6600::/32
|
||||
2400:6e60:1301::/48
|
||||
2400:70e0:bed::/48
|
||||
2400:72e0:9f00::/40
|
||||
2400:73e0:201::/48
|
||||
2400:73e0::/32
|
||||
2400:75aa::/32
|
||||
2400:7bc0:20::/43
|
||||
2400:7fc0::/40
|
||||
@@ -106,9 +107,12 @@
|
||||
2400:b200::/32
|
||||
2400:b600::/32
|
||||
2400:be00::/48
|
||||
2400:cb80:e30::/44
|
||||
2400:cb80:e40::/44
|
||||
2400:da00::/32
|
||||
2400:dd00::/28
|
||||
2400:ebc0::/32
|
||||
2400:ee00::/32
|
||||
2400:f6e0::/32
|
||||
2400:f720::/32
|
||||
2400:f7c0::/32
|
||||
@@ -120,15 +124,15 @@
|
||||
2401:11a0:1500::/40
|
||||
2401:1200::/48
|
||||
2401:1320::/32
|
||||
2401:13a0:1::/48
|
||||
2401:1740:2000::/48
|
||||
2401:1d40::/32
|
||||
2401:2780::/32
|
||||
2401:2e00::/32
|
||||
2401:33c0::/32
|
||||
2401:3480::/36
|
||||
2401:3480:2000::/48
|
||||
2401:3480:3000::/36
|
||||
2401:34a1::/32
|
||||
2401:34a0::/31
|
||||
2401:3800::/32
|
||||
2401:3880::/32
|
||||
2401:3980::/32
|
||||
@@ -147,6 +151,7 @@
|
||||
2401:4780::/32
|
||||
2401:4880::/32
|
||||
2401:4a80::/32
|
||||
2401:5960:5960::/48
|
||||
2401:70e0::/32
|
||||
2401:7700::/32
|
||||
2401:7d40::/32
|
||||
@@ -166,8 +171,7 @@
|
||||
2401:b400::/45
|
||||
2401:b400:8::/47
|
||||
2401:b400:11::/48
|
||||
2401:b400:14::/48
|
||||
2401:b400:16::/47
|
||||
2401:b400:14::/46
|
||||
2401:b400:20::/47
|
||||
2401:b680::/32
|
||||
2401:be00::/32
|
||||
@@ -227,11 +231,9 @@
|
||||
2402:ef40::/32
|
||||
2402:f000::/32
|
||||
2402:f8c0::/32
|
||||
2403:600:a000::/38
|
||||
2403:600:a600::/47
|
||||
2403:600:a602::/48
|
||||
2403:600:b001::/48
|
||||
2403:600::/32
|
||||
2403:c80::/32
|
||||
2403:1a40::/32
|
||||
2403:1b80::/48
|
||||
2403:1ec0:1200::/48
|
||||
2403:1ec0:1400::/48
|
||||
@@ -246,6 +248,7 @@
|
||||
2403:4b40::/32
|
||||
2403:4c80::/48
|
||||
2403:5c80::/48
|
||||
2403:6380:14::/47
|
||||
2403:6380:20::/44
|
||||
2403:6380:40::/48
|
||||
2403:6380:42::/47
|
||||
@@ -274,8 +277,10 @@
|
||||
2404:bc0:4400::/43
|
||||
2404:bc0:4f00::/43
|
||||
2404:1c80::/32
|
||||
2404:2280:103::/48
|
||||
2404:2280:106::/47
|
||||
2404:2280:10c::/47
|
||||
2404:2280:10f::/48
|
||||
2404:2280:112::/47
|
||||
2404:2280:115::/48
|
||||
2404:2280:123::/48
|
||||
@@ -286,11 +291,20 @@
|
||||
2404:2280:13b::/48
|
||||
2404:2280:13c::/47
|
||||
2404:2280:147::/48
|
||||
2404:2280:152::/48
|
||||
2404:2280:193::/48
|
||||
2404:2280:196::/48
|
||||
2404:2280:199::/48
|
||||
2404:2280:19a::/47
|
||||
2404:2280:19c::/47
|
||||
2404:2280:19e::/48
|
||||
2404:2280:1a4::/47
|
||||
2404:2280:1b0::/48
|
||||
2404:2280:1b2::/48
|
||||
2404:2280:1b4::/48
|
||||
2404:2280:1b8::/48
|
||||
2404:2280:1b4::/46
|
||||
2404:2280:1b8::/47
|
||||
2404:2280:1ba::/48
|
||||
2404:2280:1bf::/48
|
||||
2404:2280:1c1::/48
|
||||
2404:2280:1c2::/47
|
||||
2404:2280:1c4::/47
|
||||
@@ -299,12 +313,19 @@
|
||||
2404:2280:1cb::/48
|
||||
2404:2280:1cc::/48
|
||||
2404:2280:1cf::/48
|
||||
2404:2280:1d0::/48
|
||||
2404:2280:1d3::/48
|
||||
2404:2280:1d6::/48
|
||||
2404:2280:1d8::/45
|
||||
2404:2280:1e0::/48
|
||||
2404:2280:1e2::/47
|
||||
2404:2280:1e4::/47
|
||||
2404:2280:1e4::/46
|
||||
2404:2280:1e8::/48
|
||||
2404:2280:1ea::/48
|
||||
2404:2280:1ec::/47
|
||||
2404:2280:1ee::/48
|
||||
2404:2280:1f0::/45
|
||||
2404:2280:1f8::/46
|
||||
2404:4dc0::/32
|
||||
2404:6380::/48
|
||||
2404:6380:1000::/48
|
||||
@@ -313,7 +334,6 @@
|
||||
2404:7180:a000::/48
|
||||
2404:7180:a010::/48
|
||||
2404:7180:a021::/48
|
||||
2404:7180:a022::/48
|
||||
2404:7180:aa00::/48
|
||||
2404:7180:aa10::/48
|
||||
2404:7180:b001::/48
|
||||
@@ -358,6 +378,7 @@
|
||||
2405:1480:1000::/48
|
||||
2405:1480:2000::/48
|
||||
2405:1480:3000::/47
|
||||
2405:1640:6::/48
|
||||
2405:3140:11::/48
|
||||
2405:3140:31::/48
|
||||
2405:3140:3a::/48
|
||||
@@ -367,6 +388,9 @@
|
||||
2405:66c0::/32
|
||||
2405:68c0:21::/48
|
||||
2405:6940::/48
|
||||
2405:6f00:c101::/48
|
||||
2405:6f00:c102::/48
|
||||
2405:6f00:c170::/47
|
||||
2405:6f00:c602::/48
|
||||
2405:7040:6000::/47
|
||||
2405:78c0:6e00::/43
|
||||
@@ -376,6 +400,7 @@
|
||||
2405:a900:fffe::/48
|
||||
2405:ad00::/32
|
||||
2405:b7c0::/32
|
||||
2405:be80::/32
|
||||
2405:d900::/32
|
||||
2405:e000::/32
|
||||
2405:f580::/32
|
||||
@@ -387,26 +412,29 @@
|
||||
2406:840:10::/45
|
||||
2406:840:20::/48
|
||||
2406:840:44::/47
|
||||
2406:840:78::/48
|
||||
2406:840:78::/47
|
||||
2406:840:80::/47
|
||||
2406:840:90::/48
|
||||
2406:840:100::/48
|
||||
2406:840:110::/48
|
||||
2406:840:1c0::/48
|
||||
2406:840:301::/48
|
||||
2406:840:3c1::/48
|
||||
2406:840:410::/48
|
||||
2406:840:800::/42
|
||||
2406:840:420::/48
|
||||
2406:840:680::/48
|
||||
2406:840:801::/48
|
||||
2406:840:802::/47
|
||||
2406:840:840::/47
|
||||
2406:840:860::/48
|
||||
2406:840:880::/48
|
||||
2406:840:a08::/48
|
||||
2406:840:c00::/48
|
||||
2406:840:a90::/48
|
||||
2406:840:c00::/47
|
||||
2406:840:c60::/48
|
||||
2406:840:1800::/48
|
||||
2406:840:1860::/48
|
||||
2406:840:2800::/48
|
||||
2406:840:3800::/48
|
||||
2406:840:4100::/47
|
||||
2406:840:43c0::/47
|
||||
2406:840:4800::/47
|
||||
2406:840:4880::/47
|
||||
2406:840:5100::/47
|
||||
@@ -423,7 +451,10 @@
|
||||
2406:840:9801::/48
|
||||
2406:840:9810::/48
|
||||
2406:840:981c::/46
|
||||
2406:840:9960::/44
|
||||
2406:840:9960::/47
|
||||
2406:840:9962::/48
|
||||
2406:840:9969::/48
|
||||
2406:840:996f::/48
|
||||
2406:840:9980::/48
|
||||
2406:840:9984::/48
|
||||
2406:840:9ef0::/44
|
||||
@@ -432,7 +463,7 @@
|
||||
2406:840:e010::/47
|
||||
2406:840:e014::/46
|
||||
2406:840:e018::/45
|
||||
2406:840:e030::/47
|
||||
2406:840:e030::/46
|
||||
2406:840:e03f::/48
|
||||
2406:840:e080::/44
|
||||
2406:840:e0c1::/48
|
||||
@@ -443,20 +474,21 @@
|
||||
2406:840:e180::/44
|
||||
2406:840:e20f::/48
|
||||
2406:840:e230::/48
|
||||
2406:840:e280::/48
|
||||
2406:840:e270::/44
|
||||
2406:840:e300::/47
|
||||
2406:840:e302::/48
|
||||
2406:840:e340::/44
|
||||
2406:840:e36f::/48
|
||||
2406:840:e500::/47
|
||||
2406:840:e57b::/48
|
||||
2406:840:e57f::/48
|
||||
2406:840:e666::/47
|
||||
2406:840:e720::/48
|
||||
2406:840:e770::/48
|
||||
2406:840:e777::/48
|
||||
2406:840:e80f::/48
|
||||
2406:840:e841::/48
|
||||
2406:840:e842::/48
|
||||
2406:840:e846::/48
|
||||
2406:840:e84a::/48
|
||||
2406:840:e84c::/47
|
||||
2406:840:e84f::/48
|
||||
@@ -471,10 +503,11 @@
|
||||
2406:840:eb0b::/48
|
||||
2406:840:eb0f::/48
|
||||
2406:840:eb80::/42
|
||||
2406:840:eef0::/44
|
||||
2406:840:efa0::/44
|
||||
2406:840:f0a1::/48
|
||||
2406:840:f0aa::/48
|
||||
2406:840:f100::/47
|
||||
2406:840:f200::/44
|
||||
2406:840:f230::/44
|
||||
2406:840:f380::/44
|
||||
2406:840:f401::/48
|
||||
@@ -482,24 +515,22 @@
|
||||
2406:840:f440::/47
|
||||
2406:840:f44f::/48
|
||||
2406:840:f48f::/48
|
||||
2406:840:f62f::/48
|
||||
2406:840:f660::/44
|
||||
2406:840:f681::/48
|
||||
2406:840:f990::/44
|
||||
2406:840:fa01::/48
|
||||
2406:840:fa02::/47
|
||||
2406:840:fa04::/48
|
||||
2406:840:fd00::/47
|
||||
2406:840:fd03::/48
|
||||
2406:840:fd05::/48
|
||||
2406:840:fd06::/48
|
||||
2406:840:fd1f::/48
|
||||
2406:840:fde0::/48
|
||||
2406:840:fe27::/48
|
||||
2406:840:fe50::/48
|
||||
2406:840:fe60::/48
|
||||
2406:840:fe72::/47
|
||||
2406:840:fec0::/47
|
||||
2406:840:fec4::/47
|
||||
2406:840:fec8::/47
|
||||
2406:840:feca::/48
|
||||
2406:840:fec8::/46
|
||||
2406:840:fecc::/47
|
||||
2406:840:fed1::/48
|
||||
2406:840:fed2::/47
|
||||
2406:840:fed4::/46
|
||||
@@ -510,20 +541,22 @@
|
||||
2406:840:feed::/48
|
||||
2406:840:fef0::/46
|
||||
2406:840:fef5::/48
|
||||
2406:840:fef6::/47
|
||||
2406:840:fef8::/45
|
||||
2406:840:fef7::/48
|
||||
2406:840:fef8::/47
|
||||
2406:840:fefb::/48
|
||||
2406:840:fefc::/46
|
||||
2406:1e40:f012::/47
|
||||
2406:2000:a0::/48
|
||||
2406:2700::/32
|
||||
2406:3340::/32
|
||||
2406:3640:1::/48
|
||||
2406:3d80::/32
|
||||
2406:4440:f000::/44
|
||||
2406:4d00::/48
|
||||
2406:52c0::/32
|
||||
2406:5340:6666::/48
|
||||
2406:5340:8888::/48
|
||||
2406:5ac0::/32
|
||||
2406:8880::/48
|
||||
2406:94c0::/48
|
||||
2406:b640:100::/48
|
||||
2406:b640:4100::/48
|
||||
@@ -532,8 +565,6 @@
|
||||
2406:d440:100::/44
|
||||
2406:d440:200::/44
|
||||
2406:d440:300::/44
|
||||
2406:d440:500::/48
|
||||
2406:d440:600::/48
|
||||
2406:e3c0::/32
|
||||
2406:e500::/33
|
||||
2407:2840::/48
|
||||
@@ -544,8 +575,8 @@
|
||||
2407:5380::/32
|
||||
2407:6c40:1210::/48
|
||||
2407:6c40:1500::/48
|
||||
2407:6c40:1600::/40
|
||||
2407:6c40:1810::/48
|
||||
2407:7d00:1::/48
|
||||
2407:8f40:2::/48
|
||||
2407:9f00::/32
|
||||
2407:ad80::/32
|
||||
@@ -888,6 +919,7 @@
|
||||
2408:844b::/32
|
||||
2408:844c::/30
|
||||
2408:8452::/31
|
||||
2408:8454::/32
|
||||
2408:8456::/31
|
||||
2408:8458::/30
|
||||
2408:845c::/31
|
||||
@@ -949,7 +981,7 @@
|
||||
2408:8708::/29
|
||||
2408:8710::/30
|
||||
2408:8719::/32
|
||||
2408:871a::/32
|
||||
2408:871a::/31
|
||||
2408:8720::/30
|
||||
2408:8726::/32
|
||||
2408:872b::/32
|
||||
@@ -984,7 +1016,9 @@
|
||||
2408:8806::/42
|
||||
2408:8806:40::/43
|
||||
2408:880c::/30
|
||||
2408:8810::/29
|
||||
2408:8810::/30
|
||||
2408:8814::/31
|
||||
2408:8816::/32
|
||||
2408:8818::/31
|
||||
2408:882c::/32
|
||||
2408:883a::/32
|
||||
@@ -1046,19 +1080,22 @@
|
||||
2408:8a24:4000::/34
|
||||
2408:8a26:c000::/34
|
||||
2408:8a27:4000::/35
|
||||
2409:2000::/32
|
||||
2409:2000::/31
|
||||
2409:27fa::/48
|
||||
2409:27fa:f000::/48
|
||||
2409:27fb::/48
|
||||
2409:27fc::/48
|
||||
2409:27fe::/33
|
||||
2409:6100::/44
|
||||
2409:8000::/20
|
||||
240a:2000::/29
|
||||
240a:400b::/33
|
||||
240a:4010:8000::/33
|
||||
240a:4020:83a::/48
|
||||
240a:4020:883a::/48
|
||||
240a:4021:83a::/48
|
||||
240a:4021:883a::/48
|
||||
240a:4082:c000::/35
|
||||
240a:408a:c000::/35
|
||||
240a:4084:2000::/35
|
||||
240a:408c:2000::/35
|
||||
240a:4090:50::/48
|
||||
240a:4090:120::/48
|
||||
240a:4090:250::/48
|
||||
@@ -1073,18 +1110,22 @@
|
||||
240a:4090:5200::/40
|
||||
240a:4090:7000::/39
|
||||
240a:4090:7200::/40
|
||||
240a:4092:c000::/35
|
||||
240a:409a:c000::/35
|
||||
240a:40a2:c000::/35
|
||||
240a:40aa:c000::/35
|
||||
240a:4094:2000::/35
|
||||
240a:409c:2000::/35
|
||||
240a:40a4:2000::/35
|
||||
240a:40ac:2000::/35
|
||||
240a:40b0:83a::/48
|
||||
240a:40b0:283a::/48
|
||||
240a:40b0:483a::/48
|
||||
240a:40b0:683a::/48
|
||||
240a:40c0:8200::/48
|
||||
240a:40c0:8240::/48
|
||||
240a:414c::/31
|
||||
240a:41cc::/31
|
||||
240a:40c3:c200::/48
|
||||
240a:40c3:c240::/48
|
||||
240a:4172::/31
|
||||
240a:41b0::/47
|
||||
240a:41f2::/31
|
||||
240a:4242::/31
|
||||
240a:4280::/26
|
||||
240a:42c0::/27
|
||||
240a:42e0::/28
|
||||
@@ -1107,39 +1148,36 @@
|
||||
240d:c000:6000::/36
|
||||
240d:c000:7000::/44
|
||||
240d:c000:f000::/44
|
||||
240d:c000:f020::/44
|
||||
240d:c010::/47
|
||||
240d:c010:11::/48
|
||||
240d:c010:14::/48
|
||||
240d:c010:16::/48
|
||||
240d:c010:1d::/48
|
||||
240d:c010:20::/44
|
||||
240d:c010:30::/47
|
||||
240d:c010:58::/48
|
||||
240d:c010:5b::/48
|
||||
240d:c010:5c::/48
|
||||
240d:c010:5e::/48
|
||||
240d:c010:68::/48
|
||||
240d:c010:6c::/48
|
||||
240d:c040::/44
|
||||
240e::/20
|
||||
2602:2a3::/40
|
||||
2602:2a3::/48
|
||||
2602:2a4:ff::/48
|
||||
2602:2c3:810::/44
|
||||
2602:f9a9:101::/48
|
||||
2602:f9ba:a9::/48
|
||||
2602:f9df:400::/48
|
||||
2602:f9df:410::/48
|
||||
2602:f9df:420::/48
|
||||
2602:f9df:400::/47
|
||||
2602:f9df:500::/48
|
||||
2602:f9df:505::/48
|
||||
2602:f9df:510::/47
|
||||
2602:f9f6:400::/44
|
||||
2602:fa1c:121::/48
|
||||
2602:f9df:515::/48
|
||||
2602:f9df:516::/48
|
||||
2602:f9f6:400::/47
|
||||
2602:fab0:11::/48
|
||||
2602:fbda:600::/48
|
||||
2602:fbda:660::/48
|
||||
2602:fbda:666::/48
|
||||
2602:fc52:311::/48
|
||||
2602:fc52:312::/48
|
||||
2602:fc52:315::/48
|
||||
2602:fd92:800::/40
|
||||
2602:fe69:f26::/47
|
||||
@@ -1181,9 +1219,10 @@
|
||||
2605:9d80:9071::/48
|
||||
2605:9d80:9092::/48
|
||||
2605:f440:cafe::/48
|
||||
2607:7640::/48
|
||||
2620:57:4004::/47
|
||||
2804:1e48::/32
|
||||
2a03:5840:f3::/48
|
||||
2a03:5840:118::/48
|
||||
2a03:5840:290::/48
|
||||
2a04:3e00:1002::/48
|
||||
2a04:f580:8010::/47
|
||||
@@ -1215,15 +1254,11 @@
|
||||
2a04:f580:9280::/48
|
||||
2a04:f580:9290::/48
|
||||
2a05:1085::/32
|
||||
2a05:1086:f000::/47
|
||||
2a05:1086:f000::/48
|
||||
2a05:1087::/32
|
||||
2a05:dfc1:5900::/41
|
||||
2a05:dfc1:5a00::/40
|
||||
2a05:dfc1:1602::/48
|
||||
2a05:dfc1:6607::/48
|
||||
2a05:dfc1:7100::/47
|
||||
2a05:dfc1:7103::/48
|
||||
2a05:dfc1:7108::/47
|
||||
2a05:dfc1:8c00::/48
|
||||
2a05:dfc1:8c02::/48
|
||||
2a05:dfc1:8c05::/48
|
||||
2a05:dfc1:8c09::/48
|
||||
@@ -1234,43 +1269,41 @@
|
||||
2a05:dfc1:8c1d::/48
|
||||
2a05:dfc1:8c22::/48
|
||||
2a05:dfc1:8c24::/48
|
||||
2a05:dfc1:8c30::/48
|
||||
2a05:dfc1:8c3a::/48
|
||||
2a05:dfc1:8c40::/48
|
||||
2a05:dfc1:8c90::/47
|
||||
2a05:dfc1:8c42::/48
|
||||
2a05:dfc1:8c90::/46
|
||||
2a05:dfc1:8c94::/47
|
||||
2a05:dfc1:8c98::/47
|
||||
2a05:dfc1:8d00::/48
|
||||
2a05:dfc1:8d02::/48
|
||||
2a05:dfc1:8d05::/48
|
||||
2a05:dfc1:9198::/48
|
||||
2a06:3600::/29
|
||||
2a06:a001:a0c4::/48
|
||||
2a06:a005:260::/43
|
||||
2a06:a005:280::/42
|
||||
2a06:a005:280::/43
|
||||
2a06:a005:2a0::/44
|
||||
2a06:a005:486::/48
|
||||
2a06:a005:8d0::/47
|
||||
2a06:a005:8da::/48
|
||||
2a06:a005:910::/44
|
||||
2a06:a005:9c0::/48
|
||||
2a06:a005:a13::/48
|
||||
2a06:a005:b69::/48
|
||||
2a06:a005:d22::/48
|
||||
2a06:a005:e90::/44
|
||||
2a06:a005:f80::/44
|
||||
2a06:a005:1340::/43
|
||||
2a06:a005:13b0::/44
|
||||
2a06:a005:13c0::/43
|
||||
2a06:a005:13e0::/47
|
||||
2a06:a005:13eb::/48
|
||||
2a06:a005:13ea::/47
|
||||
2a06:a005:13ed::/48
|
||||
2a06:a005:1520::/44
|
||||
2a06:a005:1700::/44
|
||||
2a06:a005:1800::/48
|
||||
2a06:a005:1b60::/47
|
||||
2a06:a005:1c40::/44
|
||||
2a06:a005:1ee1::/48
|
||||
2a06:a005:1ee8::/47
|
||||
2a06:a005:1ee9::/48
|
||||
2a06:a005:1eee::/48
|
||||
2a06:a005:2040::/44
|
||||
2a06:a005:2100::/44
|
||||
2a06:a005:2200::/44
|
||||
2a06:a005:2510::/48
|
||||
2a06:a005:28f3::/48
|
||||
2a06:a005:28f4::/48
|
||||
@@ -1282,34 +1315,16 @@
|
||||
2a06:a005:2980::/44
|
||||
2a06:a005:29d1::/48
|
||||
2a06:de00:de04::/48
|
||||
2a06:de00:de0e::/47
|
||||
2a06:de01:80b::/48
|
||||
2a06:de01:821::/48
|
||||
2a06:de01:82e::/48
|
||||
2a06:de01:84c::/48
|
||||
2a06:de01:863::/48
|
||||
2a06:de01:871::/48
|
||||
2a06:de01:87a::/48
|
||||
2a06:de01:8a0::/48
|
||||
2a06:de01:8bb::/48
|
||||
2a06:de01:8be::/47
|
||||
2a06:de01:8d8::/48
|
||||
2a06:de01:904::/48
|
||||
2a06:de01:907::/48
|
||||
2a06:de01:908::/48
|
||||
2a06:de01:912::/48
|
||||
2a06:de01:95f::/48
|
||||
2a06:de01:962::/48
|
||||
2a06:de01:967::/48
|
||||
2a06:de01:97c::/48
|
||||
2a06:de01:980::/48
|
||||
2a06:de01:99c::/48
|
||||
2a06:de01:9ad::/48
|
||||
2a06:de01:adb::/48
|
||||
2a06:de01:ae6::/48
|
||||
2a06:de01:af6::/48
|
||||
2a06:de01:afc::/48
|
||||
2a06:de01:b36::/48
|
||||
2a06:de00:de0e::/48
|
||||
2a06:de01:824::/48
|
||||
2a06:de01:854::/48
|
||||
2a06:de01:889::/48
|
||||
2a06:de01:8cb::/48
|
||||
2a06:de01:910::/48
|
||||
2a06:de01:96a::/48
|
||||
2a06:de01:9b7::/48
|
||||
2a06:de01:ac8::/48
|
||||
2a06:de01:b0d::/48
|
||||
2a06:e881:2509::/48
|
||||
2a06:e881:5501::/48
|
||||
2a06:e881:5502::/48
|
||||
@@ -1317,19 +1332,20 @@
|
||||
2a06:e881:6600::/48
|
||||
2a06:e881:6602::/47
|
||||
2a06:e881:6606::/48
|
||||
2a09:b280:ff80::/47
|
||||
2a07:54c1:2200::/47
|
||||
2a09:b280:ff80::/48
|
||||
2a09:b280:ff83::/48
|
||||
2a09:b280:ff84::/47
|
||||
2a0a:280:2d00::/46
|
||||
2a0a:280:2d04::/47
|
||||
2a0a:2840:20::/43
|
||||
2a0a:2845:aab8::/46
|
||||
2a0a:6040:c00::/40
|
||||
2a0a:6040:e01::/48
|
||||
2a0a:6040:e02::/47
|
||||
2a0a:6040:e02::/48
|
||||
2a0a:6040:ea0::/48
|
||||
2a0a:6040:f00::/48
|
||||
2a0a:6040:f10::/47
|
||||
2a0a:6040:f00::/47
|
||||
2a0a:6040:f02::/48
|
||||
2a0a:6040:f11::/48
|
||||
2a0a:6040:f15::/48
|
||||
2a0a:6040:1b00::/40
|
||||
2a0a:6040:2222::/48
|
||||
2a0a:6040:2228::/48
|
||||
@@ -1337,11 +1353,9 @@
|
||||
2a0a:6040:2255::/48
|
||||
2a0a:6040:2277::/48
|
||||
2a0a:6040:2d00::/44
|
||||
2a0a:6040:3300::/48
|
||||
2a0a:6040:3410::/48
|
||||
2a0a:6040:3420::/48
|
||||
2a0a:6040:3430::/48
|
||||
2a0a:6040:3441::/48
|
||||
2a0a:6040:34ff::/48
|
||||
2a0a:6040:5555::/48
|
||||
2a0a:6040:6607::/48
|
||||
@@ -1349,7 +1363,7 @@
|
||||
2a0a:6040:a450::/47
|
||||
2a0a:6040:a730::/48
|
||||
2a0a:6040:a740::/48
|
||||
2a0a:6040:a901::/48
|
||||
2a0a:6040:a900::/47
|
||||
2a0a:6040:b770::/44
|
||||
2a0a:6040:c601::/48
|
||||
2a0a:6040:c700::/42
|
||||
@@ -1361,6 +1375,7 @@
|
||||
2a0a:6040:ce00::/48
|
||||
2a0a:6040:ce10::/48
|
||||
2a0a:6040:d0fe::/48
|
||||
2a0a:6040:d310::/48
|
||||
2a0a:6040:d401::/48
|
||||
2a0a:6040:d600::/44
|
||||
2a0a:6040:d610::/47
|
||||
@@ -1370,8 +1385,6 @@
|
||||
2a0a:6040:e541::/48
|
||||
2a0a:6040:e543::/48
|
||||
2a0a:6040:e544::/47
|
||||
2a0a:6040:e546::/48
|
||||
2a0a:6040:e54b::/48
|
||||
2a0a:6040:e54c::/48
|
||||
2a0a:6040:e900::/40
|
||||
2a0a:6040:ec00::/40
|
||||
@@ -1379,10 +1392,7 @@
|
||||
2a0b:b87:ffb5::/48
|
||||
2a0b:2542::/48
|
||||
2a0b:2542:300::/40
|
||||
2a0b:4340:6::/48
|
||||
2a0b:4340:22::/48
|
||||
2a0b:4340:30::/44
|
||||
2a0b:4340:60::/44
|
||||
2a0b:4340:70::/48
|
||||
2a0b:4340:90::/48
|
||||
2a0b:4340:93::/48
|
||||
@@ -1401,36 +1411,29 @@
|
||||
2a0b:4340:1304::/48
|
||||
2a0b:4340:1340::/48
|
||||
2a0c:9a40:8cf0::/48
|
||||
2a0c:9a40:9e04::/47
|
||||
2a0c:9a40:9e08::/45
|
||||
2a0c:9a40:9e00::/43
|
||||
2a0c:b641:210::/47
|
||||
2a0c:b641:24f::/48
|
||||
2a0c:b641:312::/48
|
||||
2a0c:b641:510::/48
|
||||
2a0c:b641:570::/47
|
||||
2a0c:b641:730::/44
|
||||
2a0c:b641:a11::/48
|
||||
2a0c:b641:a60::/44
|
||||
2a0c:b641:b21::/48
|
||||
2a0c:b641:b25::/48
|
||||
2a0c:b641:b26::/48
|
||||
2a0c:b642:4101::/48
|
||||
2a0c:b642:4102::/47
|
||||
2a0c:b642:4104::/47
|
||||
2a0d:2146:8040::/48
|
||||
2a0d:2406:510::/46
|
||||
2a0d:2580:ff00::/45
|
||||
2a0d:2580:ff08::/46
|
||||
2a0d:2581:fffc::/48
|
||||
2a0d:2581:fffe::/47
|
||||
2a0d:2683:2::/48
|
||||
2a0d:2687::/32
|
||||
2a0d:2904::/44
|
||||
2a0d:2906:f000::/44
|
||||
2a0d:c7c7::/32
|
||||
2a0e:800:ff00::/48
|
||||
2a0e:800:ff04::/48
|
||||
2a0e:800:ff20::/47
|
||||
2a0e:800:ff40::/42
|
||||
2a0e:15c0:6::/48
|
||||
2a0e:8f02:2182::/47
|
||||
2a0e:8f02:f006::/48
|
||||
2a0e:8f02:f058::/48
|
||||
@@ -1440,14 +1443,18 @@
|
||||
2a0e:97c0:550::/44
|
||||
2a0e:97c0:5ef::/48
|
||||
2a0e:97c0:83f::/48
|
||||
2a0e:9b00::/29
|
||||
2a0e:aa01:1fff::/48
|
||||
2a0e:aa06::/40
|
||||
2a0e:aa06:400::/44
|
||||
2a0e:aa06:440::/48
|
||||
2a0e:aa06:470::/44
|
||||
2a0e:aa06:490::/44
|
||||
2a0e:aa06:4e0::/44
|
||||
2a0e:aa07:e00e::/48
|
||||
2a0e:aa07:e01b::/48
|
||||
2a0e:aa07:e024::/46
|
||||
2a0e:aa07:e024::/47
|
||||
2a0e:aa07:e027::/48
|
||||
2a0e:aa07:e030::/48
|
||||
2a0e:aa07:e035::/48
|
||||
2a0e:aa07:e039::/48
|
||||
@@ -1455,14 +1462,14 @@
|
||||
2a0e:aa07:e050::/44
|
||||
2a0e:aa07:e060::/48
|
||||
2a0e:aa07:e071::/48
|
||||
2a0e:aa07:e073::/48
|
||||
2a0e:aa07:e0f1::/48
|
||||
2a0e:aa07:e0f7::/48
|
||||
2a0e:aa07:e120::/44
|
||||
2a0e:aa07:e130::/47
|
||||
2a0e:aa07:e141::/48
|
||||
2a0e:aa07:e142::/47
|
||||
2a0e:aa07:e140::/47
|
||||
2a0e:aa07:e143::/48
|
||||
2a0e:aa07:e145::/48
|
||||
2a0e:aa07:e146::/47
|
||||
2a0e:aa07:e16a::/48
|
||||
2a0e:aa07:e200::/44
|
||||
2a0e:aa07:f000::/48
|
||||
@@ -1477,12 +1484,13 @@
|
||||
2a0e:aa07:f0e0::/44
|
||||
2a0e:b107:30::/48
|
||||
2a0e:b107:32::/47
|
||||
2a0e:b107:a0::/44
|
||||
2a0e:b107:ae::/48
|
||||
2a0e:b107:12b::/48
|
||||
2a0e:b107:1c0::/48
|
||||
2a0e:b107:1c1::/48
|
||||
2a0e:b107:272::/48
|
||||
2a0e:b107:710::/48
|
||||
2a0e:b107:740::/44
|
||||
2a0e:b107:790::/44
|
||||
2a0e:b107:bd0::/48
|
||||
2a0e:b107:c10::/48
|
||||
2a0e:b107:da0::/44
|
||||
2a0e:b107:dce::/48
|
||||
@@ -1491,23 +1499,27 @@
|
||||
2a0e:b107:16c0::/44
|
||||
2a0e:b107:1a40::/46
|
||||
2a0e:b107:1b60::/48
|
||||
2a0e:b107:1b6f::/48
|
||||
2a0e:b107:1d25::/48
|
||||
2a0e:b107:1e85::/48
|
||||
2a0f:1440::/29
|
||||
2a0f:2100::/29
|
||||
2a0f:3d86:1::/48
|
||||
2a0f:5707:fe01::/48
|
||||
2a0f:5707:fff5::/48
|
||||
2a0f:7803:fc00::/44
|
||||
2a0f:7803:fc30::/44
|
||||
2a0f:7803:fc20::/43
|
||||
2a0f:7803:fc80::/44
|
||||
2a0f:7803:fcc0::/44
|
||||
2a0f:7803:fd00::/40
|
||||
2a0f:7803:fe21::/48
|
||||
2a0f:7803:fe23::/48
|
||||
2a0f:7803:fe80::/47
|
||||
2a0f:7803:fe82::/48
|
||||
2a0f:7803:ff10::/48
|
||||
2a0f:7803:ffd1::/48
|
||||
2a0f:7980::/44
|
||||
2a0f:85c1:100::/47
|
||||
2a0f:85c1:3b5::/48
|
||||
2a0f:9400:6110::/48
|
||||
2a0f:9400:7700::/48
|
||||
2a10:2f00:13a::/48
|
||||
@@ -1524,7 +1536,6 @@
|
||||
2a10:ccc0:ccc::/48
|
||||
2a10:ccc0:ccc6::/48
|
||||
2a10:ccc0:cccc::/46
|
||||
2a10:ccc1:105::/48
|
||||
2a11:f2c0:ffc4::/48
|
||||
2a12:3fc2:6600::/48
|
||||
2a12:3fc2:6666::/48
|
||||
@@ -1537,7 +1548,8 @@
|
||||
2a12:3fc7:8000::/48
|
||||
2a12:dd47:5c00::/40
|
||||
2a12:f8c0::/48
|
||||
2a12:f8c0:1000::/39
|
||||
2a12:f8c0:1000::/40
|
||||
2a12:f8c0:2000::/40
|
||||
2a12:f8c1::/48
|
||||
2a12:f8c3::/36
|
||||
2a13:1800::/48
|
||||
@@ -1545,33 +1557,50 @@
|
||||
2a13:1800:80::/44
|
||||
2a13:1800:300::/44
|
||||
2a13:1801:180::/43
|
||||
2a13:1802::/44
|
||||
2a13:1802::/43
|
||||
2a13:a5c3:f000::/40
|
||||
2a13:a5c3:f100::/48
|
||||
2a13:a5c3:f120::/44
|
||||
2a13:a5c3:f140::/44
|
||||
2a13:a5c3:f160::/44
|
||||
2a13:a5c3:f1c0::/44
|
||||
2a13:a5c4:1000::/38
|
||||
2a13:a5c7:1200::/40
|
||||
2a13:a5c7:1500::/40
|
||||
2a13:a5c7:1600::/46
|
||||
2a13:a5c7:1604::/48
|
||||
2a13:a5c7:1606::/47
|
||||
2a13:a5c7:1608::/48
|
||||
2a13:a5c7:1610::/47
|
||||
2a13:a5c7:1612::/48
|
||||
2a13:aac4:f000::/44
|
||||
2a13:a5c7:1600::/45
|
||||
2a13:a5c7:1608::/47
|
||||
2a13:a5c7:1610::/46
|
||||
2a13:a5c7:1614::/47
|
||||
2a13:a5c7:1801::/48
|
||||
2a13:a5c7:1802::/47
|
||||
2a13:a5c7:1804::/47
|
||||
2a13:aac4:f00d::/48
|
||||
2a13:aac4:f00f::/48
|
||||
2a13:b487:11aa::/48
|
||||
2a13:b487:11da::/48
|
||||
2a13:b487:1200::/43
|
||||
2a13:b487:1b86::/48
|
||||
2a13:b487:1bb2::/48
|
||||
2a13:b487:1bb6::/48
|
||||
2a13:b487:1bbb::/48
|
||||
2a13:b487:1f00::/45
|
||||
2a13:b487:4200::/47
|
||||
2a13:b487:4210::/44
|
||||
2a13:b487:4220::/43
|
||||
2a13:b487:4240::/43
|
||||
2a13:b487:42d0::/44
|
||||
2a13:df80:3b10::/48
|
||||
2a13:b487:1b00::/44
|
||||
2a13:b487:1b10::/47
|
||||
2a13:b487:1b86::/47
|
||||
2a13:b487:1b88::/47
|
||||
2a13:b487:1ba0::/47
|
||||
2a13:b487:1ba4::/47
|
||||
2a13:b487:1bb2::/47
|
||||
2a13:b487:1bb6::/47
|
||||
2a13:b487:1bb8::/46
|
||||
2a13:b487:1f02::/47
|
||||
2a13:b487:1f04::/46
|
||||
2a13:df80:6808::/48
|
||||
2a13:df80:7d21::/48
|
||||
2a13:df80:7d22::/47
|
||||
2a13:df80:7d24::/48
|
||||
2a13:df85:a201::/48
|
||||
2a13:df85:a202::/47
|
||||
2a13:df85:a204::/48
|
||||
2a13:df85:a2ff::/48
|
||||
2a13:df85:be00::/48
|
||||
2a13:df85:be0e::/48
|
||||
2a13:df85:be10::/48
|
||||
2a13:df85:be80::/48
|
||||
2a13:df85:be88::/48
|
||||
2a13:df85:be90::/48
|
||||
|
@@ -1 +1 @@
|
||||
20240220150003
|
||||
20240502150004
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
202402192209
|
||||
202405022210
|
||||
|
@@ -338,6 +338,7 @@ appdownloader.net
|
||||
appledaily.com
|
||||
appledaily.com.hk
|
||||
appledaily.com.tw
|
||||
apps.evozi.com
|
||||
appshopper.com
|
||||
appsocks.net
|
||||
appspot.com
|
||||
@@ -347,6 +348,7 @@ ar.hao123.com
|
||||
archive.fo
|
||||
archive.is
|
||||
archive.li
|
||||
archive.md
|
||||
archive.org
|
||||
archive.ph
|
||||
archive.today
|
||||
@@ -634,7 +636,6 @@ blogger.com
|
||||
blogimg.jp
|
||||
bloglines.com
|
||||
bloglovin.com
|
||||
blogs.icerocket.com
|
||||
blogs.libraryinformationtechnology.com
|
||||
blogs.tampabay.com
|
||||
blogs.yahoo.co.jp
|
||||
@@ -817,6 +818,7 @@ c-span.org
|
||||
c-spanvideo.org
|
||||
c100tibet.org
|
||||
c2cx.com
|
||||
cableav.tv
|
||||
cablegatesearch.net
|
||||
cachinese.com
|
||||
cacnw.com
|
||||
@@ -896,6 +898,7 @@ cdn-images.mailchimp.com
|
||||
cdn-telegram.org
|
||||
cdn.assets.lfpcontent.com
|
||||
cdn.helixstudios.net
|
||||
cdn.jwplayer.com
|
||||
cdn.printfriendly.com
|
||||
cdn.seatguru.com
|
||||
cdn.softlayer.net
|
||||
@@ -1045,6 +1048,7 @@ chubold.com
|
||||
chubun.com
|
||||
churchinhongkong.org
|
||||
chushigangdrug.ch
|
||||
ciciai.com
|
||||
cienen.com
|
||||
cineastentreff.de
|
||||
cipfg.org
|
||||
@@ -1174,6 +1178,7 @@ costco.com
|
||||
cotweet.com
|
||||
counter.social
|
||||
coursehero.com
|
||||
coze.com
|
||||
cpj.org
|
||||
cq99.us
|
||||
crackle.com
|
||||
@@ -1607,6 +1612,7 @@ etaa.org.au
|
||||
etadult.com
|
||||
etaiwannews.com
|
||||
etherdelta.com
|
||||
ethermine.org
|
||||
etherscan.io
|
||||
etizer.org
|
||||
etokki.com
|
||||
@@ -1643,6 +1649,7 @@ eyny.com
|
||||
ezpc.tk
|
||||
ezpeer.com
|
||||
ezua.com
|
||||
f2pool.com
|
||||
f8.com
|
||||
fa.gov.tw
|
||||
facebook.br
|
||||
@@ -2649,6 +2656,7 @@ hrcchina.org
|
||||
hrcir.com
|
||||
hrea.org
|
||||
hrichina.org
|
||||
hrntt.org
|
||||
hrtsea.com
|
||||
hrw.org
|
||||
hrweb.org
|
||||
@@ -2734,6 +2742,7 @@ ibros.org
|
||||
ibvpn.com
|
||||
icams.com
|
||||
ice.audionow.com
|
||||
icedrive.net
|
||||
icij.org
|
||||
icl-fi.org
|
||||
icoco.com
|
||||
@@ -3655,6 +3664,7 @@ newlandmagazine.com.au
|
||||
newmitbbs.com
|
||||
newnews.ca
|
||||
news.cnyes.com
|
||||
news.ebc.net.tw
|
||||
news.hk.msn.com
|
||||
news.msn.com.tw
|
||||
news.nationalgeographic.com
|
||||
@@ -3753,6 +3763,7 @@ noxinfluencer.com
|
||||
noypf.com
|
||||
npa.go.jp
|
||||
npa.gov.tw
|
||||
npm.gov.tw
|
||||
npnt.me
|
||||
nps.gov
|
||||
npsboost.com
|
||||
@@ -4131,6 +4142,7 @@ postimg.org
|
||||
posts.careerengine.us
|
||||
potato.im
|
||||
potvpn.com
|
||||
pourquoi.tw
|
||||
power.com
|
||||
powerapple.com
|
||||
powercx.com
|
||||
@@ -4369,6 +4381,7 @@ ronjoneswriter.com
|
||||
roodo.com
|
||||
rosechina.net
|
||||
rotten.com
|
||||
rou.video
|
||||
rsdlmonitor.com
|
||||
rsf-chinese.org
|
||||
rsf.org
|
||||
@@ -6080,6 +6093,7 @@ yzzk.com
|
||||
z-lib.org
|
||||
zacebook.com
|
||||
zalmos.com
|
||||
zamimg.com
|
||||
zannel.com
|
||||
zaobao.com
|
||||
zaobao.com.sg
|
||||
|
@@ -1 +1 @@
|
||||
202402192209
|
||||
202405022210
|
||||
|
@@ -180,39 +180,46 @@ start_service() {
|
||||
# chinadns-ng
|
||||
if [ -n "$china_dns_server" ]; then
|
||||
local wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")"
|
||||
case "$china_dns_server" in
|
||||
"wan") china_dns_server="$wandns" ;;
|
||||
"wan_114") china_dns_server="$wandns,114.114.114.114" ;;
|
||||
esac
|
||||
china_dns_server="${china_dns_server/wan/$wandns}"
|
||||
china_dns_server="${china_dns_server// /,}"
|
||||
|
||||
procd_open_instance "chinadns-ng"
|
||||
for i in $(seq 1 "$(grep -c "processor" "/proc/cpuinfo")"); do
|
||||
procd_open_instance "chinadns-ng-$i"
|
||||
|
||||
procd_set_param command "/usr/bin/chinadns-ng"
|
||||
procd_append_param command --bind-port "$china_dns_port"
|
||||
procd_append_param command --china-dns "$china_dns_server"
|
||||
procd_append_param command --trust-dns "127.0.0.1#$dns_port"
|
||||
procd_append_param command --ipset-name4 "inet@fw4@homeproxy_mainland_addr_v4"
|
||||
procd_append_param command --ipset-name6 "inet@fw4@homeproxy_mainland_addr_v6"
|
||||
procd_append_param command --chnlist-file "$HP_DIR/resources/china_list.txt"
|
||||
procd_append_param command --gfwlist-file "$HP_DIR/resources/gfw_list.txt"
|
||||
[ "$ipv6_support" -eq "1" ] || procd_append_param command --no-ipv6=tC
|
||||
procd_set_param command "/usr/bin/chinadns-ng"
|
||||
procd_append_param command --bind-port "$china_dns_port"
|
||||
procd_append_param command --china-dns "$china_dns_server"
|
||||
procd_append_param command --trust-dns "127.0.0.1#$dns_port"
|
||||
procd_append_param command --ipset-name4 "inet@fw4@homeproxy_mainland_addr_v4"
|
||||
procd_append_param command --ipset-name6 "inet@fw4@homeproxy_mainland_addr_v6"
|
||||
procd_append_param command --chnlist-file "$HP_DIR/resources/china_list.txt"
|
||||
procd_append_param command --gfwlist-file "$HP_DIR/resources/gfw_list.txt"
|
||||
[ "$ipv6_support" -eq "1" ] || procd_append_param command --no-ipv6=tC
|
||||
procd_append_param command --reuse-port
|
||||
|
||||
if [ -x "/sbin/ujail" ]; then
|
||||
procd_add_jail "chinadns-ng" log
|
||||
procd_add_jail_mount "$HP_DIR/resources/china_list.txt"
|
||||
procd_add_jail_mount "$HP_DIR/resources/gfw_list.txt"
|
||||
procd_set_param capabilities "/etc/capabilities/homeproxy.json"
|
||||
procd_set_param no_new_privs 1
|
||||
procd_set_param user sing-box
|
||||
procd_set_param group sing-box
|
||||
fi
|
||||
if chinadns-ng --version | grep -q "target:"; then
|
||||
procd_append_param command --cache 10000
|
||||
procd_append_param command --cache-stale 3600
|
||||
procd_append_param command --verdict-cache 10000
|
||||
fi
|
||||
|
||||
procd_set_param limits core="unlimited"
|
||||
procd_set_param limits nofile="1000000 1000000"
|
||||
procd_set_param stderr 1
|
||||
procd_set_param respawn
|
||||
if [ -x "/sbin/ujail" ]; then
|
||||
procd_add_jail "chinadns-ng" log
|
||||
procd_add_jail_mount "$HP_DIR/resources/china_list.txt"
|
||||
procd_add_jail_mount "$HP_DIR/resources/gfw_list.txt"
|
||||
procd_set_param capabilities "/etc/capabilities/homeproxy.json"
|
||||
procd_set_param no_new_privs 1
|
||||
procd_set_param user sing-box
|
||||
procd_set_param group sing-box
|
||||
fi
|
||||
|
||||
procd_close_instance
|
||||
procd_set_param limits core="unlimited"
|
||||
procd_set_param limits nofile="1000000 1000000"
|
||||
procd_set_param stderr 1
|
||||
procd_set_param respawn
|
||||
|
||||
procd_close_instance
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
china_dns_server="$(uci -q get "homeproxy.config.china_dns_server")"
|
||||
if [ "$china_dns_server" = "wan_114" ]; then
|
||||
uci -q delete "homeproxy.config.china_dns_server"
|
||||
uci -q add_list "homeproxy.config.china_dns_server"="wan"
|
||||
uci -q add_list "homeproxy.config.china_dns_server"="114.114.114.114"
|
||||
elif echo "$china_dns_server" | grep -q ","; then
|
||||
uci -q delete "homeproxy.config.china_dns_server"
|
||||
for dns in ${china_dns_server//,/ }; do
|
||||
uci -q add_list "homeproxy.config.china_dns_server"="$dns"
|
||||
done
|
||||
fi
|
||||
[ -z "$(uci -q changes "homeproxy")" ] || uci -q commit "homeproxy"
|
||||
|
||||
exit 0
|
@@ -173,6 +173,8 @@ const methods = {
|
||||
}
|
||||
|
||||
features.hp_has_chinadns_ng = access('/usr/bin/chinadns-ng');
|
||||
if (features.hp_has_chinadns_ng)
|
||||
features.hp_has_chinadns_ng_v2 = (system('/usr/bin/chinadns-ng --version | grep -q "target:"') === 0);
|
||||
features.hp_has_ip_full = access('/usr/libexec/ip-full');
|
||||
features.hp_has_tcp_brutal = hasKernelModule('brutal.ko');
|
||||
features.hp_has_tproxy = hasKernelModule('nft_tproxy.ko') || access('/etc/modules.d/nft-tproxy');
|
||||
|
29
sing-box/.github/workflows/docker.yml
vendored
29
sing-box/.github/workflows/docker.yml
vendored
@@ -4,13 +4,35 @@ on:
|
||||
release:
|
||||
types:
|
||||
- released
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: "The tag version you want to build"
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get commit to build
|
||||
id: ref
|
||||
run: |-
|
||||
if [[ -z "${{ github.event.inputs.tag }}" ]]; then
|
||||
ref="${{ github.ref_name }}"
|
||||
else
|
||||
ref="${{ github.event.inputs.tag }}"
|
||||
fi
|
||||
echo "ref=$ref"
|
||||
echo "ref=$ref" >> $GITHUB_OUTPUT
|
||||
if [[ $ref == *"-"* ]]; then
|
||||
latest=latest-beta
|
||||
else
|
||||
latest=latest
|
||||
fi
|
||||
echo "latest=$latest"
|
||||
echo "latest=$latest" >> $GITHUB_OUTPUT
|
||||
- name: Checkout
|
||||
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
|
||||
with:
|
||||
ref: ${{ steps.ref.outputs.ref }}
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Setup QEMU for Docker Buildx
|
||||
@@ -30,10 +52,11 @@ jobs:
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
platforms: linux/386,linux/amd64,linux/arm64,linux/s390x
|
||||
context: .
|
||||
target: dist
|
||||
build-args: |
|
||||
BUILDKIT_CONTEXT_KEEP_GIT_DIR=1
|
||||
tags: |
|
||||
ghcr.io/sagernet/sing-box:latest
|
||||
ghcr.io/sagernet/sing-box:${{ github.ref_name }}
|
||||
ghcr.io/sagernet/sing-box:${{ steps.ref.outputs.latest }}
|
||||
ghcr.io/sagernet/sing-box:${{ steps.ref.outputs.ref }}
|
||||
push: true
|
||||
|
@@ -5,8 +5,8 @@ buildscript {
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'com.android.application' version '8.3.2' apply false
|
||||
id 'com.android.library' version '8.3.2' apply false
|
||||
id 'com.android.application' version '8.4.0' apply false
|
||||
id 'com.android.library' version '8.4.0' apply false
|
||||
id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
|
||||
id 'com.google.devtools.ksp' version '1.9.0-1.0.12' apply false
|
||||
id 'com.github.triplet.play' version '3.8.4' apply false
|
||||
|
@@ -1,3 +1,3 @@
|
||||
VERSION_CODE=323
|
||||
VERSION_NAME=1.8.12
|
||||
VERSION_CODE=330
|
||||
VERSION_NAME=1.8.13
|
||||
GO_VERSION=go1.22.2
|
||||
|
@@ -54,7 +54,7 @@ import Library
|
||||
if profiles.isEmpty {
|
||||
return
|
||||
}
|
||||
await ProfileUpdateTask.updateProfiles(profiles)
|
||||
_ = await ProfileUpdateTask.updateProfiles(profiles)
|
||||
}
|
||||
|
||||
private nonisolated static func getAndUpdateProfiles(_ task: BGTask) async {
|
||||
|
@@ -87,7 +87,7 @@ public struct ServiceLogView: View {
|
||||
guard let value = element.value as? Int8, value != 0 else { return identifier }
|
||||
return identifier + String(UnicodeScalar(UInt8(value)))
|
||||
}
|
||||
var deviceInfo = await "Machine: " + machineName + "\n"
|
||||
var deviceInfo = "Machine: " + machineName + "\n"
|
||||
#if os(iOS)
|
||||
await deviceInfo += "System: " + (UIDevice.current.systemName) + " " + (UIDevice.current.systemVersion) + "\n"
|
||||
#elseif os(macOS)
|
||||
|
@@ -50,6 +50,7 @@ public class ExtensionProfile: ObservableObject {
|
||||
}
|
||||
|
||||
public func start() async throws {
|
||||
await fetchProfile()
|
||||
manager.isEnabled = true
|
||||
if await SharedPreferences.alwaysOn.get() {
|
||||
manager.isOnDemandEnabled = true
|
||||
@@ -76,6 +77,16 @@ public class ExtensionProfile: ObservableObject {
|
||||
try manager.connection.startVPNTunnel()
|
||||
}
|
||||
|
||||
public func fetchProfile() async {
|
||||
do {
|
||||
if let profile = try await ProfileManager.get(Int64(SharedPreferences.selectedProfileID.get())) {
|
||||
if profile.type == .icloud {
|
||||
_ = try profile.read()
|
||||
}
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
|
||||
public func stop() async throws {
|
||||
if manager.isOnDemandEnabled {
|
||||
manager.isOnDemandEnabled = false
|
||||
|
@@ -2010,7 +2010,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa;
|
||||
PRODUCT_NAME = "sing-box";
|
||||
SDKROOT = appletvos;
|
||||
@@ -2044,7 +2044,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa;
|
||||
PRODUCT_NAME = "sing-box";
|
||||
SDKROOT = appletvos;
|
||||
@@ -2282,7 +2282,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
OTHER_CODE_SIGN_FLAGS = "--deep";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa;
|
||||
PRODUCT_NAME = "sing-box";
|
||||
@@ -2322,7 +2322,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
OTHER_CODE_SIGN_FLAGS = "--deep";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa;
|
||||
PRODUCT_NAME = "sing-box";
|
||||
@@ -2345,7 +2345,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 213;
|
||||
CURRENT_PROJECT_VERSION = 221;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = Z56Z6NYZN2;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
@@ -2361,7 +2361,7 @@
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
OTHER_CODE_SIGN_FLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa;
|
||||
PRODUCT_NAME = "sing-box";
|
||||
@@ -2383,7 +2383,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 213;
|
||||
CURRENT_PROJECT_VERSION = 221;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = Z56Z6NYZN2;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
@@ -2399,7 +2399,7 @@
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
OTHER_CODE_SIGN_FLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa;
|
||||
PRODUCT_NAME = "sing-box";
|
||||
@@ -2541,7 +2541,7 @@
|
||||
"@executable_path/../../../../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.system;
|
||||
PRODUCT_NAME = "$(inherited)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@@ -2577,7 +2577,7 @@
|
||||
"@executable_path/../../../../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.system;
|
||||
PRODUCT_NAME = "$(inherited)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@@ -2617,7 +2617,7 @@
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.independent;
|
||||
PRODUCT_NAME = SFM;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@@ -2656,7 +2656,7 @@
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||
MARKETING_VERSION = 1.8.11;
|
||||
MARKETING_VERSION = 1.8.13;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfa.independent;
|
||||
PRODUCT_NAME = SFM;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
|
@@ -2,6 +2,15 @@
|
||||
icon: material/alert-decagram
|
||||
---
|
||||
|
||||
#### 1.9.0-rc.15
|
||||
|
||||
* Fixes and improvements
|
||||
|
||||
#### 1.8.13
|
||||
|
||||
* Fix fake-ip mapping
|
||||
* Fixes and improvements
|
||||
|
||||
#### 1.9.0-rc.14
|
||||
|
||||
* Fixes and improvements
|
||||
|
@@ -57,16 +57,16 @@ go build -tags "tag_a tag_b" ./cmd/sing-box
|
||||
| Build Tag | Enabled by default | Description |
|
||||
|------------------------------------|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `with_quic` | :material-check: | Build with QUIC support, see [QUIC and HTTP3 DNS transports](/configuration/dns/server/), [Naive inbound](/configuration/inbound/naive/), [Hysteria Inbound](/configuration/inbound/hysteria/), [Hysteria Outbound](/configuration/outbound/hysteria/) and [V2Ray Transport#QUIC](/configuration/shared/v2ray-transport#quic). |
|
||||
| `with_grpc` | :material-close:️ | Build with standard gRPC support, see [V2Ray Transport#gRPC](/configuration/shared/v2ray-transport#grpc). |
|
||||
| `with_grpc` | :material-close:️ | Build with standard gRPC support, see [V2Ray Transport#gRPC](/configuration/shared/v2ray-transport#grpc). |
|
||||
| `with_dhcp` | :material-check: | Build with DHCP support, see [DHCP DNS transport](/configuration/dns/server/). |
|
||||
| `with_wireguard` | :material-check: | Build with WireGuard support, see [WireGuard outbound](/configuration/outbound/wireguard/). |
|
||||
| `with_ech` | :material-check: | Build with TLS ECH extension support for TLS outbound, see [TLS](/configuration/shared/tls#ech). |
|
||||
| `with_utls` | :material-check: | Build with [uTLS](https://github.com/refraction-networking/utls) support for TLS outbound, see [TLS](/configuration/shared/tls#utls). |
|
||||
| `with_ech` | :material-check: | Build with TLS ECH extension support for TLS outbound, see [TLS](/configuration/shared/tls#ech). |
|
||||
| `with_utls` | :material-check: | Build with [uTLS](https://github.com/refraction-networking/utls) support for TLS outbound, see [TLS](/configuration/shared/tls#utls). |
|
||||
| `with_reality_server` | :material-check: | Build with reality TLS server support, see [TLS](/configuration/shared/tls/). |
|
||||
| `with_acme` | :material-check: | Build with ACME TLS certificate issuer support, see [TLS](/configuration/shared/tls/). |
|
||||
| `with_clash_api` | :material-check: | Build with Clash API support, see [Experimental](/configuration/experimental#clash-api-fields). |
|
||||
| `with_v2ray_api` | :material-close:️ | Build with V2Ray API support, see [Experimental](/configuration/experimental#v2ray-api-fields). |
|
||||
| `with_gvisor` | :material-check: | Build with gVisor support, see [Tun inbound](/configuration/inbound/tun#stack) and [WireGuard outbound](/configuration/outbound/wireguard#system_interface). |
|
||||
| `with_clash_api` | :material-check: | Build with Clash API support, see [Experimental](/configuration/experimental#clash-api-fields). |
|
||||
| `with_v2ray_api` | :material-close:️ | Build with V2Ray API support, see [Experimental](/configuration/experimental#v2ray-api-fields). |
|
||||
| `with_gvisor` | :material-check: | Build with gVisor support, see [Tun inbound](/configuration/inbound/tun#stack) and [WireGuard outbound](/configuration/outbound/wireguard#system_interface). |
|
||||
| `with_embedded_tor` (CGO required) | :material-close:️ | Build with embedded Tor support, see [Tor outbound](/configuration/outbound/tor/). |
|
||||
|
||||
It is not recommended to change the default build tag list unless you really know what you are adding.
|
||||
|
@@ -54,19 +54,19 @@ go build -tags "tag_a tag_b" ./cmd/sing-box
|
||||
|
||||
## :material-folder-settings: 构建标记
|
||||
|
||||
| 构建标记 | 默认启动 | 说明 |
|
||||
|------------------------------------|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| 构建标记 | 默认启动 | 说明 |
|
||||
|------------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `with_quic` | :material-check: | Build with QUIC support, see [QUIC and HTTP3 DNS transports](/configuration/dns/server/), [Naive inbound](/configuration/inbound/naive/), [Hysteria Inbound](/configuration/inbound/hysteria/), [Hysteria Outbound](/configuration/outbound/hysteria/) and [V2Ray Transport#QUIC](/configuration/shared/v2ray-transport#quic). |
|
||||
| `with_grpc` | :material-close:️ | Build with standard gRPC support, see [V2Ray Transport#gRPC](/configuration/shared/v2ray-transport#grpc). |
|
||||
| `with_dhcp` | :material-check: | Build with DHCP support, see [DHCP DNS transport](/configuration/dns/server/). |
|
||||
| `with_wireguard` | :material-check: | Build with WireGuard support, see [WireGuard outbound](/configuration/outbound/wireguard/). |
|
||||
| `with_ech` | :material-check: | Build with TLS ECH extension support for TLS outbound, see [TLS](/configuration/shared/tls#ech). |
|
||||
| `with_utls` | :material-check: | Build with [uTLS](https://github.com/refraction-networking/utls) support for TLS outbound, see [TLS](/configuration/shared/tls#utls). |
|
||||
| `with_reality_server` | :material-check: | Build with reality TLS server support, see [TLS](/configuration/shared/tls/). |
|
||||
| `with_acme` | :material-check: | Build with ACME TLS certificate issuer support, see [TLS](/configuration/shared/tls/). |
|
||||
| `with_clash_api` | :material-check: | Build with Clash API support, see [Experimental](/configuration/experimental#clash-api-fields). |
|
||||
| `with_v2ray_api` | :material-close:️ | Build with V2Ray API support, see [Experimental](/configuration/experimental#v2ray-api-fields). |
|
||||
| `with_gvisor` | :material-check: | Build with gVisor support, see [Tun inbound](/configuration/inbound/tun#stack) and [WireGuard outbound](/configuration/outbound/wireguard#system_interface). |
|
||||
| `with_embedded_tor` (CGO required) | :material-close:️ | Build with embedded Tor support, see [Tor outbound](/configuration/outbound/tor/). |
|
||||
| `with_grpc` | :material-close:️ | Build with standard gRPC support, see [V2Ray Transport#gRPC](/configuration/shared/v2ray-transport#grpc). |
|
||||
| `with_dhcp` | :material-check: | Build with DHCP support, see [DHCP DNS transport](/configuration/dns/server/). |
|
||||
| `with_wireguard` | :material-check: | Build with WireGuard support, see [WireGuard outbound](/configuration/outbound/wireguard/). |
|
||||
| `with_ech` | :material-check: | Build with TLS ECH extension support for TLS outbound, see [TLS](/configuration/shared/tls#ech). |
|
||||
| `with_utls` | :material-check: | Build with [uTLS](https://github.com/refraction-networking/utls) support for TLS outbound, see [TLS](/configuration/shared/tls#utls). |
|
||||
| `with_reality_server` | :material-check: | Build with reality TLS server support, see [TLS](/configuration/shared/tls/). |
|
||||
| `with_acme` | :material-check: | Build with ACME TLS certificate issuer support, see [TLS](/configuration/shared/tls/). |
|
||||
| `with_clash_api` | :material-check: | Build with Clash API support, see [Experimental](/configuration/experimental#clash-api-fields). |
|
||||
| `with_v2ray_api` | :material-close:️ | Build with V2Ray API support, see [Experimental](/configuration/experimental#v2ray-api-fields). |
|
||||
| `with_gvisor` | :material-check: | Build with gVisor support, see [Tun inbound](/configuration/inbound/tun#stack) and [WireGuard outbound](/configuration/outbound/wireguard#system_interface). |
|
||||
| `with_embedded_tor` (CGO required) | :material-close:️ | Build with embedded Tor support, see [Tor outbound](/configuration/outbound/tor/). |
|
||||
|
||||
除非您确实知道您正在启用什么,否则不建议更改默认构建标签列表。
|
||||
|
@@ -57,38 +57,38 @@ icon: material/package
|
||||
|
||||
=== ":material-linux: Linux"
|
||||
|
||||
| Type | Platform | Link | Command | Actively maintained |
|
||||
|----------|---------------|-------------------------|------------------------------|---------------------|
|
||||
| APK | Alpine | [sing-box][alpine] | `apk add sing-box` | :material-check: |
|
||||
| AUR | Arch Linux | [sing-box][aur] ᴬᵁᴿ | `? -S sing-box` | :material-check: |
|
||||
| nixpkgs | NixOS | [sing-box][nixpkgs] | `nix-env -iA nixos.sing-box` | :material-check: |
|
||||
| Homebrew | macOS / Linux | [sing-box][brew] | `brew install sing-box` | :material-check: |
|
||||
| Type | Platform | Command | Link |
|
||||
|----------|---------------|------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||
| AUR | Arch Linux | `? -S sing-box` | [][aur] |
|
||||
| nixpkgs | NixOS | `nix-env -iA nixos.sing-box` | [][nixpkgs] |
|
||||
| Homebrew | macOS / Linux | `brew install sing-box` | [][brew] |
|
||||
| APK | Alpine | `apk add sing-box` | [][alpine] |
|
||||
|
||||
=== ":material-apple: macOS"
|
||||
|
||||
| Type | Platform | Link | Command | Actively maintained |
|
||||
|----------|----------|------------------|-------------------------|---------------------|
|
||||
| Homebrew | macOS | [sing-box][brew] | `brew install sing-box` | :material-check: |
|
||||
| Type | Platform | Command | Link |
|
||||
|----------|----------|-------------------------|------------------------------------------------------------------------------------------------|
|
||||
| Homebrew | macOS | `brew install sing-box` | [][brew] |
|
||||
|
||||
=== ":material-microsoft-windows: Windows"
|
||||
|
||||
| Type | Platform | Link | Command | Actively maintained |
|
||||
|------------|--------------------|---------------------|------------------------------|---------------------|
|
||||
| Scoop | Windows | [sing-box][scoop] | `scoop install sing-box` | :material-check: |
|
||||
| Chocolatey | Windows | [sing-box][choco] | `choco install sing-box` | :material-check: |
|
||||
| winget | Windows | [sing-box][winget] | `winget install sing-box` | :material-alert: |
|
||||
| Type | Platform | Command | Link |
|
||||
|------------|----------|---------------------------|-----------------------------------------------------------------------------------------------------|
|
||||
| Scoop | Windows | `scoop install sing-box` | [][scoop] |
|
||||
| Chocolatey | Windows | `choco install sing-box` | [][choco] |
|
||||
| winget | Windows | `winget install sing-box` | [][winget] |
|
||||
|
||||
=== ":material-android: Android"
|
||||
|
||||
| Type | Platform | Link | Command | Actively maintained |
|
||||
|------------|--------------------|---------------------|------------------------------|---------------------|
|
||||
| Termux | Android | [sing-box][termux] | `pkg add sing-box` | :material-check: |
|
||||
| Type | Platform | Command | Link |
|
||||
|--------|----------|--------------------|----------------------------------------------------------------------------------------------|
|
||||
| Termux | Android | `pkg add sing-box` | [][termux] |
|
||||
|
||||
=== ":material-freebsd: FreeBSD"
|
||||
|
||||
| Type | Platform | Link | Command | Actively maintained |
|
||||
|------------|----------|-------------------|------------------------|---------------------|
|
||||
| FreshPorts | FreeBSD | [sing-box][ports] | `pkg install sing-box` | :material-alert: |
|
||||
| Type | Platform | Command | Link |
|
||||
|------------|----------|------------------------|--------------------------------------------------------------------------------------------|
|
||||
| FreshPorts | FreeBSD | `pkg install sing-box` | [][ports] |
|
||||
|
||||
## :material-book-multiple: Service Management
|
||||
|
||||
|
@@ -57,38 +57,38 @@ icon: material/package
|
||||
|
||||
=== ":material-linux: Linux"
|
||||
|
||||
| 类型 | 平台 | 链接 | 命令 | 活跃维护 |
|
||||
|----------|------------|---------------------|------------------------------|------------------|
|
||||
| Alpine | Alpine | [sing-box][alpine] | `apk add sing-box` | :material-check: |
|
||||
| AUR | Arch Linux | [sing-box][aur] ᴬᵁᴿ | `? -S sing-box` | :material-check: |
|
||||
| nixpkgs | NixOS | [sing-box][nixpkgs] | `nix-env -iA nixos.sing-box` | :material-check: |
|
||||
| Homebrew | Linux | [sing-box][brew] | `brew install sing-box` | :material-check: |
|
||||
| 类型 | 平台 | 链接 | 命令 |
|
||||
|----------|---------------|------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||
| AUR | Arch Linux | `? -S sing-box` | [][aur] |
|
||||
| nixpkgs | NixOS | `nix-env -iA nixos.sing-box` | [][nixpkgs] |
|
||||
| Homebrew | macOS / Linux | `brew install sing-box` | [][brew] |
|
||||
| APK | Alpine | `apk add sing-box` | [][alpine] |
|
||||
|
||||
=== ":material-apple: macOS"
|
||||
|
||||
| 类型 | 平台 | 链接 | 命令 | 活跃维护 |
|
||||
|----------|-------|------------------|-------------------------|------------------|
|
||||
| Homebrew | macOS | [sing-box][brew] | `brew install sing-box` | :material-check: |
|
||||
| 类型 | 平台 | 链接 | 命令 |
|
||||
|----------|-------|-------------------------|------------------------------------------------------------------------------------------------|
|
||||
| Homebrew | macOS | `brew install sing-box` | [][brew] |
|
||||
|
||||
=== ":material-microsoft-windows: Windows"
|
||||
|
||||
| 类型 | 平台 | 链接 | 命令 | 活跃维护 |
|
||||
|------------|---------|--------------------|---------------------------|------------------|
|
||||
| Scoop | Windows | [sing-box][scoop] | `scoop install sing-box` | :material-check: |
|
||||
| Chocolatey | Windows | [sing-box][choco] | `choco install sing-box` | :material-check: |
|
||||
| winget | Windows | [sing-box][winget] | `winget install sing-box` | :material-alert: |
|
||||
| 类型 | 平台 | 链接 | 命令 |
|
||||
|------------|---------|---------------------------|-----------------------------------------------------------------------------------------------------|
|
||||
| Scoop | Windows | `scoop install sing-box` | [][scoop] |
|
||||
| Chocolatey | Windows | `choco install sing-box` | [][choco] |
|
||||
| winget | Windows | `winget install sing-box` | [][winget] |
|
||||
|
||||
=== ":material-android: Android"
|
||||
|
||||
| 类型 | 平台 | 链接 | 命令 | 活跃维护 |
|
||||
|--------|---------|--------------------|--------------------|------------------|
|
||||
| Termux | Android | [sing-box][termux] | `pkg add sing-box` | :material-check: |
|
||||
| 类型 | 平台 | 链接 | 命令 |
|
||||
|--------|---------|--------------------|----------------------------------------------------------------------------------------------|
|
||||
| Termux | Android | `pkg add sing-box` | [][termux] |
|
||||
|
||||
=== ":material-freebsd: FreeBSD"
|
||||
|
||||
| 类型 | 平台 | 链接 | 命令 | 活跃维护 |
|
||||
|------------|---------|-------------------|------------------------|------------------|
|
||||
| FreshPorts | FreeBSD | [sing-box][ports] | `pkg install sing-box` | :material-alert: |
|
||||
| 类型 | 平台 | 链接 | 命令 |
|
||||
|------------|---------|------------------------|--------------------------------------------------------------------------------------------|
|
||||
| FreshPorts | FreeBSD | `pkg install sing-box` | [][ports] |
|
||||
|
||||
## :material-book-multiple: 服务管理
|
||||
|
||||
|
@@ -1,7 +1,6 @@
|
||||
[sing-box]
|
||||
name=sing-box
|
||||
baseurl=https://rpm.sagernet.org/
|
||||
metalink=https://sing-box.app/sing-box.repo
|
||||
enabled=1
|
||||
repo_gpgcheck=1
|
||||
gpgcheck=1
|
||||
|
@@ -24,16 +24,16 @@ require (
|
||||
github.com/sagernet/cloudflare-tls v0.0.0-20231208171750-a4483c1b7cd1
|
||||
github.com/sagernet/gomobile v0.1.3
|
||||
github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f
|
||||
github.com/sagernet/quic-go v0.43.0-beta.2
|
||||
github.com/sagernet/quic-go v0.43.0-beta.3
|
||||
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691
|
||||
github.com/sagernet/sing v0.4.0-beta.18
|
||||
github.com/sagernet/sing-dns v0.2.0-beta.16
|
||||
github.com/sagernet/sing-mux v0.2.0
|
||||
github.com/sagernet/sing-quic v0.1.13-beta.5
|
||||
github.com/sagernet/sing-quic v0.2.0-beta.1
|
||||
github.com/sagernet/sing-shadowsocks v0.2.6
|
||||
github.com/sagernet/sing-shadowsocks2 v0.2.0
|
||||
github.com/sagernet/sing-shadowtls v0.1.4
|
||||
github.com/sagernet/sing-tun v0.2.7-beta.2
|
||||
github.com/sagernet/sing-tun v0.2.8-beta.1
|
||||
github.com/sagernet/sing-vmess v0.1.8
|
||||
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7
|
||||
github.com/sagernet/tfo-go v0.0.0-20231209031829-7b5343ac1dc6
|
||||
|
@@ -101,8 +101,8 @@ github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f h1:NkhuupzH5ch7b/Y
|
||||
github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f/go.mod h1:KXmw+ouSJNOsuRpg4wgwwCQuunrGz4yoAqQjsLjc6N0=
|
||||
github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 h1:iL5gZI3uFp0X6EslacyapiRz7LLSJyr4RajF/BhMVyE=
|
||||
github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM=
|
||||
github.com/sagernet/quic-go v0.43.0-beta.2 h1:O10Saj7TkujwFGD0TG47HTcVkrEl3tbW6adtu+BFKqs=
|
||||
github.com/sagernet/quic-go v0.43.0-beta.2/go.mod h1:3EtxR1Yaa1FZu6jFPiBHpOAdhOxL4A3EPxmiVgjJvVM=
|
||||
github.com/sagernet/quic-go v0.43.0-beta.3 h1:qclJbbpgZe76EH62Bdu3LfDSC2zmuxj7zXCpdQBbe7c=
|
||||
github.com/sagernet/quic-go v0.43.0-beta.3/go.mod h1:3EtxR1Yaa1FZu6jFPiBHpOAdhOxL4A3EPxmiVgjJvVM=
|
||||
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 h1:5Th31OC6yj8byLGkEnIYp6grlXfo1QYUfiYFGjewIdc=
|
||||
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691/go.mod h1:B8lp4WkQ1PwNnrVMM6KyuFR20pU8jYBD+A4EhJovEXU=
|
||||
github.com/sagernet/sing v0.2.18/go.mod h1:OL6k2F0vHmEzXz2KW19qQzu172FDgSbUSODylighuVo=
|
||||
@@ -112,16 +112,16 @@ github.com/sagernet/sing-dns v0.2.0-beta.16 h1:bzd4B8eHD7/WO3HrYknvgE8A56/R3n5oX
|
||||
github.com/sagernet/sing-dns v0.2.0-beta.16/go.mod h1:XU6Vqr6aHcMz/34Fcv8jmXpRCEuShzW+B7Qg1Xe1nxY=
|
||||
github.com/sagernet/sing-mux v0.2.0 h1:4C+vd8HztJCWNYfufvgL49xaOoOHXty2+EAjnzN3IYo=
|
||||
github.com/sagernet/sing-mux v0.2.0/go.mod h1:khzr9AOPocLa+g53dBplwNDz4gdsyx/YM3swtAhlkHQ=
|
||||
github.com/sagernet/sing-quic v0.1.13-beta.5 h1:smhCPV+U4nM9phDIuxsPvSkCHuqFb23Gq7tf2VXh6So=
|
||||
github.com/sagernet/sing-quic v0.1.13-beta.5/go.mod h1:tHO6VRzZlnLOEZnD/D9WfDOcZpYwp8UYbvVt6gEM28s=
|
||||
github.com/sagernet/sing-quic v0.2.0-beta.1 h1:XR8KPYs50MNcFMR2/lh4eOonYeV15eJolAAWCQZpStI=
|
||||
github.com/sagernet/sing-quic v0.2.0-beta.1/go.mod h1:tVUFk5lcW22Bl0ChWlt4Lo93jw0qir3X1fk2ZSypaA4=
|
||||
github.com/sagernet/sing-shadowsocks v0.2.6 h1:xr7ylAS/q1cQYS8oxKKajhuQcchd5VJJ4K4UZrrpp0s=
|
||||
github.com/sagernet/sing-shadowsocks v0.2.6/go.mod h1:j2YZBIpWIuElPFL/5sJAj470bcn/3QQ5lxZUNKLDNAM=
|
||||
github.com/sagernet/sing-shadowsocks2 v0.2.0 h1:wpZNs6wKnR7mh1wV9OHwOyUr21VkS3wKFHi+8XwgADg=
|
||||
github.com/sagernet/sing-shadowsocks2 v0.2.0/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ=
|
||||
github.com/sagernet/sing-shadowtls v0.1.4 h1:aTgBSJEgnumzFenPvc+kbD9/W0PywzWevnVpEx6Tw3k=
|
||||
github.com/sagernet/sing-shadowtls v0.1.4/go.mod h1:F8NBgsY5YN2beQavdgdm1DPlhaKQlaL6lpDdcBglGK4=
|
||||
github.com/sagernet/sing-tun v0.2.7-beta.2 h1:UO/Ketf15I+xDSi9XnrS65dxm2AmCZ+dgA6dt/jt7ko=
|
||||
github.com/sagernet/sing-tun v0.2.7-beta.2/go.mod h1:xPaOkQhngPMILx+/9DMLCFl4vSxUU2tMnCPSlf05HLo=
|
||||
github.com/sagernet/sing-tun v0.2.8-beta.1 h1:9loO5/Jqa+54NDi5mKh/CS6LlKsROCSnNQ+jgMcnI+I=
|
||||
github.com/sagernet/sing-tun v0.2.8-beta.1/go.mod h1:xPaOkQhngPMILx+/9DMLCFl4vSxUU2tMnCPSlf05HLo=
|
||||
github.com/sagernet/sing-vmess v0.1.8 h1:XVWad1RpTy9b5tPxdm5MCU8cGfrTGdR8qCq6HV2aCNc=
|
||||
github.com/sagernet/sing-vmess v0.1.8/go.mod h1:vhx32UNzTDUkNwOyIjcZQohre1CaytquC5mPplId8uA=
|
||||
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7 h1:DImB4lELfQhplLTxeq2z31Fpv8CQqqrUwTbrIRumZqQ=
|
||||
|
@@ -53,7 +53,9 @@ func NewDefaultFactory(
|
||||
if platformWriter != nil {
|
||||
factory.platformFormatter.DisableColors = platformWriter.DisableColors()
|
||||
}
|
||||
factory.observer = observable.NewObserver[Entry](factory.subscriber, 64)
|
||||
if needObservable {
|
||||
factory.observer = observable.NewObserver[Entry](factory.subscriber, 64)
|
||||
}
|
||||
return factory
|
||||
}
|
||||
|
||||
@@ -72,7 +74,7 @@ func (f *defaultFactory) Start() error {
|
||||
func (f *defaultFactory) Close() error {
|
||||
return common.Close(
|
||||
common.PtrOrNil(f.file),
|
||||
f.observer,
|
||||
f.subscriber,
|
||||
)
|
||||
}
|
||||
|
||||
|
@@ -6,12 +6,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=sing-box
|
||||
PKG_VERSION:=1.8.12
|
||||
PKG_VERSION:=1.8.13
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=802eb5e202ac1dd846b1f529b3df9e5d69452182fd5d70f7c8f2a819c9e86162
|
||||
PKG_HASH:=de1c09d096c6fca9f59863a051438aeb3197713faa6518cb46d7ca0a9bc63976
|
||||
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
@@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=v2ray-core
|
||||
PKG_VERSION:=5.15.3
|
||||
PKG_VERSION:=5.16.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=32b325e54ee93fb3563c33d3c097592aa857370055d8ef1c50fd2387678843df
|
||||
PKG_HASH:=e5d61b97168ebdf6da3d672ab40abe5b22951d46997072ca1ee497a3aa47ba05
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
@@ -18,7 +18,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
version = "5.15.3"
|
||||
version = "5.16.1"
|
||||
build = "Custom"
|
||||
codename = "V2Fly, a community-driven edition of V2Ray."
|
||||
intro = "A unified platform for anti-censorship."
|
||||
|
@@ -19,10 +19,10 @@ require (
|
||||
github.com/miekg/dns v1.1.59
|
||||
github.com/mustafaturan/bus v1.0.2
|
||||
github.com/pelletier/go-toml v1.9.5
|
||||
github.com/pion/transport/v2 v2.2.4
|
||||
github.com/pion/transport/v2 v2.2.5
|
||||
github.com/pires/go-proxyproto v0.7.0
|
||||
github.com/quic-go/quic-go v0.43.0
|
||||
github.com/refraction-networking/utls v1.6.4
|
||||
github.com/refraction-networking/utls v1.6.5
|
||||
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08
|
||||
@@ -34,14 +34,14 @@ require (
|
||||
go4.org/netipx v0.0.0-20230303233057-f1b76eb4bb35
|
||||
golang.org/x/crypto v0.22.0
|
||||
golang.org/x/net v0.24.0
|
||||
golang.org/x/sync v0.6.0
|
||||
golang.org/x/sync v0.7.0
|
||||
golang.org/x/sys v0.19.0
|
||||
google.golang.org/grpc v1.63.2
|
||||
google.golang.org/protobuf v1.34.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
gvisor.dev/gvisor v0.0.0-20231020174304-b8a429915ff1
|
||||
h12.io/socks v1.0.3
|
||||
lukechampine.com/blake3 v1.2.2
|
||||
lukechampine.com/blake3 v1.3.0
|
||||
)
|
||||
|
||||
require (
|
||||
|
@@ -245,8 +245,8 @@ github.com/pion/sctp v1.8.7/go.mod h1:g1Ul+ARqZq5JEmoFy87Q/4CePtKnTJ1QCL9dBBdN6A
|
||||
github.com/pion/transport v0.8.10/go.mod h1:tBmha/UCjpum5hqTWhfAEs3CO4/tHSg0MYRhSzR+CZ8=
|
||||
github.com/pion/transport/v2 v2.1.0/go.mod h1:AdSw4YBZVDkZm8fpoz+fclXyQwANWmZAlDuQdctTThQ=
|
||||
github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g=
|
||||
github.com/pion/transport/v2 v2.2.4 h1:41JJK6DZQYSeVLxILA2+F4ZkKb4Xd/tFJZRFZQ9QAlo=
|
||||
github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0=
|
||||
github.com/pion/transport/v2 v2.2.5 h1:iyi25i/21gQck4hfRhomF6SktmUQjRsRW4WJdhfc3Kc=
|
||||
github.com/pion/transport/v2 v2.2.5/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0=
|
||||
github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs=
|
||||
github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
@@ -267,8 +267,8 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/quic-go/quic-go v0.43.0 h1:sjtsTKWX0dsHpuMJvLxGqoQdtgJnbAPWY+W+5vjYW/g=
|
||||
github.com/quic-go/quic-go v0.43.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M=
|
||||
github.com/refraction-networking/utls v1.6.4 h1:aeynTroaYn7y+mFtqv8D0bQ4bw0y9nJHneGxJ7lvRDM=
|
||||
github.com/refraction-networking/utls v1.6.4/go.mod h1:2VL2xfiqgFAZtJKeUTlf+PSYFs3Eu7km0gCtXJ3m8zs=
|
||||
github.com/refraction-networking/utls v1.6.5 h1:Jlfqgs/t1Uy6FHHQ8Fz9ZTrRmP/zS7d/NZw7BLahaL8=
|
||||
github.com/refraction-networking/utls v1.6.5/go.mod h1:BC3O4vQzye5hqpmDTWUqi4P5DDhzJfkV1tdqtawQIH0=
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
@@ -432,8 +432,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.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
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=
|
||||
@@ -586,6 +586,6 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
lukechampine.com/blake3 v1.2.2 h1:wEAbSg0IVU4ih44CVlpMqMZMpzr5hf/6aqodLlevd/w=
|
||||
lukechampine.com/blake3 v1.2.2/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
|
||||
lukechampine.com/blake3 v1.3.0 h1:sJ3XhFINmHSrYCgl958hscfIa3bw8x4DqMP3u1YvoYE=
|
||||
lukechampine.com/blake3 v1.3.0/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
|
@@ -539,24 +539,38 @@ namespace v2rayN.Handler
|
||||
{
|
||||
try
|
||||
{
|
||||
var dnsOutbound = "dns_out";
|
||||
if (!_config.inbound[0].sniffingEnabled)
|
||||
{
|
||||
singboxConfig.route.rules.Add(new()
|
||||
{
|
||||
port = [53],
|
||||
network = "udp",
|
||||
outbound = dnsOutbound
|
||||
});
|
||||
}
|
||||
|
||||
if (_config.tunModeItem.enableTun)
|
||||
{
|
||||
singboxConfig.route.auto_detect_interface = true;
|
||||
|
||||
var tunRules = JsonUtils.Deserialize<List<Rule4Sbox>>(Utils.GetEmbedText(Global.TunSingboxRulesFileName));
|
||||
singboxConfig.route.rules.AddRange(tunRules);
|
||||
if (tunRules != null)
|
||||
{
|
||||
singboxConfig.route.rules.AddRange(tunRules);
|
||||
}
|
||||
|
||||
GenRoutingDirectExe(out List<string> lstDnsExe, out List<string> lstDirectExe);
|
||||
singboxConfig.route.rules.Add(new()
|
||||
{
|
||||
port = new() { 53 },
|
||||
outbound = "dns_out",
|
||||
outbound = dnsOutbound,
|
||||
process_name = lstDnsExe
|
||||
});
|
||||
|
||||
singboxConfig.route.rules.Add(new()
|
||||
{
|
||||
outbound = "direct",
|
||||
outbound = Global.DirectTag,
|
||||
process_name = lstDirectExe
|
||||
});
|
||||
}
|
||||
@@ -805,7 +819,7 @@ namespace v2rayN.Handler
|
||||
{
|
||||
tag = "local_local",
|
||||
address = "223.5.5.5",
|
||||
detour = "direct"
|
||||
detour = Global.DirectTag,
|
||||
});
|
||||
dns4Sbox.rules.Add(new()
|
||||
{
|
||||
|
@@ -41,14 +41,14 @@
|
||||
[Serializable]
|
||||
public class Rule4Sbox
|
||||
{
|
||||
public string outbound { get; set; }
|
||||
public string server { get; set; }
|
||||
public string? outbound { get; set; }
|
||||
public string? server { get; set; }
|
||||
public bool? disable_cache { get; set; }
|
||||
public List<string>? inbound { get; set; }
|
||||
public List<string>? protocol { get; set; }
|
||||
public string type { get; set; }
|
||||
public string mode { get; set; }
|
||||
public string network { get; set; }
|
||||
public string? type { get; set; }
|
||||
public string? mode { get; set; }
|
||||
public string? network { get; set; }
|
||||
public bool? ip_is_private { get; set; }
|
||||
public List<int>? port { get; set; }
|
||||
public List<string>? port_range { get; set; }
|
||||
|
@@ -13,7 +13,7 @@ require (
|
||||
github.com/pelletier/go-toml v1.9.5
|
||||
github.com/pires/go-proxyproto v0.7.0
|
||||
github.com/quic-go/quic-go v0.43.0
|
||||
github.com/refraction-networking/utls v1.6.4
|
||||
github.com/refraction-networking/utls v1.6.5
|
||||
github.com/sagernet/sing v0.3.8
|
||||
github.com/sagernet/sing-shadowsocks v0.2.6
|
||||
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
|
||||
@@ -31,7 +31,7 @@ require (
|
||||
google.golang.org/protobuf v1.34.0
|
||||
gvisor.dev/gvisor v0.0.0-20231202080848-1f7806d17489
|
||||
h12.io/socks v1.0.3
|
||||
lukechampine.com/blake3 v1.2.2
|
||||
lukechampine.com/blake3 v1.3.0
|
||||
)
|
||||
|
||||
require (
|
||||
|
@@ -116,8 +116,8 @@ github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7q
|
||||
github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/quic-go/quic-go v0.43.0 h1:sjtsTKWX0dsHpuMJvLxGqoQdtgJnbAPWY+W+5vjYW/g=
|
||||
github.com/quic-go/quic-go v0.43.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M=
|
||||
github.com/refraction-networking/utls v1.6.4 h1:aeynTroaYn7y+mFtqv8D0bQ4bw0y9nJHneGxJ7lvRDM=
|
||||
github.com/refraction-networking/utls v1.6.4/go.mod h1:2VL2xfiqgFAZtJKeUTlf+PSYFs3Eu7km0gCtXJ3m8zs=
|
||||
github.com/refraction-networking/utls v1.6.5 h1:Jlfqgs/t1Uy6FHHQ8Fz9ZTrRmP/zS7d/NZw7BLahaL8=
|
||||
github.com/refraction-networking/utls v1.6.5/go.mod h1:BC3O4vQzye5hqpmDTWUqi4P5DDhzJfkV1tdqtawQIH0=
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
@@ -301,7 +301,7 @@ h12.io/socks v1.0.3/go.mod h1:AIhxy1jOId/XCz9BO+EIgNL2rQiPTBNnOfnVnQ+3Eck=
|
||||
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
lukechampine.com/blake3 v1.2.2 h1:wEAbSg0IVU4ih44CVlpMqMZMpzr5hf/6aqodLlevd/w=
|
||||
lukechampine.com/blake3 v1.2.2/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
|
||||
lukechampine.com/blake3 v1.3.0 h1:sJ3XhFINmHSrYCgl958hscfIa3bw8x4DqMP3u1YvoYE=
|
||||
lukechampine.com/blake3 v1.3.0/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
|
||||
sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=
|
||||
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=
|
||||
|
2
yass/.gitignore
vendored
2
yass/.gitignore
vendored
@@ -86,4 +86,6 @@ local.properties
|
||||
/rustc-1.76.0-src
|
||||
/rustc-1.77.0-src
|
||||
/rustc-1.77.1-src
|
||||
/rustc-1.77.2-src
|
||||
/rustc-1.78.0-src
|
||||
/third_party/rust-ohos
|
||||
|
@@ -28,7 +28,6 @@
|
||||
#
|
||||
# For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
from distutils.sysconfig import get_python_inc
|
||||
import platform
|
||||
import os.path as p
|
||||
import subprocess
|
||||
|
@@ -3677,6 +3677,7 @@ add_library(yass_core STATIC
|
||||
src/config/config_impl_local.hpp
|
||||
src/config/config_impl_windows.hpp
|
||||
src/config/config_core.hpp
|
||||
src/config/config_export.hpp
|
||||
src/config/config_network.hpp
|
||||
src/config/config_tls.hpp
|
||||
src/core/logging.cpp
|
||||
|
@@ -1 +1 @@
|
||||
c4d4a4d83e864df270c267888176ffa415a599b0
|
||||
1cea0473a5a1f3124f0d3a95643c573296a2bac5
|
@@ -6,8 +6,8 @@ cd $PWD/..
|
||||
|
||||
DEFAULT_TARGET=$(rustc -vV | sed -n 's|host: ||p')
|
||||
|
||||
RUST_VER=1.77.1
|
||||
CARGO_VER=0.78.1
|
||||
RUST_VER=1.78.0
|
||||
CARGO_VER=0.79.0
|
||||
|
||||
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/r/rust.rb
|
||||
curl -L -O -C - https://static.rust-lang.org/dist/rustc-$RUST_VER-src.tar.xz
|
||||
@@ -24,7 +24,7 @@ cat > rustc-$RUST_VER-src/config.toml.in << EOF
|
||||
|
||||
profile = "compiler"
|
||||
# latest change id in src/bootstrap/src/utils/change_tracker.rs
|
||||
change-id = 119373
|
||||
change-id = 121754
|
||||
|
||||
[build]
|
||||
# see https://github.com/llvm/llvm-project/issues/60115
|
||||
|
@@ -14,8 +14,8 @@ fi
|
||||
|
||||
echo "Adding rustup toolchain..."
|
||||
|
||||
rustup toolchain install 1.77.1
|
||||
rustup default 1.77.1
|
||||
rustup toolchain install 1.78.0
|
||||
rustup default 1.78.0
|
||||
|
||||
echo "Adding rustup toolchain...done"
|
||||
|
||||
|
@@ -9,8 +9,8 @@ fi
|
||||
|
||||
echo "Adding rustup toolchain..."
|
||||
|
||||
rustup toolchain install 1.77.1
|
||||
rustup default 1.77.1
|
||||
rustup toolchain install 1.78.0
|
||||
rustup default 1.78.0
|
||||
|
||||
echo "Adding rustup toolchain...done"
|
||||
|
||||
|
@@ -9,23 +9,7 @@
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
|
||||
#include "crypto/crypter_export.hpp"
|
||||
|
||||
struct PortFlag {
|
||||
explicit PortFlag(uint16_t p) : port(p) {}
|
||||
operator uint16_t() const { return port; }
|
||||
uint16_t port;
|
||||
};
|
||||
|
||||
struct CipherMethodFlag {
|
||||
explicit CipherMethodFlag(cipher_method m) : method(m) {}
|
||||
cipher_method method;
|
||||
};
|
||||
|
||||
struct RateFlag {
|
||||
explicit RateFlag(uint64_t r) : rate(r) {}
|
||||
uint64_t rate;
|
||||
};
|
||||
#include "config/config_export.hpp"
|
||||
|
||||
ABSL_DECLARE_FLAG(std::string, server_host);
|
||||
ABSL_DECLARE_FLAG(std::string, server_sni);
|
||||
|
26
yass/src/config/config_export.hpp
Normal file
26
yass/src/config/config_export.hpp
Normal file
@@ -0,0 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/* Copyright (c) 2024 Chilledheart */
|
||||
|
||||
#ifndef H_CONFIG_CONFIG_EXPORT
|
||||
#define H_CONFIG_CONFIG_EXPORT
|
||||
|
||||
#include <stdint.h>
|
||||
#include "crypto/crypter_export.hpp"
|
||||
|
||||
struct PortFlag {
|
||||
explicit PortFlag(uint16_t p) : port(p) {}
|
||||
operator uint16_t() const { return port; }
|
||||
uint16_t port;
|
||||
};
|
||||
|
||||
struct CipherMethodFlag {
|
||||
explicit CipherMethodFlag(cipher_method m) : method(m) {}
|
||||
cipher_method method;
|
||||
};
|
||||
|
||||
struct RateFlag {
|
||||
explicit RateFlag(uint64_t r) : rate(r) {}
|
||||
uint64_t rate;
|
||||
};
|
||||
|
||||
#endif // H_CONFIG_CONFIG_EXPORT
|
@@ -8,7 +8,7 @@
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
|
||||
#include "config/config_core.hpp"
|
||||
#include "config/config_export.hpp"
|
||||
#include "config/config_impl_apple.hpp"
|
||||
#include "config/config_impl_local.hpp"
|
||||
#include "config/config_impl_windows.hpp"
|
||||
|
Reference in New Issue
Block a user