Пример #1
0
 public virtual java.io.InputStream getInputStream()
 {
     PipedInputStream stream =
         new ChannelPipedInputStream(
         32 * 1024  // this value should be customizable.
         );
     m_io.setOutputStream(new PassiveOutputStream(stream), false);
     return stream;
 }
Пример #2
0
        public override void start()
        {
            try
            {

                PipedOutputStream pos = new PipedOutputStream();
                m_io.setOutputStream(pos);
                PipedInputStream pis = new ChannelPipedInputStream(pos, 32 * 1024);
                m_io.setInputStream(pis);

                Request request = new RequestSftp();
                request.request(m_session, this);

                m_buffer = new Buffer(m_rmpsize);
                m_packet = new Packet(m_buffer);
                int i = 0;
                int length;
                int type;
                byte[] str;

                // send SSH_FXP_INIT
                sendINIT();

                // receive SSH_FXP_VERSION
                Header header = new Header();
                header = fillHeader(m_buffer, header);
                length = header.Length;
                if (length > MAX_MSG_LENGTH)
                    throw new SftpException(ChannelSftpResult.SSH_FX_FAILURE, "Received message is too long: " + length);

                type = header.HeaderType;             // 2 -> SSH_FXP_VERSION
                m_server_version = header.RID;
                skip(length);

                // send SSH_FXP_REALPATH
                sendREALPATH(Util.getBytesUTF8("."));

                // receive SSH_FXP_NAME
                header = fillHeader(m_buffer, header);
                length = header.Length;
                type = header.HeaderType;           // 104 -> SSH_FXP_NAME
                m_buffer.rewind();
                fill(m_buffer.m_buffer, 0, length);
                i = m_buffer.getInt();              // count
                str = m_buffer.getString();         // filename
                m_home = m_cwd = Util.getStringUTF8(str);
                str = m_buffer.getString();         // logname
                // SftpATTRS.getATTR(buf);			// attrs
                m_lcwd = new File(".").CanonicalPath;
            }
            catch (Exception e)
            {
                if (e is JSchException)
                    throw (JSchException)e;
                throw new JSchException(e.ToString());
            }
        }