From: Casey Bodley Date: Tue, 27 Oct 2015 13:59:46 +0000 (-0400) Subject: msg: pass Connection to decode_message X-Git-Tag: v12.0.3~73^2~28 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c8107a3e1f5b3c92f4fcc6d6a2e2d51ca8a36fdf;p=ceph.git msg: pass Connection to decode_message Signed-off-by: Casey Bodley --- diff --git a/src/msg/Message.cc b/src/msg/Message.cc index e19fd017b1c0..bac97fc0da91 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -276,7 +276,7 @@ Message *decode_message(CephContext *cct, int crcflags, ceph_msg_header& header, ceph_msg_footer& footer, bufferlist& front, bufferlist& middle, - bufferlist& data) + bufferlist& data, Connection* conn) { // verify crc if (crcflags & MSG_CRC_HEADER) { @@ -812,6 +812,7 @@ Message *decode_message(CephContext *cct, int crcflags, return 0; } + m->set_connection(conn); m->set_header(header); m->set_footer(footer); m->set_payload(front); @@ -890,6 +891,6 @@ Message *decode_message(CephContext *cct, int crcflags, bufferlist::iterator& p) ::decode(fr, p); ::decode(mi, p); ::decode(da, p); - return decode_message(cct, crcflags, h, f, fr, mi, da); + return decode_message(cct, crcflags, h, f, fr, mi, da, nullptr); } diff --git a/src/msg/Message.h b/src/msg/Message.h index 67c1edce82d0..c37cd475a737 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -471,8 +471,9 @@ typedef boost::intrusive_ptr MessageRef; extern Message *decode_message(CephContext *cct, int crcflags, ceph_msg_header &header, ceph_msg_footer& footer, bufferlist& front, - bufferlist& middle, bufferlist& data); -inline ostream& operator<<(ostream &out, const Message &m) { + bufferlist& middle, bufferlist& data, + Connection* conn); +inline ostream& operator<<(ostream& out, const Message& m) { m.print(out); if (m.get_header().version) out << " v" << m.get_header().version; diff --git a/src/msg/async/AsyncConnection.cc b/src/msg/async/AsyncConnection.cc index 0624427f35ee..69518697e602 100644 --- a/src/msg/async/AsyncConnection.cc +++ b/src/msg/async/AsyncConnection.cc @@ -698,7 +698,8 @@ void AsyncConnection::process() ldout(async_msgr->cct, 20) << __func__ << " got " << front.length() << " + " << middle.length() << " + " << data.length() << " byte message" << dendl; - Message *message = decode_message(async_msgr->cct, async_msgr->crcflags, current_header, footer, front, middle, data); + Message *message = decode_message(async_msgr->cct, async_msgr->crcflags, current_header, footer, + front, middle, data, this); if (!message) { ldout(async_msgr->cct, 1) << __func__ << " decode message failed " << dendl; goto fail; diff --git a/src/msg/simple/Pipe.cc b/src/msg/simple/Pipe.cc index 771c92079039..9e7b0bc9bc28 100644 --- a/src/msg/simple/Pipe.cc +++ b/src/msg/simple/Pipe.cc @@ -2196,7 +2196,8 @@ int Pipe::read_message(Message **pm, AuthSessionHandler* auth_handler) ldout(msgr->cct,20) << "reader got " << front.length() << " + " << middle.length() << " + " << data.length() << " byte message" << dendl; - message = decode_message(msgr->cct, msgr->crcflags, header, footer, front, middle, data); + message = decode_message(msgr->cct, msgr->crcflags, header, footer, + front, middle, data, connection_state.get()); if (!message) { ret = -EINVAL; goto out_dethrottle; diff --git a/src/msg/xio/XioConnection.cc b/src/msg/xio/XioConnection.cc index 98eebcc82248..107a489a44e7 100644 --- a/src/msg/xio/XioConnection.cc +++ b/src/msg/xio/XioConnection.cc @@ -435,9 +435,8 @@ int XioConnection::handle_data_msg(struct xio_session *session, /* update connection timestamp */ recv.set(tmsg->timestamp); - Message *m = - decode_message(msgr->cct, msgr->crcflags, header, footer, payload, middle, - data); + Message *m = decode_message(msgr->cct, msgr->crcflags, header, footer, + payload, middle, data, this); if (m) { /* completion */