Revert "platform: Add openURL event"

This reverts commit 718cffea9a.
This commit is contained in:
世界
2024-11-05 20:03:39 +08:00
parent 1d517b6ca5
commit f504fb0d46
7 changed files with 15 additions and 130 deletions

View File

@@ -1,7 +1,6 @@
package libbox
import (
std_bufio "bufio"
"encoding/binary"
"net"
"runtime"
@@ -10,15 +9,9 @@ import (
"github.com/sagernet/sing-box/common/conntrack"
"github.com/sagernet/sing-box/experimental/clashapi"
E "github.com/sagernet/sing/common/exceptions"
F "github.com/sagernet/sing/common/format"
"github.com/sagernet/sing/common/memory"
)
const (
eventTypeEmpty byte = iota
eventTypeOpenURL
)
type StatusMessage struct {
Memory int64
Goroutines int32
@@ -51,73 +44,31 @@ func (s *CommandServer) readStatus() StatusMessage {
}
func (s *CommandServer) handleStatusConn(conn net.Conn) error {
var isMainClient bool
err := binary.Read(conn, binary.BigEndian, &isMainClient)
if err != nil {
return E.Cause(err, "read is main client")
}
var interval int64
err = binary.Read(conn, binary.BigEndian, &interval)
err := binary.Read(conn, binary.BigEndian, &interval)
if err != nil {
return E.Cause(err, "read interval")
}
ticker := time.NewTicker(time.Duration(interval))
defer ticker.Stop()
ctx := connKeepAlive(conn)
writer := std_bufio.NewWriter(conn)
if isMainClient {
for {
writer.WriteByte(eventTypeEmpty)
err = binary.Write(writer, binary.BigEndian, s.readStatus())
if err != nil {
return err
}
writer.Flush()
select {
case <-ctx.Done():
return ctx.Err()
case <-ticker.C:
case event := <-s.events:
event.writeTo(writer)
writer.Flush()
}
for {
err = binary.Write(conn, binary.BigEndian, s.readStatus())
if err != nil {
return err
}
} else {
for {
err = binary.Write(writer, binary.BigEndian, s.readStatus())
if err != nil {
return err
}
writer.Flush()
select {
case <-ctx.Done():
return ctx.Err()
case <-ticker.C:
}
select {
case <-ctx.Done():
return ctx.Err()
case <-ticker.C:
}
}
}
func (c *CommandClient) handleStatusConn(conn net.Conn) {
reader := std_bufio.NewReader(conn)
for {
if c.options.IsMainClient {
rawEvent, err := readEvent(reader)
if err != nil {
c.handler.Disconnected(err.Error())
return
}
switch event := rawEvent.(type) {
case *eventOpenURL:
c.handler.OpenURL(event.URL)
continue
case nil:
default:
panic(F.ToString("unexpected event type: ", event))
}
}
var message StatusMessage
err := binary.Read(reader, binary.BigEndian, &message)
err := binary.Read(conn, binary.BigEndian, &message)
if err != nil {
c.handler.Disconnected(err.Error())
return