private function request($params) { $params['username'] = $this->username; $params['password'] = $this->password; if (empty($this->conn['fd'])) { if (!M_Connect($this->conn)) { throw new MonetraException(__(M_ConnectionError($this->conn))); } } $identifier = M_TransNew($this->conn); foreach ($params as $key => $value) { M_TransKeyVal($this->conn, $identifier, $key, $value); } return $this->executeRequest($identifier); }
/* Free memory associated with conn */ M_DestroyConn($conn); return; } echo "Connecting to {$MYHOST}:{$MYPORT} using {$MYMETHOD}..."; /* Connect to Monetra */ if (!M_Connect($conn)) { echo "Connection failed: " . M_ConnectionError($conn) . "\r\n"; /* Free memory associated with conn */ M_DestroyConn($conn); // free memory return; } echo "connected\r\n"; /* Allocate new transaction */ $identifier = M_TransNew($conn); /* User credentials */ M_TransKeyVal($conn, $identifier, "username", $MYUSER); M_TransKeyVal($conn, $identifier, "password", $MYPASS); /* Transaction Type */ M_TransKeyVal($conn, $identifier, "action", "admin"); M_TransKeyVal($conn, $identifier, "admin", "GUT"); echo "Sending Unsettled report request...\r\n"; /* Additional Auditing parameters may be specified * Please consult the Monetra Client Interface Protocol */ if (!M_TransSend($conn, $identifier)) { echo "Communication Error: " . M_ConnectionError($conn) . "\r\n"; /* Free memory associated with conn */ M_DestroyConn($conn); return; }
function MCVE_Bt(&$conn, $username, $password) { $id = M_TransNew($conn); M_TransKeyVal($conn, $id, "username", $username); M_TransKeyVal($conn, $id, "password", $password); M_TransKeyVal($conn, $id, "action", "admin"); M_TransKeyVal($conn, $id, "admin", "bt"); if (!M_TransSend($conn, $id)) { return -1; } return $id; }
function M_verifyping(&$conn) { $max_ping_time = 5; $blocking = $conn['blocking']; M_SetBlocking($conn, false); $id = M_TransNew($conn); M_TransKeyVal($conn, $id, "action", "ping"); if (!M_TransSend($conn, $id)) { M_DeleteTrans($conn, $id); return false; } $lasttime = time(); while (M_CheckStatus($conn, $id) == M_PENDING && time() - $lasttime <= $max_ping_time) { $wait_time_ms = ($max_ping_time - (time() - $lasttime)) * 1000; if ($wait_time_ms < 0) { $wait_time_ms = 0; } if ($wait_time_ms > $max_ping_time * 1000) { $wait_time_ms = $max_ping_time * 1000; } if (!M_Monitor($conn, $wait_time_ms)) { break; } } M_SetBlocking($conn, $blocking); $status = M_CheckStatus($conn, $id); M_DeleteTrans($conn, $id); if ($status != M_DONE) { return false; } return true; }