|
|
|
@ -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); |
|
|
|
|