src/commom/pacote.c
void montaPacotePelaMensagem(pacote *p, char *b, int tamMsg){
  // inicializa pacote
  limpaPacote(p);

  // identifica tipo de pacote
  carregaOpCode(p, b);

  // monta pacote de acordo com seu tipo
  switch ((opCode)p->opcode){
    case REQ:
      carregaNomeDoArquivo(p, b);
      break;
    case ACK:
      carregaNumeroDoBloco(p, b);
      break;
    case DADOS:
      p->cargaUtil = tamMsg - sizeof p->opcode - sizeof p->numBloco;
      carregaNumeroDoBloco(p, b);
      carregaDados(p, b);
      break;
    case ERRO:
      carregaCodigoErro(p, b);
      carregaMensagemErro(p, b);
      break;
    case FIM:
      break;
    default:
      p->codErro = (uint8_t)COD_ERRO_OP_ILEGAL;
      strcpy(p->mensagemErro, MSG_ERRO_OP_ILEGAL);
  }
}
// extrai dados do buffer e os organiza na estrutura do pacote
extrai dados do buffer e os organiza na estrutura do pacote
extrai dados do buffer e os organiza na estrutura do pacote
void montaPacotePelaMensagem(pacote *p, char *b, int tamMsg){
  limpaPacote(p);
  carregaOpCode(p, b);
  switch ((opCode)p->opcode){
    case REQ:
      carregaNomeDoArquivo(p, b);
      break;
    case ACK:
      carregaNumeroDoBloco(p, b);
      break;
    case DADOS:
      p->cargaUtil = tamMsg - sizeof p->opcode - sizeof p->numBloco;
      carregaNumeroDoBloco(p, b);
      carregaDados(p, b);
      break;
    case ERRO:
      carregaCodigoErro(p, b);
      carregaMensagemErro(p, b);
      break;
    case FIM:
      break;
    default:
      p->codErro = (uint8_t)COD_ERRO_OP_ILEGAL;
      strcpy(p->mensagemErro, MSG_ERRO_OP_ILEGAL);
  }
}
void montaPacotePelaMensagem ( pacote * p , char * b , int tamMsg ) { limpaPacote ( p ) ; carregaOpCode ( p , b ) ; switch ( ( opCode ) p -> opcode ) { case REQ : carregaNomeDoArquivo ( p , b ) ; break ; case ACK : carregaNumeroDoBloco ( p , b ) ; break ; case DADOS : p -> cargaUtil = tamMsg - sizeof p -> opcode - sizeof p -> numBloco ; carregaNumeroDoBloco ( p , b ) ; carregaDados ( p , b ) ; break ; case ERRO : carregaCodigoErro ( p , b ) ; carregaMensagemErro ( p , b ) ; break ; case FIM : break ; default : p -> codErro = ( uint8_t ) COD_ERRO_OP_ILEGAL ; strcpy ( p -> mensagemErro , MSG_ERRO_OP_ILEGAL ) ; } }
extrai dados do buffer e os organiza na estrutura do pacote
extrai dados do buffer e os organiza na estrutura do pacote
// inicializa pacote // identifica tipo de pacote // monta pacote de acordo com seu tipo