@@ -13,20 +13,38 @@ pub fn start_all_servers(ctx: Arc<ClientContext>) {
1313 // Stop existing servers and tasks if they are running
1414 stop_server_tasks ( ) ;
1515
16- // Create server tasks
16+ // Spawn redirector server
1717 let redirector = redirector:: start_redirector_server ( ) ;
18- let blaze = blaze:: start_blaze_server ( ctx. clone ( ) ) ;
19- let http = http:: start_http_server ( ctx. clone ( ) ) ;
20- let tunnel = udp_tunnel:: start_tunnel_server_v2 ( ctx. clone ( ) ) ;
21- let qos = qos:: start_qos_server ( ) ;
22- let telemetry = telemetry:: start_telemetry_server ( ctx) ;
23-
24- // Spawn server tasks
2518 run_server ( redirector, "redirector" ) ;
19+
20+ // Spawn blaze server
21+ let blaze = blaze:: start_blaze_server ( ctx. clone ( ) ) ;
2622 run_server ( blaze, "blaze" ) ;
23+
24+ // Spawn http proxy server
25+ let http = http:: start_http_server ( ctx. clone ( ) ) ;
2726 run_server ( http, "http" ) ;
28- run_server ( tunnel, "tunnel" ) ;
27+
28+ // Spawn QoS server
29+ let qos = qos:: start_qos_server ( ) ;
2930 run_server ( qos, "qos" ) ;
31+
32+ // Spawn tunnel server
33+ match ctx. tunnel_port {
34+ // When UDP tunnel server port is available use the faster UDP tunnel server
35+ Some ( tunnel_port) => {
36+ let tunnel = udp_tunnel:: start_udp_tunnel_server ( ctx. clone ( ) , tunnel_port) ;
37+ run_server ( tunnel, "tunnel" ) ;
38+ }
39+ // When unavailable fallback to the HTTP upgrade tunnel
40+ None => {
41+ let tunnel = tunnel:: start_tunnel_server ( ctx. clone ( ) ) ;
42+ run_server ( tunnel, "tunnel" ) ;
43+ }
44+ } ;
45+
46+ // Spawn telemetry server
47+ let telemetry = telemetry:: start_telemetry_server ( ctx) ;
3048 run_server ( telemetry, "telemetry" ) ;
3149}
3250
0 commit comments