Method: Capp#datalinks
- Defined in:
- ext/capp/capp.c
#datalinks ⇒ Object
Returns the supported datalinks for this capture instance:
p Capp.live.datalinks
#=> ["EN10MB", "PPI", "IEEE802_11_RADIO", "IEEE802_11",
"IEEE802_11_RADIO_AVS", "RAW"]
These can be used to change the datalink used to capture packets by using #datalink=
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 |
# File 'ext/capp/capp.c', line 435
static VALUE
capp_datalinks(VALUE self)
{
int *dlt_buf;
pcap_t *handle;
VALUE datalink_ary;
int i, datalink_count;
GetCapp(self, handle);
datalink_count = pcap_list_datalinks(handle, &dlt_buf);
if (datalink_count == -1)
rb_raise(eCappError, "%s", pcap_geterr(handle));
datalink_ary = rb_ary_new2(datalink_count);
for (i = 0; i < datalink_count; i++) {
const char *datalink_name_cstr = pcap_datalink_val_to_name(dlt_buf[i]);
VALUE datalink_name = rb_usascii_str_new_cstr(datalink_name_cstr);
rb_ary_push(datalink_ary, datalink_name);
}
pcap_free_datalinks(dlt_buf);
return datalink_ary;
}
|