diff --git a/serveurFTP/src/main/java/sr/projet2/Request/QUIT.java b/serveurFTP/src/main/java/sr/projet2/Request/QUIT.java new file mode 100644 index 0000000000000000000000000000000000000000..3b921956439c6d007706981011e3893f3fecc078 --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/QUIT.java @@ -0,0 +1,32 @@ +package sr.projet2.Request; + +import java.io.IOException; + +import sr.projet2.Server.FtpConnexion; + +public class QUIT implements request { + private FtpConnexion ftp; + public QUIT(FtpConnexion ftp) { + this.ftp =ftp; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + + } + try { + this.ftp.getBufferedWriter().write("232 Quit.\r\n"); + this.ftp.getBufferedWriter().flush(); + this.ftp.getSocket().close(); + this.ftp.disconnect(); + System.out.println("Quit"); + } + catch(IOException e){ + this.ftp.connect(); + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java index a806c2f8b9f45e870c1e5b600b3db54bcd4ec6f4..5dfc3dffc03c448293c3675ee6f5b73566f80e05 100644 --- a/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java +++ b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java @@ -18,6 +18,7 @@ import sr.projet2.Request.MKD; import sr.projet2.Request.PASS; import sr.projet2.Request.PASV; import sr.projet2.Request.PWD; +import sr.projet2.Request.QUIT; import sr.projet2.Request.RNFR; import sr.projet2.Request.RNTO; import sr.projet2.Request.SYST; @@ -136,6 +137,10 @@ public class FtpConnexion extends Thread { RNTO request= new RNTO(this,mystring[1].trim()); request.send(); } + else if (readLine.startsWith("QUIT")){ + QUIT request= new QUIT(this); + request.send(); + } } else { this.bfW.write("530 server is not connected\r\n");