コード例 #1
0
ファイル: nfqhook.py プロジェクト: philips/earthquake
def nfq_hook_cb(qh, nfmsg, nfad, data):
    """
    int nfq_callback(struct nfq_q_handle *qh,
                     struct nfgenmsg *nfmsg,
                     struct nfq_data *nfad, void *data);
    """
    packet_id = NFQ.cb_get_packet_id(nfad)
    ip_bytes = NFQ.cb_get_payload(nfad)
    this_id = data
    this = ctypes.cast(this_id, ctypes.py_object).value
    assert isinstance(this, NFQHook)
    this.send_ip_packet_to_inspector(packet_id, ip_bytes)
    return 1
コード例 #2
0
ファイル: dumb_nfqhook.py プロジェクト: fuku-ys/earthquake
def cb(qh, nfmsg, nfad, data):
    """
    int nfq_callback(struct nfq_q_handle *qh,
                     struct nfgenmsg *nfmsg,
                     struct nfq_data *nfad, void *data);
    """
    payload = NFQ.cb_get_payload(nfad)
    packet_id = NFQ.cb_get_packet_id(nfad)
    ip = IP(payload)
    LOG.info("ID %d: %s", packet_id, ip.summary())
    sleep(SLEEP_SECS)
    NFQ.cb_set_verdict(qh, packet_id, NFQ.NF_ACCEPT)
    return 1