diff options
Diffstat (limited to 'src/server/server.c')
-rw-r--r-- | src/server/server.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/server.c b/src/server/server.c index e67be13..1c55663 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -513,6 +513,33 @@ int server_quit(void) return ERROR_OK; } +int connection_write(struct connection *connection, const void *data, int len) +{ + if (len == 0) + { + /* successful no-op. Sockets and pipes behave differently here... */ + return 0; + } + if (connection->service->type == CONNECTION_TCP) + { + return write_socket(connection->fd_out, data, len); + } else + { + return write(connection->fd_out, data, len); + } +} + +int connection_read(struct connection *connection, void *data, int len) +{ + if (connection->service->type == CONNECTION_TCP) + { + return read_socket(connection->fd, data, len); + } else + { + return read(connection->fd, data, len); + } +} + /* tell the server we want to shut down */ COMMAND_HANDLER(handle_shutdown_command) { |