From 04980b7e5fe6b2baf7ef402ee0bd8f76f940fada Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 28 Aug 2023 22:10:33 +0200 Subject: [PATCH] Fixed uid for sni --- app/src/main/jni/netguard/ip.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/app/src/main/jni/netguard/ip.c b/app/src/main/jni/netguard/ip.c index aafaf11b..3d4a2bc8 100644 --- a/app/src/main/jni/netguard/ip.c +++ b/app/src/main/jni/netguard/ip.c @@ -281,17 +281,6 @@ void handle_ip(const struct arguments *args, } } - // Get uid - jint uid = -1; - if (protocol == IPPROTO_ICMP || protocol == IPPROTO_ICMPV6 || - (protocol == IPPROTO_UDP && !has_udp_session(args, pkt, payload)) || - (protocol == IPPROTO_TCP && syn)) { - if (args->ctx->sdk <= 28) // Android 9 Pie - uid = get_uid(version, protocol, saddr, sport, daddr, dport); - else - uid = get_uid_q(args, version, protocol, source, sport, dest, dport); - } - // Get server name char server_name[TLS_SNI_LENGTH + 1]; *server_name = 0; @@ -307,6 +296,20 @@ void handle_ip(const struct arguments *args, } } + if (*server_name != 0) + strcpy(data, "sni"); + + // Get uid + jint uid = -1; + if (protocol == IPPROTO_ICMP || protocol == IPPROTO_ICMPV6 || + (protocol == IPPROTO_UDP && !has_udp_session(args, pkt, payload)) || + (protocol == IPPROTO_TCP && (syn || *server_name != 0))) { + if (args->ctx->sdk <= 28) // Android 9 Pie + uid = get_uid(version, protocol, saddr, sport, daddr, dport); + else + uid = get_uid_q(args, version, protocol, source, sport, dest, dport); + } + log_android(ANDROID_LOG_DEBUG, "Packet v%d %s/%u > %s/%u proto %d flags %s uid %d sni %s", version, source, sport, dest, dport, protocol, flags, uid, server_name);