This code allows a user to specify a vnc port for the vnc server to run on. Passing "vncport=<port>" as a boot parameter accomplishes this. Later we can wire it up into kickstart too. --- anaconda | 2 ++ pyanaconda/vnc.py | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/anaconda b/anaconda index fc679c9..358ab80 100755 --- a/anaconda +++ b/anaconda @@ -240,6 +240,7 @@ def parseOptions(argv=None, cmdline=None): op.add_option("--vnc", action="store_true", default=False) op.add_option("--vncconnect") op.add_option("--vncpassword", default="") + op.add_option("--vncport", default="5901") op.add_option("--xdriver", dest="xdriver", action="store", type="string", default=None)
# Language @@ -454,6 +455,7 @@ def setupDisplay(anaconda, opts): flags.usevnc = 1 anaconda.displayMode = 'g' vncS.password = opts.vncpassword + vncS.rfbport = opts.vncport
# Only consider vncconnect when vnc is a param if opts.vncconnect: diff --git a/pyanaconda/vnc.py b/pyanaconda/vnc.py index 2f87650..2798b1f 100644 --- a/pyanaconda/vnc.py +++ b/pyanaconda/vnc.py @@ -51,6 +51,7 @@ class VncServer: self.name = name self.desktop = desktop self.password = password + self.rfbport = "5901" self.vncconnecthost = vncconnecthost self.vncconnectport = vncconnectport self.log_file = log_file @@ -101,10 +102,16 @@ class VncServer: if self.ip.find(':') != -1: ipstr = "[%s]" % (self.ip,)
+ display = self.display + # We default to 5901, which is :1. But if the port is changed we can't + # know what the shortcut is, so display the whole port. + if self.rfbport != "5901": + display = self.rfbport + if (self.name is not None) and (not self.name.startswith('localhost')) and (ipstr is not None): - self.connxinfo = "%s:%s (%s)" % (socket.getfqdn(name=self.name), self.display, ipstr,) + self.connxinfo = "%s:%s (%s)" % (socket.getfqdn(name=self.name), display, ipstr,) elif ipstr is not None: - self.connxinfo = "%s:%s" % (ipstr, self.display,) + self.connxinfo = "%s:%s" % (ipstr, display,) else: self.connxinfo = None
@@ -197,6 +204,7 @@ class VncServer: xvnccommand = [ "Xvnc", ":%s" % self.display, "-depth", "16", "-br", "IdleTimeout=0", "-auth", "/dev/null", "-once", + "-rfbport=%s" % self.rfbport, "DisconnectClients=false", "desktop=%s" % (self.desktop,), "SecurityTypes=%s" % SecurityTypes, "rfbauth=%s" % rfbauth ]
Looks good to me. As long as wiki gets updated. :)
On Wed, 2012-08-01 at 11:13 -0700, Jesse Keating wrote:
This code allows a user to specify a vnc port for the vnc server to run on. Passing "vncport=<port>" as a boot parameter accomplishes this. Later we can wire it up into kickstart too.
anaconda | 2 ++ pyanaconda/vnc.py | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/anaconda b/anaconda index fc679c9..358ab80 100755 --- a/anaconda +++ b/anaconda @@ -240,6 +240,7 @@ def parseOptions(argv=None, cmdline=None): op.add_option("--vnc", action="store_true", default=False) op.add_option("--vncconnect") op.add_option("--vncpassword", default="")
op.add_option("--vncport", default="5901") op.add_option("--xdriver", dest="xdriver", action="store", type="string", default=None)
# Language
@@ -454,6 +455,7 @@ def setupDisplay(anaconda, opts): flags.usevnc = 1 anaconda.displayMode = 'g' vncS.password = opts.vncpassword
vncS.rfbport = opts.vncport # Only consider vncconnect when vnc is a param if opts.vncconnect:
diff --git a/pyanaconda/vnc.py b/pyanaconda/vnc.py index 2f87650..2798b1f 100644 --- a/pyanaconda/vnc.py +++ b/pyanaconda/vnc.py @@ -51,6 +51,7 @@ class VncServer: self.name = name self.desktop = desktop self.password = password
self.rfbport = "5901" self.vncconnecthost = vncconnecthost self.vncconnectport = vncconnectport self.log_file = log_file
@@ -101,10 +102,16 @@ class VncServer: if self.ip.find(':') != -1: ipstr = "[%s]" % (self.ip,)
display = self.display
# We default to 5901, which is :1. But if the port is changed we can't
# know what the shortcut is, so display the whole port.
if self.rfbport != "5901":
display = self.rfbport
if (self.name is not None) and (not self.name.startswith('localhost')) and (ipstr is not None):
self.connxinfo = "%s:%s (%s)" % (socket.getfqdn(name=self.name), self.display, ipstr,)
self.connxinfo = "%s:%s (%s)" % (socket.getfqdn(name=self.name), display, ipstr,) elif ipstr is not None:
self.connxinfo = "%s:%s" % (ipstr, self.display,)
self.connxinfo = "%s:%s" % (ipstr, display,) else: self.connxinfo = None
@@ -197,6 +204,7 @@ class VncServer: xvnccommand = [ "Xvnc", ":%s" % self.display, "-depth", "16", "-br", "IdleTimeout=0", "-auth", "/dev/null", "-once",
"-rfbport=%s" % self.rfbport, "DisconnectClients=false", "desktop=%s" % (self.desktop,), "SecurityTypes=%s" % SecurityTypes, "rfbauth=%s" % rfbauth ]
anaconda-patches@lists.fedorahosted.org