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