From 01bd19a25d8aeafae1dce1295534583a99430fe4 Mon Sep 17 00:00:00 2001
From: mokeddes <youva.mokeddes@gmail.com>
Date: Sun, 7 Mar 2021 19:23:47 +0100
Subject: [PATCH] commandes

---
 serveurFTP/{.gitigniore => .getigniore}       |   0
 .../main/java/sr/projet2/Request/CDUP.java    |  40 +++++++++++++++
 .../src/main/java/sr/projet2/Request/CWD.java |  46 ++++++++++++++++++
 .../main/java/sr/projet2/Request/LIST.java    |  45 ++++++++++++++++-
 .../main/java/sr/projet2/Request/PASV.java    |   5 +-
 .../java/sr/projet2/Server/FtpConnexion.java  |  29 ++++++++++-
 .../classes/sr/projet2/Request/CDUP.class     | Bin 0 -> 1604 bytes
 .../classes/sr/projet2/Request/CWD.class      | Bin 0 -> 1869 bytes
 .../classes/sr/projet2/Request/FEAT.class     | Bin 1035 -> 1035 bytes
 .../classes/sr/projet2/Request/LIST.class     | Bin 1026 -> 3082 bytes
 .../classes/sr/projet2/Request/PASV.class     | Bin 1919 -> 1987 bytes
 .../classes/sr/projet2/Request/PWD.class      | Bin 1220 -> 1223 bytes
 .../classes/sr/projet2/Request/TYPE.class     | Bin 1699 -> 1740 bytes
 .../classes/sr/projet2/Request/USER.class     | Bin 1262 -> 1259 bytes
 .../sr/projet2/Server/FtpConnexion.class      | Bin 4080 -> 4892 bytes
 .../compile/default-compile/inputFiles.lst    |   2 +
 serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar | Bin 15332 -> 18948 bytes
 .../TEST-sr.projet2.AppTest.xml               |   8 +--
 .../surefire-reports/sr.projet2.AppTest.txt   |   2 +-
 19 files changed, 167 insertions(+), 10 deletions(-)
 rename serveurFTP/{.gitigniore => .getigniore} (100%)
 create mode 100644 serveurFTP/src/main/java/sr/projet2/Request/CDUP.java
 create mode 100644 serveurFTP/src/main/java/sr/projet2/Request/CWD.java
 create mode 100644 serveurFTP/target/classes/sr/projet2/Request/CDUP.class
 create mode 100644 serveurFTP/target/classes/sr/projet2/Request/CWD.class

diff --git a/serveurFTP/.gitigniore b/serveurFTP/.getigniore
similarity index 100%
rename from serveurFTP/.gitigniore
rename to serveurFTP/.getigniore
diff --git a/serveurFTP/src/main/java/sr/projet2/Request/CDUP.java b/serveurFTP/src/main/java/sr/projet2/Request/CDUP.java
new file mode 100644
index 0000000..3950375
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/CDUP.java
@@ -0,0 +1,40 @@
+package sr.projet2.Request;
+
+import java.io.File;
+import java.io.IOException;
+
+import sr.projet2.Server.FtpConnexion;
+
+public class CDUP implements request {
+	private FtpConnexion ftp;
+	public CDUP(FtpConnexion ftp) {
+		this.ftp =ftp;
+	}
+
+	@Override
+	public void send() throws IOException{
+		if (this.ftp.getSocket() == null ) {
+			throw new IOException("Ftp server error");
+		}
+		try {
+			String newPath=this.ftp.getDirectory();
+			String[] pa=newPath.split("/");
+			newPath="";
+			if(pa.length>2) {
+			for(int i=1;i<pa.length-1;i++) {
+				newPath+="/"+pa[i];
+			}
+			}
+			else {
+				newPath="/";
+			}
+			this.ftp.SetDirectory(newPath);
+			this.ftp.getBufferedWriter().write("250 success to exit.\r\n");
+			this.ftp.getBufferedWriter().flush();
+		}
+		catch(IOException e){
+			throw new IOException("Connexion failed");
+		}
+	}
+
+}
diff --git a/serveurFTP/src/main/java/sr/projet2/Request/CWD.java b/serveurFTP/src/main/java/sr/projet2/Request/CWD.java
new file mode 100644
index 0000000..0f13d03
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/CWD.java
@@ -0,0 +1,46 @@
+package sr.projet2.Request;
+
+import java.io.File;
+import java.io.IOException;
+
+import sr.projet2.Server.FtpConnexion;
+
+public class CWD implements request {
+	private FtpConnexion ftp;
+	private String directory;
+	public CWD(FtpConnexion ftp,String directory) {
+		this.ftp =ftp;
+		this.directory=directory;
+	}
+
+	@Override
+	public void send() throws IOException{
+		if (this.ftp.getSocket() == null ) {
+			throw new IOException("Ftp server error");
+		}
+		try {
+			String newPath;
+			if(this.ftp.getDirectory().trim().equals("/")) {
+				newPath=this.ftp.getDirectory()+this.directory;
+			}
+			else {
+				newPath=this.ftp.getDirectory()+"/"+this.directory;
+
+			}
+			File file= new File(newPath);
+			if (file.exists() && file.canRead() && file.isDirectory()) {
+				this.ftp.SetDirectory(newPath);
+				this.ftp.getBufferedWriter().write("200 success to access to the directory.\r\n");
+				this.ftp.getBufferedWriter().flush();
+			}
+			else {
+				this.ftp.getBufferedWriter().write("550 failed to access to the directory. \r\n");
+				this.ftp.getBufferedWriter().flush();
+			}
+		}
+		catch(IOException e){
+			throw new IOException("Connexion failed");
+		}
+	}
+
+}
diff --git a/serveurFTP/src/main/java/sr/projet2/Request/LIST.java b/serveurFTP/src/main/java/sr/projet2/Request/LIST.java
index 6a1d2f1..84decec 100644
--- a/serveurFTP/src/main/java/sr/projet2/Request/LIST.java
+++ b/serveurFTP/src/main/java/sr/projet2/Request/LIST.java
@@ -1,6 +1,15 @@
 package sr.projet2.Request;
 
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.Socket;
+import java.nio.file.Files;
+import java.sql.Date;
+import java.text.SimpleDateFormat;
 
 import sr.projet2.Server.FtpConnexion;
 
@@ -16,8 +25,40 @@ public class LIST implements request {
 			throw new IOException("Ftp server error");
 		}
 		try {
-			this.ftp.getBufferedWriter().write("530 please login with USER AND PASS.\r\n");
-			this.ftp.getBufferedWriter().flush();
+			File file=new File(this.ftp.getDirectory());
+			if(file.isDirectory()) {
+				this.ftp.getBufferedWriter().write("150 Here comes the directory listing.\r\n");
+				this.ftp.getBufferedWriter().flush();
+				File[] files = file.listFiles();
+				Socket socket1=this.ftp.getServerSocket().accept();
+				BufferedReader bfR1 =new BufferedReader(new InputStreamReader(socket1.getInputStream()));
+				BufferedWriter bfW1 = new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream()));
+				String res="";
+				for(File oneFile: files) {
+					int len =1;
+					if(oneFile.isDirectory() && oneFile.canRead()) {
+						res+="d"; // if directory
+						len=oneFile.listFiles().length;
+					}
+					else {
+						res+="-";
+					}
+					res+="rwxr-xr-x		"; //Permission
+					res+=len+" ";
+					//res+= Files.getOwner(oneFile.toPath()).toString()+"	";
+		    		res+= "root		 ";
+					Date date = new Date(oneFile.lastModified());
+		            SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd hh:mm");
+		            res+= dateFormat.format(date)+" ";
+		            res+=oneFile.getName()+"\r\n";
+
+				}
+	            bfW1.write(res);
+	            bfW1.flush();
+				socket1.close();
+				this.ftp.getBufferedWriter().write("226 Directory send OK.\r\n");
+				this.ftp.getBufferedWriter().flush();
+			}
 		}
 		catch(IOException e){
 			throw new IOException("Connexion failed");
diff --git a/serveurFTP/src/main/java/sr/projet2/Request/PASV.java b/serveurFTP/src/main/java/sr/projet2/Request/PASV.java
index 4b63fc6..bbad071 100644
--- a/serveurFTP/src/main/java/sr/projet2/Request/PASV.java
+++ b/serveurFTP/src/main/java/sr/projet2/Request/PASV.java
@@ -18,8 +18,9 @@ public class PASV implements request {
 			throw new IOException("Ftp server error");
 		}
 		try {
-			ServerSocket socket= new  ServerSocket(0);
-            int newPort = socket.getLocalPort();
+			ServerSocket s=new  ServerSocket(0);
+			this.ftp.SetServerSocket(s);
+            int newPort = this.ftp.getServerSocket().getLocalPort();
             int port1 = newPort / 256;
     		int port2 = newPort % 256;
     		String ips[] = this.ftp.getSocket().getLocalAddress().getHostAddress().split("\\.");
diff --git a/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java
index e4df8cc..150815e 100644
--- a/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java
+++ b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java
@@ -5,11 +5,15 @@ import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
+import java.net.ServerSocket;
 import java.net.Socket;
 
 import sr.projet2.Request.AUTH_SSL;
 import sr.projet2.Request.AUTH_TLS;
+import sr.projet2.Request.CDUP;
+import sr.projet2.Request.CWD;
 import sr.projet2.Request.FEAT;
+import sr.projet2.Request.LIST;
 import sr.projet2.Request.PASS;
 import sr.projet2.Request.PASV;
 import sr.projet2.Request.PWD;
@@ -22,7 +26,8 @@ public class FtpConnexion extends Thread {
 	private BufferedReader bfR;
 	private BufferedWriter bfW;
 	private boolean Connected;
-	private String directory;
+	private static String directory;
+	public static ServerSocket socketServer;
 	public FtpConnexion(Socket socket) throws IOException {
 		this.socket=socket;
 		this.bfR =new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
@@ -99,6 +104,19 @@ public class FtpConnexion extends Thread {
 					PASV request= new PASV(this);
 					request.send();
 				}
+				else if (readLine.startsWith("LIST")){
+					LIST request= new LIST(this);
+					request.send();
+				}
+				else if (readLine.startsWith("CWD")){
+					String[] mystring=readLine.split(" ");
+					CWD request= new CWD(this,mystring[1].trim());
+					request.send();
+				}
+				else if (readLine.startsWith("CDUP")){
+					CDUP request= new CDUP(this);
+					request.send();
+				}
 			}
 			else {
 				this.bfW.write("530 server is not connected\r\n");
@@ -129,4 +147,13 @@ public class FtpConnexion extends Thread {
 	public String getDirectory(){
 		return this.directory;
 	}
+	public void SetDirectory(String Directory){
+		this.directory=Directory;
+	}
+	public ServerSocket getServerSocket(){
+		return this.socketServer;
+	}
+	public void SetServerSocket(ServerSocket s){
+		this.socketServer=s;
+	}
 }
diff --git a/serveurFTP/target/classes/sr/projet2/Request/CDUP.class b/serveurFTP/target/classes/sr/projet2/Request/CDUP.class
new file mode 100644
index 0000000000000000000000000000000000000000..56394ab94dff6c99a064f76f98ee060f96026386
GIT binary patch
literal 1604
zcmX^0Z`VEs1_on>cy<ORMh5ZXBK?A*{H)XxBmJP%!qU{@5`AZv&;WJ@7Dfhvti-ZJ
z{hY+SbbbG%tkmQZb_O;^1}Q9BiXd7U8JN>b3K$s_e2~-xrxul^7U{c{6gcPS<)v0+
z=I2>6GO*cX=4F=HF)}D?5K^oe#>l|poS%})#lXzK%frCQz{kkItf3jk$-u}Uz{9}K
zz`@AC?~|FA>Q|bZlv)&$n3R*s$ROmCpPZNzmROVt;zI>lN-{Ew85tyz?L_vsH6sH{
zacW))BLkOfMRICENoIatF*}0<BZDwFFf#M?J^kS_TnthSGVBb}j0|%4J<P)(%OJ<d
zz?q&}5}co$om#@kAgrP312!@*wL~8xXwAW(z{nurR#Ko)3=TAf)S{yNA}$7T1|^WU
zl^GdCH6WV6krG@|l$n=qtr-S#hbj+)8iP6`15bKtiA!ctYH~?_Q6(dT2+SH}9UKgr
zj0}wWTnyR_y6g-(C@~E&l!rl&L7$O<wYVTBvxJdB9h<e$m`>qfFl1z4U}rF9WDo~?
z4#`%h(#)Kc)FP0jraTO04Cags>}82LrK$dDj0|eX7C;i4H8gyXjIicnFk(;w5mr15
z)(kd`3~Y%71>oq?MK%E92P_6a-2gVnj)%b>6kr@B`4IJ>P;}&BaAHtqWZ(%#3Pq5F
z3lD=UgBv4*V0vnaQ)yaSYEf!Rcu{6aY7rxY6fBH0^Yu~XtT`Aw7#YNjObrx@OOumR
zi;ERX@)c4mGE4M$xwsg-7<||nycrq9z+r`<n}@*{<QCR)kUb#P{yYo;pv2FbmQz}s
z!NCy3$RGgER0?T{nK`K`j125~spSEQB^itiLYOhc$iP&P$jBg!CGr><7&93e7(E#o
z7*iP;L?L=n6TCGe18;CiVsf@`VgWcuu``4*GH?awmlh?bx@Cg09Ve*x&;xmhL6L!x
zfti7kft7)gfeDmN85kIt7#JBi8Mqi28Mql37~B|`7?>Cs7`U{yGw^6>Z)M=$2v#G=
zz`(%AzzmXMU}4~9;AG%o5Mp3p5QC^@5M~fz00Azrsf-Ma45AEt3``7S3=9k`42%ro
zAk!Ir8JHPZ7#J8jwYD(uZ)1==&cM5yK|E4OemjHWeu$WgkG7D;HU=$UAp;+seXL6u
z3|Q=zGbrq4FpAXP!C<nT!2%?0sUvH&jlpsogRM^sGo!4|K9-b)|L-klU=z~t0hyz{
zjlls#Z)0#4a^J?_31x3%@LSHn=L5Dg5M<{@21W)EhAM_y25|;v29PJcz}^yI;9?MD
z5MdBukYNyIP-YNgP-75h&|#2ZFl3Nq@Me%;2xE|Dh-8puh+&XtNMTT5C}2=zsA5oJ
zsAW)QsAEuJ=wMI-n`FYk3i2>CfMgir7=jr>7#JCp8NwMt8NwKt81xu47{VDM7?>IA
z7`PZB8KM{%8KM~&7!(-TMgD<GGi`Q;7)F_23|vhA859^8*%=r?gg7Y5V!@FU2LNH#
BchLX<

literal 0
HcmV?d00001

diff --git a/serveurFTP/target/classes/sr/projet2/Request/CWD.class b/serveurFTP/target/classes/sr/projet2/Request/CWD.class
new file mode 100644
index 0000000000000000000000000000000000000000..8815f602c12a6d6a09abee488f1811e5cf7c6aad
GIT binary patch
literal 1869
zcmX^0Z`VEs1_on>e0ByVMh3CsBK?A*{H)XxBmJP%!qU{@5`E`z7j^~~Mh1bb#Ii*F
zoW#6zegCAa)Z`L&1~x_pDJ(jQAUYWtnA1uM7#S3NkkkaH7L}zI>ARH_IOpf(rB-C-
z=UFo{aHeDyr6!l;7gaJc2>Bo^3N9(i%uBasWMH$&%*!mXV`MPZAY>Y*cFizG1{UZ1
zlvFMTW(Iy925trcMh0dL%`i>|Mg}1s26hGx5KDxIfs=uYk%8YQGcVPzG&d==C?qi{
zCl%zR{N%)(u*9NF5FaYYQj(Eb%*Y^t>>i{rvu0#qDNfBxVPxQPtw>HSD9OyvD`sbq
zVPp^n`!6$J-_sv1!^I%Spuo-`&&VK$Kd^Wh6d9Bl8938ZOM>&0vr|hL8H6=7A%4zF
zEzySvT5~X{Ffs_Zl@urxg9BV4wWuh+h>Jm*K@H@8bw&nJ4TvUighInvGYsSoO&$g<
z25m+Lp7hib7eu^>z^p;m!Ns7<pwG^rhmt%XrtvTsfJ|X2Day>{U@&52VAKbxHsN6~
zWiVr8U`s75P0T4qa|k45S!+hIGgvS(h=W54$v&sj%$$_eB9J*&JPg(hHjE7HWr;bZ
zss3q<3~I<ef*FMANiGI+1~m|2&%@xr;K<0pmRL{#jwoGZ10bHTh6XLB8>~S_IP);L
zfIP`jk`GbO&fvz#zyo%6X1=~#W=<*>gDc27R|ZcW1}_G0kjE=Bi%W{ZDKH8o>&wI7
z2a;e<PRt8RO-uoa1@JHgg2cEpi{ViKikn~_h7bmIMh2c>q__b|gz+$hGej^l2&Si&
zIF+WQr52^8gcoI&q!uwUNWo$*GhZK7&YFWEijhIn$iP6MxHLIAwYXTJBwryB&ML`B
zRe)zrJzg#@h8Tu8c7|9+1~Hf)Q4Qo_hzB{3wH#zMNOd9)LlP*vv8Lse7H4oUq%bmQ
znwlCYq$OtNq^97rO@Wt-gCUKPK>%J*Ks7Nku;-<g2PBqcFfy>DWr8v&A0(QgL2k{+
zz?jO&APN^m%4pV%47|Z5iOJc%i3QM%%oUtpT9lj$iY!J34(D(eJ&@lR6d4#9m>C!u
zSQ(fYm_TI&0|NsSsDuF1j11fiJPeEsybKHskqk@>%nS?+{94-?__VaQG6-tvY-JGM
z2v#V{z`!8Hz{0@5z|FwI04id58Tc6Z7{nMD7!)Ad7{nPQ7(jp@Yz-sGD6mCL42%qt
z3<3;H3{ngX3@i+c4ALMA8G9I*!8%WAZDA1H#vpr~fp<59bfl2-b_Uh`5HXEy3_3!F
z+Zc>zGAQk4Fpq?a?qIOo&S0yxg+X{5gWWa;C!ggEDj3oreRfD{b~Cs}YHw$7_tn|P
z;4zcINM{>^&rAkwoox*MGZ|DsCTnkF2m;aD7(#_2w=qOR+1nTrmNTeBIYP;35_~>j
zN2h`uy^(>DL4;v9!#)OS24)6On0YY>fkTdqL6|{=L7YL2L4v`FL6X6hL7E|rL5?Ax
zL7t(7L4l!%L6KnwgA&6c24#k&45|zp8PphdGiWgEW6)&S&!EL{l0gR?)+P+B3=9mX
zpkeLAz|4@&z{SAGkj4-SW#u#YFk~=fGB7dhXW(MUV#sD-WXNG)V31>A6EXM$DxP)!
bFxas(xc+C5U|?itU<47;ATx5oF`WkhehI-3

literal 0
HcmV?d00001

diff --git a/serveurFTP/target/classes/sr/projet2/Request/FEAT.class b/serveurFTP/target/classes/sr/projet2/Request/FEAT.class
index e7210017bdad9ae8f827a6119c7981447694a7b3..c42179588c498dfd77fdc3b313e23cf706c58094 100644
GIT binary patch
delta 613
zcmeC?=;m-e^>5cc1_lOW25T+`J_bcj23`gwE(T==6?O(y4hA(Y1{MZ&5MP6XL6eI?
zi$R-%K?g+ZaxmzzGw8E37_c)KPK=G8crBQPSwk~yayOHHy=z5sYC%b6eqJ#n16Oc<
zX;E^jTV_rwBLk<Kt7C{>R$^Hq4}%bc6c2*{gCIMD5f6hgg9#&pFi1i_Ghg4+A8rC8
zgMeE}fkJU=QCVt{LTXV_ei2BkDG!4ggE=DuzmcJ#u3KtiNoi4Pu^ulMJA(xegN7x8
zDI)`yk)ff2YhH>TFBcDk6@wHbgMf2>US4WNW`3SRT4H8SYRW`jDPcwi0kE|>iFxVz
z{z+M>$t4pV<R^zS%1^FlRGPe(QDX9aM#IUvOp^7C46NlvnI)-=46JE6rNtQxiVVCA
zd<={X{0xi?Od!87FfcGNFfs@+2s1D;h%hiPxG^v>FflMNaA|F4VARsy%D}V{tVWc9
zfq{>KnSp_UlYxbSi-D7Yn?a0$fk6zSnn9dFf&m1$z@{=XFfvFoq)0I^fel^HzzkOA
zs<nlIX&VFcaR%Pq3@njCtlJsb_Cv(jg*dh`aKhMJ2=+Dx?&S=8K4A4cAoUx;E;VDY
zWME-nW)PjcmRZ(YlEIQeoWY7gg29DB3hpi|1}+9^1{nrM1_lOKs0(Eo7#KJhm_<_9
V8CbX&<QNzjSQr?=SRU+81pqPWW%K|5

delta 631
zcmeC?=;q)(^>5cc1_lOW25WW(rpXr>r6k!ISQr@uvJ%S@^>Y&Q()In5vQm>v*csR+
z|6`P&=pHM@#lXzK%frCQz{kkItf3jk$-u}Uz{9}Kz%g-2Fdvs|MRICENoIatF*}3A
z<akCgZY~BX1{rn+X+{RQiT-k|JPfi7a+7VCloU7^6c`x<+)4@*ic^cqQi~K)i;D7#
zxERD4ltAVyPmW`f-~#DZ<zY}`P@i1JWT?QwpvlO<Z)9kw>z0~WQd*Q+tjEj6#h}fg
z%g&&~$RIX(0+X044}%_qG9v?Pc~NFbDhGoBBLkO_p`n6nUJ6vP5f6hg$o;HoIi<xJ
z91Nz63<A#id3mW7nfZANX^ELRsVNhG>(>Y8mlh?bx@G31GBR+wxjKgEfdYm>k%5tc
znSqgkm4T6g3FLDI1_mYuMg~p>E(S&hZUzPhHwGpKCI$uuF0JhhJX+dY8TdDX)d(^$
zFz_)jGcYi4GO#dkF>o?)GYBy-Fo;1^GYB(?Fn|CT*wlJP21W)^20jKR1~CQ(1{MZJ
z263?Q>lv8A8eFxuFz|0<kUY-7yPH8gQb>L~gW`UOn2M0bHU=#iTOYyR#$dRdfzJo5
z-UOt6BLgFY2!k1eC4)EvGXuzlY7CqV3=I4X!CVXi3?dA|3<?Y)3_1*=3}y^sU}aVe
s5)3X3Qb<mBg*x4efs4V6!JL7S!GeK-frEirB!!(p926{;-~g}!0EZ%BKL7v#

diff --git a/serveurFTP/target/classes/sr/projet2/Request/LIST.class b/serveurFTP/target/classes/sr/projet2/Request/LIST.class
index 89172d9ac6f3ae59b2fd580bd965f5feeb564407..236d176ca12a0029715e29203e9fe30402e0db6e 100644
GIT binary patch
literal 3082
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

delta 504
zcmeB@XyR}>^>5cc1_lOW21_mmUIqnD1|9}QE(RqAWp)M?4hB^&1{MZ25MP~xL4%7y
zlR*naXmc>=uruhgGw881=udpHWAX|nt;x5UGz0`0BzYM483foF40sp}8H^?iGi%!k
zG8pqPm@t?!GN_pv8z>ayq$U=pD&*v+XXYuCXO?6rga*3?DLDGMC<HhL2kY^2u``(Q
zFqngMSujXW{=pK@C^uQ2QEu{VR-4I!Y=)CxGfUR9mKSA~q%tzFrsb3tXD}!-@G$T)
zFf#BlFfuTKT)@D<z{J4FAjlxZz{nuXz`)?fz{J4Bz`($zwVi=cOM5E=(?+lw5e5bZ
zJ_cq61_n+B76vW`P6loUQ3eJEF^FmgF$Qr45a0rv%E-XTAi*HXP|pN5bUp(!Sed2P
z76ztm49v$Fcy}|fL<+HPXJFe85n~tP*v7yKWp88PTF$`d16IQgQnQhPkwJt(i$Rxx
zg@Ks?<Q63c4h9AWeg-ZE0R|BUVFm@Tyaa<TgBXJzgE)f)gCv6}gEho~dJJ3)QVh}z
mj0_A6mQbh4FfcH1FffZmursi5F~~A7Ft9K%g0URf!}0(+8$p5q

diff --git a/serveurFTP/target/classes/sr/projet2/Request/PASV.class b/serveurFTP/target/classes/sr/projet2/Request/PASV.class
index 9339601d5975d624f9cdead16ac3b92c8eddb3d2..c80550d3d2f94bf401af8c0f20d1fbf2b92f4722 100644
GIT binary patch
delta 1265
zcmey*cbLEa)W2Q(7#J9g87jFLWEreD8Dto&xfpC1Y}py?I2i1?7+4q_*clwT7}yz{
zK;q6I!Ue>2<zjGSaOYz1VDRK%@Zw_dX7FKW@a19<V6XxaejE(`AUXg<1cG!0aWDjP
zFobY1gffJIh;R;u2u^l}NOp!Oc82JQvGEhH1#>WKXofK|FcweV$1=CxwIVsSpd>Rt
zub7d6D>%QjC^^+FGbfdifiu7{I7}}qu`H2?L6Jd|he4h}ft?|Shar|Bj*&qaB%z;~
zukYy(H-V8sz^$Y}p*XduEVW1>wWuh+2&6ThkwFx!Ixn?EKNu_-oS&SXS^}0#;9*E)
zNaA5gW=P>-NM%T4XGrH^$Y981XUO7V$Y#i4WMGQXV`s?aVaQ|1XJiluo0OB7m#!aN
zQk0pO?o^tYlagA*!%)Cb$jHE`17Z~MFcdT7@Gz7xlukBhkyB@6VA0g$<zi<j<6$Ug
zi05IbV9;b_5OB`V%S)}u%+FIuOU%qkO_|6mCCtbmfUv<oDJwO(WTJ!o<Zwp$$<>TX
zllL-8$TBjpXn2A`kUu!J1ld1~3{o1C53-0$f+f?@B_%a9Cm&>yROLxeE%C`uPRt3&
zFDhYVVAjy|WMtq6+X@aLaM(<?XVMjCWDtQ1d*-E<IHsf&r4|=Yp1`Dm>QG2fOn$&*
z#KXwImRL}bnwP@JpgZ{hqsZh%%#y5(3^E#?lNT~eaWgV-l;lH|GqV`hGct&Qt;o#R
zcPdRwOD#%G2`|blNiAYzU@ZqR7#Ud8a!QLc7!(;~7-Sh38RQrk8JIwcfq{X6iGh(p
zkwJ-pkwKY(fx(S|iGhiMfq_eFI|HMZ_ErX_jbJq@3=9l>49pA+4BQMX3_J{+47?1g
z3=9ln3{3SP<qT>J>I@*j1vZwEfssLjL6d<AWGLfw24)6!1_p-fT3Z;HwlOdtXW-q<
zz!E9Mx}AY-|855MNapPf96lgP?QIO4AbJ}E*ER-jTNyz{h8#N(SzyKj5og}Uz_X2k
zSBP&L1HTpPZU%wK`t1yYlB~=|+Zcp|gtsvWNwTsav00JWY;d;hHU<%}Vo{cD3?kbY
zM6K8$#*2YW+|D2<Bn~o(4P>UoHU^<>45Hf@B%w;SF-R?E;PU}{L3%qwJ=^|`42%pS
z3?~>)Gq5l)Gl0U%j)9+nfkBXgi$RD%gh7-+mO+d`l|h`rfI))6j6ssYmO+XkkU^SZ
zHiHbqJ_cEa6AX$Bry1lK&M+u2Tw_oIhiwo82ZJobY6dL^Z3adL1BMw4It;oDObliW
zlNj_EbQzc#Y#F*4^aB`l8CVzs8Oj+97z`O$8D=x+G8i!!Gq5q7Vc=pgVK8N21cf~`
ghRndR#VqojVH-OG3m1bq0|NsK10xt)fTP+H0CpJsY5)KL

delta 1175
zcmX@i|DVs{)W2Q(7#J9g8A{n1m>3zvi;MINit@8kON{h`QVUB{i%awa9D~Ey8CVz@
z1hNv#67_Qu^V0SGld@8iOV}CMChIfHPwa}7;$mQC;N@Z9WZ+|DVAjwK<78lD5a3~8
zXW*FlJXoL0wIVsSpd>Rtub7=df{{TOY*J>vzNbH2hKoUpL57_{nvp?n;(j?+9tK$k
zxyiZAN(vkd3XBW_ZY2c@#i>PQsYME@MMe2VTnyq2N+1iBC-*Z;)Uz|FGBSvQjm=9f
z(GLcz49-u^PA%bLP+?F9snlR(VA1f@3<C*h@i1sJ=rA(yq^Fkn<R>TQ1mqW$fSvBi
z#h}Mvz|Nr0$iR;<4{Q<-gCT<vBLhE7k7G(oQEG89BZI_bcNPf_E(Q|@Gj;~k$?+`W
ztUL_n3>K5iSTr;^7_1l>m}2y}7;G5q*coh50y4OyC^Ijehryn~Ve&>6BW896r^($+
zQko#eE<6mb3~r1J>}82LrK$dDj0|cTK42#y#ld7oR$*~#E(S*iB@PBpMg~S55ZjxF
z!H2<j@?#cDE)drr#0{7%!zwQi;s)_B1T$DLGH{gSL+l5IeJBq@7(@7EH&#Pt4u;6d
zdzs`!IT)fD8CW#+c)7S3Vj1Gu8R8fj#3m=OiYf6hBrqs5GO(5xWtOCZB$Id;l0k9L
znwC>qoWa46I{7`5C_7s*INT;XG0v?I&Mz%WPIb%7No8c<1f?lGkXINK85kLu85kK@
z85kLuK<R~nfq{vEk%5zei-D1Wn}LDBje&`QiGhKEOKUp=kCygU2L6p;HG&Kb415gC
z3=9n13@i+w2<BxFVqjnpgQ#W@W)NWj0WPqq^^6RR45AEt3``7S3=9k`42%roAmbUE
z7+4tC85kIjX>DQP-^L($oPl>YgLtHn{B{P#{ks`dBAK@{sQGAbW6-pf5oBb@u>+9>
zW-L(U+Zc4WF&GP3Zey^vV%^Q)7%9ohY_x;Hc{_u<kjFL#FG*GwqiqacLiG?1E0_ae
zv%%T2+Zg=7szq70G5Bp`2()5@7#{*MQ7B?NgS#Xf$dssU3|`w90=F^5K;^eFBra#*
z^8vd!1?1w542%pS4BHuYF^DrTGl0U#ih+-TfuUZIfr~+iL4-k+L6$*`L5V?}L4!ep
zL7zdA!I?pdp_f6LVJ(9U!*&K)hFuJD47(ZR8ICe2f&(;&fddpi&;XTXn8lFBkj}u!
zpu{khA%h{4fr&wbp`Rg(A(MfbL7$<6A)6tSfrY`Dp@boaA(w%bp_f66Ay0!LpMi~G
hHv<<#0Yf1JBSR4=Mj4nzzB4RkXAlR)bul<rO8~9@;}rk^

diff --git a/serveurFTP/target/classes/sr/projet2/Request/PWD.class b/serveurFTP/target/classes/sr/projet2/Request/PWD.class
index bd2e0d30b96f623de53d793640eebeab645495a7..f9904b7dff6239f671dc5904f77e92cd449af897 100644
GIT binary patch
delta 700
zcmX@Yd7Lxm)W2Q(7#J9g89ccdgc;O08H5<rxfnDUG}#%nI2g3K7+4r|Kzv<x20bnY
z4hA(227M5101`ChU@!u4jJX(07)(Kg83%(oJA(x~gC#qI)x?<iiC2SIm^C!RCfhLU
zr@K}prxuiC=I0eNGH?awmlh?bx@G31GBR)kguCcvC6*=fFo-kA^Du}qh_N$R^Dx*j
z*fKH*gCz7b^YuOb;RY}=2)LCLC={m_m8BLbq!tzB7lE|e@i5pkI7}8~k`iKMU^Ox|
zS5V?%aAa`eVQ^+}nY@unL6wKWmBEFb!HtK(oxzTW!Gl4bkwL&YKQAw}A~QcvAuTa8
zCpBdvucR;|g8<mxoW#6zegCAa)Z~(h_VSE!6Vv1-S28LwGct%yZe$W+44ZtH(QtAp
zljUSrCN*wG29A>a;F6-uy!6TMm?Y~N8Cc7UGD}h!8CcVDN{cfX6d8mVgc%qaL>L$u
zm_YtyU|?WkU}O+ykYHeBkYr$BaARO%U}9ik;L_U8z^J9Ym4Rs^SdA0|0|OreGXnzy
zCj$!u7Xv2)H-j_-1A`buHG>R;ECUE|flXy(U}TVEsF!D80vo!Uff=kURBH<Z(>4a?
z;|#pJ8CW8PShq8<?T3i5?`GhL+|Ix$#I=oq8zRKBje%Q;cN+uuHU_?J4Ezv5_H7IT
z%Nh85!1@J2`Zt38<Hq30z{0@H0CJ}i0|x^G13yC~7lQzU2!jZN4TC6y8-pZ+CxbYH
z7lQ;t2!j;d@m>sE3<?a242%p6453hOC^0ZFa4;~7l&~|fa4{$|Ffgz%FoLlPI51QJ
DIb?Fe

delta 799
zcmX@kd4yB*)W2Q(7#J9g89dn;m>3zvii`9Mit@8kON{h`QVUB{i%awa!d=)ISSA}X
z2`jKOurV@7VNp{AQ9CgvUW$u>nSqywfs=uck%3u5GmMjgkwJimft`V4;_e_FF4v0W
z)Pj=C{Jdgz1_?$6;jF~6ME%TseNTV53>SkGgA6-^^yEY)MOGdLSq8buO-xEo91IGK
z3<7Q?1q#KfMP;c)3aLd!`9)j|;tWb4>y#N8L^XWC#^ogDrRxWm6lLb6TWf}aj8o-d
zP-9S^yobq<jh#W0kwJViAG5d=2ZJ^v1FMm#xq=cGg9d{VNTnVRgFb`7WHn|rE|8cJ
z4}&p-$>g_8mh~JAW{eE7N(!093MCn-3dyBKMX7lu3MrXIsmUezMU{HIU>z1b43-QA
zj0_wl`4A^?F<3L$vNPB)GKhg)mzl5cRGOBST9ld+UX)pqTExR($Dqu}z*-LCfmA#2
zFgSvOk2Ni)v^ax<!I_akz?nZkFE6zsGe1uuEip4EHD$6OqkesGerZv1s#|7GDkB3&
zK)8z@$OZ;Q21W*E21W)}21W)ZP{=bdFfcJNGH^0*F)%W4GcYi?F)%SOF)%Q2X>DiV
z(bC?^z`qf!Mv#GlfscWifq{XOfrWvKfs=uoL5P8YK@6grL6|{=0R*_frZUzuFfxcT
z@G&qkh%qoQurM$(h=Yya!N3C65Tvz*fqxr=<Z%Yx-3;Q9Lh{=g6!$~KRCY6HL<(tb
zXV8K0b+<7X3Yl(WFx<vqzKy{OBB-*B!G1XdpAT5G6G-z$21W)E24@C025|;vhG>v`
zl^8e}7#R2&xEKT&L>NREEEz-@oEgNxO57PF7y=ojko*t?^@BSD7lR9fD+42g8v_Fa
T2LrQ6Av=ROD16+(A>jc4iY${|

diff --git a/serveurFTP/target/classes/sr/projet2/Request/TYPE.class b/serveurFTP/target/classes/sr/projet2/Request/TYPE.class
index defc04d7041d592c233da7c8ed927073ddb924f9..337932a35eb6017a6306acebe34a6bdb656a7327 100644
GIT binary patch
delta 1157
zcmZ3?dxp3E)W2Q(7#J9g8Pd2I<QPmi8DtquL4+9>gE@l*JA)+$gB2G8D}yx`g8_pL
z2ZJq$w&P&1=U{N)U~uGMaN=Na=3sE)U~mQLaN}Tb=VI_+@B|TF><r#q3}Or>91K1n
z+LwdD4@CQOFa)qO1hO*(u`@9QPmJxI%*Pna!mObgHd%^A$AO(8gpq;EwIVsSpd>Rt
zub7d6D>%QjC^^+FGbfdifiomBz*R3Ru`H2?L4`qwhe3fsk%vKvL7AN)l!qaVA$)Q^
zqnI-zgMeE}fkJU=QCVt{LTXV_ei2A{1P?<bLlh$eqazPPG(!v{1EVV=1EVJ+1EUWk
z1FK`Ov!^E`1DmUpvx}$m<oQg}MvM%sIr+(nIXn!p3~`JMq9z6g3YmGy`9(#k$t4OU
zl?ADKyj<)I@jMI(3=upGi3~cE<CvxN85uZ@3=9-PDhpB-co>oxk{KD8^?12>7*ZHg
z85sne^YijjD>C!*6w(qib5c_#@=6IaG6;Y?rJs|Sm#*)hl$DxXGSNX^1W7Qsq$o2l
zosmIq;s&|Nn;Df@7#T!0CY~4L=g3Gb&T!68No8bU*3k5v?9Ze)`8<=MCL@Cw*vQO$
zeW%j2wA7;1l<=a=lGGwb2G(*AgOPzXEvK|NWAZd+%gK+JmFgK38Dtsc7#JDk8JHND
zKtapEz`z6wT`<kapu(Waz{sG+z`zj6z{J4Jz`($-wVi=cOM5E=la|g_2Ih@mh3X6p
z3_=Vn3=9lh3@i-X44e!+415f{3>pj!3<?l!44MpD3?RS{wuTX8R6W=xCI&_ZZ3Z0%
zCXhXh#~7GF8W=^jwlFYlV_-SXz`L7)HByLeI|KWEtt|}9K1{aS+ZZ@jGcYj3F))BF
zb!1>*&}3j>aAja%FlS(3@Px8`7#J9WwS_phF>uXf&}X(?&Y-0&#0};tve+(XsF%?e
z;sJAoS#6gy@M#P2f_bcLwlb?gZgm0?3=AL#F~~76Fo67Nz`(#@sU^g>m4SIVgQ=Df
zKbWDTB_sf5C~FA`f*Dc}4+sefZ(|UFvbQmaZiF&-Gl)gjZ)Xq}lGw%|3G&xA21y~Q
zZ48pz7^G1&EN9^J0f&GLC<Hb#FfoWQTw~;9U}d<@$OfjF!R`uT5Mf|o5M<zD5MmHv
z5M`LdAkMIeL4si^gA~JR25E+M46+Pc7~~kXGbk|ZWl&@|z@S{naE3vJ;TnS~!*vFA
zhCd7%jBE@#jGPQwj9d)bj3NxW;0P3BU}EHA;9}5a&|_d^U|<x5Mx{Oj1A{aJpU7VZ
pV|E4uMqXZCE;$Yk4vwD;VukDstXvF+;OJpwU}a!rFaoC&V*q6*#lHXm

delta 1099
zcmX@ZyO@{v)W2Q(7#J9g8PeDpm?j@!l9FU+U}0ns$Vx0r)Xz!GOV{^L%1TWxVP{~Q
z{FX_6Vsp0&7Xvc`KMw;pg8(A~vxa6ECj%pc5Dx=80|$sD!o$GHz%`kVF_@3bwIVsS
zpd>Rtub7=dX7WWwF%B*UIR*uG2KmXd%!;f$42ld&lkJ$56gU`E7#RfIN(vN;Q;W({
zixg6eit>xN7^E50Ko+S_PGFXB;$qNb&}L`QLUCPiNl|8AIuC;mgDxWjM@C|ChI4*O
zD%fG391Qx542+H-eTF;?MhwQ2JDC;rIT%bC85mtT7|a<N7(F={EEyRXeK;7b85vj|
zgPlD+IT&mi8Q5H%oLxMfIT-9GYcWZSaxgeDGO*_4Cnx5BeBjK(;KJZKc@?vvG6#b@
zBZH`kfq_D1UUGg>QEGCDLP=#osva*F7lS8*H#>vZ<lD@WQ9KMj4C;&wtmQ?SC8;18
zKOP2uPzbW7<&+j@urmZQGKeDr9pWvg(#)Kc)FKXsU`7T`BLf44kjjEo1uljF1~m{7
z#={WK5HXpB#Zs7qA&QZK8Ek0)Lktf?EJNI6TNWiT4u%9q1_9^%yu8$k%=|osw8YGu
z)Rf7oj5?DSGD_AnC^9fIFf%YRure?)FoB|wfq{Vu6oFuxk%60mhk=oSmw|yHl7WeV
znSp_UUu!!9pO*Gk20<;Itqj5&!3sqg7#M^YSQr=>xENR%xEVMZco_H?cp1bP7#I{F
z+8D$cBp5(|A8ZXH$f$a-O-u}o43Z223``7C3=9k`42%rYAR8IyGO#c(F)%Q^)7ruy
zxQ#*fI0Nr)2I)v4<?Rfr`?a<(2uJ#CW6)R)GLxYmtdoJkk%56hn}LDBm4Si5oPmMC
zlYxQ3nSp`9hk=2?Ut36T8-u|t2Cd}`-r7PY+ZgH%W-+KQXRy~6G6PGfEN3v*7P0`d
z6_+!pYYACxWe{G@V5%i#17_%G3E6=e%34AWV1^XLaZW;R+Za5c>}?Fb8==hI3;~fs
zLE9NZK<?ef5GoY8jUjX!Lo`Hjz2G(mr)><r%Nh85z+Q_7d2J&D6N3oDCWc20(hQp!
z?t^J&22c<OF^DiQFbFbmF$gh;Fo-f#Fo-kMF-R~pGDtDBGe|RZF~~AZV31>&%%H$9
zlR=ST4udko3I-L1O$@3Gn;Fy@t}<va+-J~ac*LN^@R&iH!Q(B1E;x?FAOQ`HqsI(f
x42cX$42%rP3=9mC47?(L7>wB&G`YFCxj8sEIDRpR<*_qJb1^V7q=2J86#xmz#Iyha

diff --git a/serveurFTP/target/classes/sr/projet2/Request/USER.class b/serveurFTP/target/classes/sr/projet2/Request/USER.class
index 441896aaf8363cc9b9dbd90ec1aab6ae7bb978f4..f886618a06165804b7a61e59a98f8fac54c7ad71 100644
GIT binary patch
delta 748
zcmaFI`I<B6)W2Q(7#J9g8Qi%T1R2yg83Y*AL4*bugC>I(JA*a{gANx1D}ycvgB}-y
zK7#>B+>nF8h>O9P!30E@axj>2FqpG5Sg<o#vNKpsjP0Gw#~94Qtf3h;S(jPg%C#an
zwV)(3Kd+dPfh#z_v?w{%Ei)&Tk%2Qb*fmHmE3qt*he4b{o`*r0L4=1vltGN0!J3D`
zhQW4nKBJf+BZGijNr6IfYEfBgkwR)wQGO9fxg8?|XJTG{US)26X)!y4Jr9EegCh@v
z6NB^Q*-R>?><lhE46Y1zJPd9O@{9~Zrp5*erFq$T`Q>>Ep~b01yj+Y70?zq)d8rkd
z`FRRyiJ3X6DHD06gc%tGKrYhHNz6;v_fN`7O)i<}AkQc_af96C&5TMcj0~b06VHnY
zBB=^4Day=CpKQaVI60lkkeQJ|Y;q%$SUn>HYk5&-Nh%`)Yg$feaR!4Tg8+jd10#bF
z0}}%i$g>O#3``*Zf@wwuaRvznMg~a+28KumCI)5(1_pku?F@`s+FKczv~;#IFmD7a
zlwx3D5Mp3qU|`^4U}4~9;AG%o;A7xrkY-?DP=IJ-kYSLmX8-|yusw_*v%oenF)%X7
zF~~D8f$h1(z|6qJz`zivwS|Fc8w1O62HxEatdT-&+ZovRYi(g*7UI~(z&Vpa1|rWT
z#J!Dy2g=^Yz`LA563P+cLzCe1sRx_H4>D;Z10#b7gFizM11keF1IYb)4BQM141x??
z3_=Vd45ADQ3}OsA4B`xy3{niP4AKn#3<?ZE3~~&?4Dt-I42odCi7_xS1T%0kC@?58
sfIJij@+AWUgAzC-SVdGso!A*zxfqlg7#LU>7<m|285kK<z(J-80F*6xqW}N^

delta 765
zcmaFO`HqwK)W2Q(7#J9g8Qj?!m?qmZNy)G?urM+RWF?j*>gOcprR)1AWu+#UurshR
zGDuApWE5sEN-Zo+EiRcD)T_e9z|6qU!@$iTz{tR?p&7=>z{nuP!@$nK0b+^pFmN((
zO}rn>$K_g)oLW$lnV(n8&LA^+KBE{n7lRyw0y~2|BZJ(;7&%rR21N#?$*Y)@6gU`E
z7#RfIN(vN;Q;W({ixg6eit>xN7^E50KsKpQKEouT&%vO{$iSJHm!DUen_pVY#h}fg
z%g&&K;_%>-qRhN>9tJ%I{mI{%6uCe)8uBn0F&IylU^ZmtU@)Ehj8UbYi@}`1lAXbV
zkwFaX>CAk6r_!{v)S}ds@S@C;)FK`RD+YB&2G(*A52V_Lhrt%)W7f2s(&7vb275*Z
zAyZ=mh0?t2y!`S!h0x;EB3>>I21iB)0q6X@ywr-!{5*xU#LS%36h;QdR7M6-ADC61
zlieBRCKoY^)iWqEFfuSRFfy<*FflNJ!jOT1fe93XV49JEn}LUck%5<ifgzHCiGi7c
zfq`FZI|HAV_ErW#EuF0l!W+Q~MHv_vgcw*D7#O%1SQxk&I2m{t_!xK@#26SD6d>9d
z#2F+QK!6`?4I{{?dazAQ42%qt3<3;H3{ngX3@i+c4ANj5uQD(*FflMN#A$6|5ZuNf
zdz^uHH-mJfkn(m0)%{vq7=(p1wlQeUWRQW#8wi<fV=#lVw=q~RXHbW7gzV5H_<X<y
zIY@#`+Q`7jAj06!5X2zOz{~*hi4g<O<a!p-05b*&21^Dh23H1Y27d-wh9CwxhF}JH
vhFAtgu+PLG&V%|an1PGIiNTqHk->$5fq|2OMMNcnok5z5fsw%#97t{e!v2Jx

diff --git a/serveurFTP/target/classes/sr/projet2/Server/FtpConnexion.class b/serveurFTP/target/classes/sr/projet2/Server/FtpConnexion.class
index 47d2df0040fc2b08f3e6bb61701ac251be384ea2..89528432d1ca93fb9f56329e4cc3032c397811aa 100644
GIT binary patch
delta 2594
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
ZGM9mkVIJ5FOt(yChzEzm6maZJ1pwaS%rO7}

delta 1892
zcmbQE_Cdb>)W2Q(7#J9g8BTLCxG~gnGPp9-u`|@OGc<59G%_@CF|aT+b1^V8w18w<
z*%{i{8QMWI9b61t44qsIoD5wcnQjo#!@<xCqWd@)`av=iK*U6LhDjU@leri~8K!VC
zxH3!yv8I8HoX*AITF)?pgJC8Y!z_l`><n|b7~~k{f{1w>4D;C;7H}~rf%r-c^Een5
zaxg3csawp>umnUe<zmoaSOy~IaWE`rXIR0-pbO&bf)uZ0XIRC>U<lG|2;#41XIR6<
zU<%@!g7|CM8P;(zSTfAj1CjGM7}m2hY~W(B1sPxqQm~PoVG|dFBS?cIh`*VgVGBFM
z*2#&ClQzpRNia=rXL&aHC95JwAVU-ngFA!AWFa<l(QP~o+ZlH7Fa$E}1QEM<7(5xg
zCdaW^*zRW70}|N_BKGkxcr*C$F!(a~F)}df^Dy``1TZoP7#SHTxP=5L1iJ=>xd!oa
z@i6RXNaSHSzz{Y0GMm0uAczwQvh5&<$YZGDVMt&|WMtrQ3=Q#62=NJKXE?;eaG2r9
z<al;z-VmQ)kX=W47>+SSO%7o<V?NGsVsbCL497{3&OnA!lQ*&-n|y;qj+v1`Zt_7c
zxy>@1w;A1C8Qd5c7+4vYK%Qb?U|<4y0Ze-{_<(6&20t+E&k(@Cz`)JG$Pma7#K6Q5
z%)r1fnSqUgiGhK^eX<+3W1Nt{RtCY1V8tN}3=DD%><kPHQVc8%(hQsoG7L%#vJBP?
zatsa(@(gYa3JjqP3=Cor?F?ZI;S3<)4t543Lj(f@0}BHqgD3+dLnK2K$hyhTxGiEp
z=1MWJF)%QwFmN)cG6*neFbFfKF^DjzGsrP$!p#(6;9`hoh+$x4U|^7knjXu*z`)MH
z6wJ;b%7tP<977ZXBSY}yDjwH*kOf){Tnr2hx(qA~1`O;BdJG&4`V2e_#tb41CJd4c
z<_t0nrVO$SW(<l9=3oo87+4rM7+9bdiZHM;#4`jiFfz!(#X!!5coF0XZU$y|b_P)v
ze|E6{5*QLe{$pTZYGY7fWnf`oU{uf+lG(-}JCi|pH-lWH)^-MYU!83X3d<QeC&%%M
zGckOaT+XY)#BgfzTwYbHC0bh;_-8WoY6}^_^caHl7=iQ{FK1}c7BYcJn1UqCKoaK5
z8L}t;;gw(vnk>qvTCbxm<N#Kryqm!hq{s=R$ay(~u+|m^J|UNF5XLqJ5l{p(Gl0Tr
z9fLLl1A{FCCxab>5Q9B~7=r_YB!eS^5`z<iHiI*RK7$K`5rZp(HG><26N5WLAcF@(
zD1#?M1cMhtB7-+W27?bnIfE}lHG^M0Lmfi^Ln}idLmxvB!*qsVhS>}u4D%R58J07I
zF>GK6XV}6J!LXen5|lp}PBKI@oMnh%xWEw0aFZd9;Q>QD!+VAVhR+O%4Br@%82&RP
zGjcGbF!C^@GV(KIFiJ3FGRiaLf+MSsfsa9mfrTN7A(?@RK^x3UVW?+faAFW<NM%T4
zU}6Xa3#KzLGi1QU%E4k849pDE!K_RMCWZ}QRu%&j!$~kJn}Lbp0bIv>uviWQGb1Q%
zBr)WIk~*UTG%+$TDlp`MQwb<V@F*~FNlK`y%1cP7O7Np3&U}UfaN_I}5CbPpHgK9Q
z0Q-dp%w~le$;eR1Py|xTz`&r-zzC58#oh*ZmV{_7#;UoPp#+O&4kXR>U?a=0>Mms{
z!=jsi4Vu-JST&bJG9Uv3g9!r@*b+7^maPo@prpnGPHJ4Bz^iAdVPIvbMKXd7?)3^R
nMlfR<!BEe@%Fuw-gi3}gEItrK^1l+;X-!DF5kX%K_Gk?N88{yf

diff --git a/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index c842725..064918e 100644
--- a/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -2,12 +2,14 @@
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Main.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/SYST.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/TYPE.java
+/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/CDUP.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/USER.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/LIST.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/AUTH_TLS.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/request.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/PWD.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/PASS.java
+/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/CWD.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/PASV.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/AUTH_SSL.java
 /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java
diff --git a/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar b/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar
index 85cc54b1bba6e2606a9dd8216b5f5abdb3ce1777..d3c30b553baed36eb65ed7a948c1d17d1ba8c290 100644
GIT binary patch
delta 11349
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

delta 7757
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
UvVq(r$soy~%Fe*B(gef<0J8=zGXMYp

diff --git a/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml b/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml
index 8f8ab53..04f2f66 100644
--- a/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml
+++ b/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="sr.projet2.AppTest" time="0.048" tests="1" errors="0" skipped="0" failures="0">
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="sr.projet2.AppTest" time="0.027" tests="1" errors="0" skipped="0" failures="0">
   <properties>
     <property name="sun.desktop" value="gnome"/>
     <property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
@@ -16,7 +16,7 @@
     <property name="sun.java.launcher" value="SUN_STANDARD"/>
     <property name="user.country" value="FR"/>
     <property name="sun.boot.library.path" value="/usr/lib/jvm/java-11-openjdk-amd64/lib"/>
-    <property name="sun.java.command" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter7079129417024759708.jar /home/hocine/eclipse-workspace/serveurFTP/target/surefire 2021-03-07T15-29-07_870-jvmRun1 surefire9845237247780243398tmp surefire_015024554498971470310tmp"/>
+    <property name="sun.java.command" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter14735518812710354340.jar /home/hocine/eclipse-workspace/serveurFTP/target/surefire 2021-03-07T18-57-43_678-jvmRun1 surefire10410808926169169035tmp surefire_018045902178909471772tmp"/>
     <property name="jdk.debug" value="release"/>
     <property name="surefire.test.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/test-classes:/home/hocine/eclipse-workspace/serveurFTP/target/classes:/home/hocine/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/hocine/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:"/>
     <property name="sun.cpu.endian" value="little"/>
@@ -32,7 +32,7 @@
     <property name="java.specification.name" value="Java Platform API Specification"/>
     <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
     <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
-    <property name="surefire.real.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter7079129417024759708.jar"/>
+    <property name="surefire.real.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter14735518812710354340.jar"/>
     <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
     <property name="java.runtime.version" value="11.0.10+9-Ubuntu-0ubuntu1.20.04"/>
     <property name="user.name" value="hocine"/>
@@ -57,5 +57,5 @@
     <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
     <property name="java.class.version" value="55.0"/>
   </properties>
-  <testcase name="shouldAnswerWithTrue" classname="sr.projet2.AppTest" time="0.003"/>
+  <testcase name="shouldAnswerWithTrue" classname="sr.projet2.AppTest" time="0.001"/>
 </testsuite>
\ No newline at end of file
diff --git a/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt b/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt
index 70439b2..cd1d9c7 100644
--- a/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt
+++ b/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt
@@ -1,4 +1,4 @@
 -------------------------------------------------------------------------------
 Test set: sr.projet2.AppTest
 -------------------------------------------------------------------------------
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 s - in sr.projet2.AppTest
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 s - in sr.projet2.AppTest
-- 
GitLab