Mais je ne désespère pas. J'avance petit à petit. Où j'en suis actuellement? En fait, lorsque le programme se lance la première fois, sur une base de données vide, il semblerait que toutes les données soient mises en base de données. Semblerait car je n'ai pas encore vérifier tous les détails. En effet, je n'ai pas vérifier que deux services ayant le même nom mais positionnés sur des horsts différents soient bien ajoutés. De plus, je n'ai pu vérifié des éléments complexes du style l'association à un hostgroup:

define service{
   hostgroup_name all_hosts
   service_description ping
   ...
}

Ce code en C m'a permis d'identifier que des informations disponibles en base de données ne sont pas nécessaires. Je devrais peut être dire ne sont plus nécessaires. Elles l'étaient lorsque c'était un script PHP qui parsait les fichiers de configuration. Il avait besoin de stocker les hostgroups, de stocker les templates etc pour ensuite faire les liens entre les services. Or ici, ce n'est plus nécessaire car le parseur en C de Nagios le fait pour nous. Ceci devrait simplifier grandement le code. Enfin... pour le moment ce serait plutôt le contraire car, étant en C, il faut s'imposer des calloc() et autre free().

Pour l'instant je suis confronté à un problème gênant. Le premier lancement du programme d'ajout des informations dans la base de données semble fonctionner. Le problème vient aux lancements suivants: ces lancements me suppriment tous les services sauf un. Pas cool! Et c'est là que je suis bloqué pour le moment. Je dirais bien que je vais me mettre sur ce problème et lui faire la peau ce week-end mais ceci est impossible. J'ai pas mal de choses à faire et... non j'en dis trop déjà! :-)