diff options
author | Maciej Żenczykowski <maze@google.com> | 2023-06-01 23:50:02 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-06-01 23:50:02 +0000 |
commit | 92531bb82a228f70b3d3386d9bde32ec8ce606c8 (patch) | |
tree | fe932d0778e349dd8b4c50cff9a176f9069ce6ee | |
parent | 2e34c7985475a35a003ba6d376f014123db26549 (diff) | |
parent | 8fe16b0c52ff8edc9346a3951ff90787185b7fc8 (diff) | |
download | android-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.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -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", |