libnetdude
gboolean (*LND_PacketFunc) (LND_Packet *packet, LND_ProtoData *pd, void *user_data);
LND_Packet * libnd_packet_new (LND_TracePart *tp, guint data_size);
void libnd_packet_free (LND_Packet *packet);
void libnd_packet_remove (LND_Packet *packet);
LND_Trace * libnd_packet_get_trace (const LND_Packet *packet);
void libnd_packet_dump (const LND_Packet *packet, pcap_dumper_t *dumper);
void libnd_packet_set_data (LND_Packet *packet, const struct pcap_pkthdr *hdr, const guchar *data);
LND_Packet * libnd_packet_duplicate (LND_Packet *packet);
void libnd_packet_set_filtered (LND_Packet *packet, gboolean filtered);
gboolean libnd_packet_is_filtered (LND_Packet *packet);
void libnd_packet_init (LND_Packet *packet);
void libnd_packet_init_from_pcap (LND_Packet *packet, pcap_t *pcap);
gboolean libnd_packet_is_complete (const LND_Packet *packet);
void libnd_packet_update (LND_Packet *packet, LND_Protocol *proto, guint nesting);
guchar * libnd_packet_get_data (const LND_Packet *packet, const LND_Protocol *proto, guint nesting);
guchar * libnd_packet_get_data_end (const LND_Packet *packet, const LND_Protocol *proto, guint nesting);
void libnd_packet_add_proto_data (LND_Packet *packet, LND_Protocol *proto, guchar *data, guchar *data_end);
LND_ProtoData * libnd_packet_get_proto_data (const LND_Packet *packet, const LND_Protocol *proto, guint nesting);
guchar * libnd_packet_get_end (const LND_Packet *packet);
gboolean libnd_packet_has_complete_header (const LND_Packet *packet, const LND_Protocol *proto, guint nesting);
gboolean libnd_packet_has_proto (const LND_Packet *packet, const LND_Protocol *proto);
gboolean libnd_packet_has_proto_nested (const LND_Packet *packet, const LND_Protocol *proto, guint nesting);
LND_ProtoData * libnd_packet_get_last_nonraw (const LND_Packet *packet);
void libnd_packet_update_proto_state (LND_Packet *packet, int index);
void libnd_packet_foreach_proto (LND_Packet *packet, LND_PacketFunc cb, void *user_data);
void libnd_packet_foreach_proto_backward (LND_Packet *packet, LND_PacketFunc cb, void *user_data);
void libnd_packet_modified (LND_Packet *packet);
int libnd_packet_get_index (const LND_Packet *packet);
int libnd_packet_get_proto_nesting (const LND_Packet *packet, const LND_Protocol *proto, guchar *data);
gboolean libnd_packet_fix (LND_Packet *packet);
LND_PacketObserver * libnd_packet_observer_new (void);
void libnd_packet_observer_free (LND_PacketObserver *ob);
void libnd_packet_add_observer (LND_PacketObserver *ob);
void libnd_packet_del_observer (LND_PacketObserver *ob);
void libnd_packet_tell_observers (LND_Packet *packet, LND_PacketObserverOp op, void *data);
LND_PACKET_INITIALIZED
LND_PACKET_MODIFIED
LND_PACKET_DELETE_PRE
LND_PACKET_DELETE_POST
LND_PACKET_INSERT_PRE
LND_PACKET_INSERT_POST
LND_PACKET_DUPLICATED
LND_PACKET_VISIBILITY
LND_PACKET_UPDATED
LND_PACKET_FIXED
LND_PACKET_LEN_CHANGED
LND_PACKET_CAPLEN_CHANGED