This commit is contained in:
arm64v8a
2022-11-25 22:47:04 +09:00
parent a06c63a66c
commit 383b47e947
5 changed files with 28 additions and 16 deletions

View File

@@ -18,7 +18,12 @@ namespace NekoRay {
void ProfileManager::LoadManager() {
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) {
groups[id] = LoadGroup(QString("groups/%1.json").arg(id));
@@ -49,13 +54,8 @@ namespace NekoRay {
ent->load_control_force = true;
ent->fn = jsonPath;
ent->Load();
return ent;
} else {
// 返回一个假的?
ent = NewProxyEntity("socks");
ent->bean->name = "[Load Error]";
return ent;
}
return ent;
}
// 新建的不给 fn 和 id

View File

@@ -79,6 +79,19 @@ func Create(nekoConfigContent []byte, forceDisableColor bool) (*box.Box, context
cancel()
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()
if err != nil {
cancel()
@@ -90,6 +103,7 @@ func Create(nekoConfigContent []byte, forceDisableColor bool) (*box.Box, context
func run() error {
osSignals := make(chan os.Signal, 1)
signal.Notify(osSignals, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP)
defer signal.Stop(osSignals)
for {
instance, cancel, err := Create(nil, false)
if err != nil {

View File

@@ -6,7 +6,7 @@ require (
github.com/dustin/go-humanize v1.0.0
github.com/gofrs/uuid v4.3.1+incompatible
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-tun v0.0.0-20221104121441-66c48a57776f
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/netlink v0.0.0-20220905062125-8043b4a9aa97 // 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/smux v0.0.0-20220831015742-e0f1988e3195 // indirect
github.com/sagernet/websocket v0.0.0-20220913015213-615516348b4e // indirect

View File

@@ -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-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-box v1.0.2-0.20221121132044-ffd54eef6c71 h1:A8659oZ4CvbfeCkpA+H1+6pgjCbFbW8IxzVDPX/qIyg=
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 h1:PUjtAyC2TpV/nOwr08AGQ9Y0eMWhob+MBV5lc51TxiU=
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/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-20220819002358-7461bb09a8f6/go.mod h1:EX3RbZvrwAkPI2nuGa78T2iQXmrkT+/VQtskjou42xM=
github.com/sagernet/sing-shadowsocks v0.0.0-20221115140728-028358027bfa h1:L8x5xAykEs9jcEYVLDAOYSkERLfKOkU8TCKlWBOF91c=
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/go.mod h1:1u3pjXA9HmH7kRiBJqM3C/zPxrxnCLd3svmqtub/RFU=
github.com/sagernet/sing-vmess v0.0.0-20221109021549-b446d5bdddf0 h1:z3kuD3hPNdEq7/wVy5lwE21f+8ZTazBtR81qswxJoCc=

View File

@@ -83,9 +83,7 @@ namespace QtGrpc {
return networkReply->readAll().mid(GrpcMessageSizeHeaderSize);
}
QNetworkReply::NetworkError
call(const QString &method, const QString &service, const QByteArray &args, QByteArray &qByteArray,
int timeout_ms) {
QNetworkReply::NetworkError call(const QString &method, const QString &service, const QByteArray &args, QByteArray &qByteArray, int timeout_ms) {
QNetworkReply *networkReply = post(method, service, args);
QTimer *abortTimer = nullptr;