git-svn-id: http://svn.planet-lab.org/svn/fprobe-ulog/trunk@9206 8c455092-636d-4788...
authorsapanb <sapanb@8c455092-636d-4788-adf5-e71def0336e8>
Wed, 30 Apr 2008 07:18:08 +0000 (07:18 +0000)
committersapanb <sapanb@8c455092-636d-4788-adf5-e71def0336e8>
Wed, 30 Apr 2008 07:18:08 +0000 (07:18 +0000)
src/fprobe-ulog.c

index 2d740f8..38ceebf 100644 (file)
@@ -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);
                        }