summaryrefslogtreecommitdiff
path: root/pjlib-util/src/pjlib-util/pcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjlib-util/src/pjlib-util/pcap.c')
-rw-r--r--pjlib-util/src/pjlib-util/pcap.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/pjlib-util/src/pjlib-util/pcap.c b/pjlib-util/src/pjlib-util/pcap.c
index e0a86fa8..bf45b714 100644
--- a/pjlib-util/src/pjlib-util/pcap.c
+++ b/pjlib-util/src/pjlib-util/pcap.c
@@ -368,8 +368,20 @@ PJ_DEF(pj_status_t) pj_pcap_read_udp(pj_pcap_file *file,
*udp_payload_size = sz;
+ // Some layers may have trailer, e.g: link eth2.
/* Check that we've read all the packets */
- PJ_ASSERT_RETURN(sz_read == rec_incl, PJ_EBUG);
+ //PJ_ASSERT_RETURN(sz_read == rec_incl, PJ_EBUG);
+
+ /* Skip trailer */
+ while (sz_read < rec_incl) {
+ sz = rec_incl - sz_read;
+ status = read_file(file, &tmp.eth, &sz);
+ if (status != PJ_SUCCESS) {
+ TRACE_((file->obj_name, "Error reading trailer: %d", status));
+ return status;
+ }
+ sz_read += sz;
+ }
return PJ_SUCCESS;
}