package de.tudarmstadt.informatik.hostage.protocol.cifs; //import org.alfresco.config.ConfigElement; import org.alfresco.jlan.server.SrvSession; import org.alfresco.jlan.server.core.DeviceContext; import org.alfresco.jlan.server.core.DeviceContextException; import org.alfresco.jlan.server.filesys.DiskDeviceContext; import org.alfresco.jlan.server.filesys.DiskInterface; import org.alfresco.jlan.server.filesys.FileAttribute; import org.alfresco.jlan.server.filesys.FileExistsException; import org.alfresco.jlan.server.filesys.FileInfo; import org.alfresco.jlan.server.filesys.FileOpenParams; import org.alfresco.jlan.server.filesys.FileSystem; import org.alfresco.jlan.server.filesys.NetworkFile; import org.alfresco.jlan.server.filesys.SearchContext; import org.alfresco.jlan.server.filesys.TreeConnection; import org.springframework.extensions.config.ConfigElement; import java.io.FileNotFoundException; import java.io.IOException; public class PseudoCIFSDiskDriver implements DiskInterface { private static class PseudoNetworkFile extends NetworkFile { public PseudoNetworkFile(String name){ super(name); setFileSize(12); setModifyDate(System.currentTimeMillis()); setCreationDate(System.currentTimeMillis()); } @Override public void openFile(boolean createFlag) throws IOException { setClosed(false); } @Override public int readFile(byte[] buf, int len, int pos, long fileOff) throws IOException { return 0; } @Override public void writeFile(byte[] buf, int len, int pos, long fileOff) throws IOException { } @Override public long seekFile(long pos, int typ) throws IOException { return 0; } @Override public void flushFile() throws IOException { } @Override public void truncateFile(long siz) throws IOException { } @Override public void closeFile() throws IOException { setClosed(true); } } @Override public void closeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException { } @Override public void createDirectory(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException { } @Override public NetworkFile createFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException { throw new FileExistsException(); } @Override public void deleteDirectory(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException { } @Override public void deleteFile(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException { } @Override public int fileExists(SrvSession srvSession, TreeConnection treeConnection, String s) { return 0; } @Override public void flushFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException { } @Override public FileInfo getFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException { FileInfo finfo = new FileInfo(s, 12, FileAttribute.ReadOnly); long fdate = System.currentTimeMillis(); finfo.setModifyDateTime(fdate); finfo.setAllocationSize((12 + 512L) & 0xFFFFFFFFFFFFFE00L); finfo.setFileId(s.hashCode()); finfo.setCreationDateTime(fdate - 1000); finfo.setChangeDateTime(fdate); return finfo; } @Override public boolean isReadOnly(SrvSession srvSession, DeviceContext deviceContext) throws IOException { return true; } @Override public NetworkFile openFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException { System.out.println(srvSession + " - " + treeConnection + " - " + fileOpenParams); NetworkFile netFile = new PseudoNetworkFile("Test"); return netFile; } @Override public int readFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException { return 0; } @Override public void renameFile(SrvSession srvSession, TreeConnection treeConnection, String s, String s2) throws IOException { } @Override public long seekFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l, int i) throws IOException { return 0; } @Override public void setFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s, FileInfo fileInfo) throws IOException { } @Override public SearchContext startSearch(SrvSession srvSession, TreeConnection treeConnection, String s, int i) throws FileNotFoundException { throw new FileNotFoundException(); } @Override public void truncateFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l) throws IOException { } @Override public int writeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException { return 0; } @Override public DeviceContext createContext(String s, ConfigElement configElement) throws DeviceContextException { DiskDeviceContext ctx = new DiskDeviceContext("/"); ctx.setFilesystemAttributes(FileSystem.CasePreservedNames + FileSystem.UnicodeOnDisk); ctx.setAvailable(true); return ctx; } @Override public void treeOpened(SrvSession srvSession, TreeConnection treeConnection) { } @Override public void treeClosed(SrvSession srvSession, TreeConnection treeConnection) { } }