MCPcopy Create free account
hub / github.com/ClusterLabs/pacemaker / cib_msg_copy

Function cib_msg_copy

cib/common.c:244–305  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

242}
243
244xmlNode *
245cib_msg_copy(xmlNode * msg, gboolean with_data)
246{
247 int lpc = 0;
248 const char *field = NULL;
249 const char *value = NULL;
250 xmlNode *value_struct = NULL;
251
252 static const char *field_list[] = {
253 F_XML_TAGNAME,
254 F_TYPE,
255 F_CIB_CLIENTID,
256 F_CIB_CALLOPTS,
257 F_CIB_CALLID,
258 F_CIB_OPERATION,
259 F_CIB_ISREPLY,
260 F_CIB_SECTION,
261 F_CIB_HOST,
262 F_CIB_RC,
263 F_CIB_DELEGATED,
264 F_CIB_OBJID,
265 F_CIB_OBJTYPE,
266 F_CIB_EXISTING,
267 F_CIB_SEENCOUNT,
268 F_CIB_TIMEOUT,
269 F_CIB_CALLBACK_TOKEN,
270 F_CIB_GLOBAL_UPDATE,
271 F_CIB_CLIENTNAME,
272#if ENABLE_ACL
273 F_CIB_USER,
274#endif
275 F_CIB_NOTIFY_TYPE,
276 F_CIB_NOTIFY_ACTIVATE
277 };
278
279 static const char *data_list[] = {
280 F_CIB_CALLDATA,
281 F_CIB_UPDATE,
282 F_CIB_UPDATE_RESULT
283 };
284
285 xmlNode *copy = create_xml_node(NULL, "copy");
286
287 CRM_ASSERT(copy != NULL);
288
289 for (lpc = 0; lpc < DIMOF(field_list); lpc++) {
290 field = field_list[lpc];
291 value = crm_element_value(msg, field);
292 if (value != NULL) {
293 crm_xml_add(copy, field, value);
294 }
295 }
296 for (lpc = 0; with_data && lpc < DIMOF(data_list); lpc++) {
297 field = data_list[lpc];
298 value_struct = get_message_xml(msg, field);
299 if (value_struct != NULL) {
300 add_message_xml(copy, field, value_struct);
301 }

Callers 1

sync_our_cibFunction · 0.85

Calls 5

create_xml_nodeFunction · 0.85
crm_element_valueFunction · 0.85
crm_xml_addFunction · 0.85
get_message_xmlFunction · 0.85
add_message_xmlFunction · 0.85

Tested by

no test coverage detected