summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* lib: define WINVER under mingwAlan Antonuk2018-03-281-1/+4
| | | | Fixes #488
* examples: fix building against static librabbitmq.Eduard Egorov2018-03-281-0/+4
|
* Lib: Fixed an invalid CHECK_SUCCESS in amqp_set_initialize_ssl_libraryZane van Iperen2018-03-271-1/+1
|
* ci: enable OpenSSL v1.1.0 on Appveyorsigiesec2018-03-221-0/+12
|
* ci: add openssl 1.1.0 build on travissigiesec2018-03-221-0/+12
|
* Lib: remove use of OpenSSL functions deprecated in v1.1.0+Simon Giesecke2018-03-224-38/+70
|
* Lib: Support OpenSSL v1.1.0 in amqp_openssl_bioAlan Antonuk2018-03-123-10/+57
|
* Examples: Update amqp_ssl_connect.c to show how to un-initialize SSL library.Jesus Fernandez Manzano2018-01-301-0/+1
| | | | | After commit b80de27b, users have to explicitly un-initialize OpenSSL if they care to.
* Lib: initialize amqp_openssl_bio on first useAlan Antonuk2018-01-101-0/+6
|
* ssl: add support for SSL SNIChristian Betz2018-01-101-0/+7
|
* Lib: check encoded table length isn't too longAlan Antonuk2018-01-091-0/+4
| | | | | | Check encoded table length isn't longer than the encoded buffer. Fixes CID 1383630 caught by Coverity.
* Lib: check encoded array length isn't too longAlan Antonuk2018-01-091-0/+4
| | | | | | | Check that the encoded array length doesn't go past the available encoded data. Fixes defect CID 1383632 found by Coverity.
* Lib: fix socket leak when sockfd == 0Alan Antonuk2018-01-091-1/+1
| | | | | | amqp_open_socket_inner will leak the socket when sockfd == 0. Fixes CID: 1383631 caught by Coverity.
* Examples: remove duplicate amqps_* examplesrm-amqps-examplesAlan Antonuk2018-01-0910-1291/+2
| | | | | | | 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.
* ssl: OpenSSL should require explicitly un-initAlan Antonuk2017-12-106-101/+180
| | | | | | | | | | | 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.
* ssl: Make thread-safety unconditional in rabbitmq-cAlan Antonuk2017-12-105-45/+26
| | | | | | | | | 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.
* ci: add format check to travis-ci build matrixAlan Antonuk2017-12-055-1/+18
| | | | | | 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.
* Format code with clang-formatAlan Antonuk2017-12-0565-4266/+4453
|
* Remove vim mode lines.formatAlan Antonuk2017-12-0477-77/+0
| | | | They're hard to keep in sync with .clang-format or other tools.
* Examples: remove #include <amqp_framing.h>Alan Antonuk2017-12-0419-45/+37
| | | | | amqp_framing.h is included by amqp.h, user code should not need to include this.
* test: Bump timeout in tests to 5spr443Alan Antonuk2017-11-061-2/+2
| | | | 500ms is too short, and regularly times out when running on travis.
* Doc: add coveralls badge.sigiesec2017-10-301-0/+2
|
* ci: Add coverage build to travissigiesec2017-10-303-1/+23
| | | | | This builds rabbitmq-c with coverage enabled, and runs the tests, uploading the results to coveralls.io.
* test: add tests for basic.get, basic.consume & basic.publishsigiesec2017-10-302-0/+211
| | | | Add integration tests that run against a locally running broker.
* tools-doc: correct typo in librabbitmq-tools.xmlAlan Antonuk2017-10-191-1/+1
| | | Fixes #451
* Remove mention of autotools build in READMEAlan Antonuk2017-10-111-12/+0
|
* build: remove autotools build systemAlan Antonuk2017-10-1011-1002/+1
| | | | | | 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.
* build: remove obsolete HAVE_HTONLL checkAlan Antonuk2017-10-102-11/+0
| | | | | HAVE_HTONLL was used for the byteswap code, which no longer uses htonll, this can be removed.
* Remove unneeded bracesJuan Eugenio Abadie2017-10-071-22/+20
|
* Doc: fix broken linkpr445Juan Eugenio Abadie2017-10-041-2/+2
|
* Calling va_start with enum is undefined behavior, replaced enum with ↵kokan2017-09-121-2/+2
| | | | | | compatible int. Signed-off-by: kokan <peter.kokai@balabit.com>
* Compiling issue with autotools, clang -Werror.kokan2017-09-121-0/+3
| | | | | | | | | | | | 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>
* Lib: simplify the byte-swap codeAlan Antonuk2017-08-202-135/+123
|
* Fix: correct spelling of comment in amqp.hAlan Antonuk2017-08-201-1/+1
|
* Add AMQP_DEFAULT_VHOST define for "/"Alan Antonuk2017-08-201-0/+11
| | | | | | 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.
* amqp_consume_message: replace AMQP_STATUS_UNEXPECTED_FRAME in docstringDavid Sharp2017-08-021-2/+2
| | | | | 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
* Lib: simplify socket connection logicconn-tryAlan Antonuk2017-07-251-163/+154
| | | | | | | | | | | | 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
* ci: build on trusty (14.04) on travis-ci.trustyAlan Antonuk2017-07-122-16/+13
| | | | | | | | 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.
* Properly deinit of OpenSSLJesus Fernandez Manzano2017-06-221-0/+12
|
* autotools: Fix linker errors when SSL is enabledTristan Matthews2017-05-161-0/+3
| | | | e.g., librabbitmq/.libs/librabbitmq.so: undefined reference to `pthread_once'
* TCP Keep alive for RabbitMQ ClientKetan Kulkarni2017-03-251-0/+6
| | | | | | - Enable TCP Keep Alive for rabbitmq client - Helps in cases when the connection is conntracked or there is NAT in between
* Lib: Do not set MSG_MORE on last message header if no body followsMartin Willi2017-03-231-2/+7
| | | | | | | | | | | | | 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.
* Lib: add methods to set timeout of AMQP RPCsrpc-timeoutAlan Antonuk2017-03-154-19/+104
| | | | Fixes #403
* Lib: close socket when amqp_login fails.Alan Antonuk2017-03-151-4/+2
|
* Lib: simplify reply generation in simple_rpc_innerAlan Antonuk2017-03-011-9/+3
|
* Doc: fix typo in amqp_get_handshake_timeout commentAlan Antonuk2017-03-011-1/+1
|
* CI: use appveyor's OpenSSL install.Alan Antonuk2017-02-201-15/+0
|
* Win32: use SRWLOCK instead of CRITIAL_SECTIONAlan Antonuk2017-02-203-46/+16
| | | | | | | | | | 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.
* ssl: Add OpenSSL BIO that passes MSG_NOSIGNALssl_bioAlan Antonuk2017-02-205-4/+209
| | | | | | | Add an OpenSSL BIO that ignores SIGPIPE by passing MSG_NOSIGNAL to the send() and recv() calls on platforms that support it. Fixes #401
* ci: Update OpenSSL package on appveyor to v1.0.1k.Alan Antonuk2017-02-201-1/+1
|