| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This makes license detection machine-readable, and makes source files more concise and easier
to read and understand.
Signed-off-by: GitHub <noreply@github.com>
|
| |
|
|
|
|
| |
Make all struct timeval parameters that can be a const, a const.
|
| |
|
|
|
|
| |
They're hard to keep in sync with .clang-format or other tools.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduced with commit 2bc1f9b1b0 (lib: use MSG_MORE on Linux for
basic.publish), amqp_basic_publish() sets MSG_MORE on all but the
last send() syscall it triggers on the TCP socket to improve
performance. However, if no message body is provided, no completing
call without MSG_MORE follows, keeping the TCP packet pending.
On Linux, this may introduce a message send delay, until the kernel
sends out the data anyway after 200ms. This may add a significant
delay if a consumer is waiting for such an empty (confirmation)
message.
|
|
|
|
| |
Fixes #403
|
|
|
|
|
|
|
|
|
|
|
| |
By default the RabbitMQ broker sets a tunable timeout of 10 seconds
from socket-open to successful handshake. This introduces a similar
login timeout on the client side. If the login does not complete within
this timeout, amqp_login and friends will return AMQP_STATUS_TIMEOUT and
the connection will be considered dead.
Two new functions amqp_set_handshake_timeout and
amqp_get_handshake_timeout are introduced to tune this behavior.
|
|
|
|
|
| |
Check for code parameter being between 0 -> UINT16_MAX in
amqp_connection_close() and amqp_channel_close() functions.
|
|
|
|
|
| |
Add amqp_ssl_socket_versions function which allows a user to specify the
acceptable range of TLS versions they want to connect to the broker with.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
As a performance optimization in the send path, add an AMQP_SF_MORE flag
indicating that more data is intended to be sent, and that packets shouldn't be
sent out on the wire unless there is a full packet's worth of data available.
Use this to specify MSG_MORE to send() on Linux.
|
|
|
|
|
| |
If this project was Win32 only, I'd use them, but adding lots of ifdefs to kill
warnings doesn't make a whole lot of sense.
|
|
|
|
|
| |
Refactor the heartbeat timeout code to hopefully simplify it and hopefully make
it less hairy to deal with in the future.
|
|
|
|
| |
Rename the files to better reflect the functions that they contain.
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of passing around a start time and timeout interval, calculate this
early and pass around the timeout value (as a implementation detail), then
calculate against current timestamp. This simplifies the code, gives a more
realistic 'timeout' for the function at the cost of potentially a few more timer
pings.
Conflicts:
librabbitmq/amqp_socket.c
|
|
|
|
|
| |
Add error codes and associated error strings when the broker does not support
the desired SASL method.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Check heartbeats when doing basic.publish. Do this by doing a recv on
the socket.
|
| |
|
|
|
|
| |
CID 1035140
|
|
|
|
|
|
| |
Add non-blocking variant of amqp_simple_wait_frame() to assist clients
in writing programs that want non-blocking behavior when consuming
messages from the broker.
|
|
|
|
|
|
|
|
|
| |
To preserve ABI, map positive error codes into the negative error-code
domain in the amqp_error_string() function. This will preserve compat
with older code-bases that do amqp_error_string(-returnval)
Note: the function is marked as deprecated so the user will still get a
warning when compiling code that uses this function.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
Publicly define the error codes returned from the various public API
functions. The error codes are defined in the amqp_status_enum and are
all negative in value to work with functions that return positive
values.
OS and SSL specific codes are no longer munged into the error code, as
it is unlikely for that information to be useful to library users.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable the following GCC options:
1. -Wstrict-prototypes
2. -Wcast-align
3. -fno-common
4. -fvisibility=hidden
This commit also includes some general cleanup of header files (mostly
for readability).
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>
|
|
|
|
| |
See: https://github.com/rabbitmq/rabbitmq-c/issues/9
|
| |
|
| |
|
| |
|
|
|
|
| |
And generally bring debian/copyright up to date.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
There's a lot of boilerplate code in amqp_api.c for API functions
corresponding to synchronous AMQP methods. And some of the functions
that should be there are missing (e.g. basic.qos, basic.cancel).
Instead, we can generate these functions from the protocol definition,
plus a little information to describe where the function arguments do
not reflect all of the method fields.
|
|
|
|
| |
Hooray, amqp.h is now ISO C90 clean.
|
|
|
|
|
|
|
|
| |
And fix up the resulting warnings
We don't use "-ansi -pedantic" in the tools dir, because that code
relies on libpopt, and so is unlikely ever to work with the Microsoft
compiler anyway.
|
|
|
|
|
| |
Or rather, it seems to call it _snprintf. But we can easily live
without it for its uses in librabbitmq.
|
|
|
|
| |
They contained C99-style initializers
|