43 #include <sys/types.h>
44 #include <sys/socket.h>
48 #include <qb/qbipcc.h>
59 qb_ipcc_connection_t *
c;
65 static void quorum_inst_free (
void *inst);
72 uint32_t *quorum_type)
77 struct qb_ipc_request_header req;
82 goto error_no_destroy;
95 goto error_put_destroy;
98 req.size =
sizeof (req);
101 iov.iov_base = (
char *)&req;
102 iov.iov_len =
sizeof (req);
111 if (error !=
CS_OK) {
112 goto error_put_destroy;
124 (void)hdb_handle_put (&quorum_handle_t_db, *handle);
129 (void)hdb_handle_put (&quorum_handle_t_db, *handle);
131 (void)hdb_handle_destroy (&quorum_handle_t_db, *handle);
136 static void quorum_inst_free (
void *inst)
149 if (error !=
CS_OK) {
157 (void)hdb_handle_put (&quorum_handle_t_db, handle);
163 (void)hdb_handle_destroy (&quorum_handle_t_db, handle);
165 (void)hdb_handle_put (&quorum_handle_t_db, handle);
177 struct qb_ipc_request_header req;
181 if (error !=
CS_OK) {
185 req.size =
sizeof (req);
188 iov.iov_base = (
char *)&req;
189 iov.iov_len =
sizeof (req);
198 if (error !=
CS_OK) {
207 (void)hdb_handle_put (&quorum_handle_t_db, handle);
220 if (error !=
CS_OK) {
226 (void)hdb_handle_put (&quorum_handle_t_db, handle);
240 if (error !=
CS_OK) {
246 (void)hdb_handle_put (&quorum_handle_t_db, handle);
259 if (error !=
CS_OK) {
265 (void)hdb_handle_put (&quorum_handle_t_db, handle);
279 struct qb_ipc_response_header res;
282 if (error !=
CS_OK) {
300 if (error !=
CS_OK) {
307 (void)hdb_handle_put (&quorum_handle_t_db, handle);
318 struct qb_ipc_request_header req;
319 struct qb_ipc_response_header res;
322 if (error !=
CS_OK) {
326 req.size =
sizeof (req);
329 iov.iov_base = (
char *)&req;
330 iov.iov_len =
sizeof (req);
339 if (error !=
CS_OK) {
346 (void)hdb_handle_put (&quorum_handle_t_db, handle);
360 struct qb_ipc_response_header *dispatch_data;
374 if (error !=
CS_OK) {
386 dispatch_data = (
struct qb_ipc_response_header *)dispatch_buf;
411 if (error !=
CS_OK) {
424 switch (dispatch_data->id) {
461 (void)hdb_handle_put (&quorum_handle_t_db, handle);