extern void sunatm_if_print IF_PRINTER_ARGS;
extern void symantec_if_print IF_PRINTER_ARGS;
extern u_int token_if_print IF_PRINTER_ARGS;
+extern void unsupported_if_print IF_PRINTER_ARGS;
extern void usb_linux_48_byte_if_print IF_PRINTER_ARGS;
extern void usb_linux_64_byte_if_print IF_PRINTER_ARGS;
extern u_int vsock_if_print IF_PRINTER_ARGS;
--- /dev/null
+/*
+ * Copyright (c) 2020 The TCPDUMP project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that: (1) source code
+ * distributions retain the above copyright notice and this paragraph
+ * in its entirety, and (2) distributions including binary code include
+ * the above copyright notice and this paragraph in its entirety in
+ * the documentation or other materials provided with the distribution.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND
+ * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
+ * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE.
+ */
+
+/* \summary: unsupported link-layer protocols printer */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "netdissect-stdinc.h"
+
+#include "netdissect.h"
+
+void
+unsupported_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h,
+ const u_char *p)
+{
+ ndo->ndo_protocol = "unsupported";
+ nd_print_protocol_caps(ndo);
+ hex_and_ascii_print(ndo, "\n\t", p, h->caplen);
+}
if_printer_t
get_if_printer(netdissect_options *ndo, int type)
{
- const char *dltname;
if_printer_t printer;
printer = lookup_printer(ndo, type);
- if (printer.printer == NULL) {
- dltname = pcap_datalink_val_to_name(type);
- if (dltname != NULL)
- (*ndo->ndo_error)(ndo, S_ERR_ND_NO_PRINTER,
- "packet printing is not supported for link type %s: use -w",
- dltname);
- else
- (*ndo->ndo_error)(ndo, S_ERR_ND_NO_PRINTER,
- "packet printing is not supported for link type %d: use -w", type);
- }
+ if (printer.printer == NULL)
+ printer.void_printer = unsupported_if_print;
return printer;
}