From f021151c542b128eaef6228de70cfe6957c5b0b6 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Thu, 13 Jun 2013 08:15:32 -0300 Subject: [PATCH] Add the missing field in the first message. It's composed of part of the header register. It's more simple to build it as a substring of the register itself, than composing it field by field. --- decfile.c | 5 +++++ decfile.h | 1 + rnet_encode.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/decfile.c b/decfile.c index 001541d..2220638 100644 --- a/decfile.c +++ b/decfile.c @@ -342,3 +342,8 @@ char * rnet_decfile_get_file_hash(struct rnet_decfile *decfile) decfile->message->len); return hash; } + +char * rnet_decfile_get_header(struct rnet_decfile *decfile) +{ + return get_header(decfile); +} diff --git a/decfile.h b/decfile.h index 523362d..e2db191 100644 --- a/decfile.h +++ b/decfile.h @@ -26,6 +26,7 @@ struct rnet_decfile * rnet_decfile_open(char *filename); void rnet_decfile_close(struct rnet_decfile *decfile); char *rnet_decfile_get_header_field(struct rnet_decfile *decfile, char *field); +char * rnet_decfile_get_header(struct rnet_decfile *decfile); struct rnet_message * rnet_decfile_get_file(struct rnet_decfile *decfile); char * rnet_decfile_get_file_hash(struct rnet_decfile *decfile); diff --git a/rnet_encode.c b/rnet_encode.c index 369e059..d37f06b 100644 --- a/rnet_encode.c +++ b/rnet_encode.c @@ -40,6 +40,7 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg) uint16_t versao_pgd; uint64_t file_len; char *hash; + char *header; *msg = rnet_message_new(); if (*msg == NULL) { @@ -50,6 +51,7 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg) hash = rnet_decfile_get_file_hash(decfile); if (!hash) return -1; + header = rnet_decfile_get_header(decfile); codigo_recnet = rnet_decfile_get_header_field(decfile, "codigo_recnet"); tp_arq = strtoul(codigo_recnet, NULL, 10); @@ -86,6 +88,7 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg) r = rnet_message_add_ascii(msg, "origem", "JA2R"); r = rnet_message_add_ascii(msg, "so", "GNU"); r = rnet_message_add_ascii(msg, "cliente", "201104"); + r = rnet_message_add_buffer(msg, "dados_val", header + 111, 750 - 111); r = rnet_message_add_u32(msg, "tam_dados_val", 0); r = rnet_message_add_u32(msg, "tam_dados_val_chave", 0); r = rnet_message_add_u32(msg, "arquivos_restantes", 0); -- 2.20.1