// request to open a session (initial state of Session is `closed`)
if (!s) {
s = new Session(con);
- s->info.auth_name = con->get_peer_entity_name();
- s->info.inst.addr = con->get_peer_socket_addr();
- s->info.inst.name = n;
dout(10) << " new session " << s << " for " << s->info.inst
<< " con " << con << dendl;
con->set_priv(RefCountedPtr{s, false});
if (!auth_caps.is_capable(path, in->inode.uid, in->inode.gid, in->inode.mode,
caller_uid, caller_gid, caller_gid_list, mask,
new_uid, new_gid,
- socket_addr)) {
+ info.inst.addr)) {
return -EACCES;
}
return 0;
protected:
ConnectionRef connection;
public:
- entity_addr_t socket_addr;
xlist<Session*>::item item_session_list;
list<ref_t<Message>> preopen_out_queue; ///< messages for client, queued before they connect
void set_connection(ConnectionRef con) {
connection = std::move(con);
- if (connection) {
- socket_addr = connection->get_peer_socket_addr();
+ auto& c = connection;
+ if (c) {
+ info.auth_name = c->get_peer_entity_name();
+ info.inst.addr = c->get_peer_socket_addr();
+ info.inst.name = entity_name_t(c->get_peer_type(), c->get_peer_global_id());
}
}
const ConnectionRef& get_connection() const {