return ceph::get_logger(ceph_subsys_ms);
}
-seastar::future<> abort_in_fault() {
+void abort_in_fault() {
throw std::system_error(make_error_code(ceph::net::error::negotiation_failure));
}
-seastar::future<> abort_in_close() {
- throw std::system_error(make_error_code(ceph::net::error::connection_aborted));
+void abort_protocol() {
+ throw std::system_error(make_error_code(ceph::net::error::protocol_aborted));
+}
+
+void abort_in_close(ceph::net::ProtocolV2& proto) {
+ proto.close();
+ abort_protocol();
}
inline void expect_tag(const Tag& expected,
logger().error("{} peer does not support all required features"
" required={} peer_supported={}",
conn, required_features, peer_supported_features);
- abort_in_close();
+ abort_in_close(*this);
}
if ((supported_features & peer_required_features) != peer_required_features) {
logger().error("{} we do not support all peer required features"
" peer_required={} supported={}",
conn, peer_required_features, supported_features);
- abort_in_close();
+ abort_in_close(*this);
}
this->peer_required_features = peer_required_features;
if (this->peer_required_features == 0) {
} catch (const ceph::auth::error& e) {
logger().error("{} get_initial_auth_request returned {}", conn, e);
dispatch_reset();
- abort_in_close();
+ abort_in_close(*this);
return seastar::now();
}
}
if (state == state_t::CLOSING) {
return socket->close().then([this] {
logger().warn("{} is closed during Socket::connect()", conn);
- abort_in_fault();
+ abort_protocol();
});
}
return seastar::now();
conn, ceph_entity_type_name(conn.get_peer_type()),
ceph_entity_type_name(_peer_type));
dispatch_reset();
- abort_in_close();
+ abort_in_close(*this);
}
conn.set_ephemeral_port(_my_addr_from_peer.get_port(),
SocketConnection::side_t::connector);
}
case -EBUSY: {
logger().warn("{} auth_server handle_auth_request returned -EBUSY", conn);
- return abort_in_fault();
+ abort_in_fault();
+ return seastar::now();
}
default: {
logger().warn("{} auth_server handle_auth_request returned {}", conn, r);
" in favor of existing connection {}",
conn, peer_global_seq, exproto->peer_global_seq, *existing);
dispatch_reset();
- abort_in_close();
+ abort_in_close(*this);
}
if (existing->policy.lossy) {