From dee987b263b021b990ea4c62cb15be47c6d61fb5 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Mon, 05 Jan 2015 08:30:12 -0500
Subject: [PATCH] Merge branch 'master' into 'master'

---
 server/plugins-available/squid_plugin.inc.php |  342 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 171 insertions(+), 171 deletions(-)

diff --git a/server/plugins-available/squid_plugin.inc.php b/server/plugins-available/squid_plugin.inc.php
index fb667e0..ef77512 100644
--- a/server/plugins-available/squid_plugin.inc.php
+++ b/server/plugins-available/squid_plugin.inc.php
@@ -1,171 +1,171 @@
-<?php
-
-/*
-Copyright (c) 2007, Till Brehm, projektfarm Gmbh
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-    * Neither the name of ISPConfig nor the names of its contributors
-      may be used to endorse or promote products derived from this software without
-      specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-class squid_plugin {
-	
-	var $plugin_name = 'squid_plugin';
-	var $class_name = 'squid_plugin';
-	
-	// private variables
-	var $action = '';
-	
-	//* This function is called during ispconfig installation to determine
-	//  if a symlink shall be created for this plugin.
-	function onInstall() {
-		global $conf;
-		
-		if($conf['services']['proxy'] == true && $conf['squid']['installed'] == true) {
-			return true;
-		} else {
-			return false;
-		}
-		
-	}
-	
-		
-	/*
-	 	This function is called when the plugin is loaded
-	*/
-	
-	function onLoad() {
-		global $app;
-		
-		/*
-		Register for the events
-		*/
-		
-		
-		$app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'insert');
-		$app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'update');
-		$app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'delete');
-		
-		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert');
-		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update');
-		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete');
-		
-
-		
-	}
-	
-	
-	
-	
-	function insert($event_name,$data) {
-		global $app, $conf;
-		
-		
-		// just run the update function
-		$this->update($event_name,$data);
-		
-		
-	}
-	
-	
-	function update($event_name,$data) {
-		global $app, $conf;
-		
-		$domains = $this->_getSquidDomains($app);
-		$rules = $this->_getSquidRewriteRules($app);
-		
-		$app->load('tpl');
-		$tpl = new tpl();
-		$tpl->newTemplate("squidRewriteRules.py.master");
-		if (!empty($rules))$tpl->setLoop('squid_rewrite_rules',$rules);
-		file_put_contents('/etc/squid/squidRewriteRules.py',$tpl->grab());
-		unset($tpl);
-		$app->log('Writing squid rewrite configuration to /etc/squid/squidRewriteRules.py',LOGLEVEL_DEBUG);
-		
-		
-		$tpl = new tpl();
-		$tpl->newTemplate("domains.txt.master");
-		$tpl->setLoop('squid_domains',$domains);
-		file_put_contents('/etc/squid/domains.txt',$tpl->grab());
-		unset($tpl);
-		$app->log('Writing squid domains configuration to /etc/squid/domains.txt',LOGLEVEL_DEBUG);
-		
-		
-		// request a httpd reload when all records have been processed
-		$app->services->restartServiceDelayed('squid','restart');
-		
-	}
-	
-	function delete($event_name,$data) {
-		global $app, $conf;
-		
-		// load the server configuration options
-
-		// just run the update function
-		$this->update($event_name,$data);
-		
-	}
-	
-	function _getSquidDomains($app)
-	{
-		$records = $app->dbmaster->queryAllRecords("SELECT ds.origin, dr.name, IF(origin=name,true,false) AS isRoot FROM dns_soa ds inner join dns_rr dr ON ds.id=dr.zone WHERE ds.active='Y' AND dr.type IN ('A','CNAME') AND dr.name NOT IN ('mail','ns1')");
-		$domains = array();
-		foreach ($records as $record) {
-			
-			$origin = substr($record["origin"],0,-1);
-			if ($record["isRoot"])
-			{
-				array_push($domains, array("domain" => $origin));
-			} else {
-				array_push($domains, array("domain" => $record["name"].".".$origin));
-			}
-
-		}
-		
-		return $domains;
-		
-	}
-	
-	function _getSquidRewriteRules($app)
-	{
-		$rules = array();
-		
-		$rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dest FROM squid_reverse ORDER BY rewrite_id ASC");		
-		$web_domains = $app->db->queryAllRecords("SELECT wd.subdomain, wd.domain, si.ip_address  FROM web_domain wd INNER JOIN server s USING(server_id) INNER JOIN server_ip si USING(server_id)");
-		
-		foreach ($web_domains as $domain) {
-			if ($domain["subdomain"] == "www") {
-				array_push($rules,array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
-				array_push($rules,array("rewrite_url_src"=>"^http://".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));		
-			}  else {
-				array_push($rules,array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
-			}	
-		}
-		return $rules;
-	}
-
-	
-
-} // end class
-
-?>
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+class squid_plugin {
+
+	var $plugin_name = 'squid_plugin';
+	var $class_name = 'squid_plugin';
+
+	// private variables
+	var $action = '';
+
+	//* This function is called during ispconfig installation to determine
+	//  if a symlink shall be created for this plugin.
+	function onInstall() {
+		global $conf;
+
+		if(isset($conf['services']['proxy']) &&$conf['services']['proxy'] == true && isset($conf['squid']['installed']) && $conf['squid']['installed'] == true) {
+			return true;
+		} else {
+			return false;
+		}
+
+	}
+
+
+	/*
+	 	This function is called when the plugin is loaded
+	*/
+
+	function onLoad() {
+		global $app;
+
+		/*
+		Register for the events
+		*/
+
+
+		$app->plugins->registerEvent('proxy_reverse_insert', $this->plugin_name, 'insert');
+		$app->plugins->registerEvent('proxy_reverse_update', $this->plugin_name, 'update');
+		$app->plugins->registerEvent('proxy_reverse_delete', $this->plugin_name, 'delete');
+
+		$app->plugins->registerEvent('web_domain_insert', $this->plugin_name, 'insert');
+		$app->plugins->registerEvent('web_domain_update', $this->plugin_name, 'update');
+		$app->plugins->registerEvent('web_domain_delete', $this->plugin_name, 'delete');
+
+
+
+	}
+
+
+
+
+	function insert($event_name, $data) {
+		global $app, $conf;
+
+
+		// just run the update function
+		$this->update($event_name, $data);
+
+
+	}
+
+
+	function update($event_name, $data) {
+		global $app, $conf;
+
+		$domains = $this->_getSquidDomains($app);
+		$rules = $this->_getSquidRewriteRules($app);
+
+		$app->load('tpl');
+		$tpl = new tpl();
+		$tpl->newTemplate("squidRewriteRules.py.master");
+		if (!empty($rules))$tpl->setLoop('squid_rewrite_rules', $rules);
+		file_put_contents('/etc/squid/squidRewriteRules.py', $tpl->grab());
+		unset($tpl);
+		$app->log('Writing squid rewrite configuration to /etc/squid/squidRewriteRules.py', LOGLEVEL_DEBUG);
+
+
+		$tpl = new tpl();
+		$tpl->newTemplate("domains.txt.master");
+		$tpl->setLoop('squid_domains', $domains);
+		file_put_contents('/etc/squid/domains.txt', $tpl->grab());
+		unset($tpl);
+		$app->log('Writing squid domains configuration to /etc/squid/domains.txt', LOGLEVEL_DEBUG);
+
+
+		// request a httpd reload when all records have been processed
+		$app->services->restartServiceDelayed('squid', 'restart');
+
+	}
+
+	function delete($event_name, $data) {
+		global $app, $conf;
+
+		// load the server configuration options
+
+		// just run the update function
+		$this->update($event_name, $data);
+
+	}
+
+	function _getSquidDomains($app)
+	{
+		$records = $app->dbmaster->queryAllRecords("SELECT ds.origin, dr.name, IF(origin=name,true,false) AS isRoot FROM dns_soa ds inner join dns_rr dr ON ds.id=dr.zone WHERE ds.active='Y' AND dr.type IN ('A','CNAME') AND dr.name NOT IN ('mail','ns1')");
+		$domains = array();
+		foreach ($records as $record) {
+
+			$origin = substr($record["origin"], 0, -1);
+			if ($record["isRoot"])
+			{
+				array_push($domains, array("domain" => $origin));
+			} else {
+				array_push($domains, array("domain" => $record["name"].".".$origin));
+			}
+
+		}
+
+		return $domains;
+
+	}
+
+	function _getSquidRewriteRules($app)
+	{
+		$rules = array();
+
+		$rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dest FROM squid_reverse ORDER BY rewrite_id ASC");
+		$web_domains = $app->db->queryAllRecords("SELECT wd.subdomain, wd.domain, si.ip_address  FROM web_domain wd INNER JOIN server s USING(server_id) INNER JOIN server_ip si USING(server_id)");
+
+		foreach ($web_domains as $domain) {
+			if ($domain["subdomain"] == "www") {
+				array_push($rules, array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)", "rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
+				array_push($rules, array("rewrite_url_src"=>"^http://".$domain["domain"]."/(.*)", "rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
+			}  else {
+				array_push($rules, array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)", "rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
+			}
+		}
+		return $rules;
+	}
+
+
+
+} // end class
+
+?>

--
Gitblit v1.9.1