'WPA', 2 => 'WPA2', 3 => 'WPA+WPA2', 'none' => _("None"));
  $arrEncType = array('TKIP' => 'TKIP', 'CCMP' => 'CCMP', 'TKIP CCMP' => 'TKIP+CCMP');
  exec("ip -o link show | awk -F': ' '{print $2}'", $interfaces);
  if( isset($_POST['SaveHostAPDSettings']) ) {
    if (CSRFValidate()) {
      SaveHostAPDConfig($arrSecurity, $arrEncType, $arr80211Standard, $interfaces, $status);
    } else {
      error_log('CSRF violation');
    }
  } elseif( isset($_POST['StartHotspot']) ) {
    if (CSRFValidate()) {
      $status->addMessage('Attempting to start hotspot', 'info');
      exec( 'sudo /etc/init.d/hostapd start', $return );
      foreach( $return as $line ) {
        $status->addMessage($line, 'info');
      }
    } else {
      error_log('CSRF violation');
    }
  } elseif( isset($_POST['StopHotspot']) ) {
    if (CSRFValidate()) {
      $status->addMessage('Attempting to stop hotspot', 'info');
      exec( 'sudo /etc/init.d/hostapd stop', $return );
      foreach( $return as $line ) {
        $status->addMessage($line, 'info');
      }
    } else {
      error_log('CSRF violation');
    }
  }
  exec( 'cat '. RASPI_HOSTAPD_CONFIG, $hostapdconfig );
  exec( 'pidof hostapd | wc -l', $hostapdstatus);
  if( $hostapdstatus[0] == 0 ) {
    $status->addMessage('HostAPD is not running', 'warning');
  } else {
    $status->addMessage('HostAPD is running', 'success');
  }
  foreach( $hostapdconfig as $hostapdconfigline ) {
    if (strlen($hostapdconfigline) === 0) {
      continue;
    }
    if ($hostapdconfigline[0] != "#" ) {
      $arrLine = explode("=", $hostapdconfigline) ;
      $arrConfig[$arrLine[0]]=$arrLine[1];
    }
  };
?>
  
    
 14) {
    error_log("Attempting to set channel to '".$_POST['channel']."'");
    return false;
  }
  $good_input = true;
  // Check for Logging Checkbox
    $logEnable = 0;
    if($arrHostapdConf['LogEnable'] == 0) {
        if(isset($_POST['logEnable'])) {
            // Need code to enable logfile logging here
            $logEnable = 1;
            exec('sudo /etc/raspap/hostapd/enablelog.sh');
        } else {
            exec('sudo /etc/raspap/hostapd/disablelog.sh');
        }
    } else {
        if(isset($_POST['logEnable'])) {
            $logEnable = 1;
            exec('sudo /etc/raspap/hostapd/enablelog.sh');
        } else {
            exec('sudo /etc/raspap/hostapd/disablelog.sh');
        }
    }
    write_php_ini(["LogEnable" => $logEnable],'/etc/raspap/hostapd.ini');
  // Verify input
  if (empty($_POST['ssid']) || strlen($_POST['ssid']) > 32) {
    // Not sure of all the restrictions of SSID
    $status->addMessage('SSID must be between 1 and 32 characters', 'danger');
    $good_input = false;
  }
  if ($_POST['wpa'] !== 'none' &&
      (strlen($_POST['wpa_passphrase']) < 8 || strlen($_POST['wpa_passphrase']) > 63)) {
    $status->addMessage('WPA passphrase must be between 8 and 63 characters', 'danger');
    $good_input = false;
  }
  if (isset($_POST['hiddenSSID'])) {
    if (!is_int((int)$_POST['hiddenSSID'])) {
      $status->addMessage('Parameter hiddenSSID not a number.', 'danger');
      $good_input = false;
    } elseif ((int)$_POST['hiddenSSID'] < 0 || (int)$_POST['hiddenSSID'] >= 3) {
      $status->addMessage('Parameter hiddenSSID contains invalid configuratie value.', 'danger');
      $good_input = false;
    } else {
        $ignore_broadcast_ssid = $_POST['hiddenSSID'];
    }
  } else {
      $ignore_broadcast_ssid = '0';
  }
  if (! in_array($_POST['interface'], $interfaces)) {
    // The user is probably up to something here but it may also be a
    // genuine error.
    $status->addMessage('Unknown interface '.htmlspecialchars($_POST['interface'], ENT_QUOTES), 'danger');
    $good_input = false;
  }
  if (strlen($_POST['country_code']) !== 0 && strlen($_POST['country_code']) != 2) {
    $status->addMessage('Country code must be blank or two characters', 'danger');
    $good_input = false;
  }
  if ($good_input) {
    if ($tmp_file = fopen('/tmp/hostapddata', 'w')) {
      // Fixed values
      fwrite($tmp_file, 'driver=nl80211'.PHP_EOL);
      fwrite($tmp_file, 'ctrl_interface='.RASPI_HOSTAPD_CTRL_INTERFACE.PHP_EOL);
      fwrite($tmp_file, 'ctrl_interface_group=0'.PHP_EOL);
      fwrite($tmp_file, 'auth_algs=1'.PHP_EOL);
      fwrite($tmp_file, 'wpa_key_mgmt=WPA-PSK'.PHP_EOL);
      fwrite($tmp_file, 'beacon_int=100'.PHP_EOL);
      fwrite($tmp_file, 'ssid='.$_POST['ssid'].PHP_EOL);
      fwrite($tmp_file, 'channel='.$_POST['channel'].PHP_EOL);
      if ($_POST['hw_mode'] === 'n') {
        fwrite($tmp_file, 'hw_mode=g'.PHP_EOL);
        fwrite($tmp_file, 'ieee80211n=1'.PHP_EOL);
        // Enable basic Quality of service
        fwrite($tmp_file, 'wme_enabled=1'.PHP_EOL);
      } else {
        fwrite($tmp_file, 'hw_mode='.$_POST['hw_mode'].PHP_EOL);
        fwrite($tmp_file, 'ieee80211n=0'.PHP_EOL);
      }
      fwrite($tmp_file, 'wpa_passphrase='.$_POST['wpa_passphrase'].PHP_EOL);
      fwrite($tmp_file, 'interface='.$_POST['interface'].PHP_EOL);
      fwrite($tmp_file, 'wpa='.$_POST['wpa'].PHP_EOL);
      fwrite($tmp_file, 'wpa_pairwise='.$_POST['wpa_pairwise'].PHP_EOL);
      fwrite($tmp_file, 'country_code='.$_POST['country_code'].PHP_EOL);
      fwrite($tmp_file, 'ignore_broadcast_ssid='.$ignore_broadcast_ssid.PHP_EOL);
      fclose($tmp_file);
      system( "sudo cp /tmp/hostapddata " . RASPI_HOSTAPD_CONFIG, $return );
      if( $return == 0 ) {
        $status->addMessage('Wifi Hotspot settings saved', 'success');
      } else {
        $status->addMessage('Unable to save wifi hotspot settings', 'danger');
      }
    } else {
      $status->addMessage('Unable to save wifi hotspot settings', 'danger');
      return false;
    }
  }
  return true;
}