From ff1455a7bbc7bb0394b063f2dbdcd3e5effd8447 Mon Sep 17 00:00:00 2001
From: Victor Perszel <vlp14@inf.ufpr.br>
Date: Tue, 1 Dec 2015 22:27:55 -0200
Subject: [PATCH] receiveGET concluido

---
 src/messages.cpp | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/messages.cpp b/src/messages.cpp
index 5c9da62..df99bf0 100644
--- a/src/messages.cpp
+++ b/src/messages.cpp
@@ -522,6 +522,30 @@ int Message::receiveCD(unsigned char* intendedDirectory){
   }
 }
 
+int Message::receiveGET(unsigned char* fileName){
+  SubMessage resposta;
+  FILE *file;
+  char* tam;
+  int fileSize;
+
+  if(access((char*)fileName, F_OK) == -1){ // Verifica se o arquivo existe
+    resposta.setData((unsigned char*)'0',14,0); // Manda um Erro
+    send(soquete,resposta.objToString(),resposta.getSize()+4, 0);
+  } else if (access((char*)fileName, R_OK) == -1){ // Verifica permissão de copiar o arquivo
+    resposta.setData((unsigned char*)'1',14,0); // Manda um Erro
+    send(soquete,resposta.objToString(),resposta.getSize()+4, 0);
+  } else {
+    // Calcula o tamanho do arquivo
+    file = fopen((char*)fileName, "r");
+    fseek(file, 0, SEEK_END);
+    fileSize = ftell(file);
+    // Manda o tamanho do arquivo
+    sprintf(tam, "%d", fileSize);
+    resposta.setData((unsigned char*)tam,9,0);
+    send(soquete, resposta.objToString(), resposta.getSize()+4, 0);
+  }
+
+}
 
 int Message::receiveData(unsigned char* fileName, int size){
   int numberOfMessages, messagesCounter = 0, seqCounter;
-- 
GitLab