PK G3 META-INF/PK G3)@META-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.6.2 Created-By: 1.4.2-54 ("Apple Computer, Inc.") Main-Class: com.kinostudios.forwarder.PortForwarder Title: TCPRelay PK 2F3com/PK 2F3com/kinostudios/PK LF3com/kinostudios/forwarder/PK G3obإcc>com/kinostudios/forwarder/ClientThread$ServiceConnection.class0 &> '? &@ &A &B &C &DE FG HI FJ KLM NO P Q &R STUV ?W X Y Z N[ S\ SR] ^_` ab FcdgsocketLjava/net/Socket;parent(Lcom/kinostudios/forwarder/ClientThread;inLjava/io/DataInputStream;outLjava/io/DataOutputStream;doneZthis$0 Syntheticd(Lcom/kinostudios/forwarder/ClientThread;Ljava/net/Socket;Lcom/kinostudios/forwarder/ClientThread;)VCoderun()V tellService([BI)Vdie isRunning()Z 2+ 48 () *+ ,- ./ 01java/io/DataInputStreamh ij 4kjava/io/DataOutputStream lm 4njava/io/IOException&Couldn't initialize ServiceConnection!o pq r8 st ;8u v:java/net/SocketExceptionjava/lang/StringBufferService connection: wx yz {z |q <=Service connection dropped }~(java/lang/ArrayIndexOutOfBoundsException#Index out of bounds: data.length = w length: 88com/kinostudios/forwarder/ClientThread$ServiceConnectionServiceConnection InnerClassesjava/lang/Threadjava/net/SocketgetInputStream()Ljava/io/InputStream;(Ljava/io/InputStream;)VgetOutputStream()Ljava/io/OutputStream;(Ljava/io/OutputStream;)V'com/kinostudios/forwarder/PortForwarderlogError(Ljava/lang/String;)VprintStackTraceread([B)I&com/kinostudios/forwarder/ClientThread tellClientappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; getMessage()Ljava/lang/String;toString logVerbosewrite([BII)V(I)Ljava/lang/StringBuffer;close &'()*+,-./012+3456s_*+*******,*-*Y, * Y, :*,JM786o2L=*$*+= **+ۧ%LY+L+* **/2/O9:6W;*+ 0NY"+#$# N-* ! 1;86%**%L <=6 *f &SePK G3m; vW W ,com/kinostudios/forwarder/ClientThread.class0 B] A^ A_ A` Aa Ab Acd ]e f ghi j k l gmn go pq rst u gvw x yz { | g}~ " " g " & &  & g  0u  A g  A  " & g &ServiceConnection InnerClasses clientSocketLjava/net/Socket; listenSocketLjava/net/ServerSocket;relayConnection:Lcom/kinostudios/forwarder/ClientThread$ServiceConnection;inLjava/io/DataInputStream;outLjava/io/DataOutputStream;doneZ(Ljava/net/Socket;)VCode(I)Vrun()V tellClient([BI)V Exceptionsdie isRunning()Z QV EF GH IJ KL MN OPjava/lang/StringBuffer(  ) Added client: java/net/Socket Q%) Connected to remote relay on port: java/io/IOExceptionUCouldn't connect to client on remote relay (probably disconnected too soon) because: java/io/DataInputStream Qjava/io/DataOutputStream Q java/net/ServerSocket QT T8com/kinostudios/forwarder/ClientThread$ServiceConnection Q V X Q%Client connected to service on port: java/net/SocketException V ZV) Disconnected client: V Vjava/lang/Exception [\!telling service connection to die Service on port  seems to be down!&com/kinostudios/forwarder/ClientThreadjava/lang/Threadappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;'com/kinostudios/forwarder/PortForwarder timeStamp()Ljava/lang/String;getRemoteSocketAddress()Ljava/net/SocketAddress;,(Ljava/lang/Object;)Ljava/lang/StringBuffer;toString logNormal(Ljava/lang/String;)V REMOTE_ADDRLjava/lang/String;(Ljava/lang/String;I)V(I)Ljava/lang/StringBuffer; getMessagelogErrorgetInputStream()Ljava/io/InputStream;(Ljava/io/InputStream;)VgetOutputStream()Ljava/io/OutputStream;(Ljava/io/OutputStream;)Vmode()I getLocalPorttellLocalRelayToAddNewClientaccept()Ljava/net/Socket;d(Lcom/kinostudios/forwarder/ClientThread;Ljava/net/Socket;Lcom/kinostudios/forwarder/ClientThread;)Vstartread([B)I tellServicejava/net/InetAddress getLocalHost()Ljava/net/InetAddress; SERVICE_PORTI(Ljava/net/InetAddress;I)VprintStackTrace removeThread+(Lcom/kinostudios/forwarder/ClientThread;)Vwrite([BII)V interruptclose logVerbose!ABEFGHIJKLMNOPQRSXL********+Y   +QTSu********YY   "MY  , *"RUUVSR6**Y**Y* 2L=!X*"Y#*$%*&Y**'*(*)**+*=n*++߻Y,-.NY / -*&Y*-*(*)* *+*=*++ߧL+1L+2**3Y  4 **50WXS *+6YZVSt`**7*8! *9L**;/<=*> Y ? -@ !:[\S *D &ACPK 2F3{*com/kinostudios/forwarder/Connection.class0  ()VCode $com/kinostudios/forwarder/Connectionjava/lang/Object!*PK G3xNm/com/kinostudios/forwarder/PortForwarder$1.class0  Synthetic )com/kinostudios/forwarder/PortForwarder$1 InnerClassesjava/lang/Object'com/kinostudios/forwarder/PortForwarder  PK G3=com/kinostudios/forwarder/PortForwarder$ConnectionCheck.class0@      ! " # $% & '% ()*,()VCoderun- InnerClasses.(Lcom/kinostudios/forwarder/PortForwarder$1;)V Synthetic . /01 23 4java/io/IOExceptionLocal relay connection down! 56 789 : ;<= >?java/lang/Exception7com/kinostudios/forwarder/PortForwarder$ConnectionCheckConnectionCheckjava/util/TimerTask)com/kinostudios/forwarder/PortForwarder$1'com/kinostudios/forwarder/PortForwarder access$100()Ljava/io/DataOutputStream;java/io/DataOutputStream writeByte(I)VflushlogError(Ljava/lang/String;)V access$200()Ljava/net/ServerSocket;java/net/ServerSocketclose access$300()Ljava/net/Socket;java/net/Socketcancel()Z *I- L * WM(+*+ PK G3k  -com/kinostudios/forwarder/PortForwarder.class0| z z z { z z z z z  z z z z z     z  $ z z ) z  ) I 1 4 6 4 z < $ < @ z z     I z I M z M M <   M I [ ! " 1# 1$ 1 ) 1% $& '( ') *+ ', *-. / 0 "1 "$23 [45 67 $8 $9 <:};<= InnerClassesConnectionCheckVERSIONLjava/lang/String; ConstantValue> LISTEN_PORTI RELAY_PORT SERVICE_PORT REMOTE_ADDR MODE_LOCAL MODE_REMOTEQUIETNORMALVERBOSE NEW_CLIENT QUIT  KILL_CLIENT  KEEP_ALIVE mode verbosity time_offsetthreadsLjava/util/Vector;serverLjava/net/ServerSocket;localRelaySocketLjava/net/Socket;remoteRelaySocketinLjava/io/DataInputStream;outLjava/io/DataOutputStream;loggerLjava/io/OutputStream;errdoneZdaemon()VCodemain([Ljava/lang/String;)VfinalizetellLocalRelayToAddNewClient(I)V removeThread+(Lcom/kinostudios/forwarder/ClientThread;)V()I timeStamp()Ljava/lang/String; logNormal(Ljava/lang/String;)V logVerboselogError logImportant usageAndExit clearThreads access$100()Ljava/io/DataOutputStream; Synthetic access$200()Ljava/net/ServerSocket; access$300()Ljava/net/Socket; -r? @A -iB CD -p -v -z-fjava/io/FileOutputStream -t -l java/lang/Exceptionjava/lang/StringBuffer*Something bad with commandline arguments: EF G H I Jjava/util/Vector I am a remote relay. java/net/ServerSocket ,Waiting for local relay connection on port: EK L.Connection to relay established successfully! Listening for clients on port: java/io/DataOutputStream MN Ojava/util/Timer7com/kinostudios/forwarder/PortForwarder$ConnectionCheck P QR &com/kinostudios/forwarder/ClientThread S TA Ujava/net/SocketException%Exception while waiting for clients: EConnection to local relay dropped! Will wait for it to connect again! I am a local relayTrying to connect to:  on port: java/net/Socket V Connected to remote relay!java/io/DataInputStream WX Y Z[ \Remote relay has shutdown! ]Unknown command received: ^ _ `java/io/EOFExceptionjava/io/IOException a Good-bye!b c d e fAg hi Tjk lm no pq rs tu vwError writing: '' to log because: ERROR:  IMPORTANT: ]TCPRelay Version 1.0.0 Usage: If this is the remote relay: java -jar TCPRelay.jar -r [-p listen_port] [-i internal_port] [-v | -z] [-f logfile] [-t time_offset] listen_port - optionally set port to listen on for clients (default: 5445) internal_port - optionally set port that local relay connects on (default: 5005) -v and -z - verbose and silent, respectively time_offset - adjust the timestamps by this many hours If this is the local relay: java -jar TCPRelay.jar -l ip_address service_port [-p remote_port] [-v | -z] [-f logfile] [-t time_offset] ip_address - address of remote relay service_port - the port of the local service (e.g. 22 for ssh) remote_port - optionally set port remote relay is listening on x yz {'com/kinostudios/forwarder/PortForwarderjava/lang/Object)com/kinostudios/forwarder/PortForwarder$11.0.0java/lang/Stringequals(Ljava/lang/Object;)Zjava/lang/IntegerparseInt(Ljava/lang/String;)Iappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; getMessagetoStringjava/lang/Systemexit(I)Ljava/lang/StringBuffer;acceptgetOutputStream()Ljava/io/OutputStream;(Ljava/io/OutputStream;)V.(Lcom/kinostudios/forwarder/PortForwarder$1;)VscheduleAtFixedRate(Ljava/util/TimerTask;JJ)V(Ljava/net/Socket;)Vaddstart(Ljava/lang/String;I)VgetInputStream()Ljava/io/InputStream;(Ljava/io/InputStream;)VreadByte()BreadIntLjava/io/PrintStream;java/io/PrintStreamprintlncloseprintStackTracejava/io/OutputStream writeByteflushwriteIntremovejava/util/Calendar getInstance()Ljava/util/Calendar;(II)Vjava/text/DateFormatgetTimeInstance()Ljava/text/DateFormat;getTime()Ljava/util/Date;format$(Ljava/util/Date;)Ljava/lang/String;concat&(Ljava/lang/String;)Ljava/lang/String;getBytes()[Bwrite([B)Vsizeget(I)Ljava/lang/Object;die!z{  * * *2<**2 `**`2 *2 `**`2 |*2 j*2 X*2)`*Y*`2-'*2`**`2 0*2**2*2 <**2 `**`2 |*2 j*2 X*2)`*Y*`2-'*2`**`2 W!LY+ !"#$Y %&'()Y *L+Y, -!(+./()Y *Y0 -!(1Y234Y5M,6Y788:; W-?NYA-B!"CDE?F(YGH -!(IY JKL(MYKNOPL;rPQ=K <KHPR>W+?TE;UYV-!WPXKYLTEL+\@Z[]I](^& _`abYPXKYCLDG)N2 _c`L+\;YbM[!-0  &*dW  $eK* fg*hi ZFA*jklmn)LUYo*p+q!W[ ZFA*jklmn)LUYo*p+q!W[ XDr*kjklmn)LUYo*p+q!W[ XDs*kjklmn)LUYo*p+q!W[  tuW# 0$&v;<&wcom/kinostudios/forwarder/ClientThread$ServiceConnection.classPK G3m; vW W ,M com/kinostudios/forwarder/ClientThread.classPK 2F3{*com/kinostudios/forwarder/Connection.classPK G3xNm/com/kinostudios/forwarder/PortForwarder$1.classPK G3=com/kinostudios/forwarder/PortForwarder$ConnectionCheck.classPK G3k  -com/kinostudios/forwarder/PortForwarder.classPK rV: