diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-04-16 06:59:30 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-04-16 06:59:30 (GMT) |
commit | 90f9cf977a8eb6553d6bb4963202b90e2b8ff063 (patch) | |
tree | 6bbfec29e4092632aff8ce10a8f45f7b854e0b93 /src/common | |
parent | a4f2f3ec4b4cf7b894d6976c884fbc446396cd00 (diff) |
Created a basic tool to manage server configurations.
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/bits.c | 3 | ||||
-rw-r--r-- | src/common/bits.h | 4 | ||||
-rw-r--r-- | src/common/xml.c | 55 | ||||
-rw-r--r-- | src/common/xml.h | 6 |
4 files changed, 65 insertions, 3 deletions
diff --git a/src/common/bits.c b/src/common/bits.c index 925c1b7..42493f2 100644 --- a/src/common/bits.c +++ b/src/common/bits.c @@ -547,7 +547,7 @@ unsigned long gfw(const bitfield_t *field) } - +#if 0 /* ---------------------------------------------------------------------------------- */ /* CHAMPS LIES À UNE ZONE MEMOIRE */ @@ -708,3 +708,4 @@ bool test_in_mem_field(memfield_t *field, const vmpa2t *addr) return result; } +#endif diff --git a/src/common/bits.h b/src/common/bits.h index f2e1399..eb3a5af 100644 --- a/src/common/bits.h +++ b/src/common/bits.h @@ -80,7 +80,7 @@ bool is_bit_field_equal_to(const bitfield_t *, const bitfield_t *); unsigned long gfw(const bitfield_t *); - +#if 0 /* ------------------------- CHAMPS LIES À UNE ZONE MEMOIRE ------------------------- */ @@ -110,7 +110,7 @@ bool test_in_mem_field(memfield_t *, const vmpa2t *); #define set_atomic_in_mem_field(f, range) false - +#endif #endif /* _COMMON_BITS_H */ diff --git a/src/common/xml.c b/src/common/xml.c index a9c65b5..952aaf7 100644 --- a/src/common/xml.c +++ b/src/common/xml.c @@ -843,6 +843,61 @@ xmlNodePtr add_node_to_node(xmlDocPtr xdoc, xmlNodePtr parent, const char *name) /****************************************************************************** * * +* Paramètres : xdoc = structure XML chargée. * +* node = noeud à retirer de la structure. * +* * +* Description : Retire un noeud d'un document XML. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void _remove_node_from_doc(xmlDocPtr xdoc, xmlNodePtr node) +{ + xmlUnlinkNode(node); + xmlFreeNode(node); + +} + + +/****************************************************************************** +* * +* Paramètres : xdoc = structure XML chargée. * +* context = contexte à utiliser pour les recherches. * +* path = chemin d'accès au noeud visé. * +* * +* Description : Retire un noeud d'un document XML. * +* * +* Retour : true si le noeud XML a bien été trouvé, false sinon. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool remove_node_from_doc(xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path) +{ + bool result; /* Bilan à retourner */ + xmlNodePtr node; /* Noeud à considérer */ + + node = get_node_from_xpath(context, path); + + if (node != NULL) + { + _remove_node_from_doc(xdoc, node); + result = true; + } + else + result = false; + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : xdoc = structure XML chargée. * * context = contexte à utiliser pour les recherches. * * path = chemin d'accès au noeud visé. * diff --git a/src/common/xml.h b/src/common/xml.h index 674bfd4..f16f31e 100644 --- a/src/common/xml.h +++ b/src/common/xml.h @@ -122,6 +122,12 @@ xmlNodePtr add_node_to_xpath(xmlDocPtr, xmlXPathContextPtr, const char *, const /* Ajoute un noeud à un autre noeud. */ xmlNodePtr add_node_to_node(xmlDocPtr, xmlNodePtr, const char *); +/* Retire un noeud d'un document XML. */ +void _remove_node_from_doc(xmlDocPtr, xmlNodePtr); + +/* Retire un noeud d'un document XML. */ +bool remove_node_from_doc(xmlDocPtr, xmlXPathContextPtr, const char *); + /* S'assure qu'un noeud donné est bien présent dans le document. */ xmlNodePtr ensure_node_exist(xmlDocPtr, xmlXPathContextPtr, const char *); |