| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
In tools/common.c `#ifdef WITH_SSL` is used but never defined if SSL support is
desired.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you have a single consumer C₁ and 10 messages are published, all 10
will be streamed to that one customer. Assume each message takes a few
minutes to be handled.
If a second consumer C₂ comes up before C₁ is able to process its first
message, it will stay idle until new messages are published, while C₁
will still have to process the other 9 messages after finishing with the
first one.
If both consumers were started with `--messages 1`, C₁ would only fetch
a single message, and start handling it; C₂ would start and already
receive the second message .
|
|
|
|
|
|
| |
This change fixes a bug where delivery mode value was hardcoded to
"persistent" even when --persistent flag wasn't specified on the command
line options.
|
| |
|
|
|
|
|
|
|
|
| |
Declare non-exclusive queue by default, which allows task queue
round-robin publishing when binding to a "direct" typed exchange with
a routing key matching the publisher's one and the queue name.
The "-d" option is replaced with a "-x" option to explicitly declare
an exclusive queue if needed.
|
|
|
|
|
|
|
|
| |
Improve the socket interface by making the amqp_connection_state_t
object the amqp_socket_t owner, and tie its lifetime to the connection's
lifetime. This prevents a class of silly errors where the socket object
isn't freed, or the socket object is assigned to two different
connection objects
|
| |
|
|
|
|
|
|
| |
Preserve API/ABI of amqp_error_string() by having it return a string
allocated on the heap. Deprecate this function in favor of
amqp_error_string2() which returns a statically allocated string
|
|
|
|
| |
This is an API/ABI break.
|
| |
|
|
|
|
| |
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
|
|
|
|
| |
It doesn't make much sense to have separate APIs to set the client
key/cert pair. This change also make it easier to port to other
backends.
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
| |
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
1. Use a single instance of the vtable for each object. This saves some
memory at the expense of an extra pointer dereference per method
invocation.
2. Compare the class vtable pointer in sub-class methods to determine if
the object type is correct.
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
|
|
|
|
|
| |
The general idea is to have a non-instantiable socket base class.
Connection-specific sub-classes provide a constructor and methods for
modifying connection parameters. `amqp_socket_close()` is the
destructor.
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
|
|
|
| |
Also reduce OpenSSL requirement to 1.0.0 (0.9.8 would probably be fine
as well).
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
| |
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
| |
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change abstracts out the networking functions so that the
user can provide an SSL/TLS implementation.
Callback functions replace `writev()`, `send()`, and `recv()` (there
is also a callback for error reporting). The default interface remains
unchanged. If the user wants to create a SSL/TLS connection they first
negotiate the connection and then use the new function
`amqp_set_sockfd_full()` to provide the networking implementation for
their SSL/TLS library. The user may provide an optional pointer to data
that is passed through to the networking functions.
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Issue was FindPackageHandleStandardArgs upper-cases the package name
so when XmlTo was passed to the FIND_PACKAGE_HANDLE_STANDARD_ARGS
function it created the variable XMLTO_FOUND instead of the expected
XmlTo_FOUND
|
|
|
|
|
|
|
|
| |
Changes to support building rabbitmq-c without having run the python
code generator, or do a git submodule init/update.
This is to facilitate creating links to downloadable source archives
from github
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Added: -Wall -Wextra -pedantic -Wstrict-prototypes -Wcast-align
-Wno-unused-function -fno-common -fvisibility=hidden
The library compiles cleanly with the exception of the tools dir
which has trouble with the initializer lists
|
|
|
|
|
|
|
| |
1. Standardize on `win32` vs `windows/win32`
2. Move `msinttypes` into platform directory
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
| |
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
| |
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
|
|
|
|
|
|
|
| |
This change should speed up parallel builds considerably. It also
simplifies the structure of the build system making it possible to
properly track dependencies.
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Utilities in the tools/ directory will now be built if
the popt library is found
|
|
|
|
|
| |
Did not enable because it requires popt and cmake needs to know
how to the popt headers and library
|
| |
|
| |
|
| |
|
|
|
|
| |
And generally bring debian/copyright up to date.
|
|
|
|
| |
Reported by Tony Garnock-Jones.
|
| |
|
|
|
|
| |
*strp[len] does not mean (*strp)[len]
|
|
|
|
|
|
| |
Those conventions are crazier than I thought. I leaned about this
from
<http://blogs.msdn.com/b/oldnewthing/archive/2010/09/17/10063629.aspx>.
|
| |
|
|
|
|
| |
Hooray, amqp.h is now ISO C90 clean.
|
|\ |
|
| |\ |
|