pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
ipc_server.c File Reference
#include <crm_internal.h>
#include <stdio.h>
#include <errno.h>
#include <bzlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <crm/crm.h>
#include <crm/common/xml.h>
#include <crm/common/ipc.h>
#include <crm/common/ipc_internal.h>
#include "crmcommon_private.h"
Include dependency graph for ipc_server.c:

Go to the source code of this file.

Macros

#define PCMK_IPC_DEFAULT_QUEUE_MAX   500
 

Functions

guint pcmk__ipc_client_count (void)
 
void pcmk__foreach_ipc_client (GHFunc func, gpointer user_data)
 
pcmk__client_tpcmk__find_client (const qb_ipcs_connection_t *c)
 
pcmk__client_tpcmk__find_client_by_id (const char *id)
 
const char * pcmk__client_name (const pcmk__client_t *c)
 
void pcmk__client_cleanup (void)
 
void pcmk__drop_all_clients (qb_ipcs_service_t *service)
 
pcmk__client_tpcmk__new_unauth_client (void *key)
 Allocate a new pcmk__client_t object and generate its ID.
 
pcmk__client_tpcmk__new_client (qb_ipcs_connection_t *c, uid_t uid_client, gid_t gid_client)
 
void pcmk_free_ipc_event (struct iovec *event)
 Free an I/O vector created by pcmk__ipc_prepare_iov()
 
void pcmk__free_client (pcmk__client_t *c)
 
void pcmk__set_client_queue_max (pcmk__client_t *client, const char *qmax)
 
int pcmk__client_pid (qb_ipcs_connection_t *c)
 
xmlNode * pcmk__client_data2xml (pcmk__client_t *c, uint32_t *id, uint32_t *flags)
 
int pcmk__ipc_prepare_iov (uint32_t request, const GString *message, uint16_t index, 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, const xmlNode *message, uint32_t flags)
 
xmlNode * pcmk__ipc_create_ack_as (const char *function, int line, uint32_t flags, const char *tag, const char *ver, crm_exit_t status)
 
int 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 *ver, crm_exit_t status)
 
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)
 
void pcmk__stop_based_ipc (qb_ipcs_service_t *ipcs_ro, qb_ipcs_service_t *ipcs_rw, qb_ipcs_service_t *ipcs_shm)
 
qb_ipcs_service_t * pcmk__serve_controld_ipc (struct qb_ipcs_service_handlers *cb)
 
void pcmk__serve_attrd_ipc (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
 
void pcmk__serve_fenced_ipc (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
 
void pcmk__serve_pacemakerd_ipc (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
 
qb_ipcs_service_t * pcmk__serve_schedulerd_ipc (struct qb_ipcs_service_handlers *cb)
 

Macro Definition Documentation

◆ PCMK_IPC_DEFAULT_QUEUE_MAX

#define PCMK_IPC_DEFAULT_QUEUE_MAX   500

Definition at line 25 of file ipc_server.c.

Function Documentation

◆ pcmk__client_cleanup()

void pcmk__client_cleanup ( void )

Definition at line 115 of file ipc_server.c.

◆ pcmk__client_data2xml()

xmlNode * pcmk__client_data2xml ( pcmk__client_t * c,
uint32_t * id,
uint32_t * flags )

Definition at line 401 of file ipc_server.c.

◆ pcmk__client_name()

const char * pcmk__client_name ( const pcmk__client_t * c)

Definition at line 98 of file ipc_server.c.

◆ pcmk__client_pid()

int pcmk__client_pid ( qb_ipcs_connection_t * c)

Definition at line 381 of file ipc_server.c.

◆ pcmk__drop_all_clients()

void pcmk__drop_all_clients ( qb_ipcs_service_t * service)

Definition at line 130 of file ipc_server.c.

◆ pcmk__find_client()

pcmk__client_t * pcmk__find_client ( const qb_ipcs_connection_t * c)

Definition at line 59 of file ipc_server.c.

◆ pcmk__find_client_by_id()

pcmk__client_t * pcmk__find_client_by_id ( const char * id)

Definition at line 70 of file ipc_server.c.

◆ pcmk__foreach_ipc_client()

void pcmk__foreach_ipc_client ( GHFunc func,
gpointer user_data )

Definition at line 51 of file ipc_server.c.

◆ pcmk__free_client()

void pcmk__free_client ( pcmk__client_t * c)

Definition at line 284 of file ipc_server.c.

◆ pcmk__ipc_client_count()

guint pcmk__ipc_client_count ( void )

Definition at line 36 of file ipc_server.c.

◆ pcmk__ipc_create_ack_as()

xmlNode * pcmk__ipc_create_ack_as ( const char * function,
int line,
uint32_t flags,
const char * tag,
const char * ver,
crm_exit_t status )

Definition at line 952 of file ipc_server.c.

◆ pcmk__ipc_prepare_iov()

int pcmk__ipc_prepare_iov ( uint32_t request,
const GString * message,
uint16_t index,
struct iovec ** result,
ssize_t * bytes )

Definition at line 595 of file ipc_server.c.

◆ pcmk__ipc_send_ack_as()

int 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 * ver,
crm_exit_t status )

Definition at line 983 of file ipc_server.c.

◆ pcmk__ipc_send_iov()

int pcmk__ipc_send_iov ( pcmk__client_t * c,
struct iovec * iov,
uint32_t flags )

Definition at line 720 of file ipc_server.c.

◆ pcmk__ipc_send_xml()

int pcmk__ipc_send_xml ( pcmk__client_t * c,
uint32_t request,
const xmlNode * message,
uint32_t flags )

Definition at line 822 of file ipc_server.c.

◆ pcmk__new_client()

pcmk__client_t * pcmk__new_client ( qb_ipcs_connection_t * c,
uid_t uid_client,
gid_t gid_client )

Definition at line 209 of file ipc_server.c.

◆ pcmk__new_unauth_client()

pcmk__client_t * pcmk__new_unauth_client ( void * key)

Allocate a new pcmk__client_t object and generate its ID.

Parameters
[in]keyWhat to use as connections hash table key (NULL to use ID)
Returns
Pointer to new pcmk__client_t (asserts on failure)

Definition at line 203 of file ipc_server.c.

◆ pcmk__serve_attrd_ipc()

void pcmk__serve_attrd_ipc ( qb_ipcs_service_t ** ipcs,
struct qb_ipcs_service_handlers * cb )

Definition at line 1082 of file ipc_server.c.

◆ pcmk__serve_based_ipc()

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 )

Definition at line 1015 of file ipc_server.c.

◆ pcmk__serve_controld_ipc()

qb_ipcs_service_t * pcmk__serve_controld_ipc ( struct qb_ipcs_service_handlers * cb)

Definition at line 1067 of file ipc_server.c.

◆ pcmk__serve_fenced_ipc()

void pcmk__serve_fenced_ipc ( qb_ipcs_service_t ** ipcs,
struct qb_ipcs_service_handlers * cb )

Definition at line 1105 of file ipc_server.c.

◆ pcmk__serve_pacemakerd_ipc()

void pcmk__serve_pacemakerd_ipc ( qb_ipcs_service_t ** ipcs,
struct qb_ipcs_service_handlers * cb )

Definition at line 1128 of file ipc_server.c.

◆ pcmk__serve_schedulerd_ipc()

qb_ipcs_service_t * pcmk__serve_schedulerd_ipc ( struct qb_ipcs_service_handlers * cb)

Definition at line 1155 of file ipc_server.c.

◆ pcmk__set_client_queue_max()

void pcmk__set_client_queue_max ( pcmk__client_t * client,
const char * qmax )

Definition at line 345 of file ipc_server.c.

◆ pcmk__stop_based_ipc()

void pcmk__stop_based_ipc ( qb_ipcs_service_t * ipcs_ro,
qb_ipcs_service_t * ipcs_rw,
qb_ipcs_service_t * ipcs_shm )

Definition at line 1049 of file ipc_server.c.

◆ pcmk_free_ipc_event()

void pcmk_free_ipc_event ( struct iovec * event)

Free an I/O vector created by pcmk__ipc_prepare_iov()

Parameters
[in,out]eventI/O vector to free

Definition at line 259 of file ipc_server.c.