]> mj.ucw.cz Git - nwho.git/blobdiff - nwhod.c
Let die() be shared between nwho and nwhod
[nwho.git] / nwhod.c
diff --git a/nwhod.c b/nwhod.c
index b5fc22d288df218a6a023ffbfef165e28da99506..878db6b3844247f7a0b24b8f9e2a64b5fe7ee8a5 100644 (file)
--- a/nwhod.c
+++ b/nwhod.c
@@ -7,7 +7,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stdarg.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/socket.h>
@@ -36,20 +35,6 @@ static struct hostrec *first_host;
 static time_t now, last_local_scan;
 static char hostname[64];
 
-static void die(char *msg, ...) __attribute__((noreturn));
-
-static void
-die(char *msg, ...)
-{
-  va_list args;
-
-  va_start(args, msg);
-  fprintf(stderr, "nwhod: ");
-  vfprintf(stderr, msg, args);
-  fputc('\n', stderr);
-  exit(1);
-}
-
 static void
 net_init(char *name)
 {
@@ -176,7 +161,7 @@ cleanup(void)
 static void
 save_pkt(char *name, struct nwho_pkt *pkt)
 {
-  int len = sizeof(pkt) - (MAX_USERS - ntohl(pkt->num_users))*sizeof(struct userinfo);
+  int len = nwho_pkt_size(pkt);
   int fd = open(name, O_WRONLY | O_CREAT, 0666);
   if (fd < 0)
     {
@@ -230,7 +215,7 @@ receive(void)
   if (r < n ||
       pkt.magic != htonl(NWHO_MAGIC) ||
       ntohl(pkt.num_users) > MAX_USERS ||
-      r != n + ntohl(pkt.num_users)*sizeof(struct userinfo))
+      r < nwho_pkt_size(&pkt))
     {
       syslog(LOG_WARNING, "Malformed packet from %s", inet_ntoa(sa.sin_addr));
       return;
@@ -359,7 +344,7 @@ client(char *serv)
     {
       now = time(NULL);
       make_pkt(&pkt);
-      if (send(sock, &pkt, sizeof(pkt) - (MAX_USERS - ntohl(pkt.num_users))*sizeof(struct userinfo), 0) < 0)
+      if (send(sock, &pkt, nwho_pkt_size(&pkt), 0) < 0)
        syslog(LOG_ERR, "sendmsg: %m");
       sleep(DEFAULT_SEND_TIME);
     }