AMQP-CPP/include/amqpcpp
Peter A. Bigot d0b5189d1e Envelope: ensure const objects cannot be changed through _body
In commit 00b81949d3 where Message and
Envelope objects were made uncopiable the Envelope _body member was
changed from const char * to char * and a const_cast introduced to
remove the qualifier from the pointer passed to the constructor.

This technically produces undefined behavior when constructing an
Envelope() to publish data from a const buffer.  It also risks future
bugs if a new subclass of Envelope mutates const objects through the
_body pointer.

Envelope does not need to support mutable or owned content.  Move this
capability down to Message which is used in restricted situations where
the body size is set once and its content built up piecewise.
2018-04-20 18:27:53 -05:00
..
linux_tcp renamed bytesQueued() to queued() 2018-04-01 22:34:15 +02:00
address.h fixed Address constructor 2018-03-10 10:32:48 +01:00
addresses.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
array.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
booleanset.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
buffer.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
bytebuffer.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
callbacks.h breaking changes: 2018-03-01 21:12:53 +01:00
channel.h better comment for the channel::consume() call, the comment about the consumer tag was wrong (fixes #211) 2018-04-19 09:56:35 +02:00
channelimpl.h final step (although untested) for handling returned messages 2018-03-01 22:27:27 +01:00
classes.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
connection.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
connectionhandler.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
connectionimpl.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
copiedbuffer.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
decimalfield.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
deferred.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
deferredcancel.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
deferredconsumer.h breaking changes: 2018-03-01 21:12:53 +01:00
deferreddelete.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
deferredextreceiver.h breaking changes: 2018-03-01 21:12:53 +01:00
deferredget.h breaking changes: 2018-03-01 21:12:53 +01:00
deferredpublisher.h final step (although untested) for handling returned messages 2018-03-01 22:27:27 +01:00
deferredqueue.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
deferredreceiver.h breaking changes: 2018-03-01 21:12:53 +01:00
endian.h removed more tabs 2018-03-06 08:45:12 +01:00
entityimpl.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
envelope.h Envelope: ensure const objects cannot be changed through _body 2018-04-20 18:27:53 -05:00
exception.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
exchangetype.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
field.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
fieldproxy.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
flags.h fixed autodelete flag for declaring an exchange and added support for internal exchange. this fixes #183 2018-02-06 21:54:56 +01:00
frame.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
libboostasio.h allow for a clean shutdown of asio connections 2018-03-12 12:07:09 +01:00
libev.h libev implementation was incorrect when one single handler was used to manage multiple connections 2018-04-12 12:05:22 +02:00
libevent.h optimizid dealing with ssl connections by not going back to the event loop that often, and prevented that object was staying in send state if it was endlessly sending data and not receiving anything, found this out when working on issue #207 2018-04-05 11:10:55 +02:00
libuv.h Build examples now with travis-ci to ensure new changes don't break existing code. Fixed warnings as a result of lambda captures. 2018-01-30 10:07:27 +00:00
linux_tcp.h forgot file 2018-01-26 22:42:56 +01:00
login.h fixed writing address to std::stream 2018-03-10 10:20:52 +01:00
message.h Envelope: ensure const objects cannot be changed through _body 2018-04-20 18:27:53 -05:00
metadata.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
monitor.h work in progress on closing ssl connections 2018-03-05 22:24:19 +01:00
numericfield.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
openssl.h added ability to set the handle to the openssl library (so that programs that load openssl via dlopen() can still use amqp-cpp) 2018-03-09 15:08:52 +01:00
outbuffer.h Added virtual dtor to OutBuffer 2018-04-18 15:46:46 +03:00
protocolexception.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
receivedframe.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
stack_ptr.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
stringfield.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
table.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00
watchable.h Reordered public include files so they are now in include/amqpcpp/. 2018-01-24 01:58:18 +01:00