non working experimental status

This commit is contained in:
Marc Wäckerlin
2016-01-08 11:40:36 +00:00
parent d7bf59444e
commit 787eefc67c
11 changed files with 97 additions and 52 deletions

View File

@@ -24,12 +24,14 @@
function login($user, $pubkey) {
try {
require_once("opendb.php");
if (!$db) error("database access failed");
if ($user=="safechat") error("username safechat is reserved for server");
$verify = gnupg_import($pgp, $pubkey);
if (!$verify) error("wrong identity");
//$verify = gnupg_import($pgp, $pubkey);
//if (!$verify) error("wrong identity");
$user = $db->real_escape_string($user);
$pubkey = $db->real_escape_string($pubkey);
$q = $db->query("select * from user where name='$user' and pubkey='$pubkey';");
if (!$q) error("database query failed");
if ($q->num_rows==1) {
success("user $user found on server");
} elseif ($q->num_rows==0) {

View File

@@ -11,6 +11,7 @@
mysqli_report(MYSQLI_REPORT_STRICT);
require_once("functions.php");
/*
try {
if (!isset($pgp)) {
$pgp = gnupg_init();
@@ -19,17 +20,23 @@ try {
} catch (Exception $e) {
error('cannot start pgp on server');
}
*/
try {
if (!isset($db)) {
$db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]);
if (!$db) error("database connection failed on server");
$db->query("create database if not exists safechat;");
$db->select_db("safechat");
if (!$db) error("cannot create database for safechat");
$db->query(file_get_contents("schema.sql"));
if (!$db) error("cannot create database tables");
$db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]);
if (!$db) error("database connection failed on server");
$db->query("create database if not exists safechat;");
if (!$db) error("cannot create database");
$db->select_db("safechat");
if (!$db) error("cannot select database");
$query = file_get_contents("schema.sql");
if (!$query) error("cannot load database schema");
foreach (split(";\n", $query) as $create) {
if ($create) {
$db->query($create);
if (!$db) error("cannot create database tables");
}
}
} catch (Exception $e) {
error('database error on server');
error('database error on server: '+$e->getMessage());
}
?>

View File

@@ -294,7 +294,8 @@ function createkeypair(user, pwd) {
localStorage["privKey"] = keyPair.privateKeyArmored;
login();
}).catch(function(e) {
error(e);
console.log(e.stack);
error("generating key pairs failed");
});
}
@@ -668,20 +669,37 @@ function newuser() {
});
}
/// Check if local storage is available
function checkLocalStorage() {
var test = 'test';
try {
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch(e) {
status("<p>No access to local storage. Please allow "+window.location.hostname
+" to access localhost, i.e. do not block cookies.<p>");
error("local storage not available");
}
return false;
}
/// Initial Function: Startup
/** Decide whether to login or to create a new user */
function start() {
$("#menu").hide();
try {
status("Starting up ...");
if (!userid()) {
newuser();
} else {
login();
if (checkLocalStorage())
try {
status("Starting up ...");
if (!userid()) {
newuser();
} else {
login();
}
} catch (m) {
console.log(m.stack);
error(m);
}
} catch (m) {
error(m);
}
}
/// On Load, Call @ref start

View File

@@ -29,8 +29,10 @@ function send($user, $msg) {
if (strlen($_REQUEST['msg'])>100000) error("message is too long");
$q = $db->query("select pubkey from user where name='$user';");
if (!$q || $q->num_rows!=1) error("user not found on server");
/*
$pubkey = gnupg_import($pgp, $q->fetch_row()[0]);
if (!$pubkey) error("wrong identity");
*/
$q = $db->query("insert into message (user, msg) values ('$user', '$msg');");
if (!$q) {
error_log("Error storing message: ".$db->error);