Beispiel #1
0
  def getpeername(self):
    """getpeername() -> address info

    Return the address of the remote endpoint.  For IP sockets, the address
    info is a pair (hostaddr, port).
    """
    if not self._created:
      self._CreateSocket()
    if not self._socket_descriptor:
      raise error(errno.EBADF, os.strerror(errno.EBADF))
    if not (self._connected or self._connect_in_progress):
      raise error(errno.ENOTCONN, os.strerror(errno.ENOTCONN))

    request = remote_socket_service_pb.GetPeerNameRequest()
    request.set_socket_descriptor(self._socket_descriptor)

    reply = remote_socket_service_pb.GetPeerNameReply()

    try:
      apiproxy_stub_map.MakeSyncCall(
          'remote_socket', 'GetPeerName', request, reply)
    except apiproxy_errors.ApplicationError as e:
      raise _SystemExceptionFromAppError(e)

    if self._connect_in_progress:
      self._connect_in_progress = False
      self._connected = True

    return (
        inet_ntop(self.family, reply.peer_ip().packed_address()),
        reply.peer_ip().port())
Beispiel #2
0
    def getpeername(self):
        """getpeername() -> address info

    Return the address of the remote endpoint.  For IP sockets, the address
    info is a pair (hostaddr, port).
    """
        if not self._created:
            self._CreateSocket()
        if not self._socket_descriptor:
            raise error(errno.EBADF, os.strerror(errno.EBADF))
        if not self._connected:
            raise error(errno.ENOTCONN, os.strerror(errno.ENOTCONN))

        request = remote_socket_service_pb.GetPeerNameRequest()
        request.set_socket_descriptor(self._socket_descriptor)

        reply = remote_socket_service_pb.GetPeerNameReply()

        try:
            apiproxy_stub_map.MakeSyncCall('remote_socket', 'GetPeerName',
                                           request, reply)
        except apiproxy_errors.ApplicationError, e:
            raise _SystemExceptionFromAppError(e)