Add more fields to the first message.
[cascardo/libreceita.git] / rnet_encode.c
index 6dc6c1e..8174377 100644 (file)
 int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg)
 {
        int r;
+
        uint32_t tp_arq;
        uint32_t id_dec;
        char *cpf;
        char *codigo_recnet;
        char *ano;
        char *exerc;
+       char *uf;
+       uint16_t versao_pgd;
+
        *msg = rnet_message_new();
        if (*msg == NULL) {
                return -ENOMEM;
@@ -46,6 +50,8 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg)
        cpf = rnet_decfile_get_header_field(decfile, "cpf");
        ano = rnet_decfile_get_header_field(decfile, "ano");
        exerc = rnet_decfile_get_header_field(decfile, "exerc");
+       uf = rnet_decfile_get_header_field(decfile, "uf");
+       versao_pgd = strtoul(rnet_decfile_get_header_field(decfile, "nr_versao"), NULL, 10);
 
        (*msg)->buffer[0] = 0x40;
        (*msg)->len = 1;
@@ -56,6 +62,22 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg)
        r = rnet_message_add_ascii(*msg, "exercicio_pgd", exerc);
        r = rnet_message_add_ascii(*msg, "ni", cpf);
        r = rnet_message_add_ascii(*msg, "tipo_ni", "CPF");
+       r = rnet_message_add_u8(*msg, "num_ass", 0);
+       r = rnet_message_add_u32(*msg, "p_comp", 0);
+       r = rnet_message_add_u8(*msg, "ret", 0);
+       r = rnet_message_add_ascii(*msg, "uf", uf);
+       r = rnet_message_add_u8(*msg, "vrs_des_pa", 0);
+       r = rnet_message_add_u16(*msg, "versao_pgd", versao_pgd);
+       r = rnet_message_add_u8(*msg, "critica_validador", 0x06);
+       r = rnet_message_add_ascii(*msg, "ip_loc", "127.0.0.1");
+       r = rnet_message_add_ascii(*msg, "versao_java", "1.7.0_03-icedtea;OpenJDK Runtime Environment");
+       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_u32(*msg, "tam_dados_val", 0);
+       r = rnet_message_add_u64(*msg, "tam_dados_val_chave", 0);
+       r = rnet_message_add_u32(*msg, "arquivos_restantes", 0);
+
        if (r < 0)
                return r;
        return 0;