From 7ad723a8fb605f0bcab8a3ed912bef5f2d335f2c Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 27 Jun 2018 20:56:32 +1200 Subject: Refactor raise+clear handlers --- alarmd/alarmd.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/alarmd/alarmd.c b/alarmd/alarmd.c index a0f650a..93336b8 100644 --- a/alarmd/alarmd.c +++ b/alarmd/alarmd.c @@ -95,7 +95,7 @@ int handle_deregister(int c_sock) return 0; } -int handle_raise(int c_sock) +int handle_set_raised_generic(int c_sock, int shall_raise) { unsigned char buffer[128]; struct alarm *target = NULL; @@ -105,35 +105,26 @@ int handle_raise(int c_sock) return 1; } uuid_unparse(buffer, uuid_str); - fprintf(stderr, "Raising alarm %s\n", uuid_str); + fprintf(stderr, "%sing alarm %s\n", shall_raise ? "Rais" : "Clear", uuid_str); /* LOCK */ HASH_FIND(hh, alarms, buffer, 16, target); if (target != NULL) { - target->is_raised = 1; + target->is_raised = shall_raise; } /* UNLOCK */ return 0; + +} + +int handle_raise(int c_sock) +{ + return handle_set_raised_generic(c_sock, 1); } int handle_clear(int c_sock) { - unsigned char buffer[128]; - struct alarm *target = NULL; - char uuid_str[37]; - /* FIXME 16 magic */ - if (recv(c_sock, &buffer, 16, 0) < 16) { - return 1; - } - uuid_unparse(buffer, uuid_str); - fprintf(stderr, "Clearing alarm %s\n", uuid_str); - /* LOCK */ - HASH_FIND(hh, alarms, buffer, 16, target); - if (target != NULL) { - target->is_raised = 0; - } - /* UNLOCK */ - return 0; + return handle_set_raised_generic(c_sock, 0); } int handle_query(int c_sock) @@ -225,7 +216,7 @@ int main(int argc, char **argv) switch(packet_type) { case ALARMD_PACKET_TYPE_REGISTER: if (handle_register(c_sock)) { - close(c_sock);; + close(c_sock); } break; case ALARMD_PACKET_TYPE_DEREGISTER: -- cgit v1.1