From e08f500c7f79bd07b9a3db65b57a1d6c808f28d8 Mon Sep 17 00:00:00 2001 From: mquinson Date: Tue, 16 May 2006 20:02:03 +0000 Subject: [PATCH] Fix several glitches, add a 'proc' field to the sockets. I want to know the name of the process on the other side (but this doesn't work yet) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2225 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/gras/Transport/transport.c | 12 ++++++++++-- src/gras/Transport/transport_interface.h | 2 ++ src/gras/Transport/transport_plugin_tcp.c | 3 ++- src/gras/Transport/transport_private.h | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/gras/Transport/transport.c b/src/gras/Transport/transport.c index 6025da7744..4e763316e5 100644 --- a/src/gras/Transport/transport.c +++ b/src/gras/Transport/transport.c @@ -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; @@ -274,7 +275,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 +287,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 +365,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) { diff --git a/src/gras/Transport/transport_interface.h b/src/gras/Transport/transport_interface.h index 388d5d4381..202c9dafd6 100644 --- a/src/gras/Transport/transport_interface.h +++ b/src/gras/Transport/transport_interface.h @@ -25,6 +25,8 @@ void gras_trp_flush(gras_socket_t sd); /* Find which socket needs to be read next */ gras_socket_t gras_trp_select(double timeout); +/* Set the peer process name (used by messaging layer) */ +void gras_socket_peer_proc_set(gras_socket_t sock,char*peer_proc); /*** *** Plugin mechanism diff --git a/src/gras/Transport/transport_plugin_tcp.c b/src/gras/Transport/transport_plugin_tcp.c index b360df0b07..25ce3214b7 100644 --- a/src/gras/Transport/transport_plugin_tcp.c +++ b/src/gras/Transport/transport_plugin_tcp.c @@ -306,7 +306,8 @@ gras_trp_tcp_recv_withbuffer(gras_socket_t sock, bufsize -= status; got += status; } else { - THROW0(system_error,0,"Socket closed by remote side"); + THROW1(system_error,0,"Socket closed by remote side (got %d bytes before this)", + got); } } return got; diff --git a/src/gras/Transport/transport_private.h b/src/gras/Transport/transport_private.h index e3d06918b7..9555fbb8fd 100644 --- a/src/gras/Transport/transport_private.h +++ b/src/gras/Transport/transport_private.h @@ -47,6 +47,7 @@ typedef struct s_gras_socket { int port; /* port on this side */ int peer_port; /* port on the other side */ char *peer_name; /* hostname of the other side */ + char *peer_proc; /* process on the other side */ void *data; /* plugin specific data */ -- 2.20.1