summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-04-16 06:59:30 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-04-16 06:59:30 (GMT)
commit90f9cf977a8eb6553d6bb4963202b90e2b8ff063 (patch)
tree6bbfec29e4092632aff8ce10a8f45f7b854e0b93 /src/common
parenta4f2f3ec4b4cf7b894d6976c884fbc446396cd00 (diff)
Created a basic tool to manage server configurations.
Diffstat (limited to 'src/common')
-rw-r--r--src/common/bits.c3
-rw-r--r--src/common/bits.h4
-rw-r--r--src/common/xml.c55
-rw-r--r--src/common/xml.h6
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 *);