Fix wrong netId handle in ResNSendHandler

This error would cause a query with bypass private network bit only can go
on default network.
(Basically, we could treat this problem as using non-exists netId
 to getNetworkContext for dns part.)
Also could cause wrong app_mark if input netId == NETID_UNSET.

Error case:
1. wrong app_netId/mark case:
input netid = NETID_UNSET | 0x80000000

actual:
netid = 0x80000000
app_mark = 0xF0000

expect: (assume getNetworkForConnectLocked(uid) = 30 )
netid = 30
app_mark = 0xC001E

2. wrong dns_netId/mark case:
input netid = any | 0x80000000

actual:
check fail in checkUserNetworkAccessLocked(), so return defaultNetwork as
netNetId.
(assume defaultNetId = 30)
dns_netid = 30
dns_mark = 0xE001E

expect: (assume no vpn, defaultNetId = 30)
(If input netId == NETID_UNSET)
dns_netid = 30
dns_mark = 0xF001E
(If input netId != NETID_UNSET, assume netId = 31 and we have a network 31)
dns_netid = 31
dns_mark = 0xF001F

Test will be added in aosp/695922 after we could check if netId is valid
from NetworkController.

Bug: 132670008
Test: system/netd/tests/runtests.sh

Merged-In: I0b315dfe0644b3c3a44e4e79ba1855ccd0442c3c
(cherry picked from commit 25215e90a42b18c449f41a7d64ca3ef06ed7830f)

Change-Id: I7b7d4cf24c1c4ce461291fa58c68cc1478b0b951
1 file changed