/* ***********************IMPORTANT *********************************************
 *  Copyright (C) 2004-2007 Thierry Lagarde <tlagarde@users.sourceforge.net>
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License.
 *
 *
 *                      ********************
 *
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *
 *                      ********************
 *
 *
 * You are highly encouraged to send your changes to <tlagarde@users.sourceforge.net>
 * for possible incorporation into the main distribution.
 * By sending these changes to <tlagarde@users.sourceforge.net>,
 * it is assumed that you are offering <tlagarde@users.sourceforge.net>
 * the unlimited, non-exclusive right to reuse, modify, and relicense the code.
 *
 *
 *                      ********************
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 **************************************************************************************/
#include <gtk/gtk.h>
#include "Objet.h"
#include "Reseau.h"
#include "Interface/Root_Interface.h"
#include "Interface/Wizard_Interface.h"
#include "Interface/Combo.h"
#include "Debug.h"
#include "Equipement_Port.h"
#include "Equipement_Historique.h"
#include "Modules.h"
#include "Com/Commun.h"
#include "Equipement_Nessus.h"
#include "Objet_Liste.h"
#include "Animation.h"
#include "Snmp.h"
#include "Settings_Signature.h"
#include "Macro.h"

extern struct Struct_Modele_Objet Liste_Modele_Objet[];

void Action_Test_Favoris (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;

	ERROR_if (pointer == NULL);
	Objet->Favoris = !Objet->Favoris;
}


void Action_Raffraichir_Equipement (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Liste_Reseau *Reseau = NULL;
	struct Struct_Equipement *Equipement = NULL;
	struct struct_Demande_Rafraichir_Equipement Message;

	ERROR_if (pointer == NULL);
	Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
	Equipement = (struct Struct_Equipement *) Objet->Pointeur_Attacher;
	if (!Equipement->Rafraichir_Equipement) {
		Equipement->Rafraichir_Equipement = TRUE;
		Active_Rachaichissment_Objet (Objet, Reseau);
	
		bzero (&Message, sizeof (struct struct_Demande_Rafraichir_Equipement));
		Message.ID_Reseau = Objet->ID_Reseau;
		memcpy (Message.ID_Equipement, Equipement->ID_Equipement, MAC_ADDR_LEN + IP_ADDR_LEN + 1);
		Communication_Envoie_Donnee (Reseau->Pid_Agent, DEMANDE_RAFRAICHIR_EQUIPEMENT, (gpointer *) & Message, sizeof (Message), Reseau);
	}
}


void Notification_Port (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Port *Port_Equipement = NULL;
	struct Struct_Liste_Reseau *Reseau = NULL;
	struct struct_Demande_Notication_Critique_Etat_Port Message;
	struct struct_Annulation_Notification_Etat_Port Message_Annulation;

	ERROR_if (pointer == NULL);
	Port_Equipement = (struct Struct_Port *) Objet->Pointeur_Attacher;
	Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
	if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (toggletoolbutton_Notification))) {
		Objet->Notification_En_Cours = TRUE;
		Port_Equipement->Notification_En_Cours = TRUE;
		bzero (&Message, sizeof (struct struct_Demande_Notication_Critique_Etat_Port));
		Message.ID_Reseau = Objet->ID_Reseau;
		memcpy (Message.ID_Equipement, Equipement_Selectionner->ID_Equipement, MAC_ADDR_LEN + IP_ADDR_LEN + 1);
		Message.Num_Port = Port_Equipement->Num_Port;
		Communication_Envoie_Donnee (Reseau->Pid_Agent, DEMANDE_NOTIFICATION_CRITIQUE_ETAT_PORT, (gpointer *) & Message, sizeof (Message), Reseau);
	}
	else {

		if (Port_Equipement->Alert_notification)
			Reseau->GList_Test_Etat = Supprime_Dans_Liste_Objets (Reseau->GList_Test_Etat, Objet, TRUE);
		if (Port_Equipement->Etat_Port == OUVERT) {
			Affiche_Icone_Defaut_Objet_liste (Objet, Reseau);
			Change_Couleur_Noir_Texte_liste (Objet, Reseau);
		}
		else {
			Affiche_Icone_Defaut_Griser_Objet_liste (Objet, Reseau);
			Change_Couleur_Gris_Texte_liste (Objet, Reseau);
		}
		Objet->Notification_En_Cours = FALSE;
		Port_Equipement->Notification_En_Cours = FALSE;
		Port_Equipement->Alert_notification = FALSE;
		bzero (&Message_Annulation, sizeof (struct struct_Annulation_Notification_Etat_Port));
		Message_Annulation.ID_Reseau = Objet->ID_Reseau;
		memcpy (Message_Annulation.ID_Equipement, Equipement_Selectionner->ID_Equipement, MAC_ADDR_LEN + IP_ADDR_LEN + 1);
		Message_Annulation.Num_Port = Port_Equipement->Num_Port;
		Communication_Envoie_Donnee (Reseau->Pid_Agent, ANNULATION_NOTIFICATION_ETAT_PORT, (gpointer *) & Message_Annulation, sizeof (Message_Annulation), Reseau);
	}
}


void Notification_Equipement (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Modele_Objet *Objet_Liste_Par_Ip,*Objet_Liste_Par_Type;
	struct Struct_Equipement *Equipement = NULL;
	struct Struct_Liste_Reseau *Reseau = NULL;
	GtkTreeModel *model = NULL;
	struct struct_Demande_Notication_Critique_Etat_Equipement Message;
	struct struct_Annulation_Notification_Etat_Equipement Message_Annulation;
	gint      Position_Glist;

	ERROR_if (pointer == NULL);
	Equipement = (struct Struct_Equipement *) Objet->Pointeur_Attacher;
	if (Equipement->ID_Equipement[6] == 0) {
		Modification_Toggle_En_Cours = TRUE;
		gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (toggletoolbutton_Notification), FALSE);
		Modification_Toggle_En_Cours = FALSE;
		return;
	}

	Objet_Liste_Par_Ip = Equipement->Objet_Liste_Par_Ip;
	Objet_Liste_Par_Type = Equipement->Objet_Liste_Par_Type;
	
	if (gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (toggletoolbutton_Notification))) {
		Objet_Liste_Par_Ip->Notification_En_Cours = TRUE;
		Objet_Liste_Par_Type->Notification_En_Cours = TRUE;
		Equipement->Notification_En_Cours = TRUE;
		bzero (&Message, sizeof (struct struct_Demande_Notication_Critique_Etat_Equipement));
		Message.ID_Reseau = Objet->ID_Reseau;
		memcpy (Message.ID_Equipement, Equipement->ID_Equipement, MAC_ADDR_LEN + IP_ADDR_LEN + 1);
		Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
		Communication_Envoie_Donnee (Reseau->Pid_Agent, DEMANDE_NOTIFICATION_CRITIQUE_ETAT_EQUIPEMENT, (gpointer *) & Message, sizeof (Message), Reseau);
		model = gtk_tree_view_get_model (GTK_TREE_VIEW (Widget_Liste (Objet_Liste_Par_Ip, Reseau)));
		gtk_tree_store_set (GTK_TREE_STORE (model), &Objet_Liste_Par_Ip->ID_Arbre_Ligne, NOTIFICATION, "YES", -1);
	}
	else {
		Objet_Liste_Par_Ip->Notification_En_Cours = FALSE;
		Objet_Liste_Par_Type->Notification_En_Cours = FALSE;
		Equipement->Notification_En_Cours = FALSE;
		Equipement->Alert_Notification_En_Cours = FALSE;
		bzero (&Message_Annulation, sizeof (struct struct_Annulation_Notification_Etat_Equipement));
		Message_Annulation.ID_Reseau = Objet->ID_Reseau;
		memcpy (Message_Annulation.ID_Equipement, Equipement->ID_Equipement, MAC_ADDR_LEN + IP_ADDR_LEN + 1);
		Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
		Communication_Envoie_Donnee (Reseau->Pid_Agent, ANNULATION_NOTIFICATION_ETAT_EQUIPEMENT, (gpointer *) & Message_Annulation, sizeof (Message_Annulation), Reseau);
		if ((Position_Glist = Recupere_Rang_Objet_Dans_Une_Liste (Reseau->GList_Test_Etat, Objet)) != -1)
			Reseau->GList_Test_Etat = Supprime_Dans_Liste_Objets (Reseau->GList_Test_Etat, Objet, TRUE);
		if (Equipement->Equipement_Allumer) {
			Affiche_Icone_Defaut_Objet_liste (Objet, Reseau);
			Change_Couleur_Noir_Texte_liste (Objet, Reseau);
		}
		else {
			Affiche_Icone_Defaut_Griser_Objet_liste (Objet, Reseau);
			Change_Couleur_Gris_Texte_liste (Objet, Reseau);
		}
		model = gtk_tree_view_get_model (GTK_TREE_VIEW (Widget_Liste (Objet_Liste_Par_Ip, Reseau)));
		gtk_tree_store_set (GTK_TREE_STORE (model), &Objet_Liste_Par_Ip->ID_Arbre_Ligne, NOTIFICATION, "", -1);
	}
}


void Action_Test_Notification (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;

	ERROR_if (pointer == NULL);
	Objet->Notification_En_Cours = !Objet->Notification_En_Cours;
}


void Action_Test_Click (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Liste_Reseau *Reseau = NULL;

	ERROR_if (pointer == NULL);
	Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
}


void Action_Selection_Equipement_Inconnu (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Equipement *Equipement = NULL;

	DEBUG_ACTION_USER();
	ERROR_if (pointer == NULL);
	Action_Selection_Equipement (pointer);
	Equipement = (struct Struct_Equipement *) Objet->Pointeur_Attacher;
	if ((Equipement->Nb_Port_Ouvert != 0) || (Equipement->Nb_Port_Fermer != 0)){	
		Wizard_Interface_Add_Fingerprinting_Page1();
		gtk_widget_show (window_wizard);
	}
}

void Action_Selection_Type_OU_Domaine (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;

	ERROR_if (pointer == NULL);
	if (Equipement_Selectionner!=NULL){
		Equipement_Selectionner = NULL;
		gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook_Info), FALSE);
		gtk_notebook_set_page(GTK_NOTEBOOK (notebook_Info),0);	
		Efface_Info_Utilisation_Disque();
		gtk_widget_set_sensitive (combobox_liste_Modules, FALSE);
		gtk_widget_set_sensitive (button_Refresh, FALSE);
		gtk_widget_hide (vbox_Milieu);
		Initialisation_Aucun_Module ();
	}
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO);
	Objet_Equipement_Selectionner = Objet;
	Ajouter_Nouvelle_Objet (INFO_TYPE_PARENT, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
	Ajouter_Nouvelle_Objet (INFO_PARENT_NB_FILS, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
}

void Action_Selection_Equipement (gpointer * pointer)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Modele_Objet *Objet_Nessus=NULL;
	struct Struct_Liste_Reseau *Reseau = NULL;
	struct Struct_Equipement *Equipement = NULL;
	struct Struct_Signature *Signature = NULL;
	struct Struct_Historique *Historique = NULL;
	struct Struct_Nessus *Nessus = NULL;
	struct struct_Demande_Rachaichir_Etat_Equipement Message;
	struct Struct_Modele_Objet *Objet_Text = NULL;
	gint      i, Nb_Objet_Liste;
	gchar     Texte_Registration_Netbios[100];
	gchar     Date[30], *Chaine_Historique = NULL;

	DEBUG_ACTION_USER();
	ERROR_if (pointer == NULL);
	Equipement = (struct Struct_Equipement *) Objet->Pointeur_Attacher;
	Equipement_Selectionner = Equipement;

	if (Objet_Equipement_Selectionner != Objet) {
		Objet_Equipement_Selectionner = Objet;
		Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
		if (Equipement->ID_Equipement[6] != 0) {
			gtk_widget_set_sensitive (combobox_liste_Modules, TRUE);
			gtk_widget_set_sensitive (button_Refresh, TRUE);
			gtk_widget_set_sensitive (button_Erase, FALSE);
			gtk_widget_set_sensitive (combobox_liste_Modules, TRUE);
			if (!Equipement->Agent_AutoScan){
			
				bzero (&Message, sizeof (struct struct_Demande_Rachaichir_Etat_Equipement));
				Message.ID_Reseau = Objet->ID_Reseau;
				memcpy (Message.ID_Equipement, Equipement->ID_Equipement, MAC_ADDR_LEN + IP_ADDR_LEN + 1);
				Communication_Envoie_Donnee (Reseau->Pid_Agent, DEMANDE_RAFRAICHIR_ETAT_EQUIMEMENT, (gpointer *) & Message, sizeof (Message), Reseau);
			}
			gtk_widget_show (vbox_Milieu);
		}
		else {
			gtk_widget_set_sensitive (combobox_liste_Modules, TRUE);
			gtk_widget_set_sensitive (button_Refresh, FALSE);
			gtk_widget_set_sensitive (button_Erase, TRUE);
			gtk_widget_show (vbox_Milieu);			
		}

		if (Equipement->Intrus) {
			Equipement->Intrus = FALSE;
			Reseau->GList_Alerte = Supprime_Dans_Liste_Objets (Reseau->GList_Alerte, Equipement->Objet_Liste_Par_Type, TRUE);
			Reseau->GList_Alerte = Supprime_Dans_Liste_Objets (Reseau->GList_Alerte, Equipement->Objet_Liste_Par_Ip, TRUE);
		
			Affiche_Icone_Defaut_Objet_liste (Equipement->Objet_Liste_Par_Type, Reseau);
			Change_Couleur_Noir_Texte_liste (Equipement->Objet_Liste_Par_Type, Reseau);
			Change_Bold_Texte_Liste (Equipement->Objet_Liste_Par_Type, FALSE, Reseau);
		
			Affiche_Icone_Defaut_Objet_liste (Equipement->Objet_Liste_Par_Ip, Reseau);
			Change_Couleur_Noir_Texte_liste (Equipement->Objet_Liste_Par_Ip, Reseau);
			Change_Bold_Texte_Liste (Equipement->Objet_Liste_Par_Ip, FALSE, Reseau);
		}
	
		Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO);
		Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_AUTRE);
		Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_SNMP);
		Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_INVENTAIRE);
		Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_HISTORIQUE);
		Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_NESSUS);
		
	
		gtk_notebook_set_page(GTK_NOTEBOOK (notebook_Info),Page_Notebook_Info);
	
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),2));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),3));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),4));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),5));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),6));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),7));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),8));
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),9));
	
	
		gtk_widget_set_sensitive (image_notebook_Info_Software,FALSE);		
		gtk_widget_set_sensitive (image_notebook_Info_Tcp,FALSE);		
		gtk_widget_set_sensitive (image_notebook_Info_Route,FALSE);	
		gtk_widget_set_sensitive (image_notebook_Info_Arp,FALSE);	
		gtk_widget_set_sensitive (image_notebook_Info_Peripherique,FALSE);	
		gtk_widget_set_sensitive (image_notebook_Info_Service,FALSE);	
		gtk_widget_set_sensitive (image_notebook_Info_Interface,FALSE);	
	
	
		gtk_widget_set_sensitive (treeview_Info_Software,FALSE);
		gtk_widget_set_sensitive (treeview_Info_Tcp,FALSE);
		gtk_widget_set_sensitive (treeview_Info_Route,FALSE);
		gtk_widget_set_sensitive (treeview_Info_Arp,FALSE);
		gtk_widget_set_sensitive (treeview_Info_Peripherique,FALSE);
		gtk_widget_set_sensitive (treeview_Info_Service,FALSE);
		gtk_widget_set_sensitive (treeview_Info_Interface,FALSE);
	
		gtk_widget_hide(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),12));		
	
		gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook_Info), TRUE);
				
		Objet_Text = Ajouter_Nouvelle_Objet (INFO_ADRESSE_IP, NULL, (gpointer *) Equipement->Adresse_Ip_Char, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
		if (!Equipement->Equipement_Allumer) {
			Affiche_Icone_Defaut_Griser_Objet_liste (Objet_Text, Reseau);
			Change_Couleur_Gris_Texte_liste (Objet_Text, Reseau);
		}
		Objet_Text = Ajouter_Nouvelle_Objet (INFO_ADRESSE_MAC, NULL, (gpointer *) Equipement->Adresse_MAC_Char, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
		if (!Equipement->Equipement_Allumer) {
			Affiche_Icone_Defaut_Griser_Objet_liste (Objet_Text, Reseau);
			Change_Couleur_Gris_Texte_liste (Objet_Text, Reseau);
		}
		Objet_Text = Ajouter_Nouvelle_Objet (INFO_FOURNISSEUR, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
		if (!Equipement->Equipement_Allumer) {
			Affiche_Icone_Defaut_Griser_Objet_liste (Objet_Text, Reseau);
			Change_Couleur_Gris_Texte_liste (Objet_Text, Reseau);
		}

		Objet_Text = Ajouter_Nouvelle_Objet (INFO_OS_MD5_W, NULL, NULL, NULL, INFO_OS, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
		
		Signature = (struct Struct_Signature *) Equipement->Signature;
		if (Signature != NULL) {
			if (Signature->Signature_Pere != NULL)
				Objet_Text = Ajouter_Nouvelle_Objet (INFO_OS_GROUP, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
		}
			
		if (Equipement->Nom_DNS_Complet != NULL)
			Ajouter_Nouvelle_Objet (INFO_NOM_DNS, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);

		if (Equipement->GateWay)
			Ajouter_Nouvelle_Objet (INFO_GATEWAY, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
		if (Equipement->Routage)
			Ajouter_Nouvelle_Objet (INFO_ROUTAGE, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);

	
		if (Equipement->Snmp_Ouvert){
			if (strlen (Equipement->Snmp.Uptime) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_UPTIME, NULL, (gpointer *) & Equipement->Snmp.Uptime, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
			if ((Equipement->Snmp.Cpu_Raw_User+Equipement->Snmp.Cpu_Raw_Nice+Equipement->Snmp.Cpu_Raw_System) > 0)
				Ajouter_Nouvelle_Objet (INFO_CPU, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
			if ((Equipement->Snmp.Mem_Total_Real) != -1)
				Ajouter_Nouvelle_Objet (INFO_MEM, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO);
			
		}
		Afficher_Utilisation_Disque();
		
		
	
		if (!Equipement->Agent_AutoScan)
			Objet_Text = Ajouter_Nouvelle_Objet (INFO_ALIAS, NULL, (gpointer *) & Equipement->Alias, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		Ajouter_Nouvelle_Objet (INFO_PORTS, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		Ajouter_Nouvelle_Objet (INFO_PORTS_OUVERT, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		Ajouter_Nouvelle_Objet (INFO_PORTS_FERMER, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		Ajouter_Nouvelle_Objet (INFO_PORTS_FIREWALLED, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		
		if (!Equipement->Agent_AutoScan)
			Ajouter_Nouvelle_Objet (INFO_PORTS_UDP_OPEN_FILTERED, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);

		Ajouter_Nouvelle_Objet (INFO_CONTACT_ADMIN, NULL, (gpointer *) & Equipement->Contact_Admin, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		Ajouter_Nouvelle_Objet (INFO_DERNIER_CHANGEMENT, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		if (Equipement->Temps_Scan_Port!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_PORT, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);  
		if (Equipement->Temps_Scan_Port_Udp!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_PORT_UDP, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);  
		if (Equipement->Temps_Scan_Signature!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SIGNATURE, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Service_Ftp!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SERVICE_FTP, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Service_Http!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SERVICE_HTTP, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Service_Imap!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SERVICE_IMAP, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Service_Smtp!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SERVICE_SMTP, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Service_Ssh!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SERVICE_SSH, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Service_Telnet!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SERVICE_TELNET, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Scan_Snmp!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_SNMP, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 
		if (Equipement->Temps_Resolv_DNS!=-1)
			Ajouter_Nouvelle_Objet (INFO_TEMPS_SCAN_DNS, NULL, NULL, NULL, INFO_TEMPS_SCAN_COMPLET, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE); 

		
		if (strlen (Equipement->Smb.HostName) != 0)
			Ajouter_Nouvelle_Objet (INFO_NOM_HOTE, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
		if (strlen (Equipement->Smb.DomainName) != 0) {
			Ajouter_Nouvelle_Objet (INFO_NOM_UTILISATEUR, NULL, NULL, NULL, INFO_NOM_DOMAINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
			i = 0;
			while ((i < NUM_MAX_REGISTRATION) && (Equipement->Smb.Smb_Registration[i].Type != 0)) {
				sprintf (Texte_Registration_Netbios, "%s <%02X>", Equipement->Smb.Smb_Registration[i].Name, Equipement->Smb.Smb_Registration[i].Numero);
				if (Equipement->Smb.Smb_Registration[i].Type == REGISTRATION_GROUP)
					strcat (Texte_Registration_Netbios, "GROUP ");
				if (Equipement->Smb.Smb_Registration[i].Type == REGISTRATION_UNIQUE)
					strcat (Texte_Registration_Netbios, "UNIQUE ");
				switch (Equipement->Smb.Smb_Registration[i].Numero) {
				    case 0x00:
					    if (Equipement->Smb.Smb_Registration[i].Type == REGISTRATION_UNIQUE)
						    strcat (Texte_Registration_Netbios, " Workstation Service");
					    else
						    strcat (Texte_Registration_Netbios, " Domain Name");
					    break;
				    case 0x01:
					    if (Equipement->Smb.Smb_Registration[i].Type == REGISTRATION_UNIQUE)
						    strcat (Texte_Registration_Netbios, " Messenger Service");
					    else
						    strcat (Texte_Registration_Netbios, " Master Browser");
					    break;
				    case 0x03:
					    strcat (Texte_Registration_Netbios, " Messenger Service");
					    break;
				    case 0x06:
					    strcat (Texte_Registration_Netbios, " RAS Server Service");
					    break;
				    case 0x1b:
					    strcat (Texte_Registration_Netbios, " Domain Master Browser");
					    break;
				    case 0x1c:
					    strcat (Texte_Registration_Netbios, " Domain Controllers");
					    break;
				    case 0x1d:
					    strcat (Texte_Registration_Netbios, " Master Browser");
					    break;
				    case 0x1e:
					    if (Equipement->Smb.Smb_Registration[i].Type == REGISTRATION_GROUP)
						    strcat (Texte_Registration_Netbios, " Browser Service Elections");
					    break;
				    case 0x1F:
					    strcat (Texte_Registration_Netbios, " NetDDE Service");
					    break;
				    case 0x20:
					    strcat (Texte_Registration_Netbios, " File Server Service");
					    break;
				    case 0x21:
					    strcat (Texte_Registration_Netbios, " RAS Client Service");
					    break;
				    case 0x22:
					    strcat (Texte_Registration_Netbios, " Microsoft Exchange Interchange(MSMail Connector)");
					    break;
				    case 0x23:
					    strcat (Texte_Registration_Netbios, " Microsoft Exchange Store");
					    break;
				    case 0x24:
					    strcat (Texte_Registration_Netbios, " Microsoft Exchange Directory");
					    break;
				    case 0x30:
					    strcat (Texte_Registration_Netbios, " Modem Sharing Server Service");
					    break;
				    case 0x31:
					    strcat (Texte_Registration_Netbios, " Modem Sharing Client Service");
					    break;
				    case 0x42:
					    strcat (Texte_Registration_Netbios, " Mcaffee Anti-Virus");
					    break;
				    case 0x43:
					    strcat (Texte_Registration_Netbios, " SMS Clients Remote Control");
					    break;
				    case 0x44:
					    strcat (Texte_Registration_Netbios, " SMS Administrators Remote Control Tool");
					    break;
				    case 0x45:
					    strcat (Texte_Registration_Netbios, " SMS Clients Remote Chat");
					    break;
				    case 0x46:
					    strcat (Texte_Registration_Netbios, " SMS Clients Remote Transfer");
					    break;
				    case 0x4C:
					    strcat (Texte_Registration_Netbios, " DEC Pathworks TCPIP service on Windows NT");
					    break;
				    case 0x52:
					    strcat (Texte_Registration_Netbios, " DEC Pathworks TCPIP service on Windows NT");
					    break;
				    case 0x6a:
					    strcat (Texte_Registration_Netbios, " Microsoft Exchange IMC");
					    break;
				    case 0x87:
					    strcat (Texte_Registration_Netbios, " Microsoft Exchange MTA");
					    break;
				    case 0xbe:
					    strcat (Texte_Registration_Netbios, " Network Monitor Agent");
					    break;
				    case 0xbf:
					    strcat (Texte_Registration_Netbios, " Network Monitor Application");
					    break;
				    default:
					    strcat (Texte_Registration_Netbios, " Unknown");
					    break;
				}
				Ajouter_Nouvelle_Objet (INFO_NETBIOS_ENFANT, Texte_Registration_Netbios, NULL, NULL, INFO_NETBIOS, NULL, INFO_NOM_DOMAINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_AUTRE);
				i++;
			}
		}
		
	
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_CONTACT, NULL, (gpointer *) & Equipement->Contact, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_TEL_CONTACT, NULL, (gpointer *) & Equipement->Tel_Contact, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_LOCALISATION, NULL, (gpointer *) & Equipement->Localisation, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_NUM_SERIE, NULL, (gpointer *) & Equipement->Num_Serie, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_NUM_SERIE_ECRAN, NULL, (gpointer *) & Equipement->Num_Serie_Ecran, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_NUM_SERIE_IMPRIMANTE, NULL, (gpointer *) & Equipement->Num_Serie_Imprimante, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_NUM_SERIE_OS, NULL, (gpointer *) & Equipement->Num_Serie_OS, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_NUM_SERIE_SUITE_OFFICE, NULL, (gpointer *) & Equipement->Num_Serie_Office_Suite, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_PROCESSEUR, NULL, (gpointer *) & Equipement->Processeur, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_MEMOIRE, NULL, (gpointer *) & Equipement->Memoire, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_DISQUE, NULL, (gpointer *) & Equipement->Disque, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);
		Ajouter_Nouvelle_Objet (INFO_INVENTAIRE_NOTES, NULL, (gpointer *) & Equipement->Notes, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_INVENTAIRE);

		
	
	
		if (Equipement->Snmp_Ouvert) {
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),2));
		
			if (strlen (Equipement->Snmp.System_Name) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_NAME, NULL, (gpointer *) & Equipement->Snmp.System_Name, NULL, PERE_RACINE, NULL, INFO_SNMP, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (strlen (Equipement->Snmp.Description) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_DESCRIPTION, NULL, (gpointer *) & Equipement->Snmp.Description, NULL, PERE_RACINE, NULL, INFO_SNMP, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (strlen (Equipement->Snmp.Contact) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_CONTACT, NULL, (gpointer *) & Equipement->Snmp.Contact, NULL, PERE_RACINE, NULL, INFO_SNMP, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (strlen (Equipement->Snmp.Location) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_LOCATION, NULL, (gpointer *) & Equipement->Snmp.Location, NULL, PERE_RACINE, NULL, INFO_SNMP, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (strlen (Equipement->Snmp.Uptime) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_UPTIME, NULL, (gpointer *) & Equipement->Snmp.Uptime, NULL, PERE_RACINE, NULL, INFO_SNMP, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Ram != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_SYSTEM_RAM, NULL, (gpointer *) Equipement->Snmp.Ram, NULL, PERE_RACINE, NULL, INFO_SNMP, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
		
			if (strlen (Equipement->Snmp.Ip_Forwarding) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_FORWARDING, NULL, (gpointer *) & Equipement->Snmp.Ip_Forwarding, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Default_TTL != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_TTL, NULL, (gpointer *) Equipement->Snmp.Default_TTL, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Reassembly_Timeout != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_REASS_TIMEOUT, NULL, (gpointer *) Equipement->Snmp.Reassembly_Timeout, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Need_To_Be_Reassembled != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_NEED_REASS, NULL, (gpointer *) Equipement->Snmp.Need_To_Be_Reassembled, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Reassembled != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_RE_ASSEM, NULL, (gpointer *) Equipement->Snmp.Reassembled, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Reassembly_Failures != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_REAS_FAIL, NULL, (gpointer *) Equipement->Snmp.Reassembly_Failures, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Successfully_Fragmented != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_SUCCESS_FRAG, NULL, (gpointer *) Equipement->Snmp.Successfully_Fragmented, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Fragmentation_Failures != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_FRAG_FAIL, NULL, (gpointer *) Equipement->Snmp.Fragmentation_Failures, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Created_Fragments != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_CREAT_FRAG, NULL, (gpointer *) Equipement->Snmp.Created_Fragments, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Discarded_Routing_Entries != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INFO_IP_DISC_ROUT, NULL, (gpointer *) Equipement->Snmp.Discarded_Routing_Entries, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INFO, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
		
			if (Equipement->Snmp.All != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_ALL, NULL, (gpointer *) Equipement->Snmp.All, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Forwarded != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_FORWARDED, NULL, (gpointer *) Equipement->Snmp.Forwarded, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Delivered != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_DELIVERED, NULL, (gpointer *) Equipement->Snmp.Delivered, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Header_Errors != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_HEADER, NULL, (gpointer *) Equipement->Snmp.Header_Errors, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Address_Errors != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_ADDRESS, NULL, (gpointer *) Equipement->Snmp.Address_Errors, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Unknown_Protocol != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_PROTOCOL, NULL, (gpointer *) Equipement->Snmp.Unknown_Protocol, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Input_Buffer_Errors != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_INPUT_BUFFER, NULL, (gpointer *) Equipement->Snmp.Input_Buffer_Errors, NULL, INFO_SNMP_NETWORK_TCPIP_IP_INPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
		
			if (Equipement->Snmp.Requested != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_OUPUT_REQUESTED, NULL, (gpointer *) Equipement->Snmp.Requested, NULL, INFO_SNMP_NETWORK_TCPIP_IP_OUPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Output_Buffer_Errors != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_OUPUT_BUFFER, NULL, (gpointer *) Equipement->Snmp.Output_Buffer_Errors, NULL, INFO_SNMP_NETWORK_TCPIP_IP_OUPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Not_Routed != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_NETWORK_TCPIP_IP_OUPUT_ROUTED, NULL, (gpointer *) Equipement->Snmp.Not_Routed, NULL, INFO_SNMP_NETWORK_TCPIP_IP_OUPUT, NULL, INFO_SNMP_NETWORK_TCPIP_IP, INFO_SNMP_NETWORK_TCPIP, INFO_SNMP_NETWORK, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			
		
			if (Equipement->Snmp.Mem_Total_Swap != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_TOTAL_SWAP, NULL, (gpointer *) Equipement->Snmp.Mem_Total_Swap, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Available_Swap != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_AVAILABLE_SWAP, NULL, (gpointer *) Equipement->Snmp.Mem_Available_Swap, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Total_Real != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_TOTAL_REAL, NULL, (gpointer *) Equipement->Snmp.Mem_Total_Real, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Available_Real != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_AVAILABLE_REAL, NULL, (gpointer *) Equipement->Snmp.Mem_Available_Real, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Total_Free != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_TOTAL_FREE, NULL, (gpointer *) Equipement->Snmp.Mem_Total_Free, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Shared != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_SHARED, NULL, (gpointer *) Equipement->Snmp.Mem_Shared, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Buffer != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_BUFFER, NULL, (gpointer *) Equipement->Snmp.Mem_Buffer, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Cached != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_CACHED, NULL, (gpointer *) Equipement->Snmp.Mem_Cached, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Mem_Swap_Error != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_SWAP_ERROR, NULL, (gpointer *) Equipement->Snmp.Mem_Swap_Error, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (strlen(Equipement->Snmp.Mem_Swap_Error_Message) != 0)
				Ajouter_Nouvelle_Objet (INFO_SNMP_MEM_SWAP_ERROR_MSG, NULL, (gpointer *) Equipement->Snmp.Mem_Swap_Error_Message, NULL, INFO_SNMP_MEM, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
		
			if (Equipement->Snmp.Cpu_Raw_User != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_USER, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_User, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Cpu_Raw_Nice != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_NICE, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_Nice, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Cpu_Raw_System != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_SYSTEM, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_System, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Cpu_Raw_Idle != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_IDLE, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_Idle, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Cpu_Raw_Wait != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_WAIT, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_Wait, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Cpu_Raw_Kernel != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_KERNEL, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_Kernel, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
			if (Equipement->Snmp.Cpu_Raw_Interrupt != -1)
				Ajouter_Nouvelle_Objet (INFO_SNMP_CPU_RAW_INTERRUPT, NULL, (gpointer *) Equipement->Snmp.Cpu_Raw_Interrupt, NULL, INFO_SNMP_CPU, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_SNMP);
		}
		
		if (Equipement->Glist_Snmp[SNMP_SOFTWARE] != NULL){
			Affiche_Liste_Snmp(SNMP_SOFTWARE,treeview_Info_Software);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),3));
		}
		if (Equipement->Glist_Snmp[SNMP_NETWORK_TCPIP_TCP_CONNECTIONS] != NULL){
			Affiche_Liste_Snmp(SNMP_NETWORK_TCPIP_TCP_CONNECTIONS,treeview_Info_Tcp);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),4));
		}
		if (Equipement->Glist_Snmp[SNMP_NETWORK_ROUTES] != NULL){
			Affiche_Liste_Snmp(SNMP_NETWORK_ROUTES,treeview_Info_Route);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),5));			
		}
		if (Equipement->Glist_Snmp[SNMP_NETWORK_ARP] != NULL){
			Affiche_Liste_Snmp(SNMP_NETWORK_ARP,treeview_Info_Arp);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),6));	
		}
		if (Equipement->Glist_Snmp[SNMP_SYSTEM_DEVICE] != NULL){
			Affiche_Liste_Snmp(SNMP_SYSTEM_DEVICE,treeview_Info_Peripherique);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),7));
		}
		if (Equipement->Glist_Snmp[SNMP_SYSTEM_SERVICE] != NULL){
			Affiche_Liste_Snmp(SNMP_SYSTEM_SERVICE,treeview_Info_Service);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),8));
		}
		if (Equipement->Glist_Snmp[SNMP_NETWORK_INTERFACES_BASIC] != NULL){
			Affiche_Liste_Snmp(SNMP_NETWORK_INTERFACES_BASIC,treeview_Info_Interface);
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),9));
		}
	
		
	
	
		Nb_Objet_Liste = g_list_length (Equipement->GList_Historique);
		for (i = 0; i < Nb_Objet_Liste; i++) {
			Historique = g_list_nth_data (Equipement->GList_Historique, i);
			ctime_r (&Historique->Date, Date);
			strcpy(Date,"....");  
			Date[strlen (Date) - 1] = '\0';
			Chaine_Historique = g_strdup_printf ("%s - %s", Date, Historique->Historique);
			switch (Historique->Niveau_Historique) {
			    case HISTORIQUE_INFO:
				    Ajouter_Nouvelle_Objet (INFO_HISTORIQUE_INFO, Chaine_Historique, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_HISTORIQUE);
				    break;
			    case HISTORIQUE_WARNING:
				    Ajouter_Nouvelle_Objet (INFO_HISTORIQUE_WARNING, Chaine_Historique, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_HISTORIQUE);
				    break;
			    case HISTORIQUE_ALERTE:
				    Ajouter_Nouvelle_Objet (INFO_HISTORIQUE_ALERTE, Chaine_Historique, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_HISTORIQUE);
				    break;
			    default:
				    debug_printf (INTERFACE, D_ERRO, __FILE__, __PRETTY_FUNCTION__, __LINE__, "Type Historique Inconnu");
			}
			MYFREE (Chaine_Historique);
		}
		
	
	
		if (Equipement->Scan_Nessus_En_Cours) {
			Objet_Nessus = Ajouter_Nouvelle_Objet (INFO_NESSUS, NULL, NULL, NULL, PERE_RACINE, NULL, PERE_RACINE, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours,LISTE_INFO_NESSUS);
			Objet_Nessus->Nb_Enfant = 0;
			if (Objet_Nessus != NULL)
				Active_Rachaichissment_Objet (Objet_Nessus, Reseau);
		}
	
		Nb_Objet_Liste = g_list_length (Equipement->GList_Nessus);
		if (Nb_Objet_Liste!=0){
			gtk_widget_show(gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook_Info),12));	
			for (i = 0; i < Nb_Objet_Liste; i++) {
				Nessus = g_list_nth_data (Equipement->GList_Nessus, i);
				switch (Nessus->Niveau_Nessus) {
				    case INFO_NIVEAU_NESSUS:
					    Ajouter_Nouvelle_Objet (INFO_NESSUS_ENFANT_INFO, Nessus->Info, NULL, NULL, INFO_NESSUS_INFO, NULL, INFO_NESSUS, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_NESSUS);
					    break;
				    case NOTE_NIVEAU_NESSUS:
					    Ajouter_Nouvelle_Objet (INFO_NESSUS_ENFANT_POTENTIEL, Nessus->Info, NULL, NULL, INFO_NESSUS_POTENTIEL, NULL, INFO_NESSUS, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_NESSUS);
					    break;
				    case HOLE_NIVEAU_NESSUS:
					    Ajouter_Nouvelle_Objet (INFO_NESSUS_ENFANT_VULNERABILITE, Nessus->Info, NULL, NULL, INFO_NESSUS_VULNERABILITE, NULL, INFO_NESSUS, PERE_RACINE, PERE_RACINE, PERE_RACINE, ID_Reseau_En_Cours, LISTE_INFO_NESSUS);
					    break;
				    default:
					    debug_printf (INTERFACE, D_ERRO, __FILE__, __PRETTY_FUNCTION__, __LINE__, "Type Nessus Inconnu");
				}
			}
		}
		
	
	
	
	
		if (Equipement->ID_Equipement[6] != 0) {
			Demande_Agent_Raffraichir_Tout_Liste_Snmp(Objet,Equipement,Reseau);
			Demande_Agent_Raffraichir_Snmp_Scalaire(Objet,Equipement,Reseau);
		}
		
	
	
		Efface_Combo (combobox_liste_Modules);
	
			creation_combo_milieu ();
	
	
	
	
	}
}



void Modification_Texte (gpointer * pointer, gchar * NewTexte)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	GtkTreeModel *model = NULL;

	ERROR_if (pointer == NULL);
	ERROR_if (NewTexte == NULL);
	debug_printf (INTERFACE, D_INFO, __FILE__, __PRETTY_FUNCTION__, __LINE__, "Edit_Texte_Liste_Machine");

	if (Objet->Chaine_Attacher == NULL)
		return;	
	if (Objet->Pointeur_Attacher == NULL)
		return;	
	if (strncmp (Objet->Chaine_Attacher, NewTexte, strlen (Objet->Chaine_Attacher)) != 0) {
		debug_printf (INTERFACE, D_INFO_USER, __FILE__, __PRETTY_FUNCTION__, __LINE__, "Syntaxe error");
		return;
	}


	if (*Objet->Pointeur_Attacher != NULL) {
	
		MYFREE (*Objet->Pointeur_Attacher);
		*Objet->Pointeur_Attacher = NULL;
	}

	if ((strlen (NewTexte + strlen (Objet->Chaine_Attacher)) != 0)
		&& (strcmp (NewTexte + strlen (Objet->Chaine_Attacher), "none") != 0)) {
	
		*Objet->Pointeur_Attacher = g_strdup (NewTexte + strlen (Objet->Chaine_Attacher));
		MYFREE (Objet->Texte_Defaut);
		Objet->Texte_Defaut = g_strdup (NewTexte);
	}
	else {
	
		MYFREE (Objet->Texte_Defaut);
		Objet->Texte_Defaut = g_strdup_printf (Liste_Modele_Objet[Objet->ID_Modele_Objet].Texte_Defaut, "none");
	}


	switch (Reseau_Selectionner->ID_Derniere_Liste_Selectionner) {
	    case LISTE_MACHINE_PAR_TYPE:
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (Reseau_Selectionner->Liste_Equipement_Type));
		    break;
		case LISTE_MACHINE_PAR_IP:
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (Reseau_Selectionner->Liste_Equipement_IP));
		    break;
	    case LISTE_INFO:
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Info));
		    break;
		case LISTE_INFO_AUTRE:
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Info_Autre));
		    break;
		case LISTE_INFO_SNMP:	
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Info_Snmp));
		    break;		
		case LISTE_INFO_INVENTAIRE:
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Info_Inventaire));
		    break;
		case LISTE_INFO_HISTORIQUE:
			model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Info_Historique));
		    break;
		case LISTE_INFO_NESSUS:
			model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Info_Nessus));
		    break;		
	    case LISTE_MODULE:
		    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_Modules));
		    break;
	}

	gtk_tree_store_set (GTK_TREE_STORE (model), &Objet->ID_Arbre_Ligne, COL_TEXT_LIST, Objet->Texte_Defaut, -1);

}

void Edit_Texte_Alias (gpointer * pointer, gchar * NewTexte)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Equipement *Equipement = NULL;
		
	ERROR_if (pointer == NULL);
	Modification_Texte (Objet, NewTexte);
	Deplace_Equipement (Objet_Equipement_Selectionner, Reseau_Selectionner);
	Equipement = (struct Struct_Equipement *) Objet_Equipement_Selectionner->Pointeur_Attacher;
	if (!Equipement->Equipement_Allumer) {
		Affiche_Icone_Defaut_Griser_Objet_liste (Objet_Equipement_Selectionner, Reseau_Selectionner);
		Change_Couleur_Gris_Texte_liste (Objet_Equipement_Selectionner, Reseau_Selectionner);
	}
}

void Edit_Texte_Liste_Machine (gpointer * pointer, gchar * NewTexte)
{
	Modification_Texte (pointer, NewTexte);

}


void Action_Click_Droit (gpointer * pointer, GdkEventButton * bev)
{
	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Liste_Reseau *Reseau = NULL;

	ERROR_if (pointer == NULL);
	Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
	Desactive_Rachaichissment_Objet (Objet, Reseau, TRUE);

}


void Efface_Toutes_Info_Equipement(){
	Equipement_Selectionner = NULL;
	Objet_Equipement_Selectionner = NULL;
	gtk_widget_set_sensitive (combobox_liste_Modules, FALSE);
	gtk_widget_set_sensitive (button_Refresh, FALSE);
	Modification_Toggle_En_Cours = TRUE;
	gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (toggletoolbutton_Notification), FALSE);
	gtk_widget_set_sensitive (toggletoolbutton_Notification, FALSE);
	Modification_Toggle_En_Cours = FALSE;
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_AUTRE);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_SNMP);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_INVENTAIRE);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_HISTORIQUE);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_NESSUS);
	gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook_Info), FALSE);
	gtk_notebook_set_page(GTK_NOTEBOOK (notebook_Info),0);	
	Efface_Info_Utilisation_Disque();
	Initialisation_Aucun_Module ();
	gtk_widget_hide (vbox_Milieu);
}


void Switch_Liste_IP(){
	if (Reseau_Selectionner==NULL)
		return; 
	Efface_Toutes_Info_Equipement();
	if (Reseau_Selectionner->Mode_Liste_Detaille) {
		g_object_ref (Reseau_Selectionner->Liste_Equipement_IP);
		gtk_container_remove (GTK_CONTAINER (Reseau_Selectionner->scrollwin), Reseau_Selectionner->Liste_Equipement_IP);
		gtk_container_add (GTK_CONTAINER (Reseau_Selectionner->scrollwin), Reseau_Selectionner->Liste_Equipement_Type);
		gtk_widget_show (Reseau_Selectionner->Liste_Equipement_Type);
	}
	else {	
		g_object_ref (Reseau_Selectionner->Liste_Equipement_Type);
		gtk_container_remove (GTK_CONTAINER (Reseau_Selectionner->scrollwin), Reseau_Selectionner->Liste_Equipement_Type);
		gtk_container_add (GTK_CONTAINER (Reseau_Selectionner->scrollwin), Reseau_Selectionner->Liste_Equipement_IP);
		gtk_widget_show (Reseau_Selectionner->Liste_Equipement_IP);
	}
	Reseau_Selectionner->Mode_Liste_Detaille = !Reseau_Selectionner->Mode_Liste_Detaille;
}



void Action_Switch_Mode_Detaille (gpointer * pointer, GdkEventButton * bev)
{
	ERROR_if (pointer == NULL);
	Switch_Liste_IP();
	/*	struct Struct_Modele_Objet *Objet = (struct Struct_Modele_Objet *) pointer;
	struct Struct_Liste_Reseau *Reseau = NULL;
	struct Struct_Modele_Objet *ObjetPere = NULL;
	struct Struct_Modele_Objet *Objet_Equipement = NULL;
	struct Struct_Equipement *Equipement = NULL;
	GtkTreeModel *model = NULL;
	GtkTreePath *path = NULL;
	guint     Nb_Objet_Liste, i, rangPere;

	ERROR_if (pointer == NULL);
	Equipement_Selectionner = NULL;
	Objet_Equipement_Selectionner = NULL;
	gtk_widget_set_sensitive (combobox_liste_Modules, FALSE);
	gtk_widget_set_sensitive (button_Refresh, FALSE);
	Modification_Toggle_En_Cours = TRUE;
	gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (toggletoolbutton_Notification), FALSE);
	gtk_widget_set_sensitive (toggletoolbutton_Notification, FALSE);
	Modification_Toggle_En_Cours = FALSE;
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_AUTRE);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_SNMP);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_INVENTAIRE);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_HISTORIQUE);
	Efface_Toute_Objet_Liste (Reseau_Selectionner, LISTE_INFO_NESSUS);
	gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook_Info), FALSE);
	gtk_notebook_set_page(GTK_NOTEBOOK (notebook_Info),0);	
	Efface_Info_Utilisation_Disque();
	
	Initialisation_Aucun_Module ();
	gtk_widget_hide (vbox_Milieu);

	Reseau = Recupere_Pointeur_Structure_Reseau (ID_Reseau_En_Cours);
	debug_printf (INTERFACE, D_INFO, __FILE__, __PRETTY_FUNCTION__, __LINE__, "Click Action_Switch_Mode_Detaille sur l'objet (%s)", Objet->Texte_Defaut);
	model = gtk_tree_view_get_model (GTK_TREE_VIEW (Widget_Liste (Objet, Reseau)));
	
	
	Switch_Mode = TRUE; 
	if (Reseau->Mode_Liste_Detaille) {
		gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (Reseau->Liste_Equipement), FALSE);
		Reseau->Mode_Liste_Detaille = FALSE;
		Nb_Objet_Liste = g_list_length (Reseau->GList_Liste_Equipement);
		i = 0;
		while ((Objet = g_list_nth_data (Reseau->GList_Liste_Equipement, i)) != NULL) {
			Objet = g_list_nth_data (Reseau->GList_Liste_Equipement, i);
			ObjetPere = (struct Struct_Modele_Objet *) Objet->Objet_Pere;
			rangPere = g_list_position (Reseau->GList_Liste_Equipement, g_list_find (Reseau->GList_Liste_Equipement, ObjetPere));
			if ((rangPere == -1) && (Objet->Nb_Enfant == 0)) {
			
				Desactive_Rachaichissment_Objet (Objet, Reseau, FALSE);
				Desactive_Alerte_Objet (Objet, Reseau, FALSE);
				Desactive_Test_Etat_Objet (Objet, Reseau, FALSE);
			
				Recupere_Nouveau_Pointeur_Liste (Objet, Reseau, Supprime_Dans_Liste_Objets (GList_Liste (Objet, Reseau), Objet, TRUE));
			
				gtk_tree_store_remove (GTK_TREE_STORE (model), &Objet->ID_Arbre_Ligne);
			
				if (Objet->Objet_Pere != NULL)
					Supprime_Objet_Liste ((struct Struct_Modele_Objet *) Objet->Objet_Pere, Reseau);
			
				Equipement = (struct Struct_Equipement *) Objet->Pointeur_Attacher;
				Objet_Equipement = Afficher_Nouveau_Equipement (Equipement, Objet->ID_Reseau);
				if (Equipement->Deplier) {
				
					path = gtk_tree_model_get_path (model, &Objet_Equipement->ID_Arbre_Ligne);
					gtk_tree_view_expand_to_path (GTK_TREE_VIEW (Widget_Liste (Objet_Equipement, Reseau)), path);
				}
				Restore_Different_Etat_Equipement ((struct Struct_Equipement *) Objet->Pointeur_Attacher, Objet_Equipement, Objet->ID_Reseau);
				free (Objet);
				i = 0;
			}
			else
				i++;
		}
	}
	else {
		Reseau->Mode_Liste_Detaille = TRUE;
		Sauve_Etat_Deplier_Objet_Equipement (Reseau);
		gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (Reseau->Liste_Equipement), TRUE);
		Nb_Objet_Liste = g_list_length (Reseau->GList_Liste_Equipement);
		i = 0;
		while ((Objet = g_list_nth_data (Reseau->GList_Liste_Equipement, i)) != NULL) {
			Objet = g_list_nth_data (Reseau->GList_Liste_Equipement, i);
			ObjetPere = (struct Struct_Modele_Objet *) Objet->Objet_Pere;
			rangPere = g_list_position (Reseau->GList_Liste_Equipement, g_list_find (Reseau->GList_Liste_Equipement, ObjetPere));
			if ((rangPere != -1) && (Objet->Nb_Enfant == 0)) {
			
				Desactive_Rachaichissment_Objet (Objet, Reseau, FALSE);
				Desactive_Alerte_Objet (Objet, Reseau, FALSE);
				Desactive_Test_Etat_Objet (Objet, Reseau, FALSE);
			
				Recupere_Nouveau_Pointeur_Liste (Objet, Reseau, Supprime_Dans_Liste_Objets (GList_Liste (Objet, Reseau), Objet, TRUE));
			
				gtk_tree_store_remove (GTK_TREE_STORE (model), &Objet->ID_Arbre_Ligne);
			
				if (Objet->Objet_Pere != NULL)
					Supprime_Objet_Liste ((struct Struct_Modele_Objet *) Objet->Objet_Pere, Reseau);
			
				Objet_Equipement = Afficher_Nouveau_Equipement_Liste_Detaille ((struct Struct_Equipement *) Objet->Pointeur_Attacher, Objet->ID_Reseau);
				Restore_Different_Etat_Equipement ((struct Struct_Equipement *) Objet->Pointeur_Attacher, Objet_Equipement, Objet->ID_Reseau);
				free (Objet);
				i = 0;
			}
			else
				i++;
		}
	}

	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(model), COL_TEXT_LIST, GTK_SORT_ASCENDING);
	Switch_Mode = FALSE;

	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
	gtk_tree_sortable_sort_column_changed(GTK_TREE_SORTABLE(model));
*/
}
