mirror of https://github.com/XTLS/Xray-core
				
				
				
			Chore: Three small fixes (#4922)
							parent
							
								
									4433641e30
								
							
						
					
					
						commit
						4e826abebf
					
				|  | @ -161,6 +161,7 @@ type udpConn struct { | |||
| 	uplink           stats.Counter | ||||
| 	downlink         stats.Counter | ||||
| 	inactive         bool | ||||
| 	cancel           context.CancelFunc | ||||
| } | ||||
| 
 | ||||
| func (c *udpConn) setInactive() { | ||||
|  | @ -203,6 +204,9 @@ func (c *udpConn) Write(buf []byte) (int, error) { | |||
| } | ||||
| 
 | ||||
| func (c *udpConn) Close() error { | ||||
| 	if c.cancel != nil { | ||||
| 		c.cancel() | ||||
| 	} | ||||
| 	common.Must(c.done.Close()) | ||||
| 	common.Must(common.Close(c.writer)) | ||||
| 	return nil | ||||
|  | @ -259,6 +263,7 @@ func (w *udpWorker) getConnection(id connID) (*udpConn, bool) { | |||
| 	defer w.Unlock() | ||||
| 
 | ||||
| 	if conn, found := w.activeConn[id]; found && !conn.done.Done() { | ||||
| 		conn.updateActivity() | ||||
| 		return conn, true | ||||
| 	} | ||||
| 
 | ||||
|  | @ -306,7 +311,8 @@ func (w *udpWorker) callback(b *buf.Buffer, source net.Destination, originalDest | |||
| 		common.Must(w.checker.Start()) | ||||
| 
 | ||||
| 		go func() { | ||||
| 			ctx := w.ctx | ||||
| 			ctx, cancel := context.WithCancel(w.ctx) | ||||
| 			conn.cancel = cancel | ||||
| 			sid := session.NewID() | ||||
| 			ctx = c.ContextWithID(ctx, sid) | ||||
| 
 | ||||
|  |  | |||
|  | @ -128,6 +128,7 @@ func (s *Server) handleUDPPayload(ctx context.Context, conn stat.Connection, dis | |||
| 
 | ||||
| 		conn.Write(data.Bytes()) | ||||
| 	}) | ||||
| 	defer udpServer.RemoveRay() | ||||
| 
 | ||||
| 	inbound := session.InboundFromContext(ctx) | ||||
| 	var dest *net.Destination | ||||
|  |  | |||
|  | @ -245,13 +245,15 @@ func (s *Server) handleUDPPayload(ctx context.Context, conn stat.Connection, dis | |||
| 		udpMessage, err := EncodeUDPPacket(request, payload.Bytes()) | ||||
| 		payload.Release() | ||||
| 
 | ||||
| 		defer udpMessage.Release() | ||||
| 		if err != nil { | ||||
| 			errors.LogWarningInner(ctx, err, "failed to write UDP response") | ||||
| 			return | ||||
| 		} | ||||
| 		defer udpMessage.Release() | ||||
| 
 | ||||
| 		conn.Write(udpMessage.Bytes()) | ||||
| 	}) | ||||
| 	defer udpServer.RemoveRay() | ||||
| 
 | ||||
| 	inbound := session.InboundFromContext(ctx) | ||||
| 	if inbound != nil && inbound.Source.IsValid() { | ||||
|  |  | |||
|  | @ -259,6 +259,7 @@ func (s *Server) handleUDPPayload(ctx context.Context, clientReader *PacketReade | |||
| 			errors.LogWarningInner(ctx, err, "failed to write response") | ||||
| 		} | ||||
| 	}) | ||||
| 	defer udpServer.RemoveRay() | ||||
| 
 | ||||
| 	inbound := session.InboundFromContext(ctx) | ||||
| 	user := inbound.User | ||||
|  |  | |||
|  | @ -206,7 +206,10 @@ func (h *Handler) Process(ctx context.Context, network net.Network, connection s | |||
| 
 | ||||
| 	first := buf.FromBytes(make([]byte, buf.Size)) | ||||
| 	first.Clear() | ||||
| 	firstLen, _ := first.ReadFrom(connection) | ||||
| 	firstLen, errR := first.ReadFrom(connection) | ||||
| 	if errR != nil { | ||||
| 		return errR | ||||
| 	} | ||||
| 	errors.LogInfo(ctx, "firstLen = ", firstLen) | ||||
| 
 | ||||
| 	reader := &buf.BufferedReader{ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 patterniha
						patterniha