2025-09-15 17:41:11 +02:00
|
|
|
|
## Calculer la complexité
|
|
|
|
|
|
|
|
|
|
## damemon.c
|
|
|
|
|
|
2025-09-18 13:25:33 +02:00
|
|
|
|
- Fonction create_daemon: complixité cyclomatique de 4
|
|
|
|
|
- Fonction ping_request: complixité cyclomatique de 1
|
|
|
|
|
- Fonction send_check: complixité cyclomatique de 3
|
|
|
|
|
- Fonction check_keep_working: complixité cyclomatique de 4
|
|
|
|
|
- Fonction daemon_work: complixité cyclomatique de 3
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
|
|
|
|
## db-sqlite.c
|
|
|
|
|
|
2025-09-18 13:25:33 +02:00
|
|
|
|
- Fonction db_connect : complixité cyclonique de 1
|
|
|
|
|
- db_disconnect : 1
|
|
|
|
|
- insert_hourly_report: 1
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
|
|
|
|
## ping-report.c
|
|
|
|
|
|
2025-09-18 13:25:33 +02:00
|
|
|
|
- main : complixité cyclonique de 4
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
|
|
|
|
## stats.c
|
|
|
|
|
|
2025-09-18 13:25:33 +02:00
|
|
|
|
- get_ping_from_temp_log : complixité cyclonique de 15
|
|
|
|
|
- write_ping_log: complixité cyclonique de 4
|
|
|
|
|
- set_stats_ping : complixité cyclonique de 13
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
|
|
|
|
## utils.c
|
|
|
|
|
|
2025-09-18 13:25:33 +02:00
|
|
|
|
- write_pid_file : complixité cyclonique de 2
|
|
|
|
|
- remove_file : complixité cyclonique de 1
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
2025-09-19 19:54:42 +02:00
|
|
|
|
# Shéma des deux fonctions
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
2025-09-18 13:19:43 +02:00
|
|
|
|
## Get_ping_from_temp_log
|
|
|
|
|
|
2025-09-19 19:54:42 +02:00
|
|
|
|
[Get_ping_from_temp_log (PDF)](pdf/Diagramme_get_ping_from_temp_log.pdf)
|
2025-09-18 13:19:43 +02:00
|
|
|
|
|
|
|
|
|
## Set_stats_ping
|
|
|
|
|
|
2025-09-19 19:54:42 +02:00
|
|
|
|
[Set_stats_ping (PDF)](pdf/Diagramme_set_stats_ping.pdf)
|
2025-09-18 13:19:43 +02:00
|
|
|
|
|
|
|
|
|
## Objectif
|
|
|
|
|
- Découper les fonctions en unités simples et réutilisables.
|
|
|
|
|
- Réduire l’imbrication des conditions pour rendre le code plus clair.
|
|
|
|
|
- Sécuriser les calculs (éviter la division par zéro).
|
|
|
|
|
- Faciliter la maintenance et la lecture.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🔹 Découpage de `get_ping_from_temp_log`
|
|
|
|
|
|
|
|
|
|
### 1. `extract_ping_from_line`
|
|
|
|
|
- Rôle : s’occuper uniquement de l’extraction via regex.
|
|
|
|
|
- Prend une ligne en entrée.
|
|
|
|
|
- Retourne la valeur du ping si trouvée, sinon erreur.
|
|
|
|
|
|
|
|
|
|
### 2. `read_ping_from_file`
|
|
|
|
|
- Rôle : lecture du fichier et appel à `extract_ping_from_line`.
|
|
|
|
|
- Parcourt toutes les lignes.
|
|
|
|
|
- Retourne le premier ping trouvé ou `NULL`.
|
|
|
|
|
|
|
|
|
|
### 3. `get_ping_from_temp_log`
|
|
|
|
|
- Alias avec le chemin en dur :
|
|
|
|
|
```c
|
|
|
|
|
return read_ping_from_file("/var/log/ping-report/last-ping.log");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 🔹 Inversion des conditions: `set_stats_ping`
|
|
|
|
|
|
|
|
|
|
- Plutot que d'imbriquer des if ... else , on fait if(...){ continue; } quand on veut ignorer une ligne
|
|
|
|
|
- Moins de niveaux de blocs if dans un if
|
|
|
|
|
- Sécurisation : si nb_ping == 0, la moyenne reste 0.0 => evite une division par zéro
|
2025-09-15 17:41:11 +02:00
|
|
|
|
|
|
|
|
|
|