/****************************************************************************/ /* Project: kbLogger */ /* */ /* Copyright: Kodeburg */ /* */ /* All rights reserved. */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* File: wrapperlibpcap.cpp */ /* */ /* Purpose: A wrapper to communicate via libpcap */ /* */ /* */ /****************************************************************************/ #ifndef WRAPPERLIBPCAP_H_ #define WRAPPERLIBPCAP_H_ #include #ifdef LINUX #include #elif WIN32 #include #endif #include "tools/message.h" //#define USB_DEVICE libusb_device //#define USB_CONTEXT libusb_context //#define USB_DEVICE_HANDLE libusb_device_handle //#define USB_DEVICE_DESCRIPTOR libusb_device_descriptor //#define USB_INIT() r = libusb_init(&ctx) //#define USB_SET_DEBUG(a, b) libusb_set_debug(ctx, 3) //#define USB_CLOSE(a) libusb_close(a) //#define USB_FREE_DEVICE_LIST(a, b) libusb_free_device_list(a, b) //#define USB_EXIT(a) libusb_exit(a) //#define USB_CLOSE(a) libusb_close(a) //#define USB_GET_DEVICE_DESCRIPTOR(a, b) libusb_get_device_descriptor(a, b) class Pcap : public QObject { Q_OBJECT public: Pcap(QString strKey = ""); virtual ~Pcap(); bool openPcap(); void closePcap(); static bool loadPcapSymbols(); static bool loadDevices(); static QStringList getDevices(); bool open(QString strDevice, QString strFilter, int timeout); void close(); quint64 read(int timeout, qint64 maxLength); quint64 write(const char * buffer, qint64 length); void readcallback(const struct pcap_pkthdr *h, const u_char *bytes); public slots: signals: void signalDataReceived(Message mMsg); public: QString m_strErrorText; private: QString m_strKey; static QStringList m_lDevice; bool m_bPcapOperational; pcap_t * m_pHandle; }; #endif /* WRAPPERLIBPCAP_H_ */