added a socket test
[ga4php.git] / authserver / lib / authClient.php
index 677be24..539ddc1 100644 (file)
@@ -4,7 +4,13 @@ require_once("lib.php");
 
 class GAAuthClient {
        
-       function setUserToken($username, $token) {
+       // this functiuon will now act as our generic send/recieve client funciton
+       // im doing this because im going to move from ipc messaging to a tcp connection
+       // shortly and i want to encapsulate the send/receive behaviour
+       // things we need to add here are:
+       // 1) a way of saying "more data coming" cause getusers wont fit into one message
+       // 2) timeouts and locking
+       function sendReceive($message_type, $message) {
                global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
                
                
@@ -20,244 +26,125 @@ class GAAuthClient {
                $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
                $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
                
-               $message["username"] = $username;
-               $message["token"] = $token;
+               msg_send($sr_queue, $message_type, $message, true, true, $msg_err);
+               msg_receive($cl_queue, 0, $msg_type, 131072, $msg);
                
-               msg_send($sr_queue, MSG_SET_USER_TOKEN, $message, true, true, $msg_err);
-               echo "message sent\n";
+               return $msg;
+       }
+       
+       function addRadiusClient($clientname, $clientip, $clientsecret, $clientdesc) {
+       
+               $message["clientname"] = $clientname;
+               $message["clientsecret"] = $clientsecret;
+               $message["clientip"] = $clientip;
+               $message["clientdescription"] = $clientdesc;
                
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               echo "message received?\n";
-               print_r($msg);
+               return $this->sendReceive(MSG_ADD_RADIUS_CLIENT, $message);
+       }
+
+       function deleteRadiusClient($clientname) {
+               $message["clientname"] = $clientname;
                
+               return $this->sendReceive(MSG_REMOVE_RADIUS_CLIENT, $message);
                
        }
        
-       function setUserPass($username, $password) {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
+       function getRadiusClients() {
+               return $this->sendReceive(MSG_GET_RADIUS_CLIENTS, "");
+       }
+       
+       
+       function syncUserToken($username, $tokenone, $tokentwo) {
+               $message["username"] = $username;
+               $message["tokenone"] = $tokenone;
+               $message["tokentwo"] = $tokentwo;
 
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
+               return $this->sendReceive(MSG_SYNC_TOKEN, $messgae);
+       }
+       
+       function getUserTokenType($username) {
+               $message["username"] = $username;
 
+               return $this->sendReceive(MSG_GET_TOKEN_TYPE, $message);                
+       }
+       
+       function setUserToken($username, $token) {
                $message["username"] = $username;
-               $message["password"] = $password;
-               
-               msg_send($sr_queue, MSG_SET_USER_PASSWORD, $message, true, true, $msg_err);
-               echo "message sent\n";
+               $message["tokenstring"] = $token;
                
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               echo "message received?\n";
-               print_r($msg);          
-       
+               return $this->sendReceive(MSG_GET_USER_TOKEN, $message);                
        }
        
-       function authUserPass($username, $password) {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
+       function setUserPass($username, $password) {
+               $message["username"] = $username;
+               $message["password"] = $password;
                
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
+               return $this->sendReceive(MSG_SET_USER_PASSWORD, $message);
+       }
+       
+       function getOtkID($username) {
+               $message["username"] = $username;
 
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
+               return $this->sendReceive(MSG_GET_OTK_ID, $message);
+       }
+       
+       function getOtkPng($username, $otk) {
+               $message["otk"] = $otk;
+               $message["username"] = $username;
 
+               return $this->sendReceive(MSG_GET_OTK_PNG, $message);
+       }
+       
+       function authUserPass($username, $password) {
                $message["username"] = $username;
                $message["password"] = $password;
                
-               msg_send($sr_queue, MSG_AUTH_USER_PASSWORD, $message, true, true, $msg_err);
-               echo "message sent\n";
-               
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               echo "message received?\n";
-               print_r($msg);
-               
+               return $this->sendReceive(MSG_AUTH_USER_PASSWORD, $message);            
        }
        
        function deleteUser($username) {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
-
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
-
                $message["username"] = $username;
                
-               msg_send($sr_queue, MSG_DELETE_USER, $message, true, true, $msg_err);
-               echo "message sent\n";
-               
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               echo "message received?\n";
-               print_r($msg);
-               
+               return $this->sendReceive(MSG_DELETE_USER, $message);
        }
        
        function setUserRealName($username, $realname) {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
-
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
-
                $message["username"] = $username;
                $message["realname"] = $realname;
                
-               msg_send($sr_queue, MSG_SET_USER_REALNAME, $message, true, true, $msg_err);
-               echo "message sent\n";
-               
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               echo "message received?\n";
-               print_r($msg);
-               
+               return $this->sendReceive(MSG_SET_USER_REALNAME, $message);             
        }
        
        function getUsers() {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
-
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
-               
-               msg_send($sr_queue, MSG_GET_USERS, "", true, true, $msg_err);
-               echo "message sent\n";
-               
-               msg_receive($cl_queue, 0, $msg_type, 524288, $msg);
-               echo "message received?\n";
-               print_r($msg);
-               
-               return $msg;
+               return $this->sendReceive(MSG_GET_USERS, "");
        }
        
        function authUserToken($username, $passcode) {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
-
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
-               
-               
                $message["username"] = $username;
                $message["passcode"] = $passcode;
                
-               msg_send($sr_queue, MSG_AUTH_USER_TOKEN, $message, true, true, $msg_err);
-               echo "message sent\n";
-               
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
+               return $this->sendReceive(MSG_AUTH_USER_TOKEN, $message);
+       }
+       
+       function deleteUserToken($username) {
+               $message["username"] = $username;
                
-               return $msg;
+               return $this->sendReceive(MSG_DELETE_USER_TOKEN, $message);
        }
        
        function addUser($username, $tokentype="", $hexkey="") {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
-
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
-               
-               
                $message["username"] = $username;
                if($tokentype!="") $message["tokentype"] = $tokentype;
                if($hexkey!="") $message["hexkey"] = $hexkey;
                
-               msg_send($sr_queue, MSG_ADD_USER_TOKEN, $message, true, true, $msg_err);
-               
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               
-               return $msg;
+               return $this->sendReceive(MSG_ADD_USER_TOKEN, $message);
        }
 
-       function setTokenType($username, $tokentype) {
-               global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
-               
-               
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
-                       return false;
-               }
-
-               if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
-                       return false;
-               }
-               
-               // TODO we need to setup a client queue sem lock here
-               
-               $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
-               $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
-               
-               
-               
+       function setUserTokenType($username, $tokentype) {
                $message["username"] = $username;
                $message["tokentype"] = $tokentype;
                
-               msg_send($sr_queue, MSG_ADD_USER, $message, true, true, $msg_err);
-               echo "message sent\n";
-               
-               msg_receive($cl_queue, 0, $msg_type, 16384, $msg);
-               echo "message received?\n";
-               print_r($msg);
-               
-               return $msg;
-               
+               return $this->sendReceive(MSG_SET_USER_TOKEN_TYPE, $message);
        }
 }