def client_for(connection)
    # skip if an indirect node type or local
    return nil, nil if self.indirect? || self.node_type == :local

    begin
      return Socket.unpack_sockaddr_in(connection.get_peername)
    rescue Exception=>e
    end

    return nil, nil
  end
def client_for(connection)
    # skip if an indirect node type or local
    return nil, nil if self.indirect? || self.node_type == :local

    begin
      return Socket.unpack_sockaddr_in(connection.get_peername)
    rescue Exception=>e
    end

    return nil, nil
  end
Internal helper, extract client info from connection