1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-07 00:55:24 +02:00

[170832] implement setReadOnly() and seLastModified() for ssh

This commit is contained in:
Martin Oberhuber 2007-02-22 23:57:29 +00:00
parent 17f6814ff4
commit eb4639f83b
2 changed files with 45 additions and 5 deletions

View file

@ -31,7 +31,7 @@ plugin@org.eclipse.rse.sdk=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cv
plugin@org.eclipse.rse.services.dstore=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.dstore plugin@org.eclipse.rse.services.dstore=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.dstore
plugin@org.eclipse.rse.services.files.ftp=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.files.ftp plugin@org.eclipse.rse.services.files.ftp=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.files.ftp
plugin@org.eclipse.rse.services.local=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.local plugin@org.eclipse.rse.services.local=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.local
plugin@org.eclipse.rse.services.ssh=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.ssh plugin@org.eclipse.rse.services.ssh=v20070223,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services.ssh
plugin@org.eclipse.rse.services=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services plugin@org.eclipse.rse.services=v20070221,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.services
plugin@org.eclipse.rse.shells.ui=v20070223,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.shells.ui plugin@org.eclipse.rse.shells.ui=v20070223,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.shells.ui
plugin@org.eclipse.rse.subsystems.files.core=v20070222,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.subsystems.files.core plugin@org.eclipse.rse.subsystems.files.core=v20070222,:pserver:anonymous:none@dev.eclipse.org:/cvsroot/dsdp,,org.eclipse.tm.rse/plugins/org.eclipse.rse.subsystems.files.core

View file

@ -756,14 +756,54 @@ public class SftpFileService extends AbstractFileService implements IFileService
public boolean setLastModified(IProgressMonitor monitor, String parent, public boolean setLastModified(IProgressMonitor monitor, String parent,
String name, long timestamp) throws SystemMessageException String name, long timestamp) throws SystemMessageException
{ {
// TODO implement this to set the timestamp on the specified file boolean ok=false;
return false; if (fDirChannelMutex.waitForLock(monitor, fDirChannelTimeout)) {
try {
String path = parent + '/' + name;
getChannel("SftpFileService.setLastModified").setMtime(path, (int)(timestamp/1000)); //$NON-NLS-1$
ok=true;
Activator.trace("SftpFileService.setLastModified ok"); //$NON-NLS-1$
} catch (Exception e) {
Activator.trace("SftpFileService.setLastModified failed: "+e.toString()); //$NON-NLS-1$
throw makeSystemMessageException(e);
} finally {
fDirChannelMutex.release();
}
}
return ok;
} }
public boolean setReadOnly(IProgressMonitor monitor, String parent, public boolean setReadOnly(IProgressMonitor monitor, String parent,
String name, boolean readOnly) throws SystemMessageException { String name, boolean readOnly) throws SystemMessageException {
// TODO Auto-generated method stub boolean ok=false;
return false; if (fDirChannelMutex.waitForLock(monitor, fDirChannelTimeout)) {
try {
String path = parent + '/' + name;
SftpATTRS attr = getChannel("SftpFileService.setReadOnly").stat(path); //$NON-NLS-1$
int permOld = attr.getPermissions();
int permNew = permOld;
if (readOnly) {
permNew &= ~128;
} else {
permNew |= 128;
}
if (permNew != permOld) {
//getChannel("SftpFileService.setReadOnly").chmod(permNew, path); //$NON-NLS-1$
attr.setPERMISSIONS(permNew);
getChannel("SftpFileService.setReadOnly").setStat(path, attr); //$NON-NLS-1$
ok=true;
Activator.trace("SftpFileService.setReadOnly ok"); //$NON-NLS-1$
} else {
Activator.trace("SftpFileService.setReadOnly nothing-to-do"); //$NON-NLS-1$
}
} catch (Exception e) {
Activator.trace("SftpFileService.rename failed: "+e.toString()); //$NON-NLS-1$
throw makeSystemMessageException(e);
} finally {
fDirChannelMutex.release();
}
}
return ok;
} }
/** /**