mirror of
				https://github.com/nadoo/glider.git
				synced 2025-11-04 15:52:38 +08:00 
			
		
		
		
	uottun: serve in goroutine
This commit is contained in:
		
							parent
							
								
									3812ac7b94
								
							
						
					
					
						commit
						c63881d9d7
					
				
							
								
								
									
										2
									
								
								ss.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ss.go
									
									
									
									
									
								
							@ -178,7 +178,7 @@ func (s *SS) ListenAndServeUDP() {
 | 
			
		||||
			nm.Store(raddr.String(), pc)
 | 
			
		||||
 | 
			
		||||
			go func() {
 | 
			
		||||
				timedCopy(c, raddr, pc, 1*time.Minute)
 | 
			
		||||
				timedCopy(c, raddr, pc, 2*time.Minute)
 | 
			
		||||
				pc.Close()
 | 
			
		||||
				nm.Delete(raddr.String())
 | 
			
		||||
			}()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								uottun.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								uottun.go
									
									
									
									
									
								
							@ -53,21 +53,23 @@ func (s *UoTTun) ListenAndServe() {
 | 
			
		||||
 | 
			
		||||
		rc.Write(buf[:n])
 | 
			
		||||
 | 
			
		||||
		go func() {
 | 
			
		||||
			// no remote forwarder, just a local udp forwarder
 | 
			
		||||
			if urc, ok := rc.(*net.UDPConn); ok {
 | 
			
		||||
			go func() {
 | 
			
		||||
				timedCopy(c, clientAddr, urc, 5*time.Minute)
 | 
			
		||||
				timedCopy(c, clientAddr, urc, 2*time.Minute)
 | 
			
		||||
				urc.Close()
 | 
			
		||||
			}()
 | 
			
		||||
		} else { // remote forwarder, udp over tcp
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// remote forwarder, udp over tcp
 | 
			
		||||
			resp, err := ioutil.ReadAll(rc)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				logf("error in ioutil.ReadAll: %s\n", err)
 | 
			
		||||
				continue
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			rc.Close()
 | 
			
		||||
			c.WriteTo(resp, clientAddr)
 | 
			
		||||
		}
 | 
			
		||||
		}()
 | 
			
		||||
 | 
			
		||||
		logf("proxy-uottun %s <-> %s", clientAddr, s.raddr)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user