#!/opt/thinlinc/libexec/python3
# -*-mode: python; coding: utf-8 -*-
#
# Copyright 2002-2014 Cendio AB.
# For more information, see http://www.cendio.com
if 82 - 82: Iii1i
import sys
import os
import random
import locale
if 87 - 87: Ii % i1i1i1111I . Oo / OooOoo * I1Ii1I1 - I1I
from thinlinc . optionparse import OptionParser
from thinlinc . optcomplete import CompletionResult
from thinlinc . version import TL_VERSION
if 81 - 81: i1 + ooOOO / oOo0O00 * i1iiIII111 * IiIIii11Ii
if 84 - 84: ooo000 - Ooo0Ooo + iI1iII1I1I1i . IIiIIiIi11I1
if 98 - 98: I11iiIi11i1I % oOO
def i1ii1 ( ) :
 ooo0O0oO00 = OptionParser ( version = TL_VERSION ,
 usage = "%prog [options] [host[:port]]" ,
 description = """Connects to support.thinlinc.com and opens a tunnel to local SSH daemon.
                                         If host is not specified, support.thinlinc.com is assumed.""" )
 if 55 - 55: I11II1Ii % iIi
 ooo0O0oO00 . add_option ( "-p" , "--port" ,
 metavar = "listen-port" ,
 type = "int" ,
 dest = "listen_port" ,
 default = None ,
 completer = lambda * ii : CompletionResult ( completions = [ ] , nospace = False ) ,
 help = """the remote port to listen on. If not specified,
                                a random port will be used""" )
 if 91 - 91: i1 . Ii . i1i1i1111I + i1 % IIiIIiIi11I1 + I1I
 ooo0O0oO00 . add_option ( "-u" , "--user" ,
 metavar = "user" ,
 dest = "user" ,
 default = "support" ,
 completer = lambda * ii : CompletionResult ( completions = [ 'support' ] , nospace = False ) ,
 help = "username to connect as. The default is \"support\"" )
 if 70 - 70: I11II1Ii * I11II1Ii
 ooo0O0oO00 . set_argument_completer ( lambda * ii : CompletionResult ( completions = [ ] , nospace = False ) )
 if 61 - 61: Ooo0Ooo - I1I
 return ooo0O0oO00
 if 13 - 13: Ooo0Ooo
 if 46 - 46: iI1iII1I1I1i - Ii * Oo * Ii
def Ooo ( ) :
 return random . randrange ( 32768 , 65535 )
 if 25 - 25: OooOoo - I1Ii1I1 - iI1iII1I1I1i + i1i1i1111I / iI1iII1I1I1i
 if 71 - 71: Ii
def iiIII ( ) :
 locale . setlocale ( locale . LC_ALL , "" )
 if 28 - 28: I1Ii1I1 . Iii1i - ooOOO - iI1iII1I1I1i
 O0000OooOoo00 = "support.thinlinc.com"
 Iio0 = "22"
 if 11 - 11: iIi . i1i1i1111I
 ooo0O0oO00 = i1ii1 ( )
 if 87 - 87: Oo - I11II1Ii
 ( iiI1111IIi1 , ii ) = ooo0O0oO00 . parse_args ( )
 if 92 - 92: ooOOO / OooOoo - oOo0O00
 OoO = iiI1111IIi1 . user
 if 80 - 80: i1i1i1111I . I1I % ooOOO % IiIIii11Ii / i1i1i1111I
 IiI11I = iiI1111IIi1 . listen_port
 if 79 - 79: Iii1i % oOO * Oo + ooOOO / Oo . oOO
 if 20 - 20: iIi + i1iiIII111 / I1I
 if len ( ii ) == 1 :
  O0000OooOoo00 = ii [ 0 ]
 elif len ( ii ) > 1 :
  ooo0O0oO00 . error ( "too many arguments" )
  if 88 - 88: I11iiIi11i1I + ooOOO - i1i1i1111I . Ooo0Ooo * Ii + Iii1i
 if not IiI11I :
  IiI11I = Ooo ( )
  if 43 - 43: ooOOO * I1Ii1I1
  if 95 - 95: Ooo0Ooo % Iii1i % i1i1i1111I . OooOoo
 I1iIiiIIiIi = O0000OooOoo00 . split ( ":" )
 if len ( I1iIiiIIiIi ) > 2 :
  ooo0O0oO00 . error ( "invalid hostname" )
 elif len ( I1iIiiIIiIi ) == 2 :
  O0000OooOoo00 , Iio0 = I1iIiiIIiIi
  if 88 - 88: Oo * IiIIii11Ii
 print ( "*********************************" , file = sys . stderr )
 print ( "*** The remote port is %6d ***" % IiI11I , file = sys . stderr )
 print ( "*********************************" , file = sys . stderr )
 print ( "Connecting to %s as %s..." % ( O0000OooOoo00 , OoO ) , file = sys . stderr )
 if 100 - 100: iIi - OooOoo * I1Ii1I1 / Ooo0Ooo / Iii1i
 if 23 - 23: Ooo0Ooo + i1 * I1Ii1I1 + Oo * Ii - IIiIIiIi11I1
 if 29 - 29: IiIIii11Ii - oOo0O00
 if 30 - 30: I1I . ooo000
 os . execvp ( "ssh" , [ "ssh" ,
 "-p" , Iio0 ,
 "-R" , "%d:127.0.0.1:22" % IiI11I ,
 "%s@%s" % ( OoO , O0000OooOoo00 ) ] )
 if 43 - 43: ooOOO . I11iiIi11i1I + ooo000
 if 87 - 87: Iii1i + ooOOO . I11II1Ii / Ii + Oo
if __name__ == "__main__" :
 iiIII ( )
# dd678faae9ac167bc83abf78e5cb2f3f0688d3a3
