/dev/null | /usr/bin/tr -s ' ' '\n'",$relinfo); array_shift($relinfo); $rellist = []; foreach($relinfo as $rel): $arel = preg_split("/\s+/",ltrim($rel)); $relname = chop($arel[0]); if(substr($relname,-1) === '*'): $relname = substr($relname,0,strlen($relname) - 1); endif; $rellist[$relname] = []; endforeach; return $rellist; } // Get all interface list. function get_all_interface_list() { global $g; exec("/bin/echo; /sbin/ifconfig -l | /usr/bin/tr -s ' ' '\n'; /bin/echo 'Config'",$linkinfo); array_shift($linkinfo); $iflist = []; foreach($linkinfo as $link): $alink = preg_split("/\s+/",ltrim($link)); $ifname = chop($alink[0]); if(substr($ifname,-1) === '*'): $ifname = substr($ifname,0,strlen($ifname) - 1); endif; $iflist[$ifname] = []; endforeach; return $iflist; } // Get jail infos. function get_jail_infos() { global $img_path; global $image_dir; global $configfile; global $jail_dir; $result = []; if(is_dir($jail_dir)): $cmd = '/usr/local/bin/bastille list jail 2>&1'; else: $cmd = ":"; endif; mwexec2($cmd,$rawdata); foreach($rawdata as $line): $a = preg_split('/\t/',$line); $r = []; $name = $a[0]; if(preg_match('/(.*)/', $name, $m)): $r['name'] = $m[1]; else: $r['name'] = '-'; endif; $r['jailname'] = $r['name']; // Set the JID on the running jails. $item = $r['jailname']; $r['id'] = exec("/usr/sbin/jls | /usr/bin/grep {$item} | /usr/bin/awk '{print $1}'"); if (!$r['id']): $r['id'] = "-"; endif; // Set the IPv4 on the running jails. //$r['ip'] = exec("/usr/sbin/jls | /usr/bin/grep {$item} | /usr/bin/awk '{print $2}'"); $r['ip'] = exec("/usr/bin/grep -w 'ip4.addr' {$jail_dir}/{$item}/jail.conf | /usr/bin/awk '{print $3}' | /usr/bin/tr -d ';'"); if (!$r['ip']): $r['ip'] = "-"; endif; // Display interfaces. $r['nic'] = exec("/usr/bin/grep -w 'interface' {$jail_dir}/{$item}/jail.conf | /usr/bin/awk '{print $3}' | /usr/bin/tr -d ';'"); if (!$r['nic']): $r['nic'] = "-"; endif; // Display path. $r['path'] = exec("/usr/bin/grep -w 'path' {$jail_dir}/{$item}/jail.conf | /usr/bin/awk '{print $3}' | /usr/bin/tr -d ';'"); if (!$r['path']): $r['path'] = "-"; endif; // Display auto-start settings. $jail_autostart = exec("/usr/sbin/sysrc -qn -f {$configfile} {$item}_AUTO_START"); if ($jail_autostart == 'YES') { $r['boot'] = $img_path['ena']; } elseif ($jail_autostart == 'NO') { $r['boot'] = $img_path['dis']; } else { $r['boot'] = $img_path['dis']; } // Display running status icons. $jail_running = exec("/usr/sbin/jls | /usr/bin/grep -w {$item}"); if ($jail_running): $r['stat'] = $img_path['ena']; else: $r['stat'] = $img_path['dis']; endif; // Display custom template icons if available. $item = $item; $template_icon = "{$image_dir}/{$item}_icon.png"; if(file_exists($template_icon)): $r['logo'] = "{$image_dir}/{$item}_icon.png"; else: // Display standard FreeBSD icon. $r['logo'] = "{$image_dir}/bsd_icon.png"; endif; $result[] = $r; endforeach; return $result; } ?>