GSocket: define CMSG_LEN and CMSG_SPACE if the system doesn't

https://bugzilla.gnome.org/show_bug.cgi?id=589989
This commit is contained in:
Dan Winship 2010-02-25 11:40:31 -05:00
parent 29f3e3f766
commit 1504a77655

View File

@ -68,6 +68,17 @@
#define _PATH_RESCONF "/etc/resolv.conf" #define _PATH_RESCONF "/etc/resolv.conf"
#endif #endif
#ifndef CMSG_LEN
/* CMSG_LEN and CMSG_SPACE are defined by RFC 2292, but missing on
* some older platforms.
*/
#define CMSG_LEN(len) ((size_t)CMSG_DATA((struct cmsghdr *)NULL) + (len))
/* CMSG_SPACE must add at least as much padding as CMSG_NXTHDR()
* adds. We overestimate here.
*/
#define ALIGN_TO_SIZEOF(len, obj) (((len) + sizeof (obj) - 1) & ~(sizeof (obj) - 1))
#define CMSG_SPACE(len) ALIGN_TO_SIZEOF (CMSG_LEN (len), struct cmsghdr)
#endif #endif
G_BEGIN_DECLS G_BEGIN_DECLS