+ ndo->ndo_protocol = "";
+ if (setjmp(ndo->ndo_truncated) == 0) {
+ /* Print the packet. */
+ hdrlen = (ndo->ndo_if_printer)(ndo, h, sp);
+ } else {
+ /* A printer quit because the packet was truncated; report it */
+ ND_PRINT(" [|%s]", ndo->ndo_protocol);
+ }
+
+ /*
+ * Free all pushed buffers; if we got here by a printer quitting,
+ * we need to release anything that didn't get released because
+ * we longjmped out of the code before it popped a buffer.
+ */
+ nd_pop_all_buffers(ndo);