X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6521142974bf561e632684f99fd1708726e474a0..a3427ca7c9f8f2563bb982044e1082cc8f3cdd1e:/src/gras/Transport/transport.c diff --git a/src/gras/Transport/transport.c b/src/gras/Transport/transport.c index fa2bda95fb..69ff90e90f 100644 --- a/src/gras/Transport/transport.c +++ b/src/gras/Transport/transport.c @@ -11,8 +11,8 @@ #include "portable.h" #include "gras/Transport/transport_private.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(transport,gras,"Conveying bytes over the network"); -XBT_LOG_NEW_SUBCATEGORY(trp_meas,transport,"Conveying bytes over the network without formating for perf measurements"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(gras_trp,gras,"Conveying bytes over the network"); +XBT_LOG_NEW_SUBCATEGORY(gras_trp_meas,gras_trp,"Conveying bytes over the network without formating for perf measurements"); static short int _gras_trp_started = 0; static xbt_dict_t _gras_trp_plugins; /* All registered plugins */ @@ -162,6 +162,7 @@ void gras_trp_socket_new(int incoming, sock->port = -1; sock->peer_port = -1; sock->peer_name = NULL; + sock->peer_proc = NULL; sock->data = NULL; sock->bufdata = NULL; @@ -213,6 +214,13 @@ gras_socket_server_ext(unsigned short port, sock->outgoing?'y':'n', sock->accepting?'y':'n'); } CATCH(e) { + int cursor; + gras_socket_t sock_iter; + xbt_dynar_t socks = ((gras_trp_procdata_t) gras_libdata_by_id(gras_trp_libdata_id))->sockets; + xbt_dynar_foreach(socks, cursor, sock_iter) { + if (sock_iter==sock) + xbt_dynar_cursor_rm(socks,&cursor); + } free(sock); RETHROW; } @@ -274,7 +282,7 @@ gras_socket_client_ext(const char *host, */ gras_socket_t gras_socket_server(unsigned short port) { - return gras_socket_server_ext(port,32,0); + return gras_socket_server_ext(port,32*1024,0); } /** @@ -286,7 +294,7 @@ gras_socket_server(unsigned short port) { gras_socket_t gras_socket_client(const char *host, unsigned short port) { - return gras_socket_client_ext(host,port,32,0); + return gras_socket_client_ext(host,port,32*1024,0); } @@ -364,6 +372,13 @@ int gras_socket_peer_port(gras_socket_t sock) { char *gras_socket_peer_name(gras_socket_t sock) { return sock->peer_name; } +char *gras_socket_peer_proc(gras_socket_t sock) { + return sock->peer_proc; +} + +void gras_socket_peer_proc_set(gras_socket_t sock,char*peer_proc) { + sock->peer_proc = peer_proc; +} /** \brief Check if the provided socket is a measurement one (or a regular one) */ int gras_socket_is_meas(gras_socket_t sock) { @@ -400,12 +415,12 @@ void gras_socket_meas_send(gras_socket_t peer, xbt_assert0(peer->outgoing,"Socket not suited for data send (was created with gras_socket_server(), not gras_socket_client())"); for (exp_sofar=0; exp_sofar < exp_size; exp_sofar += msg_size) { - CDEBUG5(trp_meas,"Sent %lu of %lu (msg_size=%ld) to %s:%d", + CDEBUG5(gras_trp_meas,"Sent %lu of %lu (msg_size=%ld) to %s:%d", exp_sofar,exp_size,msg_size, gras_socket_peer_name(peer), gras_socket_peer_port(peer)); (*peer->plugin->raw_send)(peer,chunk,msg_size); } - CDEBUG5(trp_meas,"Sent %lu of %lu (msg_size=%ld) to %s:%d", + CDEBUG5(gras_trp_meas,"Sent %lu of %lu (msg_size=%ld) to %s:%d", exp_sofar,exp_size,msg_size, gras_socket_peer_name(peer), gras_socket_peer_port(peer)); @@ -438,12 +453,12 @@ void gras_socket_meas_recv(gras_socket_t peer, xbt_assert0(peer->incoming,"Socket not suited for data receive"); for (exp_sofar=0; exp_sofar < exp_size; exp_sofar += msg_size) { - CDEBUG5(trp_meas,"Recvd %ld of %lu (msg_size=%ld) from %s:%d", + CDEBUG5(gras_trp_meas,"Recvd %ld of %lu (msg_size=%ld) from %s:%d", exp_sofar,exp_size,msg_size, gras_socket_peer_name(peer), gras_socket_peer_port(peer)); (peer->plugin->raw_recv)(peer,chunk,msg_size); } - CDEBUG5(trp_meas,"Recvd %ld of %lu (msg_size=%ld) from %s:%d", + CDEBUG5(gras_trp_meas,"Recvd %ld of %lu (msg_size=%ld) from %s:%d", exp_sofar,exp_size,msg_size, gras_socket_peer_name(peer), gras_socket_peer_port(peer)); @@ -472,13 +487,13 @@ gras_socket_t gras_socket_meas_accept(gras_socket_t peer){ if (!peer->accepting) { /* nothing to accept here (must be in SG) */ - /* FIXME: this is BAD! since it makes tricky to free the accepted socket*/ + /* BUG: FIXME: this is BAD! it makes tricky to free the accepted socket*/ return peer; } res = (peer->plugin->socket_accept)(peer); res->meas = peer->meas; - CDEBUG1(trp_meas,"meas_accepted onto %d",res->sd); + CDEBUG1(gras_trp_meas,"meas_accepted onto %d",res->sd); return res; }