Browse Source

fix makros for access to addrinfo structure.

1.0.0
Georg Hopp 12 years ago
parent
commit
f7296885ea
  1. 44
      include/tr/socket.h

44
include/tr/socket.h

@ -74,10 +74,7 @@ TR_INSTANCE_INIT(TR_Socket);
#define TR_socketPort(socket) (((TR_Socket)(socket))->port)
#define TR_socketCname(socket) (((TR_Socket)(socket))->cname)
#define TR_socketTtl(socket) (((TR_Socket)(socket))->ttl)
#define TR_socketAddr(socket) \
((unsigned char *)&((TR_Socket)(socket))->addr)
#define TR_socketAddr(socket) ((void *)&((TR_Socket)(socket))->addr)
#define TR_socketAddrlen(socket) (((TR_Socket)(socket))->addrlen)
#define TR_socketHandle(socket) (((TR_Socket)(socket))->handle)
#define TR_socketFinState(socket) (((TR_Socket)(socket))->fin_state)
@ -86,31 +83,32 @@ TR_INSTANCE_INIT(TR_Socket);
#define TR_socketFinRdWr(socket) ((TR_socketFinState((socket)) & 3) == 3)
#define TR_socketAddrPort(socket) \
(((TR_Socket)(socket))->addr.info.sa_family == AF_INET \
(((TR_Socket)(socket))->addr.info.sa_family == AF_INET \
? ((TR_Socket)(socket))->addr.in.sin_port \
: ((TR_Socket)(socket))->addr.info.sa_family == AF_INET6 \
? ((TR_Socket)(socket))->addr.in6.sin6_port \
: -1)
: 0)
#define TR_socketAddrIp(socket) \
(((TR_Socket)(socket))->addr.info.sa_family == AF_INET \
? ((TR_Socket)(socket))->addr.in.sin_addr.s_addr \
: ((TR_Socket)(socket))->addr.info.sa_family == AF_INET6 \
? ((TR_Socket)(socket))->addr.in6.sin6_addr.s6_addr \
#define TR_socketAddrIp(socket) \
(((TR_Socket)(socket))->addr.info.sa_family == AF_INET \
? (void *)&((TR_Socket)(socket))->addr.in.sin_addr.s_addr \
: ((TR_Socket)(socket))->addr.info.sa_family == AF_INET6 \
? (void *)&((TR_Socket)(socket))->addr.in6.sin6_addr.s6_addr \
: NULL)
#define TR_socketAddrIpStr(socket, buffer, nbuffer) \
(((TR_Socket)(socket))->addr.info.sa_family == AF_INET \
? inet_ntop( \
((TR_Socket)(socket))->addr.info.sa_family, \
&((TR_Socket)(socket))->addr.in.sin_addr.s_addr, \
buffer, nbuffer) \
: ((TR_Socket)(socket))->addr.info.sa_family == AF_INET6 \
? inet_ntop( \
((TR_Socket)(socket))->addr.info.sa_family, \
((TR_Socket)(socket))->addr.in6.sin6_addr.s6_addr, \
buffer, nbuffer) \
: NULL)
#define TR_socketAddrIplen(socket) \
(((TR_Socket)(socket))->addr.info.sa_family == AF_INET \
? sizeof(((TR_Socket)(socket))->addr.in.sin_addr) \
: ((TR_Socket)(socket))->addr.info.sa_family == AF_INET6 \
? sizeof(((TR_Socket)(socket))->addr.in6.sin6_addr) \
: 0)
#define TR_socketAddrIpStr(socket, buffer, nbuffer) \
if (TR_socketAddrIp((socket))) \
inet_ntop( \
((TR_Socket)(socket))->addr.info.sa_family, \
TR_socketAddrIp((socket)), \
buffer, nbuffer)
TR_CLASS(TR_TcpSocket) {
TR_EXTENDS(TR_Socket);

Loading…
Cancel
Save