3 require_once("lib.php");
7 // this functiuon will now act as our generic send/recieve client funciton
8 // im doing this because im going to move from ipc messaging to a tcp connection
9 // shortly and i want to encapsulate the send/receive behaviour
10 // things we need to add here are:
11 // 1) a way of saying "more data coming" cause getusers wont fit into one message
12 // 2) timeouts and locking
13 function sendReceive($message_type, $message) {
14 global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
17 if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
21 if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
24 // TODO we need to setup a client queue sem lock here
26 $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
27 $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
29 msg_send($sr_queue, $message_type, $message, true, true, $msg_err);
30 msg_receive($cl_queue, 0, $msg_type, 131072, $msg);
35 function addRadiusClient($clientname, $clientip, $clientsecret, $clientdesc) {
37 $message["clientname"] = $clientname;
38 $message["clientsecret"] = $clientsecret;
39 $message["clientip"] = $clientip;
40 $message["clientdescription"] = $clientdesc;
42 return $this->sendReceive(MSG_ADD_RADIUS_CLIENT, $message);
45 function deleteRadiusClient($clientname) {
46 $message["clientname"] = $clientname;
48 return $this->sendReceive(MSG_REMOVE_RADIUS_CLIENT, $message);
52 function getRadiusClients() {
53 return $this->sendReceive(MSG_GET_RADIUS_CLIENTS, "");
57 function syncUserToken($username, $tokenone, $tokentwo) {
58 $message["username"] = $username;
59 $message["tokenone"] = $tokenone;
60 $message["tokentwo"] = $tokentwo;
62 return $this->sendReceive(MSG_SYNC_TOKEN, $messgae);
65 function getUserTokenType($username) {
66 $message["username"] = $username;
68 return $this->sendReceive(MSG_GET_TOKEN_TYPE, $message);
71 function setUserToken($username, $token) {
72 $message["username"] = $username;
73 $message["tokenstring"] = $token;
75 return $this->sendReceive(MSG_GET_USER_TOKEN, $message);
78 function setUserPass($username, $password) {
79 $message["username"] = $username;
80 $message["password"] = $password;
82 return $this->sendReceive(MSG_SET_USER_PASSWORD, $message);
85 function getOtkID($username) {
86 $message["username"] = $username;
88 return $this->sendReceive(MSG_GET_OTK_ID, $message);
91 function getOtkPng($username, $otk) {
92 $message["otk"] = $otk;
93 $message["username"] = $username;
95 return $this->sendReceive(MSG_GET_OTK_PNG, $message);
98 function authUserPass($username, $password) {
99 $message["username"] = $username;
100 $message["password"] = $password;
102 return $this->sendReceive(MSG_AUTH_USER_PASSWORD, $message);
105 function deleteUser($username) {
106 $message["username"] = $username;
108 return $this->sendReceive(MSG_DELETE_USER, $message);
111 function setUserRealName($username, $realname) {
112 $message["username"] = $username;
113 $message["realname"] = $realname;
115 return $this->sendReceive(MSG_SET_USER_REALNAME, $message);
118 function getUsers() {
119 return $this->sendReceive(MSG_GET_USERS, "");
122 function authUserToken($username, $passcode) {
123 $message["username"] = $username;
124 $message["passcode"] = $passcode;
126 return $this->sendReceive(MSG_AUTH_USER_TOKEN, $message);
129 function deleteUserToken($username) {
130 $message["username"] = $username;
132 return $this->sendReceive(MSG_DELETE_USER_TOKEN, $message);
135 function addUser($username, $tokentype="", $hexkey="") {
136 $message["username"] = $username;
137 if($tokentype!="") $message["tokentype"] = $tokentype;
138 if($hexkey!="") $message["hexkey"] = $hexkey;
140 return $this->sendReceive(MSG_ADD_USER_TOKEN, $message);
143 function setUserTokenType($username, $tokentype) {
144 $message["username"] = $username;
145 $message["tokentype"] = $tokentype;
147 return $this->sendReceive(MSG_SET_USER_TOKEN_TYPE, $message);