about summary refs log tree commit homepage
path: root/packaddr.h
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-06-29 00:39:49 +0000
committerEric Wong <normalperson@yhbt.net>2013-07-10 00:55:59 +0000
commitfef978104cf134dc6629115456b27dfa2856ded7 (patch)
tree653b137bea3511b6741e9612894459462226398c /packaddr.h
parent71849ca64134b0cfa197fc4b1ce8fc10c7fb5d98 (diff)
downloadcmogstored-fef978104cf134dc6629115456b27dfa2856ded7.tar.gz
"struct sockaddr" turns out to be smaller than "struct sockaddr_in6",
so we can avoid complicated casting and just add that to the union.
We continue avoiding "struct sockaddr_storage", however, as it is
unnecessarily large for our needs.
Diffstat (limited to 'packaddr.h')
-rw-r--r--packaddr.h11
1 files changed, 1 insertions, 10 deletions
diff --git a/packaddr.h b/packaddr.h
index fdfb9cb..de17378 100644
--- a/packaddr.h
+++ b/packaddr.h
@@ -3,22 +3,13 @@
  * License: GPLv3 or later (see COPYING for details)
  */
 
-/*
- * avoid sockaddr_storage since that bigger than we need
- * This is meant to be cast to "struct sockaddr" via mog_sockaddr_sa
- */
 union mog_sockaddr {
         struct sockaddr_in in;
         struct sockaddr_in6 in6;
+        struct sockaddr sa;
         uint8_t bytes[sizeof(struct sockaddr_in6)];
 };
 
-static inline struct sockaddr *mog_sockaddr_sa(union mog_sockaddr *msa)
-{
-        assert((void *)msa == (void *)&msa->bytes);
-        return (struct sockaddr *)msa;
-}
-
 /* this is the relevant part we may store in "struct mog_fd" */
 struct mog_packaddr {
         sa_family_t sa_family;