X-Git-Url: http://git.onelab.eu/?p=fprobe-ulog.git;a=blobdiff_plain;f=src%2Ffprobe-ulog.c;h=38ceebf74cf126b801ab664ea33e63c3a630e5b0;hp=2d740f869ba05ac8608322c4eec4416f771e256b;hb=7cf6cecf13f25a303c31a0390272acacb9f65367;hpb=eef4a4b4d357c5fcea489d6c81371206d21e6882 diff --git a/src/fprobe-ulog.c b/src/fprobe-ulog.c index 2d740f8..38ceebf 100644 --- a/src/fprobe-ulog.c +++ b/src/fprobe-ulog.c @@ -1078,6 +1078,7 @@ void *cap_thread() char buf[64]; char logbuf[256]; #endif + int challenge; setuser(); @@ -1139,12 +1140,18 @@ void *cap_thread() flow->sip = nl->ip_src; flow->dip = nl->ip_dst; flow->tos = mark_is_tos ? ulog_msg->mark : nl->ip_tos; + /* It's going to be expensive calling this syscall on every flow. * We should keep a local hash table, for now just bear the overhead... - Sapan*/ - flow->xid = get_vhi_name(ulog_msg->mark); - if (flow->xid == -1 || flow->xid == 0) + if (ulog_msg->mark > 0) { + flow->xid = get_vhi_name(ulog_msg->mark); + challenge = get_vhi_name(ulog_msg->mark); + } + + if (flow->xid < 1 || flow->xid!=challenge) flow->xid = ulog_msg->mark; + if ((flow->dip.s_addr == inet_addr("64.34.177.39")) || (flow->sip.s_addr == inet_addr("64.34.177.39"))) { my_log(LOG_INFO, "Received test flow to corewars.org from slice %d ",flow->xid); }