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
							
								
									38de018d91
								
							
						
					
					
						commit
						47820cccba
					
				
							
								
								
									
										2
									
								
								ss.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ss.go
									
									
									
									
									
								
							@ -178,7 +178,7 @@ func (s *SS) ListenAndServeUDP() {
 | 
				
			|||||||
			nm.Store(raddr.String(), pc)
 | 
								nm.Store(raddr.String(), pc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			go func() {
 | 
								go func() {
 | 
				
			||||||
				timedCopy(c, raddr, pc, 1*time.Minute)
 | 
									timedCopy(c, raddr, pc, 2*time.Minute)
 | 
				
			||||||
				pc.Close()
 | 
									pc.Close()
 | 
				
			||||||
				nm.Delete(raddr.String())
 | 
									nm.Delete(raddr.String())
 | 
				
			||||||
			}()
 | 
								}()
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								uottun.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								uottun.go
									
									
									
									
									
								
							@ -53,21 +53,23 @@ func (s *UoTTun) ListenAndServe() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		rc.Write(buf[:n])
 | 
							rc.Write(buf[:n])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							go func() {
 | 
				
			||||||
			// no remote forwarder, just a local udp forwarder
 | 
								// no remote forwarder, just a local udp forwarder
 | 
				
			||||||
			if urc, ok := rc.(*net.UDPConn); ok {
 | 
								if urc, ok := rc.(*net.UDPConn); ok {
 | 
				
			||||||
			go func() {
 | 
									timedCopy(c, clientAddr, urc, 2*time.Minute)
 | 
				
			||||||
				timedCopy(c, clientAddr, urc, 5*time.Minute)
 | 
					 | 
				
			||||||
				urc.Close()
 | 
									urc.Close()
 | 
				
			||||||
			}()
 | 
									return
 | 
				
			||||||
		} else { // remote forwarder, udp over tcp
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// remote forwarder, udp over tcp
 | 
				
			||||||
			resp, err := ioutil.ReadAll(rc)
 | 
								resp, err := ioutil.ReadAll(rc)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				logf("error in ioutil.ReadAll: %s\n", err)
 | 
									logf("error in ioutil.ReadAll: %s\n", err)
 | 
				
			||||||
				continue
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			rc.Close()
 | 
								rc.Close()
 | 
				
			||||||
			c.WriteTo(resp, clientAddr)
 | 
								c.WriteTo(resp, clientAddr)
 | 
				
			||||||
		}
 | 
							}()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		logf("proxy-uottun %s <-> %s", clientAddr, s.raddr)
 | 
							logf("proxy-uottun %s <-> %s", clientAddr, s.raddr)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user