about summary refs log tree commit homepage
path: root/cmogstored.h
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-04-14 00:50:08 +0000
committerEric Wong <normalperson@yhbt.net>2013-04-16 01:37:27 +0000
commit4d9a4f921c1a79d2d82aae3e104cac43537b1e2d (patch)
tree25f79dbbe2b1c813c4247b875a0f837abcf79ca4 /cmogstored.h
parent8c79cf794f6178b6978743af99d498ca0b449fb1 (diff)
downloadcmogstored-4d9a4f921c1a79d2d82aae3e104cac43537b1e2d.tar.gz
The generic "struct sockaddr" may be padded to be the same size
as "struct sockaddr_storage" (which is what we were trying to
avoid in the first place by uinsg mog_sockaddr).  This change
makes no difference on GNU/Linux.
Diffstat (limited to 'cmogstored.h')
-rw-r--r--cmogstored.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/cmogstored.h b/cmogstored.h
index 1681e1e..25bbb62 100644
--- a/cmogstored.h
+++ b/cmogstored.h
@@ -558,6 +558,10 @@ _Noreturn void cmogstored_exit(void);
 union mog_sockaddr {
         struct sockaddr_in in;
         struct sockaddr_in6 in6;
-        struct sockaddr sa;
-        unsigned char bytes[1];
+        uint8_t bytes[sizeof(struct sockaddr_in6)];
 };
+
+static inline struct sockaddr *mog_sockaddr_sa(union mog_sockaddr *msa)
+{
+        return (struct sockaddr *)msa;
+}