summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2023-06-01 23:50:02 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-06-01 23:50:02 +0000
commit92531bb82a228f70b3d3386d9bde32ec8ce606c8 (patch)
treefe932d0778e349dd8b4c50cff9a176f9069ce6ee
parent2e34c7985475a35a003ba6d376f014123db26549 (diff)
parent8fe16b0c52ff8edc9346a3951ff90787185b7fc8 (diff)
downloadandroid-clat-92531bb82a228f70b3d3386d9bde32ec8ce606c8.tar.gz
add more logging for missing tpacket_auxdata cmsg am: 8fe16b0c52
Original change: https://android-review.googlesource.com/c/platform/external/android-clat/+/2610463 Change-Id: If2c119cd5b53e530cf33c75fd61d8ccf10f58362 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--clatd.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/clatd.c b/clatd.c
index 9a7a45a..bac8b1d 100644
--- a/clatd.c
+++ b/clatd.c
@@ -88,18 +88,29 @@ void process_packet_6_to_4(struct tun_data *tunnel) {
return;
}
+ bool ok = false;
__u32 tp_status = 0;
__u16 tp_net = 0;
for (struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL; cmsg = CMSG_NXTHDR(&msgh,cmsg)) {
if (cmsg->cmsg_level == SOL_PACKET && cmsg->cmsg_type == PACKET_AUXDATA) {
struct tpacket_auxdata *aux = (struct tpacket_auxdata *)CMSG_DATA(cmsg);
+ ok = true;
tp_status = aux->tp_status;
tp_net = aux->tp_net;
break;
}
}
+ if (!ok) {
+ // theoretically this should not happen...
+ static bool logged = false;
+ if (!logged) {
+ logmsg(ANDROID_LOG_ERROR, "%s: failed to fetch tpacket_auxdata cmsg", __func__);
+ logged = true;
+ }
+ }
+
const int payload_offset = offsetof(typeof(buf), payload);
if (readlen < payload_offset + tp_net) {
logmsg(ANDROID_LOG_WARN, "%s: ignoring %zd byte pkt shorter than %d+%u L2 header",