diff --git a/include/submessages.h b/include/submessages.h index be1cd5a17527fbedd0dd0a646b802b3b47f385fb..ea2d9ff5d93e304f1873a08e75ecdeee63a2309d 100644 --- a/include/submessages.h +++ b/include/submessages.h @@ -9,7 +9,7 @@ class SubMessage{ private: unsigned char startMessage; // Delimitador de início. int sizSeqTyp; // 6 bits para tamanho, 6 bits para sequencia e 4 bits para o tipo. - unsigned char *data; // Área para envio dos dados. + unsigned char *data = NULL; // Área para envio dos dados. unsigned char parity; // 1 Byte para a paridade vertical (detecção de erros). // Calcula a paridade da mensagem, esse método está como privado para ser diff --git a/src/main.cpp b/src/main.cpp index 459b3ee0ac4b24c379b6f4418a62fe2900dad6ea..1cf10fd1886465f11911f812ddb3103c359171ee 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -88,7 +88,8 @@ int main(int argc, char *argv[]) { resposta.setData((unsigned char*)"4",0,0); // Manda um Nack send(soquete,resposta.objToString(),68, 0); } else { - if(mainMessage.receiveLS(resposta.getData(), currentPath)){ + cout << "res " << serverReceive.getData() << endl; + if(mainMessage.receiveLS(serverReceive.getData(), currentPath)){ cout << "ERRO: ls remoto."; } } diff --git a/src/messages.cpp b/src/messages.cpp index 68eae3435f7d01db7a901dd5e2f7af69d93459d1..bc20e5b4f1b833b635584d540edd722fb396bfd1 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -544,27 +544,41 @@ int Message::receiveLS(unsigned char* options, char* currentPath){ ifstream lsFile; unsigned char* lsData; int i; - +cout << "-1-" << endl; parameter = (char*)options; +cout << "-parameter- " << parameter << endl; path = currentPath; +cout << "-3-" << endl; /* Para dar um ls apenas, é necessário escrever "ls ." */ /* Precisamos pensar em um jeito de concertar isso. */ switch(lsParameter(parameter)){ case 1: +cout << "-case1-" << endl; lsAux = "ls > " + path + "/ls.txt"; +cout << "-case1.1-" << endl; system(lsAux.c_str()); +cout << "-case1.2-" << endl; break; case 2: +cout << "-case2-" << endl; lsAux = "ls -a > " + path + "/ls.txt"; +cout << "-case2.1-" << endl; system(lsAux.c_str()); +cout << "-case2.2-" << endl; break; case 3: +cout << "-case3-" << endl; lsAux = "ls -l > " + path + "/ls.txt"; +cout << "-case3.1-" << endl; system(lsAux.c_str()); +cout << "-case3.2-" << endl; break; case 4: +cout << "-case4-" << endl; lsAux = "ls -la > " + path + "/ls.txt"; +cout << "-case4.1-" << endl; system(lsAux.c_str()); +cout << "-case4.2-" << endl; break; case -1: puts("Parâmetro de ls inválido."); @@ -577,11 +591,13 @@ int Message::receiveLS(unsigned char* options, char* currentPath){ fileName = path + "/ls.txt"; lsFile.open(fileName.c_str(), ios::in); lsFile.seekg (0); +cout << "+1+" << endl; // Leitura do arquivo. show += path + "\n"; while(getline(lsFile, temp)) { show += temp + "\n"; } +cout << "+2+" << endl; // Remove arquivo ls.txt remove(fileName.c_str()); @@ -589,10 +605,13 @@ int Message::receiveLS(unsigned char* options, char* currentPath){ for(i = 0; i < show.size(); i++){ lsData[i] = show[i]; } +cout << "+3+" << endl; if(sendData(lsData) == 0){ +cout << "+return 0+" << endl; return 0; }else{ +cout << "+return -1+" << endl; return -1; } } diff --git a/src/submessages.cpp b/src/submessages.cpp index c480c6cb122695227f40d9407e59c151274a765f..7289c31af362a7c3202fa6de316ac6ccb9386f3a 100644 --- a/src/submessages.cpp +++ b/src/submessages.cpp @@ -54,6 +54,9 @@ void SubMessage::setData(unsigned char* dataBody, int type, int seq){ int i, tamanho = 1; while(dataBody[tamanho-1] != '\0' && tamanho<64) tamanho++; + cout << "AQUI" << endl; + delete(data); + cout << "FERA" << endl; data = new unsigned char[tamanho]; for (i = 0; i < tamanho; i++){