|
|
|
@@ -14,7 +14,6 @@
|
|
|
|
|
// Prototypes :
|
|
|
|
|
void gestion_reseaux(void);
|
|
|
|
|
int8_t init_reseaux(void);
|
|
|
|
|
int8_t connexion_ship2net();
|
|
|
|
|
int8_t process_webgl(uint8_t no);
|
|
|
|
|
int8_t get_ip_address(void);
|
|
|
|
|
int8_t get_ssid_list(void);
|
|
|
|
@@ -49,7 +48,6 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|
|
|
|
if (reseaux.sequenceur.compteur == 0)
|
|
|
|
|
{
|
|
|
|
|
reseaux.compteur_check_adresses_ip = RESEAUX_PERIODE_CHECK_ADRESSE_IP_INIT; // En plaçant l'init de la tempo ici, on est sûr qu'elle démarre après la phase d'initialisation
|
|
|
|
|
reseaux.compteur_connexion_ship2net = RESEAUX_PERIODE_CONNEXION_SHIP2NET_INIT;
|
|
|
|
|
reseaux.compteur_scan_sta = RESEAUX_PERIODE_SCAN_WIFI_STA_INIT;
|
|
|
|
|
reseaux.compteur_check_webgl = RESEAUX_PERIODE_CHECK_WEBGL_INIT;
|
|
|
|
|
|
|
|
|
@@ -99,15 +97,6 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|
|
|
|
break; // Pas obligatoire mais permet de lisser la charge
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//==================================
|
|
|
|
|
// Connexion Ship2net :
|
|
|
|
|
if ((reseaux.periode_connexion_ship2net != 0) && (reseaux.compteur_connexion_ship2net == 0))
|
|
|
|
|
{
|
|
|
|
|
reseaux.compteur_connexion_ship2net = reseaux.periode_connexion_ship2net;
|
|
|
|
|
connexion_ship2net();
|
|
|
|
|
break; // Pas obligatoire mais permet de lisser la charge
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//==================================
|
|
|
|
|
// Processus WebGL :
|
|
|
|
|
if (reseaux.compteur_check_webgl == 0)
|
|
|
|
@@ -773,15 +762,6 @@ int8_t init_reseaux(void)
|
|
|
|
|
{
|
|
|
|
|
uint8_t i;
|
|
|
|
|
|
|
|
|
|
if (systeme.generation_shipbase == GENERATION_SHIPBASE_V1)
|
|
|
|
|
{
|
|
|
|
|
reseaux.compteur_connexion_ship2net = 0;
|
|
|
|
|
reseaux.periode_connexion_ship2net = 0; // Permet de "bloquer" toute connexion réseau (la connexion se fait alors par 'modem.c')
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// L'init des compteurs se fait dans la phase d'init du séquenceur. Cela permet de les déclncher après la tempo d'init du séquenceur.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Variables générales :
|
|
|
|
|
strcpy(reseaux.ethernet.adresse_ip, ADRESSE_IP_INCONNUE);
|
|
|
|
@@ -806,62 +786,6 @@ uint8_t i;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//==================================================================================================================================================================
|
|
|
|
|
// Fonction : Lancement de l'utilitaire de connexion à ship2net
|
|
|
|
|
// Reçoit : Rien
|
|
|
|
|
// Renvoit : 0 si aucune erreur, -1 si une erreur a été détectée
|
|
|
|
|
//==================================================================================================================================================================
|
|
|
|
|
int8_t connexion_ship2net(void)
|
|
|
|
|
{
|
|
|
|
|
int8_t retour = 0;
|
|
|
|
|
int32_t pid_nb;
|
|
|
|
|
char commande[MAX_TAILLE_COMMANDE_SHELL];
|
|
|
|
|
char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Récupération du nombre de process incluant 'connexion_ship2net.php' :
|
|
|
|
|
pid_nb = get_pid_numbers_from_name(NOM_FICHIER_CONNEXION_SHIP2NET, "");
|
|
|
|
|
|
|
|
|
|
// Connexion si aucun processus équivalent n'est déjà en cours :
|
|
|
|
|
if (pid_nb <= 0) // Il ny a aucun processus de connexion à Ship2net en cours...
|
|
|
|
|
{
|
|
|
|
|
sprintf(download.nom_repertoire_source, "%s/%s%s/", REPERTOIRE_SERVEUR, conversion_adresse_mac_chaine(systeme.modules_physiques[0].adresse_mac, tmp, '_'), REPERTOIRE_DOWNLOAD_SOURCE);
|
|
|
|
|
sprintf(commande, "runuser -l koriolan --session-command='nice -n 18 php %s/%s %s >%s/%s &'", REPERTOIRE_UTILS, NOM_FICHIER_CONNEXION_SHIP2NET, conversion_adresse_mac_chaine(systeme.modules_physiques[0].adresse_mac, tmp, '_'), REPERTOIRE_LOGS, NOM_FICHIER_CONNEXION_SHIP2NET_LOG); // AVEC '&' de terminaison car c'était bien l'objectif, de faire exécuter cette tâche en tâche de fond...!
|
|
|
|
|
// Attention : le lancement de la commande ne doit PAS se faire depuis 'root' car la gestion des mots de passe est faite sur le user 'koriolan'.... Comme l'appli est lancée via 'sudo', il faut demander explicitement l'éxécution de la commande depuis le user 'koriolan'.
|
|
|
|
|
|
|
|
|
|
commande_shell(commande);
|
|
|
|
|
|
|
|
|
|
if (pid_nb == 0)
|
|
|
|
|
{
|
|
|
|
|
if (systeme.compteur_check_new_download > RESEAUX_PERIODE_CHECK_DOWWNLOAD_APRES_CONNEXION) // SDIR #295
|
|
|
|
|
{
|
|
|
|
|
systeme.compteur_check_new_download = RESEAUX_PERIODE_CHECK_DOWWNLOAD_APRES_CONNEXION; // SDIR #196 : Raccourci la tempo pour qu'une vérification soir effectuée 60s après la connexion
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sprintf(tmp, "La commande de connexion à Ship2net [%s] vient d'être lancée en tâche de fond car aucun processus équivalent n'a été détecté en cours d'exécution", commande);
|
|
|
|
|
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_OK);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sprintf(tmp, "Le retour de recherche de processus de connexion à Ship2net en cours a détecté une erreur (%i). La connexion demandée est exécutée quand même...", pid_nb);
|
|
|
|
|
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_WARNING);
|
|
|
|
|
|
|
|
|
|
retour = -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else // Il y a déjà un processus en cours :
|
|
|
|
|
{
|
|
|
|
|
sprintf(tmp, "Au moins un processus de connexion à Ship2net a été détecté en cours d'exécution (nb = %i). La connexion demandée n'est donc pas exécutée...", pid_nb);
|
|
|
|
|
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_WARNING);
|
|
|
|
|
|
|
|
|
|
retour = -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return(retour);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//==================================================================================================================================================================
|
|
|
|
|
// Fonction : Lancement de l'utilitaire de lancement/arrêt d'un process WebGL
|
|
|
|
|
// Reçoit : le n° de process WebGL à traiter (entre 0 et MAX_NOMBRE_PROCESS_WEBGL)
|
|
|
|
|