Beispiel #1
0
void pkt(struct lfc *lfc, void *pdata,
         struct lfc_flow *lf, void *data,
         double ts, bool up, bool is_new, libtrace_packet_t *pkt)
{
    struct ndpi *nd = pdata;
    struct flow *f = data;
    struct ipoque_id_struct *srcid, *dstid;
    uint8_t *iph;
    uint16_t et;
    uint32_t rem;
    uint64_t time;

    if (!f->ipq_flow)
        f->ipq_flow = mmatic_zalloc(nd->mm, ipoque_detection_get_sizeof_ipoque_flow_struct());

    iph = trace_get_layer3(pkt, &et, &rem);
    time = ts * 1000;

    srcid = getid(nd, &lf->src);
    dstid = getid(nd, &lf->dst);

    f->proto = ipoque_detection_process_packet(
                   nd->ipq, f->ipq_flow, iph, rem, time, srcid, dstid);
}
static void initL7Discovery(void) {
  myGlobals.l7.proto_size = ipoque_detection_get_sizeof_ipoque_id_struct();
  myGlobals.l7.flow_struct_size = ipoque_detection_get_sizeof_ipoque_flow_struct();
}