Implemented sockaddr_storage functions.

Fixed interfaces for UPnP.

Some further tweaks to get TCP connections working again:
 - hiddenNode issue in p3peers.cc
 - fixed socklen_t for bind() and connect() calls.
 - initialise addr to IPv4 for netmgr.
 - change netAssist (Upnp) interfaces.

Still todo: tou address functions, test UDP functionality.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@6755 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2013-09-24 05:30:01 +00:00
parent 6290d8fed9
commit 34ea22d5f6
15 changed files with 1076 additions and 40 deletions

View file

@ -78,6 +78,10 @@ std::string rs_inet_ntoa(struct in_addr in);
/***************************/
// sockaddr_storage fns.
// Standard bind, on OSX anyway will not accept a longer socklen for IPv4.
// so hidding details behind function.
int universal_bind(int fd, const struct sockaddr *addr, socklen_t socklen);
void sockaddr_storage_clear(struct sockaddr_storage &addr);
// mods.
@ -86,9 +90,13 @@ bool sockaddr_storage_copyip(struct sockaddr_storage &dst, const struct sockaddr
uint16_t sockaddr_storage_port(const struct sockaddr_storage &addr);
bool sockaddr_storage_setport(struct sockaddr_storage &addr, uint16_t port);
bool sockaddr_storage_setipv4(struct sockaddr_storage &addr, const sockaddr_in *addr_ipv4);
bool sockaddr_storage_setipv6(struct sockaddr_storage &addr, const sockaddr_in6 *addr_ipv6);
bool sockaddr_storage_ipv4_aton(struct sockaddr_storage &addr, const char *name);
bool sockaddr_storage_ipv4_setport(struct sockaddr_storage &addr, const uint16_t port);
// comparisons.
bool operator<(const struct sockaddr_storage &a, const struct sockaddr_storage &b);