/** * Method enable or disable domain * * @param bool $enable if true, function enable domain, otherwise disable it * @return bool return TRUE on success, FALSE on failure */ function enable_domain($enable) { global $data; $data->add_method('enable_domain'); $data->add_method('reload_domains'); $errors = array(); FileJournal::clear(); if ($enable) { $opt['did'] = $this->did; $opt['disable'] = false; if (false === $this->create_or_remove_all_symlinks(true, $errors)) { FileJournal::rollback(); ErrorHandler::add_error($errors); return false; } } else { $opt['did'] = $this->did; $opt['disable'] = true; if (false === $this->create_or_remove_all_symlinks(false, $errors)) { FileJournal::rollback(); ErrorHandler::add_error($errors); return false; } } if (false === $data->enable_domain($opt)) { FileJournal::rollback(); return false; } /* notify SER to reload domains */ if (false === $data->reload_domains(null, $errors)) { ErrorHandler::add_error($errors); return false; } return true; }
function update_domain($domainname, $customer, &$errors) { global $data; $sem = new Shm_Semaphore(__FILE__, "s", 1, 0600); if (false === $data->transaction_start()) { return false; } FileJournal::clear(); /* set semaphore to be sure there will not be generated same domain id for two domains */ if (!$sem->acquire()) { $data->transaction_rollback(); return false; } if (false === $this->generate_domain_id($domainname, $errors)) { return false; } if (!empty($domainname)) { if (false === DomainManipulator::add_alias($this->id, $domainname, null)) { FileJournal::rollback(); $data->transaction_rollback(); $this->revert_domain_id(); $sem->release(); return false; } } $a_vals = array("owner_id" => $customer, "alias" => $domainname); if (false === DomainManipulator::update_domain_attrs($this->id, $a_vals)) { FileJournal::rollback(); $data->transaction_rollback(); $this->revert_domain_id(); $sem->release(); return false; } if (false === $data->transaction_commit()) { return false; } $sem->release(); return true; }