adding upnp next step, not finished yet, almost ;)
This commit is contained in:
		
							parent
							
								
									8d7c7690c8
								
							
						
					
					
						commit
						70074ab15c
					
				|  | @ -1,13 +1,9 @@ | ||||||
| <?php | <?php | ||||||
| /* | /* | ||||||
|  $Id: main.php,v 1.3 2004/05/19 14:23:06 benjamin Exp $ |  | ||||||
|  ---------------------------------------------------------------------- |  ---------------------------------------------------------------------- | ||||||
|  AlternC - Web Hosting System |  AlternC - Web Hosting System | ||||||
|  Copyright (C) 2002 by the AlternC Development Team. |  Copyright (C) 2000-2012 by the AlternC Development Team. | ||||||
|  http://alternc.org/ |  https://alternc.org/ | ||||||
|  ---------------------------------------------------------------------- |  | ||||||
|  Based on: |  | ||||||
|  Valentin Lacambre's web hosting softwares: http://altern.org/ |  | ||||||
|  ---------------------------------------------------------------------- |  ---------------------------------------------------------------------- | ||||||
|  LICENSE |  LICENSE | ||||||
| 
 | 
 | ||||||
|  | @ -23,8 +19,7 @@ | ||||||
| 
 | 
 | ||||||
|  To read the license please visit http://www.gnu.org/copyleft/gpl.html |  To read the license please visit http://www.gnu.org/copyleft/gpl.html | ||||||
|  ---------------------------------------------------------------------- |  ---------------------------------------------------------------------- | ||||||
|  Original Author of file: |  Purpose of file: Main page shown after login, display misc information | ||||||
|  Purpose of file: |  | ||||||
|  ---------------------------------------------------------------------- |  ---------------------------------------------------------------------- | ||||||
| */ | */ | ||||||
| require_once("../class/config.php"); | require_once("../class/config.php"); | ||||||
|  |  | ||||||
|  | @ -104,6 +104,67 @@ class m_upnp { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |   /* ----------------------------------------------------------------- */ | ||||||
|  |   /** cron launched every minute to check the status of UPnP forwarding | ||||||
|  |    */ | ||||||
|  |   function cron() { | ||||||
|  |     global $hooks; | ||||||
|  |     // if we check anything less than 5 minutes ago, or if the upnp table is empty, let's make a check...
 | ||||||
|  |     $db->query("SELECT UNIX_TIMESTAMP(lastcheck) AS lc, * FROM upnp ORDER BY lastcheck ASC;"); | ||||||
|  |     $forwards=array(); | ||||||
|  |     $bigcheck=false; | ||||||
|  |     if (!$db->next_record()) { | ||||||
|  |       $bigcheck=true; | ||||||
|  |     } else { | ||||||
|  |       if ($db->f("lc")+600<time()) {  | ||||||
|  | 	$bigcheck=true; | ||||||
|  |       } | ||||||
|  |       do { | ||||||
|  | 	$db->Record["found"]=false; | ||||||
|  | 	$forwards[]=$db->Record; | ||||||
|  |       } while ($db->next_record()); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     if ($bigcheck) { | ||||||
|  |       // Do the check first by calling the hooks & comparing the arrays
 | ||||||
|  |       $res=$hooks->invoke("hooks_upnp_list"); | ||||||
|  |       foreach($res as $c=>$tmp) { | ||||||
|  | 	foreach($tmp as $name=>$v) { | ||||||
|  | 
 | ||||||
|  | 	  // We compare the hook array with the forwards array
 | ||||||
|  | 	  $found=false; | ||||||
|  | 	  for($i=0;$i<count($forwards);$i++) { | ||||||
|  | 	    if ($forwards[$i]["class"]==$c &&  | ||||||
|  | 		$forwards[$i]["name"]==$name &&  | ||||||
|  | 		$forwards[$i]["protocol"]==$v["protocol"] &&  | ||||||
|  | 		$forwards[$i]["port"]==$v["port"] &&  | ||||||
|  | 		$forwards[$i]["mandatory"]==$v["mandatory"]) { | ||||||
|  | 	      // Found it and unchanged
 | ||||||
|  | 	      $forwards[$i]["found"]=true; | ||||||
|  | 	      $found=true; | ||||||
|  | 	    } | ||||||
|  | 	  } // compare with forwards class.
 | ||||||
|  | 	  if (!$found) { | ||||||
|  | 	    // Mark it for creation
 | ||||||
|  | 	    $db->query("INSERT INTO upnp SET mandatory='".addslashes($v["mandatory"])."', protocol='".addslashes($v["protocol"])."', port='".addslashes($v["port"])."', name='".addslashes($name)."', action='CREATE'"); | ||||||
|  | 	    $id=$db->last_id(); | ||||||
|  | 	    $forwards[]=array("id"=>$id, "mandatory" => intval($v["mandatory"]), "protocol" => $v["protocol"], "port" => intval($v["port"]), "name" => $name, "action" => "CREATE"); | ||||||
|  | 	  } | ||||||
|  | 	} // for each port forward in that class
 | ||||||
|  |       } // for each hooked class
 | ||||||
|  |       // We search the "not found" and remove them from the array
 | ||||||
|  |       for($i=0;$i<count($forwards);$i++) { | ||||||
|  | 	if (!$forwards[$i]["found"]) { | ||||||
|  | 	  $forwards[$i]["action"]="DELETING"; | ||||||
|  | 	  $db->query("UPDATE upnp SET action='DELETING' WHERE id=".$forwards[$i]["id"].";"); | ||||||
|  | 	} | ||||||
|  |       } | ||||||
|  |        | ||||||
|  |        | ||||||
|  |     } // bigcheck ?
 | ||||||
|  |   } | ||||||
|  |    | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|    |    | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| #!/usr/bin/php | #!/usr/bin/php | ||||||
|    <?php | <?php | ||||||
| 
 | 
 | ||||||
| $f=@fopen("/etc/alternc/local.sh","rb"); | $f=@fopen("/etc/alternc/local.sh","rb"); | ||||||
| if (!$f) { | if (!$f) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Benjamin Sonntag
						Benjamin Sonntag