Bug Dnsmasq : enregistrements dns et alias (+Fix)

Une coquille dans l'interface Artica, des bugs....

Bug Dnsmasq : enregistrements dns et alias (+Fix)

New postby corpo » Thu Jun 30, 2016 8:05 am

Bonjour à tous (j'ai rempli un bug sur bugs.articatech.com)

J'ai trouvé un bug dans la dernière version d'Artica : quand on ajoute un enregistrement DNS dans le serveur DNS simple, si on ne spécifie pas d'alias, il en est quand même créé un si l'hôte est un FQDN.
intranet.domaine.com se retrouve avec un alias intranet (ce qui est problématique s'il existe intranet.domaine2.com, car seul le dernier défini devient accessible)
Par contre, si on spécifie un alias, il est correctement créé et l'alias "automatique" n'est pas utilisé.
Si on spécifie plusieurs alias, seul le dernier est conservé.

Ces résultats sont visibles dans le fichier /etc/hosts

Le soucis réside dans le fichier exec.virtuals-ip.php, dans la fonction etc_hosts().

Il faut remplacer
Code: Select all
$q=new mysql_squid_builder();

$sql="SELECT * FROM dnsmasq_records";
$results=$q->QUERY_SQL($sql);
if(!$q->ok){echo $q->mysql_error."\n"; return; }

while ($ligne = mysql_fetch_assoc($results)) {
   $ipaddr=trim($ligne["ipaddr"]);
   $hostname=trim($ligne["hostname"]);
   
   if(strpos($hostname, ".")>0){
         $hostname_EXPLODED=explode(".",$hostname);.
         $alias=$hostname_EXPLODED[0];.
   }
   
   $results2=$q->QUERY_SQL("SELECT hostname FROM dnsmasq_cname WHERE recordid={$ligne["ID"]}");
   $aliases=array();
   while ($ligne2 = mysql_fetch_assoc($results2)) {
      if(trim($ligne2["hostname"])==null){continue;}
      $alias=$ligne2["hostname"];
      break;
   }
   $lineExe=trim("{$ipaddr}\t{$hostname}\t{$alias}");
   $GLOBALS["SCRIPTS"][]="$echo \"$lineExe\" >> /etc/hosts";

}


par

Code: Select all
$q=new mysql_squid_builder();

$sql="SELECT * FROM dnsmasq_records";
$results=$q->QUERY_SQL($sql);
if(!$q->ok){echo $q->mysql_error."\n"; return; }

while ($ligne = mysql_fetch_assoc($results)) {
   $ipaddr=trim($ligne["ipaddr"]);
   $hostname=trim($ligne["hostname"]);
   $alias="";
   
   $results2=$q->QUERY_SQL("SELECT hostname FROM dnsmasq_cname WHERE recordid={$ligne["ID"]}");
   while ($ligne2 = mysql_fetch_assoc($results2)) {
      $alias.=$ligne2["hostname"]."\t";
   }

   $lineExe=trim("{$ipaddr}\t{$hostname}\t{$alias}");
   $GLOBALS["SCRIPTS"][]="$echo \"$lineExe\" >> /etc/hosts";

}
corpo
 
Posts: 12
Joined: Fri Jan 14, 2011 2:33 pm
Artica servers number: 1
Linux System: Debian
Technical skills: A Linux System Administrator

Re: Bug Dnsmasq : enregistrements dns et alias (+Fix)

New postby admin » Thu Jun 30, 2016 9:42 am

Merci, on a fait les modifications dans notre code
User avatar
admin
Site Admin
 
Posts: 11946
Joined: Wed Oct 17, 2007 7:59 am
Location: France


Return to Interface d'administration

Who is online

Users browsing this forum: No registered users and 10 guests

cron