Started Work Again
This commit is contained in:
parent
3bf4e2874a
commit
1aaa24280f
|
@ -45,23 +45,25 @@ if(isset($input->action) && $input->action == "addDomain") {
|
||||||
|
|
||||||
$soaContent = implode(" ", $soaData);
|
$soaContent = implode(" ", $soaData);
|
||||||
|
|
||||||
$db->autocommit(false);
|
$db->beginTransaction();
|
||||||
|
|
||||||
$stmt = $db->prepare("INSERT INTO domains(name,type) VALUES (?,?)");
|
$stmt = $db->prepare("INSERT INTO domains(name,type) VALUES (:name,:type)");
|
||||||
$stmt->bind_param("ss", $input->name, $input->type);
|
$stmt->bindValue(':name', $input->name, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':type', $input->type, PDO::PARAM_STR);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
$stmt = $db->prepare("SELECT LAST_INSERT_ID()");
|
$stmt = $db->prepare("SELECT id FROM domains WHERE name=:name AND type=:type LIMIT 1");
|
||||||
|
$stmt->bindValue(':name', $input->name, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':type', $input->type, PDO::PARAM_STR);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->bind_result($newDomainId);
|
$newDomainId = $stmt->fetchColumn();
|
||||||
$stmt->fetch();
|
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
$stmt = $db->prepare("INSERT INTO records(domain_id,name,type,content,ttl) VALUES (?,?,'SOA',?,?)");
|
$stmt = $db->prepare("INSERT INTO records(domain_id,name,type,content,ttl) VALUES (:domain_id,:name,'SOA',:content,:ttl)");
|
||||||
$stmt->bind_param("issi", $newDomainId, $input->name, $soaContent, $input->ttl);
|
$stmt->bindValue(':domain_id', $newDomainId, PDO::PARAM_INT);
|
||||||
|
$stmt->bindValue(':name', $input->name, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':content', $soaContent, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':ttl', $input->ttl, PDO::PARAM_INT);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
|
|
|
@ -98,15 +98,58 @@ CREATE TABLE IF NOT EXISTS options (
|
||||||
PRIMARY KEY (name)
|
PRIMARY KEY (name)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
INSERT INTO options(name,value) VALUES ('schema_version', 3);
|
INSERT INTO options(name,value) VALUES ('schema_version', 4);
|
||||||
|
|
||||||
CREATE TABLE domainmetadata (
|
CREATE TABLE IF NOT EXISTS supermasters (
|
||||||
|
ip VARCHAR(64) NOT NULL,
|
||||||
|
nameserver VARCHAR(255) NOT NULL,
|
||||||
|
account VARCHAR(40) NOT NULL,
|
||||||
|
PRIMARY KEY (ip, nameserver)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS comments (
|
||||||
|
id INT AUTO_INCREMENT,
|
||||||
|
domain_id INT NOT NULL,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
type VARCHAR(10) NOT NULL,
|
||||||
|
modified_at INT NOT NULL,
|
||||||
|
account VARCHAR(40) NOT NULL,
|
||||||
|
comment VARCHAR(64000) NOT NULL,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
KEY comments_domain_id_idx (domain_id),
|
||||||
|
KEY comments_name_type_idx (name,type),
|
||||||
|
KEY comments_order_idx (domain_id, modified_at)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS domainmetadata (
|
||||||
id INT AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
domain_id INT NOT NULL,
|
domain_id INT NOT NULL,
|
||||||
kind VARCHAR(32),
|
kind VARCHAR(32),
|
||||||
content TEXT,
|
content TEXT,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id),
|
||||||
) Engine=InnoDB;
|
KEY domainmetadata_idx (domain_id, kind)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cryptokeys (
|
||||||
|
id INT AUTO_INCREMENT,
|
||||||
|
domain_id INT NOT NULL,
|
||||||
|
flags INT NOT NULL,
|
||||||
|
active BOOL,
|
||||||
|
content TEXT,
|
||||||
|
PRIMARY KEY(id),
|
||||||
|
KEY domainidindex (domain_id)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS tsigkeys (
|
||||||
|
id INT AUTO_INCREMENT,
|
||||||
|
name VARCHAR(255),
|
||||||
|
algorithm VARCHAR(50),
|
||||||
|
secret VARCHAR(255),
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY namealgoindex (name, algorithm)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
";
|
";
|
||||||
|
|
||||||
$sql["pgsql"]="
|
$sql["pgsql"]="
|
||||||
|
@ -146,8 +189,6 @@ CREATE INDEX IF NOT EXISTS nametype_index ON records(name,type);
|
||||||
CREATE INDEX IF NOT EXISTS domain_id ON records(domain_id);
|
CREATE INDEX IF NOT EXISTS domain_id ON records(domain_id);
|
||||||
CREATE INDEX IF NOT EXISTS recordorder ON records (domain_id, ordername text_pattern_ops);
|
CREATE INDEX IF NOT EXISTS recordorder ON records (domain_id, ordername text_pattern_ops);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS user (
|
CREATE TABLE IF NOT EXISTS user (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
name varchar(50) NOT NULL,
|
name varchar(50) NOT NULL,
|
||||||
|
@ -250,7 +291,7 @@ CREATE TABLE IF NOT EXISTS tsigkeys (
|
||||||
CREATE UNIQUE INDEX IF NOT EXISTS namealgoindex ON tsigkeys(name, algorithm);
|
CREATE UNIQUE INDEX IF NOT EXISTS namealgoindex ON tsigkeys(name, algorithm);
|
||||||
";
|
";
|
||||||
try {
|
try {
|
||||||
$db = new PDO("$input->type:dbname=$input->database;host=$input->host;port=$input->port", $input->user, $input->password); ;
|
$db = new PDO("$input->type:dbname=$input->database;host=$input->host;port=$input->port", $input->user, $input->password);
|
||||||
}
|
}
|
||||||
catch (PDOException $e) {
|
catch (PDOException $e) {
|
||||||
$retval['status'] = "error";
|
$retval['status'] = "error";
|
||||||
|
|
|
@ -31,7 +31,7 @@ if(isset($input->action) && $input->action == "requestUpgrade") {
|
||||||
$currentVersion = getVersion($db);
|
$currentVersion = getVersion($db);
|
||||||
|
|
||||||
if($currentVersion < 1) {
|
if($currentVersion < 1) {
|
||||||
$sql = "
|
$sql["mysql"] = "
|
||||||
CREATE TABLE IF NOT EXISTS remote (
|
CREATE TABLE IF NOT EXISTS remote (
|
||||||
id int(11) NOT NULL AUTO_INCREMENT,
|
id int(11) NOT NULL AUTO_INCREMENT,
|
||||||
record int(11) NOT NULL,
|
record int(11) NOT NULL,
|
||||||
|
@ -54,12 +54,12 @@ if(isset($input->action) && $input->action == "requestUpgrade") {
|
||||||
|
|
||||||
INSERT INTO options(name,value) VALUES ('schema_version', 1);
|
INSERT INTO options(name,value) VALUES ('schema_version', 1);
|
||||||
";
|
";
|
||||||
|
$sql["pgsql"] = "";
|
||||||
$db->multi_query($sql);
|
$stmt = $db->query($sql[$config['db_type']]);
|
||||||
while ($db->next_result()) {;}
|
while ($stmt->nextRowset()) {;}
|
||||||
}
|
}
|
||||||
if($currentVersion < 2) {
|
if($currentVersion < 2) {
|
||||||
$sql = "
|
$sql["mysql"] = "
|
||||||
ALTER TABLE permissions
|
ALTER TABLE permissions
|
||||||
DROP FOREIGN KEY permissions_ibfk_1;
|
DROP FOREIGN KEY permissions_ibfk_1;
|
||||||
ALTER TABLE permissions
|
ALTER TABLE permissions
|
||||||
|
@ -79,12 +79,12 @@ if(isset($input->action) && $input->action == "requestUpgrade") {
|
||||||
|
|
||||||
UPDATE options SET value=2 WHERE name='schema_version';
|
UPDATE options SET value=2 WHERE name='schema_version';
|
||||||
";
|
";
|
||||||
|
$sql["pgsql"] = "";
|
||||||
$db->multi_query($sql);
|
$stmt = $db->query($sql[$config['db_type']]);
|
||||||
while ($db->next_result()) {;}
|
while ($stmt->nextRowset()) {;}
|
||||||
}
|
}
|
||||||
if($currentVersion < 3) {
|
if($currentVersion < 3) {
|
||||||
$sql = "
|
$sql["mysql"] = "
|
||||||
CREATE TABLE domainmetadata (
|
CREATE TABLE domainmetadata (
|
||||||
id INT AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
domain_id INT NOT NULL,
|
domain_id INT NOT NULL,
|
||||||
|
@ -98,11 +98,59 @@ if(isset($input->action) && $input->action == "requestUpgrade") {
|
||||||
|
|
||||||
UPDATE options SET value=3 WHERE name='schema_version';
|
UPDATE options SET value=3 WHERE name='schema_version';
|
||||||
";
|
";
|
||||||
|
$sql["pgsql"] = "";
|
||||||
$db->multi_query($sql);
|
$stmt = $db->query($sql[$config['db_type']]);
|
||||||
while ($db->next_result()) {;}
|
while ($stmt->nextRowset()) {;}
|
||||||
}
|
}
|
||||||
|
if($currentVersion < 4) {
|
||||||
|
$sql["mysql"] = "
|
||||||
|
CREATE TABLE IF NOT EXISTS supermasters (
|
||||||
|
ip VARCHAR(64) NOT NULL,
|
||||||
|
nameserver VARCHAR(255) NOT NULL,
|
||||||
|
account VARCHAR(40) NOT NULL,
|
||||||
|
PRIMARY KEY (ip, nameserver)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS comments (
|
||||||
|
id INT AUTO_INCREMENT,
|
||||||
|
domain_id INT NOT NULL,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
type VARCHAR(10) NOT NULL,
|
||||||
|
modified_at INT NOT NULL,
|
||||||
|
account VARCHAR(40) NOT NULL,
|
||||||
|
comment VARCHAR(64000) NOT NULL,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
KEY comments_domain_id_idx (domain_id),
|
||||||
|
KEY comments_name_type_idx (name,type),
|
||||||
|
KEY comments_order_idx (domain_id, modified_at)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cryptokeys (
|
||||||
|
id INT AUTO_INCREMENT,
|
||||||
|
domain_id INT NOT NULL,
|
||||||
|
flags INT NOT NULL,
|
||||||
|
active BOOL,
|
||||||
|
content TEXT,
|
||||||
|
PRIMARY KEY(id),
|
||||||
|
KEY domainidindex (domain_id)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS tsigkeys (
|
||||||
|
id INT AUTO_INCREMENT,
|
||||||
|
name VARCHAR(255),
|
||||||
|
algorithm VARCHAR(50),
|
||||||
|
secret VARCHAR(255),
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY namealgoindex (name, algorithm)
|
||||||
|
) Engine=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
UPDATE options SET value=4 WHERE name='schema_version';
|
||||||
|
";
|
||||||
|
$sql["pgsql"] = "";
|
||||||
|
$stmt = $db->query($sql[$config['db_type']]);
|
||||||
|
while ($stmt->nextRowset()) {;}
|
||||||
|
}
|
||||||
$retval['status'] = "success";
|
$retval['status'] = "success";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,12 @@ $config['db_password'] = "";
|
||||||
$config['db_port'] = 3306;
|
$config['db_port'] = 3306;
|
||||||
$config['db_name'] = "pdnsmanager";
|
$config['db_name'] = "pdnsmanager";
|
||||||
|
|
||||||
|
//HTTP API Settings
|
||||||
|
$config['api_functionality'] = true;
|
||||||
|
$config['api_host'] = "localhost"
|
||||||
|
$config['api_port'] = 8080;
|
||||||
|
$config['api_key'] = "";
|
||||||
|
|
||||||
//Remote update
|
//Remote update
|
||||||
$config['nonce_lifetime'] = 15;
|
$config['nonce_lifetime'] = 15;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function getExpectedVersion() {
|
function getExpectedVersion() {
|
||||||
return 3;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkVersion($db) {
|
function checkVersion($db) {
|
||||||
|
@ -29,19 +29,14 @@ function checkVersion($db) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getVersion($db) {
|
function getVersion($db) {
|
||||||
$stmt = $db->prepare("SHOW TABLES LIKE 'options'");
|
|
||||||
|
try {
|
||||||
|
$stmt = $db->prepare("SELECT value FROM options WHERE name='schema_version' LIMIT 1");
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->store_result();
|
$version = $stmt->fetchColumn();
|
||||||
if($stmt->num_rows() < 1) {
|
} catch (Exception $e) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
$stmt = $db->prepare("SELECT value FROM options WHERE name='schema_version'");
|
|
||||||
$stmt->execute();
|
|
||||||
$stmt->bind_result($version);
|
|
||||||
$stmt->fetch();
|
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
|
@ -16,8 +16,9 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$db = new mysqli($config['db_host'], $config['db_user'], $config['db_password'], $config['db_name'], $config['db_port']);
|
try {
|
||||||
|
$db = new PDO("$config['db_type']:dbname=$config['db_name'];host=$config['db_host'];port=$config['db_port']", $config['db_user'], $config['db_password']);
|
||||||
if ($db->connect_error) {
|
}
|
||||||
|
catch (PDOException $e) {
|
||||||
die("Connection to database failed");
|
die("Connection to database failed");
|
||||||
}
|
}
|
|
@ -18,15 +18,12 @@
|
||||||
|
|
||||||
function update_serial($db, $domainId) {
|
function update_serial($db, $domainId) {
|
||||||
|
|
||||||
$db->autocommit(false);
|
$db->beginTransaction();
|
||||||
$db->begin_transaction();
|
|
||||||
|
|
||||||
$stmt = $db->prepare("SELECT content FROM records WHERE type='SOA' AND domain_id=?");
|
$stmt = $db->prepare("SELECT content FROM records WHERE type='SOA' AND domain_id=:domain_id LIMIT 1");
|
||||||
$stmt->bind_param("i", $domainId);
|
$stmt->bindValue(':domain_id', $domainId, PDO::PARAM_INT);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->bind_result($content);
|
$content = $stmt->fetchColumn();
|
||||||
$stmt->fetch();
|
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
$content = explode(" ", $content);
|
$content = explode(" ", $content);
|
||||||
|
|
||||||
|
@ -50,8 +47,9 @@ function update_serial($db, $domainId) {
|
||||||
|
|
||||||
$newsoa = implode(" ", $content);
|
$newsoa = implode(" ", $content);
|
||||||
|
|
||||||
$stmt = $db->prepare("UPDATE records SET content=? WHERE type='SOA' AND domain_id=?");
|
$stmt = $db->prepare("UPDATE records SET content=:content WHERE type='SOA' AND domain_id=:domain_id");
|
||||||
$stmt->bind_param("si", $newsoa, $domainId);
|
$stmt->bindValue(':content', $newsoa, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':domain_id', $domainId, PDO::PARAM_INT);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
Loading…
Reference in a new issue