summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-10-02 10:36:28 +0000
committerGordon Sim <gsim@apache.org>2007-10-02 10:36:28 +0000
commit5254308738c9b7df64563811ae153cbae3de5f06 (patch)
tree537556801d66e5ed23b23ecab6849245ad3cb99b /cpp/src/qpid/broker
parent61ec67bde802657ef173482e4409685bcc61a3f9 (diff)
downloadqpid-python-5254308738c9b7df64563811ae153cbae3de5f06.tar.gz
Fixed bug introduced in r577027 where the header frame of a message is directly passed to output handler where the channel is changed. This causing problems when the message is sent to multiple channels concurrently. I've added a const modifier to preventthe message being altered by sendHeader().
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581185 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker')
-rw-r--r--cpp/src/qpid/broker/Message.cpp5
-rw-r--r--cpp/src/qpid/broker/Message.h4
2 files changed, 5 insertions, 4 deletions
diff --git a/cpp/src/qpid/broker/Message.cpp b/cpp/src/qpid/broker/Message.cpp
index f0cbf027df..d03985b15f 100644
--- a/cpp/src/qpid/broker/Message.cpp
+++ b/cpp/src/qpid/broker/Message.cpp
@@ -173,9 +173,10 @@ void Message::sendContent(framing::FrameHandler& out, uint16_t maxFrameSize)
}
}
-void Message::sendHeader(framing::FrameHandler& out, uint16_t /*maxFrameSize*/)
+void Message::sendHeader(framing::FrameHandler& out, uint16_t /*maxFrameSize*/) const
{
- frames.map_if(out, TypeFilter(HEADER_BODY));
+ Relay f(out);
+ frames.map_if(f, TypeFilter(HEADER_BODY));
}
MessageAdapter& Message::getAdapter() const
diff --git a/cpp/src/qpid/broker/Message.h b/cpp/src/qpid/broker/Message.h
index c1dd2f28fa..dec74586db 100644
--- a/cpp/src/qpid/broker/Message.h
+++ b/cpp/src/qpid/broker/Message.h
@@ -115,7 +115,7 @@ public:
void releaseContent(MessageStore* store);
void sendContent(framing::FrameHandler& out, uint16_t maxFrameSize);
- void sendHeader(framing::FrameHandler& out, uint16_t maxFrameSize);
+ void sendHeader(framing::FrameHandler& out, uint16_t maxFrameSize) const;
bool isContentLoaded() const;
@@ -132,7 +132,7 @@ public:
static PublishAdapter PUBLISH;
MessageAdapter& getAdapter() const;
- bool isContentReleased() { return store; }
+ bool isContentReleased() const { return store; }
};
}}