The lack of an application-level timeout does explain why software will generally hang.
The error message that I've seen the most is as follows: java.net.SocketTimeoutException: The operation timed out Now, in my tests with a PC, the sockets are generated and torn down dynamically with the client always connecting with its random port to the same passive port on the server. The android device will not tear the connection down however after the exception. The session will stay up indefinitely as established on both ends until I kill the port forwarding process. There does also appear to be situations where I can get a directory "list" received from the server to show up on the client device (subsequent cwd commands work, but list will fail), but it seems to be intermittent and very erratic. Which leads me to take more notice of the buffer messages rather than a specific point in the code that breaks down. As for NAT or Firewall issues, all client communications are looped.. meaning that with the TCP tunneling in place, all FTP packets are sent to 127.0.0.1 where it is picked up by SSH for crypto and encaps into another IP packet. Once at the SSH server, the outer packet is stripped, contents are decrypted and sent to the FTP server. The FTP server (same box as the SSH server) thinks it came from 127.0.0.1 and uses that same IP for its replies. I guess that's just the long way of saying that each device thinks it's talking to itself, so there's no NAT or firewall confusion. At least not until I move the FTP service off my SSH server, but even then IP masquerading in the proftpd_conf will fix the NAT issue. I really think a TCP dump would help the issue.. at least I could see how big the FTP packets are, if they're being fragmented, and when/ where they're being sent. I just found the tcpdump on the emulator, how can I filter out the non-interesting packets? I would like to try similar port forwarding tests using adb or other tools, is there a recommended tutorial on how to use the port forwarding there? will it be able to simulate what I'm doing with SSH? Also maybe trying a different SSH client would help, is there anyone besides connectbot that accepts RSA keys and allows TCP port forwarding? -- Regarding the security discussion, I think in my setup I'm pretty safe since all FTP packets are looped within client/server platforms as described above, but you do make a case for FTPS w/out encryption that could maybe alteast mask the username and password within the system or in case I ever do move the FTP server off the SSH box, then again, it is at least on a trusted network once the SSH server decrypts it. Again, Thanks! --James -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

