Sfoglia il codice sorgente

frpc: do a graceful close for quic protocol at exit (#3282)

Gerhard Tan 2 anni fa
parent
commit
b1b8d9a82b
1 ha cambiato i file con 7 aggiunte e 6 eliminazioni
  1. 7 6
      cmd/frpc/sub/root.go

+ 7 - 6
cmd/frpc/sub/root.go

@@ -216,15 +216,16 @@ func startService(
 		return
 	}
 
-	kcpDoneCh := make(chan struct{})
-	// Capture the exit signal if we use kcp.
-	if cfg.Protocol == "kcp" {
-		go handleSignal(svr, kcpDoneCh)
+	closedDoneCh := make(chan struct{})
+	shouldGracefulClose := cfg.Protocol == "kcp" || cfg.Protocol == "quic"
+	// Capture the exit signal if we use kcp or quic.
+	if shouldGracefulClose {
+		go handleSignal(svr, closedDoneCh)
 	}
 
 	err = svr.Run()
-	if err == nil && cfg.Protocol == "kcp" {
-		<-kcpDoneCh
+	if err == nil && shouldGracefulClose {
+		<-closedDoneCh
 	}
 	return
 }