From 4816ac8405f3f8a18f0e296b9a748a27d66fed0e Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 27 Jun 2018 19:50:25 +1200 Subject: Change from TCP to UNIX sockets, massive clean up --- alarm-tools/Makefile | 3 +++ alarm-tools/alarms-show.c | 40 +++++++++++++++------------------------- 2 files changed, 18 insertions(+), 25 deletions(-) (limited to 'alarm-tools') 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 #include #include +#include #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); -- cgit v1.1