• [^] # Re: Suggestion

    Posté par . En réponse à la dépêche Nouveau gestionnaire de profils réseaux: netswitch. Évalué à 1.

    dans /etc/dhcp3/dhclient.conf, rajouter :
    request smtp-server;
    
    Ecrire un script dans /etc/dhcp3/dhclient-exit-hooks.d/smtp du genre :
    #!/bin/sh
    smtp_setup() {
     # No need to continue if we're called with an unsupported option
     if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
     && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] \
     && [ "$reason" != EXPIRE ] && [ "$reason" != FAIL ]
     then
     return
     fi
     if [ -n "$new_smtp_server" ]; then
     echo "New smtp server : '$new_smtp_server'"
     server="$new_smtp_server"
     else
     server="son-serveur-avec-authentification" 
     echo "No smtp server : using default relay ($server)"
     fi
     old_server="`postconf -h relayhost`"
     if [ "$old_server" != "$server" ]; then
     postconf -e "relayhost=$server"
     invoke-rc.d postfix reload
     fi
    }
    smtp_setup
    
    Ce que je n'aime pas dans cette solution :
    • ne gère pas les configs non dhcp
    • ne gère pas les connexions multiples (filiaire + wifi par exemple)
    • pas assez souple dans la config (remplacer un serveur par un autre, choisir son serveur sur d'autres critères, ...)
    • ne marche pas si dhcp n'envoie pas l'info (dhcpd mal configuré par l'administrateur du site)
    • et bien sûr, le script en exemple est spécifique à postfix. Il faudrait faire la même chose pour les autres (exim[34], ...)
    Je pense qu'il faudrait quelque chose de beaucoup plus souple. Un truc ressemblant à resolvconf me semblerait pas mal (en fait, il y aurait surement pas mal de chose à unifier/partager dans ces deux systèmes...) En fait, il y a plusieurs étapes :
    1. Récupérer le/les serveurs smtp de l'interface (avec l'option dhcp, une config statique, ...), un peu comme resolvconf avec les réglages DNS ici.
    2. choisir le smtp qu'on veut réellement utiliser (avec une config par défaut correcte) en fonction de la liste précédemment récolté et/ou des configs/règles locales (par exemple, essayer aussi smtp.'domaine' ou mail.'domaine'
    3. mettre à jour la config des programmes qui en ont besoin (postfix, exim, ...)