main () { ... char* composed; trataPut (received, composed); send(sockid, composed, sizeof(char), xbytes); /* * trataPut * Trata um pedido de PUT, no lado do servidor. * @param 'received' Buffer que contem, integralmente, a mensagem de pedido recebida. * @param 'composed' Buffer (nao alocado) que ira conter a mensagem de resposta ao pedido. */ void trataPut (char* received, char* composed) { short type = ACKOK; char* buffer; char* data = memchr(msg_getDATA(received), (unsigned char)'\0',msg_getLENGTH(received))+1; char* filename = &(msg_getDATA(received))+4; int filelength = msg_getLENGTH(received) - strlen(filename); write_file(filename,data,filelength); compose_msg(buffer,composed,type,0); } /* * compose_msg * Compoe uma mensagem para enviar. * @param 'data', Buffer com o conteudo que ira ser colocado no campo DATA da mensagem * @param 'message' Buffer nao inicializado que ira conter a mensagem. * @param 'type' Tipo da mensagem * @param 'datalength' Tamanho do 'databuffer' * NOTA: isto esta do projecto antigo... que nao funciona la muito bem. PODE ESTAR MAL. hellifiknow. */ int compose_msg(char* data, char* message, short type, int bufferlength);