pacemaker  2.1.5-b7adf64e51
Scalable High-Availability cluster resource manager
Macros | Functions
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/msg_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. More...
 
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() More...
 
void pcmk__free_client (pcmk__client_t *c)
 
bool 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, void *data, uint32_t *id, uint32_t *flags)
 
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)
 
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)
 
bool crm_is_daemon_name (const char *name)
 Check whether string represents a client name used by cluster daemons. More...
 

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

◆ crm_is_daemon_name()

bool crm_is_daemon_name ( const char *  name)

Check whether string represents a client name used by cluster daemons.

Parameters
[in]nameString to check
Returns
true if name is standard client name used by daemons, false otherwise
Note
This is provided by the client, and so cannot be used by itself as a secure means of authentication.

Definition at line 996 of file ipc_server.c.

◆ 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,
void *  data,
uint32_t *  id,
uint32_t *  flags 
)

Definition at line 386 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 365 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 299 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 781 of file ipc_server.c.

◆ pcmk__ipc_prepare_iov()

int pcmk__ipc_prepare_iov ( uint32_t  request,
xmlNode *  message,
uint32_t  max_send_size,
struct iovec **  result,
ssize_t *  bytes 
)

Definition at line 580 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 812 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 665 of file ipc_server.c.

◆ pcmk__ipc_send_xml()

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

Definition at line 744 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 218 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 209 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 908 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 841 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 893 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 930 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 953 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 980 of file ipc_server.c.

◆ pcmk__set_client_queue_max()

bool pcmk__set_client_queue_max ( pcmk__client_t client,
const char *  qmax 
)

Definition at line 350 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 875 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 274 of file ipc_server.c.