*************** *** 30,36 **** import java.util.Map; import java.util.ResourceBundle; import java.util.StringTokenizer; import javax.net.ServerSocketFactory; import javax.net.SocketFactory; import javax.net.ssl.HandshakeCompletedEvent; --- 30,38 ---- import java.util.Map; import java.util.ResourceBundle; import java.util.StringTokenizer; + import org.drftpd.SFVFile.SFVStatus; + import org.drftpd.remotefile.*; import javax.net.ServerSocketFactory; import javax.net.SocketFactory; import javax.net.ssl.HandshakeCompletedEvent; *************** *** 1547,1552 **** if (!targetFileName.toLowerCase().endsWith(".sfv")) { try { long sfvChecksum = targetDir.lookupSFVFile().getChecksum(targetFileName); if (checksum == sfvChecksum) { response.addComment("checksum match: SLAVE/SFV:" + --- 1549,1563 ---- if (!targetFileName.toLowerCase().endsWith(".sfv")) { try { long sfvChecksum = targetDir.lookupSFVFile().getChecksum(targetFileName); + SFVStatus sfvstatus = targetDir.lookupSFVFile().getStatus(); + LinkedRemoteFile parentDir = targetDir.getParentFile(); + if (sfvstatus.getMissing() != 0) { + if(!parentDir.lookupNonExistingFile("(incomplete)-"+targetDir.getName(),false ).exists()) + parentDir.addFile(new StaticRemoteFile("(incomplete)-"+targetDir.getName(),null,targetDir.getName())); + } else { + if(parentDir.lookupNonExistingFile("(incomplete)-"+targetDir.getName(),false ).exists()) + parentDir.lookupFile("(incomplete)-"+targetDir.getName(),false).delete(); + } if (checksum == sfvChecksum) { response.addComment("checksum match: SLAVE/SFV:" +