mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
libceph: msg signing callouts don't need con argument
We can use msg->con instead - at the point we sign an outgoing message or check the signature on the incoming one, msg->con is always set. We wouldn't know how to sign a message without an associated session (i.e. msg->con == NULL) and being able to sign a message using an explicitly provided authorizer is of no use. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
8a703a383d
commit
79dbd1baa6
@ -3942,17 +3942,19 @@ static struct ceph_msg *mds_alloc_msg(struct ceph_connection *con,
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sign_message(struct ceph_connection *con, struct ceph_msg *msg)
|
static int mds_sign_message(struct ceph_msg *msg)
|
||||||
{
|
{
|
||||||
struct ceph_mds_session *s = con->private;
|
struct ceph_mds_session *s = msg->con->private;
|
||||||
struct ceph_auth_handshake *auth = &s->s_auth;
|
struct ceph_auth_handshake *auth = &s->s_auth;
|
||||||
|
|
||||||
return ceph_auth_sign_message(auth, msg);
|
return ceph_auth_sign_message(auth, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_message_signature(struct ceph_connection *con, struct ceph_msg *msg)
|
static int mds_check_message_signature(struct ceph_msg *msg)
|
||||||
{
|
{
|
||||||
struct ceph_mds_session *s = con->private;
|
struct ceph_mds_session *s = msg->con->private;
|
||||||
struct ceph_auth_handshake *auth = &s->s_auth;
|
struct ceph_auth_handshake *auth = &s->s_auth;
|
||||||
|
|
||||||
return ceph_auth_check_message_signature(auth, msg);
|
return ceph_auth_check_message_signature(auth, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3965,8 +3967,8 @@ static const struct ceph_connection_operations mds_con_ops = {
|
|||||||
.invalidate_authorizer = invalidate_authorizer,
|
.invalidate_authorizer = invalidate_authorizer,
|
||||||
.peer_reset = peer_reset,
|
.peer_reset = peer_reset,
|
||||||
.alloc_msg = mds_alloc_msg,
|
.alloc_msg = mds_alloc_msg,
|
||||||
.sign_message = sign_message,
|
.sign_message = mds_sign_message,
|
||||||
.check_message_signature = check_message_signature,
|
.check_message_signature = mds_check_message_signature,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* eof */
|
/* eof */
|
||||||
|
@ -43,10 +43,9 @@ struct ceph_connection_operations {
|
|||||||
struct ceph_msg * (*alloc_msg) (struct ceph_connection *con,
|
struct ceph_msg * (*alloc_msg) (struct ceph_connection *con,
|
||||||
struct ceph_msg_header *hdr,
|
struct ceph_msg_header *hdr,
|
||||||
int *skip);
|
int *skip);
|
||||||
int (*sign_message) (struct ceph_connection *con, struct ceph_msg *msg);
|
|
||||||
|
|
||||||
int (*check_message_signature) (struct ceph_connection *con,
|
int (*sign_message) (struct ceph_msg *msg);
|
||||||
struct ceph_msg *msg);
|
int (*check_message_signature) (struct ceph_msg *msg);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* use format string %s%d */
|
/* use format string %s%d */
|
||||||
|
@ -1205,7 +1205,7 @@ static void prepare_write_message_footer(struct ceph_connection *con)
|
|||||||
con->out_kvec[v].iov_base = &m->footer;
|
con->out_kvec[v].iov_base = &m->footer;
|
||||||
if (con->peer_features & CEPH_FEATURE_MSG_AUTH) {
|
if (con->peer_features & CEPH_FEATURE_MSG_AUTH) {
|
||||||
if (con->ops->sign_message)
|
if (con->ops->sign_message)
|
||||||
con->ops->sign_message(con, m);
|
con->ops->sign_message(m);
|
||||||
else
|
else
|
||||||
m->footer.sig = 0;
|
m->footer.sig = 0;
|
||||||
con->out_kvec[v].iov_len = sizeof(m->footer);
|
con->out_kvec[v].iov_len = sizeof(m->footer);
|
||||||
@ -2422,7 +2422,7 @@ static int read_partial_message(struct ceph_connection *con)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (need_sign && con->ops->check_message_signature &&
|
if (need_sign && con->ops->check_message_signature &&
|
||||||
con->ops->check_message_signature(con, m)) {
|
con->ops->check_message_signature(m)) {
|
||||||
pr_err("read_partial_message %p signature check failed\n", m);
|
pr_err("read_partial_message %p signature check failed\n", m);
|
||||||
return -EBADMSG;
|
return -EBADMSG;
|
||||||
}
|
}
|
||||||
|
@ -2979,17 +2979,19 @@ static int invalidate_authorizer(struct ceph_connection *con)
|
|||||||
return ceph_monc_validate_auth(&osdc->client->monc);
|
return ceph_monc_validate_auth(&osdc->client->monc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sign_message(struct ceph_connection *con, struct ceph_msg *msg)
|
static int osd_sign_message(struct ceph_msg *msg)
|
||||||
{
|
{
|
||||||
struct ceph_osd *o = con->private;
|
struct ceph_osd *o = msg->con->private;
|
||||||
struct ceph_auth_handshake *auth = &o->o_auth;
|
struct ceph_auth_handshake *auth = &o->o_auth;
|
||||||
|
|
||||||
return ceph_auth_sign_message(auth, msg);
|
return ceph_auth_sign_message(auth, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_message_signature(struct ceph_connection *con, struct ceph_msg *msg)
|
static int osd_check_message_signature(struct ceph_msg *msg)
|
||||||
{
|
{
|
||||||
struct ceph_osd *o = con->private;
|
struct ceph_osd *o = msg->con->private;
|
||||||
struct ceph_auth_handshake *auth = &o->o_auth;
|
struct ceph_auth_handshake *auth = &o->o_auth;
|
||||||
|
|
||||||
return ceph_auth_check_message_signature(auth, msg);
|
return ceph_auth_check_message_signature(auth, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3001,7 +3003,7 @@ static const struct ceph_connection_operations osd_con_ops = {
|
|||||||
.verify_authorizer_reply = verify_authorizer_reply,
|
.verify_authorizer_reply = verify_authorizer_reply,
|
||||||
.invalidate_authorizer = invalidate_authorizer,
|
.invalidate_authorizer = invalidate_authorizer,
|
||||||
.alloc_msg = alloc_msg,
|
.alloc_msg = alloc_msg,
|
||||||
.sign_message = sign_message,
|
.sign_message = osd_sign_message,
|
||||||
.check_message_signature = check_message_signature,
|
.check_message_signature = osd_check_message_signature,
|
||||||
.fault = osd_reset,
|
.fault = osd_reset,
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user