Commit fbbbcf80 authored by Orvid King's avatar Orvid King Committed by Facebook Github Bot

Add NetworkSocket support to SocketAddress

Summary: The first step on the path

Reviewed By: yfeldblum

Differential Revision: D10355407

fbshipit-source-id: 01eec439ae65484e233d5fe94977643d7ab2ed6d
parent ceebc296
......@@ -33,6 +33,8 @@
#include <folly/Exception.h>
#include <folly/Format.h>
#include <folly/hash/Hash.h>
#include <folly/net/NetOps.h>
#include <folly/net/NetworkSocket.h>
namespace {
......@@ -241,11 +243,19 @@ void SocketAddress::setFromPath(StringPiece path) {
}
void SocketAddress::setFromPeerAddress(int socket) {
setFromSocket(socket, getpeername);
setFromPeerAddress(NetworkSocket::fromFd(socket));
}
void SocketAddress::setFromPeerAddress(NetworkSocket socket) {
setFromSocket(socket, netops::getpeername);
}
void SocketAddress::setFromLocalAddress(int socket) {
setFromSocket(socket, getsockname);
setFromLocalAddress(NetworkSocket::fromFd(socket));
}
void SocketAddress::setFromLocalAddress(NetworkSocket socket) {
setFromSocket(socket, netops::getsockname);
}
void SocketAddress::setFromSockaddr(const struct sockaddr* address) {
......@@ -645,8 +655,8 @@ void SocketAddress::setFromLocalAddr(const struct addrinfo* info) {
}
void SocketAddress::setFromSocket(
int socket,
int (*fn)(int, struct sockaddr*, socklen_t*)) {
NetworkSocket socket,
int (*fn)(NetworkSocket, struct sockaddr*, socklen_t*)) {
// Try to put the address into a local storage buffer.
sockaddr_storage tmp_sock;
socklen_t addrLen = sizeof(tmp_sock);
......
......@@ -24,6 +24,7 @@
#include <folly/IPAddress.h>
#include <folly/Portability.h>
#include <folly/Range.h>
#include <folly/net/NetworkSocket.h>
#include <folly/portability/Sockets.h>
namespace folly {
......@@ -325,6 +326,7 @@ class SocketAddress {
* Raises std::system_error on error.
*/
void setFromPeerAddress(int socket);
void setFromPeerAddress(NetworkSocket socket);
/**
* Initialize this SocketAddress from a socket's local address.
......@@ -332,6 +334,7 @@ class SocketAddress {
* Raises std::system_error on error.
*/
void setFromLocalAddress(int socket);
void setFromLocalAddress(NetworkSocket socket);
/**
* Initialize this folly::SocketAddress from a struct sockaddr.
......@@ -580,7 +583,9 @@ class SocketAddress {
struct addrinfo* getAddrInfo(const char* host, const char* port, int flags);
void setFromAddrInfo(const struct addrinfo* results);
void setFromLocalAddr(const struct addrinfo* results);
void setFromSocket(int socket, int (*fn)(int, struct sockaddr*, socklen_t*));
void setFromSocket(
NetworkSocket socket,
int (*fn)(NetworkSocket, struct sockaddr*, socklen_t*));
std::string getIpString(int flags) const;
void getIpString(char* buf, size_t buflen, int flags) const;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment