res = read (fd, data, sizeof (data));  if (res < 0) { arla_warn (ADEBWARN, errno, "read");  return -1; }
process_message (int fd){     static char data[MAX_XMSG_SIZE];     int res;     struct xfs_message_header *header;     char *p;     int cnt;     res = read (fd, data, sizeof (data));     if (res < 0) {	  arla_warn (ADEBWARN, errno, "read");	  /* XXX process the errno? Are we supposed to exit on every error?*/	  return -1;     }     cnt = 0;     for (p = data; res > 0; p += header->size, res -= header->size) {	 header = (struct xfs_message_header *)p;	 xfs_message_receive (fd, header, header->size);	 ++cnt;     }     if (cnt < sizeof(recv_count)/sizeof(recv_count[0]))	 ++recv_count[cnt];     else	 ++recv_count_overflow;          return 0;}