Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Detect socket closed by peer in the transport layer, so that such things don't polute...
[simgrid.git] / src / gras / Transport / transport.c
index 83a2175..cb7c2e2 100644 (file)
@@ -158,6 +158,7 @@ void gras_trp_socket_new(int incoming,
   sock->outgoing  = incoming ? 0:1;
   sock->accepting = incoming ? 1:0;
   sock->meas = 0;
+  sock->recv_ok = 1;
 
   sock->sd     = -1;
   sock->port      = -1;
@@ -225,7 +226,8 @@ gras_socket_server_ext(unsigned short port,
     RETHROW;
   }
 
-  ((gras_trp_procdata_t) gras_libdata_by_id(gras_trp_libdata_id))->myport = port;
+  if (!measurement)
+     ((gras_trp_procdata_t) gras_libdata_by_id(gras_trp_libdata_id))->myport = port;
   return sock;
 }
 /**
@@ -355,7 +357,8 @@ void gras_socket_close(gras_socket_t sock) {
        return;
       }
     }
-    WARN1("Ignoring request to free an unknown socket (%p)",sock);
+    WARN1("Ignoring request to free an unknown socket (%p). Execution stack:",sock);
+    xbt_backtrace_display();
   }
   XBT_OUT;
 }
@@ -567,3 +570,7 @@ void gras_trp_register() {
    gras_trp_libdata_id = gras_procdata_add("gras_trp",gras_trp_procdata_new, gras_trp_procdata_free);
 }
 
+int gras_os_myport(void)  {
+   return ((gras_trp_procdata_t) gras_libdata_by_id(gras_trp_libdata_id))->myport;
+}
+