mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 10:52:56 +00:00
do not use own structs for sockaddr_sstorage and sockaddr_in6
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
ced2eca1da
commit
9de6b2b391
2 changed files with 4 additions and 30 deletions
|
@ -470,7 +470,7 @@ QHostAddress::QHostAddress(const struct sockaddr *sockaddr)
|
|||
setAddress(htonl(((sockaddr_in *)sockaddr)->sin_addr.s_addr));
|
||||
#ifndef QT_NO_IPV6
|
||||
else if (sockaddr->sa_family == AF_INET6)
|
||||
setAddress(((qt_sockaddr_in6 *)sockaddr)->sin6_addr.qt_s6_addr);
|
||||
setAddress(((sockaddr_in6 *)sockaddr)->sin6_addr.s6_addr);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -621,7 +621,7 @@ void QHostAddress::setAddress(const struct sockaddr *sockaddr)
|
|||
setAddress(htonl(((sockaddr_in *)sockaddr)->sin_addr.s_addr));
|
||||
#ifndef QT_NO_IPV6
|
||||
else if (sockaddr->sa_family == AF_INET6)
|
||||
setAddress(((qt_sockaddr_in6 *)sockaddr)->sin6_addr.qt_s6_addr);
|
||||
setAddress(((sockaddr_in6 *)sockaddr)->sin6_addr.s6_addr);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -52,37 +52,11 @@
|
|||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
// Use our own defines and structs which we know are correct
|
||||
# define QT_SS_MAXSIZE 128
|
||||
# define QT_SS_ALIGNSIZE (sizeof(qint64))
|
||||
# define QT_SS_PAD1SIZE (QT_SS_ALIGNSIZE - sizeof (short))
|
||||
# define QT_SS_PAD2SIZE (QT_SS_MAXSIZE - (sizeof (short) + QT_SS_PAD1SIZE + QT_SS_ALIGNSIZE))
|
||||
struct qt_sockaddr_storage {
|
||||
short ss_family;
|
||||
char __ss_pad1[QT_SS_PAD1SIZE];
|
||||
qint64 __ss_align;
|
||||
char __ss_pad2[QT_SS_PAD2SIZE];
|
||||
};
|
||||
|
||||
// sockaddr_in6 size changed between old and new SDK
|
||||
// Only the new version is the correct one, so always
|
||||
// use this structure.
|
||||
struct qt_in6_addr {
|
||||
quint8 qt_s6_addr[16];
|
||||
};
|
||||
struct qt_sockaddr_in6 {
|
||||
short sin6_family; /* AF_INET6 */
|
||||
quint16 sin6_port; /* Transport level port number */
|
||||
quint32 sin6_flowinfo; /* IPv6 flow information */
|
||||
struct qt_in6_addr sin6_addr; /* IPv6 address */
|
||||
quint32 sin6_scope_id; /* set of interfaces for a scope */
|
||||
};
|
||||
|
||||
union qt_sockaddr {
|
||||
sockaddr a;
|
||||
sockaddr_in a4;
|
||||
qt_sockaddr_in6 a6;
|
||||
qt_sockaddr_storage storage;
|
||||
sockaddr_in6 a6;
|
||||
sockaddr_storage storage;
|
||||
};
|
||||
|
||||
class QNativeSocketEnginePrivate;
|
||||
|
|
Loading…
Add table
Reference in a new issue