예제 #1
0
IPAddress Connection::getPeer() const {
  IPAddress peer;

  char *addr;
  ev_uint16_t port;
  evhttp_connection_get_peer(con, &addr, &port);
  if (addr) peer = IPAddress(addr, port);

  const sockaddr *sa = evhttp_connection_get_addr(con);
  if (sa && sa->sa_family == AF_INET) {
    peer.setPort(((sockaddr_in *)sa)->sin_port);
    peer.setIP(((sockaddr_in *)sa)->sin_addr.s_addr);
  }

  return peer;
}