changed SO_LINGER value, added TODOs
This commit is contained in:
@@ -70,12 +70,12 @@
|
||||
#define ZT_ERR_GENERAL_FAILURE -88
|
||||
|
||||
// Since extra time is required to send a mesage via a socket through the
|
||||
// stack and ZT service, calling a zclose() immediately after a "successful"
|
||||
// zwrite() might cause data loss, for this reason, sockets will SO_LINGER for
|
||||
// stack and ZT service, calling a zts_close() immediately after a "successful"
|
||||
// zts_write() might cause data loss, for this reason, sockets will SO_LINGER for
|
||||
// a short period of time by default as a precaution.
|
||||
|
||||
#define ZT_SOCK_BEHAVIOR_LINGER false
|
||||
#define ZT_SOCK_BEHAVIOR_LINGER_TIME 2 // s
|
||||
#define ZT_SOCK_BEHAVIOR_LINGER true
|
||||
#define ZT_SOCK_BEHAVIOR_LINGER_TIME 1 // s
|
||||
|
||||
/****************************************************************************/
|
||||
/* Socket API Signatures */
|
||||
|
||||
@@ -439,7 +439,7 @@ int zts_connect(ZT_CONNECT_SIG) {
|
||||
ZeroTier::SocketTap *tap;
|
||||
|
||||
if(conn) {
|
||||
char ipstr[INET6_ADDRSTRLEN];//, nm_str[INET6_ADDRSTRLEN];
|
||||
char ipstr[INET6_ADDRSTRLEN];
|
||||
memset(ipstr, 0, INET6_ADDRSTRLEN);
|
||||
ZeroTier::InetAddress iaddr;
|
||||
|
||||
@@ -933,10 +933,13 @@ int zts_fcntl(ZT_FCNTL_SIG)
|
||||
errno = EBADF;
|
||||
err = -1;
|
||||
}
|
||||
else {
|
||||
err = fcntl(fd, cmd, flags);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
// TODO
|
||||
ssize_t zts_sendto(ZT_SENDTO_SIG)
|
||||
{
|
||||
DEBUG_INFO("fd = %d", fd);
|
||||
@@ -945,9 +948,13 @@ ssize_t zts_sendto(ZT_SENDTO_SIG)
|
||||
errno = EBADF;
|
||||
err = -1;
|
||||
}
|
||||
else {
|
||||
err = sendto(fd, buf, len, flags, addr, addrlen);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
// TODO
|
||||
ssize_t zts_sendmsg(ZT_SENDMSG_SIG)
|
||||
{
|
||||
DEBUG_INFO("fd = %d", fd);
|
||||
@@ -956,9 +963,13 @@ ssize_t zts_sendmsg(ZT_SENDMSG_SIG)
|
||||
errno = EBADF;
|
||||
err = -1;
|
||||
}
|
||||
else {
|
||||
err = sendmsg(fd, msg, flags);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
// TODO
|
||||
ssize_t zts_recvfrom(ZT_RECVFROM_SIG)
|
||||
{
|
||||
DEBUG_INFO("fd = %d", fd);
|
||||
@@ -967,9 +978,13 @@ ssize_t zts_recvfrom(ZT_RECVFROM_SIG)
|
||||
errno = EBADF;
|
||||
err = -1;
|
||||
}
|
||||
else {
|
||||
err = recvfrom(fd, buf, len, flags, addr, addrlen);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
// TODO
|
||||
ssize_t zts_recvmsg(ZT_RECVMSG_SIG)
|
||||
{
|
||||
DEBUG_INFO("fd = %d", fd);
|
||||
@@ -978,6 +993,9 @@ ssize_t zts_recvmsg(ZT_RECVMSG_SIG)
|
||||
errno = EBADF;
|
||||
err = -1;
|
||||
}
|
||||
else {
|
||||
err = recvmsg(fd, msg, flags);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
@@ -1022,7 +1022,7 @@ public:
|
||||
for(it = _nets.begin(); it != _nets.end(); it++) {
|
||||
if(it->second.tap) {
|
||||
for(int j=0; j<it->second.tap->_ips.size(); j++) {
|
||||
if(it->second.tap->_ips[j].isEqualPrefix(addr) || it->second.tap->_ips[j].ipsEqual(addr)) {
|
||||
if(it->second.tap->_ips[j].isEqualPrefix(addr) || it->second.tap->_ips[j].ipsEqual(addr) || it->second.tap->_ips[j].containsAddress(addr)) {
|
||||
return it->second.tap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user