X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=authserver%2Flib%2Flib.php;h=3a55a6c5199e4fa4666a0897468dd69e0c6503f9;hb=f10680a1827dd8e4c65eaaef810ee7fd498e5a1e;hp=689389a5079dcd8668bb111dc4e910df942aebb0;hpb=1e9b1b3a5c4dd1f033ae5f3145d7bb7bcd73a4d6;p=ga4php.git diff --git a/authserver/lib/lib.php b/authserver/lib/lib.php index 689389a..3a55a6c 100644 --- a/authserver/lib/lib.php +++ b/authserver/lib/lib.php @@ -4,6 +4,9 @@ if(!isset($MSG_QUEUE_KEY_ID_SERVER)) $MSG_QUEUE_KEY_ID_SERVER = "189751072"; // if(!isset($MSG_QUEUE_KEY_ID_CLIENT)) $MSG_QUEUE_KEY_ID_CLIENT = "189751073"; // ftok is not ok! global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT; +if(!isset($TCP_PORT_NUMBER)) $TCP_PORT_NUMBER = 21446; +global $TCP_PORT_NUMBER; + define("MSG_AUTH_USER_TOKEN", 1); define("MSG_ADD_USER_TOKEN", 2); define("MSG_DELETE_USER", 3); @@ -15,10 +18,20 @@ define("MSG_SET_USER_TOKEN_TYPE", 8); define("MSG_GET_USERS", 9); define("MSG_GET_OTK_PNG", 10); define("MSG_GET_OTK_ID", 11); +define("MSG_DELETE_USER_TOKEN", 12); +define("MSG_SYNC_TOKEN", 13); +define("MSG_GET_TOKEN_TYPE", 14); +define("MSG_GET_RADIUS_CLIENTS", 15); +define("MSG_REMOVE_RADIUS_CLIENT", 16); +define("MSG_ADD_RADIUS_CLIENT", 17); -if(file_exists("../../lib/ga4php.php")) require_once("../../lib/ga4php.php"); -if(file_exists("../lib/ga4php.php")) require_once("../lib/ga4php.php"); +// BASE_DIR = +// messy +$BASE_DIR = realpath(dirname(__FILE__)."/../../"); +global $BASE_DIR; +// messy +require_once(dirname(__FILE__)."/../../lib/ga4php.php"); function generateRandomString() { @@ -32,23 +45,52 @@ function generateRandomString() return $str; } +function updateRadius() +{ + // this is hardcoded for now. + //$clientfile = "/etc/freeradius/clients.conf"; + $clientfile = "/tmp/clients.conf"; + $reloadinit = "/etc/init.d/freeradius restart"; + + $db = getDatabase(); + + echo "in updateradius\n"; + $hand = fopen($clientfile, "w"); + $sql = "select * from radclients"; + $res = $db->query($sql); + foreach($res as $row) { + $cname = $row["rad_name"]; + $cip = $row["rad_ip"]; + $csec = $row["rad_secret"]; + $lines = "client $cname {\nipaddr = $cip\nsecret = $csec\nrequire_message_authenticator = no\n}\n\n"; + fwrite($hand, $lines); + } + fclose($hand); + // not yet + //system($reloadinit); +} + -function getDatabase() { +function getDatabase() +{ $dbobject = false; - if(file_exists("gaasdata.sqlite")) { + global $BASE_DIR; + if(file_exists("$BASE_DIR/authserver/authd/gaasdata.sqlite")) { try { - $dbobject = new PDO("sqlite:gaasdata.sqlite"); + $dbobject = new PDO("sqlite:$BASE_DIR/authserver/authd/gaasdata.sqlite"); } catch(PDOException $exep) { error_log("execpt on db open"); } } else { try { - $dbobject = new PDO("sqlite:gaasdata.sqlite"); + $dbobject = new PDO("sqlite:$BASE_DIR/authserver/authd/gaasdata.sqlite"); } catch(PDOException $exep) { error_log("execpt on db open"); } $sql = 'CREATE TABLE "users" ("users_id" INTEGER PRIMARY KEY AUTOINCREMENT,"users_username" TEXT, "users_realname" TEXT, "users_password" TEXT, "users_tokendata" TEXT, "users_otk" TEXT);'; $dbobject->query($sql); + $sql = 'CREATE TABLE "radclients" ("rad_id" INTEGER PRIMARY KEY AUTOINCREMENT,"rad_name" TEXT, "rad_ip" TEXT, "rad_secret" TEXT, "rad_desc" TEXT);'; + $dbobject->query($sql); } return $dbobject; @@ -100,9 +142,11 @@ class gaasGA extends GoogleAuthenticator { $res = $dbObject->query($sql); if($res->fetchColumn() > 0) { // do update + error_log("doing userdata update"); $sql = "update users set users_tokendata='$data' where users_username='$username'"; } else { // do insert + error_log("doing user data create"); $sql = "insert into users values (NULL, '$username', '', '', '$data', '')"; }