Bernd Wurst commited on 2013-03-19 06:18:44
Zeige 1 geänderte Dateien mit 24 Einfügungen und 5 Löschungen.
... | ... |
@@ -252,6 +252,29 @@ function make_webapp_vhost($id, $webapp) |
252 | 252 |
} |
253 | 253 |
|
254 | 254 |
|
255 |
+function check_hostname_collision($hostname, $domain) |
|
256 |
+{ |
|
257 |
+ # Neuer vhost => Prüfe Duplikat |
|
258 |
+ $hostnamecheck = "hostname='".mysql_real_escape_string($hostname)."'"; |
|
259 |
+ if (! $hostname) { |
|
260 |
+ $hostnamecheck = "hostname IS NULL"; |
|
261 |
+ } |
|
262 |
+ $domaincheck = "domain=". (int) $domain ; |
|
263 |
+ if ($domain == -1) { |
|
264 |
+ $domaincheck = "domain IS NULL"; |
|
265 |
+ } |
|
266 |
+ $result = db_query("SELECT id FROM vhosts.vhost WHERE {$hostnamecheck} AND {$domaincheck}"); |
|
267 |
+ if (mysql_num_rows($result) > 0) { |
|
268 |
+ system_failure('Eine Konfiguration mit diesem Namen gibt es bereits.'); |
|
269 |
+ } |
|
270 |
+ $result = db_query("SELECT id, vhost FROM vhosts.alias WHERE {$hostnamecheck} AND {$domaincheck}"); |
|
271 |
+ if (mysql_num_rows($result) > 0) { |
|
272 |
+ $data = mysql_fetch_assoc($result); |
|
273 |
+ $vh = get_vhost_details($data['vhost']); |
|
274 |
+ system_failure('Dieser Hostname ist bereits als Alias für »'.$vh['fqdn'].'« eingerichtet'); |
|
275 |
+ } |
|
276 |
+} |
|
277 |
+ |
|
255 | 278 |
function save_vhost($vhost) |
256 | 279 |
{ |
257 | 280 |
if (! is_array($vhost)) |
... | ... |
@@ -264,11 +287,7 @@ function save_vhost($vhost) |
264 | 287 |
if ($vhost['domain_id'] == -1) |
265 | 288 |
$domain = 'NULL'; |
266 | 289 |
if ($id == 0) { |
267 |
- # Neuer vhost |
|
268 |
- $result = db_query("SELECT id FROM vhosts.v_vhost WHERE hostname={$hostname} AND domain_id={$domain}"); |
|
269 |
- if (mysql_num_rows($result) > 0) { |
|
270 |
- system_failure('Eine Konfiguration mit diesem Namen gibt es bereits.'); |
|
271 |
- } |
|
290 |
+ check_hostname_collision($vhost['hostname'], $vhost['domain_id']); |
|
272 | 291 |
} |
273 | 292 |
$docroot = maybe_null($vhost['docroot']); |
274 | 293 |
$php = maybe_null($vhost['php']); |
275 | 294 |