diff options
author | Alan Antonuk <alan.antonuk@gmail.com> | 2017-12-04 23:23:22 -0800 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2017-12-05 00:19:29 -0800 |
commit | afaab64a3f4c6977d66811cb7235431a085de0b2 (patch) | |
tree | e59fbd4ca9cbb8fcb0649329bc2b3c87b0ed3191 /librabbitmq | |
parent | 67048550b9ac3957fb29b7f9e7bf4b8ee3e9bc73 (diff) | |
download | rabbitmq-c-afaab64a3f4c6977d66811cb7235431a085de0b2.tar.gz |
Format code with clang-format
Diffstat (limited to 'librabbitmq')
-rw-r--r-- | librabbitmq/amqp.h | 954 | ||||
-rw-r--r-- | librabbitmq/amqp_api.c | 183 | ||||
-rw-r--r-- | librabbitmq/amqp_connection.c | 312 | ||||
-rw-r--r-- | librabbitmq/amqp_consumer.c | 57 | ||||
-rw-r--r-- | librabbitmq/amqp_framing.c | 2354 | ||||
-rw-r--r-- | librabbitmq/amqp_framing.h | 721 | ||||
-rw-r--r-- | librabbitmq/amqp_hostcheck.c | 125 | ||||
-rw-r--r-- | librabbitmq/amqp_mem.c | 60 | ||||
-rw-r--r-- | librabbitmq/amqp_openssl.c | 142 | ||||
-rw-r--r-- | librabbitmq/amqp_openssl_bio.c | 26 | ||||
-rw-r--r-- | librabbitmq/amqp_openssl_hostname_validation.c | 8 | ||||
-rw-r--r-- | librabbitmq/amqp_private.h | 71 | ||||
-rw-r--r-- | librabbitmq/amqp_socket.c | 360 | ||||
-rw-r--r-- | librabbitmq/amqp_socket.h | 53 | ||||
-rw-r--r-- | librabbitmq/amqp_ssl_socket.h | 65 | ||||
-rw-r--r-- | librabbitmq/amqp_table.c | 357 | ||||
-rw-r--r-- | librabbitmq/amqp_table.h | 2 | ||||
-rw-r--r-- | librabbitmq/amqp_tcp_socket.c | 84 | ||||
-rw-r--r-- | librabbitmq/amqp_tcp_socket.h | 8 | ||||
-rw-r--r-- | librabbitmq/amqp_time.c | 28 | ||||
-rw-r--r-- | librabbitmq/amqp_time.h | 24 | ||||
-rw-r--r-- | librabbitmq/amqp_url.c | 78 | ||||
-rw-r--r-- | librabbitmq/win32/msinttypes/stdint.h | 278 | ||||
-rw-r--r-- | librabbitmq/win32/threads.h | 6 |
24 files changed, 3364 insertions, 2992 deletions
diff --git a/librabbitmq/amqp.h b/librabbitmq/amqp.h index d0ae635..36b9901 100644 --- a/librabbitmq/amqp.h +++ b/librabbitmq/amqp.h @@ -56,85 +56,82 @@ */ #if defined(_WIN32) && defined(_MSC_VER) -# if defined(AMQP_BUILD) && !defined(AMQP_STATIC) -# define AMQP_PUBLIC_FUNCTION __declspec(dllexport) -# define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern -# else -# define AMQP_PUBLIC_FUNCTION -# if !defined(AMQP_STATIC) -# define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern -# else -# define AMQP_PUBLIC_VARIABLE extern -# endif -# endif -# define AMQP_CALL __cdecl +#if defined(AMQP_BUILD) && !defined(AMQP_STATIC) +#define AMQP_PUBLIC_FUNCTION __declspec(dllexport) +#define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern +#else +#define AMQP_PUBLIC_FUNCTION +#if !defined(AMQP_STATIC) +#define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern +#else +#define AMQP_PUBLIC_VARIABLE extern +#endif +#endif +#define AMQP_CALL __cdecl #elif defined(_WIN32) && defined(__BORLANDC__) -# if defined(AMQP_BUILD) && !defined(AMQP_STATIC) -# define AMQP_PUBLIC_FUNCTION __declspec(dllexport) -# define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern -# else -# define AMQP_PUBLIC_FUNCTION -# if !defined(AMQP_STATIC) -# define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern -# else -# define AMQP_PUBLIC_VARIABLE extern -# endif -# endif -# define AMQP_CALL __cdecl +#if defined(AMQP_BUILD) && !defined(AMQP_STATIC) +#define AMQP_PUBLIC_FUNCTION __declspec(dllexport) +#define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern +#else +#define AMQP_PUBLIC_FUNCTION +#if !defined(AMQP_STATIC) +#define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern +#else +#define AMQP_PUBLIC_VARIABLE extern +#endif +#endif +#define AMQP_CALL __cdecl #elif defined(_WIN32) && defined(__MINGW32__) -# if defined(AMQP_BUILD) && !defined(AMQP_STATIC) -# define AMQP_PUBLIC_FUNCTION __declspec(dllexport) -# define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern -# else -# define AMQP_PUBLIC_FUNCTION -# if !defined(AMQP_STATIC) -# define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern -# else -# define AMQP_PUBLIC_VARIABLE extern -# endif -# endif -# define AMQP_CALL __cdecl +#if defined(AMQP_BUILD) && !defined(AMQP_STATIC) +#define AMQP_PUBLIC_FUNCTION __declspec(dllexport) +#define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern +#else +#define AMQP_PUBLIC_FUNCTION +#if !defined(AMQP_STATIC) +#define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern +#else +#define AMQP_PUBLIC_VARIABLE extern +#endif +#endif +#define AMQP_CALL __cdecl #elif defined(_WIN32) && defined(__CYGWIN__) -# if defined(AMQP_BUILD) && !defined(AMQP_STATIC) -# define AMQP_PUBLIC_FUNCTION __declspec(dllexport) -# define AMQP_PUBLIC_VARIABLE __declspec(dllexport) -# else -# define AMQP_PUBLIC_FUNCTION -# if !defined(AMQP_STATIC) -# define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern -# else -# define AMQP_PUBLIC_VARIABLE extern -# endif -# endif -# define AMQP_CALL __cdecl +#if defined(AMQP_BUILD) && !defined(AMQP_STATIC) +#define AMQP_PUBLIC_FUNCTION __declspec(dllexport) +#define AMQP_PUBLIC_VARIABLE __declspec(dllexport) +#else +#define AMQP_PUBLIC_FUNCTION +#if !defined(AMQP_STATIC) +#define AMQP_PUBLIC_VARIABLE __declspec(dllimport) extern +#else +#define AMQP_PUBLIC_VARIABLE extern +#endif +#endif +#define AMQP_CALL __cdecl #elif defined(__GNUC__) && __GNUC__ >= 4 -# define AMQP_PUBLIC_FUNCTION \ - __attribute__ ((visibility ("default"))) -# define AMQP_PUBLIC_VARIABLE \ - __attribute__ ((visibility ("default"))) extern -# define AMQP_CALL +#define AMQP_PUBLIC_FUNCTION __attribute__((visibility("default"))) +#define AMQP_PUBLIC_VARIABLE __attribute__((visibility("default"))) extern +#define AMQP_CALL #else -# define AMQP_PUBLIC_FUNCTION -# define AMQP_PUBLIC_VARIABLE extern -# define AMQP_CALL +#define AMQP_PUBLIC_FUNCTION +#define AMQP_PUBLIC_VARIABLE extern +#define AMQP_CALL #endif #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) -# define AMQP_DEPRECATED(function) \ - function __attribute__ ((__deprecated__)) +#define AMQP_DEPRECATED(function) function __attribute__((__deprecated__)) #elif defined(_MSC_VER) -# define AMQP_DEPRECATED(function) \ - __declspec(deprecated) function +#define AMQP_DEPRECATED(function) __declspec(deprecated) function #else -# define AMQP_DEPRECATED(function) +#define AMQP_DEPRECATED(function) #endif /* Define ssize_t on Win32/64 platforms - See: http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-April/030649.html for details + See: http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-April/030649.html for + details */ #if !defined(_W64) #if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 @@ -226,7 +223,6 @@ AMQP_BEGIN_DECLS #define AMQP_VERSION_PATCH 1 #define AMQP_VERSION_IS_RELEASE 0 - /** * \def AMQP_VERSION_CODE * @@ -239,11 +235,7 @@ AMQP_BEGIN_DECLS * \since v0.6.1 */ #define AMQP_VERSION_CODE(major, minor, patch, release) \ - ((major << 24) | \ - (minor << 16) | \ - (patch << 8) | \ - (release)) - + ((major << 24) | (minor << 16) | (patch << 8) | (release)) /** * \def AMQP_VERSION @@ -263,18 +255,17 @@ AMQP_BEGIN_DECLS * * \since v0.4.0 */ -#define AMQP_VERSION AMQP_VERSION_CODE(AMQP_VERSION_MAJOR, \ - AMQP_VERSION_MINOR, \ - AMQP_VERSION_PATCH, \ - AMQP_VERSION_IS_RELEASE) +#define AMQP_VERSION \ + AMQP_VERSION_CODE(AMQP_VERSION_MAJOR, AMQP_VERSION_MINOR, \ + AMQP_VERSION_PATCH, AMQP_VERSION_IS_RELEASE) /** \cond HIDE_FROM_DOXYGEN */ #define AMQ_STRINGIFY(s) AMQ_STRINGIFY_HELPER(s) #define AMQ_STRINGIFY_HELPER(s) #s -#define AMQ_VERSION_STRING AMQ_STRINGIFY(AMQP_VERSION_MAJOR) "." \ - AMQ_STRINGIFY(AMQP_VERSION_MINOR) "." \ - AMQ_STRINGIFY(AMQP_VERSION_PATCH) +#define AMQ_VERSION_STRING \ + AMQ_STRINGIFY(AMQP_VERSION_MAJOR) \ + "." AMQ_STRINGIFY(AMQP_VERSION_MINOR) "." AMQ_STRINGIFY(AMQP_VERSION_PATCH) /** \endcond */ /** @@ -290,12 +281,11 @@ AMQP_BEGIN_DECLS * \since v0.4.0 */ #if AMQP_VERSION_IS_RELEASE -# define AMQP_VERSION_STRING AMQ_VERSION_STRING +#define AMQP_VERSION_STRING AMQ_VERSION_STRING #else -# define AMQP_VERSION_STRING AMQ_VERSION_STRING "-pre" +#define AMQP_VERSION_STRING AMQ_VERSION_STRING "-pre" #endif - /** * Returns the rabbitmq-c version as a packed integer. * @@ -308,8 +298,7 @@ AMQP_BEGIN_DECLS * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -uint32_t -AMQP_CALL amqp_version_number(void); +uint32_t AMQP_CALL amqp_version_number(void); /** * Returns the rabbitmq-c version as a string. @@ -323,8 +312,7 @@ AMQP_CALL amqp_version_number(void); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -char const * -AMQP_CALL amqp_version(void); +char const *AMQP_CALL amqp_version(void); /** * \def AMQP_DEFAULT_FRAME_SIZE @@ -404,8 +392,8 @@ typedef uint16_t amqp_channel_t; * \since v0.1 */ typedef struct amqp_bytes_t_ { - size_t len; /**< length of the buffer in bytes */ - void *bytes; /**< pointer to the beginning of the buffer */ + size_t len; /**< length of the buffer in bytes */ + void *bytes; /**< pointer to the beginning of the buffer */ } amqp_bytes_t; /** @@ -414,8 +402,8 @@ typedef struct amqp_bytes_t_ { * \since v0.1 */ typedef struct amqp_decimal_t_ { - uint8_t decimals; /**< the location of the decimal point */ - uint32_t value; /**< the value before the decimal point is applied */ + uint8_t decimals; /**< the location of the decimal point */ + uint32_t value; /**< the value before the decimal point is applied */ } amqp_decimal_t; /** @@ -424,15 +412,16 @@ typedef struct amqp_decimal_t_ { * An AMQP field table is a set of key-value pairs. * A key is a UTF-8 encoded string up to 128 bytes long, and are not null * terminated. - * A value can be one of several different datatypes. \sa amqp_field_value_kind_t + * A value can be one of several different datatypes. \sa + * amqp_field_value_kind_t * * \sa amqp_table_entry_t * * \since v0.1 */ typedef struct amqp_table_t_ { - int num_entries; /**< length of entries array */ - struct amqp_table_entry_t_ *entries; /**< an array of table entries */ + int num_entries; /**< length of entries array */ + struct amqp_table_entry_t_ *entries; /**< an array of table entries */ } amqp_table_t; /** @@ -443,8 +432,8 @@ typedef struct amqp_table_t_ { * \since v0.1 */ typedef struct amqp_array_t_ { - int num_entries; /**< Number of entries in the table */ - struct amqp_field_value_t_ *entries; /**< linked list of field values */ + int num_entries; /**< Number of entries in the table */ + struct amqp_field_value_t_ *entries; /**< linked list of field values */ } amqp_array_t; /* @@ -492,24 +481,26 @@ the code. * \since v0.1 */ typedef struct amqp_field_value_t_ { - uint8_t kind; /**< the type of the entry /sa amqp_field_value_kind_t */ + uint8_t kind; /**< the type of the entry /sa amqp_field_value_kind_t */ union { - amqp_boolean_t boolean; /**< boolean type AMQP_FIELD_KIND_BOOLEAN */ - int8_t i8; /**< int8_t type AMQP_FIELD_KIND_I8 */ - uint8_t u8; /**< uint8_t type AMQP_FIELD_KIND_U8 */ - int16_t i16; /**< int16_t type AMQP_FIELD_KIND_I16 */ - uint16_t u16; /**< uint16_t type AMQP_FIELD_KIND_U16 */ - int32_t i32; /**< int32_t type AMQP_FIELD_KIND_I32 */ - uint32_t u32; /**< uint32_t type AMQP_FIELD_KIND_U32 */ - int64_t i64; /**< int64_t type AMQP_FIELD_KIND_I64 */ - uint64_t u64; /**< uint64_t type AMQP_FIELD_KIND_U64, AMQP_FIELD_KIND_TIMESTAMP */ - float f32; /**< float type AMQP_FIELD_KIND_F32 */ - double f64; /**< double type AMQP_FIELD_KIND_F64 */ - amqp_decimal_t decimal; /**< amqp_decimal_t AMQP_FIELD_KIND_DECIMAL */ - amqp_bytes_t bytes; /**< amqp_bytes_t type AMQP_FIELD_KIND_UTF8, AMQP_FIELD_KIND_BYTES */ - amqp_table_t table; /**< amqp_table_t type AMQP_FIELD_KIND_TABLE */ - amqp_array_t array; /**< amqp_array_t type AMQP_FIELD_KIND_ARRAY */ - } value; /**< a union of the value */ + amqp_boolean_t boolean; /**< boolean type AMQP_FIELD_KIND_BOOLEAN */ + int8_t i8; /**< int8_t type AMQP_FIELD_KIND_I8 */ + uint8_t u8; /**< uint8_t type AMQP_FIELD_KIND_U8 */ + int16_t i16; /**< int16_t type AMQP_FIELD_KIND_I16 */ + uint16_t u16; /**< uint16_t type AMQP_FIELD_KIND_U16 */ + int32_t i32; /**< int32_t type AMQP_FIELD_KIND_I32 */ + uint32_t u32; /**< uint32_t type AMQP_FIELD_KIND_U32 */ + int64_t i64; /**< int64_t type AMQP_FIELD_KIND_I64 */ + uint64_t u64; /**< uint64_t type AMQP_FIELD_KIND_U64, + AMQP_FIELD_KIND_TIMESTAMP */ + float f32; /**< float type AMQP_FIELD_KIND_F32 */ + double f64; /**< double type AMQP_FIELD_KIND_F64 */ + amqp_decimal_t decimal; /**< amqp_decimal_t AMQP_FIELD_KIND_DECIMAL */ + amqp_bytes_t bytes; /**< amqp_bytes_t type AMQP_FIELD_KIND_UTF8, + AMQP_FIELD_KIND_BYTES */ + amqp_table_t table; /**< amqp_table_t type AMQP_FIELD_KIND_TABLE */ + amqp_array_t array; /**< amqp_array_t type AMQP_FIELD_KIND_ARRAY */ + } value; /**< a union of the value */ } amqp_field_value_t; /** @@ -520,9 +511,9 @@ typedef struct amqp_field_value_t_ { * \since v0.1 */ typedef struct amqp_table_entry_t_ { - amqp_bytes_t key; /**< the table entry key. Its a null-terminated UTF-8 string, - * with a maximum size of 128 bytes */ - amqp_field_value_t value; /**< the table entry values */ + amqp_bytes_t key; /**< the table entry key. Its a null-terminated UTF-8 + * string, with a maximum size of 128 bytes */ + amqp_field_value_t value; /**< the table entry values */ } amqp_table_entry_t; /** @@ -531,24 +522,32 @@ typedef struct amqp_table_entry_t_ { * \since v0.1 */ typedef enum { - AMQP_FIELD_KIND_BOOLEAN = 't', /**< boolean type. 0 = false, 1 = true @see amqp_boolean_t */ - AMQP_FIELD_KIND_I8 = 'b', /**< 8-bit signed integer, datatype: int8_t */ - AMQP_FIELD_KIND_U8 = 'B', /**< 8-bit unsigned integer, datatype: uint8_t */ - AMQP_FIELD_KIND_I16 = 's', /**< 16-bit signed integer, datatype: int16_t */ - AMQP_FIELD_KIND_U16 = 'u', /**< 16-bit unsigned integer, datatype: uint16_t */ - AMQP_FIELD_KIND_I32 = 'I', /**< 32-bit signed integer, datatype: int32_t */ - AMQP_FIELD_KIND_U32 = 'i', /**< 32-bit unsigned integer, datatype: uint32_t */ - AMQP_FIELD_KIND_I64 = 'l', /**< 64-bit signed integer, datatype: int64_t */ - AMQP_FIELD_KIND_U64 = 'L', /**< 64-bit unsigned integer, datatype: uint64_t */ - AMQP_FIELD_KIND_F32 = 'f', /**< single-precision floating point value, datatype: float */ - AMQP_FIELD_KIND_F64 = 'd', /**< double-precision floating point value, datatype: double */ - AMQP_FIELD_KIND_DECIMAL = 'D', /**< amqp-decimal value, datatype: amqp_decimal_t */ - AMQP_FIELD_KIND_UTF8 = 'S', /**< UTF-8 null-terminated character string, datatype: amqp_bytes_t */ - AMQP_FIELD_KIND_ARRAY = 'A', /**< field array (repeated values of another datatype. datatype: amqp_array_t */ - AMQP_FIELD_KIND_TIMESTAMP = 'T',/**< 64-bit timestamp. datatype uint64_t */ - AMQP_FIELD_KIND_TABLE = 'F', /**< field table. encapsulates a table inside a table entry. datatype: amqp_table_t */ - AMQP_FIELD_KIND_VOID = 'V', /**< empty entry */ - AMQP_FIELD_KIND_BYTES = 'x' /**< unformatted byte string, datatype: amqp_bytes_t */ + AMQP_FIELD_KIND_BOOLEAN = + 't', /**< boolean type. 0 = false, 1 = true @see amqp_boolean_t */ + AMQP_FIELD_KIND_I8 = 'b', /**< 8-bit signed integer, datatype: int8_t */ + AMQP_FIELD_KIND_U8 = 'B', /**< 8-bit unsigned integer, datatype: uint8_t */ + AMQP_FIELD_KIND_I16 = 's', /**< 16-bit signed integer, datatype: int16_t */ + AMQP_FIELD_KIND_U16 = 'u', /**< 16-bit unsigned integer, datatype: uint16_t */ + AMQP_FIELD_KIND_I32 = 'I', /**< 32-bit signed integer, datatype: int32_t */ + AMQP_FIELD_KIND_U32 = 'i', /**< 32-bit unsigned integer, datatype: uint32_t */ + AMQP_FIELD_KIND_I64 = 'l', /**< 64-bit signed integer, datatype: int64_t */ + AMQP_FIELD_KIND_U64 = 'L', /**< 64-bit unsigned integer, datatype: uint64_t */ + AMQP_FIELD_KIND_F32 = + 'f', /**< single-precision floating point value, datatype: float */ + AMQP_FIELD_KIND_F64 = + 'd', /**< double-precision floating point value, datatype: double */ + AMQP_FIELD_KIND_DECIMAL = + 'D', /**< amqp-decimal value, datatype: amqp_decimal_t */ + AMQP_FIELD_KIND_UTF8 = 'S', /**< UTF-8 null-terminated character string, + datatype: amqp_bytes_t */ + AMQP_FIELD_KIND_ARRAY = 'A', /**< field array (repeated values of another + datatype. datatype: amqp_array_t */ + AMQP_FIELD_KIND_TIMESTAMP = 'T', /**< 64-bit timestamp. datatype uint64_t */ + AMQP_FIELD_KIND_TABLE = 'F', /**< field table. encapsulates a table inside a + table entry. datatype: amqp_table_t */ + AMQP_FIELD_KIND_VOID = 'V', /**< empty entry */ + AMQP_FIELD_KIND_BYTES = + 'x' /**< unformatted byte string, datatype: amqp_bytes_t */ } amqp_field_value_kind_t; /** @@ -557,8 +556,8 @@ typedef enum { * \since v0.1 */ typedef struct amqp_pool_blocklist_t_ { - int num_blocks; /**< Number of blocks in the block list */ - void **blocklist; /**< Array of memory blocks */ + int num_blocks; /**< Number of blocks in the block list */ + void **blocklist; /**< Array of memory blocks */ } amqp_pool_blocklist_t; /** @@ -567,18 +566,19 @@ typedef struct amqp_pool_blocklist_t_ { * \since v0.1 */ typedef struct amqp_pool_t_ { - size_t pagesize; /**< the size of the page in bytes. - * allocations less than or equal to this size are - * allocated in the pages block list - * allocations greater than this are allocated in their - * own block in the large_blocks block list */ - - amqp_pool_blocklist_t pages; /**< blocks that are the size of pagesize */ - amqp_pool_blocklist_t large_blocks; /**< allocations larger than the pagesize */ - - int next_page; /**< an index to the next unused page block */ - char *alloc_block; /**< pointer to the current allocation block */ - size_t alloc_used; /**< number of bytes in the current allocation block that has been used */ + size_t pagesize; /**< the size of the page in bytes. Allocations less than or + * equal to this size are allocated in the pages block list. + * Allocations greater than this are allocated in their own + * own block in the large_blocks block list */ + + amqp_pool_blocklist_t pages; /**< blocks that are the size of pagesize */ + amqp_pool_blocklist_t + large_blocks; /**< allocations larger than the pagesize */ + + int next_page; /**< an index to the next unused page block */ + char *alloc_block; /**< pointer to the current allocation block */ + size_t alloc_used; /**< number of bytes in the current allocation block that + has been used */ } amqp_pool_t; /** @@ -587,9 +587,9 @@ typedef struct amqp_pool_t_ { * \since v0.1 */ typedef struct amqp_method_t_ { - amqp_method_number_t id; /**< the method id number */ - void *decoded; /**< pointer to the decoded method, - * cast to the appropriate type to use */ + amqp_method_number_t id; /**< the method id number */ + void *decoded; /**< pointer to the decoded method, + * cast to the appropriate type to use */ } amqp_method_t; /** @@ -598,30 +598,32 @@ typedef struct amqp_method_t_ { * \since v0.1 */ typedef struct amqp_frame_t_ { - uint8_t frame_type; /**< frame type. The types: - * - AMQP_FRAME_METHOD - use the method union member - * - AMQP_FRAME_HEADER - use the properties union member - * - AMQP_FRAME_BODY - use the body_fragment union member - */ - amqp_channel_t channel; /**< the channel the frame was received on */ + uint8_t frame_type; /**< frame type. The types: + * - AMQP_FRAME_METHOD - use the method union member + * - AMQP_FRAME_HEADER - use the properties union member + * - AMQP_FRAME_BODY - use the body_fragment union member + */ + amqp_channel_t channel; /**< the channel the frame was received on */ union { - amqp_method_t method; /**< a method, use if frame_type == AMQP_FRAME_METHOD */ + amqp_method_t + method; /**< a method, use if frame_type == AMQP_FRAME_METHOD */ struct { - uint16_t class_id; /**< the class for the properties */ - uint64_t body_size; /**< size of the body in bytes */ - void *decoded; /**< the decoded properties */ - amqp_bytes_t raw; /**< amqp-encoded properties structure */ - } properties; /**< message header, a.k.a., properties, - use if frame_type == AMQP_FRAME_HEADER */ - amqp_bytes_t body_fragment; /**< a body fragment, use if frame_type == AMQP_FRAME_BODY */ + uint16_t class_id; /**< the class for the properties */ + uint64_t body_size; /**< size of the body in bytes */ + void *decoded; /**< the decoded properties */ + amqp_bytes_t raw; /**< amqp-encoded properties structure */ + } properties; /**< message header, a.k.a., properties, + use if frame_type == AMQP_FRAME_HEADER */ + amqp_bytes_t body_fragment; /**< a body fragment, use if frame_type == + AMQP_FRAME_BODY */ struct { - uint8_t transport_high; /**< @internal first byte of handshake */ - uint8_t transport_low; /**< @internal second byte of handshake */ - uint8_t protocol_version_major; /**< @internal third byte of handshake */ - uint8_t protocol_version_minor; /**< @internal fourth byte of handshake */ - } protocol_header; /**< Used only when doing the initial handshake with the broker, - don't use otherwise */ - } payload; /**< the payload of the frame */ + uint8_t transport_high; /**< @internal first byte of handshake */ + uint8_t transport_low; /**< @internal second byte of handshake */ + uint8_t protocol_version_major; /**< @internal third byte of handshake */ + uint8_t protocol_version_minor; /**< @internal fourth byte of handshake */ + } protocol_header; /**< Used only when doing the initial handshake with the + broker, don't use otherwise */ + } payload; /**< the payload of the frame */ } amqp_frame_t; /** @@ -630,10 +632,12 @@ typedef struct amqp_frame_t_ { * \since v0.1 */ typedef enum amqp_response_type_enum_ { - AMQP_RESPONSE_NONE = 0, /**< the library got an EOF from the socket */ - AMQP_RESPONSE_NORMAL, /**< response normal, the RPC completed successfully */ - AMQP_RESPONSE_LIBRARY_EXCEPTION,/**< library error, an error occurred in the library, examine the library_error */ - AMQP_RESPONSE_SERVER_EXCEPTION /**< server exception, the broker returned an error, check replay */ + AMQP_RESPONSE_NONE = 0, /**< the library got an EOF from the socket */ + AMQP_RESPONSE_NORMAL, /**< response normal, the RPC completed successfully */ + AMQP_RESPONSE_LIBRARY_EXCEPTION, /**< library error, an error occurred in the + library, examine the library_error */ + AMQP_RESPONSE_SERVER_EXCEPTION /**< server exception, the broker returned an + error, check replay */ } amqp_response_type_enum; /** @@ -642,18 +646,23 @@ typedef enum amqp_response_type_enum_ { * \since v0.1 */ typedef struct amqp_rpc_reply_t_ { - amqp_response_type_enum reply_type; /**< the reply type: - * - AMQP_RESPONSE_NORMAL - the RPC completed successfully - * - AMQP_RESPONSE_SERVER_EXCEPTION - the broker returned - * an exception, check the reply field - * - AMQP_RESPONSE_LIBRARY_EXCEPTION - the library - * encountered an error, check the library_error field - */ - amqp_method_t reply; /**< in case of AMQP_RESPONSE_SERVER_EXCEPTION this - * field will be set to the method returned from the broker */ - int library_error; /**< in case of AMQP_RESPONSE_LIBRARY_EXCEPTION this - * field will be set to an error code. An error - * string can be retrieved using amqp_error_string */ + amqp_response_type_enum reply_type; /**< the reply type: + * - AMQP_RESPONSE_NORMAL - the RPC + * completed successfully + * - AMQP_RESPONSE_SERVER_EXCEPTION - the + * broker returned + * an exception, check the reply field + * - AMQP_RESPONSE_LIBRARY_EXCEPTION - the + * library + * encountered an error, check the + * library_error field + */ + amqp_method_t reply; /**< in case of AMQP_RESPONSE_SERVER_EXCEPTION this + * field will be set to the method returned from the + * broker */ + int library_error; /**< in case of AMQP_RESPONSE_LIBRARY_EXCEPTION this + * field will be set to an error code. An error + * string can be retrieved using amqp_error_string */ } amqp_rpc_reply_t; /** @@ -663,8 +672,10 @@ typedef struct amqp_rpc_reply_t_ { */ typedef enum amqp_sasl_method_enum_ { AMQP_SASL_METHOD_UNDEFINED = -1, /**< Invalid SASL method */ - AMQP_SASL_METHOD_PLAIN = 0, /**< the PLAIN SASL method for authentication to the broker */ - AMQP_SASL_METHOD_EXTERNAL = 1 /**< the EXTERNAL SASL method for authentication to the broker */ + AMQP_SASL_METHOD_PLAIN = + 0, /**< the PLAIN SASL method for authentication to the broker */ + AMQP_SASL_METHOD_EXTERNAL = + 1 /**< the EXTERNAL SASL method for authentication to the broker */ } amqp_sasl_method_enum; /** @@ -686,77 +697,77 @@ typedef struct amqp_socket_t_ amqp_socket_t; * * \since v0.4.0 */ -/* NOTE: When updating this enum, update the strings in librabbitmq/amqp_api.c */ -typedef enum amqp_status_enum_ -{ - AMQP_STATUS_OK = 0x0, /**< Operation successful */ - AMQP_STATUS_NO_MEMORY = -0x0001, /**< Memory allocation +/* NOTE: When updating this enum, update the strings in librabbitmq/amqp_api.c + */ +typedef enum amqp_status_enum_ { + AMQP_STATUS_OK = 0x0, /**< Operation successful */ + AMQP_STATUS_NO_MEMORY = -0x0001, /**< Memory allocation failed */ - AMQP_STATUS_BAD_AMQP_DATA = -0x0002, /**< Incorrect or corrupt - data was received from - the broker. This is a - protocol error. */ - AMQP_STATUS_UNKNOWN_CLASS = -0x0003, /**< An unknown AMQP class - was received. This is - a protocol error. */ - AMQP_STATUS_UNKNOWN_METHOD = -0x0004, /**< An unknown AMQP method - was received. This is - a protocol error. */ - AMQP_STATUS_HOSTNAME_RESOLUTION_FAILED= -0x0005, /**< Unable to resolve the - * hostname */ - AMQP_STATUS_INCOMPATIBLE_AMQP_VERSION = -0x0006, /**< The broker advertised - an incompaible AMQP - version */ - AMQP_STATUS_CONNECTION_CLOSED = -0x0007, /**< The connection to the - broker has been closed - */ - AMQP_STATUS_BAD_URL = -0x0008, /**< malformed AMQP URL */ - AMQP_STATUS_SOCKET_ERROR = -0x0009, /**< A socket error - occurred */ - AMQP_STATUS_INVALID_PARAMETER = -0x000A, /**< An invalid parameter - was passed into the - function */ - AMQP_STATUS_TABLE_TOO_BIG = -0x000B, /**< The amqp_table_t object - cannot be serialized - because the output - buffer is too small */ - AMQP_STATUS_WRONG_METHOD = -0x000C, /**< The wrong method was - received */ - AMQP_STATUS_TIMEOUT = -0x000D, /**< Operation timed out */ - AMQP_STATUS_TIMER_FAILURE = -0x000E, /**< The underlying system - timer facility failed */ - AMQP_STATUS_HEARTBEAT_TIMEOUT = -0x000F, /**< Timed out waiting for - heartbeat */ - AMQP_STATUS_UNEXPECTED_STATE = -0x0010, /**< Unexpected protocol - state */ - AMQP_STATUS_SOCKET_CLOSED = -0x0011, /**< Underlying socket is - closed */ - AMQP_STATUS_SOCKET_INUSE = -0x0012, /**< Underlying socket is - already open */ + AMQP_STATUS_BAD_AMQP_DATA = -0x0002, /**< Incorrect or corrupt + data was received from + the broker. This is a + protocol error. */ + AMQP_STATUS_UNKNOWN_CLASS = -0x0003, /**< An unknown AMQP class + was received. This is + a protocol error. */ + AMQP_STATUS_UNKNOWN_METHOD = -0x0004, /**< An unknown AMQP method + was received. This is + a protocol error. */ + AMQP_STATUS_HOSTNAME_RESOLUTION_FAILED = -0x0005, /**< Unable to resolve the + * hostname */ + AMQP_STATUS_INCOMPATIBLE_AMQP_VERSION = -0x0006, /**< The broker advertised + an incompaible AMQP + version */ + AMQP_STATUS_CONNECTION_CLOSED = -0x0007, /**< The connection to the + broker has been closed + */ + AMQP_STATUS_BAD_URL = -0x0008, /**< malformed AMQP URL */ + AMQP_STATUS_SOCKET_ERROR = -0x0009, /**< A socket error + occurred */ + AMQP_STATUS_INVALID_PARAMETER = -0x000A, /**< An invalid parameter + was passed into the + function */ + AMQP_STATUS_TABLE_TOO_BIG = -0x000B, /**< The amqp_table_t object + cannot be serialized + because the output + buffer is too small */ + AMQP_STATUS_WRONG_METHOD = -0x000C, /**< The wrong method was + received */ + AMQP_STATUS_TIMEOUT = -0x000D, /**< Operation timed out */ + AMQP_STATUS_TIMER_FAILURE = -0x000E, /**< The underlying system + timer facility failed */ + AMQP_STATUS_HEARTBEAT_TIMEOUT = -0x000F, /**< Timed out waiting for + heartbeat */ + AMQP_STATUS_UNEXPECTED_STATE = -0x0010, /**< Unexpected protocol + state */ + AMQP_STATUS_SOCKET_CLOSED = -0x0011, /**< Underlying socket is + closed */ + AMQP_STATUS_SOCKET_INUSE = -0x0012, /**< Underlying socket is + already open */ AMQP_STATUS_BROKER_UNSUPPORTED_SASL_METHOD = -0x0013, /**< Broker does not support the requested SASL mechanism */ - AMQP_STATUS_UNSUPPORTED = -0x0014, /**< Parameter is unsupported - in this version */ - _AMQP_STATUS_NEXT_VALUE = -0x0015, /**< Internal value */ - - AMQP_STATUS_TCP_ERROR = -0x0100, /**< A generic TCP error - occurred */ - AMQP_STATUS_TCP_SOCKETLIB_INIT_ERROR = -0x0101, /**< An error occurred trying - to initialize the - socket library*/ - _AMQP_STATUS_TCP_NEXT_VALUE = -0x0102, /**< Internal value */ - - AMQP_STATUS_SSL_ERROR = -0x0200, /**< A generic SSL error - occurred. */ - AMQP_STATUS_SSL_HOSTNAME_VERIFY_FAILED= -0x0201, /**< SSL validation of - hostname against - peer certificate - failed */ - AMQP_STATUS_SSL_PEER_VERIFY_FAILED = -0x0202, /**< SSL validation of peer - certificate failed. */ - AMQP_STATUS_SSL_CONNECTION_FAILED = -0x0203, /**< SSL handshake failed. */ - _AMQP_STATUS_SSL_NEXT_VALUE = -0x0204 /**< Internal value */ + AMQP_STATUS_UNSUPPORTED = -0x0014, /**< Parameter is unsupported + in this version */ + _AMQP_STATUS_NEXT_VALUE = -0x0015, /**< Internal value */ + + AMQP_STATUS_TCP_ERROR = -0x0100, /**< A generic TCP error + occurred */ + AMQP_STATUS_TCP_SOCKETLIB_INIT_ERROR = -0x0101, /**< An error occurred trying + to initialize the + socket library*/ + _AMQP_STATUS_TCP_NEXT_VALUE = -0x0102, /**< Internal value */ + + AMQP_STATUS_SSL_ERROR = -0x0200, /**< A generic SSL error + occurred. */ + AMQP_STATUS_SSL_HOSTNAME_VERIFY_FAILED = -0x0201, /**< SSL validation of + hostname against + peer certificate + failed */ + AMQP_STATUS_SSL_PEER_VERIFY_FAILED = -0x0202, /**< SSL validation of peer + certificate failed. */ + AMQP_STATUS_SSL_CONNECTION_FAILED = -0x0203, /**< SSL handshake failed. */ + _AMQP_STATUS_SSL_NEXT_VALUE = -0x0204 /**< Internal value */ } amqp_status_enum; /** @@ -766,8 +777,8 @@ typedef enum amqp_status_enum_ * \since v0.5 */ typedef enum { - AMQP_DELIVERY_NONPERSISTENT = 1, /**< Non-persistent message */ - AMQP_DELIVERY_PERSISTENT = 2 /**< Persistent message */ + AMQP_DELIVERY_NONPERSISTENT = 1, /**< Non-persistent message */ + AMQP_DELIVERY_PERSISTENT = 2 /**< Persistent message */ } amqp_delivery_mode_enum; AMQP_END_DECLS @@ -855,8 +866,7 @@ AMQP_PUBLIC_VARIABLE const amqp_array_t amqp_empty_array; * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL init_amqp_pool(amqp_pool_t *pool, size_t pagesize); +void AMQP_CALL init_amqp_pool(amqp_pool_t *pool, size_t pagesize); /** * Recycles an amqp_pool_t memory allocation pool @@ -879,8 +889,7 @@ AMQP_CALL init_amqp_pool(amqp_pool_t *pool, size_t pagesize); * */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL recycle_amqp_pool(amqp_pool_t *pool); +void AMQP_CALL recycle_amqp_pool(amqp_pool_t *pool); /** * Empties an amqp memory pool @@ -892,8 +901,7 @@ AMQP_CALL recycle_amqp_pool(amqp_pool_t *pool); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL empty_amqp_pool(amqp_pool_t *pool); +void AMQP_CALL empty_amqp_pool(amqp_pool_t *pool); /** * Allocates a block of memory from an amqp_pool_t memory pool @@ -912,8 +920,7 @@ AMQP_CALL empty_amqp_pool(amqp_pool_t *pool); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void * -AMQP_CALL amqp_pool_alloc(amqp_pool_t *pool, size_t amount); +void *AMQP_CALL amqp_pool_alloc(amqp_pool_t *pool, size_t amount); /** * Allocates a block of memory from an amqp_pool_t to an amqp_bytes_t @@ -935,8 +942,8 @@ AMQP_CALL amqp_pool_alloc(amqp_pool_t *pool, size_t amount); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_pool_alloc_bytes(amqp_pool_t *pool, size_t amount, amqp_bytes_t *output); +void AMQP_CALL amqp_pool_alloc_bytes(amqp_pool_t *pool, size_t amount, + amqp_bytes_t *output); /** * Wraps a c string in an amqp_bytes_t @@ -957,8 +964,7 @@ AMQP_CALL amqp_pool_alloc_bytes(amqp_pool_t *pool, size_t amount, amqp_bytes_t * * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_bytes_t -AMQP_CALL amqp_cstring_bytes(char const *cstr); +amqp_bytes_t AMQP_CALL amqp_cstring_bytes(char const *cstr); /** * Duplicates an amqp_bytes_t buffer. @@ -977,8 +983,7 @@ AMQP_CALL amqp_cstring_bytes(char const *cstr); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_bytes_t -AMQP_CALL amqp_bytes_malloc_dup(amqp_bytes_t src); +amqp_bytes_t AMQP_CALL amqp_bytes_malloc_dup(amqp_bytes_t src); /** * Allocates a amqp_bytes_t buffer @@ -995,8 +1000,7 @@ AMQP_CALL amqp_bytes_malloc_dup(amqp_bytes_t src); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_bytes_t -AMQP_CALL amqp_bytes_malloc(size_t amount); +amqp_bytes_t AMQP_CALL amqp_bytes_malloc(size_t amount); /** * Frees an amqp_bytes_t buffer @@ -1013,8 +1017,7 @@ AMQP_CALL amqp_bytes_malloc(size_t amount); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_bytes_free(amqp_bytes_t bytes); +void AMQP_CALL amqp_bytes_free(amqp_bytes_t bytes); /** * Allocate and initialize a new amqp_connection_state_t object @@ -1029,8 +1032,7 @@ AMQP_CALL amqp_bytes_free(amqp_bytes_t bytes); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_connection_state_t -AMQP_CALL amqp_new_connection(void); +amqp_connection_state_t AMQP_CALL amqp_new_connection(void); /** * Get the underlying socket descriptor for the connection @@ -1050,9 +1052,7 @@ AMQP_CALL amqp_new_connection(void); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_get_sockfd(amqp_connection_state_t state); - +int AMQP_CALL amqp_get_sockfd(amqp_connection_state_t state); /** * Deprecated, use amqp_tcp_socket_new() or amqp_ssl_socket_new() @@ -1071,12 +1071,8 @@ AMQP_CALL amqp_get_sockfd(amqp_connection_state_t state); * * \since v0.1 */ -AMQP_DEPRECATED( - AMQP_PUBLIC_FUNCTION - void - AMQP_CALL amqp_set_sockfd(amqp_connection_state_t state, int sockfd) -); - +AMQP_DEPRECATED(AMQP_PUBLIC_FUNCTION void AMQP_CALL + amqp_set_sockfd(amqp_connection_state_t state, int sockfd)); /** * Tune client side parameters @@ -1111,11 +1107,9 @@ AMQP_DEPRECATED( * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_tune_connection(amqp_connection_state_t state, - int channel_max, - int frame_max, - int heartbeat); +int AMQP_CALL amqp_tune_connection(amqp_connection_state_t state, + int channel_max, int frame_max, + int heartbeat); /** * Get the maximum number of channels the connection can handle @@ -1129,8 +1123,7 @@ AMQP_CALL amqp_tune_connection(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_get_channel_max(amqp_connection_state_t state); +int AMQP_CALL amqp_get_channel_max(amqp_connection_state_t state); /** * Get the maximum size of an frame the connection can handle @@ -1144,8 +1137,7 @@ AMQP_CALL amqp_get_channel_max(amqp_connection_state_t state); * \since v0.6 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_get_frame_max(amqp_connection_state_t state); +int AMQP_CALL amqp_get_frame_max(amqp_connection_state_t state); /** * Get the number of seconds between heartbeats of the connection @@ -1159,8 +1151,7 @@ AMQP_CALL amqp_get_frame_max(amqp_connection_state_t state); * \since v0.6 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_get_heartbeat(amqp_connection_state_t state); +int AMQP_CALL amqp_get_heartbeat(amqp_connection_state_t state); /** * Destroys an amqp_connection_state_t object @@ -1180,8 +1171,7 @@ AMQP_CALL amqp_get_heartbeat(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_destroy_connection(amqp_connection_state_t state); +int AMQP_CALL amqp_destroy_connection(amqp_connection_state_t state); /** * Process incoming data @@ -1206,13 +1196,14 @@ AMQP_CALL amqp_destroy_connection(amqp_connection_state_t state); * amqp_frame_t struct. If there is enough data in received_data for a * complete frame, decoded_frame->frame_type will be set to something OTHER * than 0. decoded_frame may contain members pointing to memory owned by - * the state object. This memory can be recycled with amqp_maybe_release_buffers() - * or amqp_maybe_release_buffers_on_channel() + * the state object. This memory can be recycled with + * amqp_maybe_release_buffers() or amqp_maybe_release_buffers_on_channel(). * \return number of bytes consumed from received_data or 0 if a 0-length - * buffer was passed. A negative return value indicates failure. Possible errors: - * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely in - * an indeterminate state making recovery unlikely. Client should note the error - * and terminate the application + * buffer was passed. A negative return value indicates failure. Possible + * errors: + * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely + * in an indeterminate state making recovery unlikely. Client should note the + * error and terminate the application * - AMQP_STATUS_BAD_AMQP_DATA bad AMQP data was received. The connection * should be shutdown immediately * - AMQP_STATUS_UNKNOWN_METHOD: an unknown method was received from the @@ -1225,10 +1216,9 @@ AMQP_CALL amqp_destroy_connection(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_handle_input(amqp_connection_state_t state, - amqp_bytes_t received_data, - amqp_frame_t *decoded_frame); +int AMQP_CALL amqp_handle_input(amqp_connection_state_t state, + amqp_bytes_t received_data, + amqp_frame_t *decoded_frame); /** * Check to see if connection memory can be released @@ -1248,8 +1238,7 @@ AMQP_CALL amqp_handle_input(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_boolean_t -AMQP_CALL amqp_release_buffers_ok(amqp_connection_state_t state); +amqp_boolean_t AMQP_CALL amqp_release_buffers_ok(amqp_connection_state_t state); /** * Release amqp_connection_state_t owned memory @@ -1276,8 +1265,7 @@ AMQP_CALL amqp_release_buffers_ok(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_release_buffers(amqp_connection_state_t state); +void AMQP_CALL amqp_release_buffers(amqp_connection_state_t state); /** * Release amqp_connection_state_t owned memory @@ -1297,8 +1285,7 @@ AMQP_CALL amqp_release_buffers(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_maybe_release_buffers(amqp_connection_state_t state); +void AMQP_CALL amqp_maybe_release_buffers(amqp_connection_state_t state); /** * Release amqp_connection_state_t owned memory related to a channel @@ -1321,9 +1308,8 @@ AMQP_CALL amqp_maybe_release_buffers(amqp_connection_state_t state); * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_maybe_release_buffers_on_channel(amqp_connection_state_t state, - amqp_channel_t channel); +void AMQP_CALL amqp_maybe_release_buffers_on_channel( + amqp_connection_state_t state, amqp_channel_t channel); /** * Send a frame to the broker @@ -1347,8 +1333,8 @@ AMQP_CALL amqp_maybe_release_buffers_on_channel(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_send_frame(amqp_connection_state_t state, amqp_frame_t const *frame); +int AMQP_CALL amqp_send_frame(amqp_connection_state_t state, + amqp_frame_t const *frame); /** * Compare two table entries @@ -1357,13 +1343,13 @@ AMQP_CALL amqp_send_frame(amqp_connection_state_t state, amqp_frame_t const *fra * * \param [in] entry1 the entry on the left * \param [in] entry2 the entry on the right - * \return 0 if entries are equal, 0 < if left is greater, 0 > if right is greater + * \return 0 if entries are equal, 0 < if left is greater, 0 > if right is + * greater * * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_table_entry_cmp(void const *entry1, void const *entry2); +int AMQP_CALL amqp_table_entry_cmp(void const *entry1, void const *entry2); /** * Open a socket to a remote host @@ -1383,8 +1369,8 @@ AMQP_CALL amqp_table_entry_cmp(void const *entry1, void const *entry2); * - AMQP_STATUS_TCP_SOCKETLIB_INIT_ERROR Initialization of underlying socket * library failed. * - AMQP_STATUS_HOSTNAME_RESOLUTION_FAILED hostname lookup failed. - * - AMQP_STATUS_SOCKET_ERROR a socket error occurred. errno or WSAGetLastError() - * may return more useful information. + * - AMQP_STATUS_SOCKET_ERROR a socket error occurred. errno or + * WSAGetLastError() may return more useful information. * * \note IPv6 support was added in v0.3 * @@ -1393,8 +1379,7 @@ AMQP_CALL amqp_table_entry_cmp(void const *entry1, void const *entry2); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_open_socket(char const *hostname, int portnumber); +int AMQP_CALL amqp_open_socket(char const *hostname, int portnumber); /** * Send initial AMQP header to the broker @@ -1418,8 +1403,7 @@ AMQP_CALL amqp_open_socket(char const *hostname, int portnumber); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_send_header(amqp_connection_state_t state); +int AMQP_CALL amqp_send_header(amqp_connection_state_t state); /** * Checks to see if there are any incoming frames ready to be read @@ -1438,8 +1422,7 @@ AMQP_CALL amqp_send_header(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_boolean_t -AMQP_CALL amqp_frames_enqueued(amqp_connection_state_t state); +amqp_boolean_t AMQP_CALL amqp_frames_enqueued(amqp_connection_state_t state); /** * Read a single amqp_frame_t @@ -1464,9 +1447,9 @@ AMQP_CALL amqp_frames_enqueued(amqp_connection_state_t state); * \param [out] decoded_frame the frame * \return AMQP_STATUS_OK on success, an amqp_status_enum value * is returned otherwise. Possible errors include: - * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely in - * an indeterminate state making recovery unlikely. Client should note the error - * and terminate the application + * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely + * in an indeterminate state making recovery unlikely. Client should note the + * error and terminate the application * - AMQP_STATUS_BAD_AMQP_DATA bad AMQP data was received. The connection * should be shutdown immediately * - AMQP_STATUS_UNKNOWN_METHOD: an unknown method was received from the @@ -1493,9 +1476,8 @@ AMQP_CALL amqp_frames_enqueued(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_simple_wait_frame(amqp_connection_state_t state, - amqp_frame_t *decoded_frame); +int AMQP_CALL amqp_simple_wait_frame(amqp_connection_state_t state, + amqp_frame_t *decoded_frame); /** * Read a single amqp_frame_t with a timeout. @@ -1505,7 +1487,8 @@ AMQP_CALL amqp_simple_wait_frame(amqp_connection_state_t state, * if the timeout is reached. The tv value is not modified by the function. * * If a 0 timeval is specified, the function behaves as if its non-blocking: it - * will test to see if a frame can be read from the broker, and return immediately. + * will test to see if a frame can be read from the broker, and return + * immediately. * * If NULL is passed in for tv, the function will behave like * amqp_simple_wait_frame() and block until a frame is received from the broker @@ -1517,13 +1500,14 @@ AMQP_CALL amqp_simple_wait_frame(amqp_connection_state_t state, * amqp_frames_enqueued() function. * * The library has a socket read buffer. When there is data in an - * amqp_connection_state_t read buffer, amqp_simple_wait_frame_noblock() may return + * amqp_connection_state_t read buffer, amqp_simple_wait_frame_noblock() may + * return * an amqp_frame_t without entering a blocking read(). You can test to see if an * amqp_connection_state_t object has data in its read buffer by calling the * amqp_data_in_buffer() function. * - * \note This function does not return heartbeat frames. When enabled, heartbeating - * is handed internally internally by the library + * \note This function does not return heartbeat frames. When enabled, + * heartbeating is handed internally internally by the library. * * \param [in,out] state the connection object * \param [out] decoded_frame the frame @@ -1535,9 +1519,9 @@ AMQP_CALL amqp_simple_wait_frame(amqp_connection_state_t state, * - AMQP_STATUS_TIMEOUT the timeout was reached while waiting for a frame * from the broker. * - AMQP_STATUS_INVALID_PARAMETER the tv parameter contains an invalid value. - * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely in - * an indeterminate state making recovery unlikely. Client should note the error - * and terminate the application + * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely + * in an indeterminate state making recovery unlikely. Client should note the + * error and terminate the application * - AMQP_STATUS_BAD_AMQP_DATA bad AMQP data was received. The connection * should be shutdown immediately * - AMQP_STATUS_UNKNOWN_METHOD: an unknown method was received from the @@ -1559,10 +1543,9 @@ AMQP_CALL amqp_simple_wait_frame(amqp_connection_state_t state, * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_simple_wait_frame_noblock(amqp_connection_state_t state, - amqp_frame_t *decoded_frame, - struct timeval *tv); +int AMQP_CALL amqp_simple_wait_frame_noblock(amqp_connection_state_t state, + amqp_frame_t *decoded_frame, + struct timeval *tv); /** * Waits for a specific method from the broker @@ -1575,16 +1558,17 @@ AMQP_CALL amqp_simple_wait_frame_noblock(amqp_connection_state_t state, * or expected_method the program will abort * * \param [in] state the connection object - * \param [in] expected_channel the channel that the method should be delivered on + * \param [in] expected_channel the channel that the method should be delivered + * on * \param [in] expected_method the method to wait for * \param [out] output the method * \returns AMQP_STATUS_OK on success. An amqp_status_enum value is returned * otherwise. Possible errors include: * - AMQP_STATUS_WRONG_METHOD a frame containing the wrong method, wrong frame * type or wrong channel was received. The connection is closed. - * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely in - * an indeterminate state making recovery unlikely. Client should note the error - * and terminate the application + * - AMQP_STATUS_NO_MEMORY failure in allocating memory. The library is likely + * in an indeterminate state making recovery unlikely. Client should note the + * error and terminate the application * - AMQP_STATUS_BAD_AMQP_DATA bad AMQP data was received. The connection * should be shutdown immediately * - AMQP_STATUS_UNKNOWN_METHOD: an unknown method was received from the @@ -1605,11 +1589,10 @@ AMQP_CALL amqp_simple_wait_frame_noblock(amqp_connection_state_t state, */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_simple_wait_method(amqp_connection_state_t state, - amqp_channel_t expected_channel, - amqp_method_number_t expected_method, - amqp_method_t *output); +int AMQP_CALL amqp_simple_wait_method(amqp_connection_state_t state, + amqp_channel_t expected_channel, + amqp_method_number_t expected_method, + amqp_method_t *output); /** * Sends a method to the broker @@ -1638,11 +1621,9 @@ AMQP_CALL amqp_simple_wait_method(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_send_method(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_method_number_t id, - void *decoded); +int AMQP_CALL amqp_send_method(amqp_connection_state_t state, + amqp_channel_t channel, amqp_method_number_t id, + void *decoded); /** * Sends a method to the broker and waits for a method response @@ -1677,12 +1658,10 @@ AMQP_CALL amqp_send_method(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_simple_rpc(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_method_number_t request_id, - amqp_method_number_t *expected_reply_ids, - void *decoded_request_method); +amqp_rpc_reply_t AMQP_CALL amqp_simple_rpc( + amqp_connection_state_t state, amqp_channel_t channel, + amqp_method_number_t request_id, amqp_method_number_t *expected_reply_ids, + void *decoded_request_method); /** * Sends a method to the broker and waits for a method response @@ -1699,12 +1678,11 @@ AMQP_CALL amqp_simple_rpc(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -void * -AMQP_CALL amqp_simple_rpc_decoded(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_method_number_t request_id, - amqp_method_number_t reply_id, - void *decoded_request_method); +void *AMQP_CALL amqp_simple_rpc_decoded(amqp_connection_state_t state, + amqp_channel_t channel, + amqp_method_number_t request_id, + amqp_method_number_t reply_id, + void *decoded_request_method); /** * Get the last global amqp_rpc_reply @@ -1746,8 +1724,7 @@ AMQP_CALL amqp_simple_rpc_decoded(amqp_connection_state_t state, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_get_rpc_reply(amqp_connection_state_t state); +amqp_rpc_reply_t AMQP_CALL amqp_get_rpc_reply(amqp_connection_state_t state); /** * Login to the broker @@ -1759,15 +1736,16 @@ AMQP_CALL amqp_get_rpc_reply(amqp_connection_state_t state); * \param [in] vhost the virtual host to connect to on the broker. The default * on most brokers is "/" * \param [in] channel_max the limit for number of channels for the connection. - * 0 means no limit, and is a good default (AMQP_DEFAULT_MAX_CHANNELS) + * 0 means no limit, and is a good default + * (AMQP_DEFAULT_MAX_CHANNELS) * Note that the maximum number of channels the protocol supports * is 65535 (2^16, with the 0-channel reserved). The server can * set a lower channel_max and then the client will use the lowest * of the two * \param [in] frame_max the maximum size of an AMQP frame on the wire to * request of the broker for this connection. 4096 is the minimum - * size, 2^31-1 is the maximum, a good default is 131072 (128KB), or - * AMQP_DEFAULT_FRAME_SIZE + * size, 2^31-1 is the maximum, a good default is 131072 (128KB), + * or AMQP_DEFAULT_FRAME_SIZE * \param [in] heartbeat the number of seconds between heartbeat frames to * request of the broker. A value of 0 disables heartbeats. * Note rabbitmq-c only has partial support for heartbeats, as of @@ -1806,10 +1784,10 @@ AMQP_CALL amqp_get_rpc_reply(amqp_connection_state_t state); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_login(amqp_connection_state_t state, char const *vhost, - int channel_max, int frame_max, int heartbeat, - amqp_sasl_method_enum sasl_method, ...); +amqp_rpc_reply_t AMQP_CALL amqp_login(amqp_connection_state_t state, + char const *vhost, int channel_max, + int frame_max, int heartbeat, + amqp_sasl_method_enum sasl_method, ...); /** * Login to the broker passing a properties table @@ -1821,16 +1799,18 @@ AMQP_CALL amqp_login(amqp_connection_state_t state, char const *vhost, * \param [in] state the connection object * \param [in] vhost the virtual host to connect to on the broker. The default * on most brokers is "/" - * \param [in] channel_max the limit for the number of channels for the connection. - * 0 means no limit, and is a good default (AMQP_DEFAULT_MAX_CHANNELS) + * \param [in] channel_max the limit for the number of channels for the + * connection. + * 0 means no limit, and is a good default + * (AMQP_DEFAULT_MAX_CHANNELS) * Note that the maximum number of channels the protocol supports * is 65535 (2^16, with the 0-channel reserved). The server can * set a lower channel_max and then the client will use the lowest * of the two * \param [in] frame_max the maximum size of an AMQP frame ont he wire to * request of the broker for this connection. 4096 is the minimum - * size, 2^31-1 is the maximum, a good default is 131072 (128KB), or - * AMQP_DEFAULT_FRAME_SIZE + * size, 2^31-1 is the maximum, a good default is 131072 (128KB), + * or AMQP_DEFAULT_FRAME_SIZE * \param [in] heartbeat the number of seconds between heartbeat frame to * request of the broker. A value of 0 disables heartbeats. * Note rabbitmq-c only has partial support for hearts, as of @@ -1870,10 +1850,10 @@ AMQP_CALL amqp_login(amqp_connection_state_t state, char const *vhost, * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_login_with_properties(amqp_connection_state_t state, char const *vhost, - int channel_max, int frame_max, int heartbeat, - const amqp_table_t *properties, amqp_sasl_method_enum sasl_method, ...); +amqp_rpc_reply_t AMQP_CALL amqp_login_with_properties( + amqp_connection_state_t state, char const *vhost, int channel_max, + int frame_max, int heartbeat, const amqp_table_t *properties, + amqp_sasl_method_enum sasl_method, ...); struct amqp_basic_properties_t_; @@ -1894,9 +1874,9 @@ struct amqp_basic_properties_t_; * \param [in] mandatory indicate to the broker that the message MUST be routed * to a queue. If the broker cannot do this it should respond with * a basic.return method. - * \param [in] immediate indicate to the broker that the message MUST be delivered - * to a consumer immediately. If the broker cannot do this it should - * response with a basic.return method. + * \param [in] immediate indicate to the broker that the message MUST be + * delivered to a consumer immediately. If the broker cannot do this + * it should respond with a basic.return method. * \param [in] properties the properties associated with the message * \param [in] body the message body * \return AMQP_STATUS_OK on success, amqp_status_enum value on failure. Note @@ -1923,27 +1903,26 @@ struct amqp_basic_properties_t_; * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_basic_publish(amqp_connection_state_t state, amqp_channel_t channel, - amqp_bytes_t exchange, amqp_bytes_t routing_key, - amqp_boolean_t mandatory, amqp_boolean_t immediate, - struct amqp_basic_properties_t_ const *properties, - amqp_bytes_t body); +int AMQP_CALL amqp_basic_publish( + amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_boolean_t mandatory, + amqp_boolean_t immediate, struct amqp_basic_properties_t_ const *properties, + amqp_bytes_t body); /** * Closes an channel * * \param [in] state the connection object * \param [in] channel the channel identifier - * \param [in] code the reason for closing the channel, AMQP_REPLY_SUCCESS is a good default + * \param [in] code the reason for closing the channel, AMQP_REPLY_SUCCESS is a + * good default * \return amqp_rpc_reply_t indicating success or failure * * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_channel_close(amqp_connection_state_t state, amqp_channel_t channel, - int code); +amqp_rpc_reply_t AMQP_CALL amqp_channel_close(amqp_connection_state_t state, + amqp_channel_t channel, int code); /** * Closes the entire connection @@ -1953,14 +1932,15 @@ AMQP_CALL amqp_channel_close(amqp_connection_state_t state, amqp_channel_t chann * the socket. * * \param [in] state the connection object - * \param [in] code the reason code for closing the connection. AMQP_REPLY_SUCCESS is a good default. + * \param [in] code the reason code for closing the connection. + * AMQP_REPLY_SUCCESS is a good default. * \return amqp_rpc_reply_t indicating the result * * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_connection_close(amqp_connection_state_t state, int code); +amqp_rpc_reply_t AMQP_CALL amqp_connection_close(amqp_connection_state_t state, + int code); /** * Acknowledges a message @@ -1973,14 +1953,15 @@ AMQP_CALL amqp_connection_close(amqp_connection_state_t state, int code); * \param [in] multiple if true, ack all messages up to this delivery tag, if * false ack only this delivery tag * \return 0 on success, 0 > on failing to send the ack to the broker. - * this will not indicate failure if something goes wrong on the broker + * this will not indicate failure if something goes wrong on the + * broker * * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_basic_ack(amqp_connection_state_t state, amqp_channel_t channel, - uint64_t delivery_tag, amqp_boolean_t multiple); +int AMQP_CALL amqp_basic_ack(amqp_connection_state_t state, + amqp_channel_t channel, uint64_t delivery_tag, + amqp_boolean_t multiple); /** * Do a basic.get @@ -1999,9 +1980,10 @@ AMQP_CALL amqp_basic_ack(amqp_connection_state_t state, amqp_channel_t channel, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_basic_get(amqp_connection_state_t state, amqp_channel_t channel, - amqp_bytes_t queue, amqp_boolean_t no_ack); +amqp_rpc_reply_t AMQP_CALL amqp_basic_get(amqp_connection_state_t state, + amqp_channel_t channel, + amqp_bytes_t queue, + amqp_boolean_t no_ack); /** * Do a basic.reject @@ -2014,14 +1996,15 @@ AMQP_CALL amqp_basic_get(amqp_connection_state_t state, amqp_channel_t channel, * \param [in] requeue indicate to the broker whether it should requeue the * message or just discard it. * \return 0 on success, 0 > on failing to send the reject method to the broker. - * This will not indicate failure if something goes wrong on the broker. + * This will not indicate failure if something goes wrong on the + * broker. * * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_basic_reject(amqp_connection_state_t state, amqp_channel_t channel, - uint64_t delivery_tag, amqp_boolean_t requeue); +int AMQP_CALL amqp_basic_reject(amqp_connection_state_t state, + amqp_channel_t channel, uint64_t delivery_tag, + amqp_boolean_t requeue); /** * Do a basic.nack @@ -2043,10 +2026,9 @@ AMQP_CALL amqp_basic_reject(amqp_connection_state_t state, amqp_channel_t channe * \since v0.5.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_basic_nack(amqp_connection_state_t state, amqp_channel_t channel, - uint64_t delivery_tag, amqp_boolean_t multiple, - amqp_boolean_t requeue); +int AMQP_CALL amqp_basic_nack(amqp_connection_state_t state, + amqp_channel_t channel, uint64_t delivery_tag, + amqp_boolean_t multiple, amqp_boolean_t requeue); /** * Check to see if there is data left in the receive buffer * @@ -2060,8 +2042,7 @@ AMQP_CALL amqp_basic_nack(amqp_connection_state_t state, amqp_channel_t channel, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -amqp_boolean_t -AMQP_CALL amqp_data_in_buffer(amqp_connection_state_t state); +amqp_boolean_t AMQP_CALL amqp_data_in_buffer(amqp_connection_state_t state); /** * Get the error string for the given error code. @@ -2079,11 +2060,7 @@ AMQP_CALL amqp_data_in_buffer(amqp_connection_state_t state); * \since v0.1 */ AMQP_DEPRECATED( - AMQP_PUBLIC_FUNCTION - char * - AMQP_CALL amqp_error_string(int err) -); - + AMQP_PUBLIC_FUNCTION char *AMQP_CALL amqp_error_string(int err)); /** * Get the error string for the given error code. @@ -2097,9 +2074,7 @@ AMQP_DEPRECATED( * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -const char * -AMQP_CALL amqp_error_string2(int err); - +const char *AMQP_CALL amqp_error_string2(int err); /** * Deserialize an amqp_table_t from AMQP wireformat @@ -2122,9 +2097,8 @@ AMQP_CALL amqp_error_string2(int err); * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_decode_table(amqp_bytes_t encoded, amqp_pool_t *pool, - amqp_table_t *output, size_t *offset); +int AMQP_CALL amqp_decode_table(amqp_bytes_t encoded, amqp_pool_t *pool, + amqp_table_t *output, size_t *offset); /** * Serializes an amqp_table_t to the AMQP wireformat @@ -2146,9 +2120,8 @@ AMQP_CALL amqp_decode_table(amqp_bytes_t encoded, amqp_pool_t *pool, * \since v0.1 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_encode_table(amqp_bytes_t encoded, amqp_table_t *input, size_t *offset); - +int AMQP_CALL amqp_encode_table(amqp_bytes_t encoded, amqp_table_t *input, + size_t *offset); /** * Create a deep-copy of an amqp_table_t object @@ -2169,8 +2142,8 @@ AMQP_CALL amqp_encode_table(amqp_bytes_t encoded, amqp_table_t *input, size_t *o * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_table_clone(const amqp_table_t *original, amqp_table_t *clone, amqp_pool_t *pool); +int AMQP_CALL amqp_table_clone(const amqp_table_t *original, + amqp_table_t *clone, amqp_pool_t *pool); /** * A message object @@ -2197,15 +2170,16 @@ typedef struct amqp_message_t_ { * fields in the message object. The caller is responsible for * allocating/destroying the amqp_message_t object itself. * \param [in] flags pass in 0. Currently unused. - * \returns a amqp_rpc_reply_t object. ret.reply_type == AMQP_RESPONSE_NORMAL on success. + * \returns a amqp_rpc_reply_t object. ret.reply_type == AMQP_RESPONSE_NORMAL on + * success. * * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_read_message(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_message_t *message, int flags); +amqp_rpc_reply_t AMQP_CALL amqp_read_message(amqp_connection_state_t state, + amqp_channel_t channel, + amqp_message_t *message, + int flags); /** * Frees memory associated with a amqp_message_t allocated in amqp_read_message @@ -2215,8 +2189,7 @@ AMQP_CALL amqp_read_message(amqp_connection_state_t state, * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_destroy_message(amqp_message_t *message); +void AMQP_CALL amqp_destroy_message(amqp_message_t *message); /** * Envelope object @@ -2224,13 +2197,16 @@ AMQP_CALL amqp_destroy_message(amqp_message_t *message); * \since v0.4.0 */ typedef struct amqp_envelope_t_ { - amqp_channel_t channel; /**< channel message was delivered on */ - amqp_bytes_t consumer_tag; /**< the consumer tag the message was delivered to */ - uint64_t delivery_tag; /**< the messages delivery tag */ - amqp_boolean_t redelivered; /**< flag indicating whether this message is being redelivered */ - amqp_bytes_t exchange; /**< exchange this message was published to */ - amqp_bytes_t routing_key; /**< the routing key this message was published with */ - amqp_message_t message; /**< the message */ + amqp_channel_t channel; /**< channel message was delivered on */ + amqp_bytes_t + consumer_tag; /**< the consumer tag the message was delivered to */ + uint64_t delivery_tag; /**< the messages delivery tag */ + amqp_boolean_t redelivered; /**< flag indicating whether this message is being + redelivered */ + amqp_bytes_t exchange; /**< exchange this message was published to */ + amqp_bytes_t + routing_key; /**< the routing key this message was published with */ + amqp_message_t message; /**< the message */ } amqp_envelope_t; /** @@ -2255,8 +2231,8 @@ typedef struct amqp_envelope_t_ { * NULL will result in blocking behavior. * \param [in] flags pass in 0. Currently unused. * \returns a amqp_rpc_reply_t object. ret.reply_type == AMQP_RESPONSE_NORMAL - * on success. If ret.reply_type == AMQP_RESPONSE_LIBRARY_EXCEPTION, and - * ret.library_error == AMQP_STATUS_UNEXPECTED_STATE, a frame other + * on success. If ret.reply_type == AMQP_RESPONSE_LIBRARY_EXCEPTION, + * and ret.library_error == AMQP_STATUS_UNEXPECTED_STATE, a frame other * than AMQP_BASIC_DELIVER_METHOD was received, the caller should call * amqp_simple_wait_frame() to read this frame and take appropriate * action. @@ -2264,22 +2240,21 @@ typedef struct amqp_envelope_t_ { * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -amqp_rpc_reply_t -AMQP_CALL amqp_consume_message(amqp_connection_state_t state, - amqp_envelope_t *envelope, - struct timeval *timeout, int flags); +amqp_rpc_reply_t AMQP_CALL amqp_consume_message(amqp_connection_state_t state, + amqp_envelope_t *envelope, + struct timeval *timeout, + int flags); /** - * Frees memory associated with a amqp_envelope_t allocated in amqp_consume_message() + * Frees memory associated with a amqp_envelope_t allocated in + * amqp_consume_message() * * \param [in] envelope * * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_destroy_envelope(amqp_envelope_t *envelope); - +void AMQP_CALL amqp_destroy_envelope(amqp_envelope_t *envelope); /** * Parameters used to connect to the RabbitMQ broker @@ -2287,11 +2262,15 @@ AMQP_CALL amqp_destroy_envelope(amqp_envelope_t *envelope); * \since v0.2 */ struct amqp_connection_info { - char *user; /**< the username to authenticate with the broker, default on most broker is 'guest' */ - char *password; /**< the password to authenticate with the broker, default on most brokers is 'guest' */ - char *host; /**< the hostname of the broker */ - char *vhost; /**< the virtual host on the broker to connect to, a good default is "/" */ - int port; /**< the port that the broker is listening on, default on most brokers is 5672 */ + char *user; /**< the username to authenticate with the broker, default on most + broker is 'guest' */ + char *password; /**< the password to authenticate with the broker, default on + most brokers is 'guest' */ + char *host; /**< the hostname of the broker */ + char *vhost; /**< the virtual host on the broker to connect to, a good default + is "/" */ + int port; /**< the port that the broker is listening on, default on most + brokers is 5672 */ amqp_boolean_t ssl; }; @@ -2310,8 +2289,8 @@ struct amqp_connection_info { * \since v0.2 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL amqp_default_connection_info(struct amqp_connection_info *parsed); +void AMQP_CALL + amqp_default_connection_info(struct amqp_connection_info *parsed); /** * Parse a connection URL @@ -2340,8 +2319,7 @@ AMQP_CALL amqp_default_connection_info(struct amqp_connection_info *parsed); * \since v0.2 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_parse_url(char *url, struct amqp_connection_info *parsed); +int AMQP_CALL amqp_parse_url(char *url, struct amqp_connection_info *parsed); /* socket API */ @@ -2362,9 +2340,7 @@ AMQP_CALL amqp_parse_url(char *url, struct amqp_connection_info *parsed); * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_socket_open(amqp_socket_t *self, const char *host, int port); +int AMQP_CALL amqp_socket_open(amqp_socket_t *self, const char *host, int port); /** * Open a socket connection. @@ -2377,16 +2353,16 @@ amqp_socket_open(amqp_socket_t *self, const char *host, int port); * \param [in,out] self A socket object. * \param [in] host Connect to this host. * \param [in] port Connect on this remote port. - * \param [in] timeout Max allowed time to spent on opening. If NULL - run in blocking mode + * \param [in] timeout Max allowed time to spent on opening. If NULL - run in + * blocking mode * * \return AMQP_STATUS_OK on success, an amqp_status_enum on failure. * * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_socket_open_noblock(amqp_socket_t *self, const char *host, int port, struct timeval *timeout); +int AMQP_CALL amqp_socket_open_noblock(amqp_socket_t *self, const char *host, + int port, struct timeval *timeout); /** * Get the socket descriptor in use by a socket object. @@ -2397,16 +2373,13 @@ amqp_socket_open_noblock(amqp_socket_t *self, const char *host, int port, struct * * \param [in,out] self A socket object. * - * \return The underlying socket descriptor, or -1 if there is no socket descriptor - * associated with - * with + * \return The underlying socket descriptor, or -1 if there is no socket + * descriptor associated with * * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_socket_get_sockfd(amqp_socket_t *self); +int AMQP_CALL amqp_socket_get_sockfd(amqp_socket_t *self); /** * Get the socket object associated with a amqp_connection_state_t @@ -2417,9 +2390,7 @@ amqp_socket_get_sockfd(amqp_socket_t *self); * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -amqp_socket_t * -AMQP_CALL -amqp_get_socket(amqp_connection_state_t state); +amqp_socket_t *AMQP_CALL amqp_get_socket(amqp_connection_state_t state); /** * Get the broker properties table @@ -2432,9 +2403,8 @@ amqp_get_socket(amqp_connection_state_t state); * \since v0.5.0 */ AMQP_PUBLIC_FUNCTION -amqp_table_t * -AMQP_CALL -amqp_get_server_properties(amqp_connection_state_t state); +amqp_table_t *AMQP_CALL + amqp_get_server_properties(amqp_connection_state_t state); /** * Get the client properties table @@ -2449,9 +2419,8 @@ amqp_get_server_properties(amqp_connection_state_t state); * \since v0.7.0 */ AMQP_PUBLIC_FUNCTION -amqp_table_t * -AMQP_CALL -amqp_get_client_properties(amqp_connection_state_t state); +amqp_table_t *AMQP_CALL + amqp_get_client_properties(amqp_connection_state_t state); /** * Get the login handshake timeout. @@ -2563,5 +2532,4 @@ int AMQP_CALL amqp_set_rpc_timeout(amqp_connection_state_t state, AMQP_END_DECLS - #endif /* AMQP_H */ diff --git a/librabbitmq/amqp_api.c b/librabbitmq/amqp_api.c index f42201f..28b2384 100644 --- a/librabbitmq/amqp_api.c +++ b/librabbitmq/amqp_api.c @@ -39,9 +39,9 @@ #ifdef _MSC_VER /* MSVC complains about sprintf being deprecated in favor of sprintf_s */ -# define _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS /* MSVC complains about strdup being deprecated in favor of _strdup */ -# define _CRT_NONSTDC_NO_DEPRECATE +#define _CRT_NONSTDC_NO_DEPRECATE #endif #include "amqp_private.h" @@ -55,52 +55,71 @@ #define ERROR_MASK (0x00FF) #define ERROR_CATEGORY_MASK (0xFF00) -enum error_category_enum_ { - EC_base = 0, - EC_tcp = 1, - EC_ssl = 2 -}; +enum error_category_enum_ { EC_base = 0, EC_tcp = 1, EC_ssl = 2 }; static const char *base_error_strings[] = { - "operation completed successfully", /* AMQP_STATUS_OK 0x0 */ - "could not allocate memory", /* AMQP_STATUS_NO_MEMORY -0x0001 */ - "invalid AMQP data", /* AMQP_STATUS_BAD_AQMP_DATA -0x0002 */ - "unknown AMQP class id", /* AMQP_STATUS_UNKNOWN_CLASS -0x0003 */ - "unknown AMQP method id", /* AMQP_STATUS_UNKNOWN_METHOD -0x0004 */ - "hostname lookup failed", /* AMQP_STATUS_HOSTNAME_RESOLUTION_FAILED -0x0005 */ - "incompatible AMQP version", /* AMQP_STATUS_INCOMPATIBLE_AMQP_VERSION -0x0006 */ - "connection closed unexpectedly", /* AMQP_STATUS_CONNECTION_CLOSED -0x0007 */ - "could not parse AMQP URL", /* AMQP_STATUS_BAD_AMQP_URL -0x0008 */ - "a socket error occurred", /* AMQP_STATUS_SOCKET_ERROR -0x0009 */ - "invalid parameter", /* AMQP_STATUS_INVALID_PARAMETER -0x000A */ - "table too large for buffer", /* AMQP_STATUS_TABLE_TOO_BIG -0x000B */ - "unexpected method received", /* AMQP_STATUS_WRONG_METHOD -0x000C */ - "request timed out", /* AMQP_STATUS_TIMEOUT -0x000D */ - "system timer has failed", /* AMQP_STATUS_TIMER_FAILED -0x000E */ - "heartbeat timeout, connection closed",/* AMQP_STATUS_HEARTBEAT_TIMEOUT -0x000F */ - "unexpected protocol state", /* AMQP_STATUS_UNEXPECTED STATE -0x0010 */ - "socket is closed", /* AMQP_STATUS_SOCKET_CLOSED -0x0011 */ - "socket already open", /* AMQP_STATUS_SOCKET_INUSE -0x0012 */ - "unsupported sasl method requested", /* AMQP_STATUS_BROKER_UNSUPPORTED_SASL_METHOD -0x0013 */ - "parameter value is unsupported" /* AMQP_STATUS_UNSUPPORTED -0x0014 */ -}; + /* AMQP_STATUS_OK 0x0 */ + "operation completed successfully", + /* AMQP_STATUS_NO_MEMORY -0x0001 */ + "could not allocate memory", + /* AMQP_STATUS_BAD_AQMP_DATA -0x0002 */ + "invalid AMQP data", + /* AMQP_STATUS_UNKNOWN_CLASS -0x0003 */ + "unknown AMQP class id", + /* AMQP_STATUS_UNKNOWN_METHOD -0x0004 */ + "unknown AMQP method id", + /* AMQP_STATUS_HOSTNAME_RESOLUTION_FAILED -0x0005 */ + "hostname lookup failed", + /* AMQP_STATUS_INCOMPATIBLE_AMQP_VERSION -0x0006 */ + "incompatible AMQP version", + /* AMQP_STATUS_CONNECTION_CLOSED -0x0007 */ + "connection closed unexpectedly", + /* AMQP_STATUS_BAD_AMQP_URL -0x0008 */ + "could not parse AMQP URL", + /* AMQP_STATUS_SOCKET_ERROR -0x0009 */ + "a socket error occurred", + /* AMQP_STATUS_INVALID_PARAMETER -0x000A */ + "invalid parameter", + /* AMQP_STATUS_TABLE_TOO_BIG -0x000B */ + "table too large for buffer", + /* AMQP_STATUS_WRONG_METHOD -0x000C */ + "unexpected method received", + /* AMQP_STATUS_TIMEOUT -0x000D */ + "request timed out", + /* AMQP_STATUS_TIMER_FAILED -0x000E */ + "system timer has failed", + /* AMQP_STATUS_HEARTBEAT_TIMEOUT -0x000F */ + "heartbeat timeout, connection closed", + /* AMQP_STATUS_UNEXPECTED STATE -0x0010 */ + "unexpected protocol state", + /* AMQP_STATUS_SOCKET_CLOSED -0x0011 */ + "socket is closed", + /* AMQP_STATUS_SOCKET_INUSE -0x0012 */ + "socket already open", + /* AMQP_STATUS_BROKER_UNSUPPORTED_SASL_METHOD -0x00013 */ + "unsupported sasl method requested", + /* AMQP_STATUS_UNSUPPORTED -0x0014 */ + "parameter value is unsupported"}; static const char *tcp_error_strings[] = { - "a socket error occurred", /* AMQP_STATUS_TCP_ERROR -0x0100 */ - "socket library initialization failed" /* AMQP_STATUS_TCP_SOCKETLIB_INIT_ERROR -0x0101 */ -}; + /* AMQP_STATUS_TCP_ERROR -0x0100 */ + "a socket error occurred", + /* AMQP_STATUS_TCP_SOCKETLIB_INIT_ERROR -0x0101 */ + "socket library initialization failed"}; static const char *ssl_error_strings[] = { - "a SSL error occurred", /* AMQP_STATUS_SSL_ERROR -0x0200 */ - "SSL hostname verification failed", /* AMQP_STATUS_SSL_HOSTNAME_VERIFY_FAILED -0x0201 */ - "SSL peer cert verification failed", /* AMQP_STATUS_SSL_PEER_VERIFY_FAILED -0x0202 */ - "SSL handshake failed" /* AMQP_STATUS_SSL_CONNECTION_FAILED -0x0203 */ -}; + /* AMQP_STATUS_SSL_ERRO R -0x0200 */ + "a SSL error occurred", + /* AMQP_STATUS_SSL_HOSTNAME_VERIFY_FAILED -0x0201 */ + "SSL hostname verification failed", + /* AMQP_STATUS_SSL_PEER_VERIFY_FAILED -0x0202 */ + "SSL peer cert verification failed", + /* AMQP_STATUS_SSL_CONNECTION_FAILED -0x0203 */ + "SSL handshake failed"}; static const char *unknown_error_string = "(unknown error)"; -const char *amqp_error_string2(int code) -{ +const char *amqp_error_string2(int code) { const char *error_string; size_t category = (((-code) & ERROR_CATEGORY_MASK) >> 8); size_t error = (-code) & ERROR_MASK; @@ -134,14 +153,12 @@ const char *amqp_error_string2(int code) default: error_string = unknown_error_string; break; - } return error_string; } -char *amqp_error_string(int code) -{ +char *amqp_error_string(int code) { /* Previously sometimes clients had to flip the sign on a return value from a * function to get the correct error code. Now, all error codes are negative. * To keep people's legacy code running correctly, we map all error codes to @@ -155,8 +172,7 @@ char *amqp_error_string(int code) return strdup(amqp_error_string2(code)); } -void amqp_abort(const char *fmt, ...) -{ +void amqp_abort(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); @@ -165,22 +181,19 @@ void amqp_abort(const char *fmt, ...) abort(); } -const amqp_bytes_t amqp_empty_bytes = { 0, NULL }; -const amqp_table_t amqp_empty_table = { 0, NULL }; -const amqp_array_t amqp_empty_array = { 0, NULL }; +const amqp_bytes_t amqp_empty_bytes = {0, NULL}; +const amqp_table_t amqp_empty_table = {0, NULL}; +const amqp_array_t amqp_empty_array = {0, NULL}; -int amqp_basic_publish(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_bytes_t exchange, - amqp_bytes_t routing_key, - amqp_boolean_t mandatory, - amqp_boolean_t immediate, +int amqp_basic_publish(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t exchange, amqp_bytes_t routing_key, + amqp_boolean_t mandatory, amqp_boolean_t immediate, amqp_basic_properties_t const *properties, - amqp_bytes_t body) -{ + amqp_bytes_t body) { amqp_frame_t f; size_t body_offset; - size_t usable_body_payload_size = state->frame_max - (HEADER_SIZE + FOOTER_SIZE); + size_t usable_body_payload_size = + state->frame_max - (HEADER_SIZE + FOOTER_SIZE); int res; int flagz; @@ -222,7 +235,7 @@ int amqp_basic_publish(amqp_connection_state_t state, f.channel = channel; f.payload.properties.class_id = AMQP_BASIC_CLASS; f.payload.properties.body_size = body.len; - f.payload.properties.decoded = (void *) properties; + f.payload.properties.decoded = (void *)properties; if (body.len > 0) { flagz = AMQP_SF_MORE; @@ -264,11 +277,9 @@ int amqp_basic_publish(amqp_connection_state_t state, } amqp_rpc_reply_t amqp_channel_close(amqp_connection_state_t state, - amqp_channel_t channel, - int code) -{ + amqp_channel_t channel, int code) { char codestr[13]; - amqp_method_number_t replies[2] = { AMQP_CHANNEL_CLOSE_OK_METHOD, 0}; + amqp_method_number_t replies[2] = {AMQP_CHANNEL_CLOSE_OK_METHOD, 0}; amqp_channel_close_t req; if (code < 0 || code > UINT16_MAX) { @@ -281,15 +292,14 @@ amqp_rpc_reply_t amqp_channel_close(amqp_connection_state_t state, req.class_id = 0; req.method_id = 0; - return amqp_simple_rpc(state, channel, AMQP_CHANNEL_CLOSE_METHOD, - replies, &req); + return amqp_simple_rpc(state, channel, AMQP_CHANNEL_CLOSE_METHOD, replies, + &req); } amqp_rpc_reply_t amqp_connection_close(amqp_connection_state_t state, - int code) -{ + int code) { char codestr[13]; - amqp_method_number_t replies[2] = { AMQP_CONNECTION_CLOSE_OK_METHOD, 0}; + amqp_method_number_t replies[2] = {AMQP_CONNECTION_CLOSE_OK_METHOD, 0}; amqp_channel_close_t req; if (code < 0 || code > UINT16_MAX) { @@ -302,15 +312,11 @@ amqp_rpc_reply_t amqp_connection_close(amqp_connection_state_t state, req.class_id = 0; req.method_id = 0; - return amqp_simple_rpc(state, 0, AMQP_CONNECTION_CLOSE_METHOD, - replies, &req); + return amqp_simple_rpc(state, 0, AMQP_CONNECTION_CLOSE_METHOD, replies, &req); } -int amqp_basic_ack(amqp_connection_state_t state, - amqp_channel_t channel, - uint64_t delivery_tag, - amqp_boolean_t multiple) -{ +int amqp_basic_ack(amqp_connection_state_t state, amqp_channel_t channel, + uint64_t delivery_tag, amqp_boolean_t multiple) { amqp_basic_ack_t m; m.delivery_tag = delivery_tag; m.multiple = multiple; @@ -318,30 +324,22 @@ int amqp_basic_ack(amqp_connection_state_t state, } amqp_rpc_reply_t amqp_basic_get(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_bytes_t queue, - amqp_boolean_t no_ack) -{ - amqp_method_number_t replies[] = { AMQP_BASIC_GET_OK_METHOD, - AMQP_BASIC_GET_EMPTY_METHOD, - 0 - }; + amqp_channel_t channel, amqp_bytes_t queue, + amqp_boolean_t no_ack) { + amqp_method_number_t replies[] = {AMQP_BASIC_GET_OK_METHOD, + AMQP_BASIC_GET_EMPTY_METHOD, 0}; amqp_basic_get_t req; req.ticket = 0; req.queue = queue; req.no_ack = no_ack; - state->most_recent_api_result = amqp_simple_rpc(state, channel, - AMQP_BASIC_GET_METHOD, - replies, &req); + state->most_recent_api_result = + amqp_simple_rpc(state, channel, AMQP_BASIC_GET_METHOD, replies, &req); return state->most_recent_api_result; } -int amqp_basic_reject(amqp_connection_state_t state, - amqp_channel_t channel, - uint64_t delivery_tag, - amqp_boolean_t requeue) -{ +int amqp_basic_reject(amqp_connection_state_t state, amqp_channel_t channel, + uint64_t delivery_tag, amqp_boolean_t requeue) { amqp_basic_reject_t req; req.delivery_tag = delivery_tag; req.requeue = requeue; @@ -349,9 +347,8 @@ int amqp_basic_reject(amqp_connection_state_t state, } int amqp_basic_nack(amqp_connection_state_t state, amqp_channel_t channel, - uint64_t delivery_tag, amqp_boolean_t multiple, - amqp_boolean_t requeue) -{ + uint64_t delivery_tag, amqp_boolean_t multiple, + amqp_boolean_t requeue) { amqp_basic_nack_t req; req.delivery_tag = delivery_tag; req.multiple = multiple; @@ -378,7 +375,7 @@ int amqp_set_handshake_timeout(amqp_connection_state_t state, return AMQP_STATUS_OK; } -struct timeval * amqp_get_rpc_timeout(amqp_connection_state_t state) { +struct timeval *amqp_get_rpc_timeout(amqp_connection_state_t state) { return state->rpc_timeout; } diff --git a/librabbitmq/amqp_connection.c b/librabbitmq/amqp_connection.c index 529c4ef..034b2e9 100644 --- a/librabbitmq/amqp_connection.c +++ b/librabbitmq/amqp_connection.c @@ -38,11 +38,11 @@ #endif #ifdef _MSC_VER -# define _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS #endif -#include "amqp_tcp_socket.h" #include "amqp_private.h" +#include "amqp_tcp_socket.h" #include "amqp_time.h" #include <errno.h> #include <stdint.h> @@ -73,11 +73,10 @@ _wanted_state, _check_state->state); \ } -amqp_connection_state_t amqp_new_connection(void) -{ +amqp_connection_state_t amqp_new_connection(void) { int res; - amqp_connection_state_t state = - (amqp_connection_state_t) calloc(1, sizeof(struct amqp_connection_state_t_)); + amqp_connection_state_t state = (amqp_connection_state_t)calloc( + 1, sizeof(struct amqp_connection_state_t_)); if (state == NULL) { return NULL; @@ -97,7 +96,8 @@ amqp_connection_state_t amqp_new_connection(void) state->target_size = 8; state->sock_inbound_buffer.len = AMQP_INITIAL_INBOUND_SOCK_BUFFER_SIZE; - state->sock_inbound_buffer.bytes = malloc(AMQP_INITIAL_INBOUND_SOCK_BUFFER_SIZE); + state->sock_inbound_buffer.bytes = + malloc(AMQP_INITIAL_INBOUND_SOCK_BUFFER_SIZE); if (state->sock_inbound_buffer.bytes == NULL) { goto out_nomem; } @@ -117,14 +117,11 @@ out_nomem: return NULL; } -int amqp_get_sockfd(amqp_connection_state_t state) -{ +int amqp_get_sockfd(amqp_connection_state_t state) { return state->socket ? amqp_socket_get_sockfd(state->socket) : -1; } -void amqp_set_sockfd(amqp_connection_state_t state, - int sockfd) -{ +void amqp_set_sockfd(amqp_connection_state_t state, int sockfd) { amqp_socket_t *socket = amqp_tcp_socket_new(state); if (!socket) { amqp_abort("%s", strerror(errno)); @@ -132,23 +129,17 @@ void amqp_set_sockfd(amqp_connection_state_t state, amqp_tcp_socket_set_sockfd(socket, sockfd); } -void amqp_set_socket(amqp_connection_state_t state, amqp_socket_t *socket) -{ +void amqp_set_socket(amqp_connection_state_t state, amqp_socket_t *socket) { amqp_socket_delete(state->socket); state->socket = socket; } -amqp_socket_t * -amqp_get_socket(amqp_connection_state_t state) -{ +amqp_socket_t *amqp_get_socket(amqp_connection_state_t state) { return state->socket; } -int amqp_tune_connection(amqp_connection_state_t state, - int channel_max, - int frame_max, - int heartbeat) -{ +int amqp_tune_connection(amqp_connection_state_t state, int channel_max, + int frame_max, int heartbeat) { void *newbuf; int res; @@ -183,23 +174,19 @@ int amqp_tune_connection(amqp_connection_state_t state, return AMQP_STATUS_OK; } -int amqp_get_channel_max(amqp_connection_state_t state) -{ +int amqp_get_channel_max(amqp_connection_state_t state) { return state->channel_max; } -int amqp_get_frame_max(amqp_connection_state_t state) -{ +int amqp_get_frame_max(amqp_connection_state_t state) { return state->frame_max; } -int amqp_get_heartbeat(amqp_connection_state_t state) -{ +int amqp_get_heartbeat(amqp_connection_state_t state) { return state->heartbeat; } -int amqp_destroy_connection(amqp_connection_state_t state) -{ +int amqp_destroy_connection(amqp_connection_state_t state) { int status = AMQP_STATUS_OK; if (state) { int i; @@ -222,8 +209,7 @@ int amqp_destroy_connection(amqp_connection_state_t state) return status; } -static void return_to_idle(amqp_connection_state_t state) -{ +static void return_to_idle(amqp_connection_state_t state) { state->inbound_buffer.len = sizeof(state->header_buffer); state->inbound_buffer.bytes = state->header_buffer; state->inbound_offset = 0; @@ -232,8 +218,7 @@ static void return_to_idle(amqp_connection_state_t state) } static size_t consume_data(amqp_connection_state_t state, - amqp_bytes_t *received_data) -{ + amqp_bytes_t *received_data) { /* how much data is available and will fit? */ size_t bytes_consumed = state->target_size - state->inbound_offset; if (received_data->len < bytes_consumed) { @@ -249,10 +234,8 @@ static size_t consume_data(amqp_connection_state_t state, return bytes_consumed; } -int amqp_handle_input(amqp_connection_state_t state, - amqp_bytes_t received_data, - amqp_frame_t *decoded_frame) -{ +int amqp_handle_input(amqp_connection_state_t state, amqp_bytes_t received_data, + amqp_frame_t *decoded_frame) { size_t bytes_consumed; void *raw_frame; @@ -279,174 +262,172 @@ int amqp_handle_input(amqp_connection_state_t state, raw_frame = state->inbound_buffer.bytes; switch (state->state) { - case CONNECTION_STATE_INITIAL: - /* check for a protocol header from the server */ - if (memcmp(raw_frame, "AMQP", 4) == 0) { - decoded_frame->frame_type = AMQP_PSEUDOFRAME_PROTOCOL_HEADER; - decoded_frame->channel = 0; - - decoded_frame->payload.protocol_header.transport_high - = amqp_d8(amqp_offset(raw_frame, 4)); - decoded_frame->payload.protocol_header.transport_low - = amqp_d8(amqp_offset(raw_frame, 5)); - decoded_frame->payload.protocol_header.protocol_version_major - = amqp_d8(amqp_offset(raw_frame, 6)); - decoded_frame->payload.protocol_header.protocol_version_minor - = amqp_d8(amqp_offset(raw_frame, 7)); - - return_to_idle(state); - return (int)bytes_consumed; - } + case CONNECTION_STATE_INITIAL: + /* check for a protocol header from the server */ + if (memcmp(raw_frame, "AMQP", 4) == 0) { + decoded_frame->frame_type = AMQP_PSEUDOFRAME_PROTOCOL_HEADER; + decoded_frame->channel = 0; + + decoded_frame->payload.protocol_header.transport_high = + amqp_d8(amqp_offset(raw_frame, 4)); + decoded_frame->payload.protocol_header.transport_low = + amqp_d8(amqp_offset(raw_frame, 5)); + decoded_frame->payload.protocol_header.protocol_version_major = + amqp_d8(amqp_offset(raw_frame, 6)); + decoded_frame->payload.protocol_header.protocol_version_minor = + amqp_d8(amqp_offset(raw_frame, 7)); + + return_to_idle(state); + return (int)bytes_consumed; + } /* it's not a protocol header; fall through to process it as a regular frame header */ - case CONNECTION_STATE_HEADER: { - amqp_channel_t channel; - amqp_pool_t *channel_pool; - /* frame length is 3 bytes in */ - channel = amqp_d16(amqp_offset(raw_frame, 1)); + case CONNECTION_STATE_HEADER: { + amqp_channel_t channel; + amqp_pool_t *channel_pool; + /* frame length is 3 bytes in */ + channel = amqp_d16(amqp_offset(raw_frame, 1)); - state->target_size - = amqp_d32(amqp_offset(raw_frame, 3)) + HEADER_SIZE + FOOTER_SIZE; + state->target_size = + amqp_d32(amqp_offset(raw_frame, 3)) + HEADER_SIZE + FOOTER_SIZE; - if ((size_t)state->frame_max < state->target_size) { - return AMQP_STATUS_BAD_AMQP_DATA; - } + if ((size_t)state->frame_max < state->target_size) { + return AMQP_STATUS_BAD_AMQP_DATA; + } - channel_pool = amqp_get_or_create_channel_pool(state, channel); - if (NULL == channel_pool) { - return AMQP_STATUS_NO_MEMORY; - } + channel_pool = amqp_get_or_create_channel_pool(state, channel); + if (NULL == channel_pool) { + return AMQP_STATUS_NO_MEMORY; + } - amqp_pool_alloc_bytes(channel_pool, state->target_size, &state->inbound_buffer); - if (NULL == state->inbound_buffer.bytes) { - return AMQP_STATUS_NO_MEMORY; - } - memcpy(state->inbound_buffer.bytes, state->header_buffer, HEADER_SIZE); - raw_frame = state->inbound_buffer.bytes; + amqp_pool_alloc_bytes(channel_pool, state->target_size, + &state->inbound_buffer); + if (NULL == state->inbound_buffer.bytes) { + return AMQP_STATUS_NO_MEMORY; + } + memcpy(state->inbound_buffer.bytes, state->header_buffer, HEADER_SIZE); + raw_frame = state->inbound_buffer.bytes; - state->state = CONNECTION_STATE_BODY; + state->state = CONNECTION_STATE_BODY; - bytes_consumed += consume_data(state, &received_data); + bytes_consumed += consume_data(state, &received_data); - /* do we have target_size data yet? if not, return with the - expectation that more will arrive */ - if (state->inbound_offset < state->target_size) { - return (int)bytes_consumed; + /* do we have target_size data yet? if not, return with the + expectation that more will arrive */ + if (state->inbound_offset < state->target_size) { + return (int)bytes_consumed; + } } - - } /* fall through to process body */ - case CONNECTION_STATE_BODY: { - amqp_bytes_t encoded; - int res; - amqp_pool_t *channel_pool; - - /* Check frame end marker (footer) */ - if (amqp_d8(amqp_offset(raw_frame, state->target_size - 1)) != - AMQP_FRAME_END) { - return AMQP_STATUS_BAD_AMQP_DATA; - } + case CONNECTION_STATE_BODY: { + amqp_bytes_t encoded; + int res; + amqp_pool_t *channel_pool; - decoded_frame->frame_type = amqp_d8(amqp_offset(raw_frame, 0)); - decoded_frame->channel = amqp_d16(amqp_offset(raw_frame, 1)); - - channel_pool = amqp_get_or_create_channel_pool(state, decoded_frame->channel); - if (NULL == channel_pool) { - return AMQP_STATUS_NO_MEMORY; - } + /* Check frame end marker (footer) */ + if (amqp_d8(amqp_offset(raw_frame, state->target_size - 1)) != + AMQP_FRAME_END) { + return AMQP_STATUS_BAD_AMQP_DATA; + } - switch (decoded_frame->frame_type) { - case AMQP_FRAME_METHOD: - decoded_frame->payload.method.id = - amqp_d32(amqp_offset(raw_frame, HEADER_SIZE)); - encoded.bytes = amqp_offset(raw_frame, HEADER_SIZE + 4); - encoded.len = state->target_size - HEADER_SIZE - 4 - FOOTER_SIZE; + decoded_frame->frame_type = amqp_d8(amqp_offset(raw_frame, 0)); + decoded_frame->channel = amqp_d16(amqp_offset(raw_frame, 1)); - res = amqp_decode_method(decoded_frame->payload.method.id, - channel_pool, encoded, - &decoded_frame->payload.method.decoded); - if (res < 0) { - return res; + channel_pool = + amqp_get_or_create_channel_pool(state, decoded_frame->channel); + if (NULL == channel_pool) { + return AMQP_STATUS_NO_MEMORY; } - break; + switch (decoded_frame->frame_type) { + case AMQP_FRAME_METHOD: + decoded_frame->payload.method.id = + amqp_d32(amqp_offset(raw_frame, HEADER_SIZE)); + encoded.bytes = amqp_offset(raw_frame, HEADER_SIZE + 4); + encoded.len = state->target_size - HEADER_SIZE - 4 - FOOTER_SIZE; - case AMQP_FRAME_HEADER: - decoded_frame->payload.properties.class_id - = amqp_d16(amqp_offset(raw_frame, HEADER_SIZE)); - /* unused 2-byte weight field goes here */ - decoded_frame->payload.properties.body_size - = amqp_d64(amqp_offset(raw_frame, HEADER_SIZE + 4)); - encoded.bytes = amqp_offset(raw_frame, HEADER_SIZE + 12); - encoded.len = state->target_size - HEADER_SIZE - 12 - FOOTER_SIZE; - decoded_frame->payload.properties.raw = encoded; - - res = amqp_decode_properties(decoded_frame->payload.properties.class_id, + res = amqp_decode_method(decoded_frame->payload.method.id, channel_pool, encoded, - &decoded_frame->payload.properties.decoded); - if (res < 0) { - return res; + &decoded_frame->payload.method.decoded); + if (res < 0) { + return res; + } + + break; + + case AMQP_FRAME_HEADER: + decoded_frame->payload.properties.class_id = + amqp_d16(amqp_offset(raw_frame, HEADER_SIZE)); + /* unused 2-byte weight field goes here */ + decoded_frame->payload.properties.body_size = + amqp_d64(amqp_offset(raw_frame, HEADER_SIZE + 4)); + encoded.bytes = amqp_offset(raw_frame, HEADER_SIZE + 12); + encoded.len = state->target_size - HEADER_SIZE - 12 - FOOTER_SIZE; + decoded_frame->payload.properties.raw = encoded; + + res = amqp_decode_properties( + decoded_frame->payload.properties.class_id, channel_pool, encoded, + &decoded_frame->payload.properties.decoded); + if (res < 0) { + return res; + } + + break; + + case AMQP_FRAME_BODY: + decoded_frame->payload.body_fragment.len = + state->target_size - HEADER_SIZE - FOOTER_SIZE; + decoded_frame->payload.body_fragment.bytes = + amqp_offset(raw_frame, HEADER_SIZE); + break; + + case AMQP_FRAME_HEARTBEAT: + break; + + default: + /* Ignore the frame */ + decoded_frame->frame_type = 0; + break; } - break; - - case AMQP_FRAME_BODY: - decoded_frame->payload.body_fragment.len - = state->target_size - HEADER_SIZE - FOOTER_SIZE; - decoded_frame->payload.body_fragment.bytes - = amqp_offset(raw_frame, HEADER_SIZE); - break; - - case AMQP_FRAME_HEARTBEAT: - break; - - default: - /* Ignore the frame */ - decoded_frame->frame_type = 0; - break; + return_to_idle(state); + return (int)bytes_consumed; } - return_to_idle(state); - return (int)bytes_consumed; - } - - default: - amqp_abort("Internal error: invalid amqp_connection_state_t->state %d", - state->state); + default: + amqp_abort("Internal error: invalid amqp_connection_state_t->state %d", + state->state); } } -amqp_boolean_t amqp_release_buffers_ok(amqp_connection_state_t state) -{ +amqp_boolean_t amqp_release_buffers_ok(amqp_connection_state_t state) { return (state->state == CONNECTION_STATE_IDLE); } -void amqp_release_buffers(amqp_connection_state_t state) -{ +void amqp_release_buffers(amqp_connection_state_t state) { int i; ENFORCE_STATE(state, CONNECTION_STATE_IDLE); for (i = 0; i < POOL_TABLE_SIZE; ++i) { amqp_pool_table_entry_t *entry = state->pool_table[i]; - for ( ;NULL != entry; entry = entry->next) { + for (; NULL != entry; entry = entry->next) { amqp_maybe_release_buffers_on_channel(state, entry->channel); } } } -void amqp_maybe_release_buffers(amqp_connection_state_t state) -{ +void amqp_maybe_release_buffers(amqp_connection_state_t state) { if (amqp_release_buffers_ok(state)) { amqp_release_buffers(state); } } -void amqp_maybe_release_buffers_on_channel(amqp_connection_state_t state, amqp_channel_t channel) -{ +void amqp_maybe_release_buffers_on_channel(amqp_connection_state_t state, + amqp_channel_t channel) { amqp_link_t *queued_link; amqp_pool_t *pool; if (CONNECTION_STATE_IDLE != state->state) { @@ -547,8 +528,7 @@ static int amqp_frame_to_bytes(const amqp_frame_t *frame, amqp_bytes_t buffer, return AMQP_STATUS_OK; } -int amqp_send_frame(amqp_connection_state_t state, - const amqp_frame_t *frame) { +int amqp_send_frame(amqp_connection_state_t state, const amqp_frame_t *frame) { return amqp_send_frame_inner(state, frame, AMQP_SF_NONE, amqp_time_infinite()); } @@ -596,7 +576,7 @@ start_send: return res; } - encoded.bytes = (uint8_t*)encoded.bytes + sent; + encoded.bytes = (uint8_t *)encoded.bytes + sent; encoded.len -= sent; goto start_send; } @@ -606,14 +586,10 @@ start_send: return res; } -amqp_table_t * -amqp_get_server_properties(amqp_connection_state_t state) -{ +amqp_table_t *amqp_get_server_properties(amqp_connection_state_t state) { return &state->server_properties; } -amqp_table_t * -amqp_get_client_properties(amqp_connection_state_t state) -{ +amqp_table_t *amqp_get_client_properties(amqp_connection_state_t state) { return &state->client_properties; } diff --git a/librabbitmq/amqp_consumer.c b/librabbitmq/amqp_consumer.c index 778b2f2..bb9095f 100644 --- a/librabbitmq/amqp_consumer.c +++ b/librabbitmq/amqp_consumer.c @@ -33,23 +33,21 @@ #include <stdlib.h> #include <string.h> -static -int amqp_basic_properties_clone(amqp_basic_properties_t *original, - amqp_basic_properties_t *clone, - amqp_pool_t *pool) -{ +static int amqp_basic_properties_clone(amqp_basic_properties_t *original, + amqp_basic_properties_t *clone, + amqp_pool_t *pool) { memset(clone, 0, sizeof(*clone)); clone->_flags = original->_flags; -#define CLONE_BYTES_POOL(original, clone, pool) \ - if (0 == original.len) { \ - clone = amqp_empty_bytes; \ - } else { \ - amqp_pool_alloc_bytes(pool, original.len, &clone); \ - if (NULL == clone.bytes) { \ - return AMQP_STATUS_NO_MEMORY; \ - } \ - memcpy(clone.bytes, original.bytes, clone.len); \ +#define CLONE_BYTES_POOL(original, clone, pool) \ + if (0 == original.len) { \ + clone = amqp_empty_bytes; \ + } else { \ + amqp_pool_alloc_bytes(pool, original.len, &clone); \ + if (NULL == clone.bytes) { \ + return AMQP_STATUS_NO_MEMORY; \ + } \ + memcpy(clone.bytes, original.bytes, clone.len); \ } if (clone->_flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { @@ -115,33 +113,29 @@ int amqp_basic_properties_clone(amqp_basic_properties_t *original, #undef CLONE_BYTES_POOL } - -void amqp_destroy_message(amqp_message_t *message) -{ +void amqp_destroy_message(amqp_message_t *message) { empty_amqp_pool(&message->pool); amqp_bytes_free(message->body); } -void amqp_destroy_envelope(amqp_envelope_t *envelope) -{ +void amqp_destroy_envelope(amqp_envelope_t *envelope) { amqp_destroy_message(&envelope->message); amqp_bytes_free(envelope->routing_key); amqp_bytes_free(envelope->exchange); amqp_bytes_free(envelope->consumer_tag); } -static -int amqp_bytes_malloc_dup_failed(amqp_bytes_t bytes) { +static int amqp_bytes_malloc_dup_failed(amqp_bytes_t bytes) { if (bytes.len != 0 && bytes.bytes == NULL) { return 1; } return 0; } -amqp_rpc_reply_t -amqp_consume_message(amqp_connection_state_t state, amqp_envelope_t *envelope, - struct timeval *timeout, AMQP_UNUSED int flags) -{ +amqp_rpc_reply_t amqp_consume_message(amqp_connection_state_t state, + amqp_envelope_t *envelope, + struct timeval *timeout, + AMQP_UNUSED int flags) { int res; amqp_frame_t frame; amqp_basic_deliver_t *delivery_method; @@ -157,8 +151,8 @@ amqp_consume_message(amqp_connection_state_t state, amqp_envelope_t *envelope, goto error_out1; } - if (AMQP_FRAME_METHOD != frame.frame_type - || AMQP_BASIC_DELIVER_METHOD != frame.payload.method.id) { + if (AMQP_FRAME_METHOD != frame.frame_type || + AMQP_BASIC_DELIVER_METHOD != frame.payload.method.id) { amqp_put_back_frame(state, &frame); ret.reply_type = AMQP_RESPONSE_LIBRARY_EXCEPTION; ret.library_error = AMQP_STATUS_UNEXPECTED_STATE; @@ -201,8 +195,7 @@ error_out1: amqp_rpc_reply_t amqp_read_message(amqp_connection_state_t state, amqp_channel_t channel, amqp_message_t *message, - AMQP_UNUSED int flags) -{ + AMQP_UNUSED int flags) { amqp_frame_t frame; amqp_rpc_reply_t ret; @@ -256,7 +249,8 @@ amqp_rpc_reply_t amqp_read_message(amqp_connection_state_t state, ret.library_error = AMQP_STATUS_NO_MEMORY; goto error_out1; } - message->body = amqp_bytes_malloc((size_t)frame.payload.properties.body_size); + message->body = + amqp_bytes_malloc((size_t)frame.payload.properties.body_size); if (NULL == message->body.bytes) { ret.reply_type = AMQP_RESPONSE_LIBRARY_EXCEPTION; ret.library_error = AMQP_STATUS_NO_MEMORY; @@ -294,7 +288,8 @@ amqp_rpc_reply_t amqp_read_message(amqp_connection_state_t state, goto error_out2; } - memcpy(body_read_ptr, frame.payload.body_fragment.bytes, frame.payload.body_fragment.len); + memcpy(body_read_ptr, frame.payload.body_fragment.bytes, + frame.payload.body_fragment.len); body_read += frame.payload.body_fragment.len; body_read_ptr += frame.payload.body_fragment.len; diff --git a/librabbitmq/amqp_framing.c b/librabbitmq/amqp_framing.c index a042289..bdeb01c 100644 --- a/librabbitmq/amqp_framing.c +++ b/librabbitmq/amqp_framing.c @@ -44,380 +44,568 @@ #include <stdlib.h> #include <string.h> - char const *amqp_constant_name(int constantNumber) { switch (constantNumber) { - case AMQP_FRAME_METHOD: return "AMQP_FRAME_METHOD"; - case AMQP_FRAME_HEADER: return "AMQP_FRAME_HEADER"; - case AMQP_FRAME_BODY: return "AMQP_FRAME_BODY"; - case AMQP_FRAME_HEARTBEAT: return "AMQP_FRAME_HEARTBEAT"; - case AMQP_FRAME_MIN_SIZE: return "AMQP_FRAME_MIN_SIZE"; - case AMQP_FRAME_END: return "AMQP_FRAME_END"; - case AMQP_REPLY_SUCCESS: return "AMQP_REPLY_SUCCESS"; - case AMQP_CONTENT_TOO_LARGE: return "AMQP_CONTENT_TOO_LARGE"; - case AMQP_NO_ROUTE: return "AMQP_NO_ROUTE"; - case AMQP_NO_CONSUMERS: return "AMQP_NO_CONSUMERS"; - case AMQP_ACCESS_REFUSED: return "AMQP_ACCESS_REFUSED"; - case AMQP_NOT_FOUND: return "AMQP_NOT_FOUND"; - case AMQP_RESOURCE_LOCKED: return "AMQP_RESOURCE_LOCKED"; - case AMQP_PRECONDITION_FAILED: return "AMQP_PRECONDITION_FAILED"; - case AMQP_CONNECTION_FORCED: return "AMQP_CONNECTION_FORCED"; - case AMQP_INVALID_PATH: return "AMQP_INVALID_PATH"; - case AMQP_FRAME_ERROR: return "AMQP_FRAME_ERROR"; - case AMQP_SYNTAX_ERROR: return "AMQP_SYNTAX_ERROR"; - case AMQP_COMMAND_INVALID: return "AMQP_COMMAND_INVALID"; - case AMQP_CHANNEL_ERROR: return "AMQP_CHANNEL_ERROR"; - case AMQP_UNEXPECTED_FRAME: return "AMQP_UNEXPECTED_FRAME"; - case AMQP_RESOURCE_ERROR: return "AMQP_RESOURCE_ERROR"; - case AMQP_NOT_ALLOWED: return "AMQP_NOT_ALLOWED"; - case AMQP_NOT_IMPLEMENTED: return "AMQP_NOT_IMPLEMENTED"; - case AMQP_INTERNAL_ERROR: return "AMQP_INTERNAL_ERROR"; - default: return "(unknown)"; + case AMQP_FRAME_METHOD: + return "AMQP_FRAME_METHOD"; + case AMQP_FRAME_HEADER: + return "AMQP_FRAME_HEADER"; + case AMQP_FRAME_BODY: + return "AMQP_FRAME_BODY"; + case AMQP_FRAME_HEARTBEAT: + return "AMQP_FRAME_HEARTBEAT"; + case AMQP_FRAME_MIN_SIZE: + return "AMQP_FRAME_MIN_SIZE"; + case AMQP_FRAME_END: + return "AMQP_FRAME_END"; + case AMQP_REPLY_SUCCESS: + return "AMQP_REPLY_SUCCESS"; + case AMQP_CONTENT_TOO_LARGE: + return "AMQP_CONTENT_TOO_LARGE"; + case AMQP_NO_ROUTE: + return "AMQP_NO_ROUTE"; + case AMQP_NO_CONSUMERS: + return "AMQP_NO_CONSUMERS"; + case AMQP_ACCESS_REFUSED: + return "AMQP_ACCESS_REFUSED"; + case AMQP_NOT_FOUND: + return "AMQP_NOT_FOUND"; + case AMQP_RESOURCE_LOCKED: + return "AMQP_RESOURCE_LOCKED"; + case AMQP_PRECONDITION_FAILED: + return "AMQP_PRECONDITION_FAILED"; + case AMQP_CONNECTION_FORCED: + return "AMQP_CONNECTION_FORCED"; + case AMQP_INVALID_PATH: + return "AMQP_INVALID_PATH"; + case AMQP_FRAME_ERROR: + return "AMQP_FRAME_ERROR"; + case AMQP_SYNTAX_ERROR: + return "AMQP_SYNTAX_ERROR"; + case AMQP_COMMAND_INVALID: + return "AMQP_COMMAND_INVALID"; + case AMQP_CHANNEL_ERROR: + return "AMQP_CHANNEL_ERROR"; + case AMQP_UNEXPECTED_FRAME: + return "AMQP_UNEXPECTED_FRAME"; + case AMQP_RESOURCE_ERROR: + return "AMQP_RESOURCE_ERROR"; + case AMQP_NOT_ALLOWED: + return "AMQP_NOT_ALLOWED"; + case AMQP_NOT_IMPLEMENTED: + return "AMQP_NOT_IMPLEMENTED"; + case AMQP_INTERNAL_ERROR: + return "AMQP_INTERNAL_ERROR"; + default: + return "(unknown)"; } } amqp_boolean_t amqp_constant_is_hard_error(int constantNumber) { switch (constantNumber) { - case AMQP_CONNECTION_FORCED: return 1; - case AMQP_INVALID_PATH: return 1; - case AMQP_FRAME_ERROR: return 1; - case AMQP_SYNTAX_ERROR: return 1; - case AMQP_COMMAND_INVALID: return 1; - case AMQP_CHANNEL_ERROR: return 1; - case AMQP_UNEXPECTED_FRAME: return 1; - case AMQP_RESOURCE_ERROR: return 1; - case AMQP_NOT_ALLOWED: return 1; - case AMQP_NOT_IMPLEMENTED: return 1; - case AMQP_INTERNAL_ERROR: return 1; - default: return 0; + case AMQP_CONNECTION_FORCED: + return 1; + case AMQP_INVALID_PATH: + return 1; + case AMQP_FRAME_ERROR: + return 1; + case AMQP_SYNTAX_ERROR: + return 1; + case AMQP_COMMAND_INVALID: + return 1; + case AMQP_CHANNEL_ERROR: + return 1; + case AMQP_UNEXPECTED_FRAME: + return 1; + case AMQP_RESOURCE_ERROR: + return 1; + case AMQP_NOT_ALLOWED: + return 1; + case AMQP_NOT_IMPLEMENTED: + return 1; + case AMQP_INTERNAL_ERROR: + return 1; + default: + return 0; } } char const *amqp_method_name(amqp_method_number_t methodNumber) { switch (methodNumber) { - case AMQP_CONNECTION_START_METHOD: return "AMQP_CONNECTION_START_METHOD"; - case AMQP_CONNECTION_START_OK_METHOD: return "AMQP_CONNECTION_START_OK_METHOD"; - case AMQP_CONNECTION_SECURE_METHOD: return "AMQP_CONNECTION_SECURE_METHOD"; - case AMQP_CONNECTION_SECURE_OK_METHOD: return "AMQP_CONNECTION_SECURE_OK_METHOD"; - case AMQP_CONNECTION_TUNE_METHOD: return "AMQP_CONNECTION_TUNE_METHOD"; - case AMQP_CONNECTION_TUNE_OK_METHOD: return "AMQP_CONNECTION_TUNE_OK_METHOD"; - case AMQP_CONNECTION_OPEN_METHOD: return "AMQP_CONNECTION_OPEN_METHOD"; - case AMQP_CONNECTION_OPEN_OK_METHOD: return "AMQP_CONNECTION_OPEN_OK_METHOD"; - case AMQP_CONNECTION_CLOSE_METHOD: return "AMQP_CONNECTION_CLOSE_METHOD"; - case AMQP_CONNECTION_CLOSE_OK_METHOD: return "AMQP_CONNECTION_CLOSE_OK_METHOD"; - case AMQP_CONNECTION_BLOCKED_METHOD: return "AMQP_CONNECTION_BLOCKED_METHOD"; - case AMQP_CONNECTION_UNBLOCKED_METHOD: return "AMQP_CONNECTION_UNBLOCKED_METHOD"; - case AMQP_CHANNEL_OPEN_METHOD: return "AMQP_CHANNEL_OPEN_METHOD"; - case AMQP_CHANNEL_OPEN_OK_METHOD: return "AMQP_CHANNEL_OPEN_OK_METHOD"; - case AMQP_CHANNEL_FLOW_METHOD: return "AMQP_CHANNEL_FLOW_METHOD"; - case AMQP_CHANNEL_FLOW_OK_METHOD: return "AMQP_CHANNEL_FLOW_OK_METHOD"; - case AMQP_CHANNEL_CLOSE_METHOD: return "AMQP_CHANNEL_CLOSE_METHOD"; - case AMQP_CHANNEL_CLOSE_OK_METHOD: return "AMQP_CHANNEL_CLOSE_OK_METHOD"; - case AMQP_ACCESS_REQUEST_METHOD: return "AMQP_ACCESS_REQUEST_METHOD"; - case AMQP_ACCESS_REQUEST_OK_METHOD: return "AMQP_ACCESS_REQUEST_OK_METHOD"; - case AMQP_EXCHANGE_DECLARE_METHOD: return "AMQP_EXCHANGE_DECLARE_METHOD"; - case AMQP_EXCHANGE_DECLARE_OK_METHOD: return "AMQP_EXCHANGE_DECLARE_OK_METHOD"; - case AMQP_EXCHANGE_DELETE_METHOD: return "AMQP_EXCHANGE_DELETE_METHOD"; - case AMQP_EXCHANGE_DELETE_OK_METHOD: return "AMQP_EXCHANGE_DELETE_OK_METHOD"; - case AMQP_EXCHANGE_BIND_METHOD: return "AMQP_EXCHANGE_BIND_METHOD"; - case AMQP_EXCHANGE_BIND_OK_METHOD: return "AMQP_EXCHANGE_BIND_OK_METHOD"; - case AMQP_EXCHANGE_UNBIND_METHOD: return "AMQP_EXCHANGE_UNBIND_METHOD"; - case AMQP_EXCHANGE_UNBIND_OK_METHOD: return "AMQP_EXCHANGE_UNBIND_OK_METHOD"; - case AMQP_QUEUE_DECLARE_METHOD: return "AMQP_QUEUE_DECLARE_METHOD"; - case AMQP_QUEUE_DECLARE_OK_METHOD: return "AMQP_QUEUE_DECLARE_OK_METHOD"; - case AMQP_QUEUE_BIND_METHOD: return "AMQP_QUEUE_BIND_METHOD"; - case AMQP_QUEUE_BIND_OK_METHOD: return "AMQP_QUEUE_BIND_OK_METHOD"; - case AMQP_QUEUE_PURGE_METHOD: return "AMQP_QUEUE_PURGE_METHOD"; - case AMQP_QUEUE_PURGE_OK_METHOD: return "AMQP_QUEUE_PURGE_OK_METHOD"; - case AMQP_QUEUE_DELETE_METHOD: return "AMQP_QUEUE_DELETE_METHOD"; - case AMQP_QUEUE_DELETE_OK_METHOD: return "AMQP_QUEUE_DELETE_OK_METHOD"; - case AMQP_QUEUE_UNBIND_METHOD: return "AMQP_QUEUE_UNBIND_METHOD"; - case AMQP_QUEUE_UNBIND_OK_METHOD: return "AMQP_QUEUE_UNBIND_OK_METHOD"; - case AMQP_BASIC_QOS_METHOD: return "AMQP_BASIC_QOS_METHOD"; - case AMQP_BASIC_QOS_OK_METHOD: return "AMQP_BASIC_QOS_OK_METHOD"; - case AMQP_BASIC_CONSUME_METHOD: return "AMQP_BASIC_CONSUME_METHOD"; - case AMQP_BASIC_CONSUME_OK_METHOD: return "AMQP_BASIC_CONSUME_OK_METHOD"; - case AMQP_BASIC_CANCEL_METHOD: return "AMQP_BASIC_CANCEL_METHOD"; - case AMQP_BASIC_CANCEL_OK_METHOD: return "AMQP_BASIC_CANCEL_OK_METHOD"; - case AMQP_BASIC_PUBLISH_METHOD: return "AMQP_BASIC_PUBLISH_METHOD"; - case AMQP_BASIC_RETURN_METHOD: return "AMQP_BASIC_RETURN_METHOD"; - case AMQP_BASIC_DELIVER_METHOD: return "AMQP_BASIC_DELIVER_METHOD"; - case AMQP_BASIC_GET_METHOD: return "AMQP_BASIC_GET_METHOD"; - case AMQP_BASIC_GET_OK_METHOD: return "AMQP_BASIC_GET_OK_METHOD"; - case AMQP_BASIC_GET_EMPTY_METHOD: return "AMQP_BASIC_GET_EMPTY_METHOD"; - case AMQP_BASIC_ACK_METHOD: return "AMQP_BASIC_ACK_METHOD"; - case AMQP_BASIC_REJECT_METHOD: return "AMQP_BASIC_REJECT_METHOD"; - case AMQP_BASIC_RECOVER_ASYNC_METHOD: return "AMQP_BASIC_RECOVER_ASYNC_METHOD"; - case AMQP_BASIC_RECOVER_METHOD: return "AMQP_BASIC_RECOVER_METHOD"; - case AMQP_BASIC_RECOVER_OK_METHOD: return "AMQP_BASIC_RECOVER_OK_METHOD"; - case AMQP_BASIC_NACK_METHOD: return "AMQP_BASIC_NACK_METHOD"; - case AMQP_TX_SELECT_METHOD: return "AMQP_TX_SELECT_METHOD"; - case AMQP_TX_SELECT_OK_METHOD: return "AMQP_TX_SELECT_OK_METHOD"; - case AMQP_TX_COMMIT_METHOD: return "AMQP_TX_COMMIT_METHOD"; - case AMQP_TX_COMMIT_OK_METHOD: return "AMQP_TX_COMMIT_OK_METHOD"; - case AMQP_TX_ROLLBACK_METHOD: return "AMQP_TX_ROLLBACK_METHOD"; - case AMQP_TX_ROLLBACK_OK_METHOD: return "AMQP_TX_ROLLBACK_OK_METHOD"; - case AMQP_CONFIRM_SELECT_METHOD: return "AMQP_CONFIRM_SELECT_METHOD"; - case AMQP_CONFIRM_SELECT_OK_METHOD: return "AMQP_CONFIRM_SELECT_OK_METHOD"; - default: return NULL; + case AMQP_CONNECTION_START_METHOD: + return "AMQP_CONNECTION_START_METHOD"; + case AMQP_CONNECTION_START_OK_METHOD: + return "AMQP_CONNECTION_START_OK_METHOD"; + case AMQP_CONNECTION_SECURE_METHOD: + return "AMQP_CONNECTION_SECURE_METHOD"; + case AMQP_CONNECTION_SECURE_OK_METHOD: + return "AMQP_CONNECTION_SECURE_OK_METHOD"; + case AMQP_CONNECTION_TUNE_METHOD: + return "AMQP_CONNECTION_TUNE_METHOD"; + case AMQP_CONNECTION_TUNE_OK_METHOD: + return "AMQP_CONNECTION_TUNE_OK_METHOD"; + case AMQP_CONNECTION_OPEN_METHOD: + return "AMQP_CONNECTION_OPEN_METHOD"; + case AMQP_CONNECTION_OPEN_OK_METHOD: + return "AMQP_CONNECTION_OPEN_OK_METHOD"; + case AMQP_CONNECTION_CLOSE_METHOD: + return "AMQP_CONNECTION_CLOSE_METHOD"; + case AMQP_CONNECTION_CLOSE_OK_METHOD: + return "AMQP_CONNECTION_CLOSE_OK_METHOD"; + case AMQP_CONNECTION_BLOCKED_METHOD: + return "AMQP_CONNECTION_BLOCKED_METHOD"; + case AMQP_CONNECTION_UNBLOCKED_METHOD: + return "AMQP_CONNECTION_UNBLOCKED_METHOD"; + case AMQP_CHANNEL_OPEN_METHOD: + return "AMQP_CHANNEL_OPEN_METHOD"; + case AMQP_CHANNEL_OPEN_OK_METHOD: + return "AMQP_CHANNEL_OPEN_OK_METHOD"; + case AMQP_CHANNEL_FLOW_METHOD: + return "AMQP_CHANNEL_FLOW_METHOD"; + case AMQP_CHANNEL_FLOW_OK_METHOD: + return "AMQP_CHANNEL_FLOW_OK_METHOD"; + case AMQP_CHANNEL_CLOSE_METHOD: + return "AMQP_CHANNEL_CLOSE_METHOD"; + case AMQP_CHANNEL_CLOSE_OK_METHOD: + return "AMQP_CHANNEL_CLOSE_OK_METHOD"; + case AMQP_ACCESS_REQUEST_METHOD: + return "AMQP_ACCESS_REQUEST_METHOD"; + case AMQP_ACCESS_REQUEST_OK_METHOD: + return "AMQP_ACCESS_REQUEST_OK_METHOD"; + case AMQP_EXCHANGE_DECLARE_METHOD: + return "AMQP_EXCHANGE_DECLARE_METHOD"; + case AMQP_EXCHANGE_DECLARE_OK_METHOD: + return "AMQP_EXCHANGE_DECLARE_OK_METHOD"; + case AMQP_EXCHANGE_DELETE_METHOD: + return "AMQP_EXCHANGE_DELETE_METHOD"; + case AMQP_EXCHANGE_DELETE_OK_METHOD: + return "AMQP_EXCHANGE_DELETE_OK_METHOD"; + case AMQP_EXCHANGE_BIND_METHOD: + return "AMQP_EXCHANGE_BIND_METHOD"; + case AMQP_EXCHANGE_BIND_OK_METHOD: + return "AMQP_EXCHANGE_BIND_OK_METHOD"; + case AMQP_EXCHANGE_UNBIND_METHOD: + return "AMQP_EXCHANGE_UNBIND_METHOD"; + case AMQP_EXCHANGE_UNBIND_OK_METHOD: + return "AMQP_EXCHANGE_UNBIND_OK_METHOD"; + case AMQP_QUEUE_DECLARE_METHOD: + return "AMQP_QUEUE_DECLARE_METHOD"; + case AMQP_QUEUE_DECLARE_OK_METHOD: + return "AMQP_QUEUE_DECLARE_OK_METHOD"; + case AMQP_QUEUE_BIND_METHOD: + return "AMQP_QUEUE_BIND_METHOD"; + case AMQP_QUEUE_BIND_OK_METHOD: + return "AMQP_QUEUE_BIND_OK_METHOD"; + case AMQP_QUEUE_PURGE_METHOD: + return "AMQP_QUEUE_PURGE_METHOD"; + case AMQP_QUEUE_PURGE_OK_METHOD: + return "AMQP_QUEUE_PURGE_OK_METHOD"; + case AMQP_QUEUE_DELETE_METHOD: + return "AMQP_QUEUE_DELETE_METHOD"; + case AMQP_QUEUE_DELETE_OK_METHOD: + return "AMQP_QUEUE_DELETE_OK_METHOD"; + case AMQP_QUEUE_UNBIND_METHOD: + return "AMQP_QUEUE_UNBIND_METHOD"; + case AMQP_QUEUE_UNBIND_OK_METHOD: + return "AMQP_QUEUE_UNBIND_OK_METHOD"; + case AMQP_BASIC_QOS_METHOD: + return "AMQP_BASIC_QOS_METHOD"; + case AMQP_BASIC_QOS_OK_METHOD: + return "AMQP_BASIC_QOS_OK_METHOD"; + case AMQP_BASIC_CONSUME_METHOD: + return "AMQP_BASIC_CONSUME_METHOD"; + case AMQP_BASIC_CONSUME_OK_METHOD: + return "AMQP_BASIC_CONSUME_OK_METHOD"; + case AMQP_BASIC_CANCEL_METHOD: + return "AMQP_BASIC_CANCEL_METHOD"; + case AMQP_BASIC_CANCEL_OK_METHOD: + return "AMQP_BASIC_CANCEL_OK_METHOD"; + case AMQP_BASIC_PUBLISH_METHOD: + return "AMQP_BASIC_PUBLISH_METHOD"; + case AMQP_BASIC_RETURN_METHOD: + return "AMQP_BASIC_RETURN_METHOD"; + case AMQP_BASIC_DELIVER_METHOD: + return "AMQP_BASIC_DELIVER_METHOD"; + case AMQP_BASIC_GET_METHOD: + return "AMQP_BASIC_GET_METHOD"; + case AMQP_BASIC_GET_OK_METHOD: + return "AMQP_BASIC_GET_OK_METHOD"; + case AMQP_BASIC_GET_EMPTY_METHOD: + return "AMQP_BASIC_GET_EMPTY_METHOD"; + case AMQP_BASIC_ACK_METHOD: + return "AMQP_BASIC_ACK_METHOD"; + case AMQP_BASIC_REJECT_METHOD: + return "AMQP_BASIC_REJECT_METHOD"; + case AMQP_BASIC_RECOVER_ASYNC_METHOD: + return "AMQP_BASIC_RECOVER_ASYNC_METHOD"; + case AMQP_BASIC_RECOVER_METHOD: + return "AMQP_BASIC_RECOVER_METHOD"; + case AMQP_BASIC_RECOVER_OK_METHOD: + return "AMQP_BASIC_RECOVER_OK_METHOD"; + case AMQP_BASIC_NACK_METHOD: + return "AMQP_BASIC_NACK_METHOD"; + case AMQP_TX_SELECT_METHOD: + return "AMQP_TX_SELECT_METHOD"; + case AMQP_TX_SELECT_OK_METHOD: + return "AMQP_TX_SELECT_OK_METHOD"; + case AMQP_TX_COMMIT_METHOD: + return "AMQP_TX_COMMIT_METHOD"; + case AMQP_TX_COMMIT_OK_METHOD: + return "AMQP_TX_COMMIT_OK_METHOD"; + case AMQP_TX_ROLLBACK_METHOD: + return "AMQP_TX_ROLLBACK_METHOD"; + case AMQP_TX_ROLLBACK_OK_METHOD: + return "AMQP_TX_ROLLBACK_OK_METHOD"; + case AMQP_CONFIRM_SELECT_METHOD: + return "AMQP_CONFIRM_SELECT_METHOD"; + case AMQP_CONFIRM_SELECT_OK_METHOD: + return "AMQP_CONFIRM_SELECT_OK_METHOD"; + default: + return NULL; } } amqp_boolean_t amqp_method_has_content(amqp_method_number_t methodNumber) { switch (methodNumber) { - case AMQP_BASIC_PUBLISH_METHOD: return 1; - case AMQP_BASIC_RETURN_METHOD: return 1; - case AMQP_BASIC_DELIVER_METHOD: return 1; - case AMQP_BASIC_GET_OK_METHOD: return 1; - default: return 0; + case AMQP_BASIC_PUBLISH_METHOD: + return 1; + case AMQP_BASIC_RETURN_METHOD: + return 1; + case AMQP_BASIC_DELIVER_METHOD: + return 1; + case AMQP_BASIC_GET_OK_METHOD: + return 1; + default: + return 0; } } -int amqp_decode_method(amqp_method_number_t methodNumber, - amqp_pool_t *pool, - amqp_bytes_t encoded, - void **decoded) -{ +int amqp_decode_method(amqp_method_number_t methodNumber, amqp_pool_t *pool, + amqp_bytes_t encoded, void **decoded) { size_t offset = 0; uint8_t bit_buffer; switch (methodNumber) { case AMQP_CONNECTION_START_METHOD: { - amqp_connection_start_t *m = (amqp_connection_start_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_start_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_8(encoded, &offset, &m->version_major)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &m->version_minor)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_start_t *m = (amqp_connection_start_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_start_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_8(encoded, &offset, &m->version_major)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &m->version_minor)) + return AMQP_STATUS_BAD_AMQP_DATA; { - int res = amqp_decode_table(encoded, pool, &(m->server_properties), &offset); + int res = + amqp_decode_table(encoded, pool, &(m->server_properties), &offset); if (res < 0) return res; } { uint32_t len; - if (!amqp_decode_32(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->mechanisms, len)) + if (!amqp_decode_32(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->mechanisms, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint32_t len; - if (!amqp_decode_32(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->locales, len)) + if (!amqp_decode_32(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->locales, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CONNECTION_START_OK_METHOD: { - amqp_connection_start_ok_t *m = (amqp_connection_start_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_start_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_start_ok_t *m = + (amqp_connection_start_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_start_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { - int res = amqp_decode_table(encoded, pool, &(m->client_properties), &offset); + int res = + amqp_decode_table(encoded, pool, &(m->client_properties), &offset); if (res < 0) return res; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->mechanism, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->mechanism, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint32_t len; - if (!amqp_decode_32(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->response, len)) + if (!amqp_decode_32(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->response, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->locale, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->locale, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CONNECTION_SECURE_METHOD: { - amqp_connection_secure_t *m = (amqp_connection_secure_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_secure_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_secure_t *m = (amqp_connection_secure_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_secure_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint32_t len; - if (!amqp_decode_32(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->challenge, len)) + if (!amqp_decode_32(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->challenge, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CONNECTION_SECURE_OK_METHOD: { - amqp_connection_secure_ok_t *m = (amqp_connection_secure_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_secure_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_secure_ok_t *m = + (amqp_connection_secure_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_secure_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint32_t len; - if (!amqp_decode_32(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->response, len)) + if (!amqp_decode_32(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->response, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CONNECTION_TUNE_METHOD: { - amqp_connection_tune_t *m = (amqp_connection_tune_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_tune_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->channel_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_32(encoded, &offset, &m->frame_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_16(encoded, &offset, &m->heartbeat)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_tune_t *m = (amqp_connection_tune_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_tune_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->channel_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_32(encoded, &offset, &m->frame_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->heartbeat)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_CONNECTION_TUNE_OK_METHOD: { - amqp_connection_tune_ok_t *m = (amqp_connection_tune_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_tune_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->channel_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_32(encoded, &offset, &m->frame_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_16(encoded, &offset, &m->heartbeat)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_tune_ok_t *m = + (amqp_connection_tune_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_tune_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->channel_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_32(encoded, &offset, &m->frame_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->heartbeat)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_CONNECTION_OPEN_METHOD: { - amqp_connection_open_t *m = (amqp_connection_open_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_open_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_open_t *m = (amqp_connection_open_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_open_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->virtual_host, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->virtual_host, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->capabilities, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->capabilities, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->insist = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_CONNECTION_OPEN_OK_METHOD: { - amqp_connection_open_ok_t *m = (amqp_connection_open_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_open_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_open_ok_t *m = + (amqp_connection_open_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_open_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->known_hosts, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->known_hosts, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CONNECTION_CLOSE_METHOD: { - amqp_connection_close_t *m = (amqp_connection_close_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_close_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_close_t *m = (amqp_connection_close_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_close_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->reply_code)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->reply_text, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->reply_text, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_16(encoded, &offset, &m->class_id)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_16(encoded, &offset, &m->method_id)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->class_id)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->method_id)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_CONNECTION_CLOSE_OK_METHOD: { - amqp_connection_close_ok_t *m = (amqp_connection_close_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_close_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_close_ok_t *m = + (amqp_connection_close_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_close_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_CONNECTION_BLOCKED_METHOD: { - amqp_connection_blocked_t *m = (amqp_connection_blocked_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_blocked_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_blocked_t *m = + (amqp_connection_blocked_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_blocked_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->reason, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->reason, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CONNECTION_UNBLOCKED_METHOD: { - amqp_connection_unblocked_t *m = (amqp_connection_unblocked_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_unblocked_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_unblocked_t *m = + (amqp_connection_unblocked_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_unblocked_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_CHANNEL_OPEN_METHOD: { - amqp_channel_open_t *m = (amqp_channel_open_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_open_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_channel_open_t *m = (amqp_channel_open_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_open_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->out_of_band, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->out_of_band, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CHANNEL_OPEN_OK_METHOD: { - amqp_channel_open_ok_t *m = (amqp_channel_open_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_open_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_channel_open_ok_t *m = (amqp_channel_open_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_open_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint32_t len; - if (!amqp_decode_32(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->channel_id, len)) + if (!amqp_decode_32(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->channel_id, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_CHANNEL_FLOW_METHOD: { - amqp_channel_flow_t *m = (amqp_channel_flow_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_flow_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_channel_flow_t *m = (amqp_channel_flow_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_flow_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->active = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_CHANNEL_FLOW_OK_METHOD: { - amqp_channel_flow_ok_t *m = (amqp_channel_flow_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_flow_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_channel_flow_ok_t *m = (amqp_channel_flow_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_flow_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->active = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_CHANNEL_CLOSE_METHOD: { - amqp_channel_close_t *m = (amqp_channel_close_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_close_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_channel_close_t *m = (amqp_channel_close_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_close_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->reply_code)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->reply_text, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->reply_text, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_16(encoded, &offset, &m->class_id)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_16(encoded, &offset, &m->method_id)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->class_id)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->method_id)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_CHANNEL_CLOSE_OK_METHOD: { - amqp_channel_close_ok_t *m = (amqp_channel_close_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_close_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_channel_close_ok_t *m = (amqp_channel_close_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_close_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_ACCESS_REQUEST_METHOD: { - amqp_access_request_t *m = (amqp_access_request_t *) amqp_pool_alloc(pool, sizeof(amqp_access_request_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_access_request_t *m = (amqp_access_request_t *)amqp_pool_alloc( + pool, sizeof(amqp_access_request_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->realm, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->realm, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->exclusive = (bit_buffer & (1 << 0)) ? 1 : 0; m->passive = (bit_buffer & (1 << 1)) ? 1 : 0; m->active = (bit_buffer & (1 << 2)) ? 1 : 0; @@ -427,29 +615,38 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_ACCESS_REQUEST_OK_METHOD: { - amqp_access_request_ok_t *m = (amqp_access_request_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_access_request_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_access_request_ok_t *m = (amqp_access_request_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_access_request_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_EXCHANGE_DECLARE_METHOD: { - amqp_exchange_declare_t *m = (amqp_exchange_declare_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_declare_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_exchange_declare_t *m = (amqp_exchange_declare_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_declare_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->type, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->type, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->passive = (bit_buffer & (1 << 0)) ? 1 : 0; m->durable = (bit_buffer & (1 << 1)) ? 1 : 0; m->auto_delete = (bit_buffer & (1 << 2)) ? 1 : 0; @@ -463,56 +660,74 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_EXCHANGE_DECLARE_OK_METHOD: { - amqp_exchange_declare_ok_t *m = (amqp_exchange_declare_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_declare_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_exchange_declare_ok_t *m = + (amqp_exchange_declare_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_declare_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_EXCHANGE_DELETE_METHOD: { - amqp_exchange_delete_t *m = (amqp_exchange_delete_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_delete_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_exchange_delete_t *m = (amqp_exchange_delete_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_delete_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->if_unused = (bit_buffer & (1 << 0)) ? 1 : 0; m->nowait = (bit_buffer & (1 << 1)) ? 1 : 0; *decoded = m; return 0; } case AMQP_EXCHANGE_DELETE_OK_METHOD: { - amqp_exchange_delete_ok_t *m = (amqp_exchange_delete_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_delete_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_exchange_delete_ok_t *m = + (amqp_exchange_delete_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_delete_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_EXCHANGE_BIND_METHOD: { - amqp_exchange_bind_t *m = (amqp_exchange_bind_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_bind_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_exchange_bind_t *m = (amqp_exchange_bind_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_bind_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->destination, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->destination, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->source, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->source, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0; { int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset); @@ -522,34 +737,42 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_EXCHANGE_BIND_OK_METHOD: { - amqp_exchange_bind_ok_t *m = (amqp_exchange_bind_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_bind_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_exchange_bind_ok_t *m = (amqp_exchange_bind_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_bind_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_EXCHANGE_UNBIND_METHOD: { - amqp_exchange_unbind_t *m = (amqp_exchange_unbind_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_unbind_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_exchange_unbind_t *m = (amqp_exchange_unbind_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_unbind_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->destination, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->destination, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->source, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->source, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0; { int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset); @@ -559,22 +782,31 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_EXCHANGE_UNBIND_OK_METHOD: { - amqp_exchange_unbind_ok_t *m = (amqp_exchange_unbind_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_unbind_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_exchange_unbind_ok_t *m = + (amqp_exchange_unbind_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_unbind_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_QUEUE_DECLARE_METHOD: { - amqp_queue_declare_t *m = (amqp_queue_declare_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_declare_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_declare_t *m = (amqp_queue_declare_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_declare_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->passive = (bit_buffer & (1 << 0)) ? 1 : 0; m->durable = (bit_buffer & (1 << 1)) ? 1 : 0; m->exclusive = (bit_buffer & (1 << 2)) ? 1 : 0; @@ -588,42 +820,52 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_QUEUE_DECLARE_OK_METHOD: { - amqp_queue_declare_ok_t *m = (amqp_queue_declare_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_declare_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_queue_declare_ok_t *m = (amqp_queue_declare_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_declare_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_32(encoded, &offset, &m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_32(encoded, &offset, &m->consumer_count)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_32(encoded, &offset, &m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_32(encoded, &offset, &m->consumer_count)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_QUEUE_BIND_METHOD: { - amqp_queue_bind_t *m = (amqp_queue_bind_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_bind_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_bind_t *m = + (amqp_queue_bind_t *)amqp_pool_alloc(pool, sizeof(amqp_queue_bind_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0; { int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset); @@ -633,44 +875,61 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_QUEUE_BIND_OK_METHOD: { - amqp_queue_bind_ok_t *m = (amqp_queue_bind_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_bind_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_queue_bind_ok_t *m = (amqp_queue_bind_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_bind_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_QUEUE_PURGE_METHOD: { - amqp_queue_purge_t *m = (amqp_queue_purge_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_purge_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_purge_t *m = (amqp_queue_purge_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_purge_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_QUEUE_PURGE_OK_METHOD: { - amqp_queue_purge_ok_t *m = (amqp_queue_purge_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_purge_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_32(encoded, &offset, &m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_purge_ok_t *m = (amqp_queue_purge_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_purge_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_32(encoded, &offset, &m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_QUEUE_DELETE_METHOD: { - amqp_queue_delete_t *m = (amqp_queue_delete_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_delete_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_delete_t *m = (amqp_queue_delete_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_delete_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->if_unused = (bit_buffer & (1 << 0)) ? 1 : 0; m->if_empty = (bit_buffer & (1 << 1)) ? 1 : 0; m->nowait = (bit_buffer & (1 << 2)) ? 1 : 0; @@ -678,32 +937,40 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_QUEUE_DELETE_OK_METHOD: { - amqp_queue_delete_ok_t *m = (amqp_queue_delete_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_delete_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_32(encoded, &offset, &m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_delete_ok_t *m = (amqp_queue_delete_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_delete_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_32(encoded, &offset, &m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_QUEUE_UNBIND_METHOD: { - amqp_queue_unbind_t *m = (amqp_queue_unbind_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_unbind_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_unbind_t *m = (amqp_queue_unbind_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_unbind_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { @@ -714,44 +981,61 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_QUEUE_UNBIND_OK_METHOD: { - amqp_queue_unbind_ok_t *m = (amqp_queue_unbind_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_unbind_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_queue_unbind_ok_t *m = (amqp_queue_unbind_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_unbind_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_BASIC_QOS_METHOD: { - amqp_basic_qos_t *m = (amqp_basic_qos_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_qos_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_32(encoded, &offset, &m->prefetch_size)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_16(encoded, &offset, &m->prefetch_count)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_qos_t *m = + (amqp_basic_qos_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_qos_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_32(encoded, &offset, &m->prefetch_size)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_16(encoded, &offset, &m->prefetch_count)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->global = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_QOS_OK_METHOD: { - amqp_basic_qos_ok_t *m = (amqp_basic_qos_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_qos_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_qos_ok_t *m = (amqp_basic_qos_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_qos_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_BASIC_CONSUME_METHOD: { - amqp_basic_consume_t *m = (amqp_basic_consume_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_consume_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_consume_t *m = (amqp_basic_consume_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_consume_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->no_local = (bit_buffer & (1 << 0)) ? 1 : 0; m->no_ack = (bit_buffer & (1 << 1)) ? 1 : 0; m->exclusive = (bit_buffer & (1 << 2)) ? 1 : 0; @@ -764,275 +1048,363 @@ int amqp_decode_method(amqp_method_number_t methodNumber, return 0; } case AMQP_BASIC_CONSUME_OK_METHOD: { - amqp_basic_consume_ok_t *m = (amqp_basic_consume_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_consume_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_consume_ok_t *m = (amqp_basic_consume_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_consume_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_BASIC_CANCEL_METHOD: { - amqp_basic_cancel_t *m = (amqp_basic_cancel_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_cancel_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_cancel_t *m = (amqp_basic_cancel_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_cancel_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_CANCEL_OK_METHOD: { - amqp_basic_cancel_ok_t *m = (amqp_basic_cancel_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_cancel_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_cancel_ok_t *m = (amqp_basic_cancel_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_cancel_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_BASIC_PUBLISH_METHOD: { - amqp_basic_publish_t *m = (amqp_basic_publish_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_publish_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_publish_t *m = (amqp_basic_publish_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_publish_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->mandatory = (bit_buffer & (1 << 0)) ? 1 : 0; m->immediate = (bit_buffer & (1 << 1)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_RETURN_METHOD: { - amqp_basic_return_t *m = (amqp_basic_return_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_return_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_return_t *m = (amqp_basic_return_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_return_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->reply_code)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->reply_text, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->reply_text, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_BASIC_DELIVER_METHOD: { - amqp_basic_deliver_t *m = (amqp_basic_deliver_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_deliver_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_deliver_t *m = (amqp_basic_deliver_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_deliver_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->redelivered = (bit_buffer & (1 << 0)) ? 1 : 0; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_BASIC_GET_METHOD: { - amqp_basic_get_t *m = (amqp_basic_get_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_get_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_16(encoded, &offset, &m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_get_t *m = + (amqp_basic_get_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_get_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_16(encoded, &offset, &m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->queue, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->queue, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->no_ack = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_GET_OK_METHOD: { - amqp_basic_get_ok_t *m = (amqp_basic_get_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_get_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_get_ok_t *m = (amqp_basic_get_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_get_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->redelivered = (bit_buffer & (1 << 0)) ? 1 : 0; { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->exchange, len)) return AMQP_STATUS_BAD_AMQP_DATA; } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->routing_key, len)) return AMQP_STATUS_BAD_AMQP_DATA; } - if (!amqp_decode_32(encoded, &offset, &m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_32(encoded, &offset, &m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; *decoded = m; return 0; } case AMQP_BASIC_GET_EMPTY_METHOD: { - amqp_basic_get_empty_t *m = (amqp_basic_get_empty_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_get_empty_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_get_empty_t *m = (amqp_basic_get_empty_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_get_empty_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } { uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &m->cluster_id, len)) + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &m->cluster_id, len)) return AMQP_STATUS_BAD_AMQP_DATA; } *decoded = m; return 0; } case AMQP_BASIC_ACK_METHOD: { - amqp_basic_ack_t *m = (amqp_basic_ack_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_ack_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_ack_t *m = + (amqp_basic_ack_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_ack_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->multiple = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_REJECT_METHOD: { - amqp_basic_reject_t *m = (amqp_basic_reject_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_reject_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_reject_t *m = (amqp_basic_reject_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_reject_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->requeue = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_RECOVER_ASYNC_METHOD: { - amqp_basic_recover_async_t *m = (amqp_basic_recover_async_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_recover_async_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_recover_async_t *m = + (amqp_basic_recover_async_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_recover_async_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->requeue = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_RECOVER_METHOD: { - amqp_basic_recover_t *m = (amqp_basic_recover_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_recover_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_recover_t *m = (amqp_basic_recover_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_recover_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->requeue = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_BASIC_RECOVER_OK_METHOD: { - amqp_basic_recover_ok_t *m = (amqp_basic_recover_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_recover_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_recover_ok_t *m = (amqp_basic_recover_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_recover_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_BASIC_NACK_METHOD: { - amqp_basic_nack_t *m = (amqp_basic_nack_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_nack_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_nack_t *m = + (amqp_basic_nack_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_nack_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_64(encoded, &offset, &m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->multiple = (bit_buffer & (1 << 0)) ? 1 : 0; m->requeue = (bit_buffer & (1 << 1)) ? 1 : 0; *decoded = m; return 0; } case AMQP_TX_SELECT_METHOD: { - amqp_tx_select_t *m = (amqp_tx_select_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_select_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_select_t *m = + (amqp_tx_select_t *)amqp_pool_alloc(pool, sizeof(amqp_tx_select_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_TX_SELECT_OK_METHOD: { - amqp_tx_select_ok_t *m = (amqp_tx_select_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_select_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_select_ok_t *m = (amqp_tx_select_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_tx_select_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_TX_COMMIT_METHOD: { - amqp_tx_commit_t *m = (amqp_tx_commit_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_commit_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_commit_t *m = + (amqp_tx_commit_t *)amqp_pool_alloc(pool, sizeof(amqp_tx_commit_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_TX_COMMIT_OK_METHOD: { - amqp_tx_commit_ok_t *m = (amqp_tx_commit_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_commit_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_commit_ok_t *m = (amqp_tx_commit_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_tx_commit_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_TX_ROLLBACK_METHOD: { - amqp_tx_rollback_t *m = (amqp_tx_rollback_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_rollback_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_rollback_t *m = (amqp_tx_rollback_t *)amqp_pool_alloc( + pool, sizeof(amqp_tx_rollback_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_TX_ROLLBACK_OK_METHOD: { - amqp_tx_rollback_ok_t *m = (amqp_tx_rollback_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_rollback_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_rollback_ok_t *m = (amqp_tx_rollback_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_tx_rollback_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } case AMQP_CONFIRM_SELECT_METHOD: { - amqp_confirm_select_t *m = (amqp_confirm_select_t *) amqp_pool_alloc(pool, sizeof(amqp_confirm_select_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } - if (!amqp_decode_8(encoded, &offset, &bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_confirm_select_t *m = (amqp_confirm_select_t *)amqp_pool_alloc( + pool, sizeof(amqp_confirm_select_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } + if (!amqp_decode_8(encoded, &offset, &bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0; *decoded = m; return 0; } case AMQP_CONFIRM_SELECT_OK_METHOD: { - amqp_confirm_select_ok_t *m = (amqp_confirm_select_ok_t *) amqp_pool_alloc(pool, sizeof(amqp_confirm_select_ok_t)); - if (m == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_confirm_select_ok_t *m = (amqp_confirm_select_ok_t *)amqp_pool_alloc( + pool, sizeof(amqp_confirm_select_ok_t)); + if (m == NULL) { + return AMQP_STATUS_NO_MEMORY; + } *decoded = m; return 0; } - default: return AMQP_STATUS_UNKNOWN_METHOD; + default: + return AMQP_STATUS_UNKNOWN_METHOD; } } -int amqp_decode_properties(uint16_t class_id, - amqp_pool_t *pool, - amqp_bytes_t encoded, - void **decoded) -{ +int amqp_decode_properties(uint16_t class_id, amqp_pool_t *pool, + amqp_bytes_t encoded, void **decoded) { size_t offset = 0; amqp_flags_t flags = 0; @@ -1048,278 +1420,320 @@ int amqp_decode_properties(uint16_t class_id, switch (class_id) { case 10: { - amqp_connection_properties_t *p = (amqp_connection_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_connection_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_connection_properties_t *p = + (amqp_connection_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_connection_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } case 20: { - amqp_channel_properties_t *p = (amqp_channel_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_channel_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_channel_properties_t *p = + (amqp_channel_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_channel_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } case 30: { - amqp_access_properties_t *p = (amqp_access_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_access_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_access_properties_t *p = (amqp_access_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_access_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } case 40: { - amqp_exchange_properties_t *p = (amqp_exchange_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_exchange_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_exchange_properties_t *p = + (amqp_exchange_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_exchange_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } case 50: { - amqp_queue_properties_t *p = (amqp_queue_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_queue_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_queue_properties_t *p = (amqp_queue_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_queue_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } case 60: { - amqp_basic_properties_t *p = (amqp_basic_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_basic_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_basic_properties_t *p = (amqp_basic_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_basic_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; if (flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->content_type, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->content_type, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->content_encoding, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->content_encoding, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_HEADERS_FLAG) { - { - int res = amqp_decode_table(encoded, pool, &(p->headers), &offset); - if (res < 0) return res; - } + { + int res = amqp_decode_table(encoded, pool, &(p->headers), &offset); + if (res < 0) return res; + } } if (flags & AMQP_BASIC_DELIVERY_MODE_FLAG) { - if (!amqp_decode_8(encoded, &offset, &p->delivery_mode)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_decode_8(encoded, &offset, &p->delivery_mode)) + return AMQP_STATUS_BAD_AMQP_DATA; } if (flags & AMQP_BASIC_PRIORITY_FLAG) { - if (!amqp_decode_8(encoded, &offset, &p->priority)) return AMQP_STATUS_BAD_AMQP_DATA; - } - if (flags & AMQP_BASIC_CORRELATION_ID_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->correlation_id, len)) + if (!amqp_decode_8(encoded, &offset, &p->priority)) return AMQP_STATUS_BAD_AMQP_DATA; } + if (flags & AMQP_BASIC_CORRELATION_ID_FLAG) { + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->correlation_id, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_REPLY_TO_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->reply_to, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->reply_to, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_EXPIRATION_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->expiration, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->expiration, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_MESSAGE_ID_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->message_id, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->message_id, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_TIMESTAMP_FLAG) { - if (!amqp_decode_64(encoded, &offset, &p->timestamp)) return AMQP_STATUS_BAD_AMQP_DATA; - } - if (flags & AMQP_BASIC_TYPE_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->type, len)) + if (!amqp_decode_64(encoded, &offset, &p->timestamp)) return AMQP_STATUS_BAD_AMQP_DATA; } + if (flags & AMQP_BASIC_TYPE_FLAG) { + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->type, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_USER_ID_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->user_id, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->user_id, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_APP_ID_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->app_id, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->app_id, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } if (flags & AMQP_BASIC_CLUSTER_ID_FLAG) { - { - uint8_t len; - if (!amqp_decode_8(encoded, &offset, &len) - || !amqp_decode_bytes(encoded, &offset, &p->cluster_id, len)) - return AMQP_STATUS_BAD_AMQP_DATA; - } + { + uint8_t len; + if (!amqp_decode_8(encoded, &offset, &len) || + !amqp_decode_bytes(encoded, &offset, &p->cluster_id, len)) + return AMQP_STATUS_BAD_AMQP_DATA; + } } *decoded = p; return 0; } case 90: { - amqp_tx_properties_t *p = (amqp_tx_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_tx_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_tx_properties_t *p = (amqp_tx_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_tx_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } case 85: { - amqp_confirm_properties_t *p = (amqp_confirm_properties_t *) amqp_pool_alloc(pool, sizeof(amqp_confirm_properties_t)); - if (p == NULL) { return AMQP_STATUS_NO_MEMORY; } + amqp_confirm_properties_t *p = + (amqp_confirm_properties_t *)amqp_pool_alloc( + pool, sizeof(amqp_confirm_properties_t)); + if (p == NULL) { + return AMQP_STATUS_NO_MEMORY; + } p->_flags = flags; *decoded = p; return 0; } - default: return AMQP_STATUS_UNKNOWN_CLASS; + default: + return AMQP_STATUS_UNKNOWN_CLASS; } } -int amqp_encode_method(amqp_method_number_t methodNumber, - void *decoded, - amqp_bytes_t encoded) -{ +int amqp_encode_method(amqp_method_number_t methodNumber, void *decoded, + amqp_bytes_t encoded) { size_t offset = 0; uint8_t bit_buffer; switch (methodNumber) { case AMQP_CONNECTION_START_METHOD: { - amqp_connection_start_t *m = (amqp_connection_start_t *) decoded; - if (!amqp_encode_8(encoded, &offset, m->version_major)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_8(encoded, &offset, m->version_minor)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_start_t *m = (amqp_connection_start_t *)decoded; + if (!amqp_encode_8(encoded, &offset, m->version_major)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, m->version_minor)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->server_properties), &offset); if (res < 0) return res; } - if (UINT32_MAX < m->mechanisms.len - || !amqp_encode_32(encoded, &offset, (uint32_t)m->mechanisms.len) - || !amqp_encode_bytes(encoded, &offset, m->mechanisms)) + if (UINT32_MAX < m->mechanisms.len || + !amqp_encode_32(encoded, &offset, (uint32_t)m->mechanisms.len) || + !amqp_encode_bytes(encoded, &offset, m->mechanisms)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT32_MAX < m->locales.len - || !amqp_encode_32(encoded, &offset, (uint32_t)m->locales.len) - || !amqp_encode_bytes(encoded, &offset, m->locales)) + if (UINT32_MAX < m->locales.len || + !amqp_encode_32(encoded, &offset, (uint32_t)m->locales.len) || + !amqp_encode_bytes(encoded, &offset, m->locales)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_START_OK_METHOD: { - amqp_connection_start_ok_t *m = (amqp_connection_start_ok_t *) decoded; + amqp_connection_start_ok_t *m = (amqp_connection_start_ok_t *)decoded; { int res = amqp_encode_table(encoded, &(m->client_properties), &offset); if (res < 0) return res; } - if (UINT8_MAX < m->mechanism.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->mechanism.len) - || !amqp_encode_bytes(encoded, &offset, m->mechanism)) + if (UINT8_MAX < m->mechanism.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->mechanism.len) || + !amqp_encode_bytes(encoded, &offset, m->mechanism)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT32_MAX < m->response.len - || !amqp_encode_32(encoded, &offset, (uint32_t)m->response.len) - || !amqp_encode_bytes(encoded, &offset, m->response)) + if (UINT32_MAX < m->response.len || + !amqp_encode_32(encoded, &offset, (uint32_t)m->response.len) || + !amqp_encode_bytes(encoded, &offset, m->response)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->locale.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->locale.len) - || !amqp_encode_bytes(encoded, &offset, m->locale)) + if (UINT8_MAX < m->locale.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->locale.len) || + !amqp_encode_bytes(encoded, &offset, m->locale)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_SECURE_METHOD: { - amqp_connection_secure_t *m = (amqp_connection_secure_t *) decoded; - if (UINT32_MAX < m->challenge.len - || !amqp_encode_32(encoded, &offset, (uint32_t)m->challenge.len) - || !amqp_encode_bytes(encoded, &offset, m->challenge)) + amqp_connection_secure_t *m = (amqp_connection_secure_t *)decoded; + if (UINT32_MAX < m->challenge.len || + !amqp_encode_32(encoded, &offset, (uint32_t)m->challenge.len) || + !amqp_encode_bytes(encoded, &offset, m->challenge)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_SECURE_OK_METHOD: { - amqp_connection_secure_ok_t *m = (amqp_connection_secure_ok_t *) decoded; - if (UINT32_MAX < m->response.len - || !amqp_encode_32(encoded, &offset, (uint32_t)m->response.len) - || !amqp_encode_bytes(encoded, &offset, m->response)) + amqp_connection_secure_ok_t *m = (amqp_connection_secure_ok_t *)decoded; + if (UINT32_MAX < m->response.len || + !amqp_encode_32(encoded, &offset, (uint32_t)m->response.len) || + !amqp_encode_bytes(encoded, &offset, m->response)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_TUNE_METHOD: { - amqp_connection_tune_t *m = (amqp_connection_tune_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->channel_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_32(encoded, &offset, m->frame_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->heartbeat)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_tune_t *m = (amqp_connection_tune_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->channel_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_32(encoded, &offset, m->frame_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->heartbeat)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_TUNE_OK_METHOD: { - amqp_connection_tune_ok_t *m = (amqp_connection_tune_ok_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->channel_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_32(encoded, &offset, m->frame_max)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->heartbeat)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_connection_tune_ok_t *m = (amqp_connection_tune_ok_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->channel_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_32(encoded, &offset, m->frame_max)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->heartbeat)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_OPEN_METHOD: { - amqp_connection_open_t *m = (amqp_connection_open_t *) decoded; - if (UINT8_MAX < m->virtual_host.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->virtual_host.len) - || !amqp_encode_bytes(encoded, &offset, m->virtual_host)) + amqp_connection_open_t *m = (amqp_connection_open_t *)decoded; + if (UINT8_MAX < m->virtual_host.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->virtual_host.len) || + !amqp_encode_bytes(encoded, &offset, m->virtual_host)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->capabilities.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->capabilities.len) - || !amqp_encode_bytes(encoded, &offset, m->capabilities)) + if (UINT8_MAX < m->capabilities.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->capabilities.len) || + !amqp_encode_bytes(encoded, &offset, m->capabilities)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->insist) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_OPEN_OK_METHOD: { - amqp_connection_open_ok_t *m = (amqp_connection_open_ok_t *) decoded; - if (UINT8_MAX < m->known_hosts.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->known_hosts.len) - || !amqp_encode_bytes(encoded, &offset, m->known_hosts)) + amqp_connection_open_ok_t *m = (amqp_connection_open_ok_t *)decoded; + if (UINT8_MAX < m->known_hosts.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->known_hosts.len) || + !amqp_encode_bytes(encoded, &offset, m->known_hosts)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_CLOSE_METHOD: { - amqp_connection_close_t *m = (amqp_connection_close_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->reply_text.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) - || !amqp_encode_bytes(encoded, &offset, m->reply_text)) + amqp_connection_close_t *m = (amqp_connection_close_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->reply_code)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->reply_text.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) || + !amqp_encode_bytes(encoded, &offset, m->reply_text)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->class_id)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->method_id)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->class_id)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->method_id)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONNECTION_CLOSE_OK_METHOD: { return (int)offset; } case AMQP_CONNECTION_BLOCKED_METHOD: { - amqp_connection_blocked_t *m = (amqp_connection_blocked_t *) decoded; - if (UINT8_MAX < m->reason.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->reason.len) - || !amqp_encode_bytes(encoded, &offset, m->reason)) + amqp_connection_blocked_t *m = (amqp_connection_blocked_t *)decoded; + if (UINT8_MAX < m->reason.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->reason.len) || + !amqp_encode_bytes(encoded, &offset, m->reason)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } @@ -1327,54 +1741,59 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_CHANNEL_OPEN_METHOD: { - amqp_channel_open_t *m = (amqp_channel_open_t *) decoded; - if (UINT8_MAX < m->out_of_band.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->out_of_band.len) - || !amqp_encode_bytes(encoded, &offset, m->out_of_band)) + amqp_channel_open_t *m = (amqp_channel_open_t *)decoded; + if (UINT8_MAX < m->out_of_band.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->out_of_band.len) || + !amqp_encode_bytes(encoded, &offset, m->out_of_band)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CHANNEL_OPEN_OK_METHOD: { - amqp_channel_open_ok_t *m = (amqp_channel_open_ok_t *) decoded; - if (UINT32_MAX < m->channel_id.len - || !amqp_encode_32(encoded, &offset, (uint32_t)m->channel_id.len) - || !amqp_encode_bytes(encoded, &offset, m->channel_id)) + amqp_channel_open_ok_t *m = (amqp_channel_open_ok_t *)decoded; + if (UINT32_MAX < m->channel_id.len || + !amqp_encode_32(encoded, &offset, (uint32_t)m->channel_id.len) || + !amqp_encode_bytes(encoded, &offset, m->channel_id)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CHANNEL_FLOW_METHOD: { - amqp_channel_flow_t *m = (amqp_channel_flow_t *) decoded; + amqp_channel_flow_t *m = (amqp_channel_flow_t *)decoded; bit_buffer = 0; if (m->active) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CHANNEL_FLOW_OK_METHOD: { - amqp_channel_flow_ok_t *m = (amqp_channel_flow_ok_t *) decoded; + amqp_channel_flow_ok_t *m = (amqp_channel_flow_ok_t *)decoded; bit_buffer = 0; if (m->active) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CHANNEL_CLOSE_METHOD: { - amqp_channel_close_t *m = (amqp_channel_close_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->reply_text.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) - || !amqp_encode_bytes(encoded, &offset, m->reply_text)) + amqp_channel_close_t *m = (amqp_channel_close_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->reply_code)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->reply_text.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) || + !amqp_encode_bytes(encoded, &offset, m->reply_text)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->class_id)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->method_id)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->class_id)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->method_id)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CHANNEL_CLOSE_OK_METHOD: { return (int)offset; } case AMQP_ACCESS_REQUEST_METHOD: { - amqp_access_request_t *m = (amqp_access_request_t *) decoded; - if (UINT8_MAX < m->realm.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->realm.len) - || !amqp_encode_bytes(encoded, &offset, m->realm)) + amqp_access_request_t *m = (amqp_access_request_t *)decoded; + if (UINT8_MAX < m->realm.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->realm.len) || + !amqp_encode_bytes(encoded, &offset, m->realm)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->exclusive) bit_buffer |= (1 << 0); @@ -1382,24 +1801,27 @@ int amqp_encode_method(amqp_method_number_t methodNumber, if (m->active) bit_buffer |= (1 << 2); if (m->write) bit_buffer |= (1 << 3); if (m->read) bit_buffer |= (1 << 4); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_ACCESS_REQUEST_OK_METHOD: { - amqp_access_request_ok_t *m = (amqp_access_request_ok_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_access_request_ok_t *m = (amqp_access_request_ok_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_EXCHANGE_DECLARE_METHOD: { - amqp_exchange_declare_t *m = (amqp_exchange_declare_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + amqp_exchange_declare_t *m = (amqp_exchange_declare_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->type.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->type.len) - || !amqp_encode_bytes(encoded, &offset, m->type)) + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->type.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->type.len) || + !amqp_encode_bytes(encoded, &offset, m->type)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->passive) bit_buffer |= (1 << 0); @@ -1407,7 +1829,8 @@ int amqp_encode_method(amqp_method_number_t methodNumber, if (m->auto_delete) bit_buffer |= (1 << 2); if (m->internal) bit_buffer |= (1 << 3); if (m->nowait) bit_buffer |= (1 << 4); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); if (res < 0) return res; @@ -1418,39 +1841,43 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_EXCHANGE_DELETE_METHOD: { - amqp_exchange_delete_t *m = (amqp_exchange_delete_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + amqp_exchange_delete_t *m = (amqp_exchange_delete_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->if_unused) bit_buffer |= (1 << 0); if (m->nowait) bit_buffer |= (1 << 1); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_EXCHANGE_DELETE_OK_METHOD: { return (int)offset; } case AMQP_EXCHANGE_BIND_METHOD: { - amqp_exchange_bind_t *m = (amqp_exchange_bind_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->destination.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->destination.len) - || !amqp_encode_bytes(encoded, &offset, m->destination)) + amqp_exchange_bind_t *m = (amqp_exchange_bind_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->destination.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->destination.len) || + !amqp_encode_bytes(encoded, &offset, m->destination)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->source.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->source.len) - || !amqp_encode_bytes(encoded, &offset, m->source)) + if (UINT8_MAX < m->source.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->source.len) || + !amqp_encode_bytes(encoded, &offset, m->source)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->nowait) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); if (res < 0) return res; @@ -1461,23 +1888,25 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_EXCHANGE_UNBIND_METHOD: { - amqp_exchange_unbind_t *m = (amqp_exchange_unbind_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->destination.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->destination.len) - || !amqp_encode_bytes(encoded, &offset, m->destination)) + amqp_exchange_unbind_t *m = (amqp_exchange_unbind_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->destination.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->destination.len) || + !amqp_encode_bytes(encoded, &offset, m->destination)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->source.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->source.len) - || !amqp_encode_bytes(encoded, &offset, m->source)) + if (UINT8_MAX < m->source.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->source.len) || + !amqp_encode_bytes(encoded, &offset, m->source)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->nowait) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); if (res < 0) return res; @@ -1488,11 +1917,12 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_QUEUE_DECLARE_METHOD: { - amqp_queue_declare_t *m = (amqp_queue_declare_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_queue_declare_t *m = (amqp_queue_declare_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->passive) bit_buffer |= (1 << 0); @@ -1500,7 +1930,8 @@ int amqp_encode_method(amqp_method_number_t methodNumber, if (m->exclusive) bit_buffer |= (1 << 2); if (m->auto_delete) bit_buffer |= (1 << 3); if (m->nowait) bit_buffer |= (1 << 4); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); if (res < 0) return res; @@ -1508,33 +1939,37 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_QUEUE_DECLARE_OK_METHOD: { - amqp_queue_declare_ok_t *m = (amqp_queue_declare_ok_t *) decoded; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_queue_declare_ok_t *m = (amqp_queue_declare_ok_t *)decoded; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_32(encoded, &offset, m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_32(encoded, &offset, m->consumer_count)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_32(encoded, &offset, m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_32(encoded, &offset, m->consumer_count)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_QUEUE_BIND_METHOD: { - amqp_queue_bind_t *m = (amqp_queue_bind_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_queue_bind_t *m = (amqp_queue_bind_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->nowait) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); if (res < 0) return res; @@ -1545,55 +1980,62 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_QUEUE_PURGE_METHOD: { - amqp_queue_purge_t *m = (amqp_queue_purge_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_queue_purge_t *m = (amqp_queue_purge_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->nowait) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_QUEUE_PURGE_OK_METHOD: { - amqp_queue_purge_ok_t *m = (amqp_queue_purge_ok_t *) decoded; - if (!amqp_encode_32(encoded, &offset, m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_purge_ok_t *m = (amqp_queue_purge_ok_t *)decoded; + if (!amqp_encode_32(encoded, &offset, m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_QUEUE_DELETE_METHOD: { - amqp_queue_delete_t *m = (amqp_queue_delete_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_queue_delete_t *m = (amqp_queue_delete_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->if_unused) bit_buffer |= (1 << 0); if (m->if_empty) bit_buffer |= (1 << 1); if (m->nowait) bit_buffer |= (1 << 2); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_QUEUE_DELETE_OK_METHOD: { - amqp_queue_delete_ok_t *m = (amqp_queue_delete_ok_t *) decoded; - if (!amqp_encode_32(encoded, &offset, m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_queue_delete_ok_t *m = (amqp_queue_delete_ok_t *)decoded; + if (!amqp_encode_32(encoded, &offset, m->message_count)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_QUEUE_UNBIND_METHOD: { - amqp_queue_unbind_t *m = (amqp_queue_unbind_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_queue_unbind_t *m = (amqp_queue_unbind_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); @@ -1605,34 +2047,39 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_BASIC_QOS_METHOD: { - amqp_basic_qos_t *m = (amqp_basic_qos_t *) decoded; - if (!amqp_encode_32(encoded, &offset, m->prefetch_size)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_16(encoded, &offset, m->prefetch_count)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_qos_t *m = (amqp_basic_qos_t *)decoded; + if (!amqp_encode_32(encoded, &offset, m->prefetch_size)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_16(encoded, &offset, m->prefetch_count)) + return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->global) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_QOS_OK_METHOD: { return (int)offset; } case AMQP_BASIC_CONSUME_METHOD: { - amqp_basic_consume_t *m = (amqp_basic_consume_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_basic_consume_t *m = (amqp_basic_consume_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->consumer_tag.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) - || !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) + if (UINT8_MAX < m->consumer_tag.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) || + !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->no_local) bit_buffer |= (1 << 0); if (m->no_ack) bit_buffer |= (1 << 1); if (m->exclusive) bit_buffer |= (1 << 2); if (m->nowait) bit_buffer |= (1 << 3); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; { int res = amqp_encode_table(encoded, &(m->arguments), &offset); if (res < 0) return res; @@ -1640,163 +2087,182 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_BASIC_CONSUME_OK_METHOD: { - amqp_basic_consume_ok_t *m = (amqp_basic_consume_ok_t *) decoded; - if (UINT8_MAX < m->consumer_tag.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) - || !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) + amqp_basic_consume_ok_t *m = (amqp_basic_consume_ok_t *)decoded; + if (UINT8_MAX < m->consumer_tag.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) || + !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_CANCEL_METHOD: { - amqp_basic_cancel_t *m = (amqp_basic_cancel_t *) decoded; - if (UINT8_MAX < m->consumer_tag.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) - || !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) + amqp_basic_cancel_t *m = (amqp_basic_cancel_t *)decoded; + if (UINT8_MAX < m->consumer_tag.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) || + !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->nowait) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_CANCEL_OK_METHOD: { - amqp_basic_cancel_ok_t *m = (amqp_basic_cancel_ok_t *) decoded; - if (UINT8_MAX < m->consumer_tag.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) - || !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) + amqp_basic_cancel_ok_t *m = (amqp_basic_cancel_ok_t *)decoded; + if (UINT8_MAX < m->consumer_tag.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) || + !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_PUBLISH_METHOD: { - amqp_basic_publish_t *m = (amqp_basic_publish_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + amqp_basic_publish_t *m = (amqp_basic_publish_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->mandatory) bit_buffer |= (1 << 0); if (m->immediate) bit_buffer |= (1 << 1); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_RETURN_METHOD: { - amqp_basic_return_t *m = (amqp_basic_return_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->reply_text.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) - || !amqp_encode_bytes(encoded, &offset, m->reply_text)) + amqp_basic_return_t *m = (amqp_basic_return_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->reply_code)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + if (UINT8_MAX < m->reply_text.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) || + !amqp_encode_bytes(encoded, &offset, m->reply_text)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_DELIVER_METHOD: { - amqp_basic_deliver_t *m = (amqp_basic_deliver_t *) decoded; - if (UINT8_MAX < m->consumer_tag.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) - || !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) + amqp_basic_deliver_t *m = (amqp_basic_deliver_t *)decoded; + if (UINT8_MAX < m->consumer_tag.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) || + !amqp_encode_bytes(encoded, &offset, m->consumer_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->redelivered) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_GET_METHOD: { - amqp_basic_get_t *m = (amqp_basic_get_t *) decoded; - if (!amqp_encode_16(encoded, &offset, m->ticket)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->queue.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) - || !amqp_encode_bytes(encoded, &offset, m->queue)) + amqp_basic_get_t *m = (amqp_basic_get_t *)decoded; + if (!amqp_encode_16(encoded, &offset, m->ticket)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->queue.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) || + !amqp_encode_bytes(encoded, &offset, m->queue)) return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->no_ack) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_GET_OK_METHOD: { - amqp_basic_get_ok_t *m = (amqp_basic_get_ok_t *) decoded; - if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_get_ok_t *m = (amqp_basic_get_ok_t *)decoded; + if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->redelivered) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->exchange.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) - || !amqp_encode_bytes(encoded, &offset, m->exchange)) + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->exchange.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) || + !amqp_encode_bytes(encoded, &offset, m->exchange)) + return AMQP_STATUS_BAD_AMQP_DATA; + if (UINT8_MAX < m->routing_key.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) || + !amqp_encode_bytes(encoded, &offset, m->routing_key)) return AMQP_STATUS_BAD_AMQP_DATA; - if (UINT8_MAX < m->routing_key.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) - || !amqp_encode_bytes(encoded, &offset, m->routing_key)) + if (!amqp_encode_32(encoded, &offset, m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_encode_32(encoded, &offset, m->message_count)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_GET_EMPTY_METHOD: { - amqp_basic_get_empty_t *m = (amqp_basic_get_empty_t *) decoded; - if (UINT8_MAX < m->cluster_id.len - || !amqp_encode_8(encoded, &offset, (uint8_t)m->cluster_id.len) - || !amqp_encode_bytes(encoded, &offset, m->cluster_id)) + amqp_basic_get_empty_t *m = (amqp_basic_get_empty_t *)decoded; + if (UINT8_MAX < m->cluster_id.len || + !amqp_encode_8(encoded, &offset, (uint8_t)m->cluster_id.len) || + !amqp_encode_bytes(encoded, &offset, m->cluster_id)) return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_ACK_METHOD: { - amqp_basic_ack_t *m = (amqp_basic_ack_t *) decoded; - if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_ack_t *m = (amqp_basic_ack_t *)decoded; + if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->multiple) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_REJECT_METHOD: { - amqp_basic_reject_t *m = (amqp_basic_reject_t *) decoded; - if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_reject_t *m = (amqp_basic_reject_t *)decoded; + if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->requeue) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_RECOVER_ASYNC_METHOD: { - amqp_basic_recover_async_t *m = (amqp_basic_recover_async_t *) decoded; + amqp_basic_recover_async_t *m = (amqp_basic_recover_async_t *)decoded; bit_buffer = 0; if (m->requeue) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_RECOVER_METHOD: { - amqp_basic_recover_t *m = (amqp_basic_recover_t *) decoded; + amqp_basic_recover_t *m = (amqp_basic_recover_t *)decoded; bit_buffer = 0; if (m->requeue) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_BASIC_RECOVER_OK_METHOD: { return (int)offset; } case AMQP_BASIC_NACK_METHOD: { - amqp_basic_nack_t *m = (amqp_basic_nack_t *) decoded; - if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_nack_t *m = (amqp_basic_nack_t *)decoded; + if (!amqp_encode_64(encoded, &offset, m->delivery_tag)) + return AMQP_STATUS_BAD_AMQP_DATA; bit_buffer = 0; if (m->multiple) bit_buffer |= (1 << 0); if (m->requeue) bit_buffer |= (1 << 1); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_TX_SELECT_METHOD: { @@ -1818,28 +2284,28 @@ int amqp_encode_method(amqp_method_number_t methodNumber, return (int)offset; } case AMQP_CONFIRM_SELECT_METHOD: { - amqp_confirm_select_t *m = (amqp_confirm_select_t *) decoded; + amqp_confirm_select_t *m = (amqp_confirm_select_t *)decoded; bit_buffer = 0; if (m->nowait) bit_buffer |= (1 << 0); - if (!amqp_encode_8(encoded, &offset, bit_buffer)) return AMQP_STATUS_BAD_AMQP_DATA; + if (!amqp_encode_8(encoded, &offset, bit_buffer)) + return AMQP_STATUS_BAD_AMQP_DATA; return (int)offset; } case AMQP_CONFIRM_SELECT_OK_METHOD: { return (int)offset; } - default: return AMQP_STATUS_UNKNOWN_METHOD; + default: + return AMQP_STATUS_UNKNOWN_METHOD; } } -int amqp_encode_properties(uint16_t class_id, - void *decoded, - amqp_bytes_t encoded) -{ +int amqp_encode_properties(uint16_t class_id, void *decoded, + amqp_bytes_t encoded) { size_t offset = 0; /* Cheat, and get the flags out generically, relying on the similarity of structure between classes */ - amqp_flags_t flags = * (amqp_flags_t *) decoded; /* cheating! */ + amqp_flags_t flags = *(amqp_flags_t *)decoded; /* cheating! */ { /* We take a copy of flags to avoid destroying it, as it is used @@ -1848,7 +2314,9 @@ int amqp_encode_properties(uint16_t class_id, do { amqp_flags_t remainder = remaining_flags >> 16; uint16_t partial_flags = remaining_flags & 0xFFFE; - if (remainder != 0) { partial_flags |= 1; } + if (remainder != 0) { + partial_flags |= 1; + } if (!amqp_encode_16(encoded, &offset, partial_flags)) return AMQP_STATUS_BAD_AMQP_DATA; remaining_flags = remainder; @@ -1872,81 +2340,85 @@ int amqp_encode_properties(uint16_t class_id, return (int)offset; } case 60: { - amqp_basic_properties_t *p = (amqp_basic_properties_t *) decoded; - if (flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { - if (UINT8_MAX < p->content_type.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->content_type.len) - || !amqp_encode_bytes(encoded, &offset, p->content_type)) - return AMQP_STATUS_BAD_AMQP_DATA; - } - if (flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) { - if (UINT8_MAX < p->content_encoding.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->content_encoding.len) - || !amqp_encode_bytes(encoded, &offset, p->content_encoding)) - return AMQP_STATUS_BAD_AMQP_DATA; + amqp_basic_properties_t *p = (amqp_basic_properties_t *)decoded; + if (flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { + if (UINT8_MAX < p->content_type.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->content_type.len) || + !amqp_encode_bytes(encoded, &offset, p->content_type)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_HEADERS_FLAG) { - { - int res = amqp_encode_table(encoded, &(p->headers), &offset); - if (res < 0) return res; + if (flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) { + if (UINT8_MAX < p->content_encoding.len || + !amqp_encode_8(encoded, &offset, + (uint8_t)p->content_encoding.len) || + !amqp_encode_bytes(encoded, &offset, p->content_encoding)) + return AMQP_STATUS_BAD_AMQP_DATA; } + if (flags & AMQP_BASIC_HEADERS_FLAG) { + { + int res = amqp_encode_table(encoded, &(p->headers), &offset); + if (res < 0) return res; + } } - if (flags & AMQP_BASIC_DELIVERY_MODE_FLAG) { - if (!amqp_encode_8(encoded, &offset, p->delivery_mode)) return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_DELIVERY_MODE_FLAG) { + if (!amqp_encode_8(encoded, &offset, p->delivery_mode)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_PRIORITY_FLAG) { - if (!amqp_encode_8(encoded, &offset, p->priority)) return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_PRIORITY_FLAG) { + if (!amqp_encode_8(encoded, &offset, p->priority)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_CORRELATION_ID_FLAG) { - if (UINT8_MAX < p->correlation_id.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->correlation_id.len) - || !amqp_encode_bytes(encoded, &offset, p->correlation_id)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_CORRELATION_ID_FLAG) { + if (UINT8_MAX < p->correlation_id.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->correlation_id.len) || + !amqp_encode_bytes(encoded, &offset, p->correlation_id)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_REPLY_TO_FLAG) { - if (UINT8_MAX < p->reply_to.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->reply_to.len) - || !amqp_encode_bytes(encoded, &offset, p->reply_to)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_REPLY_TO_FLAG) { + if (UINT8_MAX < p->reply_to.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->reply_to.len) || + !amqp_encode_bytes(encoded, &offset, p->reply_to)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_EXPIRATION_FLAG) { - if (UINT8_MAX < p->expiration.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->expiration.len) - || !amqp_encode_bytes(encoded, &offset, p->expiration)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_EXPIRATION_FLAG) { + if (UINT8_MAX < p->expiration.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->expiration.len) || + !amqp_encode_bytes(encoded, &offset, p->expiration)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_MESSAGE_ID_FLAG) { - if (UINT8_MAX < p->message_id.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->message_id.len) - || !amqp_encode_bytes(encoded, &offset, p->message_id)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_MESSAGE_ID_FLAG) { + if (UINT8_MAX < p->message_id.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->message_id.len) || + !amqp_encode_bytes(encoded, &offset, p->message_id)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_TIMESTAMP_FLAG) { - if (!amqp_encode_64(encoded, &offset, p->timestamp)) return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_TIMESTAMP_FLAG) { + if (!amqp_encode_64(encoded, &offset, p->timestamp)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_TYPE_FLAG) { - if (UINT8_MAX < p->type.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->type.len) - || !amqp_encode_bytes(encoded, &offset, p->type)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_TYPE_FLAG) { + if (UINT8_MAX < p->type.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->type.len) || + !amqp_encode_bytes(encoded, &offset, p->type)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_USER_ID_FLAG) { - if (UINT8_MAX < p->user_id.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->user_id.len) - || !amqp_encode_bytes(encoded, &offset, p->user_id)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_USER_ID_FLAG) { + if (UINT8_MAX < p->user_id.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->user_id.len) || + !amqp_encode_bytes(encoded, &offset, p->user_id)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_APP_ID_FLAG) { - if (UINT8_MAX < p->app_id.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->app_id.len) - || !amqp_encode_bytes(encoded, &offset, p->app_id)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_APP_ID_FLAG) { + if (UINT8_MAX < p->app_id.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->app_id.len) || + !amqp_encode_bytes(encoded, &offset, p->app_id)) + return AMQP_STATUS_BAD_AMQP_DATA; } - if (flags & AMQP_BASIC_CLUSTER_ID_FLAG) { - if (UINT8_MAX < p->cluster_id.len - || !amqp_encode_8(encoded, &offset, (uint8_t)p->cluster_id.len) - || !amqp_encode_bytes(encoded, &offset, p->cluster_id)) - return AMQP_STATUS_BAD_AMQP_DATA; + if (flags & AMQP_BASIC_CLUSTER_ID_FLAG) { + if (UINT8_MAX < p->cluster_id.len || + !amqp_encode_8(encoded, &offset, (uint8_t)p->cluster_id.len) || + !amqp_encode_bytes(encoded, &offset, p->cluster_id)) + return AMQP_STATUS_BAD_AMQP_DATA; } return (int)offset; } @@ -1956,7 +2428,8 @@ int amqp_encode_properties(uint16_t class_id, case 85: { return (int)offset; } - default: return AMQP_STATUS_UNKNOWN_CLASS; + default: + return AMQP_STATUS_UNKNOWN_CLASS; } } @@ -1968,16 +2441,15 @@ int amqp_encode_properties(uint16_t class_id, * @returns amqp_channel_open_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_channel_open_ok_t * -AMQP_CALL amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_channel_open_ok_t *AMQP_CALL + amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channel) { amqp_channel_open_t req; req.out_of_band = amqp_empty_bytes; - return amqp_simple_rpc_decoded(state, channel, AMQP_CHANNEL_OPEN_METHOD, AMQP_CHANNEL_OPEN_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_CHANNEL_OPEN_METHOD, + AMQP_CHANNEL_OPEN_OK_METHOD, &req); } - /** * amqp_channel_flow * @@ -1987,16 +2459,16 @@ AMQP_CALL amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_channel_flow_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_channel_flow_ok_t * -AMQP_CALL amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channel, amqp_boolean_t active) -{ +amqp_channel_flow_ok_t *AMQP_CALL + amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channel, + amqp_boolean_t active) { amqp_channel_flow_t req; req.active = active; - return amqp_simple_rpc_decoded(state, channel, AMQP_CHANNEL_FLOW_METHOD, AMQP_CHANNEL_FLOW_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_CHANNEL_FLOW_METHOD, + AMQP_CHANNEL_FLOW_OK_METHOD, &req); } - /** * amqp_exchange_declare * @@ -2012,9 +2484,11 @@ AMQP_CALL amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_exchange_declare_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_declare_ok_t * -AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, amqp_table_t arguments) -{ +amqp_exchange_declare_ok_t *AMQP_CALL amqp_exchange_declare( + amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, + amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, + amqp_table_t arguments) { amqp_exchange_declare_t req; req.ticket = 0; req.exchange = exchange; @@ -2026,10 +2500,10 @@ AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t ch req.nowait = 0; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_DECLARE_METHOD, AMQP_EXCHANGE_DECLARE_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_DECLARE_METHOD, + AMQP_EXCHANGE_DECLARE_OK_METHOD, &req); } - /** * amqp_exchange_delete * @@ -2040,19 +2514,19 @@ AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t ch * @returns amqp_exchange_delete_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_delete_ok_t * -AMQP_CALL amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_boolean_t if_unused) -{ +amqp_exchange_delete_ok_t *AMQP_CALL + amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t exchange, amqp_boolean_t if_unused) { amqp_exchange_delete_t req; req.ticket = 0; req.exchange = exchange; req.if_unused = if_unused; req.nowait = 0; - return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_DELETE_METHOD, AMQP_EXCHANGE_DELETE_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_DELETE_METHOD, + AMQP_EXCHANGE_DELETE_OK_METHOD, &req); } - /** * amqp_exchange_bind * @@ -2065,9 +2539,10 @@ AMQP_CALL amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t cha * @returns amqp_exchange_bind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_bind_ok_t * -AMQP_CALL amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t destination, amqp_bytes_t source, amqp_bytes_t routing_key, amqp_table_t arguments) -{ +amqp_exchange_bind_ok_t *AMQP_CALL + amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t destination, amqp_bytes_t source, + amqp_bytes_t routing_key, amqp_table_t arguments) { amqp_exchange_bind_t req; req.ticket = 0; req.destination = destination; @@ -2076,10 +2551,10 @@ AMQP_CALL amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t chann req.nowait = 0; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_BIND_METHOD, AMQP_EXCHANGE_BIND_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_BIND_METHOD, + AMQP_EXCHANGE_BIND_OK_METHOD, &req); } - /** * amqp_exchange_unbind * @@ -2092,9 +2567,10 @@ AMQP_CALL amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_exchange_unbind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_unbind_ok_t * -AMQP_CALL amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t destination, amqp_bytes_t source, amqp_bytes_t routing_key, amqp_table_t arguments) -{ +amqp_exchange_unbind_ok_t *AMQP_CALL + amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t destination, amqp_bytes_t source, + amqp_bytes_t routing_key, amqp_table_t arguments) { amqp_exchange_unbind_t req; req.ticket = 0; req.destination = destination; @@ -2103,10 +2579,10 @@ AMQP_CALL amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t cha req.nowait = 0; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_UNBIND_METHOD, AMQP_EXCHANGE_UNBIND_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_UNBIND_METHOD, + AMQP_EXCHANGE_UNBIND_OK_METHOD, &req); } - /** * amqp_queue_declare * @@ -2121,9 +2597,10 @@ AMQP_CALL amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t cha * @returns amqp_queue_declare_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_declare_ok_t * -AMQP_CALL amqp_queue_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t exclusive, amqp_boolean_t auto_delete, amqp_table_t arguments) -{ +amqp_queue_declare_ok_t *AMQP_CALL amqp_queue_declare( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t exclusive, + amqp_boolean_t auto_delete, amqp_table_t arguments) { amqp_queue_declare_t req; req.ticket = 0; req.queue = queue; @@ -2134,10 +2611,10 @@ AMQP_CALL amqp_queue_declare(amqp_connection_state_t state, amqp_channel_t chann req.nowait = 0; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_DECLARE_METHOD, AMQP_QUEUE_DECLARE_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_DECLARE_METHOD, + AMQP_QUEUE_DECLARE_OK_METHOD, &req); } - /** * amqp_queue_bind * @@ -2150,9 +2627,9 @@ AMQP_CALL amqp_queue_declare(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_queue_bind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_bind_ok_t * -AMQP_CALL amqp_queue_bind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments) -{ +amqp_queue_bind_ok_t *AMQP_CALL amqp_queue_bind( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments) { amqp_queue_bind_t req; req.ticket = 0; req.queue = queue; @@ -2161,10 +2638,10 @@ AMQP_CALL amqp_queue_bind(amqp_connection_state_t state, amqp_channel_t channel, req.nowait = 0; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_BIND_METHOD, AMQP_QUEUE_BIND_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_BIND_METHOD, + AMQP_QUEUE_BIND_OK_METHOD, &req); } - /** * amqp_queue_purge * @@ -2174,18 +2651,18 @@ AMQP_CALL amqp_queue_bind(amqp_connection_state_t state, amqp_channel_t channel, * @returns amqp_queue_purge_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_purge_ok_t * -AMQP_CALL amqp_queue_purge(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue) -{ +amqp_queue_purge_ok_t *AMQP_CALL amqp_queue_purge(amqp_connection_state_t state, + amqp_channel_t channel, + amqp_bytes_t queue) { amqp_queue_purge_t req; req.ticket = 0; req.queue = queue; req.nowait = 0; - return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_PURGE_METHOD, AMQP_QUEUE_PURGE_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_PURGE_METHOD, + AMQP_QUEUE_PURGE_OK_METHOD, &req); } - /** * amqp_queue_delete * @@ -2197,9 +2674,9 @@ AMQP_CALL amqp_queue_purge(amqp_connection_state_t state, amqp_channel_t channel * @returns amqp_queue_delete_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_delete_ok_t * -AMQP_CALL amqp_queue_delete(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_boolean_t if_unused, amqp_boolean_t if_empty) -{ +amqp_queue_delete_ok_t *AMQP_CALL amqp_queue_delete( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_boolean_t if_unused, amqp_boolean_t if_empty) { amqp_queue_delete_t req; req.ticket = 0; req.queue = queue; @@ -2207,10 +2684,10 @@ AMQP_CALL amqp_queue_delete(amqp_connection_state_t state, amqp_channel_t channe req.if_empty = if_empty; req.nowait = 0; - return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_DELETE_METHOD, AMQP_QUEUE_DELETE_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_DELETE_METHOD, + AMQP_QUEUE_DELETE_OK_METHOD, &req); } - /** * amqp_queue_unbind * @@ -2223,9 +2700,9 @@ AMQP_CALL amqp_queue_delete(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_queue_unbind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_unbind_ok_t * -AMQP_CALL amqp_queue_unbind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments) -{ +amqp_queue_unbind_ok_t *AMQP_CALL amqp_queue_unbind( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments) { amqp_queue_unbind_t req; req.ticket = 0; req.queue = queue; @@ -2233,10 +2710,10 @@ AMQP_CALL amqp_queue_unbind(amqp_connection_state_t state, amqp_channel_t channe req.routing_key = routing_key; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_UNBIND_METHOD, AMQP_QUEUE_UNBIND_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_UNBIND_METHOD, + AMQP_QUEUE_UNBIND_OK_METHOD, &req); } - /** * amqp_basic_qos * @@ -2248,18 +2725,20 @@ AMQP_CALL amqp_queue_unbind(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_basic_qos_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_qos_ok_t * -AMQP_CALL amqp_basic_qos(amqp_connection_state_t state, amqp_channel_t channel, uint32_t prefetch_size, uint16_t prefetch_count, amqp_boolean_t global) -{ +amqp_basic_qos_ok_t *AMQP_CALL amqp_basic_qos(amqp_connection_state_t state, + amqp_channel_t channel, + uint32_t prefetch_size, + uint16_t prefetch_count, + amqp_boolean_t global) { amqp_basic_qos_t req; req.prefetch_size = prefetch_size; req.prefetch_count = prefetch_count; req.global = global; - return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_QOS_METHOD, AMQP_BASIC_QOS_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_QOS_METHOD, + AMQP_BASIC_QOS_OK_METHOD, &req); } - /** * amqp_basic_consume * @@ -2274,9 +2753,10 @@ AMQP_CALL amqp_basic_qos(amqp_connection_state_t state, amqp_channel_t channel, * @returns amqp_basic_consume_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_consume_ok_t * -AMQP_CALL amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, amqp_boolean_t exclusive, amqp_table_t arguments) -{ +amqp_basic_consume_ok_t *AMQP_CALL amqp_basic_consume( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, + amqp_boolean_t exclusive, amqp_table_t arguments) { amqp_basic_consume_t req; req.ticket = 0; req.queue = queue; @@ -2287,10 +2767,10 @@ AMQP_CALL amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t chann req.nowait = 0; req.arguments = arguments; - return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_CONSUME_METHOD, AMQP_BASIC_CONSUME_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_CONSUME_METHOD, + AMQP_BASIC_CONSUME_OK_METHOD, &req); } - /** * amqp_basic_cancel * @@ -2300,17 +2780,17 @@ AMQP_CALL amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_basic_cancel_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_cancel_ok_t * -AMQP_CALL amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t consumer_tag) -{ +amqp_basic_cancel_ok_t *AMQP_CALL + amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t consumer_tag) { amqp_basic_cancel_t req; req.consumer_tag = consumer_tag; req.nowait = 0; - return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_CANCEL_METHOD, AMQP_BASIC_CANCEL_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_CANCEL_METHOD, + AMQP_BASIC_CANCEL_OK_METHOD, &req); } - /** * amqp_basic_recover * @@ -2320,16 +2800,16 @@ AMQP_CALL amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_basic_recover_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_recover_ok_t * -AMQP_CALL amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t channel, amqp_boolean_t requeue) -{ +amqp_basic_recover_ok_t *AMQP_CALL + amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t channel, + amqp_boolean_t requeue) { amqp_basic_recover_t req; req.requeue = requeue; - return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_RECOVER_METHOD, AMQP_BASIC_RECOVER_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_RECOVER_METHOD, + AMQP_BASIC_RECOVER_OK_METHOD, &req); } - /** * amqp_tx_select * @@ -2338,15 +2818,14 @@ AMQP_CALL amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_tx_select_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_tx_select_ok_t * -AMQP_CALL amqp_tx_select(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_tx_select_ok_t *AMQP_CALL amqp_tx_select(amqp_connection_state_t state, + amqp_channel_t channel) { amqp_tx_select_t req; - return amqp_simple_rpc_decoded(state, channel, AMQP_TX_SELECT_METHOD, AMQP_TX_SELECT_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_TX_SELECT_METHOD, + AMQP_TX_SELECT_OK_METHOD, &req); } - /** * amqp_tx_commit * @@ -2355,15 +2834,14 @@ AMQP_CALL amqp_tx_select(amqp_connection_state_t state, amqp_channel_t channel) * @returns amqp_tx_commit_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_tx_commit_ok_t * -AMQP_CALL amqp_tx_commit(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_tx_commit_ok_t *AMQP_CALL amqp_tx_commit(amqp_connection_state_t state, + amqp_channel_t channel) { amqp_tx_commit_t req; - return amqp_simple_rpc_decoded(state, channel, AMQP_TX_COMMIT_METHOD, AMQP_TX_COMMIT_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_TX_COMMIT_METHOD, + AMQP_TX_COMMIT_OK_METHOD, &req); } - /** * amqp_tx_rollback * @@ -2372,15 +2850,14 @@ AMQP_CALL amqp_tx_commit(amqp_connection_state_t state, amqp_channel_t channel) * @returns amqp_tx_rollback_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_tx_rollback_ok_t * -AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_tx_rollback_ok_t *AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state, + amqp_channel_t channel) { amqp_tx_rollback_t req; - return amqp_simple_rpc_decoded(state, channel, AMQP_TX_ROLLBACK_METHOD, AMQP_TX_ROLLBACK_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_TX_ROLLBACK_METHOD, + AMQP_TX_ROLLBACK_OK_METHOD, &req); } - /** * amqp_confirm_select * @@ -2389,12 +2866,11 @@ AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state, amqp_channel_t channel * @returns amqp_confirm_select_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_confirm_select_ok_t * -AMQP_CALL amqp_confirm_select(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_confirm_select_ok_t *AMQP_CALL + amqp_confirm_select(amqp_connection_state_t state, amqp_channel_t channel) { amqp_confirm_select_t req; req.nowait = 0; - return amqp_simple_rpc_decoded(state, channel, AMQP_CONFIRM_SELECT_METHOD, AMQP_CONFIRM_SELECT_OK_METHOD, &req); + return amqp_simple_rpc_decoded(state, channel, AMQP_CONFIRM_SELECT_METHOD, + AMQP_CONFIRM_SELECT_OK_METHOD, &req); } - diff --git a/librabbitmq/amqp_framing.h b/librabbitmq/amqp_framing.h index e392dcc..fb20acc 100644 --- a/librabbitmq/amqp_framing.h +++ b/librabbitmq/amqp_framing.h @@ -42,35 +42,37 @@ AMQP_BEGIN_DECLS -#define AMQP_PROTOCOL_VERSION_MAJOR 0 /**< AMQP protocol version major */ -#define AMQP_PROTOCOL_VERSION_MINOR 9 /**< AMQP protocol version minor */ -#define AMQP_PROTOCOL_VERSION_REVISION 1 /**< AMQP protocol version revision */ -#define AMQP_PROTOCOL_PORT 5672 /**< Default AMQP Port */ -#define AMQP_FRAME_METHOD 1 /**< Constant: FRAME-METHOD */ -#define AMQP_FRAME_HEADER 2 /**< Constant: FRAME-HEADER */ -#define AMQP_FRAME_BODY 3 /**< Constant: FRAME-BODY */ -#define AMQP_FRAME_HEARTBEAT 8 /**< Constant: FRAME-HEARTBEAT */ -#define AMQP_FRAME_MIN_SIZE 4096 /**< Constant: FRAME-MIN-SIZE */ -#define AMQP_FRAME_END 206 /**< Constant: FRAME-END */ -#define AMQP_REPLY_SUCCESS 200 /**< Constant: REPLY-SUCCESS */ -#define AMQP_CONTENT_TOO_LARGE 311 /**< Constant: CONTENT-TOO-LARGE */ -#define AMQP_NO_ROUTE 312 /**< Constant: NO-ROUTE */ -#define AMQP_NO_CONSUMERS 313 /**< Constant: NO-CONSUMERS */ -#define AMQP_ACCESS_REFUSED 403 /**< Constant: ACCESS-REFUSED */ -#define AMQP_NOT_FOUND 404 /**< Constant: NOT-FOUND */ -#define AMQP_RESOURCE_LOCKED 405 /**< Constant: RESOURCE-LOCKED */ -#define AMQP_PRECONDITION_FAILED 406 /**< Constant: PRECONDITION-FAILED */ -#define AMQP_CONNECTION_FORCED 320 /**< Constant: CONNECTION-FORCED */ -#define AMQP_INVALID_PATH 402 /**< Constant: INVALID-PATH */ -#define AMQP_FRAME_ERROR 501 /**< Constant: FRAME-ERROR */ -#define AMQP_SYNTAX_ERROR 502 /**< Constant: SYNTAX-ERROR */ -#define AMQP_COMMAND_INVALID 503 /**< Constant: COMMAND-INVALID */ -#define AMQP_CHANNEL_ERROR 504 /**< Constant: CHANNEL-ERROR */ -#define AMQP_UNEXPECTED_FRAME 505 /**< Constant: UNEXPECTED-FRAME */ -#define AMQP_RESOURCE_ERROR 506 /**< Constant: RESOURCE-ERROR */ -#define AMQP_NOT_ALLOWED 530 /**< Constant: NOT-ALLOWED */ -#define AMQP_NOT_IMPLEMENTED 540 /**< Constant: NOT-IMPLEMENTED */ -#define AMQP_INTERNAL_ERROR 541 /**< Constant: INTERNAL-ERROR */ +#define AMQP_PROTOCOL_VERSION_MAJOR 0 /**< AMQP protocol version major */ +#define AMQP_PROTOCOL_VERSION_MINOR 9 /**< AMQP protocol version minor */ +#define AMQP_PROTOCOL_VERSION_REVISION \ + 1 /**< AMQP protocol version revision \ + */ +#define AMQP_PROTOCOL_PORT 5672 /**< Default AMQP Port */ +#define AMQP_FRAME_METHOD 1 /**< Constant: FRAME-METHOD */ +#define AMQP_FRAME_HEADER 2 /**< Constant: FRAME-HEADER */ +#define AMQP_FRAME_BODY 3 /**< Constant: FRAME-BODY */ +#define AMQP_FRAME_HEARTBEAT 8 /**< Constant: FRAME-HEARTBEAT */ +#define AMQP_FRAME_MIN_SIZE 4096 /**< Constant: FRAME-MIN-SIZE */ +#define AMQP_FRAME_END 206 /**< Constant: FRAME-END */ +#define AMQP_REPLY_SUCCESS 200 /**< Constant: REPLY-SUCCESS */ +#define AMQP_CONTENT_TOO_LARGE 311 /**< Constant: CONTENT-TOO-LARGE */ +#define AMQP_NO_ROUTE 312 /**< Constant: NO-ROUTE */ +#define AMQP_NO_CONSUMERS 313 /**< Constant: NO-CONSUMERS */ +#define AMQP_ACCESS_REFUSED 403 /**< Constant: ACCESS-REFUSED */ +#define AMQP_NOT_FOUND 404 /**< Constant: NOT-FOUND */ +#define AMQP_RESOURCE_LOCKED 405 /**< Constant: RESOURCE-LOCKED */ +#define AMQP_PRECONDITION_FAILED 406 /**< Constant: PRECONDITION-FAILED */ +#define AMQP_CONNECTION_FORCED 320 /**< Constant: CONNECTION-FORCED */ +#define AMQP_INVALID_PATH 402 /**< Constant: INVALID-PATH */ +#define AMQP_FRAME_ERROR 501 /**< Constant: FRAME-ERROR */ +#define AMQP_SYNTAX_ERROR 502 /**< Constant: SYNTAX-ERROR */ +#define AMQP_COMMAND_INVALID 503 /**< Constant: COMMAND-INVALID */ +#define AMQP_CHANNEL_ERROR 504 /**< Constant: CHANNEL-ERROR */ +#define AMQP_UNEXPECTED_FRAME 505 /**< Constant: UNEXPECTED-FRAME */ +#define AMQP_RESOURCE_ERROR 506 /**< Constant: RESOURCE-ERROR */ +#define AMQP_NOT_ALLOWED 530 /**< Constant: NOT-ALLOWED */ +#define AMQP_NOT_IMPLEMENTED 540 /**< Constant: NOT-IMPLEMENTED */ +#define AMQP_INTERNAL_ERROR 541 /**< Constant: INTERNAL-ERROR */ /* Function prototypes. */ @@ -82,8 +84,7 @@ AMQP_BEGIN_DECLS * the library and should not be free()'d by the program */ AMQP_PUBLIC_FUNCTION -char const * -AMQP_CALL amqp_constant_name(int constantNumber); +char const *AMQP_CALL amqp_constant_name(int constantNumber); /** * Checks to see if a constant is a hard error @@ -95,8 +96,7 @@ AMQP_CALL amqp_constant_name(int constantNumber); * @returns true if its a hard error, false otherwise */ AMQP_PUBLIC_FUNCTION -amqp_boolean_t -AMQP_CALL amqp_constant_is_hard_error(int constantNumber); +amqp_boolean_t AMQP_CALL amqp_constant_is_hard_error(int constantNumber); /** * Get method name string from method number @@ -106,8 +106,7 @@ AMQP_CALL amqp_constant_is_hard_error(int constantNumber); * and should not be freed()'d by the program */ AMQP_PUBLIC_FUNCTION -char const * -AMQP_CALL amqp_method_name(amqp_method_number_t methodNumber); +char const *AMQP_CALL amqp_method_name(amqp_method_number_t methodNumber); /** * Check whether a method has content @@ -119,8 +118,8 @@ AMQP_CALL amqp_method_name(amqp_method_number_t methodNumber); * @returns true if method has content, false otherwise */ AMQP_PUBLIC_FUNCTION -amqp_boolean_t -AMQP_CALL amqp_method_has_content(amqp_method_number_t methodNumber); +amqp_boolean_t AMQP_CALL + amqp_method_has_content(amqp_method_number_t methodNumber); /** * Decodes a method from AMQP wireformat @@ -132,11 +131,9 @@ AMQP_CALL amqp_method_has_content(amqp_method_number_t methodNumber); * @returns 0 on success, an error code otherwise */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_decode_method(amqp_method_number_t methodNumber, - amqp_pool_t *pool, - amqp_bytes_t encoded, - void **decoded); +int AMQP_CALL amqp_decode_method(amqp_method_number_t methodNumber, + amqp_pool_t *pool, amqp_bytes_t encoded, + void **decoded); /** * Decodes a header frame properties structure from AMQP wireformat @@ -148,11 +145,8 @@ AMQP_CALL amqp_decode_method(amqp_method_number_t methodNumber, * @returns 0 on success, an error code otherwise */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_decode_properties(uint16_t class_id, - amqp_pool_t *pool, - amqp_bytes_t encoded, - void **decoded); +int AMQP_CALL amqp_decode_properties(uint16_t class_id, amqp_pool_t *pool, + amqp_bytes_t encoded, void **decoded); /** * Encodes a method structure in AMQP wireformat @@ -165,595 +159,722 @@ AMQP_CALL amqp_decode_properties(uint16_t class_id, * @returns 0 on success, an error code otherwise. */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_encode_method(amqp_method_number_t methodNumber, - void *decoded, - amqp_bytes_t encoded); +int AMQP_CALL amqp_encode_method(amqp_method_number_t methodNumber, + void *decoded, amqp_bytes_t encoded); /** * Encodes a properties structure in AMQP wireformat * * @param [in] class_id the class id for the decoded parameter * @param [in] decoded the properties structure (e.g., amqp_basic_properties_t) - * @param [in] encoded an allocated byte buffer for the encoded properties to written to. + * @param [in] encoded an allocated byte buffer for the encoded properties to + * written to. * If the buffer isn't large enough to hold the encoded method, an * an error code will be returned * @returns 0 on success, an error code otherwise. */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL amqp_encode_properties(uint16_t class_id, - void *decoded, - amqp_bytes_t encoded); +int AMQP_CALL amqp_encode_properties(uint16_t class_id, void *decoded, + amqp_bytes_t encoded); /* Method field records. */ -#define AMQP_CONNECTION_START_METHOD ((amqp_method_number_t) 0x000A000A) /**< connection.start method id @internal 10, 10; 655370 */ +#define AMQP_CONNECTION_START_METHOD \ + ((amqp_method_number_t)0x000A000A) /**< connection.start method id \ + @internal 10, 10; 655370 */ /** connection.start method fields */ typedef struct amqp_connection_start_t_ { - uint8_t version_major; /**< version-major */ - uint8_t version_minor; /**< version-minor */ + uint8_t version_major; /**< version-major */ + uint8_t version_minor; /**< version-minor */ amqp_table_t server_properties; /**< server-properties */ - amqp_bytes_t mechanisms; /**< mechanisms */ - amqp_bytes_t locales; /**< locales */ + amqp_bytes_t mechanisms; /**< mechanisms */ + amqp_bytes_t locales; /**< locales */ } amqp_connection_start_t; -#define AMQP_CONNECTION_START_OK_METHOD ((amqp_method_number_t) 0x000A000B) /**< connection.start-ok method id @internal 10, 11; 655371 */ +#define AMQP_CONNECTION_START_OK_METHOD \ + ((amqp_method_number_t)0x000A000B) /**< connection.start-ok method id \ + @internal 10, 11; 655371 */ /** connection.start-ok method fields */ typedef struct amqp_connection_start_ok_t_ { amqp_table_t client_properties; /**< client-properties */ - amqp_bytes_t mechanism; /**< mechanism */ - amqp_bytes_t response; /**< response */ - amqp_bytes_t locale; /**< locale */ + amqp_bytes_t mechanism; /**< mechanism */ + amqp_bytes_t response; /**< response */ + amqp_bytes_t locale; /**< locale */ } amqp_connection_start_ok_t; -#define AMQP_CONNECTION_SECURE_METHOD ((amqp_method_number_t) 0x000A0014) /**< connection.secure method id @internal 10, 20; 655380 */ +#define AMQP_CONNECTION_SECURE_METHOD \ + ((amqp_method_number_t)0x000A0014) /**< connection.secure method id \ + @internal 10, 20; 655380 */ /** connection.secure method fields */ typedef struct amqp_connection_secure_t_ { amqp_bytes_t challenge; /**< challenge */ } amqp_connection_secure_t; -#define AMQP_CONNECTION_SECURE_OK_METHOD ((amqp_method_number_t) 0x000A0015) /**< connection.secure-ok method id @internal 10, 21; 655381 */ +#define AMQP_CONNECTION_SECURE_OK_METHOD \ + ((amqp_method_number_t)0x000A0015) /**< connection.secure-ok method id \ + @internal 10, 21; 655381 */ /** connection.secure-ok method fields */ typedef struct amqp_connection_secure_ok_t_ { amqp_bytes_t response; /**< response */ } amqp_connection_secure_ok_t; -#define AMQP_CONNECTION_TUNE_METHOD ((amqp_method_number_t) 0x000A001E) /**< connection.tune method id @internal 10, 30; 655390 */ +#define AMQP_CONNECTION_TUNE_METHOD \ + ((amqp_method_number_t)0x000A001E) /**< connection.tune method id \ + @internal 10, 30; 655390 */ /** connection.tune method fields */ typedef struct amqp_connection_tune_t_ { uint16_t channel_max; /**< channel-max */ - uint32_t frame_max; /**< frame-max */ - uint16_t heartbeat; /**< heartbeat */ + uint32_t frame_max; /**< frame-max */ + uint16_t heartbeat; /**< heartbeat */ } amqp_connection_tune_t; -#define AMQP_CONNECTION_TUNE_OK_METHOD ((amqp_method_number_t) 0x000A001F) /**< connection.tune-ok method id @internal 10, 31; 655391 */ +#define AMQP_CONNECTION_TUNE_OK_METHOD \ + ((amqp_method_number_t)0x000A001F) /**< connection.tune-ok method id \ + @internal 10, 31; 655391 */ /** connection.tune-ok method fields */ typedef struct amqp_connection_tune_ok_t_ { uint16_t channel_max; /**< channel-max */ - uint32_t frame_max; /**< frame-max */ - uint16_t heartbeat; /**< heartbeat */ + uint32_t frame_max; /**< frame-max */ + uint16_t heartbeat; /**< heartbeat */ } amqp_connection_tune_ok_t; -#define AMQP_CONNECTION_OPEN_METHOD ((amqp_method_number_t) 0x000A0028) /**< connection.open method id @internal 10, 40; 655400 */ +#define AMQP_CONNECTION_OPEN_METHOD \ + ((amqp_method_number_t)0x000A0028) /**< connection.open method id \ + @internal 10, 40; 655400 */ /** connection.open method fields */ typedef struct amqp_connection_open_t_ { amqp_bytes_t virtual_host; /**< virtual-host */ amqp_bytes_t capabilities; /**< capabilities */ - amqp_boolean_t insist; /**< insist */ + amqp_boolean_t insist; /**< insist */ } amqp_connection_open_t; -#define AMQP_CONNECTION_OPEN_OK_METHOD ((amqp_method_number_t) 0x000A0029) /**< connection.open-ok method id @internal 10, 41; 655401 */ +#define AMQP_CONNECTION_OPEN_OK_METHOD \ + ((amqp_method_number_t)0x000A0029) /**< connection.open-ok method id \ + @internal 10, 41; 655401 */ /** connection.open-ok method fields */ typedef struct amqp_connection_open_ok_t_ { amqp_bytes_t known_hosts; /**< known-hosts */ } amqp_connection_open_ok_t; -#define AMQP_CONNECTION_CLOSE_METHOD ((amqp_method_number_t) 0x000A0032) /**< connection.close method id @internal 10, 50; 655410 */ +#define AMQP_CONNECTION_CLOSE_METHOD \ + ((amqp_method_number_t)0x000A0032) /**< connection.close method id \ + @internal 10, 50; 655410 */ /** connection.close method fields */ typedef struct amqp_connection_close_t_ { - uint16_t reply_code; /**< reply-code */ + uint16_t reply_code; /**< reply-code */ amqp_bytes_t reply_text; /**< reply-text */ - uint16_t class_id; /**< class-id */ - uint16_t method_id; /**< method-id */ + uint16_t class_id; /**< class-id */ + uint16_t method_id; /**< method-id */ } amqp_connection_close_t; -#define AMQP_CONNECTION_CLOSE_OK_METHOD ((amqp_method_number_t) 0x000A0033) /**< connection.close-ok method id @internal 10, 51; 655411 */ +#define AMQP_CONNECTION_CLOSE_OK_METHOD \ + ((amqp_method_number_t)0x000A0033) /**< connection.close-ok method id \ + @internal 10, 51; 655411 */ /** connection.close-ok method fields */ typedef struct amqp_connection_close_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_connection_close_ok_t; -#define AMQP_CONNECTION_BLOCKED_METHOD ((amqp_method_number_t) 0x000A003C) /**< connection.blocked method id @internal 10, 60; 655420 */ +#define AMQP_CONNECTION_BLOCKED_METHOD \ + ((amqp_method_number_t)0x000A003C) /**< connection.blocked method id \ + @internal 10, 60; 655420 */ /** connection.blocked method fields */ typedef struct amqp_connection_blocked_t_ { amqp_bytes_t reason; /**< reason */ } amqp_connection_blocked_t; -#define AMQP_CONNECTION_UNBLOCKED_METHOD ((amqp_method_number_t) 0x000A003D) /**< connection.unblocked method id @internal 10, 61; 655421 */ +#define AMQP_CONNECTION_UNBLOCKED_METHOD \ + ((amqp_method_number_t)0x000A003D) /**< connection.unblocked method id \ + @internal 10, 61; 655421 */ /** connection.unblocked method fields */ typedef struct amqp_connection_unblocked_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_connection_unblocked_t; -#define AMQP_CHANNEL_OPEN_METHOD ((amqp_method_number_t) 0x0014000A) /**< channel.open method id @internal 20, 10; 1310730 */ +#define AMQP_CHANNEL_OPEN_METHOD \ + ((amqp_method_number_t)0x0014000A) /**< channel.open method id @internal \ + 20, 10; 1310730 */ /** channel.open method fields */ typedef struct amqp_channel_open_t_ { amqp_bytes_t out_of_band; /**< out-of-band */ } amqp_channel_open_t; -#define AMQP_CHANNEL_OPEN_OK_METHOD ((amqp_method_number_t) 0x0014000B) /**< channel.open-ok method id @internal 20, 11; 1310731 */ +#define AMQP_CHANNEL_OPEN_OK_METHOD \ + ((amqp_method_number_t)0x0014000B) /**< channel.open-ok method id \ + @internal 20, 11; 1310731 */ /** channel.open-ok method fields */ typedef struct amqp_channel_open_ok_t_ { amqp_bytes_t channel_id; /**< channel-id */ } amqp_channel_open_ok_t; -#define AMQP_CHANNEL_FLOW_METHOD ((amqp_method_number_t) 0x00140014) /**< channel.flow method id @internal 20, 20; 1310740 */ +#define AMQP_CHANNEL_FLOW_METHOD \ + ((amqp_method_number_t)0x00140014) /**< channel.flow method id @internal \ + 20, 20; 1310740 */ /** channel.flow method fields */ typedef struct amqp_channel_flow_t_ { amqp_boolean_t active; /**< active */ } amqp_channel_flow_t; -#define AMQP_CHANNEL_FLOW_OK_METHOD ((amqp_method_number_t) 0x00140015) /**< channel.flow-ok method id @internal 20, 21; 1310741 */ +#define AMQP_CHANNEL_FLOW_OK_METHOD \ + ((amqp_method_number_t)0x00140015) /**< channel.flow-ok method id \ + @internal 20, 21; 1310741 */ /** channel.flow-ok method fields */ typedef struct amqp_channel_flow_ok_t_ { amqp_boolean_t active; /**< active */ } amqp_channel_flow_ok_t; -#define AMQP_CHANNEL_CLOSE_METHOD ((amqp_method_number_t) 0x00140028) /**< channel.close method id @internal 20, 40; 1310760 */ +#define AMQP_CHANNEL_CLOSE_METHOD \ + ((amqp_method_number_t)0x00140028) /**< channel.close method id @internal \ + 20, 40; 1310760 */ /** channel.close method fields */ typedef struct amqp_channel_close_t_ { - uint16_t reply_code; /**< reply-code */ + uint16_t reply_code; /**< reply-code */ amqp_bytes_t reply_text; /**< reply-text */ - uint16_t class_id; /**< class-id */ - uint16_t method_id; /**< method-id */ + uint16_t class_id; /**< class-id */ + uint16_t method_id; /**< method-id */ } amqp_channel_close_t; -#define AMQP_CHANNEL_CLOSE_OK_METHOD ((amqp_method_number_t) 0x00140029) /**< channel.close-ok method id @internal 20, 41; 1310761 */ +#define AMQP_CHANNEL_CLOSE_OK_METHOD \ + ((amqp_method_number_t)0x00140029) /**< channel.close-ok method id \ + @internal 20, 41; 1310761 */ /** channel.close-ok method fields */ typedef struct amqp_channel_close_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_channel_close_ok_t; -#define AMQP_ACCESS_REQUEST_METHOD ((amqp_method_number_t) 0x001E000A) /**< access.request method id @internal 30, 10; 1966090 */ +#define AMQP_ACCESS_REQUEST_METHOD \ + ((amqp_method_number_t)0x001E000A) /**< access.request method id @internal \ + 30, 10; 1966090 */ /** access.request method fields */ typedef struct amqp_access_request_t_ { - amqp_bytes_t realm; /**< realm */ + amqp_bytes_t realm; /**< realm */ amqp_boolean_t exclusive; /**< exclusive */ - amqp_boolean_t passive; /**< passive */ - amqp_boolean_t active; /**< active */ - amqp_boolean_t write; /**< write */ - amqp_boolean_t read; /**< read */ + amqp_boolean_t passive; /**< passive */ + amqp_boolean_t active; /**< active */ + amqp_boolean_t write; /**< write */ + amqp_boolean_t read; /**< read */ } amqp_access_request_t; -#define AMQP_ACCESS_REQUEST_OK_METHOD ((amqp_method_number_t) 0x001E000B) /**< access.request-ok method id @internal 30, 11; 1966091 */ +#define AMQP_ACCESS_REQUEST_OK_METHOD \ + ((amqp_method_number_t)0x001E000B) /**< access.request-ok method id \ + @internal 30, 11; 1966091 */ /** access.request-ok method fields */ typedef struct amqp_access_request_ok_t_ { uint16_t ticket; /**< ticket */ } amqp_access_request_ok_t; -#define AMQP_EXCHANGE_DECLARE_METHOD ((amqp_method_number_t) 0x0028000A) /**< exchange.declare method id @internal 40, 10; 2621450 */ +#define AMQP_EXCHANGE_DECLARE_METHOD \ + ((amqp_method_number_t)0x0028000A) /**< exchange.declare method id \ + @internal 40, 10; 2621450 */ /** exchange.declare method fields */ typedef struct amqp_exchange_declare_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t exchange; /**< exchange */ - amqp_bytes_t type; /**< type */ - amqp_boolean_t passive; /**< passive */ - amqp_boolean_t durable; /**< durable */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t exchange; /**< exchange */ + amqp_bytes_t type; /**< type */ + amqp_boolean_t passive; /**< passive */ + amqp_boolean_t durable; /**< durable */ amqp_boolean_t auto_delete; /**< auto-delete */ - amqp_boolean_t internal; /**< internal */ - amqp_boolean_t nowait; /**< nowait */ - amqp_table_t arguments; /**< arguments */ + amqp_boolean_t internal; /**< internal */ + amqp_boolean_t nowait; /**< nowait */ + amqp_table_t arguments; /**< arguments */ } amqp_exchange_declare_t; -#define AMQP_EXCHANGE_DECLARE_OK_METHOD ((amqp_method_number_t) 0x0028000B) /**< exchange.declare-ok method id @internal 40, 11; 2621451 */ +#define AMQP_EXCHANGE_DECLARE_OK_METHOD \ + ((amqp_method_number_t)0x0028000B) /**< exchange.declare-ok method id \ + @internal 40, 11; 2621451 */ /** exchange.declare-ok method fields */ typedef struct amqp_exchange_declare_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_exchange_declare_ok_t; -#define AMQP_EXCHANGE_DELETE_METHOD ((amqp_method_number_t) 0x00280014) /**< exchange.delete method id @internal 40, 20; 2621460 */ +#define AMQP_EXCHANGE_DELETE_METHOD \ + ((amqp_method_number_t)0x00280014) /**< exchange.delete method id \ + @internal 40, 20; 2621460 */ /** exchange.delete method fields */ typedef struct amqp_exchange_delete_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t exchange; /**< exchange */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t exchange; /**< exchange */ amqp_boolean_t if_unused; /**< if-unused */ - amqp_boolean_t nowait; /**< nowait */ + amqp_boolean_t nowait; /**< nowait */ } amqp_exchange_delete_t; -#define AMQP_EXCHANGE_DELETE_OK_METHOD ((amqp_method_number_t) 0x00280015) /**< exchange.delete-ok method id @internal 40, 21; 2621461 */ +#define AMQP_EXCHANGE_DELETE_OK_METHOD \ + ((amqp_method_number_t)0x00280015) /**< exchange.delete-ok method id \ + @internal 40, 21; 2621461 */ /** exchange.delete-ok method fields */ typedef struct amqp_exchange_delete_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_exchange_delete_ok_t; -#define AMQP_EXCHANGE_BIND_METHOD ((amqp_method_number_t) 0x0028001E) /**< exchange.bind method id @internal 40, 30; 2621470 */ +#define AMQP_EXCHANGE_BIND_METHOD \ + ((amqp_method_number_t)0x0028001E) /**< exchange.bind method id @internal \ + 40, 30; 2621470 */ /** exchange.bind method fields */ typedef struct amqp_exchange_bind_t_ { - uint16_t ticket; /**< ticket */ + uint16_t ticket; /**< ticket */ amqp_bytes_t destination; /**< destination */ - amqp_bytes_t source; /**< source */ + amqp_bytes_t source; /**< source */ amqp_bytes_t routing_key; /**< routing-key */ - amqp_boolean_t nowait; /**< nowait */ - amqp_table_t arguments; /**< arguments */ + amqp_boolean_t nowait; /**< nowait */ + amqp_table_t arguments; /**< arguments */ } amqp_exchange_bind_t; -#define AMQP_EXCHANGE_BIND_OK_METHOD ((amqp_method_number_t) 0x0028001F) /**< exchange.bind-ok method id @internal 40, 31; 2621471 */ +#define AMQP_EXCHANGE_BIND_OK_METHOD \ + ((amqp_method_number_t)0x0028001F) /**< exchange.bind-ok method id \ + @internal 40, 31; 2621471 */ /** exchange.bind-ok method fields */ typedef struct amqp_exchange_bind_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_exchange_bind_ok_t; -#define AMQP_EXCHANGE_UNBIND_METHOD ((amqp_method_number_t) 0x00280028) /**< exchange.unbind method id @internal 40, 40; 2621480 */ +#define AMQP_EXCHANGE_UNBIND_METHOD \ + ((amqp_method_number_t)0x00280028) /**< exchange.unbind method id \ + @internal 40, 40; 2621480 */ /** exchange.unbind method fields */ typedef struct amqp_exchange_unbind_t_ { - uint16_t ticket; /**< ticket */ + uint16_t ticket; /**< ticket */ amqp_bytes_t destination; /**< destination */ - amqp_bytes_t source; /**< source */ + amqp_bytes_t source; /**< source */ amqp_bytes_t routing_key; /**< routing-key */ - amqp_boolean_t nowait; /**< nowait */ - amqp_table_t arguments; /**< arguments */ + amqp_boolean_t nowait; /**< nowait */ + amqp_table_t arguments; /**< arguments */ } amqp_exchange_unbind_t; -#define AMQP_EXCHANGE_UNBIND_OK_METHOD ((amqp_method_number_t) 0x00280033) /**< exchange.unbind-ok method id @internal 40, 51; 2621491 */ +#define AMQP_EXCHANGE_UNBIND_OK_METHOD \ + ((amqp_method_number_t)0x00280033) /**< exchange.unbind-ok method id \ + @internal 40, 51; 2621491 */ /** exchange.unbind-ok method fields */ typedef struct amqp_exchange_unbind_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_exchange_unbind_ok_t; -#define AMQP_QUEUE_DECLARE_METHOD ((amqp_method_number_t) 0x0032000A) /**< queue.declare method id @internal 50, 10; 3276810 */ +#define AMQP_QUEUE_DECLARE_METHOD \ + ((amqp_method_number_t)0x0032000A) /**< queue.declare method id @internal \ + 50, 10; 3276810 */ /** queue.declare method fields */ typedef struct amqp_queue_declare_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ - amqp_boolean_t passive; /**< passive */ - amqp_boolean_t durable; /**< durable */ - amqp_boolean_t exclusive; /**< exclusive */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ + amqp_boolean_t passive; /**< passive */ + amqp_boolean_t durable; /**< durable */ + amqp_boolean_t exclusive; /**< exclusive */ amqp_boolean_t auto_delete; /**< auto-delete */ - amqp_boolean_t nowait; /**< nowait */ - amqp_table_t arguments; /**< arguments */ + amqp_boolean_t nowait; /**< nowait */ + amqp_table_t arguments; /**< arguments */ } amqp_queue_declare_t; -#define AMQP_QUEUE_DECLARE_OK_METHOD ((amqp_method_number_t) 0x0032000B) /**< queue.declare-ok method id @internal 50, 11; 3276811 */ +#define AMQP_QUEUE_DECLARE_OK_METHOD \ + ((amqp_method_number_t)0x0032000B) /**< queue.declare-ok method id \ + @internal 50, 11; 3276811 */ /** queue.declare-ok method fields */ typedef struct amqp_queue_declare_ok_t_ { - amqp_bytes_t queue; /**< queue */ - uint32_t message_count; /**< message-count */ + amqp_bytes_t queue; /**< queue */ + uint32_t message_count; /**< message-count */ uint32_t consumer_count; /**< consumer-count */ } amqp_queue_declare_ok_t; -#define AMQP_QUEUE_BIND_METHOD ((amqp_method_number_t) 0x00320014) /**< queue.bind method id @internal 50, 20; 3276820 */ +#define AMQP_QUEUE_BIND_METHOD \ + ((amqp_method_number_t)0x00320014) /**< queue.bind method id @internal 50, \ + 20; 3276820 */ /** queue.bind method fields */ typedef struct amqp_queue_bind_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ - amqp_bytes_t exchange; /**< exchange */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ + amqp_bytes_t exchange; /**< exchange */ amqp_bytes_t routing_key; /**< routing-key */ - amqp_boolean_t nowait; /**< nowait */ - amqp_table_t arguments; /**< arguments */ + amqp_boolean_t nowait; /**< nowait */ + amqp_table_t arguments; /**< arguments */ } amqp_queue_bind_t; -#define AMQP_QUEUE_BIND_OK_METHOD ((amqp_method_number_t) 0x00320015) /**< queue.bind-ok method id @internal 50, 21; 3276821 */ +#define AMQP_QUEUE_BIND_OK_METHOD \ + ((amqp_method_number_t)0x00320015) /**< queue.bind-ok method id @internal \ + 50, 21; 3276821 */ /** queue.bind-ok method fields */ typedef struct amqp_queue_bind_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_queue_bind_ok_t; -#define AMQP_QUEUE_PURGE_METHOD ((amqp_method_number_t) 0x0032001E) /**< queue.purge method id @internal 50, 30; 3276830 */ +#define AMQP_QUEUE_PURGE_METHOD \ + ((amqp_method_number_t)0x0032001E) /**< queue.purge method id @internal \ + 50, 30; 3276830 */ /** queue.purge method fields */ typedef struct amqp_queue_purge_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ amqp_boolean_t nowait; /**< nowait */ } amqp_queue_purge_t; -#define AMQP_QUEUE_PURGE_OK_METHOD ((amqp_method_number_t) 0x0032001F) /**< queue.purge-ok method id @internal 50, 31; 3276831 */ +#define AMQP_QUEUE_PURGE_OK_METHOD \ + ((amqp_method_number_t)0x0032001F) /**< queue.purge-ok method id @internal \ + 50, 31; 3276831 */ /** queue.purge-ok method fields */ typedef struct amqp_queue_purge_ok_t_ { uint32_t message_count; /**< message-count */ } amqp_queue_purge_ok_t; -#define AMQP_QUEUE_DELETE_METHOD ((amqp_method_number_t) 0x00320028) /**< queue.delete method id @internal 50, 40; 3276840 */ +#define AMQP_QUEUE_DELETE_METHOD \ + ((amqp_method_number_t)0x00320028) /**< queue.delete method id @internal \ + 50, 40; 3276840 */ /** queue.delete method fields */ typedef struct amqp_queue_delete_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ amqp_boolean_t if_unused; /**< if-unused */ - amqp_boolean_t if_empty; /**< if-empty */ - amqp_boolean_t nowait; /**< nowait */ + amqp_boolean_t if_empty; /**< if-empty */ + amqp_boolean_t nowait; /**< nowait */ } amqp_queue_delete_t; -#define AMQP_QUEUE_DELETE_OK_METHOD ((amqp_method_number_t) 0x00320029) /**< queue.delete-ok method id @internal 50, 41; 3276841 */ +#define AMQP_QUEUE_DELETE_OK_METHOD \ + ((amqp_method_number_t)0x00320029) /**< queue.delete-ok method id \ + @internal 50, 41; 3276841 */ /** queue.delete-ok method fields */ typedef struct amqp_queue_delete_ok_t_ { uint32_t message_count; /**< message-count */ } amqp_queue_delete_ok_t; -#define AMQP_QUEUE_UNBIND_METHOD ((amqp_method_number_t) 0x00320032) /**< queue.unbind method id @internal 50, 50; 3276850 */ +#define AMQP_QUEUE_UNBIND_METHOD \ + ((amqp_method_number_t)0x00320032) /**< queue.unbind method id @internal \ + 50, 50; 3276850 */ /** queue.unbind method fields */ typedef struct amqp_queue_unbind_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ - amqp_bytes_t exchange; /**< exchange */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ + amqp_bytes_t exchange; /**< exchange */ amqp_bytes_t routing_key; /**< routing-key */ - amqp_table_t arguments; /**< arguments */ + amqp_table_t arguments; /**< arguments */ } amqp_queue_unbind_t; -#define AMQP_QUEUE_UNBIND_OK_METHOD ((amqp_method_number_t) 0x00320033) /**< queue.unbind-ok method id @internal 50, 51; 3276851 */ +#define AMQP_QUEUE_UNBIND_OK_METHOD \ + ((amqp_method_number_t)0x00320033) /**< queue.unbind-ok method id \ + @internal 50, 51; 3276851 */ /** queue.unbind-ok method fields */ typedef struct amqp_queue_unbind_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_queue_unbind_ok_t; -#define AMQP_BASIC_QOS_METHOD ((amqp_method_number_t) 0x003C000A) /**< basic.qos method id @internal 60, 10; 3932170 */ +#define AMQP_BASIC_QOS_METHOD \ + ((amqp_method_number_t)0x003C000A) /**< basic.qos method id @internal 60, \ + 10; 3932170 */ /** basic.qos method fields */ typedef struct amqp_basic_qos_t_ { - uint32_t prefetch_size; /**< prefetch-size */ + uint32_t prefetch_size; /**< prefetch-size */ uint16_t prefetch_count; /**< prefetch-count */ - amqp_boolean_t global; /**< global */ + amqp_boolean_t global; /**< global */ } amqp_basic_qos_t; -#define AMQP_BASIC_QOS_OK_METHOD ((amqp_method_number_t) 0x003C000B) /**< basic.qos-ok method id @internal 60, 11; 3932171 */ +#define AMQP_BASIC_QOS_OK_METHOD \ + ((amqp_method_number_t)0x003C000B) /**< basic.qos-ok method id @internal \ + 60, 11; 3932171 */ /** basic.qos-ok method fields */ typedef struct amqp_basic_qos_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_basic_qos_ok_t; -#define AMQP_BASIC_CONSUME_METHOD ((amqp_method_number_t) 0x003C0014) /**< basic.consume method id @internal 60, 20; 3932180 */ +#define AMQP_BASIC_CONSUME_METHOD \ + ((amqp_method_number_t)0x003C0014) /**< basic.consume method id @internal \ + 60, 20; 3932180 */ /** basic.consume method fields */ typedef struct amqp_basic_consume_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ amqp_bytes_t consumer_tag; /**< consumer-tag */ - amqp_boolean_t no_local; /**< no-local */ - amqp_boolean_t no_ack; /**< no-ack */ - amqp_boolean_t exclusive; /**< exclusive */ - amqp_boolean_t nowait; /**< nowait */ - amqp_table_t arguments; /**< arguments */ + amqp_boolean_t no_local; /**< no-local */ + amqp_boolean_t no_ack; /**< no-ack */ + amqp_boolean_t exclusive; /**< exclusive */ + amqp_boolean_t nowait; /**< nowait */ + amqp_table_t arguments; /**< arguments */ } amqp_basic_consume_t; -#define AMQP_BASIC_CONSUME_OK_METHOD ((amqp_method_number_t) 0x003C0015) /**< basic.consume-ok method id @internal 60, 21; 3932181 */ +#define AMQP_BASIC_CONSUME_OK_METHOD \ + ((amqp_method_number_t)0x003C0015) /**< basic.consume-ok method id \ + @internal 60, 21; 3932181 */ /** basic.consume-ok method fields */ typedef struct amqp_basic_consume_ok_t_ { amqp_bytes_t consumer_tag; /**< consumer-tag */ } amqp_basic_consume_ok_t; -#define AMQP_BASIC_CANCEL_METHOD ((amqp_method_number_t) 0x003C001E) /**< basic.cancel method id @internal 60, 30; 3932190 */ +#define AMQP_BASIC_CANCEL_METHOD \ + ((amqp_method_number_t)0x003C001E) /**< basic.cancel method id @internal \ + 60, 30; 3932190 */ /** basic.cancel method fields */ typedef struct amqp_basic_cancel_t_ { amqp_bytes_t consumer_tag; /**< consumer-tag */ - amqp_boolean_t nowait; /**< nowait */ + amqp_boolean_t nowait; /**< nowait */ } amqp_basic_cancel_t; -#define AMQP_BASIC_CANCEL_OK_METHOD ((amqp_method_number_t) 0x003C001F) /**< basic.cancel-ok method id @internal 60, 31; 3932191 */ +#define AMQP_BASIC_CANCEL_OK_METHOD \ + ((amqp_method_number_t)0x003C001F) /**< basic.cancel-ok method id \ + @internal 60, 31; 3932191 */ /** basic.cancel-ok method fields */ typedef struct amqp_basic_cancel_ok_t_ { amqp_bytes_t consumer_tag; /**< consumer-tag */ } amqp_basic_cancel_ok_t; -#define AMQP_BASIC_PUBLISH_METHOD ((amqp_method_number_t) 0x003C0028) /**< basic.publish method id @internal 60, 40; 3932200 */ +#define AMQP_BASIC_PUBLISH_METHOD \ + ((amqp_method_number_t)0x003C0028) /**< basic.publish method id @internal \ + 60, 40; 3932200 */ /** basic.publish method fields */ typedef struct amqp_basic_publish_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t exchange; /**< exchange */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t exchange; /**< exchange */ amqp_bytes_t routing_key; /**< routing-key */ amqp_boolean_t mandatory; /**< mandatory */ amqp_boolean_t immediate; /**< immediate */ } amqp_basic_publish_t; -#define AMQP_BASIC_RETURN_METHOD ((amqp_method_number_t) 0x003C0032) /**< basic.return method id @internal 60, 50; 3932210 */ +#define AMQP_BASIC_RETURN_METHOD \ + ((amqp_method_number_t)0x003C0032) /**< basic.return method id @internal \ + 60, 50; 3932210 */ /** basic.return method fields */ typedef struct amqp_basic_return_t_ { - uint16_t reply_code; /**< reply-code */ - amqp_bytes_t reply_text; /**< reply-text */ - amqp_bytes_t exchange; /**< exchange */ + uint16_t reply_code; /**< reply-code */ + amqp_bytes_t reply_text; /**< reply-text */ + amqp_bytes_t exchange; /**< exchange */ amqp_bytes_t routing_key; /**< routing-key */ } amqp_basic_return_t; -#define AMQP_BASIC_DELIVER_METHOD ((amqp_method_number_t) 0x003C003C) /**< basic.deliver method id @internal 60, 60; 3932220 */ +#define AMQP_BASIC_DELIVER_METHOD \ + ((amqp_method_number_t)0x003C003C) /**< basic.deliver method id @internal \ + 60, 60; 3932220 */ /** basic.deliver method fields */ typedef struct amqp_basic_deliver_t_ { - amqp_bytes_t consumer_tag; /**< consumer-tag */ - uint64_t delivery_tag; /**< delivery-tag */ + amqp_bytes_t consumer_tag; /**< consumer-tag */ + uint64_t delivery_tag; /**< delivery-tag */ amqp_boolean_t redelivered; /**< redelivered */ - amqp_bytes_t exchange; /**< exchange */ - amqp_bytes_t routing_key; /**< routing-key */ + amqp_bytes_t exchange; /**< exchange */ + amqp_bytes_t routing_key; /**< routing-key */ } amqp_basic_deliver_t; -#define AMQP_BASIC_GET_METHOD ((amqp_method_number_t) 0x003C0046) /**< basic.get method id @internal 60, 70; 3932230 */ +#define AMQP_BASIC_GET_METHOD \ + ((amqp_method_number_t)0x003C0046) /**< basic.get method id @internal 60, \ + 70; 3932230 */ /** basic.get method fields */ typedef struct amqp_basic_get_t_ { - uint16_t ticket; /**< ticket */ - amqp_bytes_t queue; /**< queue */ + uint16_t ticket; /**< ticket */ + amqp_bytes_t queue; /**< queue */ amqp_boolean_t no_ack; /**< no-ack */ } amqp_basic_get_t; -#define AMQP_BASIC_GET_OK_METHOD ((amqp_method_number_t) 0x003C0047) /**< basic.get-ok method id @internal 60, 71; 3932231 */ +#define AMQP_BASIC_GET_OK_METHOD \ + ((amqp_method_number_t)0x003C0047) /**< basic.get-ok method id @internal \ + 60, 71; 3932231 */ /** basic.get-ok method fields */ typedef struct amqp_basic_get_ok_t_ { - uint64_t delivery_tag; /**< delivery-tag */ + uint64_t delivery_tag; /**< delivery-tag */ amqp_boolean_t redelivered; /**< redelivered */ - amqp_bytes_t exchange; /**< exchange */ - amqp_bytes_t routing_key; /**< routing-key */ - uint32_t message_count; /**< message-count */ + amqp_bytes_t exchange; /**< exchange */ + amqp_bytes_t routing_key; /**< routing-key */ + uint32_t message_count; /**< message-count */ } amqp_basic_get_ok_t; -#define AMQP_BASIC_GET_EMPTY_METHOD ((amqp_method_number_t) 0x003C0048) /**< basic.get-empty method id @internal 60, 72; 3932232 */ +#define AMQP_BASIC_GET_EMPTY_METHOD \ + ((amqp_method_number_t)0x003C0048) /**< basic.get-empty method id \ + @internal 60, 72; 3932232 */ /** basic.get-empty method fields */ typedef struct amqp_basic_get_empty_t_ { amqp_bytes_t cluster_id; /**< cluster-id */ } amqp_basic_get_empty_t; -#define AMQP_BASIC_ACK_METHOD ((amqp_method_number_t) 0x003C0050) /**< basic.ack method id @internal 60, 80; 3932240 */ +#define AMQP_BASIC_ACK_METHOD \ + ((amqp_method_number_t)0x003C0050) /**< basic.ack method id @internal 60, \ + 80; 3932240 */ /** basic.ack method fields */ typedef struct amqp_basic_ack_t_ { - uint64_t delivery_tag; /**< delivery-tag */ + uint64_t delivery_tag; /**< delivery-tag */ amqp_boolean_t multiple; /**< multiple */ } amqp_basic_ack_t; -#define AMQP_BASIC_REJECT_METHOD ((amqp_method_number_t) 0x003C005A) /**< basic.reject method id @internal 60, 90; 3932250 */ +#define AMQP_BASIC_REJECT_METHOD \ + ((amqp_method_number_t)0x003C005A) /**< basic.reject method id @internal \ + 60, 90; 3932250 */ /** basic.reject method fields */ typedef struct amqp_basic_reject_t_ { - uint64_t delivery_tag; /**< delivery-tag */ + uint64_t delivery_tag; /**< delivery-tag */ amqp_boolean_t requeue; /**< requeue */ } amqp_basic_reject_t; -#define AMQP_BASIC_RECOVER_ASYNC_METHOD ((amqp_method_number_t) 0x003C0064) /**< basic.recover-async method id @internal 60, 100; 3932260 */ +#define AMQP_BASIC_RECOVER_ASYNC_METHOD \ + ((amqp_method_number_t)0x003C0064) /**< basic.recover-async method id \ + @internal 60, 100; 3932260 */ /** basic.recover-async method fields */ typedef struct amqp_basic_recover_async_t_ { amqp_boolean_t requeue; /**< requeue */ } amqp_basic_recover_async_t; -#define AMQP_BASIC_RECOVER_METHOD ((amqp_method_number_t) 0x003C006E) /**< basic.recover method id @internal 60, 110; 3932270 */ +#define AMQP_BASIC_RECOVER_METHOD \ + ((amqp_method_number_t)0x003C006E) /**< basic.recover method id @internal \ + 60, 110; 3932270 */ /** basic.recover method fields */ typedef struct amqp_basic_recover_t_ { amqp_boolean_t requeue; /**< requeue */ } amqp_basic_recover_t; -#define AMQP_BASIC_RECOVER_OK_METHOD ((amqp_method_number_t) 0x003C006F) /**< basic.recover-ok method id @internal 60, 111; 3932271 */ +#define AMQP_BASIC_RECOVER_OK_METHOD \ + ((amqp_method_number_t)0x003C006F) /**< basic.recover-ok method id \ + @internal 60, 111; 3932271 */ /** basic.recover-ok method fields */ typedef struct amqp_basic_recover_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_basic_recover_ok_t; -#define AMQP_BASIC_NACK_METHOD ((amqp_method_number_t) 0x003C0078) /**< basic.nack method id @internal 60, 120; 3932280 */ +#define AMQP_BASIC_NACK_METHOD \ + ((amqp_method_number_t)0x003C0078) /**< basic.nack method id @internal 60, \ + 120; 3932280 */ /** basic.nack method fields */ typedef struct amqp_basic_nack_t_ { - uint64_t delivery_tag; /**< delivery-tag */ + uint64_t delivery_tag; /**< delivery-tag */ amqp_boolean_t multiple; /**< multiple */ - amqp_boolean_t requeue; /**< requeue */ + amqp_boolean_t requeue; /**< requeue */ } amqp_basic_nack_t; -#define AMQP_TX_SELECT_METHOD ((amqp_method_number_t) 0x005A000A) /**< tx.select method id @internal 90, 10; 5898250 */ +#define AMQP_TX_SELECT_METHOD \ + ((amqp_method_number_t)0x005A000A) /**< tx.select method id @internal 90, \ + 10; 5898250 */ /** tx.select method fields */ typedef struct amqp_tx_select_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_select_t; -#define AMQP_TX_SELECT_OK_METHOD ((amqp_method_number_t) 0x005A000B) /**< tx.select-ok method id @internal 90, 11; 5898251 */ +#define AMQP_TX_SELECT_OK_METHOD \ + ((amqp_method_number_t)0x005A000B) /**< tx.select-ok method id @internal \ + 90, 11; 5898251 */ /** tx.select-ok method fields */ typedef struct amqp_tx_select_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_select_ok_t; -#define AMQP_TX_COMMIT_METHOD ((amqp_method_number_t) 0x005A0014) /**< tx.commit method id @internal 90, 20; 5898260 */ +#define AMQP_TX_COMMIT_METHOD \ + ((amqp_method_number_t)0x005A0014) /**< tx.commit method id @internal 90, \ + 20; 5898260 */ /** tx.commit method fields */ typedef struct amqp_tx_commit_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_commit_t; -#define AMQP_TX_COMMIT_OK_METHOD ((amqp_method_number_t) 0x005A0015) /**< tx.commit-ok method id @internal 90, 21; 5898261 */ +#define AMQP_TX_COMMIT_OK_METHOD \ + ((amqp_method_number_t)0x005A0015) /**< tx.commit-ok method id @internal \ + 90, 21; 5898261 */ /** tx.commit-ok method fields */ typedef struct amqp_tx_commit_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_commit_ok_t; -#define AMQP_TX_ROLLBACK_METHOD ((amqp_method_number_t) 0x005A001E) /**< tx.rollback method id @internal 90, 30; 5898270 */ +#define AMQP_TX_ROLLBACK_METHOD \ + ((amqp_method_number_t)0x005A001E) /**< tx.rollback method id @internal \ + 90, 30; 5898270 */ /** tx.rollback method fields */ typedef struct amqp_tx_rollback_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_rollback_t; -#define AMQP_TX_ROLLBACK_OK_METHOD ((amqp_method_number_t) 0x005A001F) /**< tx.rollback-ok method id @internal 90, 31; 5898271 */ +#define AMQP_TX_ROLLBACK_OK_METHOD \ + ((amqp_method_number_t)0x005A001F) /**< tx.rollback-ok method id @internal \ + 90, 31; 5898271 */ /** tx.rollback-ok method fields */ typedef struct amqp_tx_rollback_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_rollback_ok_t; -#define AMQP_CONFIRM_SELECT_METHOD ((amqp_method_number_t) 0x0055000A) /**< confirm.select method id @internal 85, 10; 5570570 */ +#define AMQP_CONFIRM_SELECT_METHOD \ + ((amqp_method_number_t)0x0055000A) /**< confirm.select method id @internal \ + 85, 10; 5570570 */ /** confirm.select method fields */ typedef struct amqp_confirm_select_t_ { amqp_boolean_t nowait; /**< nowait */ } amqp_confirm_select_t; -#define AMQP_CONFIRM_SELECT_OK_METHOD ((amqp_method_number_t) 0x0055000B) /**< confirm.select-ok method id @internal 85, 11; 5570571 */ +#define AMQP_CONFIRM_SELECT_OK_METHOD \ + ((amqp_method_number_t)0x0055000B) /**< confirm.select-ok method id \ + @internal 85, 11; 5570571 */ /** confirm.select-ok method fields */ typedef struct amqp_confirm_select_ok_t_ { char dummy; /**< Dummy field to avoid empty struct */ } amqp_confirm_select_ok_t; /* Class property records. */ -#define AMQP_CONNECTION_CLASS (0x000A) /**< connection class id @internal 10 */ +#define AMQP_CONNECTION_CLASS \ + (0x000A) /**< connection class id @internal 10 \ + */ /** connection class properties */ typedef struct amqp_connection_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_connection_properties_t; #define AMQP_CHANNEL_CLASS (0x0014) /**< channel class id @internal 20 */ /** channel class properties */ typedef struct amqp_channel_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_channel_properties_t; #define AMQP_ACCESS_CLASS (0x001E) /**< access class id @internal 30 */ /** access class properties */ typedef struct amqp_access_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_access_properties_t; #define AMQP_EXCHANGE_CLASS (0x0028) /**< exchange class id @internal 40 */ /** exchange class properties */ typedef struct amqp_exchange_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_exchange_properties_t; #define AMQP_QUEUE_CLASS (0x0032) /**< queue class id @internal 50 */ /** queue class properties */ typedef struct amqp_queue_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_queue_properties_t; #define AMQP_BASIC_CLASS (0x003C) /**< basic class id @internal 60 */ -#define AMQP_BASIC_CONTENT_TYPE_FLAG (1 << 15) /**< basic.content-type property flag */ -#define AMQP_BASIC_CONTENT_ENCODING_FLAG (1 << 14) /**< basic.content-encoding property flag */ -#define AMQP_BASIC_HEADERS_FLAG (1 << 13) /**< basic.headers property flag */ -#define AMQP_BASIC_DELIVERY_MODE_FLAG (1 << 12) /**< basic.delivery-mode property flag */ -#define AMQP_BASIC_PRIORITY_FLAG (1 << 11) /**< basic.priority property flag */ -#define AMQP_BASIC_CORRELATION_ID_FLAG (1 << 10) /**< basic.correlation-id property flag */ -#define AMQP_BASIC_REPLY_TO_FLAG (1 << 9) /**< basic.reply-to property flag */ -#define AMQP_BASIC_EXPIRATION_FLAG (1 << 8) /**< basic.expiration property flag */ -#define AMQP_BASIC_MESSAGE_ID_FLAG (1 << 7) /**< basic.message-id property flag */ -#define AMQP_BASIC_TIMESTAMP_FLAG (1 << 6) /**< basic.timestamp property flag */ -#define AMQP_BASIC_TYPE_FLAG (1 << 5) /**< basic.type property flag */ -#define AMQP_BASIC_USER_ID_FLAG (1 << 4) /**< basic.user-id property flag */ -#define AMQP_BASIC_APP_ID_FLAG (1 << 3) /**< basic.app-id property flag */ -#define AMQP_BASIC_CLUSTER_ID_FLAG (1 << 2) /**< basic.cluster-id property flag */ +#define AMQP_BASIC_CONTENT_TYPE_FLAG (1 << 15) +#define AMQP_BASIC_CONTENT_ENCODING_FLAG (1 << 14) +#define AMQP_BASIC_HEADERS_FLAG (1 << 13) +#define AMQP_BASIC_DELIVERY_MODE_FLAG (1 << 12) +#define AMQP_BASIC_PRIORITY_FLAG (1 << 11) +#define AMQP_BASIC_CORRELATION_ID_FLAG (1 << 10) +#define AMQP_BASIC_REPLY_TO_FLAG (1 << 9) +#define AMQP_BASIC_EXPIRATION_FLAG (1 << 8) +#define AMQP_BASIC_MESSAGE_ID_FLAG (1 << 7) +#define AMQP_BASIC_TIMESTAMP_FLAG (1 << 6) +#define AMQP_BASIC_TYPE_FLAG (1 << 5) +#define AMQP_BASIC_USER_ID_FLAG (1 << 4) +#define AMQP_BASIC_APP_ID_FLAG (1 << 3) +#define AMQP_BASIC_CLUSTER_ID_FLAG (1 << 2) /** basic class properties */ typedef struct amqp_basic_properties_t_ { - amqp_flags_t _flags; /**< bit-mask of set fields */ - amqp_bytes_t content_type; /**< content-type */ + amqp_flags_t _flags; /**< bit-mask of set fields */ + amqp_bytes_t content_type; /**< content-type */ amqp_bytes_t content_encoding; /**< content-encoding */ - amqp_table_t headers; /**< headers */ - uint8_t delivery_mode; /**< delivery-mode */ - uint8_t priority; /**< priority */ - amqp_bytes_t correlation_id; /**< correlation-id */ - amqp_bytes_t reply_to; /**< reply-to */ - amqp_bytes_t expiration; /**< expiration */ - amqp_bytes_t message_id; /**< message-id */ - uint64_t timestamp; /**< timestamp */ - amqp_bytes_t type; /**< type */ - amqp_bytes_t user_id; /**< user-id */ - amqp_bytes_t app_id; /**< app-id */ - amqp_bytes_t cluster_id; /**< cluster-id */ + amqp_table_t headers; /**< headers */ + uint8_t delivery_mode; /**< delivery-mode */ + uint8_t priority; /**< priority */ + amqp_bytes_t correlation_id; /**< correlation-id */ + amqp_bytes_t reply_to; /**< reply-to */ + amqp_bytes_t expiration; /**< expiration */ + amqp_bytes_t message_id; /**< message-id */ + uint64_t timestamp; /**< timestamp */ + amqp_bytes_t type; /**< type */ + amqp_bytes_t user_id; /**< user-id */ + amqp_bytes_t app_id; /**< app-id */ + amqp_bytes_t cluster_id; /**< cluster-id */ } amqp_basic_properties_t; #define AMQP_TX_CLASS (0x005A) /**< tx class id @internal 90 */ /** tx class properties */ typedef struct amqp_tx_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_tx_properties_t; #define AMQP_CONFIRM_CLASS (0x0055) /**< confirm class id @internal 85 */ /** confirm class properties */ typedef struct amqp_confirm_properties_t_ { amqp_flags_t _flags; /**< bit-mask of set fields */ - char dummy; /**< Dummy field to avoid empty struct */ + char dummy; /**< Dummy field to avoid empty struct */ } amqp_confirm_properties_t; /* API functions for methods */ @@ -766,8 +887,8 @@ typedef struct amqp_confirm_properties_t_ { * @returns amqp_channel_open_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_channel_open_ok_t * -AMQP_CALL amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channel); +amqp_channel_open_ok_t *AMQP_CALL + amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channel); /** * amqp_channel_flow * @@ -777,8 +898,9 @@ AMQP_CALL amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_channel_flow_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_channel_flow_ok_t * -AMQP_CALL amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channel, amqp_boolean_t active); +amqp_channel_flow_ok_t *AMQP_CALL + amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channel, + amqp_boolean_t active); /** * amqp_exchange_declare * @@ -794,8 +916,11 @@ AMQP_CALL amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_exchange_declare_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_declare_ok_t * -AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, amqp_table_t arguments); +amqp_exchange_declare_ok_t *AMQP_CALL amqp_exchange_declare( + amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, + amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, + amqp_table_t arguments); /** * amqp_exchange_delete * @@ -806,8 +931,9 @@ AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t ch * @returns amqp_exchange_delete_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_delete_ok_t * -AMQP_CALL amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_boolean_t if_unused); +amqp_exchange_delete_ok_t *AMQP_CALL + amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t exchange, amqp_boolean_t if_unused); /** * amqp_exchange_bind * @@ -820,8 +946,10 @@ AMQP_CALL amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t cha * @returns amqp_exchange_bind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_bind_ok_t * -AMQP_CALL amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t destination, amqp_bytes_t source, amqp_bytes_t routing_key, amqp_table_t arguments); +amqp_exchange_bind_ok_t *AMQP_CALL + amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t destination, amqp_bytes_t source, + amqp_bytes_t routing_key, amqp_table_t arguments); /** * amqp_exchange_unbind * @@ -834,8 +962,10 @@ AMQP_CALL amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_exchange_unbind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_exchange_unbind_ok_t * -AMQP_CALL amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t destination, amqp_bytes_t source, amqp_bytes_t routing_key, amqp_table_t arguments); +amqp_exchange_unbind_ok_t *AMQP_CALL + amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t destination, amqp_bytes_t source, + amqp_bytes_t routing_key, amqp_table_t arguments); /** * amqp_queue_declare * @@ -850,8 +980,10 @@ AMQP_CALL amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t cha * @returns amqp_queue_declare_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_declare_ok_t * -AMQP_CALL amqp_queue_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t exclusive, amqp_boolean_t auto_delete, amqp_table_t arguments); +amqp_queue_declare_ok_t *AMQP_CALL amqp_queue_declare( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t exclusive, + amqp_boolean_t auto_delete, amqp_table_t arguments); /** * amqp_queue_bind * @@ -864,8 +996,9 @@ AMQP_CALL amqp_queue_declare(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_queue_bind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_bind_ok_t * -AMQP_CALL amqp_queue_bind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments); +amqp_queue_bind_ok_t *AMQP_CALL amqp_queue_bind( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments); /** * amqp_queue_purge * @@ -875,8 +1008,9 @@ AMQP_CALL amqp_queue_bind(amqp_connection_state_t state, amqp_channel_t channel, * @returns amqp_queue_purge_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_purge_ok_t * -AMQP_CALL amqp_queue_purge(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue); +amqp_queue_purge_ok_t *AMQP_CALL amqp_queue_purge(amqp_connection_state_t state, + amqp_channel_t channel, + amqp_bytes_t queue); /** * amqp_queue_delete * @@ -888,8 +1022,9 @@ AMQP_CALL amqp_queue_purge(amqp_connection_state_t state, amqp_channel_t channel * @returns amqp_queue_delete_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_delete_ok_t * -AMQP_CALL amqp_queue_delete(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_boolean_t if_unused, amqp_boolean_t if_empty); +amqp_queue_delete_ok_t *AMQP_CALL amqp_queue_delete( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_boolean_t if_unused, amqp_boolean_t if_empty); /** * amqp_queue_unbind * @@ -902,8 +1037,9 @@ AMQP_CALL amqp_queue_delete(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_queue_unbind_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_queue_unbind_ok_t * -AMQP_CALL amqp_queue_unbind(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments); +amqp_queue_unbind_ok_t *AMQP_CALL amqp_queue_unbind( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments); /** * amqp_basic_qos * @@ -915,8 +1051,11 @@ AMQP_CALL amqp_queue_unbind(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_basic_qos_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_qos_ok_t * -AMQP_CALL amqp_basic_qos(amqp_connection_state_t state, amqp_channel_t channel, uint32_t prefetch_size, uint16_t prefetch_count, amqp_boolean_t global); +amqp_basic_qos_ok_t *AMQP_CALL amqp_basic_qos(amqp_connection_state_t state, + amqp_channel_t channel, + uint32_t prefetch_size, + uint16_t prefetch_count, + amqp_boolean_t global); /** * amqp_basic_consume * @@ -931,8 +1070,10 @@ AMQP_CALL amqp_basic_qos(amqp_connection_state_t state, amqp_channel_t channel, * @returns amqp_basic_consume_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_consume_ok_t * -AMQP_CALL amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, amqp_boolean_t exclusive, amqp_table_t arguments); +amqp_basic_consume_ok_t *AMQP_CALL amqp_basic_consume( + amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue, + amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack, + amqp_boolean_t exclusive, amqp_table_t arguments); /** * amqp_basic_cancel * @@ -942,8 +1083,9 @@ AMQP_CALL amqp_basic_consume(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_basic_cancel_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_cancel_ok_t * -AMQP_CALL amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t consumer_tag); +amqp_basic_cancel_ok_t *AMQP_CALL + amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channel, + amqp_bytes_t consumer_tag); /** * amqp_basic_recover * @@ -953,8 +1095,9 @@ AMQP_CALL amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channe * @returns amqp_basic_recover_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_basic_recover_ok_t * -AMQP_CALL amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t channel, amqp_boolean_t requeue); +amqp_basic_recover_ok_t *AMQP_CALL + amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t channel, + amqp_boolean_t requeue); /** * amqp_tx_select * @@ -963,8 +1106,8 @@ AMQP_CALL amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t chann * @returns amqp_tx_select_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_tx_select_ok_t * -AMQP_CALL amqp_tx_select(amqp_connection_state_t state, amqp_channel_t channel); +amqp_tx_select_ok_t *AMQP_CALL amqp_tx_select(amqp_connection_state_t state, + amqp_channel_t channel); /** * amqp_tx_commit * @@ -973,8 +1116,8 @@ AMQP_CALL amqp_tx_select(amqp_connection_state_t state, amqp_channel_t channel); * @returns amqp_tx_commit_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_tx_commit_ok_t * -AMQP_CALL amqp_tx_commit(amqp_connection_state_t state, amqp_channel_t channel); +amqp_tx_commit_ok_t *AMQP_CALL amqp_tx_commit(amqp_connection_state_t state, + amqp_channel_t channel); /** * amqp_tx_rollback * @@ -983,8 +1126,8 @@ AMQP_CALL amqp_tx_commit(amqp_connection_state_t state, amqp_channel_t channel); * @returns amqp_tx_rollback_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_tx_rollback_ok_t * -AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state, amqp_channel_t channel); +amqp_tx_rollback_ok_t *AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state, + amqp_channel_t channel); /** * amqp_confirm_select * @@ -993,8 +1136,8 @@ AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state, amqp_channel_t channel * @returns amqp_confirm_select_ok_t */ AMQP_PUBLIC_FUNCTION -amqp_confirm_select_ok_t * -AMQP_CALL amqp_confirm_select(amqp_connection_state_t state, amqp_channel_t channel); +amqp_confirm_select_ok_t *AMQP_CALL + amqp_confirm_select(amqp_connection_state_t state, amqp_channel_t channel); AMQP_END_DECLS diff --git a/librabbitmq/amqp_hostcheck.c b/librabbitmq/amqp_hostcheck.c index d0e88ef..5a4f733 100644 --- a/librabbitmq/amqp_hostcheck.c +++ b/librabbitmq/amqp_hostcheck.c @@ -30,62 +30,60 @@ * because its behavior is altered by the current locale. */ -static char -amqp_raw_toupper(char in) -{ +static char amqp_raw_toupper(char in) { switch (in) { - case 'a': - return 'A'; - case 'b': - return 'B'; - case 'c': - return 'C'; - case 'd': - return 'D'; - case 'e': - return 'E'; - case 'f': - return 'F'; - case 'g': - return 'G'; - case 'h': - return 'H'; - case 'i': - return 'I'; - case 'j': - return 'J'; - case 'k': - return 'K'; - case 'l': - return 'L'; - case 'm': - return 'M'; - case 'n': - return 'N'; - case 'o': - return 'O'; - case 'p': - return 'P'; - case 'q': - return 'Q'; - case 'r': - return 'R'; - case 's': - return 'S'; - case 't': - return 'T'; - case 'u': - return 'U'; - case 'v': - return 'V'; - case 'w': - return 'W'; - case 'x': - return 'X'; - case 'y': - return 'Y'; - case 'z': - return 'Z'; + case 'a': + return 'A'; + case 'b': + return 'B'; + case 'c': + return 'C'; + case 'd': + return 'D'; + case 'e': + return 'E'; + case 'f': + return 'F'; + case 'g': + return 'G'; + case 'h': + return 'H'; + case 'i': + return 'I'; + case 'j': + return 'J'; + case 'k': + return 'K'; + case 'l': + return 'L'; + case 'm': + return 'M'; + case 'n': + return 'N'; + case 'o': + return 'O'; + case 'p': + return 'P'; + case 'q': + return 'Q'; + case 'r': + return 'R'; + case 's': + return 'S'; + case 't': + return 'T'; + case 'u': + return 'U'; + case 'v': + return 'V'; + case 'w': + return 'W'; + case 'x': + return 'X'; + case 'y': + return 'Y'; + case 'z': + return 'Z'; } return in; } @@ -100,9 +98,7 @@ amqp_raw_toupper(char in) * non-ascii. */ -static int -amqp_raw_equal(const char *first, const char *second) -{ +static int amqp_raw_equal(const char *first, const char *second) { while (*first && *second) { if (amqp_raw_toupper(*first) != amqp_raw_toupper(*second)) { /* get out of the loop as soon as they don't match */ @@ -118,9 +114,7 @@ amqp_raw_equal(const char *first, const char *second) return (amqp_raw_toupper(*first) == amqp_raw_toupper(*second)); } -static int -amqp_raw_nequal(const char *first, const char *second, size_t max) -{ +static int amqp_raw_nequal(const char *first, const char *second, size_t max) { while (*first && *second && max) { if (amqp_raw_toupper(*first) != amqp_raw_toupper(*second)) { break; @@ -157,8 +151,7 @@ static amqp_hostcheck_result amqp_hostmatch(const char *hostname, /* We require at least 2 dots in pattern to avoid too wide wildcard match. */ wildcard_enabled = 1; pattern_label_end = strchr(pattern, '.'); - if (pattern_label_end == NULL || - strchr(pattern_label_end + 1, '.') == NULL || + if (pattern_label_end == NULL || strchr(pattern_label_end + 1, '.') == NULL || pattern_wildcard > pattern_label_end || amqp_raw_nequal(pattern, "xn--", 4)) { wildcard_enabled = 0; @@ -182,8 +175,10 @@ static amqp_hostcheck_result amqp_hostmatch(const char *hostname, prefixlen = pattern_wildcard - pattern; suffixlen = pattern_label_end - (pattern_wildcard + 1); return amqp_raw_nequal(pattern, hostname, prefixlen) && - amqp_raw_nequal(pattern_wildcard + 1, hostname_label_end - suffixlen, - suffixlen) ? AMQP_HCR_MATCH : AMQP_HCR_NO_MATCH; + amqp_raw_nequal(pattern_wildcard + 1, + hostname_label_end - suffixlen, suffixlen) + ? AMQP_HCR_MATCH + : AMQP_HCR_NO_MATCH; } amqp_hostcheck_result amqp_hostcheck(const char *match_pattern, diff --git a/librabbitmq/amqp_mem.c b/librabbitmq/amqp_mem.c index 71f704e..f0d47cc 100644 --- a/librabbitmq/amqp_mem.c +++ b/librabbitmq/amqp_mem.c @@ -45,18 +45,11 @@ #include <string.h> #include <sys/types.h> -char const *amqp_version(void) -{ - return AMQP_VERSION_STRING; -} +char const *amqp_version(void) { return AMQP_VERSION_STRING; } -uint32_t amqp_version_number(void) -{ - return AMQP_VERSION; -} +uint32_t amqp_version_number(void) { return AMQP_VERSION; } -void init_amqp_pool(amqp_pool_t *pool, size_t pagesize) -{ +void init_amqp_pool(amqp_pool_t *pool, size_t pagesize) { pool->pagesize = pagesize ? pagesize : 4096; pool->pages.num_blocks = 0; @@ -70,8 +63,7 @@ void init_amqp_pool(amqp_pool_t *pool, size_t pagesize) pool->alloc_used = 0; } -static void empty_blocklist(amqp_pool_blocklist_t *x) -{ +static void empty_blocklist(amqp_pool_blocklist_t *x) { int i; if (x->blocklist != NULL) { @@ -84,23 +76,20 @@ static void empty_blocklist(amqp_pool_blocklist_t *x) x->blocklist = NULL; } -void recycle_amqp_pool(amqp_pool_t *pool) -{ +void recycle_amqp_pool(amqp_pool_t *pool) { empty_blocklist(&pool->large_blocks); pool->next_page = 0; pool->alloc_block = NULL; pool->alloc_used = 0; } -void empty_amqp_pool(amqp_pool_t *pool) -{ +void empty_amqp_pool(amqp_pool_t *pool) { recycle_amqp_pool(pool); empty_blocklist(&pool->pages); } /* Returns 1 on success, 0 on failure */ -static int record_pool_block(amqp_pool_blocklist_t *x, void *block) -{ +static int record_pool_block(amqp_pool_blocklist_t *x, void *block) { size_t blocklistlength = sizeof(void *) * (x->num_blocks + 1); if (x->blocklist == NULL) { @@ -121,8 +110,7 @@ static int record_pool_block(amqp_pool_blocklist_t *x, void *block) return 1; } -void *amqp_pool_alloc(amqp_pool_t *pool, size_t amount) -{ +void *amqp_pool_alloc(amqp_pool_t *pool, size_t amount) { if (amount == 0) { return NULL; } @@ -170,22 +158,20 @@ void *amqp_pool_alloc(amqp_pool_t *pool, size_t amount) return pool->alloc_block; } -void amqp_pool_alloc_bytes(amqp_pool_t *pool, size_t amount, amqp_bytes_t *output) -{ +void amqp_pool_alloc_bytes(amqp_pool_t *pool, size_t amount, + amqp_bytes_t *output) { output->len = amount; output->bytes = amqp_pool_alloc(pool, amount); } -amqp_bytes_t amqp_cstring_bytes(char const *cstr) -{ +amqp_bytes_t amqp_cstring_bytes(char const *cstr) { amqp_bytes_t result; result.len = strlen(cstr); - result.bytes = (void *) cstr; + result.bytes = (void *)cstr; return result; } -amqp_bytes_t amqp_bytes_malloc_dup(amqp_bytes_t src) -{ +amqp_bytes_t amqp_bytes_malloc_dup(amqp_bytes_t src) { amqp_bytes_t result; result.len = src.len; result.bytes = malloc(src.len); @@ -195,27 +181,23 @@ amqp_bytes_t amqp_bytes_malloc_dup(amqp_bytes_t src) return result; } -amqp_bytes_t amqp_bytes_malloc(size_t amount) -{ +amqp_bytes_t amqp_bytes_malloc(size_t amount) { amqp_bytes_t result; result.len = amount; result.bytes = malloc(amount); /* will return NULL if it fails */ return result; } -void amqp_bytes_free(amqp_bytes_t bytes) -{ - free(bytes.bytes); -} +void amqp_bytes_free(amqp_bytes_t bytes) { free(bytes.bytes); } -amqp_pool_t *amqp_get_or_create_channel_pool(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_pool_t *amqp_get_or_create_channel_pool(amqp_connection_state_t state, + amqp_channel_t channel) { amqp_pool_table_entry_t *entry; size_t index = channel % POOL_TABLE_SIZE; entry = state->pool_table[index]; - for ( ; NULL != entry; entry = entry->next) { + for (; NULL != entry; entry = entry->next) { if (channel == entry->channel) { return &entry->pool; } @@ -235,14 +217,14 @@ amqp_pool_t *amqp_get_or_create_channel_pool(amqp_connection_state_t state, amqp return &entry->pool; } -amqp_pool_t *amqp_get_channel_pool(amqp_connection_state_t state, amqp_channel_t channel) -{ +amqp_pool_t *amqp_get_channel_pool(amqp_connection_state_t state, + amqp_channel_t channel) { amqp_pool_table_entry_t *entry; size_t index = channel % POOL_TABLE_SIZE; entry = state->pool_table[index]; - for ( ; NULL != entry; entry = entry->next) { + for (; NULL != entry; entry = entry->next) { if (channel == entry->channel) { return &entry->pool; } diff --git a/librabbitmq/amqp_openssl.c b/librabbitmq/amqp_openssl.c index 545bf52..417203a 100644 --- a/librabbitmq/amqp_openssl.c +++ b/librabbitmq/amqp_openssl.c @@ -30,9 +30,9 @@ #include "amqp_openssl_bio.h" #include "amqp_openssl_hostname_validation.h" -#include "amqp_ssl_socket.h" -#include "amqp_socket.h" #include "amqp_private.h" +#include "amqp_socket.h" +#include "amqp_ssl_socket.h" #include "amqp_time.h" #include "threads.h" @@ -40,14 +40,13 @@ #include <limits.h> #include <openssl/bio.h> #include <openssl/conf.h> +#include <openssl/engine.h> #include <openssl/err.h> #include <openssl/ssl.h> #include <openssl/x509v3.h> -#include <openssl/engine.h> #include <stdlib.h> #include <string.h> - static int initialize_openssl(void); static int destroy_openssl(void); @@ -57,7 +56,8 @@ static amqp_boolean_t openssl_initialized = 0; #ifdef ENABLE_THREAD_SAFETY static unsigned long amqp_ssl_threadid_callback(void); -static void amqp_ssl_locking_callback(int mode, int n, const char *file, int line); +static void amqp_ssl_locking_callback(int mode, int n, const char *file, + int line); static pthread_mutex_t openssl_init_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -119,12 +119,8 @@ static ssize_t amqp_ssl_socket_send(void *base, const void *buf, size_t len, return (ssize_t)res; } -static ssize_t -amqp_ssl_socket_recv(void *base, - void *buf, - size_t len, - AMQP_UNUSED int flags) -{ +static ssize_t amqp_ssl_socket_recv(void *base, void *buf, size_t len, + AMQP_UNUSED int flags) { struct amqp_ssl_socket_t *self = (struct amqp_ssl_socket_t *)base; int received; if (-1 == self->sockfd) { @@ -144,27 +140,26 @@ amqp_ssl_socket_recv(void *base, if (0 >= received) { self->internal_error = SSL_get_error(self->ssl, received); switch (self->internal_error) { - case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_READ: received = AMQP_PRIVATE_STATUS_SOCKET_NEEDREAD; break; - case SSL_ERROR_WANT_WRITE: + case SSL_ERROR_WANT_WRITE: received = AMQP_PRIVATE_STATUS_SOCKET_NEEDWRITE; break; - case SSL_ERROR_ZERO_RETURN: - received = AMQP_STATUS_CONNECTION_CLOSED; - break; - default: - received = AMQP_STATUS_SSL_ERROR; - break; + case SSL_ERROR_ZERO_RETURN: + received = AMQP_STATUS_CONNECTION_CLOSED; + break; + default: + received = AMQP_STATUS_SSL_ERROR; + break; } } return (ssize_t)received; } -static int -amqp_ssl_socket_open(void *base, const char *host, int port, struct timeval *timeout) -{ +static int amqp_ssl_socket_open(void *base, const char *host, int port, + struct timeval *timeout) { struct amqp_ssl_socket_t *self = (struct amqp_ssl_socket_t *)base; long result; int status; @@ -275,9 +270,7 @@ error_out1: goto exit; } -static int -amqp_ssl_socket_close(void *base, amqp_socket_close_enum force) -{ +static int amqp_ssl_socket_close(void *base, amqp_socket_close_enum force) { struct amqp_ssl_socket_t *self = (struct amqp_ssl_socket_t *)base; if (-1 == self->sockfd) { @@ -300,16 +293,12 @@ amqp_ssl_socket_close(void *base, amqp_socket_close_enum force) return AMQP_STATUS_OK; } -static int -amqp_ssl_socket_get_sockfd(void *base) -{ +static int amqp_ssl_socket_get_sockfd(void *base) { struct amqp_ssl_socket_t *self = (struct amqp_ssl_socket_t *)base; return self->sockfd; } -static void -amqp_ssl_socket_delete(void *base) -{ +static void amqp_ssl_socket_delete(void *base) { struct amqp_ssl_socket_t *self = (struct amqp_ssl_socket_t *)base; if (self) { @@ -322,17 +311,15 @@ amqp_ssl_socket_delete(void *base) } static const struct amqp_socket_class_t amqp_ssl_socket_class = { - amqp_ssl_socket_send, /* send */ - amqp_ssl_socket_recv, /* recv */ - amqp_ssl_socket_open, /* open */ - amqp_ssl_socket_close, /* close */ - amqp_ssl_socket_get_sockfd, /* get_sockfd */ - amqp_ssl_socket_delete /* delete */ + amqp_ssl_socket_send, /* send */ + amqp_ssl_socket_recv, /* recv */ + amqp_ssl_socket_open, /* open */ + amqp_ssl_socket_close, /* close */ + amqp_ssl_socket_get_sockfd, /* get_sockfd */ + amqp_ssl_socket_delete /* delete */ }; -amqp_socket_t * -amqp_ssl_socket_new(amqp_connection_state_t state) -{ +amqp_socket_t *amqp_ssl_socket_new(amqp_connection_state_t state) { struct amqp_ssl_socket_t *self = calloc(1, sizeof(*self)); int status; if (!self) { @@ -364,10 +351,7 @@ error: return NULL; } -int -amqp_ssl_socket_set_cacert(amqp_socket_t *base, - const char *cacert) -{ +int amqp_ssl_socket_set_cacert(amqp_socket_t *base, const char *cacert) { int status; struct amqp_ssl_socket_t *self; if (base->klass != &amqp_ssl_socket_class) { @@ -381,11 +365,8 @@ amqp_ssl_socket_set_cacert(amqp_socket_t *base, return AMQP_STATUS_OK; } -int -amqp_ssl_socket_set_key(amqp_socket_t *base, - const char *cert, - const char *key) -{ +int amqp_ssl_socket_set_key(amqp_socket_t *base, const char *cert, + const char *key) { int status; struct amqp_ssl_socket_t *self; if (base->klass != &amqp_ssl_socket_class) { @@ -396,29 +377,20 @@ amqp_ssl_socket_set_key(amqp_socket_t *base, if (1 != status) { return AMQP_STATUS_SSL_ERROR; } - status = SSL_CTX_use_PrivateKey_file(self->ctx, key, - SSL_FILETYPE_PEM); + status = SSL_CTX_use_PrivateKey_file(self->ctx, key, SSL_FILETYPE_PEM); if (1 != status) { return AMQP_STATUS_SSL_ERROR; } return AMQP_STATUS_OK; } -static int -password_cb(AMQP_UNUSED char *buffer, - AMQP_UNUSED int length, - AMQP_UNUSED int rwflag, - AMQP_UNUSED void *user_data) -{ +static int password_cb(AMQP_UNUSED char *buffer, AMQP_UNUSED int length, + AMQP_UNUSED int rwflag, AMQP_UNUSED void *user_data) { amqp_abort("rabbitmq-c does not support password protected keys"); } -int -amqp_ssl_socket_set_key_buffer(amqp_socket_t *base, - const char *cert, - const void *key, - size_t n) -{ +int amqp_ssl_socket_set_key_buffer(amqp_socket_t *base, const char *cert, + const void *key, size_t n) { int status = AMQP_STATUS_OK; BIO *buf = NULL; RSA *rsa = NULL; @@ -455,10 +427,7 @@ error: goto exit; } -int -amqp_ssl_socket_set_cert(amqp_socket_t *base, - const char *cert) -{ +int amqp_ssl_socket_set_cert(amqp_socket_t *base, const char *cert) { int status; struct amqp_ssl_socket_t *self; if (base->klass != &amqp_ssl_socket_class) { @@ -472,10 +441,7 @@ amqp_ssl_socket_set_cert(amqp_socket_t *base, return AMQP_STATUS_OK; } -void -amqp_ssl_socket_set_verify(amqp_socket_t *base, - amqp_boolean_t verify) -{ +void amqp_ssl_socket_set_verify(amqp_socket_t *base, amqp_boolean_t verify) { amqp_ssl_socket_set_verify_peer(base, verify); amqp_ssl_socket_set_verify_hostname(base, verify); } @@ -522,7 +488,7 @@ int amqp_ssl_socket_set_ssl_versions(amqp_socket_t *base, amqp_tls_version_t max_supported = AMQP_TLSv1; clear_options = SSL_OP_NO_TLSv1; #else -# error "Need a version of OpenSSL that can support TLSv1 or greater." +#error "Need a version of OpenSSL that can support TLSv1 or greater." #endif if (AMQP_TLSvLATEST == max) { @@ -560,26 +526,19 @@ int amqp_ssl_socket_set_ssl_versions(amqp_socket_t *base, return AMQP_STATUS_OK; } -void -amqp_set_initialize_ssl_library(amqp_boolean_t do_initialize) -{ +void amqp_set_initialize_ssl_library(amqp_boolean_t do_initialize) { if (!openssl_initialized) { do_initialize_openssl = do_initialize; } } #ifdef ENABLE_THREAD_SAFETY -unsigned long -amqp_ssl_threadid_callback(void) -{ +unsigned long amqp_ssl_threadid_callback(void) { return (unsigned long)pthread_self(); } -void -amqp_ssl_locking_callback(int mode, int n, - AMQP_UNUSED const char *file, - AMQP_UNUSED int line) -{ +void amqp_ssl_locking_callback(int mode, int n, AMQP_UNUSED const char *file, + AMQP_UNUSED int line) { if (mode & CRYPTO_LOCK) { if (pthread_mutex_lock(&amqp_openssl_lockarray[n])) { amqp_abort("Runtime error: Failure in trying to lock OpenSSL mutex"); @@ -592,9 +551,7 @@ amqp_ssl_locking_callback(int mode, int n, } #endif /* ENABLE_THREAD_SAFETY */ -static int -initialize_openssl(void) -{ +static int initialize_openssl(void) { #ifdef ENABLE_THREAD_SAFETY if (pthread_mutex_lock(&openssl_init_mutex)) { return -1; @@ -604,7 +561,8 @@ initialize_openssl(void) #ifdef ENABLE_THREAD_SAFETY if (NULL == amqp_openssl_lockarray) { int i = 0; - amqp_openssl_lockarray = calloc(CRYPTO_num_locks(), sizeof(pthread_mutex_t)); + amqp_openssl_lockarray = + calloc(CRYPTO_num_locks(), sizeof(pthread_mutex_t)); if (!amqp_openssl_lockarray) { pthread_mutex_unlock(&openssl_init_mutex); return -1; @@ -643,9 +601,7 @@ initialize_openssl(void) return 0; } -static int -destroy_openssl(void) -{ +static int destroy_openssl(void) { #ifdef ENABLE_THREAD_SAFETY if (pthread_mutex_lock(&openssl_init_mutex)) { return -1; @@ -672,9 +628,9 @@ destroy_openssl(void) CRYPTO_cleanup_all_ex_data(); ERR_free_strings(); openssl_initialized = 0; - #if (OPENSSL_VERSION_NUMBER >= 0x10002003L) - SSL_COMP_free_compression_methods(); - #endif +#if (OPENSSL_VERSION_NUMBER >= 0x10002003L) + SSL_COMP_free_compression_methods(); +#endif } pthread_mutex_unlock(&openssl_init_mutex); diff --git a/librabbitmq/amqp_openssl_bio.c b/librabbitmq/amqp_openssl_bio.c index 9d5d43a..5279620 100644 --- a/librabbitmq/amqp_openssl_bio.c +++ b/librabbitmq/amqp_openssl_bio.c @@ -21,24 +21,23 @@ * DEALINGS IN THE SOFTWARE. */ - #include "amqp_openssl_bio.h" #include "amqp_socket.h" #include "threads.h" #include <errno.h> #if ((defined(_WIN32)) || (defined(__MINGW32__)) || (defined(__MINGW64__))) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include <winsock2.h> +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <winsock2.h> #else -# include <sys/types.h> -# include <sys/socket.h> +#include <sys/socket.h> +#include <sys/types.h> #endif #ifdef MSG_NOSIGNAL -# define AMQP_USE_AMQP_BIO +#define AMQP_USE_AMQP_BIO #endif #ifdef AMQP_USE_AMQP_BIO @@ -85,7 +84,7 @@ static int amqp_openssl_bio_should_retry(int res) { return 0; } -static int amqp_openssl_bio_write(BIO* b, const char *in, int inl) { +static int amqp_openssl_bio_write(BIO *b, const char *in, int inl) { int flags = 0; int fd; int res; @@ -105,7 +104,7 @@ static int amqp_openssl_bio_write(BIO* b, const char *in, int inl) { return res; } -static int amqp_openssl_bio_read(BIO* b, char* out, int outl) { +static int amqp_openssl_bio_read(BIO *b, char *out, int outl) { int flags = 0; int fd; int res; @@ -132,8 +131,7 @@ static int BIO_meth_set_write(BIO_METHOD *biom, return 0; } -static int BIO_meth_set_read(BIO_METHOD *biom, - int (*rfn)(BIO *, char *, int)) { +static int BIO_meth_set_read(BIO_METHOD *biom, int (*rfn)(BIO *, char *, int)) { biom->bread = rfn; return 0; } @@ -147,9 +145,9 @@ static void amqp_openssl_bio_init(void) { bio_initialized = 1; } -#endif /* AMQP_USE_AMQP_BIO */ +#endif /* AMQP_USE_AMQP_BIO */ -BIO_METHOD* amqp_openssl_bio(void) { +BIO_METHOD *amqp_openssl_bio(void) { #ifdef AMQP_USE_AMQP_BIO if (!bio_initialized) { #ifdef ENABLE_THREAD_SAFETY diff --git a/librabbitmq/amqp_openssl_hostname_validation.c b/librabbitmq/amqp_openssl_hostname_validation.c index b91286c..ea61186 100644 --- a/librabbitmq/amqp_openssl_hostname_validation.c +++ b/librabbitmq/amqp_openssl_hostname_validation.c @@ -22,17 +22,16 @@ * copyright holder. */ - /* Originally from: * https://github.com/iSECPartners/ssl-conservatory * https://wiki.openssl.org/index.php/Hostname_validation */ -#include <openssl/x509v3.h> #include <openssl/ssl.h> +#include <openssl/x509v3.h> -#include "amqp_openssl_hostname_validation.h" #include "amqp_hostcheck.h" +#include "amqp_openssl_hostname_validation.h" #define HOSTNAME_MAX_SIZE 255 @@ -41,7 +40,8 @@ * * Returns AMQP_HVR_MATCH_FOUND if a match was found. * Returns AMQP_HVR_MATCH_NOT_FOUND if no matches were found. -* Returns AMQP_HVR_MALFORMED_CERTIFICATE if the Common Name had a NUL character embedded in it. +* Returns AMQP_HVR_MALFORMED_CERTIFICATE if the Common Name had a NUL character +* embedded in it. * Returns AMQP_HVR_ERROR if the Common Name could not be extracted. */ static amqp_hostname_validation_result amqp_matches_common_name( diff --git a/librabbitmq/amqp_private.h b/librabbitmq/amqp_private.h index f7d2dac..e73776c 100644 --- a/librabbitmq/amqp_private.h +++ b/librabbitmq/amqp_private.h @@ -40,37 +40,37 @@ #include "config.h" #endif -#define AMQ_COPYRIGHT "Copyright (c) 2007-2014 VMWare Inc, Tony Garnock-Jones," \ - " and Alan Antonuk." +#define AMQ_COPYRIGHT \ + "Copyright (c) 2007-2014 VMWare Inc, Tony Garnock-Jones," \ + " and Alan Antonuk." #include "amqp.h" #include "amqp_framing.h" #include <string.h> #if ((defined(_WIN32)) || (defined(__MINGW32__)) || (defined(__MINGW64__))) -# ifndef WINVER +#ifndef WINVER /* WINVER 0x0502 is WinXP SP2+, Windows Server 2003 SP1+ - * See: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx#macros_for_conditional_declarations */ -# define WINVER 0x0502 -# endif -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include <winsock2.h> + * See: + * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx#macros_for_conditional_declarations + */ +#define WINVER 0x0502 +#endif +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <winsock2.h> #else -# include <arpa/inet.h> -# include <sys/uio.h> +#include <arpa/inet.h> +#include <sys/uio.h> #endif /* GCC attributes */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) -#define AMQP_NORETURN \ - __attribute__ ((__noreturn__)) -#define AMQP_UNUSED \ - __attribute__ ((__unused__)) +#define AMQP_NORETURN __attribute__((__noreturn__)) +#define AMQP_UNUSED __attribute__((__unused__)) #elif defined(_MSC_VER) -#define AMQP_NORETURN \ - __declspec(noreturn) +#define AMQP_NORETURN __declspec(noreturn) #define AMQP_UNUSED #else #define AMQP_NORETURN @@ -78,18 +78,15 @@ #endif #if __GNUC__ >= 4 -#define AMQP_PRIVATE \ - __attribute__ ((visibility ("hidden"))) +#define AMQP_PRIVATE __attribute__((visibility("hidden"))) #else #define AMQP_PRIVATE #endif -char * -amqp_os_error_string(int err); +char *amqp_os_error_string(int err); #ifdef WITH_SSL -char * -amqp_ssl_error_string(int err); +char *amqp_ssl_error_string(int err); #endif #include "amqp_socket.h" @@ -124,12 +121,11 @@ typedef enum amqp_connection_state_enum_ { CONNECTION_STATE_BODY } amqp_connection_state_enum; -typedef enum amqp_status_private_enum_ -{ +typedef enum amqp_status_private_enum_ { /* 0x00xx -> AMQP_STATUS_*/ /* 0x01xx -> AMQP_STATUS_TCP_* */ /* 0x02xx -> AMQP_STATUS_SSL_* */ - AMQP_PRIVATE_STATUS_SOCKET_NEEDREAD = -0x1301, + AMQP_PRIVATE_STATUS_SOCKET_NEEDREAD = -0x1301, AMQP_PRIVATE_STATUS_SOCKET_NEEDWRITE = -0x1302 } amqp_status_private_enum; @@ -199,9 +195,10 @@ struct amqp_connection_state_t_ { struct timeval internal_rpc_timeout; }; -amqp_pool_t *amqp_get_or_create_channel_pool(amqp_connection_state_t connection, amqp_channel_t channel); -amqp_pool_t *amqp_get_channel_pool(amqp_connection_state_t state, amqp_channel_t channel); - +amqp_pool_t *amqp_get_or_create_channel_pool(amqp_connection_state_t connection, + amqp_channel_t channel); +amqp_pool_t *amqp_get_channel_pool(amqp_connection_state_t state, + amqp_channel_t channel); static inline int amqp_heartbeat_send(amqp_connection_state_t state) { return state->heartbeat; @@ -213,8 +210,7 @@ static inline int amqp_heartbeat_recv(amqp_connection_state_t state) { int amqp_try_recv(amqp_connection_state_t state); -static inline void *amqp_offset(void *data, size_t offset) -{ +static inline void *amqp_offset(void *data, size_t offset) { return (char *)data + offset; } @@ -277,7 +273,7 @@ static inline uint16_t amqp_d16(void *data) { return val; } -static inline void amqp_e32(uint32_t val, void* data) { +static inline void amqp_e32(uint32_t val, void *data) { if (!is_bigendian()) { val = ((val & 0xFF000000u) >> 24u) | ((val & 0x00FF0000u) >> 8u) | ((val & 0x0000FF00u) << 8u) | ((val & 0x000000FFu) << 24u); @@ -331,8 +327,7 @@ DECLARE_CODEC_BASE_TYPE(32) DECLARE_CODEC_BASE_TYPE(64) static inline int amqp_encode_bytes(amqp_bytes_t encoded, size_t *offset, - amqp_bytes_t input) -{ + amqp_bytes_t input) { size_t o = *offset; /* The memcpy below has undefined behavior if the input is NULL. It is valid * for a 0-length amqp_bytes_t to have .bytes == NULL. Thus we should check @@ -350,8 +345,7 @@ static inline int amqp_encode_bytes(amqp_bytes_t encoded, size_t *offset, } static inline int amqp_decode_bytes(amqp_bytes_t encoded, size_t *offset, - amqp_bytes_t *output, size_t len) -{ + amqp_bytes_t *output, size_t len) { size_t o = *offset; if ((*offset = o + len) <= encoded.len) { output->bytes = amqp_offset(encoded.bytes, o); @@ -363,8 +357,7 @@ static inline int amqp_decode_bytes(amqp_bytes_t encoded, size_t *offset, } AMQP_NORETURN -void -amqp_abort(const char *fmt, ...); +void amqp_abort(const char *fmt, ...); int amqp_bytes_equal(amqp_bytes_t r, amqp_bytes_t l); diff --git a/librabbitmq/amqp_socket.c b/librabbitmq/amqp_socket.c index 2fef966..a5bbd4b 100644 --- a/librabbitmq/amqp_socket.c +++ b/librabbitmq/amqp_socket.c @@ -38,7 +38,7 @@ #endif #ifdef _MSC_VER -# define _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS #endif #include "amqp_private.h" @@ -57,33 +57,33 @@ #include <errno.h> #if ((defined(_WIN32)) || (defined(__MINGW32__)) || (defined(__MINGW64__))) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include <winsock2.h> -# include <ws2tcpip.h> +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <winsock2.h> +#include <ws2tcpip.h> #else -# include <sys/types.h> /* On older BSD this must come before net includes */ -# include <netinet/in.h> -# include <netinet/tcp.h> -# ifdef HAVE_SELECT -# include <sys/select.h> -# endif -# include <sys/socket.h> -# include <netdb.h> -# include <sys/uio.h> -# include <fcntl.h> -# ifdef HAVE_POLL -# include <poll.h> -# endif -# include <unistd.h> +#include <sys/types.h> +/* On older BSD types.h must come before net includes */ +#include <netinet/in.h> +#include <netinet/tcp.h> +#ifdef HAVE_SELECT +#include <sys/select.h> +#endif +#include <fcntl.h> +#include <netdb.h> +#include <sys/socket.h> +#include <sys/uio.h> +#ifdef HAVE_POLL +#include <poll.h> +#endif +#include <unistd.h> #endif -static int amqp_id_in_reply_list( amqp_method_number_t expected, amqp_method_number_t *list ); +static int amqp_id_in_reply_list(amqp_method_number_t expected, + amqp_method_number_t *list); -static int -amqp_os_socket_init(void) -{ +static int amqp_os_socket_init(void) { #ifdef _WIN32 static int called_wsastartup = 0; if (!called_wsastartup) { @@ -102,9 +102,7 @@ amqp_os_socket_init(void) #endif } -int -amqp_os_socket_error(void) -{ +int amqp_os_socket_error(void) { #ifdef _WIN32 return WSAGetLastError(); #else @@ -112,9 +110,7 @@ amqp_os_socket_error(void) #endif } -int -amqp_os_socket_close(int sockfd) -{ +int amqp_os_socket_close(int sockfd) { #ifdef _WIN32 return closesocket(sockfd); #else @@ -122,58 +118,47 @@ amqp_os_socket_close(int sockfd) #endif } -ssize_t -amqp_socket_send(amqp_socket_t *self, const void *buf, size_t len, int flags) -{ +ssize_t amqp_socket_send(amqp_socket_t *self, const void *buf, size_t len, + int flags) { assert(self); assert(self->klass->send); return self->klass->send(self, buf, len, flags); } -ssize_t -amqp_socket_recv(amqp_socket_t *self, void *buf, size_t len, int flags) -{ +ssize_t amqp_socket_recv(amqp_socket_t *self, void *buf, size_t len, + int flags) { assert(self); assert(self->klass->recv); return self->klass->recv(self, buf, len, flags); } -int -amqp_socket_open(amqp_socket_t *self, const char *host, int port) -{ +int amqp_socket_open(amqp_socket_t *self, const char *host, int port) { assert(self); assert(self->klass->open); return self->klass->open(self, host, port, NULL); } -int -amqp_socket_open_noblock(amqp_socket_t *self, const char *host, int port, struct timeval *timeout) -{ +int amqp_socket_open_noblock(amqp_socket_t *self, const char *host, int port, + struct timeval *timeout) { assert(self); assert(self->klass->open); return self->klass->open(self, host, port, timeout); } -int -amqp_socket_close(amqp_socket_t *self, amqp_socket_close_enum force) -{ +int amqp_socket_close(amqp_socket_t *self, amqp_socket_close_enum force) { assert(self); assert(self->klass->close); return self->klass->close(self, force); } -void -amqp_socket_delete(amqp_socket_t *self) -{ +void amqp_socket_delete(amqp_socket_t *self) { if (self) { assert(self->klass->delete); - self->klass->delete(self); + self->klass->delete (self); } } -int -amqp_socket_get_sockfd(amqp_socket_t *self) -{ +int amqp_socket_get_sockfd(amqp_socket_t *self) { assert(self); assert(self->klass->get_sockfd); return self->klass->get_sockfd(self); @@ -255,9 +240,9 @@ start_select: } if (event & AMQP_SF_POLLIN) { - res = select(fd + 1, &fds, NULL, exceptfdsp, tvp); + res = select(fd + 1, &fds, NULL, exceptfdsp, tvp); } else if (event & AMQP_SF_POLLOUT) { - res = select(fd + 1, NULL, &fds, exceptfdsp, tvp); + res = select(fd + 1, NULL, &fds, exceptfdsp, tvp); } if (0 < res) { @@ -273,12 +258,12 @@ start_select: } } #else -# error "poll() or select() is needed to compile rabbitmq-c" +#error "poll() or select() is needed to compile rabbitmq-c" #endif } static ssize_t do_poll(amqp_connection_state_t state, ssize_t res, - amqp_time_t deadline) { + amqp_time_t deadline) { int fd = amqp_get_sockfd(state); if (-1 == fd) { return AMQP_STATUS_SOCKET_CLOSED; @@ -297,7 +282,7 @@ static ssize_t do_poll(amqp_connection_state_t state, ssize_t res, ssize_t amqp_try_send(amqp_connection_state_t state, const void *buf, size_t len, amqp_time_t deadline, int flags) { ssize_t res; - void* buf_left = (void*)buf; + void *buf_left = (void *)buf; /* Assume that len is not going to be larger than ssize_t can hold. */ ssize_t len_left = (size_t)len; @@ -306,7 +291,7 @@ start_send: if (res > 0) { len_left -= res; - buf_left = (char*)buf_left + res; + buf_left = (char *)buf_left + res; if (0 == len_left) { return (ssize_t)len; } @@ -322,18 +307,12 @@ start_send: return res; } -int -amqp_open_socket(char const *hostname, - int portnumber) -{ - return amqp_open_socket_inner(hostname, portnumber, - amqp_time_infinite()); +int amqp_open_socket(char const *hostname, int portnumber) { + return amqp_open_socket_inner(hostname, portnumber, amqp_time_infinite()); } -int amqp_open_socket_noblock(char const *hostname, - int portnumber, - struct timeval *timeout) -{ +int amqp_open_socket_noblock(char const *hostname, int portnumber, + struct timeval *timeout) { amqp_time_t deadline; int res = amqp_time_from_now(&deadline, timeout); if (AMQP_STATUS_OK != res) { @@ -425,8 +404,7 @@ static int connect_socket(struct addrinfo *addr, amqp_time_t deadline) { /* Enable CLOEXEC on socket */ flags = fcntl(sockfd, F_GETFD); - if (flags == -1 - || fcntl(sockfd, F_SETFD, (long)(flags | FD_CLOEXEC)) == -1) { + if (flags == -1 || fcntl(sockfd, F_SETFD, (long)(flags | FD_CLOEXEC)) == -1) { last_error = AMQP_STATUS_SOCKET_ERROR; goto err; } @@ -491,8 +469,7 @@ err: } #endif -int amqp_open_socket_inner(char const *hostname, - int portnumber, +int amqp_open_socket_inner(char const *hostname, int portnumber, amqp_time_t deadline) { struct addrinfo hint; struct addrinfo *address_list; @@ -540,11 +517,14 @@ int amqp_open_socket_inner(char const *hostname, static int send_header_inner(amqp_connection_state_t state, amqp_time_t deadline) { ssize_t res; - static const uint8_t header[8] = { 'A', 'M', 'Q', 'P', 0, - AMQP_PROTOCOL_VERSION_MAJOR, - AMQP_PROTOCOL_VERSION_MINOR, - AMQP_PROTOCOL_VERSION_REVISION - }; + static const uint8_t header[8] = {'A', + 'M', + 'Q', + 'P', + 0, + AMQP_PROTOCOL_VERSION_MAJOR, + AMQP_PROTOCOL_VERSION_MINOR, + AMQP_PROTOCOL_VERSION_REVISION}; res = amqp_try_send(state, header, sizeof(header), deadline, AMQP_SF_NONE); if (sizeof(header) == res) { return AMQP_STATUS_OK; @@ -556,27 +536,25 @@ int amqp_send_header(amqp_connection_state_t state) { return send_header_inner(state, amqp_time_infinite()); } -static amqp_bytes_t sasl_method_name(amqp_sasl_method_enum method) -{ +static amqp_bytes_t sasl_method_name(amqp_sasl_method_enum method) { amqp_bytes_t res; switch (method) { - case AMQP_SASL_METHOD_PLAIN: - res = amqp_cstring_bytes("PLAIN"); - break; - case AMQP_SASL_METHOD_EXTERNAL: - res = amqp_cstring_bytes("EXTERNAL"); - break; + case AMQP_SASL_METHOD_PLAIN: + res = amqp_cstring_bytes("PLAIN"); + break; + case AMQP_SASL_METHOD_EXTERNAL: + res = amqp_cstring_bytes("EXTERNAL"); + break; - default: - amqp_abort("Invalid SASL method: %d", (int) method); + default: + amqp_abort("Invalid SASL method: %d", (int)method); } return res; } -static int bytes_equal(amqp_bytes_t l, amqp_bytes_t r) -{ +static int bytes_equal(amqp_bytes_t l, amqp_bytes_t r) { if (l.len == r.len) { if (l.bytes && r.bytes) { if (0 == memcmp(l.bytes, r.bytes, l.len)) { @@ -588,23 +566,22 @@ static int bytes_equal(amqp_bytes_t l, amqp_bytes_t r) } int sasl_mechanism_in_list(amqp_bytes_t mechanisms, - amqp_sasl_method_enum method) -{ + amqp_sasl_method_enum method) { amqp_bytes_t mechanism; amqp_bytes_t supported_mechanism; - uint8_t* start; - uint8_t* end; - uint8_t* current; + uint8_t *start; + uint8_t *end; + uint8_t *current; assert(NULL != mechanisms.bytes); mechanism = sasl_method_name(method); - start = (uint8_t*)mechanisms.bytes; + start = (uint8_t *)mechanisms.bytes; current = start; end = start + mechanisms.len; - for ( ; current != end; start = current + 1) { + for (; current != end; start = current + 1) { /* HACK: SASL states that we should be parsing this string as a UTF-8 * string, which we're plainly not doing here. At this point its not worth * dragging an entire UTF-8 parser for this one case, and this should work @@ -624,55 +601,53 @@ int sasl_mechanism_in_list(amqp_bytes_t mechanisms, } static amqp_bytes_t sasl_response(amqp_pool_t *pool, - amqp_sasl_method_enum method, - va_list args) -{ + amqp_sasl_method_enum method, va_list args) { amqp_bytes_t response; switch (method) { - case AMQP_SASL_METHOD_PLAIN: { - char *username = va_arg(args, char *); - size_t username_len = strlen(username); - char *password = va_arg(args, char *); - size_t password_len = strlen(password); - char *response_buf; - - amqp_pool_alloc_bytes(pool, strlen(username) + strlen(password) + 2, &response); - if (response.bytes == NULL) + case AMQP_SASL_METHOD_PLAIN: { + char *username = va_arg(args, char *); + size_t username_len = strlen(username); + char *password = va_arg(args, char *); + size_t password_len = strlen(password); + char *response_buf; + + amqp_pool_alloc_bytes(pool, strlen(username) + strlen(password) + 2, + &response); + if (response.bytes == NULL) /* We never request a zero-length block, because of the +2 above, so a NULL here really is ENOMEM. */ - { - return response; + { + return response; + } + + response_buf = response.bytes; + response_buf[0] = 0; + memcpy(response_buf + 1, username, username_len); + response_buf[username_len + 1] = 0; + memcpy(response_buf + username_len + 2, password, password_len); + break; } + case AMQP_SASL_METHOD_EXTERNAL: { + char *identity = va_arg(args, char *); + size_t identity_len = strlen(identity); - response_buf = response.bytes; - response_buf[0] = 0; - memcpy(response_buf + 1, username, username_len); - response_buf[username_len + 1] = 0; - memcpy(response_buf + username_len + 2, password, password_len); - break; - } - case AMQP_SASL_METHOD_EXTERNAL: { - char *identity = va_arg(args, char *); - size_t identity_len = strlen(identity); + amqp_pool_alloc_bytes(pool, identity_len, &response); + if (response.bytes == NULL) { + return response; + } - amqp_pool_alloc_bytes(pool, identity_len, &response); - if (response.bytes == NULL) { - return response; + memcpy(response.bytes, identity, identity_len); + break; } - - memcpy(response.bytes, identity, identity_len); - break; - } - default: - amqp_abort("Invalid SASL method: %d", (int) method); + default: + amqp_abort("Invalid SASL method: %d", (int)method); } return response; } -amqp_boolean_t amqp_frames_enqueued(amqp_connection_state_t state) -{ +amqp_boolean_t amqp_frames_enqueued(amqp_connection_state_t state) { return (state->first_queued_frame != NULL); } @@ -680,18 +655,18 @@ amqp_boolean_t amqp_frames_enqueued(amqp_connection_state_t state) * Check to see if we have data in our buffer. If this returns 1, we * will avoid an immediate blocking read in amqp_simple_wait_frame. */ -amqp_boolean_t amqp_data_in_buffer(amqp_connection_state_t state) -{ +amqp_boolean_t amqp_data_in_buffer(amqp_connection_state_t state) { return (state->sock_inbound_offset < state->sock_inbound_limit); } -static int consume_one_frame(amqp_connection_state_t state, amqp_frame_t *decoded_frame) -{ +static int consume_one_frame(amqp_connection_state_t state, + amqp_frame_t *decoded_frame) { int res; amqp_bytes_t buffer; buffer.len = state->sock_inbound_limit - state->sock_inbound_offset; - buffer.bytes = ((char *) state->sock_inbound_buffer.bytes) + state->sock_inbound_offset; + buffer.bytes = + ((char *)state->sock_inbound_buffer.bytes) + state->sock_inbound_offset; res = amqp_handle_input(state, buffer, decoded_frame); if (res < 0) { @@ -703,8 +678,8 @@ static int consume_one_frame(amqp_connection_state_t state, amqp_frame_t *decode return AMQP_STATUS_OK; } - -static int recv_with_timeout(amqp_connection_state_t state, amqp_time_t timeout) { +static int recv_with_timeout(amqp_connection_state_t state, + amqp_time_t timeout) { ssize_t res; int fd; @@ -815,7 +790,7 @@ static int wait_frame_inner(amqp_connection_state_t state, } } -beginrecv: + beginrecv: res = amqp_time_has_past(state->next_send_heartbeat); if (AMQP_STATUS_TIMER_FAILURE == res) { return res; @@ -855,12 +830,13 @@ beginrecv: } } -static amqp_link_t * amqp_create_link_for_frame(amqp_connection_state_t state, amqp_frame_t *frame) -{ +static amqp_link_t *amqp_create_link_for_frame(amqp_connection_state_t state, + amqp_frame_t *frame) { amqp_link_t *link; amqp_frame_t *frame_copy; - amqp_pool_t *channel_pool = amqp_get_or_create_channel_pool(state, frame->channel); + amqp_pool_t *channel_pool = + amqp_get_or_create_channel_pool(state, frame->channel); if (NULL == channel_pool) { return NULL; @@ -879,8 +855,7 @@ static amqp_link_t * amqp_create_link_for_frame(amqp_connection_state_t state, a return link; } -int amqp_queue_frame(amqp_connection_state_t state, amqp_frame_t *frame) -{ +int amqp_queue_frame(amqp_connection_state_t state, amqp_frame_t *frame) { amqp_link_t *link = amqp_create_link_for_frame(state, frame); if (NULL == link) { return AMQP_STATUS_NO_MEMORY; @@ -898,8 +873,7 @@ int amqp_queue_frame(amqp_connection_state_t state, amqp_frame_t *frame) return AMQP_STATUS_OK; } -int amqp_put_back_frame(amqp_connection_state_t state, amqp_frame_t *frame) -{ +int amqp_put_back_frame(amqp_connection_state_t state, amqp_frame_t *frame) { amqp_link_t *link = amqp_create_link_for_frame(state, frame); if (NULL == link) { return AMQP_STATUS_NO_MEMORY; @@ -919,8 +893,7 @@ int amqp_put_back_frame(amqp_connection_state_t state, amqp_frame_t *frame) int amqp_simple_wait_frame_on_channel(amqp_connection_state_t state, amqp_channel_t channel, - amqp_frame_t *decoded_frame) -{ + amqp_frame_t *decoded_frame) { amqp_frame_t *frame_ptr; amqp_link_t *cur; int res; @@ -959,15 +932,13 @@ int amqp_simple_wait_frame_on_channel(amqp_connection_state_t state, } int amqp_simple_wait_frame(amqp_connection_state_t state, - amqp_frame_t *decoded_frame) -{ + amqp_frame_t *decoded_frame) { return amqp_simple_wait_frame_noblock(state, decoded_frame, NULL); } int amqp_simple_wait_frame_noblock(amqp_connection_state_t state, amqp_frame_t *decoded_frame, - struct timeval *timeout) -{ + struct timeval *timeout) { amqp_time_t deadline; int res = amqp_time_from_now(&deadline, timeout); @@ -976,7 +947,7 @@ int amqp_simple_wait_frame_noblock(amqp_connection_state_t state, } if (state->first_queued_frame != NULL) { - amqp_frame_t *f = (amqp_frame_t *) state->first_queued_frame->data; + amqp_frame_t *f = (amqp_frame_t *)state->first_queued_frame->data; state->first_queued_frame = state->first_queued_frame->next; if (state->first_queued_frame == NULL) { state->last_queued_frame = NULL; @@ -1029,8 +1000,7 @@ static int simple_wait_method_inner(amqp_connection_state_t state, int amqp_simple_wait_method(amqp_connection_state_t state, amqp_channel_t expected_channel, amqp_method_number_t expected_method, - amqp_method_t *output) -{ + amqp_method_t *output) { return simple_wait_method_inner(state, expected_channel, expected_method, amqp_time_infinite(), output); } @@ -1053,10 +1023,10 @@ int amqp_send_method_inner(amqp_connection_state_t state, return amqp_send_frame_inner(state, &frame, flags, deadline); } -static int amqp_id_in_reply_list( amqp_method_number_t expected, amqp_method_number_t *list ) -{ - while ( *list != 0 ) { - if ( *list == expected ) { +static int amqp_id_in_reply_list(amqp_method_number_t expected, + amqp_method_number_t *list) { + while (*list != 0) { + if (*list == expected) { return 1; } list++; @@ -1081,8 +1051,8 @@ static amqp_rpc_reply_t simple_rpc_inner( { amqp_frame_t frame; -retry: - status = wait_frame_inner(state, &frame, deadline); + retry: + status = wait_frame_inner(state, &frame, deadline); if (status < 0) { if (status == AMQP_STATUS_TIMEOUT) { amqp_socket_close(state->socket, AMQP_SC_FORCE); @@ -1098,16 +1068,13 @@ retry: * - on the channel we want, and a channel.close frame, or * - on channel zero, and a connection.close frame. */ - if (!((frame.frame_type == AMQP_FRAME_METHOD) - && ( - ((frame.channel == channel) - && (amqp_id_in_reply_list(frame.payload.method.id, expected_reply_ids) - || (frame.payload.method.id == AMQP_CHANNEL_CLOSE_METHOD))) - || - ((frame.channel == 0) - && (frame.payload.method.id == AMQP_CONNECTION_CLOSE_METHOD)) - ) - )) { + if (!((frame.frame_type == AMQP_FRAME_METHOD) && + (((frame.channel == channel) && + (amqp_id_in_reply_list(frame.payload.method.id, + expected_reply_ids) || + (frame.payload.method.id == AMQP_CHANNEL_CLOSE_METHOD))) || + ((frame.channel == 0) && + (frame.payload.method.id == AMQP_CONNECTION_CLOSE_METHOD))))) { amqp_pool_t *channel_pool; amqp_frame_t *frame_copy; amqp_link_t *link; @@ -1139,9 +1106,10 @@ retry: goto retry; } - result.reply_type = (amqp_id_in_reply_list(frame.payload.method.id, expected_reply_ids)) - ? AMQP_RESPONSE_NORMAL - : AMQP_RESPONSE_SERVER_EXCEPTION; + result.reply_type = + (amqp_id_in_reply_list(frame.payload.method.id, expected_reply_ids)) + ? AMQP_RESPONSE_NORMAL + : AMQP_RESPONSE_SERVER_EXCEPTION; result.reply = frame.payload.method; return result; @@ -1193,8 +1161,7 @@ void *amqp_simple_rpc_decoded(amqp_connection_state_t state, } } -amqp_rpc_reply_t amqp_get_rpc_reply(amqp_connection_state_t state) -{ +amqp_rpc_reply_t amqp_get_rpc_reply(amqp_connection_state_t state) { return state->most_recent_api_result; } @@ -1309,9 +1276,9 @@ static amqp_rpc_reply_t amqp_login_inner( } { - amqp_connection_start_t *s = (amqp_connection_start_t *) method.decoded; - if ((s->version_major != AMQP_PROTOCOL_VERSION_MAJOR) - || (s->version_minor != AMQP_PROTOCOL_VERSION_MINOR)) { + amqp_connection_start_t *s = (amqp_connection_start_t *)method.decoded; + if ((s->version_major != AMQP_PROTOCOL_VERSION_MAJOR) || + (s->version_minor != AMQP_PROTOCOL_VERSION_MINOR)) { res = AMQP_STATUS_INCOMPATIBLE_AMQP_VERSION; goto error_res; } @@ -1347,8 +1314,7 @@ static amqp_rpc_reply_t amqp_login_inner( goto error_res; } - response_bytes = sasl_response(channel_pool, - sasl_method, vl); + response_bytes = sasl_response(channel_pool, sasl_method, vl); if (response_bytes.bytes == NULL) { res = AMQP_STATUS_NO_MEMORY; goto error_res; @@ -1399,8 +1365,8 @@ static amqp_rpc_reply_t amqp_login_inner( amqp_release_buffers(state); { - amqp_method_number_t expected[] = { AMQP_CONNECTION_TUNE_METHOD, - AMQP_CONNECTION_CLOSE_METHOD, 0 }; + amqp_method_number_t expected[] = {AMQP_CONNECTION_TUNE_METHOD, + AMQP_CONNECTION_CLOSE_METHOD, 0}; res = amqp_simple_wait_method_list(state, 0, expected, deadline, &method); if (AMQP_STATUS_OK != res) { @@ -1416,7 +1382,7 @@ static amqp_rpc_reply_t amqp_login_inner( } { - amqp_connection_tune_t *s = (amqp_connection_tune_t *) method.decoded; + amqp_connection_tune_t *s = (amqp_connection_tune_t *)method.decoded; server_channel_max = s->channel_max; server_frame_max = s->frame_max; server_heartbeat = s->heartbeat; @@ -1459,7 +1425,7 @@ static amqp_rpc_reply_t amqp_login_inner( amqp_release_buffers(state); { - amqp_method_number_t replies[] = { AMQP_CONNECTION_OPEN_OK_METHOD, 0 }; + amqp_method_number_t replies[] = {AMQP_CONNECTION_OPEN_OK_METHOD, 0}; amqp_connection_open_t s; s.virtual_host = amqp_cstring_bytes(vhost); s.capabilities = amqp_empty_bytes; @@ -1488,14 +1454,9 @@ error_res: goto out; } -amqp_rpc_reply_t amqp_login(amqp_connection_state_t state, - char const *vhost, - int channel_max, - int frame_max, - int heartbeat, - int sasl_method, - ...) -{ +amqp_rpc_reply_t amqp_login(amqp_connection_state_t state, char const *vhost, + int channel_max, int frame_max, int heartbeat, + int sasl_method, ...) { va_list vl; amqp_rpc_reply_t ret; @@ -1510,15 +1471,10 @@ amqp_rpc_reply_t amqp_login(amqp_connection_state_t state, return ret; } -amqp_rpc_reply_t amqp_login_with_properties(amqp_connection_state_t state, - char const *vhost, - int channel_max, - int frame_max, - int heartbeat, - const amqp_table_t *client_properties, - int sasl_method, - ...) -{ +amqp_rpc_reply_t amqp_login_with_properties( + amqp_connection_state_t state, char const *vhost, int channel_max, + int frame_max, int heartbeat, const amqp_table_t *client_properties, + int sasl_method, ...) { va_list vl; amqp_rpc_reply_t ret; diff --git a/librabbitmq/amqp_socket.h b/librabbitmq/amqp_socket.h index c863956..3101cf6 100644 --- a/librabbitmq/amqp_socket.h +++ b/librabbitmq/amqp_socket.h @@ -44,16 +44,11 @@ typedef enum { AMQP_SF_POLLERR = 8 } amqp_socket_flag_enum; -typedef enum { - AMQP_SC_NONE = 0, - AMQP_SC_FORCE = 1 -} amqp_socket_close_enum; +typedef enum { AMQP_SC_NONE = 0, AMQP_SC_FORCE = 1 } amqp_socket_close_enum; -int -amqp_os_socket_error(void); +int amqp_os_socket_error(void); -int -amqp_os_socket_close(int sockfd); +int amqp_os_socket_close(int sockfd); /* Socket callbacks. */ typedef ssize_t (*amqp_socket_send_fn)(void *, const void *, size_t, int); @@ -78,7 +73,6 @@ struct amqp_socket_t_ { const struct amqp_socket_class_t *klass; }; - /** * Set set the socket object for a connection * @@ -88,9 +82,7 @@ struct amqp_socket_t_ { * \param [in] state The connection object to add the socket to * \param [in] socket The socket object to assign to the connection */ -void -amqp_set_socket(amqp_connection_state_t state, amqp_socket_t *socket); - +void amqp_set_socket(amqp_connection_state_t state, amqp_socket_t *socket); /** * Send a message from a socket. @@ -107,8 +99,8 @@ amqp_set_socket(amqp_connection_state_t state, amqp_socket_t *socket); * * \return AMQP_STATUS_OK on success. amqp_status_enum value otherwise */ -ssize_t -amqp_socket_send(amqp_socket_t *self, const void *buf, size_t len, int flags); +ssize_t amqp_socket_send(amqp_socket_t *self, const void *buf, size_t len, + int flags); ssize_t amqp_try_send(amqp_connection_state_t state, const void *buf, size_t len, amqp_time_t deadline, int flags); @@ -125,8 +117,7 @@ ssize_t amqp_try_send(amqp_connection_state_t state, const void *buf, * * \return The number of bytes received, or < 0 on error (\ref amqp_status_enum) */ -ssize_t -amqp_socket_recv(amqp_socket_t *self, void *buf, size_t len, int flags); +ssize_t amqp_socket_recv(amqp_socket_t *self, void *buf, size_t len, int flags); /** * Close a socket connection and free resources. @@ -141,16 +132,14 @@ amqp_socket_recv(amqp_socket_t *self, void *buf, size_t len, int flags); * * \return Zero upon success, non-zero otherwise. */ -int -amqp_socket_close(amqp_socket_t *self, amqp_socket_close_enum force); +int amqp_socket_close(amqp_socket_t *self, amqp_socket_close_enum force); /** * Destroy a socket object * * \param [in] self the socket object to delete */ -void -amqp_socket_delete(amqp_socket_t *self); +void amqp_socket_delete(amqp_socket_t *self); /** * Open a socket connection. @@ -162,12 +151,13 @@ amqp_socket_delete(amqp_socket_t *self); * * \param [in] host Connect to this host. * \param [in] port Connect on this remote port. - * \param [in] timeout Max allowed time to spent on opening. If NULL - run in blocking mode + * \param [in] timeout Max allowed time to spent on opening. If NULL - run in + * blocking mode * * \return File descriptor upon success, non-zero negative error code otherwise. */ -int -amqp_open_socket_noblock(char const *hostname, int portnumber, struct timeval *timeout); +int amqp_open_socket_noblock(char const *hostname, int portnumber, + struct timeval *timeout); int amqp_open_socket_inner(char const *hostname, int portnumber, amqp_time_t deadline); @@ -180,19 +170,16 @@ int amqp_send_method_inner(amqp_connection_state_t state, amqp_channel_t channel, amqp_method_number_t id, void *decoded, int flags, amqp_time_t deadline); -int -amqp_queue_frame(amqp_connection_state_t state, amqp_frame_t *frame); +int amqp_queue_frame(amqp_connection_state_t state, amqp_frame_t *frame); -int -amqp_put_back_frame(amqp_connection_state_t state, amqp_frame_t *frame); +int amqp_put_back_frame(amqp_connection_state_t state, amqp_frame_t *frame); -int -amqp_simple_wait_frame_on_channel(amqp_connection_state_t state, - amqp_channel_t channel, - amqp_frame_t *decoded_frame); +int amqp_simple_wait_frame_on_channel(amqp_connection_state_t state, + amqp_channel_t channel, + amqp_frame_t *decoded_frame); -int -sasl_mechanism_in_list(amqp_bytes_t mechanisms, amqp_sasl_method_enum method); +int sasl_mechanism_in_list(amqp_bytes_t mechanisms, + amqp_sasl_method_enum method); int amqp_merge_capabilities(const amqp_table_t *base, const amqp_table_t *add, amqp_table_t *result, amqp_pool_t *pool); diff --git a/librabbitmq/amqp_ssl_socket.h b/librabbitmq/amqp_ssl_socket.h index 602f243..b87233d 100644 --- a/librabbitmq/amqp_ssl_socket.h +++ b/librabbitmq/amqp_ssl_socket.h @@ -35,9 +35,9 @@ AMQP_BEGIN_DECLS /** * Create a new SSL/TLS socket object. * - * The returned socket object is owned by the \ref amqp_connection_state_t object - * and will be destroyed when the state object is destroyed or a new socket - * object is created. + * The returned socket object is owned by the \ref amqp_connection_state_t + * object and will be destroyed when the state object is destroyed or a new + * socket object is created. * * If the socket object creation fails, the \ref amqp_connection_state_t object * will not be changed. @@ -45,7 +45,8 @@ AMQP_BEGIN_DECLS * The object returned by this function can be retrieved from the * amqp_connection_state_t object later using the amqp_get_socket() function. * - * Calling this function may result in the underlying SSL library being initialized. + * Calling this function may result in the underlying SSL library being + * initialized. * \sa amqp_set_initialize_ssl_library() * * \param [in,out] state The connection object that owns the SSL/TLS socket @@ -54,9 +55,7 @@ AMQP_BEGIN_DECLS * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -amqp_socket_t * -AMQP_CALL -amqp_ssl_socket_new(amqp_connection_state_t state); +amqp_socket_t *AMQP_CALL amqp_ssl_socket_new(amqp_connection_state_t state); /** * Set the CA certificate. @@ -70,10 +69,8 @@ amqp_ssl_socket_new(amqp_connection_state_t state); * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_ssl_socket_set_cacert(amqp_socket_t *self, - const char *cacert); +int AMQP_CALL amqp_ssl_socket_set_cacert(amqp_socket_t *self, + const char *cacert); /** * Set the client key. @@ -88,11 +85,8 @@ amqp_ssl_socket_set_cacert(amqp_socket_t *self, * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_ssl_socket_set_key(amqp_socket_t *self, - const char *cert, - const char *key); +int AMQP_CALL amqp_ssl_socket_set_key(amqp_socket_t *self, const char *cert, + const char *key); /** * Set the client key from a buffer. @@ -108,12 +102,9 @@ amqp_ssl_socket_set_key(amqp_socket_t *self, * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_ssl_socket_set_key_buffer(amqp_socket_t *self, - const char *cert, - const void *key, - size_t n); +int AMQP_CALL amqp_ssl_socket_set_key_buffer(amqp_socket_t *self, + const char *cert, const void *key, + size_t n); /** * Enable or disable peer verification. @@ -130,12 +121,8 @@ amqp_ssl_socket_set_key_buffer(amqp_socket_t *self, * * \since v0.4.0 */ -AMQP_DEPRECATED( - AMQP_PUBLIC_FUNCTION - void - AMQP_CALL - amqp_ssl_socket_set_verify(amqp_socket_t *self, amqp_boolean_t verify) -); +AMQP_DEPRECATED(AMQP_PUBLIC_FUNCTION void AMQP_CALL amqp_ssl_socket_set_verify( + amqp_socket_t *self, amqp_boolean_t verify)); /** * Enable or disable peer verification. @@ -149,9 +136,8 @@ AMQP_DEPRECATED( * \since v0.8.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL -amqp_ssl_socket_set_verify_peer(amqp_socket_t *self, amqp_boolean_t verify); +void AMQP_CALL amqp_ssl_socket_set_verify_peer(amqp_socket_t *self, + amqp_boolean_t verify); /** * Enable or disable hostname verification. @@ -163,9 +149,8 @@ amqp_ssl_socket_set_verify_peer(amqp_socket_t *self, amqp_boolean_t verify); * \since v0.8.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL -amqp_ssl_socket_set_verify_hostname(amqp_socket_t *self, amqp_boolean_t verify); +void AMQP_CALL amqp_ssl_socket_set_verify_hostname(amqp_socket_t *self, + amqp_boolean_t verify); typedef enum { AMQP_TLSv1 = 1, @@ -191,11 +176,9 @@ typedef enum { * \since v0.8.0 */ AMQP_PUBLIC_FUNCTION -int -AMQP_CALL -amqp_ssl_socket_set_ssl_versions(amqp_socket_t *self, - amqp_tls_version_t min, - amqp_tls_version_t max); +int AMQP_CALL amqp_ssl_socket_set_ssl_versions(amqp_socket_t *self, + amqp_tls_version_t min, + amqp_tls_version_t max); /** * Sets whether rabbitmq-c initializes the underlying SSL library. @@ -222,9 +205,7 @@ amqp_ssl_socket_set_ssl_versions(amqp_socket_t *self, * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL -amqp_set_initialize_ssl_library(amqp_boolean_t do_initialize); +void AMQP_CALL amqp_set_initialize_ssl_library(amqp_boolean_t do_initialize); AMQP_END_DECLS diff --git a/librabbitmq/amqp_table.c b/librabbitmq/amqp_table.c index a170be2..5b61220 100644 --- a/librabbitmq/amqp_table.c +++ b/librabbitmq/amqp_table.c @@ -48,22 +48,16 @@ #define INITIAL_ARRAY_SIZE 16 #define INITIAL_TABLE_SIZE 16 -static int amqp_decode_field_value(amqp_bytes_t encoded, - amqp_pool_t *pool, - amqp_field_value_t *entry, - size_t *offset); +static int amqp_decode_field_value(amqp_bytes_t encoded, amqp_pool_t *pool, + amqp_field_value_t *entry, size_t *offset); static int amqp_encode_field_value(amqp_bytes_t encoded, - amqp_field_value_t *entry, - size_t *offset); + amqp_field_value_t *entry, size_t *offset); /*---------------------------------------------------------------------------*/ -static int amqp_decode_array(amqp_bytes_t encoded, - amqp_pool_t *pool, - amqp_array_t *output, - size_t *offset) -{ +static int amqp_decode_array(amqp_bytes_t encoded, amqp_pool_t *pool, + amqp_array_t *output, size_t *offset) { uint32_t arraysize; int num_entries = 0; int allocated_entries = INITIAL_ARRAY_SIZE; @@ -85,7 +79,8 @@ static int amqp_decode_array(amqp_bytes_t encoded, if (num_entries >= allocated_entries) { void *newentries; allocated_entries = allocated_entries * 2; - newentries = realloc(entries, allocated_entries * sizeof(amqp_field_value_t)); + newentries = + realloc(entries, allocated_entries * sizeof(amqp_field_value_t)); res = AMQP_STATUS_NO_MEMORY; if (newentries == NULL) { goto out; @@ -94,8 +89,7 @@ static int amqp_decode_array(amqp_bytes_t encoded, entries = newentries; } - res = amqp_decode_field_value(encoded, pool, &entries[num_entries], - offset); + res = amqp_decode_field_value(encoded, pool, &entries[num_entries], offset); if (res < 0) { goto out; } @@ -104,7 +98,8 @@ static int amqp_decode_array(amqp_bytes_t encoded, } output->num_entries = num_entries; - output->entries = amqp_pool_alloc(pool, num_entries * sizeof(amqp_field_value_t)); + output->entries = + amqp_pool_alloc(pool, num_entries * sizeof(amqp_field_value_t)); /* NULL is legitimate if we requested a zero-length block. */ if (output->entries == NULL) { if (num_entries == 0) { @@ -123,11 +118,8 @@ out: return res; } -int amqp_decode_table(amqp_bytes_t encoded, - amqp_pool_t *pool, - amqp_table_t *output, - size_t *offset) -{ +int amqp_decode_table(amqp_bytes_t encoded, amqp_pool_t *pool, + amqp_table_t *output, size_t *offset) { uint32_t tablesize; int num_entries = 0; amqp_table_entry_t *entries; @@ -156,7 +148,8 @@ int amqp_decode_table(amqp_bytes_t encoded, if (num_entries >= allocated_entries) { void *newentries; allocated_entries = allocated_entries * 2; - newentries = realloc(entries, allocated_entries * sizeof(amqp_table_entry_t)); + newentries = + realloc(entries, allocated_entries * sizeof(amqp_table_entry_t)); res = AMQP_STATUS_NO_MEMORY; if (newentries == NULL) { goto out; @@ -166,7 +159,8 @@ int amqp_decode_table(amqp_bytes_t encoded, } res = AMQP_STATUS_BAD_AMQP_DATA; - if (!amqp_decode_bytes(encoded, offset, &entries[num_entries].key, keylen)) { + if (!amqp_decode_bytes(encoded, offset, &entries[num_entries].key, + keylen)) { goto out; } @@ -180,7 +174,8 @@ int amqp_decode_table(amqp_bytes_t encoded, } output->num_entries = num_entries; - output->entries = amqp_pool_alloc(pool, num_entries * sizeof(amqp_table_entry_t)); + output->entries = + amqp_pool_alloc(pool, num_entries * sizeof(amqp_table_entry_t)); /* NULL is legitimate if we requested a zero-length block. */ if (output->entries == NULL) { if (num_entries == 0) { @@ -199,88 +194,93 @@ out: return res; } -static int amqp_decode_field_value(amqp_bytes_t encoded, - amqp_pool_t *pool, - amqp_field_value_t *entry, - size_t *offset) -{ +static int amqp_decode_field_value(amqp_bytes_t encoded, amqp_pool_t *pool, + amqp_field_value_t *entry, size_t *offset) { int res = AMQP_STATUS_BAD_AMQP_DATA; if (!amqp_decode_8(encoded, offset, &entry->kind)) { goto out; } -#define TRIVIAL_FIELD_DECODER(bits) if (!amqp_decode_##bits(encoded, offset, &entry->value.u##bits)) goto out; break -#define SIMPLE_FIELD_DECODER(bits, dest, how) { uint##bits##_t val; if (!amqp_decode_##bits(encoded, offset, &val)) goto out; entry->value.dest = how; } break +#define TRIVIAL_FIELD_DECODER(bits) \ + if (!amqp_decode_##bits(encoded, offset, &entry->value.u##bits)) goto out; \ + break +#define SIMPLE_FIELD_DECODER(bits, dest, how) \ + { \ + uint##bits##_t val; \ + if (!amqp_decode_##bits(encoded, offset, &val)) goto out; \ + entry->value.dest = how; \ + } \ + break switch (entry->kind) { - case AMQP_FIELD_KIND_BOOLEAN: - SIMPLE_FIELD_DECODER(8, boolean, val ? 1 : 0); - - case AMQP_FIELD_KIND_I8: - SIMPLE_FIELD_DECODER(8, i8, (int8_t)val); - case AMQP_FIELD_KIND_U8: - TRIVIAL_FIELD_DECODER(8); - - case AMQP_FIELD_KIND_I16: - SIMPLE_FIELD_DECODER(16, i16, (int16_t)val); - case AMQP_FIELD_KIND_U16: - TRIVIAL_FIELD_DECODER(16); - - case AMQP_FIELD_KIND_I32: - SIMPLE_FIELD_DECODER(32, i32, (int32_t)val); - case AMQP_FIELD_KIND_U32: - TRIVIAL_FIELD_DECODER(32); - - case AMQP_FIELD_KIND_I64: - SIMPLE_FIELD_DECODER(64, i64, (int64_t)val); - case AMQP_FIELD_KIND_U64: - TRIVIAL_FIELD_DECODER(64); - - case AMQP_FIELD_KIND_F32: - TRIVIAL_FIELD_DECODER(32); + case AMQP_FIELD_KIND_BOOLEAN: + SIMPLE_FIELD_DECODER(8, boolean, val ? 1 : 0); + + case AMQP_FIELD_KIND_I8: + SIMPLE_FIELD_DECODER(8, i8, (int8_t)val); + case AMQP_FIELD_KIND_U8: + TRIVIAL_FIELD_DECODER(8); + + case AMQP_FIELD_KIND_I16: + SIMPLE_FIELD_DECODER(16, i16, (int16_t)val); + case AMQP_FIELD_KIND_U16: + TRIVIAL_FIELD_DECODER(16); + + case AMQP_FIELD_KIND_I32: + SIMPLE_FIELD_DECODER(32, i32, (int32_t)val); + case AMQP_FIELD_KIND_U32: + TRIVIAL_FIELD_DECODER(32); + + case AMQP_FIELD_KIND_I64: + SIMPLE_FIELD_DECODER(64, i64, (int64_t)val); + case AMQP_FIELD_KIND_U64: + TRIVIAL_FIELD_DECODER(64); + + case AMQP_FIELD_KIND_F32: + TRIVIAL_FIELD_DECODER(32); /* and by punning, f32 magically gets the right value...! */ - case AMQP_FIELD_KIND_F64: - TRIVIAL_FIELD_DECODER(64); + case AMQP_FIELD_KIND_F64: + TRIVIAL_FIELD_DECODER(64); /* and by punning, f64 magically gets the right value...! */ - case AMQP_FIELD_KIND_DECIMAL: - if (!amqp_decode_8(encoded, offset, &entry->value.decimal.decimals) - || !amqp_decode_32(encoded, offset, &entry->value.decimal.value)) { - goto out; - } - break; + case AMQP_FIELD_KIND_DECIMAL: + if (!amqp_decode_8(encoded, offset, &entry->value.decimal.decimals) || + !amqp_decode_32(encoded, offset, &entry->value.decimal.value)) { + goto out; + } + break; - case AMQP_FIELD_KIND_UTF8: + case AMQP_FIELD_KIND_UTF8: /* AMQP_FIELD_KIND_UTF8 and AMQP_FIELD_KIND_BYTES have the same implementation, but different interpretations. */ /* fall through */ - case AMQP_FIELD_KIND_BYTES: { - uint32_t len; - if (!amqp_decode_32(encoded, offset, &len) - || !amqp_decode_bytes(encoded, offset, &entry->value.bytes, len)) { - goto out; + case AMQP_FIELD_KIND_BYTES: { + uint32_t len; + if (!amqp_decode_32(encoded, offset, &len) || + !amqp_decode_bytes(encoded, offset, &entry->value.bytes, len)) { + goto out; + } + break; } - break; - } - case AMQP_FIELD_KIND_ARRAY: - res = amqp_decode_array(encoded, pool, &(entry->value.array), offset); - goto out; + case AMQP_FIELD_KIND_ARRAY: + res = amqp_decode_array(encoded, pool, &(entry->value.array), offset); + goto out; - case AMQP_FIELD_KIND_TIMESTAMP: - TRIVIAL_FIELD_DECODER(64); + case AMQP_FIELD_KIND_TIMESTAMP: + TRIVIAL_FIELD_DECODER(64); - case AMQP_FIELD_KIND_TABLE: - res = amqp_decode_table(encoded, pool, &(entry->value.table), offset); - goto out; + case AMQP_FIELD_KIND_TABLE: + res = amqp_decode_table(encoded, pool, &(entry->value.table), offset); + goto out; - case AMQP_FIELD_KIND_VOID: - break; + case AMQP_FIELD_KIND_VOID: + break; - default: - goto out; + default: + goto out; } res = AMQP_STATUS_OK; @@ -291,10 +291,8 @@ out: /*---------------------------------------------------------------------------*/ -static int amqp_encode_array(amqp_bytes_t encoded, - amqp_array_t *input, - size_t *offset) -{ +static int amqp_encode_array(amqp_bytes_t encoded, amqp_array_t *input, + size_t *offset) { size_t start = *offset; int i, res; @@ -318,10 +316,8 @@ out: return res; } -int amqp_encode_table(amqp_bytes_t encoded, - amqp_table_t *input, - size_t *offset) -{ +int amqp_encode_table(amqp_bytes_t encoded, amqp_table_t *input, + size_t *offset) { size_t start = *offset; int i, res; @@ -356,90 +352,89 @@ out: } static int amqp_encode_field_value(amqp_bytes_t encoded, - amqp_field_value_t *entry, - size_t *offset) -{ + amqp_field_value_t *entry, size_t *offset) { int res = AMQP_STATUS_BAD_AMQP_DATA; if (!amqp_encode_8(encoded, offset, entry->kind)) { goto out; } -#define FIELD_ENCODER(bits, val) if (!amqp_encode_##bits(encoded, offset, val)) { \ - res = AMQP_STATUS_TABLE_TOO_BIG; \ - goto out; \ - } \ - break +#define FIELD_ENCODER(bits, val) \ + if (!amqp_encode_##bits(encoded, offset, val)) { \ + res = AMQP_STATUS_TABLE_TOO_BIG; \ + goto out; \ + } \ + break switch (entry->kind) { - case AMQP_FIELD_KIND_BOOLEAN: - FIELD_ENCODER(8, entry->value.boolean ? 1 : 0); - - case AMQP_FIELD_KIND_I8: - FIELD_ENCODER(8, entry->value.i8); - case AMQP_FIELD_KIND_U8: - FIELD_ENCODER(8, entry->value.u8); - - case AMQP_FIELD_KIND_I16: - FIELD_ENCODER(16, entry->value.i16); - case AMQP_FIELD_KIND_U16: - FIELD_ENCODER(16, entry->value.u16); - - case AMQP_FIELD_KIND_I32: - FIELD_ENCODER(32, entry->value.i32); - case AMQP_FIELD_KIND_U32: - FIELD_ENCODER(32, entry->value.u32); - - case AMQP_FIELD_KIND_I64: - FIELD_ENCODER(64, entry->value.i64); - case AMQP_FIELD_KIND_U64: - FIELD_ENCODER(64, entry->value.u64); - - case AMQP_FIELD_KIND_F32: - /* by punning, u32 magically gets the right value...! */ - FIELD_ENCODER(32, entry->value.u32); - - case AMQP_FIELD_KIND_F64: - /* by punning, u64 magically gets the right value...! */ - FIELD_ENCODER(64, entry->value.u64); - - case AMQP_FIELD_KIND_DECIMAL: - if (!amqp_encode_8(encoded, offset, entry->value.decimal.decimals) - || !amqp_encode_32(encoded, offset, entry->value.decimal.value)) { - res = AMQP_STATUS_TABLE_TOO_BIG; - goto out; - } - break; + case AMQP_FIELD_KIND_BOOLEAN: + FIELD_ENCODER(8, entry->value.boolean ? 1 : 0); + + case AMQP_FIELD_KIND_I8: + FIELD_ENCODER(8, entry->value.i8); + case AMQP_FIELD_KIND_U8: + FIELD_ENCODER(8, entry->value.u8); + + case AMQP_FIELD_KIND_I16: + FIELD_ENCODER(16, entry->value.i16); + case AMQP_FIELD_KIND_U16: + FIELD_ENCODER(16, entry->value.u16); + + case AMQP_FIELD_KIND_I32: + FIELD_ENCODER(32, entry->value.i32); + case AMQP_FIELD_KIND_U32: + FIELD_ENCODER(32, entry->value.u32); + + case AMQP_FIELD_KIND_I64: + FIELD_ENCODER(64, entry->value.i64); + case AMQP_FIELD_KIND_U64: + FIELD_ENCODER(64, entry->value.u64); + + case AMQP_FIELD_KIND_F32: + /* by punning, u32 magically gets the right value...! */ + FIELD_ENCODER(32, entry->value.u32); + + case AMQP_FIELD_KIND_F64: + /* by punning, u64 magically gets the right value...! */ + FIELD_ENCODER(64, entry->value.u64); + + case AMQP_FIELD_KIND_DECIMAL: + if (!amqp_encode_8(encoded, offset, entry->value.decimal.decimals) || + !amqp_encode_32(encoded, offset, entry->value.decimal.value)) { + res = AMQP_STATUS_TABLE_TOO_BIG; + goto out; + } + break; - case AMQP_FIELD_KIND_UTF8: + case AMQP_FIELD_KIND_UTF8: /* AMQP_FIELD_KIND_UTF8 and AMQP_FIELD_KIND_BYTES have the same implementation, but different interpretations. */ /* fall through */ - case AMQP_FIELD_KIND_BYTES: - if (!amqp_encode_32(encoded, offset, (uint32_t)entry->value.bytes.len) - || !amqp_encode_bytes(encoded, offset, entry->value.bytes)) { - res = AMQP_STATUS_TABLE_TOO_BIG; - goto out; - } - break; + case AMQP_FIELD_KIND_BYTES: + if (!amqp_encode_32(encoded, offset, (uint32_t)entry->value.bytes.len) || + !amqp_encode_bytes(encoded, offset, entry->value.bytes)) { + res = AMQP_STATUS_TABLE_TOO_BIG; + goto out; + } + break; - case AMQP_FIELD_KIND_ARRAY: - res = amqp_encode_array(encoded, &entry->value.array, offset); - goto out; + case AMQP_FIELD_KIND_ARRAY: + res = amqp_encode_array(encoded, &entry->value.array, offset); + goto out; - case AMQP_FIELD_KIND_TIMESTAMP: - FIELD_ENCODER(64, entry->value.u64); + case AMQP_FIELD_KIND_TIMESTAMP: + FIELD_ENCODER(64, entry->value.u64); - case AMQP_FIELD_KIND_TABLE: - res = amqp_encode_table(encoded, &entry->value.table, offset); - goto out; + case AMQP_FIELD_KIND_TABLE: + res = amqp_encode_table(encoded, &entry->value.table, offset); + goto out; - case AMQP_FIELD_KIND_VOID: - break; + case AMQP_FIELD_KIND_VOID: + break; - default: - res = AMQP_STATUS_INVALID_PARAMETER; - goto out; + default: + res = AMQP_STATUS_INVALID_PARAMETER; + goto out; } res = AMQP_STATUS_OK; @@ -450,10 +445,9 @@ out: /*---------------------------------------------------------------------------*/ -int amqp_table_entry_cmp(void const *entry1, void const *entry2) -{ - amqp_table_entry_t const *p1 = (amqp_table_entry_t const *) entry1; - amqp_table_entry_t const *p2 = (amqp_table_entry_t const *) entry2; +int amqp_table_entry_cmp(void const *entry1, void const *entry2) { + amqp_table_entry_t const *p1 = (amqp_table_entry_t const *)entry1; + amqp_table_entry_t const *p2 = (amqp_table_entry_t const *)entry2; int d; size_t minlen; @@ -471,9 +465,9 @@ int amqp_table_entry_cmp(void const *entry1, void const *entry2) return (int)p1->key.len - (int)p2->key.len; } -static int -amqp_field_value_clone(const amqp_field_value_t *original, amqp_field_value_t *clone, amqp_pool_t *pool) -{ +static int amqp_field_value_clone(const amqp_field_value_t *original, + amqp_field_value_t *clone, + amqp_pool_t *pool) { int i; int res; clone->kind = original->kind; @@ -533,11 +527,13 @@ amqp_field_value_clone(const amqp_field_value_t *original, amqp_field_value_t *c if (0 == original->value.bytes.len) { clone->value.bytes = amqp_empty_bytes; } else { - amqp_pool_alloc_bytes(pool, original->value.bytes.len, &clone->value.bytes); + amqp_pool_alloc_bytes(pool, original->value.bytes.len, + &clone->value.bytes); if (NULL == clone->value.bytes.bytes) { return AMQP_STATUS_NO_MEMORY; } - memcpy(clone->value.bytes.bytes, original->value.bytes.bytes, clone->value.bytes.len); + memcpy(clone->value.bytes.bytes, original->value.bytes.bytes, + clone->value.bytes.len); } break; @@ -546,13 +542,15 @@ amqp_field_value_clone(const amqp_field_value_t *original, amqp_field_value_t *c clone->value.array = amqp_empty_array; } else { clone->value.array.num_entries = original->value.array.num_entries; - clone->value.array.entries = amqp_pool_alloc(pool, clone->value.array.num_entries * sizeof(amqp_field_value_t)); + clone->value.array.entries = amqp_pool_alloc( + pool, clone->value.array.num_entries * sizeof(amqp_field_value_t)); if (NULL == clone->value.array.entries) { return AMQP_STATUS_NO_MEMORY; } for (i = 0; i < clone->value.array.num_entries; ++i) { - res = amqp_field_value_clone(&original->value.array.entries[i], &clone->value.array.entries[i], pool); + res = amqp_field_value_clone(&original->value.array.entries[i], + &clone->value.array.entries[i], pool); if (AMQP_STATUS_OK != res) { return res; } @@ -561,7 +559,8 @@ amqp_field_value_clone(const amqp_field_value_t *original, amqp_field_value_t *c break; case AMQP_FIELD_KIND_TABLE: - return amqp_table_clone(&original->value.table, &clone->value.table, pool); + return amqp_table_clone(&original->value.table, &clone->value.table, + pool); case AMQP_FIELD_KIND_VOID: break; @@ -573,10 +572,9 @@ amqp_field_value_clone(const amqp_field_value_t *original, amqp_field_value_t *c return AMQP_STATUS_OK; } - -static int -amqp_table_entry_clone(const amqp_table_entry_t *original, amqp_table_entry_t *clone, amqp_pool_t *pool) -{ +static int amqp_table_entry_clone(const amqp_table_entry_t *original, + amqp_table_entry_t *clone, + amqp_pool_t *pool) { if (0 == original->key.len) { return AMQP_STATUS_INVALID_PARAMETER; } @@ -591,9 +589,8 @@ amqp_table_entry_clone(const amqp_table_entry_t *original, amqp_table_entry_t *c return amqp_field_value_clone(&original->value, &clone->value, pool); } -int -amqp_table_clone(const amqp_table_t *original, amqp_table_t *clone, amqp_pool_t *pool) -{ +int amqp_table_clone(const amqp_table_t *original, amqp_table_t *clone, + amqp_pool_t *pool) { int i; int res; clone->num_entries = original->num_entries; @@ -602,14 +599,16 @@ amqp_table_clone(const amqp_table_t *original, amqp_table_t *clone, amqp_pool_t return AMQP_STATUS_OK; } - clone->entries = amqp_pool_alloc(pool, clone->num_entries * sizeof(amqp_table_entry_t)); + clone->entries = + amqp_pool_alloc(pool, clone->num_entries * sizeof(amqp_table_entry_t)); if (NULL == clone->entries) { return AMQP_STATUS_NO_MEMORY; } for (i = 0; i < clone->num_entries; ++i) { - res = amqp_table_entry_clone(&original->entries[i], &clone->entries[i], pool); + res = + amqp_table_entry_clone(&original->entries[i], &clone->entries[i], pool); if (AMQP_STATUS_OK != res) { goto error_out1; } diff --git a/librabbitmq/amqp_table.h b/librabbitmq/amqp_table.h index 8bb2cd2..7b009a9 100644 --- a/librabbitmq/amqp_table.h +++ b/librabbitmq/amqp_table.h @@ -78,4 +78,4 @@ amqp_table_entry_t amqp_table_construct_bool_entry(const char *key, amqp_table_entry_t *amqp_table_get_entry_by_key(const amqp_table_t *table, const amqp_bytes_t key); -#endif /* AMQP_TABLE_H */ +#endif /* AMQP_TABLE_H */ diff --git a/librabbitmq/amqp_tcp_socket.c b/librabbitmq/amqp_tcp_socket.c index f0b63b3..12e02cd 100644 --- a/librabbitmq/amqp_tcp_socket.c +++ b/librabbitmq/amqp_tcp_socket.c @@ -29,14 +29,14 @@ #include <errno.h> #if ((defined(_WIN32)) || (defined(__MINGW32__)) || (defined(__MINGW64__))) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include <winsock2.h> +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <winsock2.h> #else -# include <sys/socket.h> -# include <netinet/in.h> -# include <netinet/tcp.h> +#include <netinet/in.h> +#include <netinet/tcp.h> +#include <sys/socket.h> #endif #include <stdio.h> #include <stdlib.h> @@ -48,10 +48,8 @@ struct amqp_tcp_socket_t { int state; }; - -static ssize_t -amqp_tcp_socket_send(void *base, const void *buf, size_t len, int flags) -{ +static ssize_t amqp_tcp_socket_send(void *base, const void *buf, size_t len, + int flags) { struct amqp_tcp_socket_t *self = (struct amqp_tcp_socket_t *)base; ssize_t res; int flagz = 0; @@ -68,8 +66,8 @@ amqp_tcp_socket_send(void *base, const void *buf, size_t len, int flags) if (flags & AMQP_SF_MORE) { flagz |= MSG_MORE; } - /* Cygwin defines TCP_NOPUSH, but trying to use it will return not - * implemented. Disable it here. */ +/* Cygwin defines TCP_NOPUSH, but trying to use it will return not + * implemented. Disable it here. */ #elif defined(TCP_NOPUSH) && !defined(__CYGWIN__) if (flags & AMQP_SF_MORE && !(self->state & AMQP_SF_MORE)) { int one = 1; @@ -80,14 +78,15 @@ amqp_tcp_socket_send(void *base, const void *buf, size_t len, int flags) } self->state |= AMQP_SF_MORE; } else if (!(flags & AMQP_SF_MORE) && self->state & AMQP_SF_MORE) { - int zero = 0; - res = setsockopt(self->sockfd, IPPROTO_TCP, TCP_NOPUSH, &zero, sizeof(&zero)); - if (0 != res) { - self->internal_error = res; - res = AMQP_STATUS_SOCKET_ERROR; - } else { - self->state &= ~AMQP_SF_MORE; - } + int zero = 0; + res = + setsockopt(self->sockfd, IPPROTO_TCP, TCP_NOPUSH, &zero, sizeof(&zero)); + if (0 != res) { + self->internal_error = res; + res = AMQP_STATUS_SOCKET_ERROR; + } else { + self->state &= ~AMQP_SF_MORE; + } } #endif @@ -123,9 +122,8 @@ start: return res; } -static ssize_t -amqp_tcp_socket_recv(void *base, void *buf, size_t len, int flags) -{ +static ssize_t amqp_tcp_socket_recv(void *base, void *buf, size_t len, + int flags) { struct amqp_tcp_socket_t *self = (struct amqp_tcp_socket_t *)base; ssize_t ret; if (-1 == self->sockfd) { @@ -164,9 +162,8 @@ start: return ret; } -static int -amqp_tcp_socket_open(void *base, const char *host, int port, struct timeval *timeout) -{ +static int amqp_tcp_socket_open(void *base, const char *host, int port, + struct timeval *timeout) { struct amqp_tcp_socket_t *self = (struct amqp_tcp_socket_t *)base; if (-1 != self->sockfd) { return AMQP_STATUS_SOCKET_INUSE; @@ -180,9 +177,8 @@ amqp_tcp_socket_open(void *base, const char *host, int port, struct timeval *tim return AMQP_STATUS_OK; } -static int -amqp_tcp_socket_close(void *base, AMQP_UNUSED amqp_socket_close_enum force) -{ +static int amqp_tcp_socket_close(void *base, + AMQP_UNUSED amqp_socket_close_enum force) { struct amqp_tcp_socket_t *self = (struct amqp_tcp_socket_t *)base; if (-1 == self->sockfd) { return AMQP_STATUS_SOCKET_CLOSED; @@ -196,16 +192,12 @@ amqp_tcp_socket_close(void *base, AMQP_UNUSED amqp_socket_close_enum force) return AMQP_STATUS_OK; } -static int -amqp_tcp_socket_get_sockfd(void *base) -{ +static int amqp_tcp_socket_get_sockfd(void *base) { struct amqp_tcp_socket_t *self = (struct amqp_tcp_socket_t *)base; return self->sockfd; } -static void -amqp_tcp_socket_delete(void *base) -{ +static void amqp_tcp_socket_delete(void *base) { struct amqp_tcp_socket_t *self = (struct amqp_tcp_socket_t *)base; if (self) { @@ -215,17 +207,15 @@ amqp_tcp_socket_delete(void *base) } static const struct amqp_socket_class_t amqp_tcp_socket_class = { - amqp_tcp_socket_send, /* send */ - amqp_tcp_socket_recv, /* recv */ - amqp_tcp_socket_open, /* open */ - amqp_tcp_socket_close, /* close */ - amqp_tcp_socket_get_sockfd, /* get_sockfd */ - amqp_tcp_socket_delete /* delete */ + amqp_tcp_socket_send, /* send */ + amqp_tcp_socket_recv, /* recv */ + amqp_tcp_socket_open, /* open */ + amqp_tcp_socket_close, /* close */ + amqp_tcp_socket_get_sockfd, /* get_sockfd */ + amqp_tcp_socket_delete /* delete */ }; -amqp_socket_t * -amqp_tcp_socket_new(amqp_connection_state_t state) -{ +amqp_socket_t *amqp_tcp_socket_new(amqp_connection_state_t state) { struct amqp_tcp_socket_t *self = calloc(1, sizeof(*self)); if (!self) { return NULL; @@ -238,9 +228,7 @@ amqp_tcp_socket_new(amqp_connection_state_t state) return (amqp_socket_t *)self; } -void -amqp_tcp_socket_set_sockfd(amqp_socket_t *base, int sockfd) -{ +void amqp_tcp_socket_set_sockfd(amqp_socket_t *base, int sockfd) { struct amqp_tcp_socket_t *self; if (base->klass != &amqp_tcp_socket_class) { amqp_abort("<%p> is not of type amqp_tcp_socket_t", base); diff --git a/librabbitmq/amqp_tcp_socket.h b/librabbitmq/amqp_tcp_socket.h index dec0c1e..3e9d82f 100644 --- a/librabbitmq/amqp_tcp_socket.h +++ b/librabbitmq/amqp_tcp_socket.h @@ -46,9 +46,7 @@ AMQP_BEGIN_DECLS * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -amqp_socket_t * -AMQP_CALL -amqp_tcp_socket_new(amqp_connection_state_t state); +amqp_socket_t *AMQP_CALL amqp_tcp_socket_new(amqp_connection_state_t state); /** * Assign an open file descriptor to a socket object. @@ -63,9 +61,7 @@ amqp_tcp_socket_new(amqp_connection_state_t state); * \since v0.4.0 */ AMQP_PUBLIC_FUNCTION -void -AMQP_CALL -amqp_tcp_socket_set_sockfd(amqp_socket_t *self, int sockfd); +void AMQP_CALL amqp_tcp_socket_set_sockfd(amqp_socket_t *self, int sockfd); AMQP_END_DECLS diff --git a/librabbitmq/amqp_time.c b/librabbitmq/amqp_time.c index 5764695..7b0a42d 100644 --- a/librabbitmq/amqp_time.c +++ b/librabbitmq/amqp_time.c @@ -20,30 +20,28 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ -#include "amqp.h" #include "amqp_time.h" +#include "amqp.h" #include <assert.h> #include <limits.h> #include <string.h> -#if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__) || defined(__MINGW64__)) -# define AMQP_WIN_TIMER_API +#if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || \ + defined(__MINGW32__) || defined(__MINGW64__)) +#define AMQP_WIN_TIMER_API #elif (defined(machintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) -# define AMQP_MAC_TIMER_API +#define AMQP_MAC_TIMER_API #else -# define AMQP_POSIX_TIMER_API +#define AMQP_POSIX_TIMER_API #endif - #ifdef AMQP_WIN_TIMER_API #ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN #endif #include <windows.h> -uint64_t -amqp_get_monotonic_timestamp(void) -{ +uint64_t amqp_get_monotonic_timestamp(void) { static double NS_PER_COUNT = 0; LARGE_INTEGER perf_count; @@ -64,11 +62,9 @@ amqp_get_monotonic_timestamp(void) #endif /* AMQP_WIN_TIMER_API */ #ifdef AMQP_MAC_TIMER_API -# include <mach/mach_time.h> +#include <mach/mach_time.h> -uint64_t -amqp_get_monotonic_timestamp(void) -{ +uint64_t amqp_get_monotonic_timestamp(void) { static mach_timebase_info_data_t s_timebase = {0, 0}; uint64_t timestamp; @@ -91,9 +87,7 @@ amqp_get_monotonic_timestamp(void) #ifdef AMQP_POSIX_TIMER_API #include <time.h> -uint64_t -amqp_get_monotonic_timestamp(void) -{ +uint64_t amqp_get_monotonic_timestamp(void) { #ifdef __hpux return (uint64_t)gethrtime(); #else diff --git a/librabbitmq/amqp_time.h b/librabbitmq/amqp_time.h index 216b663..194bf67 100644 --- a/librabbitmq/amqp_time.h +++ b/librabbitmq/amqp_time.h @@ -26,20 +26,20 @@ #include <stdint.h> #if ((defined(_WIN32)) || (defined(__MINGW32__)) || (defined(__MINGW64__))) -# ifndef WINVER -# define WINVER 0x0502 -# endif -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include <winsock2.h> +#ifndef WINVER +#define WINVER 0x0502 +#endif +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <winsock2.h> #else -# include <sys/time.h> +#include <sys/time.h> #endif -#define AMQP_MS_PER_S 1000 +#define AMQP_MS_PER_S 1000 #define AMQP_US_PER_MS 1000 -#define AMQP_NS_PER_S 1000000000 +#define AMQP_NS_PER_S 1000000000 #define AMQP_NS_PER_MS 1000000 #define AMQP_NS_PER_US 1000 @@ -53,9 +53,7 @@ * - UINT64_MAX: means 'at infinity', its mean for polls with an infinite * timeout */ -typedef struct amqp_time_t_ { - uint64_t time_point_ns; -} amqp_time_t; +typedef struct amqp_time_t_ { uint64_t time_point_ns; } amqp_time_t; /* Gets a monotonic timestamp. This will return 0 if the underlying call to the * system fails. diff --git a/librabbitmq/amqp_url.c b/librabbitmq/amqp_url.c index bbfe396..b5304e5 100644 --- a/librabbitmq/amqp_url.c +++ b/librabbitmq/amqp_url.c @@ -38,7 +38,7 @@ #endif #ifdef _MSC_VER -# define _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS #endif #include "amqp_private.h" @@ -48,8 +48,7 @@ #include <stdlib.h> #include <string.h> -void amqp_default_connection_info(struct amqp_connection_info *ci) -{ +void amqp_default_connection_info(struct amqp_connection_info *ci) { /* Apply defaults */ ci->user = "guest"; ci->password = "guest"; @@ -60,8 +59,7 @@ void amqp_default_connection_info(struct amqp_connection_info *ci) } /* Scan for the next delimiter, handling percent-encodings on the way. */ -static char find_delim(char **pp, int colon_and_at_sign_are_delims) -{ +static char find_delim(char **pp, int colon_and_at_sign_are_delims) { char *from = *pp; char *to = from; @@ -69,51 +67,50 @@ static char find_delim(char **pp, int colon_and_at_sign_are_delims) char ch = *from++; switch (ch) { - case ':': - case '@': - if (!colon_and_at_sign_are_delims) { - *to++ = ch; - break; - } + case ':': + case '@': + if (!colon_and_at_sign_are_delims) { + *to++ = ch; + break; + } /* fall through */ - case 0: - case '/': - case '?': - case '#': - case '[': - case ']': - *to = 0; - *pp = from; - return ch; - - case '%': { - unsigned int val; - int chars; - int res = sscanf(from, "%2x%n", &val, &chars); - - if (res == EOF || res < 1 || chars != 2 || val > CHAR_MAX) + case 0: + case '/': + case '?': + case '#': + case '[': + case ']': + *to = 0; + *pp = from; + return ch; + + case '%': { + unsigned int val; + int chars; + int res = sscanf(from, "%2x%n", &val, &chars); + + if (res == EOF || res < 1 || chars != 2 || val > CHAR_MAX) /* Return a surprising delimiter to force an error. */ - { - return '%'; - } + { + return '%'; + } - *to++ = (char)val; - from += 2; - break; - } + *to++ = (char)val; + from += 2; + break; + } - default: - *to++ = ch; - break; + default: + *to++ = ch; + break; } } } /* Parse an AMQP URL into its component parts. */ -int amqp_parse_url(char *url, struct amqp_connection_info *parsed) -{ +int amqp_parse_url(char *url, struct amqp_connection_info *parsed) { int res = AMQP_STATUS_BAD_URL; char delim; char *start; @@ -216,8 +213,7 @@ int amqp_parse_url(char *url, struct amqp_connection_info *parsed) res = AMQP_STATUS_OK; } - /* Any other delimiter is bad, and we will return - AMQP_STATUS_BAD_AMQP_URL. */ +/* Any other delimiter is bad, and we will return AMQP_STATUS_BAD_AMQP_URL. */ out: return res; diff --git a/librabbitmq/win32/msinttypes/stdint.h b/librabbitmq/win32/msinttypes/stdint.h index d02608a..a7437be 100644 --- a/librabbitmq/win32/msinttypes/stdint.h +++ b/librabbitmq/win32/msinttypes/stdint.h @@ -1,39 +1,39 @@ // ISO C9x compliant stdint.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// // Copyright (c) 2006-2008 Alexander Chemeris -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: -// +// // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. -// +// // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. -// +// // 3. The name of the author may be used to endorse or promote products // derived from this software without specific prior written permission. -// +// // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// +// /////////////////////////////////////////////////////////////////////////////// -#ifndef _MSC_VER // [ +#ifndef _MSC_VER // [ #error "Use this header only with Microsoft Visual C++ compilers!" -#endif // _MSC_VER ] +#endif // _MSC_VER ] -#ifndef _MSC_STDINT_H_ // [ +#ifndef _MSC_STDINT_H_ // [ #define _MSC_STDINT_H_ #if _MSC_VER > 1000 @@ -49,20 +49,19 @@ #ifdef __cplusplus extern "C" { #endif -# include <wchar.h> +#include <wchar.h> #ifdef __cplusplus } #endif // Define _W64 macros to mark types changing their size, like intptr_t. #ifndef _W64 -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif +#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +#define _W64 __w64 +#else +#define _W64 +#endif #endif - // 7.18.1 Integer types @@ -72,176 +71,175 @@ extern "C" { // realize that, e.g. char has the same size as __int8 // so we give up on __intX for them. #if (_MSC_VER < 1300) - typedef signed char int8_t; - typedef signed short int16_t; - typedef signed int int32_t; - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; +typedef signed char int8_t; +typedef signed short int16_t; +typedef signed int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; #else - typedef signed __int8 int8_t; - typedef signed __int16 int16_t; - typedef signed __int32 int32_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; +typedef signed __int8 int8_t; +typedef signed __int16 int16_t; +typedef signed __int32 int32_t; +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; #endif -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; - +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; // 7.18.1.2 Minimum-width integer types -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -typedef int64_t int_least64_t; -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -typedef uint64_t uint_least64_t; +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; // 7.18.1.3 Fastest minimum-width integer types -typedef int8_t int_fast8_t; -typedef int16_t int_fast16_t; -typedef int32_t int_fast32_t; -typedef int64_t int_fast64_t; -typedef uint8_t uint_fast8_t; -typedef uint16_t uint_fast16_t; -typedef uint32_t uint_fast32_t; -typedef uint64_t uint_fast64_t; +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; // 7.18.1.4 Integer types capable of holding object pointers -#ifdef _WIN64 // [ - typedef signed __int64 intptr_t; - typedef unsigned __int64 uintptr_t; -#else // _WIN64 ][ - typedef _W64 signed int intptr_t; - typedef _W64 unsigned int uintptr_t; -#endif // _WIN64 ] +#ifdef _WIN64 // [ +typedef signed __int64 intptr_t; +typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ +typedef _W64 signed int intptr_t; +typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] // 7.18.1.5 Greatest-width integer types -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; - +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; // 7.18.2 Limits of specified-width integer types -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 +#if !defined(__cplusplus) || \ + defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and + // footnote 221 at page 259 // 7.18.2.1 Limits of exact-width integer types -#define INT8_MIN ((int8_t)_I8_MIN) -#define INT8_MAX _I8_MAX -#define INT16_MIN ((int16_t)_I16_MIN) -#define INT16_MAX _I16_MAX -#define INT32_MIN ((int32_t)_I32_MIN) -#define INT32_MAX _I32_MAX -#define INT64_MIN ((int64_t)_I64_MIN) -#define INT64_MAX _I64_MAX -#define UINT8_MAX _UI8_MAX -#define UINT16_MAX _UI16_MAX -#define UINT32_MAX _UI32_MAX -#define UINT64_MAX _UI64_MAX +#define INT8_MIN ((int8_t)_I8_MIN) +#define INT8_MAX _I8_MAX +#define INT16_MIN ((int16_t)_I16_MIN) +#define INT16_MAX _I16_MAX +#define INT32_MIN ((int32_t)_I32_MIN) +#define INT32_MAX _I32_MAX +#define INT64_MIN ((int64_t)_I64_MIN) +#define INT64_MAX _I64_MAX +#define UINT8_MAX _UI8_MAX +#define UINT16_MAX _UI16_MAX +#define UINT32_MAX _UI32_MAX +#define UINT64_MAX _UI64_MAX // 7.18.2.2 Limits of minimum-width integer types -#define INT_LEAST8_MIN INT8_MIN -#define INT_LEAST8_MAX INT8_MAX -#define INT_LEAST16_MIN INT16_MIN -#define INT_LEAST16_MAX INT16_MAX -#define INT_LEAST32_MIN INT32_MIN -#define INT_LEAST32_MAX INT32_MAX -#define INT_LEAST64_MIN INT64_MIN -#define INT_LEAST64_MAX INT64_MAX -#define UINT_LEAST8_MAX UINT8_MAX -#define UINT_LEAST16_MAX UINT16_MAX -#define UINT_LEAST32_MAX UINT32_MAX -#define UINT_LEAST64_MAX UINT64_MAX +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX // 7.18.2.3 Limits of fastest minimum-width integer types -#define INT_FAST8_MIN INT8_MIN -#define INT_FAST8_MAX INT8_MAX -#define INT_FAST16_MIN INT16_MIN -#define INT_FAST16_MAX INT16_MAX -#define INT_FAST32_MIN INT32_MIN -#define INT_FAST32_MAX INT32_MAX -#define INT_FAST64_MIN INT64_MIN -#define INT_FAST64_MAX INT64_MAX -#define UINT_FAST8_MAX UINT8_MAX -#define UINT_FAST16_MAX UINT16_MAX -#define UINT_FAST32_MAX UINT32_MAX -#define UINT_FAST64_MAX UINT64_MAX +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX // 7.18.2.4 Limits of integer types capable of holding object pointers -#ifdef _WIN64 // [ -# define INTPTR_MIN INT64_MIN -# define INTPTR_MAX INT64_MAX -# define UINTPTR_MAX UINT64_MAX -#else // _WIN64 ][ -# define INTPTR_MIN INT32_MIN -# define INTPTR_MAX INT32_MAX -# define UINTPTR_MAX UINT32_MAX -#endif // _WIN64 ] +#ifdef _WIN64 // [ +#define INTPTR_MIN INT64_MIN +#define INTPTR_MAX INT64_MAX +#define UINTPTR_MAX UINT64_MAX +#else // _WIN64 ][ +#define INTPTR_MIN INT32_MIN +#define INTPTR_MAX INT32_MAX +#define UINTPTR_MAX UINT32_MAX +#endif // _WIN64 ] // 7.18.2.5 Limits of greatest-width integer types -#define INTMAX_MIN INT64_MIN -#define INTMAX_MAX INT64_MAX -#define UINTMAX_MAX UINT64_MAX +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX // 7.18.3 Limits of other integer types -#ifdef _WIN64 // [ -# define PTRDIFF_MIN _I64_MIN -# define PTRDIFF_MAX _I64_MAX +#ifdef _WIN64 // [ +#define PTRDIFF_MIN _I64_MIN +#define PTRDIFF_MAX _I64_MAX #else // _WIN64 ][ -# define PTRDIFF_MIN _I32_MIN -# define PTRDIFF_MAX _I32_MAX +#define PTRDIFF_MIN _I32_MIN +#define PTRDIFF_MAX _I32_MAX #endif // _WIN64 ] -#define SIG_ATOMIC_MIN INT_MIN -#define SIG_ATOMIC_MAX INT_MAX +#define SIG_ATOMIC_MIN INT_MIN +#define SIG_ATOMIC_MAX INT_MAX -#ifndef SIZE_MAX // [ -# ifdef _WIN64 // [ -# define SIZE_MAX _UI64_MAX -# else // _WIN64 ][ -# define SIZE_MAX _UI32_MAX -# endif // _WIN64 ] -#endif // SIZE_MAX ] +#ifndef SIZE_MAX // [ +#ifdef _WIN64 // [ +#define SIZE_MAX _UI64_MAX +#else // _WIN64 ][ +#define SIZE_MAX _UI32_MAX +#endif // _WIN64 ] +#endif // SIZE_MAX ] // WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> -#ifndef WCHAR_MIN // [ -# define WCHAR_MIN 0 -#endif // WCHAR_MIN ] -#ifndef WCHAR_MAX // [ -# define WCHAR_MAX _UI16_MAX +#ifndef WCHAR_MIN // [ +#define WCHAR_MIN 0 +#endif // WCHAR_MIN ] +#ifndef WCHAR_MAX // [ +#define WCHAR_MAX _UI16_MAX #endif // WCHAR_MAX ] -#define WINT_MIN 0 -#define WINT_MAX _UI16_MAX - -#endif // __STDC_LIMIT_MACROS ] +#define WINT_MIN 0 +#define WINT_MAX _UI16_MAX +#endif // __STDC_LIMIT_MACROS ] // 7.18.4 Limits of other integer types -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 +#if !defined(__cplusplus) || \ + defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 // 7.18.4.1 Macros for minimum-width integer constants -#define INT8_C(val) val##i8 +#define INT8_C(val) val##i8 #define INT16_C(val) val##i16 #define INT32_C(val) val##i32 #define INT64_C(val) val##i64 -#define UINT8_C(val) val##ui8 +#define UINT8_C(val) val##ui8 #define UINT16_C(val) val##ui16 #define UINT32_C(val) val##ui32 #define UINT64_C(val) val##ui64 // 7.18.4.2 Macros for greatest-width integer constants -#define INTMAX_C INT64_C -#define UINTMAX_C UINT64_C - -#endif // __STDC_CONSTANT_MACROS ] +#define INTMAX_C INT64_C +#define UINTMAX_C UINT64_C +#endif // __STDC_CONSTANT_MACROS ] -#endif // _MSC_STDINT_H_ ] +#endif // _MSC_STDINT_H_ ] diff --git a/librabbitmq/win32/threads.h b/librabbitmq/win32/threads.h index c0a2561..5862df4 100644 --- a/librabbitmq/win32/threads.h +++ b/librabbitmq/win32/threads.h @@ -28,11 +28,11 @@ #define AMQP_THREAD_H #ifndef WINVER - /* Windows Vista or newer */ -# define WINVER 0x0600 +/* Windows Vista or newer */ +#define WINVER 0x0600 #endif #ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN #endif #include <windows.h> |