void gras_trp_buf_socket_close(gras_socket_t sd);
xbt_error_t gras_trp_buf_chunk_send(gras_socket_t sd,
- const char *data,
- long int size);
+ const char *data,
+ unsigned long int size);
xbt_error_t gras_trp_buf_chunk_recv(gras_socket_t sd,
- char *data,
- long int size);
+ char *data,
+ unsigned long int size);
xbt_error_t gras_trp_buf_flush(gras_socket_t sock);
XBT_IN;
if (data->in.size!=data->in.pos) {
- WARN1("Socket closed, but %d bytes were unread",data->in.size - data->in.pos);
+ WARN3("Socket closed, but %d bytes were unread (size=%d,pos=%d)",
+ data->in.size - data->in.pos,data->in.size, data->in.pos);
}
if (data->out.size!=data->out.pos) {
/**
* gras_trp_buf_chunk_send:
*
- * Send data on a TCP socket
+ * Send data on a buffered socket
*/
xbt_error_t
gras_trp_buf_chunk_send(gras_socket_t sock,
const char *chunk,
- long int size) {
+ unsigned long int size) {
xbt_error_t errcode;
gras_trp_bufdata_t *data=(gras_trp_bufdata_t*)sock->bufdata;
/**
* gras_trp_buf_chunk_recv:
*
- * Receive data on a TCP socket.
+ * Receive data on a buffered socket.
*/
xbt_error_t
gras_trp_buf_chunk_recv(gras_socket_t sock,
char *chunk,
- long int size) {
+ unsigned long int size) {
xbt_error_t errcode;
gras_trp_plugin_t *super=((gras_trp_buf_plug_data_t*)sock->plugin->data)->super;
data->in.pos=0;
} else {
memcpy((char*)&nextsize,data->in.data,4);
- data->in.size = (int)ntohl(nextsize)+4;
+ data->in.size = nextsize+4;
data->in.pos=4;
- VERB3("Got the chunk (size=%d+4 for the size ifself)='%.*s'",data->in.size-4,
- data->in.size,data->in.data);
+ VERB3("Got the chunk (size=%d+4 for the size ifself)='%.*s'",
+ data->in.size-4, data->in.size,data->in.data);
if (XBT_LOG_ISENABLED(trp_buf,xbt_log_priority_debug))
hexa_print("chunck received",data->in.data,data->in.size);
}
XBT_IN;
DEBUG0("Flush");
if (XBT_LOG_ISENABLED(trp_buf,xbt_log_priority_debug))
- hexa_print("chunck to send",data->out.data,data->out.size);
+ hexa_print("chunck to send ",data->out.data,data->out.size);
if ((data->out.size - data->out.pos) == (gras_if_RL()?0:4) ) { /* 4 first bytes=size in SG mode*/
DEBUG2("Nothing to flush (size=%d; pos=%d)",data->out.size,data->out.pos);
return no_error;
TRY(super->chunk_send(sock, data->out.data, data->out.size));
VERB1("Chunk sent (size=%d)",data->out.size);
if (XBT_LOG_ISENABLED(trp_buf,xbt_log_priority_debug))
- hexa_print("chunck sent",data->out.data,data->out.size);
- data->out.size = 0;
+ hexa_print("chunck sent ",data->out.data,data->out.size);
+ data->out.size = gras_if_RL()?0:4;
return no_error;
}