chore: hello mihomo

This commit is contained in:
wwqgtxx 2023-11-03 21:01:45 +08:00
parent 8c3557e96b
commit 17c9d507be
325 changed files with 1297 additions and 1315 deletions

View file

@ -13,8 +13,8 @@ Please verify that you've followed these steps
" "
options: options:
- label: " - label: "
确保你使用的是**本仓库**最新的的 clash 或 clash Alpha 版本 确保你使用的是**本仓库**最新的的 mihomo 或 mihomo Alpha 版本
Ensure you are using the latest version of Clash or Clash Premium from **this repository**. Ensure you are using the latest version of Mihomo or Mihomo Alpha from **this repository**.
" "
required: true required: true
- label: " - label: "
@ -38,14 +38,14 @@ I have read the [documentation](https://wiki.metacubex.one/) and was unable to s
" "
required: true required: true
- label: " - label: "
这是 Clash 核心的问题,并非我所使用的 Clash 衍生版本(如 OpenClash、KoolClash 等)的特定问题 这是 Mihomo 核心的问题,并非我所使用的 Mihomo 衍生版本(如 OpenMihomo、KoolMihomo 等)的特定问题
This is an issue of the Clash core *per se*, not to the derivatives of Clash, like OpenClash or KoolClash. This is an issue of the Mihomo core *per se*, not to the derivatives of Mihomo, like OpenMihomo or KoolMihomo.
" "
required: true required: true
- type: input - type: input
attributes: attributes:
label: Clash version label: Mihomo version
description: "use `clash -v`" description: "use `mihomo -v`"
validations: validations:
required: true required: true
- type: dropdown - type: dropdown
@ -61,20 +61,20 @@ This is an issue of the Clash core *per se*, not to the derivatives of Clash, li
- type: textarea - type: textarea
attributes: attributes:
render: yaml render: yaml
label: "Clash config" label: "Mihomo config"
description: " description: "
在下方附上 Clash core 配置文件,请确保配置文件中没有敏感信息(比如:服务器地址,密码,端口等) 在下方附上 Mihomo core 配置文件,请确保配置文件中没有敏感信息(比如:服务器地址,密码,端口等)
Paste the Clash core configuration file below, please make sure that there is no sensitive information in the configuration file (e.g., server address/url, password, port) Paste the Mihomo core configuration file below, please make sure that there is no sensitive information in the configuration file (e.g., server address/url, password, port)
" "
validations: validations:
required: true required: true
- type: textarea - type: textarea
attributes: attributes:
render: shell render: shell
label: Clash log label: Mihomo log
description: " description: "
在下方附上 Clash Core 的日志log level 使用 DEBUG 在下方附上 Mihomo Core 的日志log level 使用 DEBUG
Paste the Clash core log below with the log level set to `DEBUG`. Paste the Mihomo core log below with the log level set to `DEBUG`.
" "
- type: textarea - type: textarea
attributes: attributes:

View file

@ -1,5 +1,5 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Clash.Meta Community Support - name: mihomo Community Support
url: https://github.com/MetaCubeX/Clash.Meta/discussions url: https://github.com/MetaCubeX/mihomo/discussions
about: Please ask and answer questions about Clash.Meta here. about: Please ask and answer questions about mihomo here.

View file

@ -25,7 +25,7 @@ I have read the [documentation](https://wiki.metacubex.one/) and was unable to s
- type: textarea - type: textarea
attributes: attributes:
label: Description label: Description
description: 请详细、清晰地表达你要提出的论述,例如这个问题如何影响到你?你想实现什么功能?目前 Clash Core 的行为是什麽? description: 请详细、清晰地表达你要提出的论述,例如这个问题如何影响到你?你想实现什么功能?目前 Mihomo Core 的行为是什麽?
validations: validations:
required: true required: true
- type: textarea - type: textarea

26
.github/rename-cgo.sh vendored
View file

@ -5,25 +5,25 @@ for FILENAME in $FILENAMES
do do
if [[ $FILENAME =~ "darwin-10.16-arm64" ]];then if [[ $FILENAME =~ "darwin-10.16-arm64" ]];then
echo "rename darwin-10.16-arm64 $FILENAME" echo "rename darwin-10.16-arm64 $FILENAME"
mv $FILENAME clash.meta-darwin-arm64-cgo mv $FILENAME mihomo-darwin-arm64-cgo
elif [[ $FILENAME =~ "darwin-10.16-amd64" ]];then elif [[ $FILENAME =~ "darwin-10.16-amd64" ]];then
echo "rename darwin-10.16-amd64 $FILENAME" echo "rename darwin-10.16-amd64 $FILENAME"
mv $FILENAME clash.meta-darwin-amd64-cgo mv $FILENAME mihomo-darwin-amd64-cgo
elif [[ $FILENAME =~ "windows-4.0-386" ]];then elif [[ $FILENAME =~ "windows-4.0-386" ]];then
echo "rename windows 386 $FILENAME" echo "rename windows 386 $FILENAME"
mv $FILENAME clash.meta-windows-386-cgo.exe mv $FILENAME mihomo-windows-386-cgo.exe
elif [[ $FILENAME =~ "windows-4.0-amd64" ]];then elif [[ $FILENAME =~ "windows-4.0-amd64" ]];then
echo "rename windows amd64 $FILENAME" echo "rename windows amd64 $FILENAME"
mv $FILENAME clash.meta-windows-amd64-cgo.exe mv $FILENAME mihomo-windows-amd64-cgo.exe
elif [[ $FILENAME =~ "clash.meta-linux-arm-5" ]];then elif [[ $FILENAME =~ "mihomo-linux-arm-5" ]];then
echo "rename clash.meta-linux-arm-5 $FILENAME" echo "rename mihomo-linux-arm-5 $FILENAME"
mv $FILENAME clash.meta-linux-armv5-cgo mv $FILENAME mihomo-linux-armv5-cgo
elif [[ $FILENAME =~ "clash.meta-linux-arm-6" ]];then elif [[ $FILENAME =~ "mihomo-linux-arm-6" ]];then
echo "rename clash.meta-linux-arm-6 $FILENAME" echo "rename mihomo-linux-arm-6 $FILENAME"
mv $FILENAME clash.meta-linux-armv6-cgo mv $FILENAME mihomo-linux-armv6-cgo
elif [[ $FILENAME =~ "clash.meta-linux-arm-7" ]];then elif [[ $FILENAME =~ "mihomo-linux-arm-7" ]];then
echo "rename clash.meta-linux-arm-7 $FILENAME" echo "rename mihomo-linux-arm-7 $FILENAME"
mv $FILENAME clash.meta-linux-armv7-cgo mv $FILENAME mihomo-linux-armv7-cgo
elif [[ $FILENAME =~ "linux" ]];then elif [[ $FILENAME =~ "linux" ]];then
echo "rename linux $FILENAME" echo "rename linux $FILENAME"
mv $FILENAME $FILENAME-cgo mv $FILENAME $FILENAME-cgo

View file

@ -50,8 +50,8 @@ jobs:
run: | run: |
git push origin android-real --force git push origin android-real --force
# Send "core-updated" to MetaCubeX/ClashMetaForAndroid to trigger update-dependencies # Send "core-updated" to MetaCubeX/MihomoForAndroid to trigger update-dependencies
trigger-CMFA-update: trigger-MFA-update:
needs: update-dependencies needs: update-dependencies
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -63,7 +63,7 @@ jobs:
- name: Trigger update-dependencies - name: Trigger update-dependencies
run: | run: |
curl -X POST https://api.github.com/repos/MetaCubeX/ClashMetaForAndroid/dispatches \ curl -X POST https://api.github.com/repos/MetaCubeX/MihomoForAndroid/dispatches \
-H "Accept: application/vnd.github.everest-preview+json" \ -H "Accept: application/vnd.github.everest-preview+json" \
-H "Authorization: token ${{ steps.generate-token.outputs.token }}" \ -H "Authorization: token ${{ steps.generate-token.outputs.token }}" \
-d '{"event_type": "core-updated"}' -d '{"event_type": "core-updated"}'

View file

@ -118,7 +118,7 @@ jobs:
- name: Set ENV - name: Set ENV
run: | run: |
sudo timedatectl set-timezone "Asia/Shanghai" sudo timedatectl set-timezone "Asia/Shanghai"
echo "NAME=clash.meta" >> $GITHUB_ENV echo "NAME=mihomo" >> $GITHUB_ENV
echo "REPO=${{ github.repository }}" >> $GITHUB_ENV echo "REPO=${{ github.repository }}" >> $GITHUB_ENV
echo "ShortSHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV echo "ShortSHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV
echo "BUILDTIME=$(date)" >> $GITHUB_ENV echo "BUILDTIME=$(date)" >> $GITHUB_ENV
@ -128,7 +128,7 @@ jobs:
- name: Set ENV - name: Set ENV
run: | run: |
echo "TAGS=with_gvisor,with_lwip" >> $GITHUB_ENV echo "TAGS=with_gvisor,with_lwip" >> $GITHUB_ENV
echo "LDFLAGS=-X 'github.com/Dreamacro/clash/constant.Version=${VERSION}' -X 'github.com/Dreamacro/clash/constant.BuildTime=${BUILDTIME}' -w -s -buildid=" >> $GITHUB_ENV echo "LDFLAGS=-X 'github.com/metacubex/mihomo/constant.Version=${VERSION}' -X 'github.com/metacubex/mihomo/constant.BuildTime=${BUILDTIME}' -w -s -buildid=" >> $GITHUB_ENV
shell: bash shell: bash
- name: Setup Go - name: Setup Go
@ -153,7 +153,7 @@ jobs:
- name: Build WithoutCGO - name: Build WithoutCGO
if: ${{ matrix.job.type!='WithCGO' }} if: ${{ matrix.job.type!='WithCGO' }}
env: env:
NAME: Clash.Meta NAME: mihomo
BINDIR: bin BINDIR: bin
run: make -j$(($(nproc) + 1)) ${{ matrix.job.target }} run: make -j$(($(nproc) + 1)) ${{ matrix.job.target }}
@ -271,7 +271,7 @@ jobs:
Release created at ${{ env.BUILDTIME }} Release created at ${{ env.BUILDTIME }}
Synchronize ${{ github.ref_name }} branch code updates, keeping only the latest version Synchronize ${{ github.ref_name }} branch code updates, keeping only the latest version
<br> <br>
[我应该下载哪个文件? / Which file should I download?](https://github.com/MetaCubeX/Clash.Meta/wiki/FAQ) [我应该下载哪个文件? / Which file should I download?](https://github.com/MetaCubeX/mihomo/wiki/FAQ)
[查看文档 / Docs](https://metacubex.github.io/Meta-Docs/) [查看文档 / Docs](https://metacubex.github.io/Meta-Docs/)
EOF EOF

View file

@ -11,7 +11,7 @@ linters-settings:
custom-order: true custom-order: true
sections: sections:
- standard - standard
- prefix(github.com/Dreamacro/clash) - prefix(github.com/metacubex/mihomo)
- default - default
staticcheck: staticcheck:
go: '1.19' go: '1.19'

View file

@ -3,25 +3,25 @@ ARG TARGETPLATFORM
RUN echo "I'm building for $TARGETPLATFORM" RUN echo "I'm building for $TARGETPLATFORM"
RUN apk add --no-cache gzip && \ RUN apk add --no-cache gzip && \
mkdir /clash-config && \ mkdir /mihomo-config && \
wget -O /clash-config/geoip.metadb https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb && \ wget -O /mihomo-config/geoip.metadb https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb && \
wget -O /clash-config/geosite.dat https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat && \ wget -O /mihomo-config/geosite.dat https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat && \
wget -O /clash-config/geoip.dat https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat wget -O /mihomo-config/geoip.dat https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat
COPY docker/file-name.sh /clash/file-name.sh COPY docker/file-name.sh /mihomo/file-name.sh
WORKDIR /clash WORKDIR /mihomo
COPY bin/ bin/ COPY bin/ bin/
RUN FILE_NAME=`sh file-name.sh` && echo $FILE_NAME && \ RUN FILE_NAME=`sh file-name.sh` && echo $FILE_NAME && \
FILE_NAME=`ls bin/ | egrep "$FILE_NAME.*"|awk NR==1` && echo $FILE_NAME && \ FILE_NAME=`ls bin/ | egrep "$FILE_NAME.*"|awk NR==1` && echo $FILE_NAME && \
mv bin/$FILE_NAME clash.gz && gzip -d clash.gz && echo "$FILE_NAME" > /clash-config/test mv bin/$FILE_NAME mihomo.gz && gzip -d mihomo.gz && echo "$FILE_NAME" > /mihomo-config/test
FROM alpine:latest FROM alpine:latest
LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/Clash.Meta" LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/mihomo"
RUN apk add --no-cache ca-certificates tzdata iptables RUN apk add --no-cache ca-certificates tzdata iptables
VOLUME ["/root/.config/clash/"] VOLUME ["/root/.config/mihomo/"]
COPY --from=builder /clash-config/ /root/.config/clash/ COPY --from=builder /mihomo-config/ /root/.config/mihomo/
COPY --from=builder /clash/clash /clash COPY --from=builder /mihomo/mihomo /mihomo
RUN chmod +x /clash RUN chmod +x /mihomo
ENTRYPOINT [ "/clash" ] ENTRYPOINT [ "/mihomo" ]

View file

@ -1,4 +1,4 @@
NAME=clash.meta NAME=mihomo
BINDIR=bin BINDIR=bin
BRANCH=$(shell git branch --show-current) BRANCH=$(shell git branch --show-current)
ifeq ($(BRANCH),Alpha) ifeq ($(BRANCH),Alpha)
@ -12,8 +12,8 @@ VERSION=$(shell git rev-parse --short HEAD)
endif endif
BUILDTIME=$(shell date -u) BUILDTIME=$(shell date -u)
GOBUILD=CGO_ENABLED=0 go build -tags with_gvisor -trimpath -ldflags '-X "github.com/Dreamacro/clash/constant.Version=$(VERSION)" \ GOBUILD=CGO_ENABLED=0 go build -tags with_gvisor -trimpath -ldflags '-X "github.com/metacubex/mihomo/constant.Version=$(VERSION)" \
-X "github.com/Dreamacro/clash/constant.BuildTime=$(BUILDTIME)" \ -X "github.com/metacubex/mihomo/constant.BuildTime=$(BUILDTIME)" \
-w -s -buildid=' -w -s -buildid='
PLATFORM_LIST = \ PLATFORM_LIST = \

View file

@ -3,17 +3,17 @@
<br>Meta Kernel<br> <br>Meta Kernel<br>
</h1> </h1>
<h3 align="center">Another Clash Kernel.</h3> <h3 align="center">Another Mihomo Kernel.</h3>
<p align="center"> <p align="center">
<a href="https://goreportcard.com/report/github.com/Clash-Mini/Clash.Meta"> <a href="https://goreportcard.com/report/github.com/MetaCubeX/mihomo">
<img src="https://goreportcard.com/badge/github.com/Clash-Mini/Clash.Meta?style=flat-square"> <img src="https://goreportcard.com/badge/github.com/MetaCubeX/mihomo?style=flat-square">
</a> </a>
<img src="https://img.shields.io/github/go-mod/go-version/Dreamacro/clash?style=flat-square"> <img src="https://img.shields.io/github/go-mod/go-version/MetaCubeX/mihomo?style=flat-square">
<a href="https://github.com/Clash-Mini/Clash.Meta/releases"> <a href="https://github.com/MetaCubeX/mihomo/releases">
<img src="https://img.shields.io/github/release/Clash-Mini/Clash.Meta/all.svg?style=flat-square"> <img src="https://img.shields.io/github/release/MetaCubeX/mihomo/all.svg?style=flat-square">
</a> </a>
<a href="https://github.com/Clash-Mini/Clash.Meta"> <a href="https://github.com/MetaCubeX/mihomo">
<img src="https://img.shields.io/badge/release-Meta-00b4f0?style=flat-square"> <img src="https://img.shields.io/badge/release-Meta-00b4f0?style=flat-square">
</a> </a>
</p> </p>
@ -27,7 +27,7 @@
- Remote groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select node - Remote groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select node
based off latency based off latency
- Remote providers, allowing users to get node lists remotely instead of hard-coding in config - Remote providers, allowing users to get node lists remotely instead of hard-coding in config
- Netfilter TCP redirecting. Deploy Clash on your Internet gateway with `iptables`. - Netfilter TCP redirecting. Deploy Mihomo on your Internet gateway with `iptables`.
- Comprehensive HTTP RESTful API controller - Comprehensive HTTP RESTful API controller
## Dashboard ## Dashboard
@ -36,22 +36,22 @@ A web dashboard with first-class support for this project has been created; it c
## Configration example ## Configration example
Configuration example is located at [/docs/config.yaml](https://github.com/MetaCubeX/Clash.Meta/blob/Alpha/docs/config.yaml). Configuration example is located at [/docs/config.yaml](https://github.com/MetaCubeX/mihomo/blob/Alpha/docs/config.yaml).
## Docs ## Docs
Documentation can be found in [Clash.Meta Docs](https://clash-meta.wiki). Documentation can be found in [mihomo Docs](https://wiki.metacubex.one/).
## For development ## For development
Requirements: Requirements:
[Go 1.20 or newer](https://go.dev/dl/) [Go 1.20 or newer](https://go.dev/dl/)
Build Clash.Meta: Build mihomo:
```shell ```shell
git clone https://github.com/MetaCubeX/Clash.Meta.git git clone https://github.com/MetaCubeX/mihomo.git
cd Clash.Meta && go mod download cd mihomo && go mod download
go build go build
``` ```
@ -98,4 +98,4 @@ API.
This software is released under the GPL-3.0 license. This software is released under the GPL-3.0 license.
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FDreamacro%2Fclash.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FDreamacro%2Fclash?ref=badge_large) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FMetaCubeX%2Fmihomo.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FMetaCubeX%2Fmihomo?ref=badge_large)

View file

@ -12,12 +12,12 @@ import (
"strconv" "strconv"
"time" "time"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/Dreamacro/clash/common/queue" "github.com/metacubex/mihomo/common/queue"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"github.com/puzpuzpuz/xsync/v2" "github.com/puzpuzpuz/xsync/v2"
) )

View file

@ -3,7 +3,7 @@ package inbound
import ( import (
"net" "net"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type Addition func(metadata *C.Metadata) type Addition func(metadata *C.Metadata)

View file

@ -4,7 +4,7 @@ import (
"net" "net"
"net/netip" "net/netip"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
var skipAuthPrefixes []netip.Prefix var skipAuthPrefixes []netip.Prefix

View file

@ -3,8 +3,8 @@ package inbound
import ( import (
"net" "net"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
// NewHTTP receive normal http request and return HTTPContext // NewHTTP receive normal http request and return HTTPContext

View file

@ -4,7 +4,7 @@ import (
"net" "net"
"net/http" "net/http"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
// NewHTTPS receive CONNECT request and return ConnContext // NewHTTPS receive CONNECT request and return ConnContext

View file

@ -1,8 +1,8 @@
package inbound package inbound
import ( import (
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
// NewPacket is PacketAdapter generator // NewPacket is PacketAdapter generator

View file

@ -3,8 +3,8 @@ package inbound
import ( import (
"net" "net"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
// NewSocket receive TCP inbound and return ConnContext // NewSocket receive TCP inbound and return ConnContext

View file

@ -7,9 +7,9 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/Dreamacro/clash/common/nnip" "github.com/metacubex/mihomo/common/nnip"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
func parseSocksAddr(target socks5.Addr) *C.Metadata { func parseSocksAddr(target socks5.Addr) *C.Metadata {

View file

@ -7,10 +7,10 @@ import (
"strings" "strings"
"syscall" "syscall"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type Base struct { type Base struct {

View file

@ -5,10 +5,10 @@ import (
"errors" "errors"
"net/netip" "net/netip"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type Direct struct { type Direct struct {

View file

@ -13,11 +13,11 @@ import (
"net/http" "net/http"
"strconv" "strconv"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type Http struct { type Http struct {

View file

@ -14,17 +14,17 @@ import (
"github.com/metacubex/quic-go/congestion" "github.com/metacubex/quic-go/congestion"
M "github.com/sagernet/sing/common/metadata" M "github.com/sagernet/sing/common/metadata"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
hyCongestion "github.com/Dreamacro/clash/transport/hysteria/congestion" hyCongestion "github.com/metacubex/mihomo/transport/hysteria/congestion"
"github.com/Dreamacro/clash/transport/hysteria/core" "github.com/metacubex/mihomo/transport/hysteria/core"
"github.com/Dreamacro/clash/transport/hysteria/obfs" "github.com/metacubex/mihomo/transport/hysteria/obfs"
"github.com/Dreamacro/clash/transport/hysteria/pmtud_fix" "github.com/metacubex/mihomo/transport/hysteria/pmtud_fix"
"github.com/Dreamacro/clash/transport/hysteria/transport" "github.com/metacubex/mihomo/transport/hysteria/transport"
"github.com/Dreamacro/clash/transport/hysteria/utils" "github.com/metacubex/mihomo/transport/hysteria/utils"
) )
const ( const (

View file

@ -9,12 +9,12 @@ import (
"runtime" "runtime"
"strconv" "strconv"
CN "github.com/Dreamacro/clash/common/net" CN "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
tuicCommon "github.com/Dreamacro/clash/transport/tuic/common" tuicCommon "github.com/metacubex/mihomo/transport/tuic/common"
"github.com/metacubex/sing-quic/hysteria2" "github.com/metacubex/sing-quic/hysteria2"

View file

@ -5,7 +5,7 @@ import (
"encoding/hex" "encoding/hex"
"errors" "errors"
tlsC "github.com/Dreamacro/clash/component/tls" tlsC "github.com/metacubex/mihomo/component/tls"
"golang.org/x/crypto/curve25519" "golang.org/x/crypto/curve25519"
) )

View file

@ -6,9 +6,9 @@ import (
"net" "net"
"time" "time"
"github.com/Dreamacro/clash/common/buf" "github.com/metacubex/mihomo/common/buf"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type Reject struct { type Reject struct {

View file

@ -7,16 +7,16 @@ import (
"net" "net"
"strconv" "strconv"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/structure" "github.com/metacubex/mihomo/common/structure"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/restls" "github.com/metacubex/mihomo/transport/restls"
obfs "github.com/Dreamacro/clash/transport/simple-obfs" obfs "github.com/metacubex/mihomo/transport/simple-obfs"
shadowtls "github.com/Dreamacro/clash/transport/sing-shadowtls" shadowtls "github.com/metacubex/mihomo/transport/sing-shadowtls"
v2rayObfs "github.com/Dreamacro/clash/transport/v2ray-plugin" v2rayObfs "github.com/metacubex/mihomo/transport/v2ray-plugin"
restlsC "github.com/3andne/restls-client-go" restlsC "github.com/3andne/restls-client-go"
shadowsocks "github.com/metacubex/sing-shadowsocks2" shadowsocks "github.com/metacubex/sing-shadowsocks2"

View file

@ -7,16 +7,16 @@ import (
"net" "net"
"strconv" "strconv"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/shadowsocks/core" "github.com/metacubex/mihomo/transport/shadowsocks/core"
"github.com/Dreamacro/clash/transport/shadowsocks/shadowaead" "github.com/metacubex/mihomo/transport/shadowsocks/shadowaead"
"github.com/Dreamacro/clash/transport/shadowsocks/shadowstream" "github.com/metacubex/mihomo/transport/shadowsocks/shadowstream"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
"github.com/Dreamacro/clash/transport/ssr/obfs" "github.com/metacubex/mihomo/transport/ssr/obfs"
"github.com/Dreamacro/clash/transport/ssr/protocol" "github.com/metacubex/mihomo/transport/ssr/protocol"
) )
type ShadowSocksR struct { type ShadowSocksR struct {
@ -125,7 +125,7 @@ func (ssr *ShadowSocksR) SupportWithDialer() C.NetWork {
func NewShadowSocksR(option ShadowSocksROption) (*ShadowSocksR, error) { func NewShadowSocksR(option ShadowSocksROption) (*ShadowSocksR, error) {
// SSR protocol compatibility // SSR protocol compatibility
// https://github.com/Dreamacro/clash/pull/2056 // https://github.com/metacubex/mihomo/pull/2056
if option.Cipher == "none" { if option.Cipher == "none" {
option.Cipher = "dummy" option.Cipher = "dummy"
} }

View file

@ -5,11 +5,11 @@ import (
"errors" "errors"
"runtime" "runtime"
CN "github.com/Dreamacro/clash/common/net" CN "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
mux "github.com/sagernet/sing-mux" mux "github.com/sagernet/sing-mux"
E "github.com/sagernet/sing/common/exceptions" E "github.com/sagernet/sing/common/exceptions"

View file

@ -6,13 +6,13 @@ import (
"net" "net"
"strconv" "strconv"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/structure" "github.com/metacubex/mihomo/common/structure"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
obfs "github.com/Dreamacro/clash/transport/simple-obfs" obfs "github.com/metacubex/mihomo/transport/simple-obfs"
"github.com/Dreamacro/clash/transport/snell" "github.com/metacubex/mihomo/transport/snell"
) )
type Snell struct { type Snell struct {

View file

@ -10,12 +10,12 @@ import (
"net/netip" "net/netip"
"strconv" "strconv"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
type Socks5 struct { type Socks5 struct {

View file

@ -8,14 +8,14 @@ import (
"net/http" "net/http"
"strconv" "strconv"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
tlsC "github.com/Dreamacro/clash/component/tls" tlsC "github.com/metacubex/mihomo/component/tls"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/gun" "github.com/metacubex/mihomo/transport/gun"
"github.com/Dreamacro/clash/transport/trojan" "github.com/metacubex/mihomo/transport/trojan"
) )
type Trojan struct { type Trojan struct {

View file

@ -10,12 +10,12 @@ import (
"strconv" "strconv"
"time" "time"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/tuic" "github.com/metacubex/mihomo/transport/tuic"
"github.com/gofrs/uuid/v5" "github.com/gofrs/uuid/v5"
"github.com/metacubex/quic-go" "github.com/metacubex/quic-go"

View file

@ -11,9 +11,9 @@ import (
"strconv" "strconv"
"sync" "sync"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
var ( var (

View file

@ -12,20 +12,20 @@ import (
"strconv" "strconv"
"sync" "sync"
"github.com/Dreamacro/clash/common/convert" "github.com/metacubex/mihomo/common/convert"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
tlsC "github.com/Dreamacro/clash/component/tls" tlsC "github.com/metacubex/mihomo/component/tls"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"github.com/Dreamacro/clash/transport/gun" "github.com/metacubex/mihomo/transport/gun"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
"github.com/Dreamacro/clash/transport/vless" "github.com/metacubex/mihomo/transport/vless"
"github.com/Dreamacro/clash/transport/vmess" "github.com/metacubex/mihomo/transport/vmess"
vmessSing "github.com/metacubex/sing-vmess" vmessSing "github.com/metacubex/sing-vmess"
"github.com/metacubex/sing-vmess/packetaddr" "github.com/metacubex/sing-vmess/packetaddr"

View file

@ -11,17 +11,17 @@ import (
"strings" "strings"
"sync" "sync"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
tlsC "github.com/Dreamacro/clash/component/tls" tlsC "github.com/metacubex/mihomo/component/tls"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/ntp" "github.com/metacubex/mihomo/ntp"
"github.com/Dreamacro/clash/transport/gun" "github.com/metacubex/mihomo/transport/gun"
clashVMess "github.com/Dreamacro/clash/transport/vmess" mihomoVMess "github.com/metacubex/mihomo/transport/vmess"
vmess "github.com/metacubex/sing-vmess" vmess "github.com/metacubex/sing-vmess"
"github.com/metacubex/sing-vmess/packetaddr" "github.com/metacubex/sing-vmess/packetaddr"
@ -105,7 +105,7 @@ func (v *Vmess) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.M
switch v.option.Network { switch v.option.Network {
case "ws": case "ws":
host, port, _ := net.SplitHostPort(v.addr) host, port, _ := net.SplitHostPort(v.addr)
wsOpts := &clashVMess.WebsocketConfig{ wsOpts := &mihomoVMess.WebsocketConfig{
Host: host, Host: host,
Port: port, Port: port,
Path: v.option.WSOpts.Path, Path: v.option.WSOpts.Path,
@ -141,12 +141,12 @@ func (v *Vmess) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.M
wsOpts.TLSConfig.ServerName = host wsOpts.TLSConfig.ServerName = host
} }
} }
c, err = clashVMess.StreamWebsocketConn(ctx, c, wsOpts) c, err = mihomoVMess.StreamWebsocketConn(ctx, c, wsOpts)
case "http": case "http":
// readability first, so just copy default TLS logic // readability first, so just copy default TLS logic
if v.option.TLS { if v.option.TLS {
host, _, _ := net.SplitHostPort(v.addr) host, _, _ := net.SplitHostPort(v.addr)
tlsOpts := &clashVMess.TLSConfig{ tlsOpts := &mihomoVMess.TLSConfig{
Host: host, Host: host,
SkipCertVerify: v.option.SkipCertVerify, SkipCertVerify: v.option.SkipCertVerify,
ClientFingerprint: v.option.ClientFingerprint, ClientFingerprint: v.option.ClientFingerprint,
@ -157,24 +157,24 @@ func (v *Vmess) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.M
if v.option.ServerName != "" { if v.option.ServerName != "" {
tlsOpts.Host = v.option.ServerName tlsOpts.Host = v.option.ServerName
} }
c, err = clashVMess.StreamTLSConn(ctx, c, tlsOpts) c, err = mihomoVMess.StreamTLSConn(ctx, c, tlsOpts)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
host, _, _ := net.SplitHostPort(v.addr) host, _, _ := net.SplitHostPort(v.addr)
httpOpts := &clashVMess.HTTPConfig{ httpOpts := &mihomoVMess.HTTPConfig{
Host: host, Host: host,
Method: v.option.HTTPOpts.Method, Method: v.option.HTTPOpts.Method,
Path: v.option.HTTPOpts.Path, Path: v.option.HTTPOpts.Path,
Headers: v.option.HTTPOpts.Headers, Headers: v.option.HTTPOpts.Headers,
} }
c = clashVMess.StreamHTTPConn(c, httpOpts) c = mihomoVMess.StreamHTTPConn(c, httpOpts)
case "h2": case "h2":
host, _, _ := net.SplitHostPort(v.addr) host, _, _ := net.SplitHostPort(v.addr)
tlsOpts := clashVMess.TLSConfig{ tlsOpts := mihomoVMess.TLSConfig{
Host: host, Host: host,
SkipCertVerify: v.option.SkipCertVerify, SkipCertVerify: v.option.SkipCertVerify,
NextProtos: []string{"h2"}, NextProtos: []string{"h2"},
@ -186,24 +186,24 @@ func (v *Vmess) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.M
tlsOpts.Host = v.option.ServerName tlsOpts.Host = v.option.ServerName
} }
c, err = clashVMess.StreamTLSConn(ctx, c, &tlsOpts) c, err = mihomoVMess.StreamTLSConn(ctx, c, &tlsOpts)
if err != nil { if err != nil {
return nil, err return nil, err
} }
h2Opts := &clashVMess.H2Config{ h2Opts := &mihomoVMess.H2Config{
Hosts: v.option.HTTP2Opts.Host, Hosts: v.option.HTTP2Opts.Host,
Path: v.option.HTTP2Opts.Path, Path: v.option.HTTP2Opts.Path,
} }
c, err = clashVMess.StreamH2Conn(c, h2Opts) c, err = mihomoVMess.StreamH2Conn(c, h2Opts)
case "grpc": case "grpc":
c, err = gun.StreamGunWithConn(c, v.gunTLSConfig, v.gunConfig, v.realityConfig) c, err = gun.StreamGunWithConn(c, v.gunTLSConfig, v.gunConfig, v.realityConfig)
default: default:
// handle TLS // handle TLS
if v.option.TLS { if v.option.TLS {
host, _, _ := net.SplitHostPort(v.addr) host, _, _ := net.SplitHostPort(v.addr)
tlsOpts := &clashVMess.TLSConfig{ tlsOpts := &mihomoVMess.TLSConfig{
Host: host, Host: host,
SkipCertVerify: v.option.SkipCertVerify, SkipCertVerify: v.option.SkipCertVerify,
ClientFingerprint: v.option.ClientFingerprint, ClientFingerprint: v.option.ClientFingerprint,
@ -215,7 +215,7 @@ func (v *Vmess) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.M
tlsOpts.Host = v.option.ServerName tlsOpts.Host = v.option.ServerName
} }
c, err = clashVMess.StreamTLSConn(ctx, c, tlsOpts) c, err = mihomoVMess.StreamTLSConn(ctx, c, tlsOpts)
} }
} }

View file

@ -13,13 +13,13 @@ import (
"strings" "strings"
"sync" "sync"
CN "github.com/Dreamacro/clash/common/net" CN "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/dns" "github.com/metacubex/mihomo/dns"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
wireguard "github.com/metacubex/sing-wireguard" wireguard "github.com/metacubex/sing-wireguard"

View file

@ -6,13 +6,13 @@ import (
"errors" "errors"
"time" "time"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/common/callback" "github.com/metacubex/mihomo/common/callback"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/constant/provider" "github.com/metacubex/mihomo/constant/provider"
) )
type Fallback struct { type Fallback struct {

View file

@ -7,14 +7,14 @@ import (
"sync" "sync"
"time" "time"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/constant/provider" "github.com/metacubex/mihomo/constant/provider"
types "github.com/Dreamacro/clash/constant/provider" types "github.com/metacubex/mihomo/constant/provider"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"github.com/Dreamacro/clash/tunnel" "github.com/metacubex/mihomo/tunnel"
"github.com/dlclark/regexp2" "github.com/dlclark/regexp2"
) )

View file

@ -9,14 +9,14 @@ import (
"sync" "sync"
"time" "time"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/common/cache" "github.com/metacubex/mihomo/common/cache"
"github.com/Dreamacro/clash/common/callback" "github.com/metacubex/mihomo/common/callback"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/constant/provider" "github.com/metacubex/mihomo/constant/provider"
"golang.org/x/net/publicsuffix" "golang.org/x/net/publicsuffix"
) )

View file

@ -5,12 +5,12 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/adapter/provider" "github.com/metacubex/mihomo/adapter/provider"
"github.com/Dreamacro/clash/common/structure" "github.com/metacubex/mihomo/common/structure"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
types "github.com/Dreamacro/clash/constant/provider" types "github.com/metacubex/mihomo/constant/provider"
) )
var ( var (

View file

@ -3,11 +3,11 @@ package outboundgroup
import ( import (
"context" "context"
"encoding/json" "encoding/json"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/proxydialer" "github.com/metacubex/mihomo/component/proxydialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/constant/provider" "github.com/metacubex/mihomo/constant/provider"
) )
type Relay struct { type Relay struct {

View file

@ -5,10 +5,10 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/constant/provider" "github.com/metacubex/mihomo/constant/provider"
) )
type Selector struct { type Selector struct {

View file

@ -6,13 +6,13 @@ import (
"errors" "errors"
"time" "time"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/common/callback" "github.com/metacubex/mihomo/common/callback"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
"github.com/Dreamacro/clash/common/singledo" "github.com/metacubex/mihomo/common/singledo"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/constant/provider" "github.com/metacubex/mihomo/constant/provider"
) )
type urlTestOption func(*URLTest) type urlTestOption func(*URLTest)

View file

@ -3,11 +3,11 @@ package adapter
import ( import (
"fmt" "fmt"
tlsC "github.com/Dreamacro/clash/component/tls" tlsC "github.com/metacubex/mihomo/component/tls"
"github.com/Dreamacro/clash/adapter/outbound" "github.com/metacubex/mihomo/adapter/outbound"
"github.com/Dreamacro/clash/common/structure" "github.com/metacubex/mihomo/common/structure"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
func ParseProxy(mapping map[string]any) (C.Proxy, error) { func ParseProxy(mapping map[string]any) (C.Proxy, error) {

View file

@ -6,12 +6,12 @@ import (
"sync" "sync"
"time" "time"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/Dreamacro/clash/common/batch" "github.com/metacubex/mihomo/common/batch"
"github.com/Dreamacro/clash/common/singledo" "github.com/metacubex/mihomo/common/singledo"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"github.com/dlclark/regexp2" "github.com/dlclark/regexp2"
) )

View file

@ -5,11 +5,11 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/Dreamacro/clash/common/structure" "github.com/metacubex/mihomo/common/structure"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/Dreamacro/clash/component/resource" "github.com/metacubex/mihomo/component/resource"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
types "github.com/Dreamacro/clash/constant/provider" types "github.com/metacubex/mihomo/constant/provider"
) )
var ( var (

View file

@ -10,15 +10,15 @@ import (
"strings" "strings"
"time" "time"
"github.com/Dreamacro/clash/adapter" "github.com/metacubex/mihomo/adapter"
"github.com/Dreamacro/clash/common/convert" "github.com/metacubex/mihomo/common/convert"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
clashHttp "github.com/Dreamacro/clash/component/http" mihomoHttp "github.com/metacubex/mihomo/component/http"
"github.com/Dreamacro/clash/component/resource" "github.com/metacubex/mihomo/component/resource"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
types "github.com/Dreamacro/clash/constant/provider" types "github.com/metacubex/mihomo/constant/provider"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"github.com/Dreamacro/clash/tunnel/statistic" "github.com/metacubex/mihomo/tunnel/statistic"
"github.com/dlclark/regexp2" "github.com/dlclark/regexp2"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
@ -119,8 +119,8 @@ func (pp *proxySetProvider) getSubscriptionInfo() {
go func() { go func() {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*90) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel() defer cancel()
resp, err := clashHttp.HttpRequest(ctx, pp.Vehicle().(*resource.HTTPVehicle).Url(), resp, err := mihomoHttp.HttpRequest(ctx, pp.Vehicle().(*resource.HTTPVehicle).Url(),
http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil) http.MethodGet, http.Header{"User-Agent": {"mihomo"}}, nil)
if err != nil { if err != nil {
return return
} }
@ -128,7 +128,7 @@ func (pp *proxySetProvider) getSubscriptionInfo() {
userInfoStr := strings.TrimSpace(resp.Header.Get("subscription-userinfo")) userInfoStr := strings.TrimSpace(resp.Header.Get("subscription-userinfo"))
if userInfoStr == "" { if userInfoStr == "" {
resp2, err := clashHttp.HttpRequest(ctx, pp.Vehicle().(*resource.HTTPVehicle).Url(), resp2, err := mihomoHttp.HttpRequest(ctx, pp.Vehicle().(*resource.HTTPVehicle).Url(),
http.MethodGet, http.Header{"User-Agent": {"Quantumultx"}}, nil) http.MethodGet, http.Header{"User-Agent": {"Quantumultx"}}, nil)
if err != nil { if err != nil {
return return

View file

@ -6,7 +6,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/Dreamacro/clash/common/generics/list" "github.com/metacubex/mihomo/common/generics/list"
"github.com/samber/lo" "github.com/samber/lo"
) )

View file

@ -1,9 +1,9 @@
package callback package callback
import ( import (
"github.com/Dreamacro/clash/common/buf" "github.com/metacubex/mihomo/common/buf"
N "github.com/Dreamacro/clash/common/net" N "github.com/metacubex/mihomo/common/net"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type firstWriteCallBackConn struct { type firstWriteCallBackConn struct {

View file

@ -9,10 +9,10 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
) )
// ConvertsV2Ray convert V2Ray subscribe proxies data to clash proxies config // ConvertsV2Ray convert V2Ray subscribe proxies data to mihomo proxies config
func ConvertsV2Ray(buf []byte) ([]map[string]any, error) { func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
data := DecodeBase64(buf) data := DecodeBase64(buf)

View file

@ -6,7 +6,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/Dreamacro/clash/common/utils" "github.com/metacubex/mihomo/common/utils"
"github.com/metacubex/sing-shadowsocks/shadowimpl" "github.com/metacubex/sing-shadowsocks/shadowimpl"
"github.com/zhangyunhao116/fastrand" "github.com/zhangyunhao116/fastrand"

View file

@ -4,7 +4,7 @@ import (
"bufio" "bufio"
"net" "net"
"github.com/Dreamacro/clash/common/buf" "github.com/metacubex/mihomo/common/buf"
) )
var _ ExtendedConn = (*BufferedConn)(nil) var _ ExtendedConn = (*BufferedConn)(nil)

View file

@ -3,7 +3,7 @@ package net
import ( import (
"net" "net"
"github.com/Dreamacro/clash/common/buf" "github.com/metacubex/mihomo/common/buf"
) )
var _ ExtendedConn = (*CachedConn)(nil) var _ ExtendedConn = (*CachedConn)(nil)

View file

@ -6,8 +6,8 @@ import (
"runtime" "runtime"
"time" "time"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/Dreamacro/clash/common/net/packet" "github.com/metacubex/mihomo/common/net/packet"
) )
type readResult struct { type readResult struct {

View file

@ -5,7 +5,7 @@ import (
"os" "os"
"runtime" "runtime"
"github.com/Dreamacro/clash/common/net/packet" "github.com/metacubex/mihomo/common/net/packet"
) )
type EnhancePacketConn struct { type EnhancePacketConn struct {

View file

@ -4,7 +4,7 @@ import (
"os" "os"
"runtime" "runtime"
"github.com/Dreamacro/clash/common/net/packet" "github.com/metacubex/mihomo/common/net/packet"
"github.com/sagernet/sing/common/buf" "github.com/sagernet/sing/common/buf"
"github.com/sagernet/sing/common/bufio" "github.com/sagernet/sing/common/bufio"
M "github.com/sagernet/sing/common/metadata" M "github.com/sagernet/sing/common/metadata"

View file

@ -1,8 +1,8 @@
package net package net
import ( import (
"github.com/Dreamacro/clash/common/net/deadline" "github.com/metacubex/mihomo/common/net/deadline"
"github.com/Dreamacro/clash/common/net/packet" "github.com/metacubex/mihomo/common/net/packet"
) )
type EnhancePacketConn = packet.EnhancePacketConn type EnhancePacketConn = packet.EnhancePacketConn

View file

@ -3,7 +3,7 @@ package packet
import ( import (
"net" "net"
"github.com/Dreamacro/clash/common/pool" "github.com/metacubex/mihomo/common/pool"
) )
type WaitReadFrom interface { type WaitReadFrom interface {

View file

@ -7,7 +7,7 @@ import (
"strconv" "strconv"
"syscall" "syscall"
"github.com/Dreamacro/clash/common/pool" "github.com/metacubex/mihomo/common/pool"
) )
type enhanceUDPConn struct { type enhanceUDPConn struct {

View file

@ -5,7 +5,7 @@ import (
"runtime" "runtime"
"time" "time"
"github.com/Dreamacro/clash/common/buf" "github.com/metacubex/mihomo/common/buf"
) )
type refConn struct { type refConn struct {

View file

@ -12,7 +12,7 @@ package net
// //
// go func() { // go func() {
// // Wrapping to avoid using *net.TCPConn.(ReadFrom) // // Wrapping to avoid using *net.TCPConn.(ReadFrom)
// // See also https://github.com/Dreamacro/clash/pull/1209 // // See also https://github.com/metacubex/mihomo/pull/1209
// _, err := io.Copy(WriteOnlyWriter{Writer: leftConn}, ReadOnlyReader{Reader: rightConn}) // _, err := io.Copy(WriteOnlyWriter{Writer: leftConn}, ReadOnlyReader{Reader: rightConn})
// leftConn.SetReadDeadline(time.Now()) // leftConn.SetReadDeadline(time.Now())
// ch <- err // ch <- err

View file

@ -5,7 +5,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View file

@ -5,7 +5,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View file

@ -5,7 +5,7 @@ import (
"net" "net"
"runtime" "runtime"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
) )
func ListenDHCPClient(ctx context.Context, ifaceName string) (net.PacketConn, error) { func ListenDHCPClient(ctx context.Context, ifaceName string) (net.PacketConn, error) {

View file

@ -6,8 +6,8 @@ import (
"net" "net"
"net/netip" "net/netip"
"github.com/Dreamacro/clash/common/nnip" "github.com/metacubex/mihomo/common/nnip"
"github.com/Dreamacro/clash/component/iface" "github.com/metacubex/mihomo/component/iface"
"github.com/insomniacslk/dhcp/dhcpv4" "github.com/insomniacslk/dhcp/dhcpv4"
) )

View file

@ -6,7 +6,7 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/Dreamacro/clash/component/iface" "github.com/metacubex/mihomo/component/iface"
) )
func LookupLocalAddrFromIfaceName(ifaceName string, network string, destination netip.Addr, port int) (net.Addr, error) { func LookupLocalAddrFromIfaceName(ifaceName string, network string, destination netip.Addr, port int) (net.Addr, error) {

View file

@ -6,7 +6,7 @@ import (
"net/netip" "net/netip"
"syscall" "syscall"
"github.com/Dreamacro/clash/component/iface" "github.com/metacubex/mihomo/component/iface"
"golang.org/x/sys/unix" "golang.org/x/sys/unix"
) )

View file

@ -9,7 +9,7 @@ import (
"syscall" "syscall"
"unsafe" "unsafe"
"github.com/Dreamacro/clash/component/iface" "github.com/metacubex/mihomo/component/iface"
) )
const ( const (

View file

@ -11,7 +11,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
) )
type dialFunc func(ctx context.Context, network string, ips []netip.Addr, port string, opt *option) (net.Conn, error) type dialFunc func(ctx context.Context, network string, ips []netip.Addr, port string, opt *option) (net.Conn, error)

View file

@ -7,7 +7,7 @@ import (
"net/netip" "net/netip"
"sync" "sync"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
) )
var printMarkWarnOnce sync.Once var printMarkWarnOnce sync.Once

View file

@ -4,8 +4,8 @@ import (
"context" "context"
"net" "net"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
"github.com/Dreamacro/clash/component/resolver" "github.com/metacubex/mihomo/component/resolver"
) )
var ( var (

View file

@ -173,7 +173,7 @@ static __always_inline bool is_lan_ip(__be32 addr) {
return false; return false;
} }
SEC("tc_clash_auto_redir_ingress") SEC("tc_mihomo_auto_redir_ingress")
int tc_redir_ingress_func(struct __sk_buff *skb) { int tc_redir_ingress_func(struct __sk_buff *skb) {
void *data = (void *)(long)skb->data; void *data = (void *)(long)skb->data;
void *data_end = (void *)(long)skb->data_end; void *data_end = (void *)(long)skb->data_end;
@ -264,7 +264,7 @@ int tc_redir_ingress_func(struct __sk_buff *skb) {
return TC_ACT_OK; return TC_ACT_OK;
} }
SEC("tc_clash_auto_redir_egress") SEC("tc_mihomo_auto_redir_egress")
int tc_redir_egress_func(struct __sk_buff *skb) { int tc_redir_egress_func(struct __sk_buff *skb) {
void *data = (void *)(long)skb->data; void *data = (void *)(long)skb->data;
void *data_end = (void *)(long)skb->data_end; void *data_end = (void *)(long)skb->data_end;
@ -276,10 +276,10 @@ int tc_redir_egress_func(struct __sk_buff *skb) {
if (eth->h_proto != bpf_htons(ETH_P_IP)) if (eth->h_proto != bpf_htons(ETH_P_IP))
return TC_ACT_OK; return TC_ACT_OK;
__u32 key = 0, *redir_ip, *redir_port; // *clash_mark __u32 key = 0, *redir_ip, *redir_port; // *mihomo_mark
// clash_mark = bpf_map_lookup_elem(&redir_params_map, &key); // mihomo_mark = bpf_map_lookup_elem(&redir_params_map, &key);
// if (clash_mark && *clash_mark != 0 && *clash_mark == skb->mark) // if (mihomo_mark && *mihomo_mark != 0 && *mihomo_mark == skb->mark)
// return TC_ACT_OK; // return TC_ACT_OK;
struct iphdr *iph = (struct iphdr *)(eth + 1); struct iphdr *iph = (struct iphdr *)(eth + 1);

View file

@ -38,7 +38,7 @@ static __always_inline bool is_lan_ip(__be32 addr) {
return false; return false;
} }
SEC("tc_clash_redirect_to_tun") SEC("tc_mihomo_redirect_to_tun")
int tc_tun_func(struct __sk_buff *skb) { int tc_tun_func(struct __sk_buff *skb) {
void *data = (void *)(long)skb->data; void *data = (void *)(long)skb->data;
void *data_end = (void *)(long)skb->data_end; void *data_end = (void *)(long)skb->data_end;
@ -50,13 +50,13 @@ int tc_tun_func(struct __sk_buff *skb) {
if (eth->h_proto == bpf_htons(ETH_P_ARP)) if (eth->h_proto == bpf_htons(ETH_P_ARP))
return TC_ACT_OK; return TC_ACT_OK;
__u32 key = 0, *clash_mark, *tun_ifindex; __u32 key = 0, *mihomo_mark, *tun_ifindex;
clash_mark = bpf_map_lookup_elem(&tc_params_map, &key); mihomo_mark = bpf_map_lookup_elem(&tc_params_map, &key);
if (!clash_mark) if (!mihomo_mark)
return TC_ACT_OK; return TC_ACT_OK;
if (skb->mark == *clash_mark) if (skb->mark == *mihomo_mark)
return TC_ACT_OK; return TC_ACT_OK;
if (eth->h_proto == bpf_htons(ETH_P_IP)) { if (eth->h_proto == bpf_htons(ETH_P_IP)) {

View file

@ -3,8 +3,8 @@ package ebpf
import ( import (
"net/netip" "net/netip"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
type TcEBpfProgram struct { type TcEBpfProgram struct {

View file

@ -6,11 +6,11 @@ import (
"fmt" "fmt"
"net/netip" "net/netip"
"github.com/Dreamacro/clash/common/cmd" "github.com/metacubex/mihomo/common/cmd"
"github.com/Dreamacro/clash/component/dialer" "github.com/metacubex/mihomo/component/dialer"
"github.com/Dreamacro/clash/component/ebpf/redir" "github.com/metacubex/mihomo/component/ebpf/redir"
"github.com/Dreamacro/clash/component/ebpf/tc" "github.com/metacubex/mihomo/component/ebpf/tc"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/sagernet/netlink" "github.com/sagernet/netlink"
) )
@ -47,7 +47,7 @@ func NewTcEBpfProgram(ifaceNames []string, tunName string) (*TcEBpfProgram, erro
tunIndex := uint32(tunIface.Attrs().Index) tunIndex := uint32(tunIface.Attrs().Index)
dialer.DefaultRoutingMark.Store(C.ClashTrafficMark) dialer.DefaultRoutingMark.Store(C.MihomoTrafficMark)
ifMark := uint32(dialer.DefaultRoutingMark.Load()) ifMark := uint32(dialer.DefaultRoutingMark.Load())

View file

@ -16,9 +16,9 @@ import (
"github.com/sagernet/netlink" "github.com/sagernet/netlink"
"golang.org/x/sys/unix" "golang.org/x/sys/unix"
"github.com/Dreamacro/clash/component/ebpf/byteorder" "github.com/metacubex/mihomo/component/ebpf/byteorder"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
//go:generate go run github.com/cilium/ebpf/cmd/bpf2go -cc $BPF_CLANG -cflags $BPF_CFLAGS bpf ../bpf/redir.c //go:generate go run github.com/cilium/ebpf/cmd/bpf2go -cc $BPF_CLANG -cflags $BPF_CFLAGS bpf ../bpf/redir.c
@ -131,7 +131,7 @@ func (e *EBpfRedirect) Start() error {
filter := &netlink.BpfFilter{ filter := &netlink.BpfFilter{
FilterAttrs: filterAttrs, FilterAttrs: filterAttrs,
Fd: objs.bpfPrograms.TcRedirIngressFunc.FD(), Fd: objs.bpfPrograms.TcRedirIngressFunc.FD(),
Name: "clash-redir-ingress-" + e.ifName, Name: "mihomo-redir-ingress-" + e.ifName,
DirectAction: true, DirectAction: true,
} }
@ -153,7 +153,7 @@ func (e *EBpfRedirect) Start() error {
filterEgress := &netlink.BpfFilter{ filterEgress := &netlink.BpfFilter{
FilterAttrs: filterAttrsEgress, FilterAttrs: filterAttrsEgress,
Fd: objs.bpfPrograms.TcRedirEgressFunc.FD(), Fd: objs.bpfPrograms.TcRedirEgressFunc.FD(),
Name: "clash-redir-egress-" + e.ifName, Name: "mihomo-redir-egress-" + e.ifName,
DirectAction: true, DirectAction: true,
} }

View file

@ -14,8 +14,8 @@ import (
"github.com/sagernet/netlink" "github.com/sagernet/netlink"
"golang.org/x/sys/unix" "golang.org/x/sys/unix"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/transport/socks5" "github.com/metacubex/mihomo/transport/socks5"
) )
//go:generate go run github.com/cilium/ebpf/cmd/bpf2go -cc $BPF_CLANG -cflags $BPF_CFLAGS bpf ../bpf/tc.c //go:generate go run github.com/cilium/ebpf/cmd/bpf2go -cc $BPF_CLANG -cflags $BPF_CFLAGS bpf ../bpf/tc.c
@ -115,7 +115,7 @@ func (e *EBpfTC) Start() error {
filter := &netlink.BpfFilter{ filter := &netlink.BpfFilter{
FilterAttrs: filterAttrs, FilterAttrs: filterAttrs,
Fd: objs.bpfPrograms.TcTunFunc.FD(), Fd: objs.bpfPrograms.TcTunFunc.FD(),
Name: "clash-tc-" + e.ifName, Name: "mihomo-tc-" + e.ifName,
DirectAction: true, DirectAction: true,
} }

View file

@ -3,7 +3,7 @@ package fakeip
import ( import (
"net/netip" "net/netip"
"github.com/Dreamacro/clash/component/profile/cachefile" "github.com/metacubex/mihomo/component/profile/cachefile"
) )
type cachefileStore struct { type cachefileStore struct {

View file

@ -3,7 +3,7 @@ package fakeip
import ( import (
"net/netip" "net/netip"
"github.com/Dreamacro/clash/common/cache" "github.com/metacubex/mihomo/common/cache"
) )
type memoryStore struct { type memoryStore struct {

View file

@ -6,9 +6,9 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/Dreamacro/clash/common/nnip" "github.com/metacubex/mihomo/common/nnip"
"github.com/Dreamacro/clash/component/profile/cachefile" "github.com/metacubex/mihomo/component/profile/cachefile"
"github.com/Dreamacro/clash/component/trie" "github.com/metacubex/mihomo/component/trie"
) )
const ( const (

View file

@ -7,8 +7,8 @@ import (
"testing" "testing"
"time" "time"
"github.com/Dreamacro/clash/component/profile/cachefile" "github.com/metacubex/mihomo/component/profile/cachefile"
"github.com/Dreamacro/clash/component/trie" "github.com/metacubex/mihomo/component/trie"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"go.etcd.io/bbolt" "go.etcd.io/bbolt"
@ -32,7 +32,7 @@ func createCachefileStore(options Options) (*Pool, string, error) {
if err != nil { if err != nil {
return nil, "", err return nil, "", err
} }
f, err := os.CreateTemp("", "clash") f, err := os.CreateTemp("", "mihomo")
if err != nil { if err != nil {
return nil, "", err return nil, "", err
} }

View file

@ -3,7 +3,7 @@ package geodata
import ( import (
"strings" "strings"
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
) )
type AttributeList struct { type AttributeList struct {

View file

@ -3,8 +3,8 @@ package geodata
import ( import (
"fmt" "fmt"
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type loader struct { type loader struct {

View file

@ -1,7 +1,7 @@
package geodata package geodata
import ( import (
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
) )
type LoaderImplementation interface { type LoaderImplementation interface {

View file

@ -8,10 +8,10 @@ import (
"os" "os"
"time" "time"
clashHttp "github.com/Dreamacro/clash/component/http" mihomoHttp "github.com/metacubex/mihomo/component/http"
"github.com/Dreamacro/clash/component/mmdb" "github.com/metacubex/mihomo/component/mmdb"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
) )
var initGeoSite bool var initGeoSite bool
@ -44,7 +44,7 @@ func InitGeoSite() error {
func downloadGeoSite(path string) (err error) { func downloadGeoSite(path string) (err error) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*90) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel() defer cancel()
resp, err := clashHttp.HttpRequest(ctx, C.GeoSiteUrl, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil) resp, err := mihomoHttp.HttpRequest(ctx, C.GeoSiteUrl, http.MethodGet, http.Header{"User-Agent": {"mihomo"}}, nil)
if err != nil { if err != nil {
return return
} }
@ -63,7 +63,7 @@ func downloadGeoSite(path string) (err error) {
func downloadGeoIP(path string) (err error) { func downloadGeoIP(path string) (err error) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*90) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel() defer cancel()
resp, err := clashHttp.HttpRequest(ctx, C.GeoIpUrl, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil) resp, err := mihomoHttp.HttpRequest(ctx, C.GeoIpUrl, http.MethodGet, http.Header{"User-Agent": {"mihomo"}}, nil)
if err != nil { if err != nil {
return return
} }

View file

@ -5,9 +5,9 @@ import (
"os" "os"
"strings" "strings"
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )

View file

@ -5,8 +5,8 @@ import (
"fmt" "fmt"
"runtime" "runtime"
"github.com/Dreamacro/clash/component/geodata" "github.com/metacubex/mihomo/component/geodata"
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
) )
type memConservativeLoader struct { type memConservativeLoader struct {

View file

@ -7,7 +7,7 @@ import (
"sort" "sort"
"strings" "strings"
"github.com/Dreamacro/clash/component/geodata/strmatcher" "github.com/metacubex/mihomo/component/geodata/strmatcher"
) )
var matcherTypeMap = map[Domain_Type]strmatcher.Type{ var matcherTypeMap = map[Domain_Type]strmatcher.Type{

View file

@ -84,7 +84,7 @@ type Domain struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
// Domain matching type. // Domain matching type.
Type Domain_Type `protobuf:"varint,1,opt,name=type,proto3,enum=clash.component.geodata.router.Domain_Type" json:"type,omitempty"` Type Domain_Type `protobuf:"varint,1,opt,name=type,proto3,enum=mihomo.component.geodata.router.Domain_Type" json:"type,omitempty"`
// Domain value. // Domain value.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// Attributes of this domain. May be used for filtering. // Attributes of this domain. May be used for filtering.
@ -585,22 +585,22 @@ func file_component_geodata_router_config_proto_rawDescGZIP() []byte {
var file_component_geodata_router_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_component_geodata_router_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_component_geodata_router_config_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_component_geodata_router_config_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_component_geodata_router_config_proto_goTypes = []interface{}{ var file_component_geodata_router_config_proto_goTypes = []interface{}{
(Domain_Type)(0), // 0: clash.component.geodata.router.Domain.Type (Domain_Type)(0), // 0: mihomo.component.geodata.router.Domain.Type
(*Domain)(nil), // 1: clash.component.geodata.router.Domain (*Domain)(nil), // 1: mihomo.component.geodata.router.Domain
(*CIDR)(nil), // 2: clash.component.geodata.router.CIDR (*CIDR)(nil), // 2: mihomo.component.geodata.router.CIDR
(*GeoIP)(nil), // 3: clash.component.geodata.router.GeoIP (*GeoIP)(nil), // 3: mihomo.component.geodata.router.GeoIP
(*GeoIPList)(nil), // 4: clash.component.geodata.router.GeoIPList (*GeoIPList)(nil), // 4: mihomo.component.geodata.router.GeoIPList
(*GeoSite)(nil), // 5: clash.component.geodata.router.GeoSite (*GeoSite)(nil), // 5: mihomo.component.geodata.router.GeoSite
(*GeoSiteList)(nil), // 6: clash.component.geodata.router.GeoSiteList (*GeoSiteList)(nil), // 6: mihomo.component.geodata.router.GeoSiteList
(*Domain_Attribute)(nil), // 7: clash.component.geodata.router.Domain.Attribute (*Domain_Attribute)(nil), // 7: mihomo.component.geodata.router.Domain.Attribute
} }
var file_component_geodata_router_config_proto_depIdxs = []int32{ var file_component_geodata_router_config_proto_depIdxs = []int32{
0, // 0: clash.component.geodata.router.Domain.type:type_name -> clash.component.geodata.router.Domain.Type 0, // 0: mihomo.component.geodata.router.Domain.type:type_name -> mihomo.component.geodata.router.Domain.Type
7, // 1: clash.component.geodata.router.Domain.attribute:type_name -> clash.component.geodata.router.Domain.Attribute 7, // 1: mihomo.component.geodata.router.Domain.attribute:type_name -> mihomo.component.geodata.router.Domain.Attribute
2, // 2: clash.component.geodata.router.GeoIP.cidr:type_name -> clash.component.geodata.router.CIDR 2, // 2: mihomo.component.geodata.router.GeoIP.cidr:type_name -> mihomo.component.geodata.router.CIDR
3, // 3: clash.component.geodata.router.GeoIPList.entry:type_name -> clash.component.geodata.router.GeoIP 3, // 3: mihomo.component.geodata.router.GeoIPList.entry:type_name -> mihomo.component.geodata.router.GeoIP
1, // 4: clash.component.geodata.router.GeoSite.domain:type_name -> clash.component.geodata.router.Domain 1, // 4: mihomo.component.geodata.router.GeoSite.domain:type_name -> mihomo.component.geodata.router.Domain
5, // 5: clash.component.geodata.router.GeoSiteList.entry:type_name -> clash.component.geodata.router.GeoSite 5, // 5: mihomo.component.geodata.router.GeoSiteList.entry:type_name -> mihomo.component.geodata.router.GeoSite
6, // [6:6] is the sub-list for method output_type 6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type 6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension type_name

View file

@ -1,9 +1,9 @@
syntax = "proto3"; syntax = "proto3";
package clash.component.geodata.router; package mihomo.component.geodata.router;
option csharp_namespace = "Clash.Component.Geodata.Router"; option csharp_namespace = "Mihomo.Component.Geodata.Router";
option go_package = "github.com/Dreamacro/clash/component/geodata/router"; option go_package = "github.com/metacubex/mihomo/component/geodata/router";
option java_package = "com.clash.component.geodata.router"; option java_package = "com.mihomo.component.geodata.router";
option java_multiple_files = true; option java_multiple_files = true;
// Domain for routing decision. // Domain for routing decision.

View file

@ -6,9 +6,9 @@ import (
"os" "os"
"strings" "strings"
"github.com/Dreamacro/clash/component/geodata" "github.com/metacubex/mihomo/component/geodata"
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )

View file

@ -1,7 +1,7 @@
package strmatcher package strmatcher
import ( import (
"github.com/Dreamacro/clash/common/generics/list" "github.com/metacubex/mihomo/common/generics/list"
) )
const validCharCount = 53 const validCharCount = 53

View file

@ -6,9 +6,9 @@ import (
"golang.org/x/sync/singleflight" "golang.org/x/sync/singleflight"
"strings" "strings"
"github.com/Dreamacro/clash/component/geodata/router" "github.com/metacubex/mihomo/component/geodata/router"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
) )
var geoLoaderName = "memconservative" var geoLoaderName = "memconservative"

View file

@ -11,9 +11,9 @@ import (
"strings" "strings"
"time" "time"
"github.com/Dreamacro/clash/component/ca" "github.com/metacubex/mihomo/component/ca"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/listener/inner" "github.com/metacubex/mihomo/listener/inner"
) )
func HttpRequest(ctx context.Context, url, method string, header map[string][]string, body io.Reader) (*http.Response, error) { func HttpRequest(ctx context.Context, url, method string, header map[string][]string, body io.Reader) (*http.Response, error) {

View file

@ -7,7 +7,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/Dreamacro/clash/common/singledo" "github.com/metacubex/mihomo/common/singledo"
) )
type Interface struct { type Interface struct {

View file

@ -8,9 +8,9 @@ import (
"sync" "sync"
"time" "time"
clashHttp "github.com/Dreamacro/clash/component/http" mihomoHttp "github.com/metacubex/mihomo/component/http"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"github.com/oschwald/maxminddb-golang" "github.com/oschwald/maxminddb-golang"
) )
@ -79,7 +79,7 @@ func Instance() Reader {
func DownloadMMDB(path string) (err error) { func DownloadMMDB(path string) (err error) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*90) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel() defer cancel()
resp, err := clashHttp.HttpRequest(ctx, C.MmdbUrl, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil) resp, err := mihomoHttp.HttpRequest(ctx, C.MmdbUrl, http.MethodGet, http.Header{"User-Agent": {"mihomo"}}, nil)
if err != nil { if err != nil {
return return
} }

View file

@ -3,8 +3,8 @@ package nat
import ( import (
"net" "net"
"github.com/Dreamacro/clash/common/atomic" "github.com/metacubex/mihomo/common/atomic"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
) )
type writeBackProxy struct { type writeBackProxy struct {

View file

@ -4,7 +4,7 @@ import (
"net" "net"
"sync" "sync"
C "github.com/Dreamacro/clash/constant" C "github.com/metacubex/mihomo/constant"
"github.com/puzpuzpuz/xsync/v2" "github.com/puzpuzpuz/xsync/v2"
) )

View file

@ -10,8 +10,8 @@ import (
"syscall" "syscall"
"unsafe" "unsafe"
"github.com/Dreamacro/clash/common/nnip" "github.com/metacubex/mihomo/common/nnip"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
) )
// store process name for when dealing with multiple PROCESS-NAME rules // store process name for when dealing with multiple PROCESS-NAME rules

View file

@ -7,8 +7,8 @@ import (
"syscall" "syscall"
"unsafe" "unsafe"
"github.com/Dreamacro/clash/common/nnip" "github.com/metacubex/mihomo/common/nnip"
"github.com/Dreamacro/clash/log" "github.com/metacubex/mihomo/log"
"golang.org/x/sys/windows" "golang.org/x/sys/windows"
) )

Some files were not shown because too many files have changed in this diff Show more