X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ad504a00f12906e9d4d6dd5fe6a2c45862e7943..acbc8f35e5a8520356ce5a527971e6685a4e5793:/src/gras/Transport/rl_transport.c diff --git a/src/gras/Transport/rl_transport.c b/src/gras/Transport/rl_transport.c index add3f885cf..5b6b6ecdda 100644 --- a/src/gras/Transport/rl_transport.c +++ b/src/gras/Transport/rl_transport.c @@ -10,8 +10,7 @@ #include "xbt/ex.h" #include "portable.h" #include "gras/Transport/transport_private.h" -XBT_LOG_EXTERNAL_CATEGORY(transport); -XBT_LOG_DEFAULT_CATEGORY(transport); +XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(gras_trp); /** * gras_trp_select: @@ -161,9 +160,8 @@ gras_socket_t gras_trp_select(double timeout) { accepted = (sock_iter->plugin->socket_accept)(sock_iter); DEBUG2("accepted=%p,&accepted=%p",accepted,&accepted); accepted->meas = sock_iter->meas; - } else { -#if 0 - FIXME: this fails of files. quite logical + + } else if (sock_iter->recv_ok) { /* Make sure the socket is still alive by reading the first byte */ char lookahead; int recvd; @@ -172,21 +170,23 @@ gras_socket_t gras_trp_select(double timeout) { if (recvd < 0) { WARN2("socket %d failed: %s", sock_iter->sd, strerror(errno)); /* done with this socket */ - gras_socket_close(&sock_iter); + gras_socket_close(sock_iter); cursor--; } else if (recvd == 0) { /* Connection reset (=closed) by peer. */ DEBUG1("Connection %d reset by peer", sock_iter->sd); - gras_socket_close(&sock_iter); + gras_socket_close(sock_iter); cursor--; } else { -#endif /* Got a suited socket ! */ XBT_OUT; return sock_iter; -#if 0 } -#endif + + } else { + /* This is a file socket. Cannot recv() on it, but it must be alive */ + XBT_OUT; + return sock_iter; }