PseudoCIFSDiskDriver.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package de.tudarmstadt.informatik.hostage.protocol.cifs;
  2. import org.alfresco.config.ConfigElement;
  3. import org.alfresco.jlan.server.SrvSession;
  4. import org.alfresco.jlan.server.core.DeviceContext;
  5. import org.alfresco.jlan.server.core.DeviceContextException;
  6. import org.alfresco.jlan.server.filesys.DiskDeviceContext;
  7. import org.alfresco.jlan.server.filesys.DiskInterface;
  8. import org.alfresco.jlan.server.filesys.FileAttribute;
  9. import org.alfresco.jlan.server.filesys.FileExistsException;
  10. import org.alfresco.jlan.server.filesys.FileInfo;
  11. import org.alfresco.jlan.server.filesys.FileOpenParams;
  12. import org.alfresco.jlan.server.filesys.FileSystem;
  13. import org.alfresco.jlan.server.filesys.NetworkFile;
  14. import org.alfresco.jlan.server.filesys.SearchContext;
  15. import org.alfresco.jlan.server.filesys.TreeConnection;
  16. import java.io.FileNotFoundException;
  17. import java.io.IOException;
  18. public class PseudoCIFSDiskDriver implements DiskInterface {
  19. private static class PseudoNetworkFile extends NetworkFile {
  20. public PseudoNetworkFile(String name){
  21. super(name);
  22. setFileSize(12);
  23. setModifyDate(System.currentTimeMillis());
  24. setCreationDate(System.currentTimeMillis());
  25. }
  26. @Override
  27. public void openFile(boolean createFlag) throws IOException {
  28. setClosed(false);
  29. }
  30. @Override
  31. public int readFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
  32. return 0;
  33. }
  34. @Override
  35. public void writeFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
  36. }
  37. @Override
  38. public long seekFile(long pos, int typ) throws IOException {
  39. return 0;
  40. }
  41. @Override
  42. public void flushFile() throws IOException {
  43. }
  44. @Override
  45. public void truncateFile(long siz) throws IOException {
  46. }
  47. @Override
  48. public void closeFile() throws IOException {
  49. setClosed(true);
  50. }
  51. }
  52. @Override
  53. public void closeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
  54. }
  55. @Override
  56. public void createDirectory(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
  57. }
  58. @Override
  59. public NetworkFile createFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
  60. throw new FileExistsException();
  61. }
  62. @Override
  63. public void deleteDirectory(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
  64. }
  65. @Override
  66. public void deleteFile(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
  67. }
  68. @Override
  69. public int fileExists(SrvSession srvSession, TreeConnection treeConnection, String s) {
  70. return 0;
  71. }
  72. @Override
  73. public void flushFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
  74. }
  75. @Override
  76. public FileInfo getFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
  77. FileInfo finfo = new FileInfo(s, 12, FileAttribute.ReadOnly);
  78. long fdate = System.currentTimeMillis();
  79. finfo.setModifyDateTime(fdate);
  80. finfo.setAllocationSize((12 + 512L) & 0xFFFFFFFFFFFFFE00L);
  81. finfo.setFileId(s.hashCode());
  82. finfo.setCreationDateTime(fdate - 1000);
  83. finfo.setChangeDateTime(fdate);
  84. return finfo;
  85. }
  86. @Override
  87. public boolean isReadOnly(SrvSession srvSession, DeviceContext deviceContext) throws IOException {
  88. return true;
  89. }
  90. @Override
  91. public NetworkFile openFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
  92. System.out.println(srvSession + " - " + treeConnection + " - " + fileOpenParams);
  93. NetworkFile netFile = new PseudoNetworkFile("Test");
  94. return netFile;
  95. }
  96. @Override
  97. public int readFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException {
  98. return 0;
  99. }
  100. @Override
  101. public void renameFile(SrvSession srvSession, TreeConnection treeConnection, String s, String s2) throws IOException {
  102. }
  103. @Override
  104. public long seekFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l, int i) throws IOException {
  105. return 0;
  106. }
  107. @Override
  108. public void setFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s, FileInfo fileInfo) throws IOException {
  109. }
  110. @Override
  111. public SearchContext startSearch(SrvSession srvSession, TreeConnection treeConnection, String s, int i) throws FileNotFoundException {
  112. throw new FileNotFoundException();
  113. }
  114. @Override
  115. public void truncateFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l) throws IOException {
  116. }
  117. @Override
  118. public int writeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException {
  119. return 0;
  120. }
  121. @Override
  122. public DeviceContext createContext(String s, ConfigElement configElement) throws DeviceContextException {
  123. DiskDeviceContext ctx = new DiskDeviceContext("/");
  124. ctx.setFilesystemAttributes(FileSystem.CasePreservedNames + FileSystem.UnicodeOnDisk);
  125. ctx.setAvailable(true);
  126. return ctx;
  127. }
  128. @Override
  129. public void treeOpened(SrvSession srvSession, TreeConnection treeConnection) {
  130. }
  131. @Override
  132. public void treeClosed(SrvSession srvSession, TreeConnection treeConnection) {
  133. }
  134. }