Browse Source

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

Gerhard Tan 2 years ago
parent
commit
b1b8d9a82b
1 changed files with 7 additions and 6 deletions
  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
 }