aboutsummaryrefslogtreecommitdiff
path: root/alarm-tools
diff options
context:
space:
mode:
Diffstat (limited to 'alarm-tools')
-rw-r--r--alarm-tools/Makefile3
-rw-r--r--alarm-tools/alarms-show.c40
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);