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);
 }
Example #2
0
    /* 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;
}
Example #4
0
 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;
 }