comparison src/ch/ethz/ssh2/SCPOutputStream.java @ 273:91a31873c42a ganymed

start conversion from trilead to ganymed
author Carl Byington <carl@five-ten-sg.com>
date Fri, 18 Jul 2014 11:21:46 -0700
parents
children 071eccdff8ea
comparison
equal deleted inserted replaced
272:ce2f4e397703 273:91a31873c42a
1 /*
2 * Copyright (c) 2011 David Kocher. All rights reserved.
3 * Please refer to the LICENSE.txt for licensing details.
4 */
5 package ch.ethz.ssh2;
6
7 import java.io.BufferedInputStream;
8 import java.io.BufferedOutputStream;
9 import java.io.IOException;
10 import java.io.InputStream;
11
12 import ch.ethz.ssh2.util.StringEncoder;
13
14 /**
15 * @version $Id: SCPOutputStream.java 151 2014-04-28 10:03:39Z dkocher@sudo.ch $
16 */
17 public class SCPOutputStream extends BufferedOutputStream
18 {
19
20 private Session session;
21
22 private SCPClient scp;
23
24 public SCPOutputStream(SCPClient client, Session session, final String remoteFile, long length, String mode) throws IOException
25 {
26 super(session.getStdin(), 40000);
27 this.session = session;
28 this.scp = client;
29
30 InputStream is = new BufferedInputStream(session.getStdout(), 512);
31
32 scp.readResponse(is);
33
34 String cline = "C" + mode + " " + length + " " + remoteFile + "\n";
35
36 super.write(StringEncoder.GetBytes(cline));
37 this.flush();
38
39 scp.readResponse(is);
40 }
41
42 @Override
43 public void close() throws IOException
44 {
45 try
46 {
47 this.write(0);
48 this.flush();
49
50 scp.readResponse(session.getStdout());
51
52 this.write(StringEncoder.GetBytes("E\n"));
53 this.flush();
54 }
55 finally
56 {
57 if (session != null)
58 session.close();
59 }
60 }
61 }