Hostname incorrecte

Bonjour,

Ne faudrait-il pas supprimer la ligne 323 (commentée ci-dessous)

if (!array_key_exists($mac,$result)) {
      $result[$mac]['mac'] = $mac;
      $result[$mac]['hostname'] = $hostname;
      $result[$mac]['rssi'] = 0;
      $result[$mac]['internet'] = 1;
      $result[$mac]['connexion'] = 'ethernet';
      $result[$mac]['ap'] = $asus_mac;
    }
//$result[$mac]['hostname'] = $hostname;

qui a pour effet de réécraser le hostname des équipements en DHCP dans tout les cas alors que cela est fait uniquement si besoin dans le test qui est juste avant.

En la supprimant, je récupère bien les hostname alors que ce n’était pas le cas avant.

Merci.

1 « J'aime »

De même, pour les hostname des équipements qui sont en static pour lesquels on doit ajouter les entrées dans le fichier /jffs/configs/dnsmasq.conf.add

Le séparateur indiqué dans le awk est un « / » alors que le fichier utilise des virgules.

Du coup, pour que cela fonctionne, j’ai remplacé à la ligne 431 :

$stream = ssh2_exec($connection, "cat /jffs/configs/dnsmasq.conf.add | grep " . $array['ip'] . "$ | awk -F'/' '{print $2}'");

par

$stream = ssh2_exec($connection, "cat /jffs/configs/dnsmasq.conf.add | grep " . $array['ip'] . "$ | awk -F',' '{print $2}'");

De cette façon, j’obtiens bien les hostname des équipements configurés avec une IP statique renseignés dans le fichier /jffs/configs/dnsmasq.conf.add

Ce séparateur serait-il différent suivant les versions de routeurs ? Dans mon cas, j’utilise un RT-AC88U avec la dernière version 386.3_2 de Merlin.

Bonjour @lunarok,

Les alertes sur tag de plugin ne fonctionnant plus dans Discourse pour le moment et vu le nombre de plugin que tu dois avoir à suivre, je me permet de te tagguer ou cas ou tu n’aurais pas vu mon message. Dans le cas contraire, désolé si tu as déjà vu mon message.

D’autre part, lorsque l’on va sur la configuration d’une commande d’un équipement, on a l’erreur JS suivante :

Il semblerait que cela soit du à un « \n » qui traine à la fin du hostname lorsqu’il est récupéré au travers du fichier dsnmasq.leases. Ce « \n » se retrouve ensuite dans le nom de l’équipement lors de sa creation et pose problème lors de l’affichage de la configuration des commandes.

En remplacant à la ligne 228 :

$result[$mac]['hostname'] = $array[2];

par

$result[$mac]['hostname'] = rtrim($array[2],"\n");

cela supprime bien le « \n » à la fin du hostname.

Néanmoins, il faut quand même corriger le nom de l’équipement pour ceux qui existent déjà (en le sauvegardant).