Sto programmando per un sistema embedded. Quando questo sistema si avvia, legge da un file di configurazione alcuni dati ed esegue le regole per mettere lo stato del sistema in base alla lettura della configurazione. Questa configurazione dipende dall'ambiente / requisiti di ogni cliente e può essere gestita tramite interfacce di gestione (come interfaccia Web).
Vorrei spiegarmi meglio: questo sistema integrato è un router domestico (CPE) per gli ISP. La configurazione per il router è memorizzata in una partizione flash e nel file system è incluso un file di configurazione predefinito incluso nell'immagine del firmware. Uno di questi ISP ci ha chiesto di rilasciare un nuovo firmware che dovrebbe includere una configurazione diversa per una delle interfacce di rete utilizzate dal router.
Il problema è che questo ISP non desidera eseguire un ripristino del file di configurazione predefinito nei CPE dei suoi clienti per non perdere la configurazione che ogni cliente ha salvato su di esso (come ESSID per l'interfaccia WLAN). L'ISP vuole che il firmware sia in grado di connettersi utilizzando il nuovo requisito per l'interfaccia di rete una volta che il CPE è stato aggiornato.
Uno dei miei colleghi lo ha proposto: all'avvio del nuovo firmware, controlla se l'interfaccia esiste nella configurazione CPE e, in caso contrario, la aggiunge durante l'avvio al file di configurazione.
Mi piacerebbe spiegarli (ISP e collaboratori) usando buoni motivi per cui il file di configurazione non dovrebbe essere modificato in fase di esecuzione tranne che per le interfacce di gestione.