From d1d90c2fca4392bfa430b2c7ec6bfd4d7e94b123 Mon Sep 17 00:00:00 2001
From: mokeddes <youva.mokeddes@gmail.com>
Date: Sun, 7 Mar 2021 20:36:15 +0100
Subject: [PATCH] ajout commande QUIT

---
 .../main/java/sr/projet2/Request/QUIT.java    | 32 +++++++++++++++++++
 .../java/sr/projet2/Server/FtpConnexion.java  |  5 +++
 2 files changed, 37 insertions(+)
 create mode 100644 serveurFTP/src/main/java/sr/projet2/Request/QUIT.java

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 0000000..3b92195
--- /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 a806c2f..5dfc3df 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");
-- 
GitLab