blob: 8c511ea00c4139deb214430166def8d6badc4371 [file] [log] [blame]
/*
* Copyright (c) 2011 David Kocher. All rights reserved.
* Please refer to the LICENSE.txt for licensing details.
*/
package ch.ethz.ssh2;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import ch.ethz.ssh2.util.StringEncoder;
/**
* @version $Id:$
*/
public class SCPOutputStream extends BufferedOutputStream
{
private Session session;
private SCPClient scp;
public SCPOutputStream(SCPClient client, Session session, final String remoteFile, long length, String mode) throws IOException
{
super(session.getStdin(), 40000);
this.session = session;
this.scp = client;
InputStream is = new BufferedInputStream(session.getStdout(), 512);
scp.readResponse(is);
String cline = "C" + mode + " " + length + " " + remoteFile + "\n";
super.write(StringEncoder.GetBytes(cline));
this.flush();
scp.readResponse(is);
}
@Override
public void close() throws IOException
{
try
{
this.write(0);
this.flush();
scp.readResponse(session.getStdout());
this.write(StringEncoder.GetBytes("E\n"));
this.flush();
}
finally
{
if (session != null)
session.close();
}
}
}