Просмотр исходного кода

Improve code formatting for readability

- Add proper line breaks in struct field declarations
- Split multi-line function calls onto separate lines
- Expand defer cleanup statements for clarity
- Format PacketBufferOptions and NetworkHeaderParams properly
- Total lines increased slightly but much more readable

Co-authored-by: Fangliding <[email protected]>
copilot-swe-agent[bot] 5 месяцев назад
Родитель
Сommit
f4940d845e
1 измененных файлов с 38 добавлено и 9 удалено
  1. 38 9
      proxy/tun/handler.go

+ 38 - 9
proxy/tun/handler.go

@@ -101,13 +101,24 @@ func (t *Handler) HandleUDPPacket(id stack.TransportEndpointID, pkt *stack.Packe
 			ctx, cancel := context.WithCancel(t.ctx)
 			conn.cancel = cancel
 			defer func() {
-				cancel(); t.Lock(); delete(t.udpConns, src); t.Unlock()
-				common.Must(conn.done.Close()); common.Must(common.Close(conn.writer))
+				cancel()
+				t.Lock()
+				delete(t.udpConns, src)
+				t.Unlock()
+				common.Must(conn.done.Close())
+				common.Must(common.Close(conn.writer))
 			}()
 
-			inbound := &session.Inbound{Name: "tun", Source: src, User: &protocol.MemoryUser{Level: t.config.UserLevel}}
+			inbound := &session.Inbound{
+				Name:   "tun",
+				Source: src,
+				User:   &protocol.MemoryUser{Level: t.config.UserLevel},
+			}
 			ctx = session.ContextWithInbound(c.ContextWithID(ctx, session.NewID()), inbound)
-			link := &transport.Link{Reader: conn.reader, Writer: &udpWriter{stack: ipStack, src: dest, dest: src}}
+			link := &transport.Link{
+				Reader: conn.reader,
+				Writer: &udpWriter{stack: ipStack, src: dest, dest: src},
+			}
 			t.dispatcher.DispatchLink(ctx, dest, link)
 		}()
 	} else {
@@ -115,7 +126,9 @@ func (t *Handler) HandleUDPPacket(id stack.TransportEndpointID, pkt *stack.Packe
 		t.Unlock()
 	}
 
-	b := buf.New(); b.Write(data); b.UDP = &dest
+	b := buf.New()
+	b.Write(data)
+	b.UDP = &dest
 	conn.writer.WriteMultiBuffer(buf.MultiBuffer{b})
 }
 
@@ -136,18 +149,34 @@ func (w *udpWriter) WriteMultiBuffer(mb buf.MultiBuffer) error {
 			netProto = header.IPv6ProtocolNumber
 		}
 
-		route, err := w.stack.FindRoute(defaultNIC, tcpip.AddrFromSlice(w.src.Address.IP()), tcpip.AddrFromSlice(w.dest.Address.IP()), netProto, false)
+		route, err := w.stack.FindRoute(
+			defaultNIC,
+			tcpip.AddrFromSlice(w.src.Address.IP()),
+			tcpip.AddrFromSlice(w.dest.Address.IP()),
+			netProto,
+			false,
+		)
 		if err != nil {
 			b.Release()
 			continue
 		}
 
-		pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ReserveHeaderBytes: header.UDPMinimumSize, Payload: buffer.MakeWithData(b.Bytes())})
+		pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{
+			ReserveHeaderBytes: header.UDPMinimumSize,
+			Payload:            buffer.MakeWithData(b.Bytes()),
+		})
 		udp := header.UDP(pkt.TransportHeader().Push(header.UDPMinimumSize))
-		udp.Encode(&header.UDPFields{SrcPort: uint16(w.src.Port), DstPort: uint16(w.dest.Port), Length: uint16(pkt.Size())})
+		udp.Encode(&header.UDPFields{
+			SrcPort: uint16(w.src.Port),
+			DstPort: uint16(w.dest.Port),
+			Length:  uint16(pkt.Size()),
+		})
 		xsum := route.PseudoHeaderChecksum(header.UDPProtocolNumber, uint16(pkt.Size()))
 		udp.SetChecksum(^udp.CalculateChecksum(checksum.Checksum(b.Bytes(), xsum)))
-		route.WritePacket(stack.NetworkHeaderParams{Protocol: header.UDPProtocolNumber, TTL: 64}, pkt)
+		route.WritePacket(stack.NetworkHeaderParams{
+			Protocol: header.UDPProtocolNumber,
+			TTL:      64,
+		}, pkt)
 		pkt.DecRef()
 		route.Release()
 		b.Release()