Fix size of field.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Thu, 13 Jun 2013 11:14:02 +0000 (08:14 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Thu, 13 Jun 2013 11:14:02 +0000 (08:14 -0300)
tam_dados_val_chave is, in fact, only 4 bytes long. Due to a known bug
in the decoder used during reverse engineering, the value of
tam_dados_val was appended to the value of tam_dados_val_chave, since
the two keys have the same prefix.

doc/FORMATO
rnet_encode.c

index 3533068..270c3f4 100644 (file)
@@ -39,7 +39,7 @@ C: (6 bytes) + deflate(hash)
                cliente = "201104" (será a versão do receitanet?)
                dados_val = parte do cabeçalho do DEC (desce in_cert até vr_totpagamentos) bytes 112 a 750
                tam_dados_val = 0x00 0x00 0x00 0x00 (4 bytes)
-               tam_dados_val_chave = 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 (8 bytes)
+               tam_dados_val_chave = 0x00 0x00 0x00 0x00 (4 bytes)
                arquivos_restantes = 0x00 0x00 0x00 0x00 (4 bytes)
 S: (6 bytes) + deflate(hash)
        header: 0x01 0xII 0xII 0xOO 0xOO 0x01, II é o tamanho da entrada, OO é o tamanho da saída do deflate
index e9e5bdb..369e059 100644 (file)
@@ -87,7 +87,7 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg)
        r = rnet_message_add_ascii(msg, "so", "GNU");
        r = rnet_message_add_ascii(msg, "cliente", "201104");
        r = rnet_message_add_u32(msg, "tam_dados_val", 0);
-       r = rnet_message_add_u64(msg, "tam_dados_val_chave", 0);
+       r = rnet_message_add_u32(msg, "tam_dados_val_chave", 0);
        r = rnet_message_add_u32(msg, "arquivos_restantes", 0);
 
        free(hash);