AccessPoint.php 2.0 KB

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