Exemplo n.º 1
0
$_SESSION['ovd-client']['gateway_first'] = false;
$headers = apache_request_headers();
if (is_array($headers) && array_key_exists('OVD-Gateway', $headers)) {
    $_SESSION['ovd-client']['gateway'] = true;
    $_SESSION['ovd-client']['gateway_first'] = true;
    if (defined('GATEWAY_FORCE_PORT')) {
        $port = GATEWAY_FORCE_PORT;
    } else {
        $port = $_POST['requested_port'];
    }
    $_SESSION['ovd-client']['server'] = $_SERVER['REMOTE_ADDR'] . ':' . $port;
    $_SESSION['ovd-client']['sessionmanager_host'] = $_POST['requested_host'] . ':' . $_POST['requested_port'];
}
$_SESSION['ovd-client']['sessionmanager_url'] = 'https://' . $_SESSION['ovd-client']['server'] . '/ovd/client';
$sessionmanager_url = $_SESSION['ovd-client']['sessionmanager_url'];
$xml = query_sm_post_xml($sessionmanager_url . '/start.php', $dom->saveXML());
if (!$xml) {
    echo return_error(0, 'unable_to_reach_sm', $sessionmanager_url . '/start.php');
    die;
}
$dom = new DomDocument('1.0', 'utf-8');
$buf = @$dom->loadXML($xml);
if (!$buf) {
    echo return_error(0, 'internal_error');
    die;
}
if (!$dom->hasChildNodes()) {
    echo return_error(0, 'internal_error');
    die;
}
$response_node = $dom->getElementsByTagName('response')->item(0);
Exemplo n.º 2
0
    $node->setAttribute('id', $errno_);
    $node->setAttribute('message', $errstr_);
    $dom->appendChild($node);
    return $dom->saveXML();
}
if (!array_key_exists('mode', $_POST)) {
    $_POST['mode'] = 'logout';
}
header('Content-Type: text/xml; charset=utf-8');
$dom = new DomDocument('1.0', 'utf-8');
$logout_node = $dom->createElement('logout');
$logout_node->setAttribute('mode', $_POST['mode']);
$dom->appendChild($logout_node);
$xml = $dom->saveXML();
$dom = new DomDocument('1.0', 'utf-8');
$buf = @$dom->loadXML(query_sm_post_xml($sessionmanager_url . '/logout.php', $xml));
if (!$buf) {
    echo return_error(0, 'Invalid XML');
    die;
}
if (!$dom->hasChildNodes()) {
    echo return_error(0, 'Invalid XML');
    die;
}
$logout_nodes = $dom->getElementsByTagName('logout');
if (count($logout_nodes) != 1) {
    echo return_error(1, 'Invalid XML: No session node');
    die;
}
$logout_node = $logout_nodes->item(0);
if (!is_object($logout_node)) {
Exemplo n.º 3
0
    if (array_key_exists('login', $_REQUEST)) {
        $user_node->setAttribute('login', $_REQUEST['login']);
    }
    if (array_key_exists('password', $_REQUEST)) {
        $user_node->setAttribute('password', $_REQUEST['password']);
    }
    if (array_key_exists('token', $_REQUEST)) {
        $user_node->setAttribute('token', $_REQUEST['token']);
    }
    $session_node->appendChild($user_node);
    $dom->appendChild($session_node);
    $_SESSION['ovd-client']['server'] = @SESSIONMANAGER_HOST;
    // If the WebClient is not linked to a SessionManager, JavaScript object will return an 'Usage: missing "sessionmanager_host" parameter' error
    $_SESSION['ovd-client']['sessionmanager_url'] = 'https://' . $_SESSION['ovd-client']['server'] . '/ovd/client';
    $sessionmanager_url = $_SESSION['ovd-client']['sessionmanager_url'];
    query_sm_post_xml($sessionmanager_url . '/auth.php', $dom->saveXML());
    $_SESSION['ovd-client']['start_app'] = array();
}
if (array_key_exists('mode', $_REQUEST) && $_REQUEST['mode'] == 'applications') {
    $order = array('id' => $_REQUEST['app']);
    if (array_key_exists('file', $_REQUEST)) {
        $args = array();
        $args['path'] = $_REQUEST['file'];
        $args['share'] = base64_decode($_REQUEST['file_share']);
        $args['type'] = $_REQUEST['file_type'];
        $order['file'] = $args;
    }
    $_SESSION['ovd-client']['start_app'][] = $order;
}
$rdp_input_unicode = null;
if (defined('RDP_INPUT_METHOD')) {