mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	
							
								
								
									
										5
									
								
								dist/css/custom.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								dist/css/custom.css
									
									
									
									
										vendored
									
									
								
							| @@ -48,3 +48,8 @@ | ||||
| 	height:100%; | ||||
|         min-height:500px; | ||||
| } | ||||
|  | ||||
| .logoutput { | ||||
|     width:100%; | ||||
|     height:300px; | ||||
| } | ||||
|   | ||||
							
								
								
									
										5
									
								
								dist/css/hackernews.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								dist/css/hackernews.css
									
									
									
									
										vendored
									
									
								
							| @@ -76,3 +76,8 @@ h4 { | ||||
|     width: 140px; | ||||
|     float: left; | ||||
| } | ||||
|  | ||||
| .logoutput { | ||||
|     width: 100%; | ||||
|     height: 300px; | ||||
| } | ||||
|   | ||||
							
								
								
									
										7
									
								
								dist/css/terminal.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/css/terminal.css
									
									
									
									
										vendored
									
									
								
							| @@ -196,4 +196,9 @@ a:focus, a:hover { | ||||
|     float: left; | ||||
| } | ||||
|  | ||||
|  | ||||
| .logoutput { | ||||
|     width: 100%; | ||||
|     height: 300px; | ||||
|     background-color: #000; | ||||
|     border-color: #33ff00; | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,52 @@ | ||||
| <?php | ||||
| /* Functions for Networking */ | ||||
|  | ||||
| function mask2cidr($mask){ | ||||
|   $long = ip2long($mask); | ||||
|   $base = ip2long('255.255.255.255'); | ||||
|   return 32-log(($long ^ $base)+1,2); | ||||
| } | ||||
|  | ||||
| /* Functions to write ini files */ | ||||
|  | ||||
| function write_php_ini($array, $file) { | ||||
|     $res = array(); | ||||
|     foreach($array as $key => $val) { | ||||
|         if(is_array($val)) { | ||||
|             $res[] = "[$key]"; | ||||
|             foreach($val as $skey => $sval) $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"'); | ||||
|         } | ||||
|         else $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"'); | ||||
|     } | ||||
|     if(safefilerewrite($file, implode("\r\n", $res))) { | ||||
|         return true; | ||||
|     } else { | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
|  | ||||
| function safefilerewrite($fileName, $dataToSave) { | ||||
|     if ($fp = fopen($fileName, 'w')) { | ||||
|         $startTime = microtime(TRUE); | ||||
|         do { | ||||
|             $canWrite = flock($fp, LOCK_EX); | ||||
|             // If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load | ||||
|             if(!$canWrite) usleep(round(rand(0, 100)*1000)); | ||||
|         } while ((!$canWrite)and((microtime(TRUE)-$startTime) < 5)); | ||||
|  | ||||
|         //file was locked so now we can store information | ||||
|         if ($canWrite) { | ||||
|             fwrite($fp, $dataToSave); | ||||
|             flock($fp, LOCK_UN); | ||||
|         } | ||||
|         fclose($fp); | ||||
|         return true; | ||||
|     } else { | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
| * | ||||
|   | ||||
| @@ -10,6 +10,8 @@ function DisplayHostAPDConfig(){ | ||||
|  | ||||
|   $status = new StatusMessages(); | ||||
|  | ||||
|   $arrHostapdConf = parse_ini_file('/etc/raspap/hostapd.ini'); | ||||
|  | ||||
|   $arrConfig = array(); | ||||
|   $arrChannel = array('a','b','g'); | ||||
|   $arrSecurity = array( 1 => 'WPA', 2 => 'WPA2',3=> 'WPA+WPA2'); | ||||
| @@ -74,6 +76,7 @@ function DisplayHostAPDConfig(){ | ||||
|               <li class="active"><a href="#basic" data-toggle="tab">Basic</a></li> | ||||
|               <li><a href="#security" data-toggle="tab">Security</a></li> | ||||
|               <li><a href="#advanced" data-toggle="tab">Advanced</a></li> | ||||
|               <li><a href="#logoutput" data-toggle="tab">Logfile Output</a></li> | ||||
|             </ul> | ||||
|  | ||||
|             <!-- Tab panes --> | ||||
| @@ -130,8 +133,33 @@ function DisplayHostAPDConfig(){ | ||||
|                   </div> | ||||
|                 </div> | ||||
|               </div> | ||||
|               <div class="tab-pane fade" id="logoutput"> | ||||
|                 <h4>Logfile output</h4> | ||||
|                   <div class="row"> | ||||
|                     <div class="form-group col-md-8"> | ||||
|                       <?php | ||||
|                           if($arrHostapdConf['LogEnable'] == 1) { | ||||
|                               $log = file_get_contents('/tmp/hostapd.log'); | ||||
|                               echo '<br /><textarea class="logoutput">'.$log.'</textarea>'; | ||||
|                           } else { | ||||
|                               echo "<br />Logfile output not enabled"; | ||||
|                           } | ||||
|                       ?> | ||||
|                    </div> | ||||
|                 </div> | ||||
|               </div> | ||||
|               <div class="tab-pane fade" id="advanced"> | ||||
|                 <h4>Advanced settings</h4> | ||||
|                 <div class="row"> | ||||
|                   <div class="col-md-4"> | ||||
|                   <div class="form-check"> | ||||
|                     <label class="form-check-label"> | ||||
|                         Enable Logging <?php $checked = ''; if($arrHostapdConf['LogEnable'] == 1) { $checked = 'checked'; } ?> | ||||
|                         <input id="logEnable" name ="logEnable" type="checkbox" class="form-check-input" value="1" <?php echo $checked; ?> /> | ||||
|                     </label> | ||||
|                   </div> | ||||
|                   </div> | ||||
|                 </div> | ||||
|                 <div class="row"> | ||||
|                   <div class="form-group col-md-4"> | ||||
|                   <label for="code">Country Code</label> | ||||
| @@ -431,6 +459,26 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) | ||||
|  | ||||
|   $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 (strlen($_POST['ssid']) == 0 || strlen($_POST['ssid']) > 32) { | ||||
|     // Not sure of all the restrictions of SSID | ||||
|   | ||||
| @@ -97,6 +97,12 @@ function create_raspap_directories() { | ||||
|     sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'" | ||||
| } | ||||
|  | ||||
| # Generate logging enable/disable files for hostapd | ||||
| function create_logging_scripts() { | ||||
|     sudo mkdir /etc/raspap/hostapd | ||||
|     sudo mv /var/www/html/installers/*log.sh /etc/rasp/hostapd | ||||
| } | ||||
|  | ||||
| # Fetches latest files from github to webroot | ||||
| function download_latest_files() { | ||||
|     if [ -d "$webroot_dir" ]; then | ||||
| @@ -214,6 +220,8 @@ function patch_system_files() { | ||||
|       '/sbin/ip link set wlan0 down' | ||||
|       '/sbin/ip link set wlan0 up' | ||||
|       '/sbin/ip -s a f label wlan0' | ||||
|       '/etc/raspap/hostapd/enablelog.sh' | ||||
|       '/etc/raspap/hostapd/disablelog.sh' | ||||
|     ) | ||||
|  | ||||
|     # Check if sudoers needs patchin | ||||
| @@ -250,6 +258,7 @@ function install_raspap() { | ||||
|     install_dependencies | ||||
|     enable_php_lighttpd | ||||
|     create_raspap_directories | ||||
|     create_logging_scripts | ||||
|     check_for_old_configs | ||||
|     download_latest_files | ||||
|     change_file_ownership | ||||
|   | ||||
							
								
								
									
										3
									
								
								installers/disablelog.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								installers/disablelog.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| #!/bin/bash | ||||
| /bin/sed -i 's|DAEMON_OPTS=" -f /tmp/hostapd.log"|#DAEMON_OPTS=""|' /etc/default/hostapd | ||||
|  | ||||
							
								
								
									
										2
									
								
								installers/enablelog.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								installers/enablelog.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| #!/bin/bash | ||||
| /bin/sed -i 's|#DAEMON_OPTS=""|DAEMON_OPTS=" -f /tmp/hostapd.log"|' /etc/default/hostapd | ||||
		Reference in New Issue
	
	Block a user