| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
amqps_* examples only differ in the connection, and are otherwise
duplicates of the amqp_* examples. Delete these examples and rename
amqps_connection_timeout.c to amqp_ssl_connect.c to demonstrate how to
connect over SSL.
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of un-initializing OpenSSL when the connection count reaches 0
require API users to explicitly un-initialize OpenSSL if they care to.
In the common case this will require much less work to start a new SSL
connection.
As a side effect: cleanup and simplify the OpenSSL initialization
routines, including removing the thread-safety checks done for the BIO
since they will be called under the OpenSSL locking.
|
|
|
|
|
|
|
|
|
| |
Remove the option to disable thread-safety in the parts of rabbitmq-c
that use OpenSSL, making it a requirement for thread-safety to use SSL
with rabbitmq-c.
The existing #ifdef's are a source of additional complexity and the
non-thread-safe version is not well tested.
|
|
|
|
|
|
| |
Add a check that validates that running clang-format across the codebase
does not produce diffs. This will (hopefully) reduce the amount of
effort spent formatting stuff during PR reviews.
|
| |
|
|
|
|
| |
They're hard to keep in sync with .clang-format or other tools.
|
|
|
|
|
| |
amqp_framing.h is included by amqp.h, user code should not need to
include this.
|
|
|
|
| |
500ms is too short, and regularly times out when running on travis.
|
| |
|
|
|
|
|
| |
This builds rabbitmq-c with coverage enabled, and runs the tests,
uploading the results to coveralls.io.
|
|
|
|
| |
Add integration tests that run against a locally running broker.
|
|
|
| |
Fixes #451
|
| |
|
|
|
|
|
|
| |
CMake based system works on the 3 platforms that we target, and
maintaining a parallel build-system isn't worth it for this sized
project.
|
|
|
|
|
| |
HAVE_HTONLL was used for the byteswap code, which no longer uses htonll,
this can be removed.
|
| |
|
| |
|
|
|
|
|
|
| |
compatible int.
Signed-off-by: kokan <peter.kokai@balabit.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Autotools configure steps fails, when clang is used with -Werror option.
autoreconf (GNU Autoconf) 2.69
clang version 4.0.0-1ubuntu1 (tags/RELEASE_400/rc1)
More details:
The `AC_SEARCH_LIBS` creates a dummy function definition, with empty argument list, but in clang it is a warning unless void is given as parameter.
Signed-off-by: kokan <peter.kokai@balabit.com>
|
| |
|
| |
|
|
|
|
|
|
| |
Add a #define for AMQP_DEFAULT_VHOST pointing to "/", which is the
default vhost used by the RabbitMQ broker. This makes the code a bit
more readable, especially in example code.
|
|
|
|
|
| |
The documentation for amqp_consume_message refers to AMQP_STATUS_UNEXPECTED_FRAME, but this value doesn't exist. The correct value appears to be AMQP_STATUS_UNEXPECTED_STATE to match the implementation and amqp_consumer.c example.
https://github.com/alanxz/rabbitmq-c/blob/master/examples/amqp_consumer.c#L85
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor amqp_socket_open_inner so that the socket connection logic is
in it's own OS-specific socket_connect function, and the host resolution
and retry logic calls this. This makes the socket connection logic
easier to understand and reduces the number of win32 #ifdefs.
This also fixes an issue where multiple hostnames are not tried if
connect doesn't fail immediately.
Fixes #430
|
|
|
|
|
|
|
|
| |
precise (12.04) is EOL'd and scheduled to be turned down by the travis
folks in the next couple months.
Note that this switches back to VM-based system, as the libpopt-dev
package isn't available yet.
|
| |
|
|
|
|
| |
e.g., librabbitmq/.libs/librabbitmq.so: undefined reference to `pthread_once'
|
|
|
|
|
|
| |
- Enable TCP Keep Alive for rabbitmq client
- Helps in cases when the connection is conntracked or there is NAT
in between
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
SRWLOCK allows for static-initialization of the lock, matching the
semantics of pthread_mutex that is used in OpenSSL bits, simplifying the
code somewhat.
Note that this API only became available in Windows Vista and newer.
Given Windows XP and Windows Server 2003 are no longer supported by
Microsoft, using this newer API is an acceptable tradeoff.
|
|
|
|
|
|
|
| |
Add an OpenSSL BIO that ignores SIGPIPE by passing MSG_NOSIGNAL to the
send() and recv() calls on platforms that support it.
Fixes #401
|
| |
|
| |
|
|
|
|
|
|
|
| |
NULL check in empty_blockless was happening after its used. This
would've likely resulted in crashes if it was hit.
Found with PVS Studio run.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
Fixes #388
|
| |
|
|
|
|
|
| |
amqp_get_socket, amqp_get_server_properties, amqp_get_client_properites
were missing AMQP_CALL decorator.
|
| |
|
| |
|
|
|
|
| |
Files were removed as a part of a cleanup, and this was not caught.
|
| |
|
|
|
|
|
| |
MacOSX 10.11 no longer supplies headers for openssl. Install OpenSSL
using homebrew, and tell cmake where to find it.
|
| |
|
| |
|