MonSession *session = 0;
if (req->get_connection())
session = static_cast<MonSession *>(req->get_connection()->get_priv());
- if (req->session_mon >= 0) {
- dout(10) << "forward_request won't double fwd request " << *req << dendl;
- req->put();
- } else if (req->get_source().is_mon() && req->get_source_addr() != messenger->get_myaddr()) {
+ if (req->get_source().is_mon() && req->get_source_addr() != messenger->get_myaddr()) {
dout(10) << "forward_request won't forward (non-local) mon request " << *req << dendl;
req->put();
+ } else if (session && session->proxy_con) {
+ dout(10) << "forward_request won't double fwd request " << *req << dendl;
+ req->put();
} else if (session && !session->closed) {
RoutedRequest *rr = new RoutedRequest;
rr->tid = ++routed_request_tid;