+ if (optarg[0] == '0' && optarg[1] == 0)
+ error("Invalid adapter index");
+
+ /*
+ * If the argument is a number, treat it as
+ * an index into the list of adapters, as
+ * printed by "tcpdump -D".
+ *
+ * This should be OK on UNIX systems, as interfaces
+ * shouldn't have names that begin with digits.
+ * It can be useful on Windows, where more than
+ * one interface can have the same name.
+ */
+ if ((devnum = atoi(optarg)) != 0) {
+ if (devnum < 0)
+ error("Invalid adapter index");
+
+ if (pcap_findalldevs(&devpointer, ebuf) < 0)
+ error("%s", ebuf);
+ else {
+ for (i = 0; i < devnum-1; i++){
+ devpointer = devpointer->next;
+ if (devpointer == NULL)
+ error("Invalid adapter index");
+ }
+ }
+ device = devpointer->name;
+ break;
+ }