Skip to content
Snippets Groups Projects
Commit d92c0afa authored by Eduardo Machado's avatar Eduardo Machado
Browse files

Arrumadoinicializador de mensagem

parent 4a560ea6
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,7 @@ int Message::sendMessage(unsigned char* stringMessage){
unsigned char* mesgReturn; // mensagem que recebe de retorno (ack, erro, etc)
char *receiptMessage = (char*)malloc(sizeof(char*)*64);
char erro1[10], erro2[10], sucesso[10], buffer[10];
struct pollfd ufds[1];
struct pollfd ufds[1]; // usado para timeout em recv
// Calcula o tamanho da msg
while( stringMessage[size] != '\0'){
......@@ -26,9 +26,11 @@ int Message::sendMessage(unsigned char* stringMessage){
numberOfMessages = (size/64);
}
sizeLastMessage = size%64;
// Cria as sub mensagens
SubMessage subMensagem[numberOfMessages];
// Atribui os tipo
if(stringMessage[0] == 'l' && stringMessage[1] == 's'){
tipo = 0x4;
} else if (stringMessage[0] == 'c' && stringMessage[1] == 'd'){
......@@ -41,24 +43,31 @@ int Message::sendMessage(unsigned char* stringMessage){
tipo = 0xD;
}
// string usada para dividir a mensagem de entrada e colocar na parte de data das SubMessages
subData = (unsigned char*) malloc(sizeof(unsigned char) * 64);
// Divide a mensagem
for(i = 0; i < numberOfMessages-1; ++i){
for(j = 0; j < 64; ++j){
subData[j] = stringMessage[(i*64)+j];
}
subMensagem[i].setStartMessage();
subMensagem[i].setData(subData, tipo, i);
}
if (sizeLastMessage){
// Caso a última mensagem não seja completa realoca subData para o tamanho da última mensagem
subData = (unsigned char*) realloc(subData, sizeof(unsigned char) * sizeLastMessage);
for(j = 0; j < sizeLastMessage; ++j){
subData[j] = stringMessage[(i*64)+j];
}
subMensagem[i].setStartMessage();
subMensagem[i].setData(subData, tipo, i);
}else{
// Caso contrario continua com o tamanho maior
for(j = 0; j < 64; ++j){
subData[j] = stringMessage[(i*64)+j];
}
subMensagem[i].setStartMessage();
subMensagem[i].setData(subData, tipo, i);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment