We'll phase out get_connection() wrappers.
Signed-off-by: Sage Weil <sage@redhat.com>
*
* @param dest The entity to get a connection for.
*/
- virtual ConnectionRef get_connection(const entity_inst_t& dest) = 0;
-
- virtual ConnectionRef connect_to(
- int type, const entity_addrvec_t& dest) {
+ virtual ConnectionRef get_connection(const entity_inst_t& dest) {
// temporary
- return get_connection(entity_inst_t(entity_name_t(type, -1),
- dest.legacy_addr()));
+ return connect_to(dest.name.type(),
+ entity_addrvec_t(dest.addr));
}
+
+ virtual ConnectionRef connect_to(
+ int type, const entity_addrvec_t& dest) = 0;
ConnectionRef connect_to_mon(const entity_addrvec_t& dest) {
return connect_to(CEPH_ENTITY_TYPE_MON, dest);
}
return conn;
}
-ConnectionRef AsyncMessenger::get_connection(const entity_inst_t& dest)
+ConnectionRef AsyncMessenger::connect_to(int type, const entity_addrvec_t& addrs)
{
Mutex::Locker l(lock);
- if (my_addrs->legacy_addr() == dest.addr) {
+ if (*my_addrs == addrs) {
// local
return local_connection;
}
- AsyncConnectionRef conn = _lookup_conn(entity_addrvec_t(dest.addr));
+ AsyncConnectionRef conn = _lookup_conn(addrs);
if (conn) {
- ldout(cct, 10) << __func__ << " " << dest << " existing " << conn << dendl;
+ ldout(cct, 10) << __func__ << " " << addrs << " existing " << conn << dendl;
} else {
- conn = create_connect(entity_addrvec_t(dest.addr), dest.name.type());
- ldout(cct, 10) << __func__ << " " << dest << " new " << conn << dendl;
+ conn = create_connect(addrs, type);
+ ldout(cct, 10) << __func__ << " " << addrs << " new " << conn << dendl;
}
return conn;
* @defgroup Connection Management
* @{
*/
- ConnectionRef get_connection(const entity_inst_t& dest) override;
+ ConnectionRef connect_to(int type,
+ const entity_addrvec_t& addrs) override;
ConnectionRef get_loopback_connection() override;
void mark_down(const entity_addr_t& addr) override {
mark_down_addrs(entity_addrvec_t(addr));
challenge);
}
-ConnectionRef SimpleMessenger::get_connection(const entity_inst_t& dest)
+ConnectionRef SimpleMessenger::connect_to(int type,
+ const entity_addrvec_t& addrs)
{
Mutex::Locker l(lock);
- if (my_addr == dest.addr) {
+ if (my_addr == addrs.front()) {
// local
return local_connection;
}
// remote
while (true) {
- Pipe *pipe = _lookup_pipe(dest.addr);
+ Pipe *pipe = _lookup_pipe(addrs.front());
if (pipe) {
- ldout(cct, 10) << "get_connection " << dest << " existing " << pipe << dendl;
+ ldout(cct, 10) << "get_connection " << addrs << " existing " << pipe << dendl;
} else {
- pipe = connect_rank(dest.addr, dest.name.type(), NULL, NULL);
- ldout(cct, 10) << "get_connection " << dest << " new " << pipe << dendl;
+ pipe = connect_rank(addrs.front(), type, NULL, NULL);
+ ldout(cct, 10) << "get_connection " << addrs << " new " << pipe << dendl;
}
Mutex::Locker l(pipe->pipe_lock);
if (pipe->connection_state)
* @defgroup Connection Management
* @{
*/
- ConnectionRef get_connection(const entity_inst_t& dest) override;
+ ConnectionRef connect_to(int type, const entity_addrvec_t& addrs) override;
ConnectionRef get_loopback_connection() override;
int send_keepalive(Connection *con);
void mark_down(const entity_addr_t& addr) override;
virtual ConnectionRef get_connection(const entity_inst_t& dest);
+ // compat hack
+ ConnectionRef connect_to(
+ int type, const entity_addrvec_t& dest) override {
+ return get_connection(entity_inst_t(entity_name_t(type, -1),
+ dest.legacy_addr()));
+ }
+
virtual ConnectionRef get_loopback_connection();
void unregister_xcon(XioConnection *xcon);