function __construct($core) { $config = ParseConfig($core, 'DatabaseConfig.json'); if (!$config['Database']['UseDatabase']) { return; } $db = new mysqli($config['Database']['Server'], $config['Database']['Username'], $config['Database']['Password'], $config['Database']['Database']); if ($db->connect_errno > 0) { die('Unable to connect to database, ' . $db->connect_error); } $this->Database = $db; $this->Config = $config; }
function AddConfigPath($path, $pattern = "*.cfg", $level = 0) { $configs = array(); $files = glob("{$path}/{$pattern}"); foreach ($files as $file) { $bn = basename($file); $configs[$bn] = ParseConfig($file); } foreach (glob("{$path}/*", GLOB_ONLYDIR | GLOB_NOSORT) as $dir) { $bn = basename($dir); $configs[$bn] = AddConfigPath("{$dir}", $pattern, $level + 1); } ksort($configs); return $configs; }
/** * * */ function DisplayDHCPConfig() { exec('cat ' . RASPI_DNSMASQ_CONFIG, $return); $conf = ParseConfig($return); $arrRange = explode(",", $conf['dhcp-range']); $RangeStart = $arrRange[0]; $RangeEnd = $arrRange[1]; $RangeMask = $arrRange[2]; preg_match('/([0-9]*)([a-z])/i', $arrRange[3], $arrRangeLeaseTime); switch ($arrRangeLeaseTime[2]) { case "h": $hselected = " selected"; break; case "m": $mselected = " selected"; break; case "d": $dselected = " selected"; break; } exec('pidof dnsmasq | wc -l', $dnsmasq); if ($dnsmasq[0] == 0) { $status = '<div class="alert alert-warning alert-dismissable">Dnsmasq is not running<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>'; } else { $status = '<div class="alert alert-success alert-dismissable">Dnsmasq is running<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>'; } ?> <div class="row"> <div class="col-lg-12"> <div class="panel panel-primary"> <div class="panel-heading"><i class="fa fa-exchange fa-fw"></i> Configure DHCP </div> <!-- /.panel-heading --> <div class="panel-body"> <!-- Nav tabs --> <ul class="nav nav-tabs"> <li class="active"><a href="#server-settings" data-toggle="tab">Server settings</a> </li> <li><a href="#client-list" data-toggle="tab">Client list</a> </li> </ul> <!-- Tab panes --> <div class="tab-content"> <p><?php echo $status; ?> </p> <div class="tab-pane fade in active" id="server-settings"> <h4>DHCP server settings</h4> <form method="POST" action="?page=dhcpd_conf"> <div class="row"> <div class="form-group col-md-4"> <label for="code">Interface</label> <select class="form-control" name="interface"> <?php exec("cat /proc/net/dev | tail -n -3 | awk -F :\\ ' { print \$1 } ' | tr -d ' '", $interfaces); foreach ($interfaces as $int) { $select = ''; if ($int == $conf['interface']) { $select = " selected"; } echo '<option value="' . $int . '"' . $select . '>' . $int . '</option>'; } ?> </select> </div> </div> <div class="row"> <div class="form-group col-md-4"> <label for="code">Starting IP Address</label> <input type="text" class="form-control"name="RangeStart" value="<?php echo $RangeStart; ?> " /> </div> </div> <div class="row"> <div class="form-group col-md-4"> <label for="code">Ending IP Address</label> <input type="text" class="form-control" name="RangeEnd" value="<?php echo $RangeEnd; ?> " /> </div> </div> <div class="row"> <div class="form-group col-xs-2 col-sm-2"> <label for="code">Lease Time</label> <input type="text" class="form-control" name="RangeLeaseTime" value="<?php echo $arrRangeLeaseTime[1]; ?> " /> </div> <div class="col-xs-2 col-sm-2"> <label for="code">Interval</label> <select name="RangeLeaseTimeUnits" class="form-control" ><option value="m" <?php echo $mselected; ?> >Minutes</option><option value="h" <?php echo $hselected; ?> >Hours</option><option value="d" <?php echo $dselected; ?> >Days</option><option value="infinite">Infinite</option></select> </div> </div> <input type="submit" class="btn btn-outline btn-primary" value="Save settings" name="savedhcpdsettings" /> <?php if ($dnsmasq[0] == 0) { echo '<input type="submit" class="btn btn-success" value="Start dnsmasq" name="startdhcpd" />'; } else { echo '<input type="submit" class="btn btn-warning" value="Stop dnsmasq" name="stopdhcpd" />'; } ?> </form> </div><!-- /.tab-pane --> <div class="tab-pane fade in" id="client-list"> <h4>Client list</h4> <div class="col-lg-12"> <div class="panel panel-default"> <div class="panel-heading"> Active DHCP leases </div> <!-- /.panel-heading --> <div class="panel-body"> <div class="table-responsive"> <table class="table table-hover"> <thead> <tr> <th>Expire time</th> <th>MAC Address</th> <th>IP Address</th> <th>Host name</th> <th>Client ID</th> </tr> </thead> <tbody> <tr> <?php exec('cat ' . RASPI_DNSMASQ_LEASES, $leases); foreach ($leases as $lease) { $lease_items = explode(' ', $lease); foreach ($lease_items as $lease_item) { echo '<td>' . $lease_item . '</td>'; } echo '</tr>'; } ?> </tr> </tbody> </table> </div><!-- /.table-responsive --> </div><!-- /.panel-body --> </div><!-- /.panel --> </div><!-- /.col-lg-6 -->' <?php if (isset($_POST['savedhcpdsettings'])) { $config = 'interface=' . $_POST['interface'] . ' dhcp-range=' . $_POST['RangeStart'] . ',' . $_POST['RangeEnd'] . ',255.255.255.0,' . $_POST['RangeLeaseTime'] . '' . $_POST['RangeLeaseTimeUnits']; exec('echo "' . $config . '" > /tmp/dhcpddata', $temp); system('sudo cp /tmp/dhcpddata ' . RASPI_DNSMASQ_CONFIG, $return); if ($return == 0) { echo "Dnsmasq configuration updated successfully"; } else { echo "Dnsmasq configuration failed to be updated"; } } if (isset($_POST['startdhcpd'])) { $line = system('sudo /etc/init.d/dnsmasq start', $return); echo "Attempting to start dnsmasq"; } if (isset($_POST['stopdhcpd'])) { $line = system('sudo /etc/init.d/dnsmasq stop', $return); echo "Stopping dnsmasq"; } ?> </div><!-- /.tab-pane --> </div><!-- /.tab-content --> </div><!-- ./ Panel body --> <div class="panel-footer"> Information provided by Dnsmasq</div> </div><!-- /.panel-primary --> </div><!-- /.col-lg-12 --> </div><!-- /.row --> <?php }
<input class="button" type="button" value="Einstellungen" name="wpa_conf" onclick="document.location='?page='+this.name" /> <!-- <input class="button" type="button" value="Configure Hotspot" name="hostapd_conf" onclick="document.location=\'?page=\'+this.name" /> <input class="button" type="button" value="Configure DHCP Server" name="dhcpd_conf" onclick="document.location=\'?page=\'+this.name" /> --> </div> <div class="wifi_content"> <?php switch ($page) { case "dhcpd_conf": exec('cat /etc/dnsmasq.conf', $return); $conf = ParseConfig($return); $arrRange = explode(",", $conf['dhcp-range']); $RangeStart = $arrRange[0]; $RangeEnd = $arrRange[1]; $RangeMask = $arrRange[2]; preg_match('/([0-9]*)([a-z])/i', $arrRange[3], $arrRangeLeaseTime); switch ($arrRangeLeaseTime[2]) { case "h": $hselected = " selected"; break; case "m": $mselected = " selected"; break; case "d": $dselected = " selected"; break;
function SetupUnpacked($nameOfProgram) { global $dirMyPrograms, $nl; $curDir = $dirMyPrograms . '/' . $nameOfProgram; if (($programConfig = ParseConfig($curDir)) == false) { return false; } if (($programName = getProgramName($nameOfProgram)) == false) { return false; } if (generateZzzBat($curDir, $programName, $programConfig) == false) { return false; } if (generateDosBoxConf($curDir) == false) { return false; } if (generateStartGameBat($curDir) == false) { return false; } }
protected function ReadConfig() { // Read database config $this->DatabaseConfig = ParseConfig($this, 'DatabaseConfig.json'); if ($this->DatabaseConfig === false) { $this->DatabaseConfig = array(); } return true; }
protected function ReadPluginConfig() { $this->ApplicationConfig = ParseConfig($this, 'PluginConfig.json'); }