Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix a vicious bug: TCP socket use a buffer and read operation get as much data as...
[simgrid.git] / src / gras / Transport / transport_private.h
index 9555fbb..9b384ec 100644 (file)
@@ -40,6 +40,11 @@ typedef struct s_gras_socket  {
   int outgoing :1; /* true if we can write on this sock */
   int accepting :1; /* true if master incoming sock in tcp */
   int meas :1; /* true if this is an experiment socket instead of messaging */
+  int recv_ok :1; /* true if it is valid to recv() on the socket (false if it is a file) */
+  int valid :1; /* false if a select returned that the peer quitted, forcing us to "close" the socket */
+  int moredata :1; /* TCP socket use a buffer and read operation get as much data as possible. 
+                     It is possible that several messages are received in one shoot, and select won't catch them afterward again.
+                     This boolean indicates that this is the case, so that we don't call select in that case. */
 
   unsigned long int buf_size; /* what to say to the OS. field here to remember it when accepting */