ddn.lib.pcap.api

Dynamic loader and API vtable for libpcap.

This module provides a way to load libpcap symbols at runtime and access them through a vtable. It also supports static linking via loadStatic.

Authors

Dejan Lekić

License

BSD-3-Clause

Module Initializers 1

shared static this()

Types 1

structPcapApi

Vtable containing pointers to libpcap functions.

Every wrapper should route calls through lib.* instead of calling _native functions directly, so that the dynamic-loading path works consistently.

Fields
int function(u_int, char *) pcap_init
const(char) * function() pcap_lib_version
char * function(char *) pcap_lookupdev
pcap_t * function(const(char) *, int, int, int, char *) pcap_open_live
pcap_t * function(int, int) pcap_open_dead
pcap_t * function(int, int, u_int) pcap_open_dead_with_tstamp_precision
pcap_t * function(const(char) *, char *) pcap_open_offline
pcap_t * function(const(char) *, u_int, char *) pcap_open_offline_with_tstamp_precision
pcap_t * function(FILE *, char *) pcap_fopen_offline
pcap_t * function(FILE *, u_int, char *) pcap_fopen_offline_with_tstamp_precision
void function(pcap_t *) pcap_close
FILE * function(pcap_t *) pcap_file
int function(pcap_t *) pcap_fileno
int function(pcap_t *, int, pcap_handler, u_char *) pcap_loop
int function(pcap_t *, int, pcap_handler, u_char *) pcap_dispatch
const(ubyte) * function(pcap_t *, pcap_pkthdr *) pcap_next
int function(pcap_t *, pcap_pkthdr * *, const(ubyte) * *) pcap_next_ex
void function(pcap_t *) pcap_breakloop
int function(pcap_t *) pcap_datalink
int function(pcap_t *) pcap_datalink_ext
int function(pcap_t *, int) pcap_set_datalink
int function(pcap_t *, int * *) pcap_list_datalinks
void function(int *) pcap_free_datalinks
int function(pcap_t *) pcap_snapshot
int function(pcap_t *, pcap_stat *) pcap_stats
int function(pcap_t *) pcap_is_swapped
int function(pcap_t *) pcap_major_version
int function(pcap_t *) pcap_minor_version
int function(pcap_t *) pcap_get_tstamp_precision
int function(pcap_t *) pcap_activate
int function(pcap_t *) pcap_bufsize
int function(pcap_t *) pcap_can_set_rfmon
int function(pcap_t *, int) pcap_set_snaplen
int function(pcap_t *, int) pcap_set_promisc
int function(pcap_t *, int) pcap_set_rfmon
int function(pcap_t *, int) pcap_set_timeout
int function(pcap_t *, int) pcap_set_buffer_size
int function(pcap_t *, int) pcap_set_tstamp_type
int function(pcap_t *, int) pcap_set_immediate_mode
int function(pcap_t *, int) pcap_set_tstamp_precision
int function(pcap_t *, int) pcap_setdirection
int function(pcap_t *, int) pcap_set_protocol_linux
pcap_t * function(const(char) *, char *) pcap_create
int function(pcap_t *, char *) pcap_getnonblock
int function(pcap_t *, int, char *) pcap_setnonblock
int function(pcap_t *, const(void) *, size_t) pcap_inject
int function(pcap_t *, const(ubyte) *, int) pcap_sendpacket
char * function(pcap_t *) pcap_geterr
const(char) * function(int) pcap_statustostr
const(char) * function(int) pcap_strerror
void function(pcap_t *, const(char) *) pcap_perror
int function(pcap_t *, bpf_program *, const(char) *, int, bpf_u_int32) pcap_compile
int function(int, int, bpf_program *, const(char) *, int, bpf_u_int32) pcap_compile_nopcap
void function(bpf_program *) pcap_freecode
int function(pcap_t *, bpf_program *) pcap_setfilter
int function(const(bpf_program) *, const(pcap_pkthdr) *, const(ubyte) *) pcap_offline_filter
int function(const(char) *) pcap_datalink_name_to_val
const(char) * function(int) pcap_datalink_val_to_name
const(char) * function(int) pcap_datalink_val_to_description
const(char) * function(int) pcap_datalink_val_to_description_or_dlt
int function(pcap_t *, int * *) pcap_list_tstamp_types
void function(int *) pcap_free_tstamp_types
int function(const(char) *) pcap_tstamp_type_name_to_val
const(char) * function(int) pcap_tstamp_type_val_to_name
const(char) * function(int) pcap_tstamp_type_val_to_description
pcap_dumper_t * function(pcap_t *, const(char) *) pcap_dump_open
pcap_dumper_t * function(pcap_t *, const(char) *) pcap_dump_open_append
pcap_dumper_t * function(pcap_t *, FILE *) pcap_dump_fopen
void function(pcap_dumper_t *) pcap_dump_close
void function(u_char *, const(pcap_pkthdr) *, const(u_char) *) pcap_dump
FILE * function(pcap_dumper_t *) pcap_dump_file
int function(pcap_dumper_t *) pcap_dump_flush
long function(pcap_dumper_t *) pcap_dump_ftell
long function(pcap_dumper_t *) pcap_dump_ftell64
int function(pcap_if_t * *, char *) pcap_findalldevs
void function(pcap_if_t *) pcap_freealldevs
int function(const(char) *, bpf_u_int32 *, bpf_u_int32 *, char *) pcap_lookupnet
int function(pcap_t *) pcap_get_selectable_fd
const(timeval) * function(pcap_t *) pcap_get_required_select_timeout
pcap_t * function(const(char) *, int, int, int, pcap_rmtauth *, char *) pcap_open
int function(char *, int, const(char) *, const(char) *, const(char) *, char *) pcap_createsrcstr
int function(const(char) *, int *, char *, char *, char *, char *) pcap_parsesrcstr
int function(const(char) *, pcap_rmtauth *, pcap_if_t * *, char *) pcap_findalldevs_ex
int function(pcap_t *, pcap_samp *) pcap_setsampling
int function(const(char) *, const(char) *, const(char) *, char *, pcap_rmtauth *) pcap_remoteact_accept
int function(const(char) *, const(char) *, const(char) *, char *, pcap_rmtauth *, int) pcap_remoteact_accept_ex
int function() pcap_remoteact_cleanup
void function(int) pcap_remoteact_close
int function(char *, char) pcap_remoteact_list
pcap_dumper_t * function(pcap_t *, intptr_t) pcap_dump_hopen
pcap_t * function(intptr_t, char *) pcap_hopen_offline
pcap_t * function(intptr_t, u_int, char *) pcap_hopen_offline_with_tstamp_precision
void * function(pcap_t *) pcap_getevent
void * function(pcap_t *) pcap_get_airpcap_handle
int function(pcap_t *, int) pcap_setmode
int function(pcap_t *, int) pcap_setbuff
int function(pcap_t *, int) pcap_setuserbuffer
int function(pcap_t *, int) pcap_setmintocopy
int function(pcap_t *, int) pcap_set_wait
int function(pcap_t *, bpf_u_int32, void *, size_t *) pcap_oid_get_request
int function(pcap_t *, bpf_u_int32, const(void) *, size_t *) pcap_oid_set_request
int function() pcap_wsockinit
int function(pcap_t *, char *, int, int) pcap_live_dump
int function(pcap_t *, int) pcap_live_dump_ended
pcap_send_queue * function(u_int) pcap_sendqueue_alloc
void function(pcap_send_queue *) pcap_sendqueue_destroy
int function(pcap_send_queue *, const(pcap_pkthdr) *, const(u_char) *) pcap_sendqueue_queue
u_int function(pcap_t *, pcap_send_queue *, int) pcap_sendqueue_transmit

Functions 3

fnbool loadApi(string libName = null)Loads the libpcap library and resolves symbols.
fnvoid unloadApi()Releases the dynamically loaded library handle, if one was opened.
fnvoid loadStatic()Initializes the vtable with static symbols from the linked libpcap.

Variables 2

varPcapApi lib

Global instance of the libpcap API vtable.

private varvoid * _dlHandle

Stored handle for the dynamically loaded library.

Used by unloadApi() to release the shared library.