AccessPoint.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php namespace helper;
  2. class AccessPoint
  3. {
  4. public function saveAPConfig($apConfig)
  5. {
  6. if (is_array($apConfig)) {
  7. $apConfig = (object)$apConfig;
  8. }
  9. uciSet('wireless.radio0.channel', $apConfig->selectedChannel);
  10. uciSet('wireless.@wifi-iface[0].ssid', $apConfig->openSSID, false);
  11. uciSet('wireless.@wifi-iface[0].disabled', $apConfig->disableOpenAP, false);
  12. uciSet('wireless.@wifi-iface[0].hidden', $apConfig->hideOpenAP, false);
  13. uciSet('wireless.@wifi-iface[0].maxassoc', $apConfig->maxClients, false);
  14. uciSet('wireless.@wifi-iface[1].ssid', $apConfig->managementSSID, false);
  15. uciSet('wireless.@wifi-iface[1].key', $apConfig->managementKey, false);
  16. uciSet('wireless.@wifi-iface[1].disabled', $apConfig->disableManagementAP, false);
  17. uciSet('wireless.@wifi-iface[1].hidden', $apConfig->hideManagementAP, false);
  18. uciCommit();
  19. execBackground('wifi');
  20. return ["success" => true];
  21. }
  22. public function getAPConfig($getChannelInfo = true)
  23. {
  24. $channels = [];
  25. if ($getChannelInfo) {
  26. exec("iwinfo phy0 freqlist", $output);
  27. preg_match_all("/\(Channel (\d+)\)$/m", implode("\n", $output), $channelList);
  28. // Remove radar detection channels
  29. foreach ($channelList[1] as $channel) {
  30. if ((int)$channel < 52 || (int)$channel > 140) {
  31. $channels[] = $channel;
  32. }
  33. }
  34. }
  35. return [
  36. "selectedChannel" => uciGet("wireless.radio0.channel"),
  37. "availableChannels" => $channels,
  38. "openSSID" => uciGet("wireless.@wifi-iface[0].ssid"),
  39. "maxClients" => uciGet("wireless.@wifi-iface[0].maxassoc", false),
  40. "disableOpenAP" => uciGet("wireless.@wifi-iface[0].disabled"),
  41. "hideOpenAP" => uciGet("wireless.@wifi-iface[0].hidden"),
  42. "managementSSID" => uciGet("wireless.@wifi-iface[1].ssid"),
  43. "managementKey" => uciGet("wireless.@wifi-iface[1].key"),
  44. "disableManagementAP" => uciGet("wireless.@wifi-iface[1].disabled"),
  45. "hideManagementAP" => uciGet("wireless.@wifi-iface[1].hidden")
  46. ];
  47. }
  48. }