1
2
3
4
5
6
7
8
9
10 #ifndef LRMD_INTERNAL__H
11 #define LRMD_INTERNAL__H
12
13 #include <stdint.h>
14 #include <glib.h>
15 #include <libxml/tree.h>
16 #include <crm/common/ipc.h>
17 #include <crm/common/mainloop.h>
18 #include <crm/common/remote_internal.h>
19 #include <crm/lrmd.h>
20
21 int lrmd_send_attribute_alert(lrmd_t *lrmd, GList *alert_list,
22 const char *node, uint32_t nodeid,
23 const char *attr_name, const char *attr_value);
24 int lrmd_send_node_alert(lrmd_t *lrmd, GList *alert_list,
25 const char *node, uint32_t nodeid, const char *state);
26 int lrmd_send_fencing_alert(lrmd_t *lrmd, GList *alert_list,
27 const char *target, const char *task,
28 const char *desc, int op_rc);
29 int lrmd_send_resource_alert(lrmd_t *lrmd, GList *alert_list,
30 const char *node, lrmd_event_data_t *op);
31
32 int lrmd_tls_send_msg(pcmk__remote_t *session, xmlNode *msg, uint32_t id,
33 const char *msg_type);
34
35
36
37 typedef struct remote_proxy_s {
38 char *node_name;
39 char *session_id;
40
41 gboolean is_local;
42
43 crm_ipc_t *ipc;
44 mainloop_io_t *source;
45 uint32_t last_request_id;
46 lrmd_t *lrm;
47
48 } remote_proxy_t;
49
50 remote_proxy_t *remote_proxy_new(lrmd_t *lrmd,
51 struct ipc_client_callbacks *proxy_callbacks,
52 const char *node_name, const char *session_id,
53 const char *channel);
54
55 int remote_proxy_check(lrmd_t *lrmd, GHashTable *hash);
56 void remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode *msg);
57 void remote_proxy_ack_shutdown(lrmd_t *lrmd);
58 void remote_proxy_nack_shutdown(lrmd_t *lrmd);
59
60 int remote_proxy_dispatch(const char *buffer, ssize_t length,
61 gpointer userdata);
62 void remote_proxy_disconnected(gpointer data);
63 void remote_proxy_free(gpointer data);
64
65 void remote_proxy_relay_event(remote_proxy_t *proxy, xmlNode *msg);
66 void remote_proxy_relay_response(remote_proxy_t *proxy, xmlNode *msg,
67 int msg_id);
68
69 #endif