mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 14:16:16 -04:00
Port pqissl to dual stack IPv6+IPv4
Changed unix_connect signature to be more comfortable for dual stack usage Remove dead code in pqissl::pqissl(...) Adapt p3I2pBob::connectI2P() to new unix_connect Adapt extaddrfinder to new unix_connect Add sockaddr_storage_ipv4_to_ipv6 to convert from flat IPv4 to IPv4 mapped as IPv6
This commit is contained in:
parent
2170313e42
commit
b3c7d195c8
9 changed files with 72 additions and 81 deletions
|
@ -438,43 +438,17 @@ int unix_fcntl_nonblock(int fd)
|
|||
}
|
||||
|
||||
|
||||
int unix_connect(int fd, const struct sockaddr *serv_addr, socklen_t socklen)
|
||||
int unix_connect(int fd, const sockaddr_storage &serv_addr)
|
||||
{
|
||||
#ifdef NET_DEBUG
|
||||
std::cerr << "unix_connect()";
|
||||
std::cerr << std::endl;
|
||||
std::cerr << __PRETTY_FUNCTION__ << std::endl;
|
||||
#endif
|
||||
|
||||
const struct sockaddr_storage *ss_addr = (struct sockaddr_storage *) serv_addr;
|
||||
socklen_t len = socklen;
|
||||
|
||||
switch (ss_addr->ss_family)
|
||||
{
|
||||
case AF_INET:
|
||||
len = sizeof(struct sockaddr_in);
|
||||
break;
|
||||
case AF_INET6:
|
||||
len = sizeof(struct sockaddr_in6);
|
||||
break;
|
||||
}
|
||||
|
||||
if (len > socklen)
|
||||
{
|
||||
std::cerr << "unix_connect() ERROR len > socklen";
|
||||
std::cerr << std::endl;
|
||||
|
||||
len = socklen;
|
||||
//return EINVAL;
|
||||
}
|
||||
|
||||
int ret = connect(fd, serv_addr, len);
|
||||
int ret = connect( fd, (const struct sockaddr *) &serv_addr,
|
||||
sizeof(struct sockaddr_in6) );
|
||||
|
||||
/******************* WINDOWS SPECIFIC PART ******************/
|
||||
#ifdef WINDOWS_SYS // WINDOWS
|
||||
|
||||
#ifdef NET_DEBUG
|
||||
std::cerr << "unix_connect()" << std::endl;
|
||||
#endif
|
||||
if (ret != 0)
|
||||
{
|
||||
errno = WinToUnixError(WSAGetLastError());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue