mirror of
https://github.com/SunBK201/UA3F.git
synced 2025-12-19 02:08:32 +00:00
fix: accept empty tcp payload in first check
This commit is contained in:
parent
f697c9f67f
commit
83235a79ff
@ -117,11 +117,6 @@ func (r *Rewriter) RewritePacketUserAgent(payload []byte, srcAddr, dstAddr strin
|
|||||||
|
|
||||||
// RewriteTCP rewrites the TCP packet's User-Agent if applicable
|
// RewriteTCP rewrites the TCP packet's User-Agent if applicable
|
||||||
func (r *Rewriter) RewriteTCP(tcp *layers.TCP, srcAddr, dstAddr string) *RewriteResult {
|
func (r *Rewriter) RewriteTCP(tcp *layers.TCP, srcAddr, dstAddr string) *RewriteResult {
|
||||||
if len(tcp.Payload) == 0 {
|
|
||||||
log.LogDebugWithAddr(srcAddr, dstAddr, "TCP payload is empty")
|
|
||||||
return &RewriteResult{Modified: false}
|
|
||||||
}
|
|
||||||
|
|
||||||
hasUA, modified := r.RewritePacketUserAgent(tcp.Payload, srcAddr, dstAddr)
|
hasUA, modified := r.RewritePacketUserAgent(tcp.Payload, srcAddr, dstAddr)
|
||||||
return &RewriteResult{
|
return &RewriteResult{
|
||||||
Modified: modified,
|
Modified: modified,
|
||||||
|
|||||||
@ -73,7 +73,7 @@ func (s *Server) Close() (err error) {
|
|||||||
|
|
||||||
// handlePacket processes a single NFQUEUE packet
|
// handlePacket processes a single NFQUEUE packet
|
||||||
func (s *Server) handlePacket(packet *netfilter.Packet) {
|
func (s *Server) handlePacket(packet *netfilter.Packet) {
|
||||||
if s.Cfg.RewriteMode == config.RewriteModeDirect || packet.TCP == nil {
|
if s.Cfg.RewriteMode == config.RewriteModeDirect || packet.TCP == nil || len(packet.TCP.Payload) == 0 {
|
||||||
_ = s.nfqServer.Nf.SetVerdict(*packet.A.PacketID, nfq.NfAccept)
|
_ = s.nfqServer.Nf.SetVerdict(*packet.A.PacketID, nfq.NfAccept)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -154,6 +154,7 @@ func (s *Server) getNextMark(packet *netfilter.Packet, result *rewrite.RewriteRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
if mark == s.SniffCtMarkUpper {
|
if mark == s.SniffCtMarkUpper {
|
||||||
|
slog.Debug("Connmark reached upper limit, marking as NotHTTP", slog.String("SrcAddr", packet.SrcAddr), slog.String("DstAddr", packet.DstAddr))
|
||||||
s.Cache.Add(packet.DstAddr, struct{}{})
|
s.Cache.Add(packet.DstAddr, struct{}{})
|
||||||
return true, s.NotHTTPCtMark
|
return true, s.NotHTTPCtMark
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user