mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-18 13:04:37 +03:00
update
This commit is contained in:
@@ -18,7 +18,12 @@ namespace NekoRay {
|
|||||||
|
|
||||||
void ProfileManager::LoadManager() {
|
void ProfileManager::LoadManager() {
|
||||||
for (auto id: _profiles) {
|
for (auto id: _profiles) {
|
||||||
profiles[id] = LoadProxyEntity(QString("profiles/%1.json").arg(id));
|
auto ent = LoadProxyEntity(QString("profiles/%1.json").arg(id));
|
||||||
|
if (ent->bean->version == -114514) { // clear invaild profile
|
||||||
|
DeleteProfile(id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
profiles[id] = ent;
|
||||||
}
|
}
|
||||||
for (auto id: _groups) {
|
for (auto id: _groups) {
|
||||||
groups[id] = LoadGroup(QString("groups/%1.json").arg(id));
|
groups[id] = LoadGroup(QString("groups/%1.json").arg(id));
|
||||||
@@ -49,13 +54,8 @@ namespace NekoRay {
|
|||||||
ent->load_control_force = true;
|
ent->load_control_force = true;
|
||||||
ent->fn = jsonPath;
|
ent->fn = jsonPath;
|
||||||
ent->Load();
|
ent->Load();
|
||||||
return ent;
|
|
||||||
} else {
|
|
||||||
// 返回一个假的?
|
|
||||||
ent = NewProxyEntity("socks");
|
|
||||||
ent->bean->name = "[Load Error]";
|
|
||||||
return ent;
|
|
||||||
}
|
}
|
||||||
|
return ent;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新建的不给 fn 和 id
|
// 新建的不给 fn 和 id
|
||||||
|
|||||||
@@ -79,6 +79,19 @@ func Create(nekoConfigContent []byte, forceDisableColor bool) (*box.Box, context
|
|||||||
cancel()
|
cancel()
|
||||||
return nil, nil, E.Cause(err, "create service")
|
return nil, nil, E.Cause(err, "create service")
|
||||||
}
|
}
|
||||||
|
osSignals := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(osSignals, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP)
|
||||||
|
defer func() {
|
||||||
|
signal.Stop(osSignals)
|
||||||
|
close(osSignals)
|
||||||
|
}()
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
_, loaded := <-osSignals
|
||||||
|
if loaded {
|
||||||
|
cancel()
|
||||||
|
}
|
||||||
|
}()
|
||||||
err = instance.Start()
|
err = instance.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cancel()
|
cancel()
|
||||||
@@ -90,6 +103,7 @@ func Create(nekoConfigContent []byte, forceDisableColor bool) (*box.Box, context
|
|||||||
func run() error {
|
func run() error {
|
||||||
osSignals := make(chan os.Signal, 1)
|
osSignals := make(chan os.Signal, 1)
|
||||||
signal.Notify(osSignals, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP)
|
signal.Notify(osSignals, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP)
|
||||||
|
defer signal.Stop(osSignals)
|
||||||
for {
|
for {
|
||||||
instance, cancel, err := Create(nil, false)
|
instance, cancel, err := Create(nil, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ require (
|
|||||||
github.com/dustin/go-humanize v1.0.0
|
github.com/dustin/go-humanize v1.0.0
|
||||||
github.com/gofrs/uuid v4.3.1+incompatible
|
github.com/gofrs/uuid v4.3.1+incompatible
|
||||||
github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4
|
github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4
|
||||||
github.com/sagernet/sing-box v1.0.2-0.20221121132044-ffd54eef6c71
|
github.com/sagernet/sing-box v1.0.2-0.20221125145930-05ed88aba88b
|
||||||
github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10
|
github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10
|
||||||
github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f
|
github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f
|
||||||
github.com/spf13/cobra v1.6.1
|
github.com/spf13/cobra v1.6.1
|
||||||
@@ -49,7 +49,7 @@ require (
|
|||||||
github.com/sagernet/go-tun2socks v1.16.12-0.20220818015926-16cb67876a61 // indirect
|
github.com/sagernet/go-tun2socks v1.16.12-0.20220818015926-16cb67876a61 // indirect
|
||||||
github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 // indirect
|
github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 // indirect
|
||||||
github.com/sagernet/quic-go v0.0.0-20221108053023-645bcc4f9b15 // indirect
|
github.com/sagernet/quic-go v0.0.0-20221108053023-645bcc4f9b15 // indirect
|
||||||
github.com/sagernet/sing-shadowsocks v0.0.0-20220819002358-7461bb09a8f6 // indirect
|
github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa // indirect
|
||||||
github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 // indirect
|
github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 // indirect
|
||||||
github.com/sagernet/smux v0.0.0-20220831015742-e0f1988e3195 // indirect
|
github.com/sagernet/smux v0.0.0-20220831015742-e0f1988e3195 // indirect
|
||||||
github.com/sagernet/websocket v0.0.0-20220913015213-615516348b4e // indirect
|
github.com/sagernet/websocket v0.0.0-20220913015213-615516348b4e // indirect
|
||||||
|
|||||||
@@ -146,12 +146,12 @@ github.com/sagernet/sing v0.0.0-20220812082120-05f9836bff8f/go.mod h1:QVsS5L/ZA2
|
|||||||
github.com/sagernet/sing v0.0.0-20220817130738-ce854cda8522/go.mod h1:QVsS5L/ZA2Q5UhQwLrn0Trw+msNd/NPGEhBKR/ioWiY=
|
github.com/sagernet/sing v0.0.0-20220817130738-ce854cda8522/go.mod h1:QVsS5L/ZA2Q5UhQwLrn0Trw+msNd/NPGEhBKR/ioWiY=
|
||||||
github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4 h1:LO7xMvMGhYmjQg2vjhTzsODyzs9/WLYu5Per+/8jIeo=
|
github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4 h1:LO7xMvMGhYmjQg2vjhTzsODyzs9/WLYu5Per+/8jIeo=
|
||||||
github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4/go.mod h1:zvgDYKI+vCAW9RyfyrKTgleI+DOa8lzHMPC7VZo3OL4=
|
github.com/sagernet/sing v0.0.0-20221008120626-60a9910eefe4/go.mod h1:zvgDYKI+vCAW9RyfyrKTgleI+DOa8lzHMPC7VZo3OL4=
|
||||||
github.com/sagernet/sing-box v1.0.2-0.20221121132044-ffd54eef6c71 h1:A8659oZ4CvbfeCkpA+H1+6pgjCbFbW8IxzVDPX/qIyg=
|
github.com/sagernet/sing-box v1.0.2-0.20221125145930-05ed88aba88b h1:PUjtAyC2TpV/nOwr08AGQ9Y0eMWhob+MBV5lc51TxiU=
|
||||||
github.com/sagernet/sing-box v1.0.2-0.20221121132044-ffd54eef6c71/go.mod h1:k8mC06PczRyc8WqpBuMNgnT/xLr3s6xm6Zi47kh1Xl4=
|
github.com/sagernet/sing-box v1.0.2-0.20221125145930-05ed88aba88b/go.mod h1:vpQv1/Y0cK/XyqIJLqvENWr1s3jewYEfTA/Aaykf7oc=
|
||||||
github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10 h1:K84AY2TxNX37ePYXVO6QTD/kgn9kDo4oGpTIn9PF5bo=
|
github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10 h1:K84AY2TxNX37ePYXVO6QTD/kgn9kDo4oGpTIn9PF5bo=
|
||||||
github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10/go.mod h1:VAvOT1pyryBIthTGRryFLXAsR1VRQZ05wolMYeQrr/E=
|
github.com/sagernet/sing-dns v0.0.0-20221113031420-c6aaf2ea4b10/go.mod h1:VAvOT1pyryBIthTGRryFLXAsR1VRQZ05wolMYeQrr/E=
|
||||||
github.com/sagernet/sing-shadowsocks v0.0.0-20220819002358-7461bb09a8f6 h1:JJfDeYYhWunvtxsU/mOVNTmFQmnzGx9dY034qG6G3g4=
|
github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa h1:L8x5xAykEs9jcEYVLDAOYSkERLfKOkU8TCKlWBOF91c=
|
||||||
github.com/sagernet/sing-shadowsocks v0.0.0-20220819002358-7461bb09a8f6/go.mod h1:EX3RbZvrwAkPI2nuGa78T2iQXmrkT+/VQtskjou42xM=
|
github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa/go.mod h1:16sNARQbsFbYIzAuPySszQA6Wfgzk7GWSzh1a6kDrUU=
|
||||||
github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f h1:CXF+nErOb9f7qiHingSgTa2/lJAgmEFtAQ47oVwdRGU=
|
github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f h1:CXF+nErOb9f7qiHingSgTa2/lJAgmEFtAQ47oVwdRGU=
|
||||||
github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f/go.mod h1:1u3pjXA9HmH7kRiBJqM3C/zPxrxnCLd3svmqtub/RFU=
|
github.com/sagernet/sing-tun v0.0.0-20221104121441-66c48a57776f/go.mod h1:1u3pjXA9HmH7kRiBJqM3C/zPxrxnCLd3svmqtub/RFU=
|
||||||
github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 h1:z3kuD3hPNdEq7/wVy5lwE21f+8ZTazBtR81qswxJoCc=
|
github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 h1:z3kuD3hPNdEq7/wVy5lwE21f+8ZTazBtR81qswxJoCc=
|
||||||
|
|||||||
@@ -83,9 +83,7 @@ namespace QtGrpc {
|
|||||||
return networkReply->readAll().mid(GrpcMessageSizeHeaderSize);
|
return networkReply->readAll().mid(GrpcMessageSizeHeaderSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply::NetworkError
|
QNetworkReply::NetworkError call(const QString &method, const QString &service, const QByteArray &args, QByteArray &qByteArray, int timeout_ms) {
|
||||||
call(const QString &method, const QString &service, const QByteArray &args, QByteArray &qByteArray,
|
|
||||||
int timeout_ms) {
|
|
||||||
QNetworkReply *networkReply = post(method, service, args);
|
QNetworkReply *networkReply = post(method, service, args);
|
||||||
|
|
||||||
QTimer *abortTimer = nullptr;
|
QTimer *abortTimer = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user