if (cfile.wth != frame_tvb->wth)
return FALSE;
+ /* XXX, frame_tvb->tvb.length + frame_tvb->offset might be not real captured packet length
+ * can it cause some problems for wiretap readers?
+ */
if (!wtap_seek_read(frame_tvb->wth, frame_tvb->file_off, phdr, buf, frame_tvb->tvb.length + frame_tvb->offset, &err, &err_info)) {
switch (err) {
case WTAP_ERR_UNSUPPORTED_ENCAP:
frame_tvb = (struct tvb_frame *) tvb;
- /* XXX, how to handle fd->file_off == -1 (edited packet) ?? */
- /* don't care, reassemble code was doing whole copy of data, so it'll work the same */
-
/* XXX, wtap_can_seek() */
- if (cfile.wth && cfile.wth->random_fh) {
+ if (cfile.wth && cfile.wth->random_fh
+#ifdef WANT_PACKET_EDITOR
+ && fd->file_off != -1 /* generic clone for modified packets */
+#endif
+ ) {
frame_tvb->wth = cfile.wth;
frame_tvb->file_off = fd->file_off;
frame_tvb->offset = 0;