mirror of
https://github.com/M66B/NetGuard.git
synced 2025-02-26 16:13:01 +00:00
Native less uid lookups
This commit is contained in:
parent
65a26a7bc1
commit
113c827695
1 changed files with 11 additions and 10 deletions
|
@ -634,20 +634,21 @@ void handle_ip(const struct arguments *args, const uint8_t *buffer, const uint16
|
||||||
|
|
||||||
// Get uid
|
// Get uid
|
||||||
jint uid = -1;
|
jint uid = -1;
|
||||||
if ((protocol == IPPROTO_TCP && version == 4) || protocol == IPPROTO_UDP) {
|
if ((protocol == IPPROTO_TCP && (!args->filter || syn)) || protocol == IPPROTO_UDP) {
|
||||||
log_android(ANDROID_LOG_INFO, "get uid %s/%u syn %d", dest, dport, syn);
|
log_android(ANDROID_LOG_INFO, "get uid %s/%u syn %d", dest, dport, syn);
|
||||||
int tries = 0;
|
int tries = 0;
|
||||||
while (uid < 0 && tries++ < UID_MAXTRY) {
|
while (uid < 0 && tries++ < UID_MAXTRY) {
|
||||||
// Most likely in IPv6 table
|
// Check IPv6 table first
|
||||||
int8_t saddr128[16];
|
if (version == 4) {
|
||||||
memset(saddr128, 0, 10);
|
int8_t saddr128[16];
|
||||||
saddr128[10] = 0xFF;
|
memset(saddr128, 0, 10);
|
||||||
saddr128[11] = 0xFF;
|
saddr128[10] = 0xFF;
|
||||||
memcpy(saddr128 + 12, saddr, 4);
|
saddr128[11] = 0xFF;
|
||||||
uid = get_uid(protocol, 6, saddr128, sport, tries == UID_MAXTRY);
|
memcpy(saddr128 + 12, saddr, 4);
|
||||||
|
uid = get_uid(protocol, 6, saddr128, sport, tries == UID_MAXTRY);
|
||||||
|
}
|
||||||
|
|
||||||
// Fallback to IPv4 table
|
if (uid < 0)
|
||||||
if (uid < 0 && version == 4)
|
|
||||||
uid = get_uid(protocol, version, saddr, sport, tries == UID_MAXTRY);
|
uid = get_uid(protocol, version, saddr, sport, tries == UID_MAXTRY);
|
||||||
|
|
||||||
// Retry delay
|
// Retry delay
|
||||||
|
|
Loading…
Reference in a new issue