+ switch (ret) {
+
+ case PCAP_ERROR_NO_SUCH_DEVICE:
+ case PCAP_ERROR_IFACE_NOT_UP:
+ /*
+ * We expect these two errors - they're the
+ * reason we try to open the device.
+ *
+ * PCAP_ERROR_NO_SUCH_DEVICE typically means
+ * "there's no such device *known to the
+ * OS's capture mechanism*", so, even though
+ * it might be a valid network interface, you
+ * can't capture on it (e.g., the loopback
+ * device in Solaris up to Solaris 10, or
+ * the vmnet devices in OS X with VMware
+ * Fusion). We don't include those devices
+ * in our list of devices, as there's no
+ * point in doing so - they're not available
+ * for capture.
+ *
+ * PCAP_ERROR_IFACE_NOT_UP means that the
+ * OS's capture mechanism doesn't work on
+ * interfaces not marked as up; some capture
+ * mechanisms *do* support that, so we no
+ * longer reject those interfaces out of hand,
+ * but we *do* want to reject them if they
+ * can't be opened for capture.
+ */
+ *curdev_ret = NULL;
+ return (0);
+ }