10 #ifndef CRM_COMMON_IPCS__H
11 # define CRM_COMMON_IPCS__H
18 # include <qb/qbipcs.h>
19 # ifdef HAVE_GNUTLS_GNUTLS_H
21 # include <gnutls/gnutls.h>
32 # ifdef HAVE_GNUTLS_GNUTLS_H
51 # ifdef HAVE_GNUTLS_GNUTLS_H
53 bool tls_handshake_complete;
88 qb_ipcs_connection_t *
ipcs;
114 uint32_t request, uint32_t
flags,
const char *tag);
115 #define pcmk__ipc_send_ack(c, req, flags, tag) \
116 pcmk__ipc_send_ack_as(__FUNCTION__, __LINE__, (c), (req), (flags), (tag))
119 uint32_t max_send_size,
120 struct iovec **result, ssize_t *bytes);
125 uint32_t *
id, uint32_t *
flags);
130 struct qb_ipcs_service_handlers *cb);
132 struct qb_ipcs_service_handlers *cb);
136 qb_ipcs_service_t **ipcs_rw,
137 qb_ipcs_service_t **ipcs_shm,
138 struct qb_ipcs_service_handlers *ro_cb,
139 struct qb_ipcs_service_handlers *rw_cb);
142 qb_ipcs_service_t *ipcs_rw,
143 qb_ipcs_service_t *ipcs_shm);
xmlNode * pcmk__client_data2xml(pcmk__client_t *c, void *data, uint32_t *id, uint32_t *flags)
int pcmk__client_pid(qb_ipcs_connection_t *c)
void pcmk__client_cleanup(void)
pcmk__client_t * pcmk__find_client(qb_ipcs_connection_t *c)
void pcmk__ipc_send_ack_as(const char *function, int line, pcmk__client_t *c, uint32_t request, uint32_t flags, const char *tag)
const char * pcmk__client_type_str(enum pcmk__client_type client_type)
void pcmk__foreach_ipc_client(GHFunc func, gpointer user_data)
struct mainloop_io_s mainloop_io_t
void pcmk__foreach_ipc_client_remove(GHRFunc func, gpointer user_data)
Wrappers for and extensions to glib mainloop.
guint pcmk__ipc_client_count(void)
void pcmk__drop_all_clients(qb_ipcs_service_t *s)
void pcmk__serve_attrd_ipc(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
pcmk__client_t * pcmk__find_client_by_id(const char *id)
qb_ipcs_service_t * pcmk__serve_controld_ipc(struct qb_ipcs_service_handlers *cb)
int pcmk__ipc_prepare_iov(uint32_t request, xmlNode *message, uint32_t max_send_size, struct iovec **result, ssize_t *bytes)
int pcmk__ipc_send_iov(pcmk__client_t *c, struct iovec *iov, uint32_t flags)
int pcmk__ipc_send_xml(pcmk__client_t *c, uint32_t request, xmlNode *message, uint32_t flags)
bool pcmk__set_client_queue_max(pcmk__client_t *client, const char *qmax)
void pcmk__free_client(pcmk__client_t *c)
const char * pcmk__client_name(pcmk__client_t *c)
pcmk__client_t * pcmk__new_client(qb_ipcs_connection_t *c, uid_t uid, gid_t gid)
Wrappers for and extensions to libqb IPC.
struct pcmk__remote_s * remote
enum pcmk__client_type kind
void pcmk__serve_fenced_ipc(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
void pcmk__serve_based_ipc(qb_ipcs_service_t **ipcs_ro, qb_ipcs_service_t **ipcs_rw, qb_ipcs_service_t **ipcs_shm, struct qb_ipcs_service_handlers *ro_cb, struct qb_ipcs_service_handlers *rw_cb)
unsigned int queue_backlog
qb_ipcs_connection_t * ipcs
pcmk__client_t * pcmk__new_unauth_client(void *key)
Allocate a new pcmk__client_t object and generate its ID.
void pcmk__stop_based_ipc(qb_ipcs_service_t *ipcs_ro, qb_ipcs_service_t *ipcs_rw, qb_ipcs_service_t *ipcs_shm)