1
0
Fork 0
mirror of https://github.com/anyproto/anytype-ts.git synced 2025-06-08 05:57:02 +09:00

nmh: speed up service detection

do not run check if we already have this service detected on other port
This commit is contained in:
Roman Khafizianov 2024-05-16 14:51:31 +02:00
parent c2f49e264f
commit 053a183ddd
No known key found for this signature in database
GPG key ID: F07A7D55A2684852

View file

@ -177,10 +177,10 @@ func isGrpcWebServer(port string) (bool, error) {
// should has Content-Type: application/grpc-web-text
if resp.Header.Get("Content-Type") == "application/grpc-web-text" {
return true, err
return true, nil
}
return false, err
return false, fmt.Errorf("unexpected content type: %s", resp.Header.Get("Content-Type"))
}
// MacOS and Linux: returns a list of all open ports for all instances of anytype found using cli utilities lsof and grep
@ -255,16 +255,23 @@ func getOpenPorts() (map[string][]string, error) {
for _, port := range pidports {
var (
errDetectGateway, errDetectGrpcWeb error
v bool
serviceDetected bool
)
if v, errDetectGateway = isFileGateway(port); v {
gatewayPort = port
} else if v, errDetectGrpcWeb = isGrpcWebServer(port); v {
grpcWebPort = port
} else {
if grpcWebPort == "" {
if serviceDetected, errDetectGateway = isFileGateway(port); serviceDetected {
gatewayPort = port
}
}
// in case we already detected grpcweb port skip this
if !serviceDetected && grpcWebPort == "" {
if serviceDetected, errDetectGrpcWeb = isGrpcWebServer(port); serviceDetected {
grpcWebPort = port
}
}
if !serviceDetected {
// means port failed to detect either gateway or grpcweb
errs = append(errs, fmt.Errorf("port: %s; gateway: %v; grpcweb: %v", port, errDetectGateway, errDetectGrpcWeb))
}
}
if gatewayPort != "" && grpcWebPort != "" {
ports[pid] = []string{grpcWebPort, gatewayPort}