diff options
author | David Phillips <david@sighup.nz> | 2018-06-27 19:50:25 +1200 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2018-06-27 19:56:24 +1200 |
commit | 4816ac8405f3f8a18f0e296b9a748a27d66fed0e (patch) | |
tree | 37124c1d7786147c7a76030e47f44ddab8873be1 /alarm-tools | |
parent | 737b8916cfa2ba16edeee3d9518e3b5715724c0d (diff) | |
download | alarmd-4816ac8405f3f8a18f0e296b9a748a27d66fed0e.tar.xz |
Change from TCP to UNIX sockets, massive clean up
Diffstat (limited to 'alarm-tools')
-rw-r--r-- | alarm-tools/Makefile | 3 | ||||
-rw-r--r-- | alarm-tools/alarms-show.c | 40 |
2 files changed, 18 insertions, 25 deletions
diff --git a/alarm-tools/Makefile b/alarm-tools/Makefile index 75f3c5b..56b3dff 100644 --- a/alarm-tools/Makefile +++ b/alarm-tools/Makefile @@ -2,3 +2,6 @@ LDFLAGS += -L../lib -lalarm CFLAGS += -I../inc all: alarms-show + +clean: + rm alarms-show diff --git a/alarm-tools/alarms-show.c b/alarm-tools/alarms-show.c index ba466a5..7613489 100644 --- a/alarm-tools/alarms-show.c +++ b/alarm-tools/alarms-show.c @@ -6,6 +6,7 @@ #include <sys/socket.h> #include <netdb.h> #include <unistd.h> +#include <sys/un.h> #include "alarmd_proto.h" @@ -52,6 +53,10 @@ int dump_alarms(int sock) printf("[%s] %s\n", is_raised ? "\x1b[1;31mRAISE\x1b[0m" : "\x1b[1;32mCLEAR\x1b[0m", buffer); } + if (count == 0) { + printf("No alarms registered.\n"); + } + if (i < count) { fprintf(stderr, "Not all alarms received, output must be missing some\n"); return 1; @@ -66,37 +71,22 @@ int main(void) { int sock = 0; char buffer[128]; - struct addrinfo hints, *s_info, *p; + struct sockaddr_un server; - bzero(&hints, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - - /* FIXME spec custom hostname on cmd line */ - if (getaddrinfo("localhost", ALARMD_PORT, &hints, &s_info) != 0) { - perror("getaddrinfo"); + if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { + perror("socket"); return 1; } - for (p = s_info; p != NULL; p = p->ai_next) { - if ((sock = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) < 0) { - perror("socket"); - continue; - } - if (connect(sock, p->ai_addr, p->ai_addrlen) < 0) { - close(sock); - perror("connect"); - continue; - } - break; - } - - if (!p) { - fprintf(stderr, "Connection to server failed\n"); + server.sun_family = AF_UNIX; + strcpy(server.sun_path, "/home/david/alarmd_sock"); + printf("Connecting...\n"); + if (connect(sock, (struct sockaddr *)&server, strlen(server.sun_path) + sizeof(server.sun_family)) < 0) { + close(sock); + perror("connect"); return 1; } - - freeaddrinfo(s_info); + printf("Connected.\n"); dump_alarms(sock); close(sock); |