diff --git a/core/server/main.go b/core/server/main.go index 6649409..a8136c5 100644 --- a/core/server/main.go +++ b/core/server/main.go @@ -7,6 +7,7 @@ import ( "flag" "fmt" "log" + "net" "os" "runtime" runtimeDebug "runtime/debug" @@ -45,7 +46,17 @@ func RunCore() { boxmain.DisableColor() // RPC - fmt.Printf("Core listening at %v\n", "127.0.0.1:"+strconv.Itoa(*_port)) + go func() { + for { + time.Sleep(100 * time.Millisecond) + conn, err := net.Dial("tcp", "127.0.0.1:"+strconv.Itoa(*_port)) + if err == nil { + conn.Close() + fmt.Printf("Core listening at %v\n", "127.0.0.1:"+strconv.Itoa(*_port)) + return + } + } + }() err := gen.ListenAndServeLibcoreService("tcp", "127.0.0.1:"+strconv.Itoa(*_port), new(server)) if err != nil { log.Fatalf("failed to listen: %v", err) diff --git a/core/server/server.go b/core/server/server.go index e2f2ab3..fa16392 100644 --- a/core/server/server.go +++ b/core/server/server.go @@ -49,7 +49,7 @@ func (s *server) Start(in *gen.LoadConfigReq, out *gen.ErrorResp) (_ error) { }() if debug { - log.Println("Start:", in.CoreConfig) + log.Println("Start:", *in.CoreConfig) } if boxInstance != nil { @@ -420,15 +420,15 @@ func (s *server) QuerySpeedTest(in *gen.EmptyReq, out *gen.QuerySpeedTestRespons errStr = res.Error.Error() } out.Result = &gen.SpeedTestResult{ - DlSpeed: To(res.DlSpeed), - UlSpeed: To(res.UlSpeed), - Latency: To(res.Latency), - OutboundTag: To(res.Tag), - Error: To(errStr), - ServerName: To(res.ServerName), - ServerCountry: To(res.ServerCountry), - Cancelled: To(res.Cancelled), - } + DlSpeed: To(res.DlSpeed), + UlSpeed: To(res.UlSpeed), + Latency: To(res.Latency), + OutboundTag: To(res.Tag), + Error: To(errStr), + ServerName: To(res.ServerName), + ServerCountry: To(res.ServerCountry), + Cancelled: To(res.Cancelled), + } out.IsRunning = To(isRunning) return nil }