From 7e6afe23738d95d29b2935c0fa36845b41f1eced Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 29 Jul 2020 14:09:32 +1000 Subject: [PATCH] tools: make the socket server example take a socket path Signed-off-by: Peter Hutterer --- tools/eis-socket-server.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tools/eis-socket-server.c b/tools/eis-socket-server.c index 1f24ca1..1ed292e 100644 --- a/tools/eis-socket-server.c +++ b/tools/eis-socket-server.c @@ -43,21 +43,24 @@ static void sighandler(int signal) { int main(int argc, char **argv) { - const char SOCKETNAME[] = "eis.socket"; struct eis *eis = eis_socket_new_context(NULL); assert(eis); - const char *xdgdir = getenv("XDG_RUNTIME_DIR"); - assert(xdgdir != NULL); - - _cleanup_free_ char *socketpath = xaprintf("%s/%s", xdgdir, SOCKETNAME); - unlink(socketpath); + _cleanup_free_ char *socketpath = NULL; + if (argc < 2) { + const char SOCKETNAME[] = "eis.socket"; + const char *xdgdir = getenv("XDG_RUNTIME_DIR"); + assert(xdgdir != NULL); + socketpath = xaprintf("%s/%s", xdgdir, SOCKETNAME); + } else { + socketpath = xstrdup(argv[1]); + } /* This should be handled by libeis */ signal(SIGPIPE, SIG_IGN); signal(SIGINT, sighandler); - int rc = eis_socket_init(eis, SOCKETNAME); + int rc = eis_socket_init(eis, socketpath); if (rc != 0) { fprintf(stderr, "init failed: %s\n", strerror(errno)); return 1; @@ -129,6 +132,7 @@ int main(int argc, char **argv) } eis_unref(eis); + unlink(socketpath); return 0; }