static void show_tstamp_types_and_exit(const char *device, pcap_t *pd) { int n_tstamp_types; int *tstamp_types = 0; const char *tstamp_type_name; int i; n_tstamp_types = pcap_list_tstamp_types(pd, &tstamp_types); if (n_tstamp_types < 0) error("%s", pcap_geterr(pd)); if (n_tstamp_types == 0) { fprintf(stderr, "Time stamp type cannot be set for %s\n", device); exit(0); } fprintf(stderr, "Time stamp types for %s (use option -j to set):\n", device); for (i = 0; i < n_tstamp_types; i++) { tstamp_type_name = pcap_tstamp_type_val_to_name(tstamp_types[i]); if (tstamp_type_name != NULL) { (void) fprintf(stderr, " %s (%s)\n", tstamp_type_name, pcap_tstamp_type_val_to_description(tstamp_types[i])); } else { (void) fprintf(stderr, " %d\n", tstamp_types[i]); } } pcap_free_tstamp_types(tstamp_types); exit(0); }
static void print_timestamp_types(const char *dev) { int i, ntstypes; char junk[PCAP_ERRBUF_SIZE]; int *tstypes; pcap_t *handle; handle = pcap_create(dev, junk); if(!handle) return; ntstypes = pcap_list_tstamp_types(handle, &tstypes); if(ntstypes > 0) printf(" Timestamp types:%s", options.verbose > 1 ? "\n" : " "); if(options.verbose > 1) for(i = 0; i < ntstypes; ++i) printf(" %-20s %s\n", pcap_tstamp_type_val_to_name(tstypes[i]), pcap_tstamp_type_val_to_description(tstypes[i])); else for(i = 0; i < ntstypes; ++i) printf("%s%s", pcap_tstamp_type_val_to_name(tstypes[i]) , i + 1 > ntstypes ? ", " : "\n"); pcap_free_tstamp_types(tstypes); pcap_close(handle); }
/* * Class: disy_jnipcap_Pcap * Method: tstampTypeValToName * Signature: (I)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_disy_jnipcap_Pcap_tstampTypeValToName (JNIEnv *env, jclass jcls, jint jval) { const char *name = pcap_tstamp_type_val_to_name((int)jval); return (*env)->NewStringUTF (env, name); }