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);
|
||||
|
||||
$db->autocommit(false);
|
||||
$db->beginTransaction();
|
||||
|
||||
$stmt = $db->prepare("INSERT INTO domains(name,type) VALUES (?,?)");
|
||||
$stmt->bind_param("ss", $input->name, $input->type);
|
||||
$stmt = $db->prepare("INSERT INTO domains(name,type) VALUES (:name,:type)");
|
||||
$stmt->bindValue(':name', $input->name, PDO::PARAM_STR);
|
||||
$stmt->bindValue(':type', $input->type, PDO::PARAM_STR);
|
||||
$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->bind_result($newDomainId);
|
||||
$stmt->fetch();
|
||||
$stmt->close();
|
||||
$newDomainId = $stmt->fetchColumn();
|
||||
|
||||
$stmt = $db->prepare("INSERT INTO records(domain_id,name,type,content,ttl) VALUES (?,?,'SOA',?,?)");
|
||||
$stmt->bind_param("issi", $newDomainId, $input->name, $soaContent, $input->ttl);
|
||||
$stmt = $db->prepare("INSERT INTO records(domain_id,name,type,content,ttl) VALUES (:domain_id,:name,'SOA',:content,: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->close();
|
||||
|
||||
$db->commit();
|
||||
|
||||
|
|
|
@ -98,15 +98,58 @@ CREATE TABLE IF NOT EXISTS options (
|
|||
PRIMARY KEY (name)
|
||||
) 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 (
|
||||
id INT AUTO_INCREMENT,
|
||||
domain_id INT NOT NULL,
|
||||
kind VARCHAR(32),
|
||||
content TEXT,
|
||||
PRIMARY KEY (id)
|
||||
) Engine=InnoDB;
|
||||
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,
|
||||
domain_id INT NOT NULL,
|
||||
kind VARCHAR(32),
|
||||
content TEXT,
|
||||
PRIMARY KEY (id),
|
||||
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"]="
|
||||
|
@ -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 recordorder ON records (domain_id, ordername text_pattern_ops);
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user (
|
||||
id SERIAL PRIMARY KEY,
|
||||
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);
|
||||
";
|
||||
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) {
|
||||
$retval['status'] = "error";
|
||||
|
|
|
@ -31,7 +31,7 @@ if(isset($input->action) && $input->action == "requestUpgrade") {
|
|||
$currentVersion = getVersion($db);
|
||||
|
||||
if($currentVersion < 1) {
|
||||
$sql = "
|
||||
$sql["mysql"] = "
|
||||
CREATE TABLE IF NOT EXISTS remote (
|
||||
id int(11) NOT NULL AUTO_INCREMENT,
|
||||
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);
|
||||
";
|
||||
|
||||
$db->multi_query($sql);
|
||||
while ($db->next_result()) {;}
|
||||
$sql["pgsql"] = "";
|
||||
$stmt = $db->query($sql[$config['db_type']]);
|
||||
while ($stmt->nextRowset()) {;}
|
||||
}
|
||||
if($currentVersion < 2) {
|
||||
$sql = "
|
||||
$sql["mysql"] = "
|
||||
ALTER TABLE permissions
|
||||
DROP FOREIGN KEY permissions_ibfk_1;
|
||||
ALTER TABLE permissions
|
||||
|
@ -79,12 +79,12 @@ if(isset($input->action) && $input->action == "requestUpgrade") {
|
|||
|
||||
UPDATE options SET value=2 WHERE name='schema_version';
|
||||
";
|
||||
|
||||
$db->multi_query($sql);
|
||||
while ($db->next_result()) {;}
|
||||
$sql["pgsql"] = "";
|
||||
$stmt = $db->query($sql[$config['db_type']]);
|
||||
while ($stmt->nextRowset()) {;}
|
||||
}
|
||||
if($currentVersion < 3) {
|
||||
$sql = "
|
||||
$sql["mysql"] = "
|
||||
CREATE TABLE domainmetadata (
|
||||
id INT AUTO_INCREMENT,
|
||||
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';
|
||||
";
|
||||
|
||||
$db->multi_query($sql);
|
||||
while ($db->next_result()) {;}
|
||||
$sql["pgsql"] = "";
|
||||
$stmt = $db->query($sql[$config['db_type']]);
|
||||
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";
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,12 @@ $config['db_password'] = "";
|
|||
$config['db_port'] = 3306;
|
||||
$config['db_name'] = "pdnsmanager";
|
||||
|
||||
//HTTP API Settings
|
||||
$config['api_functionality'] = true;
|
||||
$config['api_host'] = "localhost"
|
||||
$config['api_port'] = 8080;
|
||||
$config['api_key'] = "";
|
||||
|
||||
//Remote update
|
||||
$config['nonce_lifetime'] = 15;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
*/
|
||||
|
||||
function getExpectedVersion() {
|
||||
return 3;
|
||||
return 4;
|
||||
}
|
||||
|
||||
function checkVersion($db) {
|
||||
|
@ -29,19 +29,14 @@ function checkVersion($db) {
|
|||
}
|
||||
|
||||
function getVersion($db) {
|
||||
$stmt = $db->prepare("SHOW TABLES LIKE 'options'");
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
if($stmt->num_rows() < 1) {
|
||||
|
||||
try {
|
||||
$stmt = $db->prepare("SELECT value FROM options WHERE name='schema_version' LIMIT 1");
|
||||
$stmt->execute();
|
||||
$version = $stmt->fetchColumn();
|
||||
} catch (Exception $e) {
|
||||
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;
|
||||
}
|
|
@ -16,8 +16,9 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
$db = new mysqli($config['db_host'], $config['db_user'], $config['db_password'], $config['db_name'], $config['db_port']);
|
||||
|
||||
if ($db->connect_error) {
|
||||
die("Connection to database failed");
|
||||
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']);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
die("Connection to database failed");
|
||||
}
|
|
@ -18,16 +18,13 @@
|
|||
|
||||
function update_serial($db, $domainId) {
|
||||
|
||||
$db->autocommit(false);
|
||||
$db->begin_transaction();
|
||||
$db->beginTransaction();
|
||||
|
||||
$stmt = $db->prepare("SELECT content FROM records WHERE type='SOA' AND domain_id=?");
|
||||
$stmt->bind_param("i", $domainId);
|
||||
$stmt = $db->prepare("SELECT content FROM records WHERE type='SOA' AND domain_id=:domain_id LIMIT 1");
|
||||
$stmt->bindValue(':domain_id', $domainId, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$stmt->bind_result($content);
|
||||
$stmt->fetch();
|
||||
$stmt->close();
|
||||
|
||||
$content = $stmt->fetchColumn();
|
||||
|
||||
$content = explode(" ", $content);
|
||||
|
||||
$serial = $content[2];
|
||||
|
@ -50,8 +47,9 @@ function update_serial($db, $domainId) {
|
|||
|
||||
$newsoa = implode(" ", $content);
|
||||
|
||||
$stmt = $db->prepare("UPDATE records SET content=? WHERE type='SOA' AND domain_id=?");
|
||||
$stmt->bind_param("si", $newsoa, $domainId);
|
||||
$stmt = $db->prepare("UPDATE records SET content=:content WHERE type='SOA' AND domain_id=:domain_id");
|
||||
$stmt->bindValue(':content', $newsoa, PDO::PARAM_STR);
|
||||
$stmt->bindValue(':domain_id', $domainId, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
|
||||
$db->commit();
|
||||
|
|
Loading…
Reference in a new issue