|
@@ -2027,6 +2027,19 @@ static int process_connect(struct ceph_connection *con)
|
|
|
|
|
|
dout("process_connect on %p tag %d\n", con, (int)con->in_tag);
|
|
|
|
|
|
+ if (con->auth_reply_buf) {
|
|
|
+ /*
|
|
|
+ * Any connection that defines ->get_authorizer()
|
|
|
+ * should also define ->verify_authorizer_reply().
|
|
|
+ * See get_connect_authorizer().
|
|
|
+ */
|
|
|
+ ret = con->ops->verify_authorizer_reply(con, 0);
|
|
|
+ if (ret < 0) {
|
|
|
+ con->error_msg = "bad authorize reply";
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
switch (con->in_reply.tag) {
|
|
|
case CEPH_MSGR_TAG_FEATURES:
|
|
|
pr_err("%s%lld %s feature set mismatch,"
|