From 7cf6cecf13f25a303c31a0390272acacb9f65367 Mon Sep 17 00:00:00 2001
From: sapanb <sapanb@8c455092-636d-4788-adf5-e71def0336e8>
Date: Wed, 30 Apr 2008 07:18:08 +0000
Subject: [PATCH] git-svn-id:
 http://svn.planet-lab.org/svn/fprobe-ulog/trunk@9206
 8c455092-636d-4788-adf5-e71def0336e8

---
 src/fprobe-ulog.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

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);
 			}
-- 
2.47.0