summaryrefslogtreecommitdiff
path: root/librabbitmq
Commit message (Collapse)AuthorAgeFilesLines
...
| * FIX: amqp_open_socket not defined.Alan Antonuk2013-07-231-0/+7
| | | | | | | | | | This fixes a regression introduced in 6ad770dc where the amqp_open_socket() function is no longer defined.
| * BUG: double-free in ssl-socket on connect failureAlan Antonuk2013-07-221-0/+1
| | | | | | | | | | | | | | In amqp_ssl_socket_open() set self->ssl to NULL after SSL_free() to avoid calling SSL_free() on a SSL object that has already been freed. This fixes #129 crash while call amqp_destroy_connection() with ssl
| * FIX: handle 0-len msg body in amqp_read_messageAlan Antonuk2013-07-101-5/+9
| |
| * FIX: basic_properties_clone handle 0-len stringsAlan Antonuk2013-07-101-6/+10
| | | | | | | | Properly handle 0-length strings in amqp_basic_properties_clone()
| * FIX: amqp_table_clone handle 0-len table correctlyAlan Antonuk2013-07-101-13/+30
| | | | | | | | | | | | | | | | amqp_pool_alloc_bytes() has undefined behavior when a 0-length buffer is allocated. Properly handles cases where 0-length tables or buffers are encountered when cloning a table. This fixes #127
| * FIX: Incorrect assert in wait_frame_innerAlan Antonuk2013-07-081-3/+0
| | | | | | | | | | | | | | | | Probably introduced when consume_one_frame() function was added, and wasn't found during testing because its rare to see partial recv of frame when testing locally. Need to devise a test for this. Fixes #126
| * Add a high level API for consuming messagesAlan Antonuk2013-07-085-1/+474
| |
| * Add amqp_table_clone() to deep-copy a amqp_table_tAlan Antonuk2013-07-062-0/+137
| |
| * Make sure date math is done in 64-bit precAlan Antonuk2013-07-061-4/+5
| | | | | | | | | | Some platforms declare tv.tv_sec and tv.tv_usec as long which is 32-bit which will integer overflow in our date math
| * Add nonblocking connect supportzaq178miami2013-07-0610-19/+294
| |
| * Squash OpenSSL deprecated warnings on MacOSX 10.7+Alan Antonuk2013-07-061-0/+4
| |
| * FIX: remove amqp_set_socket() from public APIAlan Antonuk2013-07-032-4/+13
| | | | | | | | This should've been removed in da9c2c109a
| * Get rid of amqp_socket_error interfaceAlan Antonuk2013-07-035-47/+0
| | | | | | | | | | Get rid of experimental amqp_socket_error interface. Errors are returned using the error codes from the primary function
| * Make connection the socket object ownerAlan Antonuk2013-07-038-52/+119
| | | | | | | | | | | | | | | | 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
* | Use _AMQP_INLINE for llvm supportAsk Solem2013-07-031-111/+15
| |
* | Merge branch 'alanxz/master'Ask Solem2013-07-0331-1423/+7292
|\ \ | |/ | | | | | | | | Conflicts: Makefile.am librabbitmq/amqp_private.h
| * OpenVMS MMS build systemAlan Antonuk2013-06-261-0/+15
| | | | | | | | Tested on OpenVMS v8.3 - Alpha. Likely to work on IA based systems as well
| * Code clarity improvements in heartbeat handlingAlan Antonuk2013-06-264-10/+26
| |
| * Add support for heartbeats in amqp_basic_publishAlan Antonuk2013-06-254-102/+228
| | | | | | | | | | Check heartbeats when doing basic.publish. Do this by doing a recv on the socket.
| * Add partial support for heartbeats in wait_frameAlan Antonuk2013-06-255-14/+88
| |
| * FIX: force correct timer precision on Mac OS XAlan Antonuk2013-06-251-1/+2
| |
| * FIX: disable SIGPIPE on platforms w/SO_NOSIGPIPEAlan Antonuk2013-06-251-2/+2
| | | | | | | | | | The DISABLE_SIGPIPE_WITH_SETSOCKOPT preprocessor define got deleted the os-layer socket functions were moved to amqp_socket.c. This fixes that.
| * Channel-based memory managementAlan Antonuk2013-06-215-42/+164
| | | | | | | | | | | | Assign a decoding pool on a per-channel basis. This allows memory to be released on a per-channel basis which is helpful for clients handling multiple channels
| * FIX: handle mach_timebase_info failureAlan Antonuk2013-06-181-0/+3
| |
| * FIX amqp_tune_connection don't delete state on errAlan Antonuk2013-06-181-1/+0
| | | | | | | | | | amqp_tune_connection shouldn't destroy the state object on memory error, it should be left to the calling function
| * FIX: handle amqp_get_sockfd failure in wait_frameAlan Antonuk2013-06-181-0/+3
| | | | | | | | | | CID 1035138 CID 1035137
| * FIX: incorrect bit-shift in amqp_error_string2Alan Antonuk2013-06-181-1/+1
| | | | | | | | CID 1035140
| * FIX: redecl of int i in amqp_tcp_socket_writevAlan Antonuk2013-06-181-1/+1
| |
| * Add amqp_simple_wait_frame_noblock() functionAlan Antonuk2013-06-143-4/+92
| | | | | | | | | | | | 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.
| * Add amqp_get_monotonic_timestamp() functionAlan Antonuk2013-06-143-1/+132
| |
| * Fix latent bugs with return error-codesAlan Antonuk2013-06-141-8/+4
| |
| * Set state->socket to NULL after amqp_socket_closeAlan Antonuk2013-06-141-0/+1
| | | | | | | | | | amqp_socket_close has the side-effect of destroying the socket object. Use after this will cause undefined behavior
| * ABI compat fix for +-ve vals in amqp_error_stringAlan Antonuk2013-06-141-0/+10
| | | | | | | | | | | | | | | | | | 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()Alan Antonuk2013-06-142-3/+21
| | | | | | | | | | | | 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
| * Change amqp_error_string() to ret static stringsAlan Antonuk2013-06-132-24/+73
| | | | | | | | This is an API/ABI break.
| * Move amqp_os_socket* funcs to amqp_socket.h/cAlan Antonuk2013-06-1311-384/+136
| | | | | | | | | | Doing this for code clarity, as its easier to see what the issues are when you have all implementations in one file
| * Improve error handling in socket functionsAlan Antonuk2013-06-135-60/+240
| |
| * Add more specific SSL connection error codesAlan Antonuk2013-06-132-29/+58
| | | | | | | | | | | | | | | | Add the following error codes: - hostname verify failure: e.g., provided hostname doesn't match peer certificate - peer verification failed - connection handshake failed
| * Correctly handle 0 ret val from SSL_read/writeAlan Antonuk2013-06-131-2/+2
| | | | | | | | | | A 0 return value from SSL_read/SSL_write means the (SSL) connection has been terminated.
| * Return error on socket lib init failureAlan Antonuk2013-06-132-1/+4
| | | | | | | | | | Winsock2 requires calling a function to initialize the socket library. This call can fail. Return an error code to the user if it does.
| * Don't abort() in amqp_simple_wait_frame()Alan Antonuk2013-06-132-17/+6
| | | | | | | | | | | | | | amqp_simple_wait_method() should not call abort(), instead close the underlying socket, then return AMQP_STATUS_WRONG_METHOD. This is still rather heavy-handed for a public API, however, its a lot better than killing the entire application
| * Don't abort() on invalid param in amqp_send_frame()Alan Antonuk2013-06-131-1/+1
| | | | | | | | | | Return AMQP_STATUS_INVALID_PARAMETER instead of calling abort() on an invalid frame type.
| * Report out of buf space error in amqp_table_encodeAlan Antonuk2013-06-132-14/+25
| | | | | | | | | | | | | | | | | | | | | | | | amqp_encode_8 and amqp_encode_bytes return 1 on success, 0 otherwise. Correct the checking of the return value of these functions to match the style used in amqp_table.c Report AMQP_STATUS_INVALID_PARAMETER in the event an invalid field kind is input (instead of abort()). Report AMQP_STATUS_TABLE_TOO_BIG if the table is too large to be encoded in the buffer provided.
| * Expose public error-code interfaceAlan Antonuk2013-06-1316-469/+455
| | | | | | | | | | | | | | | | | | | | 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.
| * FIX: missing va_end in amqp_login* functionsAlan Antonuk2013-05-251-4/+14
| | | | | | | | | | Be sure to va_end any va_start'ed va_lists in amqp_login and amqp_login_with_properties
| * FIX: memory leak in amqp_new_connectionAlan Antonuk2013-05-251-3/+1
| | | | | | | | | | | | amqp_new_connection will fail to free the amqp_connection_state_t object that is allocated when amqp_tune_connection fails with ERROR_NO_MEMORY. This fixes that
| * Update amqp.hJonathan2013-05-131-1/+1
| | | | | | Bug fixes, building with cmake & mingw on win32
| * CMake: make sure amqp_*_socket.h gets installedAlan Antonuk2013-04-191-6/+12
| |
| * Cleanup CMake librabbitmq target_link_libraries()Alan Antonuk2013-04-191-11/+5
| | | | | | | | | | | | Now have one variable to adjust when adding new libraries instead of adding it in 2 different places. Also make sure static rabbitmq-c links against the SSL libraries
| * Fixes to compile it on Win32/MSVCAlan Antonuk2013-04-173-7/+12
| |