Exemplo n.º 1
0
/**
 * NOT WORKING
 * reimplementation of system.keyswapcall with capability of forcing the local renew
 *
 */
function mnetadmin_keyswap($function, $params)
{
    global $CFG, $MNET;
    $return = array();
    $wwwroot = $params[0];
    $pubkey = $params[1];
    $application = $params[2];
    $forcerenew = $params[3];
    if ($forcerenew == 0) {
        // standard keyswap for first key recording
        if (!empty($CFG->mnet_register_allhosts)) {
            $mnet_peer = new mnet_peer();
            $keyok = $mnet_peer->bootstrap($wwwroot, $pubkey, $application);
            if ($keyok) {
                $mnet_peer->commit();
            }
        }
    } else {
        $mnet_peer = new mnet_peer();
        // we can only renew hosts that we know something about.
        if ($mnet_peer->set_wwwroot($wwwroot)) {
            $mnet_peer->public_key = clean_param($pubkey, PARAM_PEM);
            $mnet_peer->public_key_expires = $mnet_peer->check_common_name($pubkey);
            $mnet_peer->updateparams->public_key = clean_param($pubkey, PARAM_PEM);
            $mnet_peer->updateparams->public_key_expires = $mnet_peer->check_common_name($pubkey);
            $mnet_peer->commit();
        } else {
            return false;
            // avoid giving our key to unkown hosts.
        }
    }
    return $MNET->public_key;
}
 if ($mnet_peers) {
     foreach ($mnet_peers as $peer) {
         if ($peer->id == $CFG->mnet_all_hosts_id || $peer->id == $CFG->mnet_localhost_id) {
             continue;
         }
         $application = $DB->get_record('mnet_application', array('id' => $peer->applicationid));
         $mnet_peer = new mnet_peer();
         $mnet_peer->set_wwwroot($peer->wwwroot);
         // get the sessions for each vmoodle that have same ID Number
         // we use a force parameter to force fetching the key remotely anyway
         $currentkey = mnet_get_public_key($mnet_peer->wwwroot, $application, 1);
         if ($currentkey) {
             $mnet_peer->public_key = clean_param($currentkey, PARAM_PEM);
             $mnet_peer->updateparams = new StdClass();
             $mnet_peer->updateparams->public_key = clean_param($currentkey, PARAM_PEM);
             $mnet_peer->public_key_expires = $mnet_peer->check_common_name($currentkey);
             $mnet_peer->updateparams->public_key_expires = $mnet_peer->check_common_name($currentkey);
             $mnet_peer->commit();
             mtrace('My key renewed at ' . $peer->wwwroot . ' till ' . userdate($mnet_peer->public_key_expires));
             $trace .= userdate(time()) . ' KEY RENEW from ' . $CFG->wwwroot . ' to ' . $peer->wwwroot . " suceeded\n";
         } else {
             mtrace('Failed renewing key with ' . $peer->wwwroot . "\n");
             $trace .= userdate(time()) . ' KEY RENEW from ' . $CFG->wwwroot . ' to ' . $peer->wwwroot . " failed\n";
         }
     }
 }
 set_config('mnet_autorenew_haveto', 0);
 $trace .= userdate(time()) . ' RESET KEY RENEW on ' . $CFG->wwwroot . "\n";
 /// record trace in trace file
 if ($CFG->tracevmoodlekeyrenew) {
     if ($TRACE = fopen($CFG->dataroot . '/vmoodle_renew.log', 'w+')) {
Exemplo n.º 3
0
 if (isset($form->name) && $form->name != $mnet_peer->name) {
     $form->name = clean_param($form->name, PARAM_NOTAGS);
     $mnet_peer->set_name($form->name);
 }
 if (isset($form->deleted) && ($form->deleted == '0' || $form->deleted == '1')) {
     $mnet_peer->deleted = $form->deleted;
 }
 if (isset($form->public_key)) {
     $form->public_key = clean_param($form->public_key, PARAM_PEM);
     if (empty($form->public_key)) {
         error(get_string("invalidpubkey", 'mnet'), 'peers.php?step=update&hostid=' . $mnet_peer->id);
         exit;
     } else {
         $oldkey = $mnet_peer->public_key;
         $mnet_peer->public_key = $form->public_key;
         $mnet_peer->public_key_expires = $mnet_peer->check_common_name($form->public_key);
         if ($mnet_peer->public_key_expires == false) {
             $mnet_peer->public_key == $oldkey;
             $errmsg = '<br />';
             foreach ($mnet_peer->error as $err) {
                 $errmsg .= $err['code'] . ': ' . $err['text'] . '<br />';
             }
             error(get_string("invalidpubkey", 'mnet') . $errmsg, 'peers.php?step=update&amp;hostid=' . $mnet_peer->id);
             exit;
         }
     }
 }
 // PREVENT DUPLICATE RECORDS ///////////////////////////////////////////
 if ('input' == $form->step) {
     if (isset($mnet_peer->id) && $mnet_peer->id > 0) {
         error(get_string("hostexists", 'mnet', $mnet_peer->id), 'peers.php?step=update&amp;hostid=' . $mnet_peer->id);