![]() |
pacemaker
1.1.18-7fdfbbe
Scalable High-Availability cluster resource manager
|
#include <crm_internal.h>#include <sys/param.h>#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <time.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <stdarg.h>#include <crm/crm.h>#include <crm/msg_xml.h>#include <crm/common/xml.h>#include <crm/common/xml_internal.h>
Go to the source code of this file.
Macros | |
| #define | XML_BUFFER_SIZE 4096 |
| #define | XML_PARSER_DEBUG 0 |
| #define | CHUNK_SIZE 1024 |
| #define | buffer_print(buffer, max, offset, fmt, args...) |
| #define | XML_PRIVATE_MAGIC (long) 0x81726354 |
| #define | XPATH_MAX 512 |
Typedefs | |
| typedef struct xml_private_s | xml_private_t |
| typedef struct xml_acl_s | xml_acl_t |
| typedef struct xml_deleted_obj_s | xml_deleted_obj_t |
| typedef struct name_value_s | name_value_t |
Enumerations | |
| enum | xml_private_flags { xpf_none = 0x0000, xpf_dirty = 0x0001, xpf_deleted = 0x0002, xpf_created = 0x0004, xpf_modified = 0x0008, xpf_tracking = 0x0010, xpf_processed = 0x0020, xpf_skip = 0x0040, xpf_moved = 0x0080, xpf_acl_enabled = 0x0100, xpf_acl_read = 0x0200, xpf_acl_write = 0x0400, xpf_acl_deny = 0x0800, xpf_acl_create = 0x1000, xpf_acl_denied = 0x2000 } |
Functions | |
| const char * | __xml_acl_to_text (enum xml_private_flags flags) |
| int | get_tag_name (const char *input, size_t offset, size_t max) |
| int | get_attr_name (const char *input, size_t offset, size_t max) |
| int | get_attr_value (const char *input, size_t offset, size_t max) |
| gboolean | can_prune_leaf (xmlNode *xml_node) |
| void | diff_filter_context (int context, int upper_bound, int lower_bound, xmlNode *xml_node, xmlNode *parent) |
| int | in_upper_context (int depth, int context, xmlNode *xml_node) |
| int | add_xml_object (xmlNode *parent, xmlNode *target, xmlNode *update, gboolean as_diff) |
| bool | xml_acl_filtered_copy (const char *user, xmlNode *acl_source, xmlNode *xml, xmlNode **result) |
| bool | xml_acl_denied (xmlNode *xml) |
| void | xml_acl_disable (xmlNode *xml) |
| bool | xml_acl_enabled (xmlNode *xml) |
| void | xml_track_changes (xmlNode *xml, const char *user, xmlNode *acl_source, bool enforce_acls) |
| bool | xml_tracking_changes (xmlNode *xml) |
| bool | xml_document_dirty (xmlNode *xml) |
| xmlNode * | xml_create_patchset (int format, xmlNode *source, xmlNode *target, bool *config_changed, bool manage_version) |
| void | patchset_process_digest (xmlNode *patch, xmlNode *source, xmlNode *target, bool with_digest) |
| void | xml_log_patchset (uint8_t log_level, const char *function, xmlNode *patchset) |
| void | xml_log_changes (uint8_t log_level, const char *function, xmlNode *xml) |
| void | xml_accept_changes (xmlNode *xml) |
| bool | xml_patch_versions (xmlNode *patchset, int add[3], int del[3]) |
| int | xml_apply_patchset (xmlNode *xml, xmlNode *patchset, bool check_version) |
| xmlNode * | find_xml_node (xmlNode *root, const char *search_path, gboolean must_find) |
| xmlNode * | find_entity (xmlNode *parent, const char *node_name, const char *id) |
| void | copy_in_properties (xmlNode *target, xmlNode *src) |
| void | fix_plus_plus_recursive (xmlNode *target) |
| void | expand_plus_plus (xmlNode *target, const char *name, const char *value) |
| xmlDoc * | getDocPtr (xmlNode *node) |
| xmlNode * | add_node_copy (xmlNode *parent, xmlNode *src_node) |
| int | add_node_nocopy (xmlNode *parent, const char *name, xmlNode *child) |
| const char * | crm_xml_add (xmlNode *node, const char *name, const char *value) |
| const char * | crm_xml_replace (xmlNode *node, const char *name, const char *value) |
| const char * | crm_xml_add_int (xmlNode *node, const char *name, int value) |
| xmlNode * | create_xml_node (xmlNode *parent, const char *name) |
| char * | xml_get_path (xmlNode *xml) |
| void | free_xml (xmlNode *child) |
| xmlNode * | copy_xml (xmlNode *src) |
| xmlNode * | string2xml (const char *input) |
| xmlNode * | stdin2xml (void) |
| void | strip_text_nodes (xmlNode *xml) |
| xmlNode * | filename2xml (const char *filename) |
| const char * | crm_xml_add_last_written (xmlNode *xml_node) |
| void | crm_xml_sanitize_id (char *id) |
| Sanitize a string so it is usable as an XML ID. More... | |
| void | crm_xml_set_id (xmlNode *xml, const char *format,...) |
| Set the ID of an XML element using a format. More... | |
| int | write_xml_fd (xmlNode *xml_node, const char *filename, int fd, gboolean compress) |
| int | write_xml_file (xmlNode *xml_node, const char *filename, gboolean compress) |
| xmlNode * | get_message_xml (xmlNode *msg, const char *field) |
| gboolean | add_message_xml (xmlNode *msg, const char *field, xmlNode *xml) |
| char * | crm_xml_escape (const char *text) |
| void | log_data_element (int log_level, const char *file, const char *function, int line, const char *prefix, xmlNode *data, int depth, int options) |
| void | crm_xml_dump (xmlNode *data, int options, char **buffer, int *offset, int *max, int depth) |
| void | crm_buffer_add_char (char **buffer, int *offset, int *max, char c) |
| char * | dump_xml_formatted_with_text (xmlNode *an_xml_node) |
| char * | dump_xml_formatted (xmlNode *an_xml_node) |
| char * | dump_xml_unformatted (xmlNode *an_xml_node) |
| gboolean | xml_has_children (const xmlNode *xml_root) |
| int | crm_element_value_int (xmlNode *data, const char *name, int *dest) |
| int | crm_element_value_const_int (const xmlNode *data, const char *name, int *dest) |
| const char * | crm_element_value_const (const xmlNode *data, const char *name) |
| char * | crm_element_value_copy (xmlNode *data, const char *name) |
| void | xml_remove_prop (xmlNode *obj, const char *name) |
| void | purge_diff_markers (xmlNode *a_node) |
| void | save_xml_to_file (xmlNode *xml, const char *desc, const char *filename) |
| gboolean | apply_xml_diff (xmlNode *old, xmlNode *diff, xmlNode **new) |
| void | xml_calculate_changes (xmlNode *old, xmlNode *new) |
| xmlNode * | diff_xml_object (xmlNode *old, xmlNode *new, gboolean suppress) |
| xmlNode * | subtract_xml_object (xmlNode *parent, xmlNode *left, xmlNode *right, gboolean full, gboolean *changed, const char *marker) |
| gboolean | update_xml_child (xmlNode *child, xmlNode *to_update) |
| int | find_xml_children (xmlNode **children, xmlNode *root, const char *tag, const char *field, const char *value, gboolean search_matches) |
| gboolean | replace_xml_child (xmlNode *parent, xmlNode *child, xmlNode *update, gboolean delete_only) |
| xmlNode * | crm_create_nvpair_xml (xmlNode *parent, const char *id, const char *name, const char *value) |
| Create an XML name/value pair. More... | |
| void | hash2nvpair (gpointer key, gpointer value, gpointer user_data) |
| void | hash2smartfield (gpointer key, gpointer value, gpointer user_data) |
| void | hash2field (gpointer key, gpointer value, gpointer user_data) |
| void | hash2metafield (gpointer key, gpointer value, gpointer user_data) |
| GHashTable * | xml2list (xmlNode *parent) |
| xmlNode * | sorted_xml (xmlNode *input, xmlNode *parent, gboolean recursive) |
| xmlNode * | first_named_child (xmlNode *parent, const char *name) |
| xmlNode * | crm_next_same_xml (xmlNode *sibling) |
| Get next instance of same XML tag. More... | |
| void | crm_xml_init (void) |
| void | crm_xml_cleanup (void) |
| xmlNode * | expand_idref (xmlNode *input, xmlNode *top) |
| const char * | crm_element_value (xmlNode *data, const char *name) |
| void | crm_destroy_xml (gpointer data) |
| xmlNode destructor which can be used in glib collections More... | |
| #define buffer_print | ( | buffer, | |
| max, | |||
| offset, | |||
| fmt, | |||
| args... | |||
| ) |
| typedef struct name_value_s name_value_t |
| typedef struct xml_acl_s xml_acl_t |
| typedef struct xml_deleted_obj_s xml_deleted_obj_t |
| typedef struct xml_private_s xml_private_t |
| enum xml_private_flags |
| const char * __xml_acl_to_text | ( | enum xml_private_flags | flags | ) |
| gboolean add_message_xml | ( | xmlNode * | msg, |
| const char * | field, | ||
| xmlNode * | xml | ||
| ) |
| xmlNode* add_node_copy | ( | xmlNode * | parent, |
| xmlNode * | src_node | ||
| ) |
| int add_node_nocopy | ( | xmlNode * | parent, |
| const char * | name, | ||
| xmlNode * | child | ||
| ) |
| int add_xml_object | ( | xmlNode * | parent, |
| xmlNode * | target, | ||
| xmlNode * | update, | ||
| gboolean | as_diff | ||
| ) |
| gboolean apply_xml_diff | ( | xmlNode * | old, |
| xmlNode * | diff, | ||
| xmlNode ** | new | ||
| ) |
| xmlNode* create_xml_node | ( | xmlNode * | parent, |
| const char * | name | ||
| ) |
| void crm_buffer_add_char | ( | char ** | buffer, |
| int * | offset, | ||
| int * | max, | ||
| char | c | ||
| ) |
| xmlNode* crm_create_nvpair_xml | ( | xmlNode * | parent, |
| const char * | id, | ||
| const char * | name, | ||
| const char * | value | ||
| ) |
| void crm_destroy_xml | ( | gpointer | data | ) |
| const char* crm_element_value | ( | xmlNode * | data, |
| const char * | name | ||
| ) |
| const char* crm_element_value_const | ( | const xmlNode * | data, |
| const char * | name | ||
| ) |
| int crm_element_value_const_int | ( | const xmlNode * | data, |
| const char * | name, | ||
| int * | dest | ||
| ) |
| char* crm_element_value_copy | ( | xmlNode * | data, |
| const char * | name | ||
| ) |
| int crm_element_value_int | ( | xmlNode * | data, |
| const char * | name, | ||
| int * | dest | ||
| ) |
| xmlNode* crm_next_same_xml | ( | xmlNode * | sibling | ) |
| const char* crm_xml_add | ( | xmlNode * | node, |
| const char * | name, | ||
| const char * | value | ||
| ) |
| const char* crm_xml_add_int | ( | xmlNode * | node, |
| const char * | name, | ||
| int | value | ||
| ) |
| void crm_xml_dump | ( | xmlNode * | data, |
| int | options, | ||
| char ** | buffer, | ||
| int * | offset, | ||
| int * | max, | ||
| int | depth | ||
| ) |
| const char* crm_xml_replace | ( | xmlNode * | node, |
| const char * | name, | ||
| const char * | value | ||
| ) |
| void crm_xml_sanitize_id | ( | char * | id | ) |
| void crm_xml_set_id | ( | xmlNode * | xml, |
| const char * | format, | ||
| ... | |||
| ) |
| void diff_filter_context | ( | int | context, |
| int | upper_bound, | ||
| int | lower_bound, | ||
| xmlNode * | xml_node, | ||
| xmlNode * | parent | ||
| ) |
| xmlNode* diff_xml_object | ( | xmlNode * | old, |
| xmlNode * | new, | ||
| gboolean | suppress | ||
| ) |
| void expand_plus_plus | ( | xmlNode * | target, |
| const char * | name, | ||
| const char * | value | ||
| ) |
| xmlNode* find_entity | ( | xmlNode * | parent, |
| const char * | node_name, | ||
| const char * | id | ||
| ) |
| int find_xml_children | ( | xmlNode ** | children, |
| xmlNode * | root, | ||
| const char * | tag, | ||
| const char * | field, | ||
| const char * | value, | ||
| gboolean | search_matches | ||
| ) |
| xmlNode* find_xml_node | ( | xmlNode * | root, |
| const char * | search_path, | ||
| gboolean | must_find | ||
| ) |
| xmlNode* first_named_child | ( | xmlNode * | parent, |
| const char * | name | ||
| ) |
| int get_attr_name | ( | const char * | input, |
| size_t | offset, | ||
| size_t | max | ||
| ) |
| int get_attr_value | ( | const char * | input, |
| size_t | offset, | ||
| size_t | max | ||
| ) |
| xmlNode* get_message_xml | ( | xmlNode * | msg, |
| const char * | field | ||
| ) |
| int get_tag_name | ( | const char * | input, |
| size_t | offset, | ||
| size_t | max | ||
| ) |
| void hash2field | ( | gpointer | key, |
| gpointer | value, | ||
| gpointer | user_data | ||
| ) |
| void hash2metafield | ( | gpointer | key, |
| gpointer | value, | ||
| gpointer | user_data | ||
| ) |
| void hash2nvpair | ( | gpointer | key, |
| gpointer | value, | ||
| gpointer | user_data | ||
| ) |
| void hash2smartfield | ( | gpointer | key, |
| gpointer | value, | ||
| gpointer | user_data | ||
| ) |
| int in_upper_context | ( | int | depth, |
| int | context, | ||
| xmlNode * | xml_node | ||
| ) |
| void log_data_element | ( | int | log_level, |
| const char * | file, | ||
| const char * | function, | ||
| int | line, | ||
| const char * | prefix, | ||
| xmlNode * | data, | ||
| int | depth, | ||
| int | options | ||
| ) |
| void patchset_process_digest | ( | xmlNode * | patch, |
| xmlNode * | source, | ||
| xmlNode * | target, | ||
| bool | with_digest | ||
| ) |
| gboolean replace_xml_child | ( | xmlNode * | parent, |
| xmlNode * | child, | ||
| xmlNode * | update, | ||
| gboolean | delete_only | ||
| ) |
| void save_xml_to_file | ( | xmlNode * | xml, |
| const char * | desc, | ||
| const char * | filename | ||
| ) |
| xmlNode* sorted_xml | ( | xmlNode * | input, |
| xmlNode * | parent, | ||
| gboolean | recursive | ||
| ) |
| xmlNode* subtract_xml_object | ( | xmlNode * | parent, |
| xmlNode * | left, | ||
| xmlNode * | right, | ||
| gboolean | full, | ||
| gboolean * | changed, | ||
| const char * | marker | ||
| ) |
| gboolean update_xml_child | ( | xmlNode * | child, |
| xmlNode * | to_update | ||
| ) |
| int write_xml_fd | ( | xmlNode * | xml_node, |
| const char * | filename, | ||
| int | fd, | ||
| gboolean | compress | ||
| ) |
| int write_xml_file | ( | xmlNode * | xml_node, |
| const char * | filename, | ||
| gboolean | compress | ||
| ) |
| bool xml_acl_filtered_copy | ( | const char * | user, |
| xmlNode * | acl_source, | ||
| xmlNode * | xml, | ||
| xmlNode ** | result | ||
| ) |
| int xml_apply_patchset | ( | xmlNode * | xml, |
| xmlNode * | patchset, | ||
| bool | check_version | ||
| ) |
| xmlNode* xml_create_patchset | ( | int | format, |
| xmlNode * | source, | ||
| xmlNode * | target, | ||
| bool * | config_changed, | ||
| bool | manage_version | ||
| ) |
| void xml_log_changes | ( | uint8_t | log_level, |
| const char * | function, | ||
| xmlNode * | xml | ||
| ) |
| void xml_log_patchset | ( | uint8_t | log_level, |
| const char * | function, | ||
| xmlNode * | patchset | ||
| ) |
| bool xml_patch_versions | ( | xmlNode * | patchset, |
| int | add[3], | ||
| int | del[3] | ||
| ) |
| void xml_track_changes | ( | xmlNode * | xml, |
| const char * | user, | ||
| xmlNode * | acl_source, | ||
| bool | enforce_acls | ||
| ) |
1.8.5