server: split file descriptors in in/out fd's

pipes have different fd's for in/out. This makes the
code more orthogonal and prepares for adding pipes.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
This commit is contained in:
Øyvind Harboe
2010-09-27 08:26:31 +02:00
parent a60a57d8ed
commit 5a41435e45
5 changed files with 15 additions and 19 deletions

View File

@@ -176,7 +176,7 @@ static int gdb_get_char_inner(struct connection *connection, int* next_char)
#endif
for (;;)
{
if (connection->service->type == CONNECTION_PIPE)
if (connection->service->type != CONNECTION_TCP)
{
gdb_con->buf_cnt = read(connection->fd, gdb_con->buffer, GDB_BUFFER_SIZE);
}
@@ -328,20 +328,9 @@ static int gdb_write(struct connection *connection, void *data, int len)
if (gdb_con->closed)
return ERROR_SERVER_REMOTE_CLOSED;
if (connection->service->type == CONNECTION_PIPE)
if (write_socket(connection->fd_out, data, len) == len)
{
/* write to stdout */
if (write(STDOUT_FILENO, data, len) == len)
{
return ERROR_OK;
}
}
else
{
if (write_socket(connection->fd, data, len) == len)
{
return ERROR_OK;
}
return ERROR_OK;
}
gdb_con->closed = 1;
return ERROR_SERVER_REMOTE_CLOSED;