internal static SftpATTRS getATTR(Buffer buf) { SftpATTRS attr = new SftpATTRS(); attr.flags = buf.getInt(); if ((attr.flags & SSH_FILEXFER_ATTR_SIZE) != 0) { attr.size = buf.getLong(); } if ((attr.flags & SSH_FILEXFER_ATTR_UIDGID) != 0) { attr.uid = buf.getInt(); attr.gid = buf.getInt(); } if ((attr.flags & SSH_FILEXFER_ATTR_PERMISSIONS) != 0) { attr.permissions = buf.getInt(); } if ((attr.flags & SSH_FILEXFER_ATTR_ACMODTIME) != 0) { attr.atime = buf.getInt(); } if ((attr.flags & SSH_FILEXFER_ATTR_ACMODTIME) != 0) { attr.mtime = buf.getInt(); } if ((attr.flags & SSH_FILEXFER_ATTR_EXTENDED) != 0) { int count = buf.getInt(); if (count > 0) { attr.extended = new String[count * 2]; for (int i = 0; i < count; i++) { attr.extended[i * 2] = Util.getString(buf.getString()); attr.extended[i * 2 + 1] = Util.getString(buf.getString()); } } } return(attr); }
internal static SftpATTRS getATTR(Buffer buf) { SftpATTRS attr=new SftpATTRS(); attr.flags=buf.getInt(); if((attr.flags&SSH_FILEXFER_ATTR_SIZE)!=0){ attr.size=buf.getLong(); } if((attr.flags&SSH_FILEXFER_ATTR_UIDGID)!=0) { attr.uid=buf.getInt(); attr.gid=buf.getInt(); } if((attr.flags&SSH_FILEXFER_ATTR_PERMISSIONS)!=0) { attr.permissions=buf.getInt(); } if((attr.flags&SSH_FILEXFER_ATTR_ACMODTIME)!=0) { attr.atime=buf.getInt(); } if((attr.flags&SSH_FILEXFER_ATTR_ACMODTIME)!=0) { attr.mtime=buf.getInt(); } if((attr.flags&SSH_FILEXFER_ATTR_EXTENDED)!=0) { int count=buf.getInt(); if(count>0) { attr.extended=new String[count*2]; for(int i=0; i<count; i++) { attr.extended[i*2]=Util.getString(buf.getString()); attr.extended[i*2+1]=Util.getString(buf.getString()); } } } return attr; }
void setAttrs(SftpATTRS attrs) {this.attrs = attrs;}
internal LsEntry(String filename, String longname, SftpATTRS attrs) { setFilename(filename); setLongname(longname); setAttrs(attrs); }
private void sendMKDIR(byte[] path, SftpATTRS attr) { packet.reset(); putHEAD(SSH_FXP_MKDIR, 9+path.Length+(attr!=null?attr.length():4)); buf.putInt(count++); buf.putString(path); // path if(attr!=null) attr.dump(buf); else buf.putInt(0); session.write(packet, this, 9+path.Length+(attr!=null?attr.length():4)+4); }
private void sendSETSTAT(byte[] path, SftpATTRS attr) { packet.reset(); putHEAD(SSH_FXP_SETSTAT, 9+path.Length+attr.length()); buf.putInt(count++); buf.putString(path); // path attr.dump(buf); session.write(packet, this, 9+path.Length+attr.length()+4); }
private void _setStat(String path, SftpATTRS attr) { try { sendSETSTAT(Util.getBytes(path), attr); buf.rewind(); int i=io.ins.Read(buf.buffer, 0, buf.buffer.Length); int length=buf.getInt(); int type=buf.getByte(); if(type!=SSH_FXP_STATUS) { throw new SftpException(SSH_FX_FAILURE, ""); } buf.getInt(); i=buf.getInt(); if(i!=SSH_FX_OK) { throwStatusError(buf, i); } } catch(Exception e) { if(e is SftpException) throw (SftpException)e; throw new SftpException(SSH_FX_FAILURE, ""); } }
public void setStat(String path, SftpATTRS attr) { try { if(!path.StartsWith("/")){ path=cwd+"/"+path; } ArrayList v=glob_remote(path); for(int j=0; j<v.Count; j++) { path=(String)(v[j]); _setStat(path, attr); } } catch(Exception e) { if(e is SftpException) throw (SftpException)e; throw new SftpException(SSH_FX_FAILURE, ""); } }