File: list_domains.php

package info (click to toggle)
dtc 0.35.5-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 18,824 kB
  • sloc: php: 50,739; sh: 8,596; makefile: 572; perl: 148; xml: 25
file content (138 lines) | stat: -rw-r--r-- 5,614 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php


require_once("../shared/autoSQLconfig.php");
$panel_type="cronjob";
// All shared files between DTCadmin and DTCclient
require_once("$dtcshared_path/dtc_lib.php");

$q = "SELECT * FROM $pro_mysql_backup_table WHERE
server_login='".mysql_real_escape_string($_REQUEST["login"])."'
AND server_pass='".mysql_real_escape_string($_REQUEST["pass"])."'
AND server_addr='".$_SERVER["REMOTE_ADDR"]."';";
$r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());
$n = mysql_num_rows($r);
if($n != 1)	die("Access not granted!\n");

$out = ""; //init $out variable

switch($_REQUEST["action"]){
case "list_dns":
	$out .= "// Start of DTC generated slave zone file for backuping $conf_administrative_site\n";
	$q = "SELECT * FROM $pro_mysql_domain_table WHERE other_dns='default' AND primary_dns='default';";
	$out .= "// $q";
	$r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());
	$n = mysql_num_rows($r);
	$out .= "// $n domain(s) installed\n";
	for($i=0;$i<$n;$i++){
		$a = mysql_fetch_array($r);
		// check for empty "name" fields
		if (!isset($a["name"]) || $a["name"] == "")
		{
			continue;	
		}
		$out .= 'zone "'.$a["name"].'" {
	type slave;
	masters { ';
		if($a["primary_dns"] == "default"){
			$out .= $conf_main_site_ip;
		}else{
			$out .= $a["primary_dns"];
		}
		$out .= '; };
	file "'.$conf_generated_file_path.'/' . $conf_named_slavezonefiles_path . '/'.$a["name"].'";
	};
';
	}
	$out .= "// End of DTC generated slave zone file for backuping $conf_administrative_site\n";
	break;
case "list_mx":
	$q = "SELECT * FROM $pro_mysql_domain_table WHERE other_mx='default' AND primary_mx='default';";
	$r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());
	$n = mysql_num_rows($r);
	$out .= "<dtc_backup_mx_domain_list>\n";
	for($i=0;$i<$n;$i++){
		$a = mysql_fetch_array($r);
		$out .= $a["name"]."\n";
	}
	$out .= "</dtc_backup_mx_domain_list>\n";
	break;
case "update_request":
	$q = "UPDATE $pro_mysql_cronjob_table SET gen_qmail='yes',restart_qmail='yes',gen_named='yes',reload_named='yes' WHERE 1;";
	$r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());

	$q = "UPDATE $pro_mysql_backup_table SET status='pending' WHERE type='mail_backup' OR type='dns_backup' AND server_login='".$_REQUEST["login"]."';";
	$r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());

	$out .= "Successfuly recieved trigger!";
	break;
case "trigger_update_mx_recipients":
	// for this case, we should get new mail domains and mail recipients
	// no need for the DNS payload though	
	$q = "UPDATE $pro_mysql_cronjob_table SET gen_qmail='yes',restart_qmail='yes',gen_named='no',reload_named='no' WHERE 1;";
        $r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());

        $q = "UPDATE $pro_mysql_backup_table SET status='pending' WHERE type='mail_backup' AND server_login='".$_REQUEST["login"]."';";
        $r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());

        $out .= "Successfuly recieved trigger for MX!";
        break;
case "list_mx_recipients":
	$q = "SELECT * FROM $pro_mysql_domain_table WHERE other_mx='default' AND primary_mx='default';";
	$r = mysql_query($q)or die("Cannot query $q ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());
	$n = mysql_num_rows($r);
	$out .= "<dtc_backup_mx_recipient_list>\n";
	for($i=0;$i<$n;$i++){
		$a = mysql_fetch_array($r);
		$domain = $a["name"];
		$catchall_email = $a["catchall_email"];
		$q_email = "SELECT fullemail FROM `pop_access` WHERE mbox_host='$domain';";
		$r_email = mysql_query($q_email)or die("Cannot query $q_email ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());
		$n_email = mysql_num_rows($r_email);
		for ($j=0; $j < $n_email; $j++) {
			$a_email = mysql_fetch_array($r_email);
			$out .= $a_email["fullemail"] . "\n";
		}

		//add the mailing lists as well
		$q_mailinglist = "SELECT name FROM `mailinglist` WHERE domain='$domain';";
		$r_mailinglist =  mysql_query($q_mailinglist)or die("Cannot query $q_mailinglist ! line: ".__LINE__." file: ".__FILE__." sql said: ".mysql_error());
		$n_mailinglist = mysql_num_rows($r_mailinglist);
		for ($j=0; $j < $n_mailinglist; $j++){
			$a_mailinglist = mysql_fetch_array($r_mailinglist);
			if (isset($domain) && isset($a_mailinglist["name"])){
				$out .= $a_mailinglist["name"] . "@" . $domain . "\n";
			}
		}

		// Now add the list of mailaliasgroup accounts
		$q_groups = "SELECT id FROM $pro_mysql_mailaliasgroup_table WHERE domain_parent='$domain';";
		$r_groups = mysql_query($q_groups)or die ("Cannot query $q_groups line: ".__LINE__." file ".__FILE__." sql said: ".mysql_error());
		$n_groups = mysql_num_rows($r_groups);
		for ($j=0; $j < $n_groups; $j++){
			$a_groups = mysql_fetch_array($r_groups);
			$out .= $a_groups["id"] . "@" . $domain . "\n";
		}

		//now make sure we have abuse@ and postmaster@
		if (!preg_match("/abuse\@$domain$/", $out)){
			$out .= "abuse@" . $domain . "\n";
		}
		if (!preg_match("/postmaster\@$domain$/", $out)){
			$out .= "postmaster@" . $domain . "\n";
		}
		//finally, for the catch_all email if the user has set it
		if (isset($catchall_email) && strlen($catchall_email) > 0) 
		{
			$out .= "@" . $domain . "\n";
		}
	}

	$out .= "</dtc_backup_mx_recipient_list>\n";
	break;
default:
	break;
}

echo $out;
?>