From 179daa44debfdac406d7590c81dff60d97e788c9 Mon Sep 17 00:00:00 2001 From: Alex Zeffertt Date: Thu, 9 Feb 2012 18:33:33 +0000 Subject: xenstored: add NO_SOCKETS compilation option Add option for compiling xenstored without unix sockets to support running on mini-OS Signed-off-by: Diego Ongaro Signed-off-by: Alex Zeffertt Signed-off-by: Daniel De Graaf Acked-by: Ian Campbell Cc: Ian Jackson Cc: Stefano Stabellini Committed-by: Ian Jackson --- tools/xenstore/xenstored_core.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'tools/xenstore') diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c index 0e7d43f2e9..c1ee932914 100644 --- a/tools/xenstore/xenstored_core.c +++ b/tools/xenstore/xenstored_core.c @@ -19,9 +19,11 @@ #include #include -#include #include +#ifndef NO_SOCKETS +#include #include +#endif #include #include #include @@ -320,8 +322,10 @@ static int initialize_set(fd_set *inset, fd_set *outset, int sock, int ro_sock, FD_ZERO(inset); FD_ZERO(outset); - set_fd(sock, inset, &max); - set_fd(ro_sock, inset, &max); + if (sock != -1) + set_fd(sock, inset, &max); + if (ro_sock != -1) + set_fd(ro_sock, inset, &max); set_fd(reopen_log_pipe[0], inset, &max); if (xce_handle != NULL) @@ -1345,6 +1349,11 @@ struct connection *new_connection(connwritefn_t *write, connreadfn_t *read) return new; } +#ifdef NO_SOCKETS +static void accept_connection(int sock, bool canwrite) +{ +} +#else static int writefd(struct connection *conn, const void *data, unsigned int len) { int rc; @@ -1399,6 +1408,7 @@ static void accept_connection(int sock, bool canwrite) } else close(fd); } +#endif #define TDB_FLAGS 0 @@ -1698,6 +1708,13 @@ static void daemonize(void) umask(0); } +#ifdef NO_SOCKETS +static void init_sockets(int **psock, int **pro_sock) +{ + static int minus_one = -1; + *psock = *pro_sock = &minus_one; +} +#else static int destroy_fd(void *_fd) { int *fd = _fd; @@ -1743,6 +1760,7 @@ static void init_sockets(int **psock, int **pro_sock) } +#endif static void usage(void) { @@ -1938,10 +1956,10 @@ int main(int argc, char *argv[]) reopen_log(); } - if (FD_ISSET(*sock, &inset)) + if (*sock != -1 && FD_ISSET(*sock, &inset)) accept_connection(*sock, true); - if (FD_ISSET(*ro_sock, &inset)) + if (*ro_sock != -1 && FD_ISSET(*ro_sock, &inset)) accept_connection(*ro_sock, false); if (evtchn_fd != -1 && FD_ISSET(evtchn_fd, &inset)) -- cgit v1.2.3