198
ret = From_vnc_server(True, ['/usr/bin/krfb', '--config', misc.CONFIG_DIR + '/krfbrc', '--kinetd'], output)
200
ret = From_vnc_server(True, ['/usr/bin/krfb', '--config', misc.CONFIG_DIR + '/krfbrc', '--kinetd'])
199
201
os.remove(misc.CONFIG_DIR + '/krfbrc')
201
203
print >> sys.stderr, misc.now(), "- Got krfb"
205
# Try to start a vino session. This is the final option because it can't be started on the command-line,
206
# and (as of 12 July 2008) only supports IPv6
208
print >> sys.stderr, misc.now(), "- Trying vino..."
211
gconf_client = gconf.client_get_default()
214
gconf_client.get('/desktop/gnome/remote_access/enabled'),
215
gconf_client.get('/desktop/gnome/remote_access/local_only'),
216
gconf_client.get('/desktop/gnome/remote_access/prompt_enabled'),
217
gconf_client.get('/desktop/gnome/remote_access/view_only'),
218
gconf_client.get('/desktop/gnome/remote_access/require_encryption'),
219
gconf_client.get('/desktop/gnome/remote_access/lock_screen_on_disconnect'),
220
gconf_client.get('/desktop/gnome/remote_access/authentication_methods'),
221
gconf_client.get('/desktop/gnome/remote_access/use_alternative_port')
224
n = gconf.Value('string')
226
lst = gconf.Value('list')
227
lst.set_list_type('string')
229
gconf_client.set_bool('/desktop/gnome/remote_access/local_only', True)
230
gconf_client.set_bool('/desktop/gnome/remote_access/prompt_enabled', False)
231
gconf_client.set_bool('/desktop/gnome/remote_access/view_only', not allow_control)
232
gconf_client.set_bool('/desktop/gnome/remote_access/require_encryption', False)
233
gconf_client.set_bool('/desktop/gnome/remote_access/lock_screen_on_disconnect', False)
234
gconf_client.set ('/desktop/gnome/remote_access/authentication_methods', lst)
235
gconf_client.set_bool('/desktop/gnome/remote_access/enabled', True)
236
gconf_client.set_bool('/desktop/gnome/remote_access/use_alternative_port', False)
238
# vino has a bad habit of listening on IPv6 only, and can take a while to start up
241
while sock is None and count < 4:
244
sock = From_vino('127.0.0.1', socket.AF_INET, vino_info)
207
if force_server is None or "vino" == force_server:
208
# Try to start a vino session. This is the final option because it can't be started on the command-line,
209
# and (as of 12 July 2008) only supports IPv6
211
print >> sys.stderr, misc.now(), "- Trying vino..."
214
gconf_client = gconf.client_get_default()
217
gconf_client.get('/desktop/gnome/remote_access/enabled'),
218
gconf_client.get('/desktop/gnome/remote_access/local_only'),
219
gconf_client.get('/desktop/gnome/remote_access/prompt_enabled'),
220
gconf_client.get('/desktop/gnome/remote_access/view_only'),
221
gconf_client.get('/desktop/gnome/remote_access/require_encryption'),
222
gconf_client.get('/desktop/gnome/remote_access/lock_screen_on_disconnect'),
223
gconf_client.get('/desktop/gnome/remote_access/authentication_methods'),
224
gconf_client.get('/desktop/gnome/remote_access/use_alternative_port')
227
n = gconf.Value('string')
229
lst = gconf.Value('list')
230
lst.set_list_type('string')
232
gconf_client.set_bool('/desktop/gnome/remote_access/local_only', True)
233
gconf_client.set_bool('/desktop/gnome/remote_access/prompt_enabled', False)
234
gconf_client.set_bool('/desktop/gnome/remote_access/view_only', not allow_control)
235
gconf_client.set_bool('/desktop/gnome/remote_access/require_encryption', False)
236
gconf_client.set_bool('/desktop/gnome/remote_access/lock_screen_on_disconnect', False)
237
gconf_client.set ('/desktop/gnome/remote_access/authentication_methods', lst)
238
gconf_client.set_bool('/desktop/gnome/remote_access/enabled', True)
239
gconf_client.set_bool('/desktop/gnome/remote_access/use_alternative_port', False)
241
# vino has a bad habit of listening on IPv6 only, and can take a while to start up
244
while sock is None and count < 4:
247
sock = From_vino('::1', socket.AF_INET6, vino_info)
247
sock = From_vino('127.0.0.1', socket.AF_INET, vino_info)
248
248
except socket.error:
252
output.write(sock.read(12, 1)) #pylint: disable-msg=I0011,E1101
254
# In case anybody tries to ride in on our coat-tails
255
# Note: at the time of writing, this doesn't work.
256
# Hopefully, future vinos will use the prompt_enabled
257
# setting from when the connection was established.
258
gconf_client.set_bool('/desktop/gnome/remote_access/prompt_enabled', True)
260
print >> sys.stderr, misc.now(), "- Got vino"
264
print >> sys.stderr, misc.now(), "- Failed to start vino:", sys.exc_info()[0]
265
gconf_client.set('/desktop/gnome/remote_access/enabled', vino_info[0])
266
gconf_client.set('/desktop/gnome/remote_access/local_only', vino_info[1])
267
gconf_client.set('/desktop/gnome/remote_access/prompt_enabled', vino_info[2])
268
gconf_client.set('/desktop/gnome/remote_access/view_only', vino_info[3])
269
gconf_client.set('/desktop/gnome/remote_access/require_encryption', vino_info[4])
270
gconf_client.set('/desktop/gnome/remote_access/lock_screen_on_disconnect', vino_info[5])
271
gconf_client.set('/desktop/gnome/remote_access/authentication_methods', vino_info[6])
272
gconf_client.set('/desktop/gnome/remote_access/use_alternative_port', vino_info[7])
276
print >> sys.stderr, misc.now(), "- Failed to start vino:", sys.exc_info()[0]
250
sock = From_vino('::1', socket.AF_INET6, vino_info)
255
# In case anybody tries to ride in on our coat-tails
256
# Note: at the time of writing, this doesn't work.
257
# Hopefully, future vinos will use the prompt_enabled
258
# setting from when the connection was established.
259
gconf_client.set_bool('/desktop/gnome/remote_access/prompt_enabled', True)
261
print >> sys.stderr, misc.now(), "- Got vino"
265
print >> sys.stderr, misc.now(), "- Failed to start vino:", sys.exc_info()[0]
266
gconf_client.set('/desktop/gnome/remote_access/enabled', vino_info[0])
267
gconf_client.set('/desktop/gnome/remote_access/local_only', vino_info[1])
268
gconf_client.set('/desktop/gnome/remote_access/prompt_enabled', vino_info[2])
269
gconf_client.set('/desktop/gnome/remote_access/view_only', vino_info[3])
270
gconf_client.set('/desktop/gnome/remote_access/require_encryption', vino_info[4])
271
gconf_client.set('/desktop/gnome/remote_access/lock_screen_on_disconnect', vino_info[5])
272
gconf_client.set('/desktop/gnome/remote_access/authentication_methods', vino_info[6])
273
gconf_client.set('/desktop/gnome/remote_access/use_alternative_port', vino_info[7])
277
print >> sys.stderr, misc.now(), "- Failed to start vino:", sys.exc_info()[0]
280
281
## Get a VNC or shell client
282
# This function is the counterpart to get_server(). It reads the
283
# signature sent by get_server(), and sets a client up
285
def get_client(signature):
283
# This function is the counterpart to get_server().
288
print >> sys.stderr, misc.now(), "- Session type: {", signature, "}"
290
if 'RFB ' == signature[0:4]:
294
sock, port = misc.listen_sockets('127.0.0.1', 5900, 5920)
296
return 'RFB', sock, str(port)
298
else: # Unknown connection type
300
print >> sys.stderr, misc.now(), "- Unknown connection type:", signature
301
return False, None, ''
289
sock, port = misc.listen_sockets('127.0.0.1', 5900, 5920)
291
return sock, str(port)
304
294
print >> sys.stderr, misc.now(), "- Unexpected error, stack trace follows"