23#define BUFFER_SIZE (128*1024)
48 crm_err(
"IPC message without header");
52 crm_err(
"Filtering incompatible v%d IPC message (only versions <= %d supported)",
62 switch (client_type) {
119 CRM_CHECK(full_header->
qb.id == header->
qb.id,
return EBADMSG);
120 g_byte_array_append(*buffer, payload, header->
size);
122 crm_trace(
"Received IPC message %" PRId32
" (final part %" PRIu16
") of %"
132 CRM_CHECK(buffer != NULL && *buffer == NULL,
return EINVAL);
133 *buffer = g_byte_array_new();
144 g_byte_array_append(*buffer,
data,
155 CRM_CHECK(buffer != NULL && *buffer != NULL,
return EINVAL);
156 CRM_CHECK(full_header->
qb.id == header->
qb.id,
return EBADMSG);
157 g_byte_array_append(*buffer, payload, header->
size - 1);
160 crm_trace(
"Received IPC message %" PRId32
" (part %" PRIu16
") of %"
171 CRM_CHECK(buffer != NULL && *buffer == NULL,
return EINVAL);
172 *buffer = g_byte_array_new();
173 g_byte_array_append(*buffer,
data,
176 crm_trace(
"Received IPC message %" PRId32
" of %" PRId32
" bytes",
177 header->
qb.id, header->
qb.size);
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
struct pcmk__ipc_header_s pcmk__ipc_header_t
#define PCMK__IPC_VERSION
@ crm_ipc_multipart
This is a multi-part IPC message.
@ crm_ipc_multipart_end
This is the end of a multi-part IPC message.
int pcmk__ipc_msg_append(GByteArray **buffer, guint8 *data)
const char * pcmk__client_type_str(uint64_t client_type)
unsigned int crm_ipc_default_buffer_size(void)
Return pacemaker's IPC buffer size.
bool pcmk__valid_ipc_header(const pcmk__ipc_header_t *header)
@ pcmk__client_ipc
Client uses plain IPC.
@ pcmk__client_tls
Client uses TCP with TLS.
@ pcmk__client_tcp
Client uses TCP connection.
#define pcmk__clear_ipc_flags(ipc_flags, ipc_name, flags_to_clear)
#define CRM_CHECK(expr, failure_action)
#define crm_err(fmt, args...)
#define crm_trace(fmt, args...)
Wrappers for and extensions to libxml2.