Author: jfthomps
Date: Mon Oct 13 18:08:44 2014
New Revision: 1631498
URL: http://svn.apache.org/r1631498
Log:
VCL-253 - Allow users to specify RDP port
xmlrpcWrappers.php: modified XMLRPCgetRequestConnectData: if not using NAT,
connectmethod is RDP, and connectmethodport is 3389, set port to user's rdp
port instead of connectmethod port
utils.php: modified sendRDPfile: if not using NAT and port is 3389 and user has
specified a different RDP port, add the user's RDP port to the 'full address'
userpreferences.php: modified processUserPrefsInput: use 3389 as the default
port instead of user's specified port - this allows the user to enter an empty
string to get 3389 as the default; added a check that prevents user from
changing RDP port if user has active reservations
requests.php: modified AJconnectRequest: if not using NAT, connectmethod is
RDP, and connectmethodport is 3389, set port to user's rdp port instead of
connectmethod port
Modified:
vcl/trunk/web/.ht-inc/requests.php
vcl/trunk/web/.ht-inc/userpreferences.php
vcl/trunk/web/.ht-inc/utils.php
vcl/trunk/web/.ht-inc/xmlrpcWrappers.php
Modified: vcl/trunk/web/.ht-inc/requests.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/requests.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/requests.php (original)
+++ vcl/trunk/web/.ht-inc/requests.php Mon Oct 13 18:08:44 2014
@@ -4164,8 +4164,14 @@ function AJconnectRequest() {
foreach($method['ports'] as $port) {
if($usenat && array_key_exists($port['key'],
$natports[$cmid]))
$msg = preg_replace("/{$port['key']}/",
$natports[$cmid][$port['key']]['publicport'], $msg);
- else
- $msg = preg_replace("/{$port['key']}/",
$port['port'], $msg);
+ else {
+ if((preg_match('/remote desktop/i',
$method['description']) ||
+ preg_match('/RDP/i',
$method['description'])) &&
+ $port['key'] == '#Port-TCP-3389#')
+ $msg =
preg_replace("/{$port['key']}/", $user['rdpport'], $msg);
+ else
+ $msg =
preg_replace("/{$port['key']}/", $port['port'], $msg);
+ }
}
#$h .= preg_replace("/(.{1,120}([ ]|$))/", '\1<br>',
$msg);
$h .= $msg;
Modified: vcl/trunk/web/.ht-inc/userpreferences.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/userpreferences.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/userpreferences.php (original)
+++ vcl/trunk/web/.ht-inc/userpreferences.php Mon Oct 13 18:08:44 2014
@@ -605,7 +605,7 @@ function processUserPrefsInput($checks=1
$return["mapdrives"] = processInputVar("mapdrives" , ARG_NUMERIC,
$user["mapdrives"]);
$return["mapprinters"] = processInputVar("mapprinters" , ARG_NUMERIC,
$user["mapprinters"]);
$return["mapserial"] = processInputVar("mapserial" , ARG_NUMERIC,
$user["mapserial"]);
- $return["rdpport"] = processInputVar("rdpport" , ARG_NUMERIC,
$user["rdpport"]);
+ $return["rdpport"] = processInputVar("rdpport" , ARG_NUMERIC, 3389);
if(! $checks) {
return $return;
@@ -640,7 +640,24 @@ function processUserPrefsInput($checks=1
$submitErrMsg[LOCALPASSWORDERR] = _("Passwords do not
match");
}
}
- if($return['rdpport'] < 1024 || $return['rdpport'] > 65535) {
+ if($return['rdpport'] != $user['rdpport']) {
+ $requests = getUserRequests('all');
+ $nochange = 0;
+ foreach($requests as $req) {
+ if(preg_match('/^(3|8|24|25|26|27|28|29)$/',
$req['currstateid']) ||
+ ($req['currstateid'] == 14 &&
+ preg_match('/^(3|8|24|25|26|27|28|29)$/',
$req['laststateid']))) {
+ $nochange = 1;
+ break;
+ }
+ }
+ if($nochange) {
+ $submitErr |= RDPPORTERR;
+ $submitErrMsg[RDPPORTERR] = _("RDP Port cannot be
changed while you have active reservations");
+ }
+ }
+ if(! ($submitErr & RDPPORTERR) &&
+ ($return['rdpport'] < 1024 || $return['rdpport'] > 65535)) {
$submitErr |= RDPPORTERR;
$submitErrMsg[RDPPORTERR] = _("RDP Port must be between 1024
and 65535");
}
Modified: vcl/trunk/web/.ht-inc/utils.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/utils.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/utils.php (original)
+++ vcl/trunk/web/.ht-inc/utils.php Mon Oct 13 18:08:44 2014
@@ -9690,8 +9690,13 @@ function sendRDPfile() {
# assume index 0 of ports for nat
if(! empty($natports) &&
array_key_exists($method['ports'][0]['key'], $natports[$cmid]))
$port = ':' .
$natports[$cmid][$method['ports'][0]['key']]['publicport'];
- else
- $port = ':' . $method['ports'][0]['port'];
+ else {
+ if($method['ports'][0]['key'] ==
'#Port-TCP-3389#' &&
+ $user['rdpport'] != 3389)
+ $port = ':' . $user['rdpport'];
+ else
+ $port = ':' .
$method['ports'][0]['port'];
+ }
break;
}
}
Modified: vcl/trunk/web/.ht-inc/xmlrpcWrappers.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/xmlrpcWrappers.php?rev=1631498&r1=1631497&r2=1631498&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/xmlrpcWrappers.php (original)
+++ vcl/trunk/web/.ht-inc/xmlrpcWrappers.php Mon Oct 13 18:08:44 2014
@@ -812,8 +812,16 @@ function XMLRPCgetRequestConnectData($re
$connectMethods[$key]['connectports'][]
=
"{$port['protocol']}:{$port['port']}:{$natports[$key][$port['key']]['publicport']}";
}
else {
- $connecttext =
preg_replace("/{$port['key']}/", $port['port'], $connecttext);
- $connectMethods[$key]['connectports'][]
= "{$port['protocol']}:{$port['port']}:{$port['port']}";
+ if((preg_match('/remote desktop/i',
$cm['description']) ||
+ preg_match('/RDP/i',
$cm['description'])) &&
+ $port['key'] == '#Port-TCP-3389#') {
+ $connecttext =
preg_replace("/{$port['key']}/", $user['rdpport'], $connecttext);
+
$connectMethods[$key]['connectports'][] =
"{$port['protocol']}:{$port['port']}:{$user['rdpport']}";
+ }
+ else {
+ $connecttext =
preg_replace("/{$port['key']}/", $port['port'], $connecttext);
+
$connectMethods[$key]['connectports'][] =
"{$port['protocol']}:{$port['port']}:{$port['port']}";
+ }
}
}
$connectMethods[$key]["connecttext"] = $connecttext;
@@ -823,7 +831,12 @@ function XMLRPCgetRequestConnectData($re
$tmp = array_keys($portdata);
$cmid = $tmp[0];
if(empty($natports))
- $connectport = $portdata[$cmid][0]['port'];
+ if((preg_match('/remote desktop/i',
$connectMethods[$cmid]['description']) ||
+ preg_match('/RDP/i',
$connectMethods[$cmid]['description'])) &&
+ $portdata[$cmid][0]['port'] == 3389)
+ $connectport = $user['rdpport'];
+ else
+ $connectport = $portdata[$cmid][0]['port'];
else {
$key = $portdata[$cmid][0]['key'];
$connectport = $natports[$cmid][$key]['publicport'];