diff options
Diffstat (limited to 'g10/parse-packet.c')
-rw-r--r-- | g10/parse-packet.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 26ca0381f..28f9016b9 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -403,11 +403,18 @@ parse (IOBUF inp, PACKET * pkt, int onlykeypkts, off_t * retpos, int hdrlen; int new_ctb = 0, partial = 0; int with_uid = (onlykeypkts == 2); + off_t pos; *skip = 0; assert (!pkt->pkt.generic); - if (retpos) - *retpos = iobuf_tell (inp); + if (retpos || list_mode) + { + pos = iobuf_tell (inp); + if (retpos) + *retpos = pos; + } + else + pos = 0; /* (silence compiler warning) */ if ((ctb = iobuf_get (inp)) == -1) { @@ -559,6 +566,12 @@ parse (IOBUF inp, PACKET * pkt, int onlykeypkts, off_t * retpos, #endif } + if (list_mode) + es_fprintf (listfp, "# off=%lu ctb=%02x tag=%d hlen=%d plen=%lu%s%s\n", + (unsigned long)pos, ctb, pkttype, hdrlen, pktlen, + partial? " partial":"", + new_ctb? " new-ctb":""); + pkt->pkttype = pkttype; rc = G10ERR_UNKNOWN_PACKET; /* default error */ switch (pkttype) |