Release 2017.1
[cascardo/rnetclient.git] / rnetclient.c
index 0728f89..756cee8 100644 (file)
@@ -51,7 +51,8 @@ static const char rnetclient_doc[] =
        "Tax Authority";
 static const char rnetclient_args_doc[] =
        "[-d|--declaration] FILE [-o|--output-dir DIRECTORY]"
-       " [-s|--server-name SERVER]";
+       " [-s|--server-name SERVER]"
+       " [-c|--client-version CLIENT]";
 
 #define RNET_ADDRESS "receitanet.receita.fazenda.gov.br"
 
@@ -70,6 +71,10 @@ static const struct argp_option rnetclient_options_desc[] = {
          "The server to connect to. Default is " RNET_ADDRESS ".",
          0 },
 
+       { "client-version", 'c', "CLIENT", 0,
+         "The client version to be used.",
+         0 },
+
        { NULL },
 };
 
@@ -85,6 +90,9 @@ struct rnetclient_args {
 
        /* Server to connect to. */
        char *server_name;
+
+       /* Client version to use. */
+       char *client_version;
 };
 
 /* Parser for command line arguments.  */
@@ -107,6 +115,10 @@ static error_t rnetclient_parse_opt(int key, char *arg, struct argp_state *state
                a->server_name = arg;
                break;
 
+       case 'c':
+               a->client_version = arg;
+               break;
+
        case ARGP_KEY_ARG:
                /* The user has possibly provided a filename without
                   using any switches (e.g., by running './rnetclient
@@ -466,6 +478,7 @@ int main(int argc, char **argv)
           state.  */
        memset(&rnet_args, 0, sizeof (rnet_args));
        rnet_args.server_name = RNET_ADDRESS;
+       rnet_args.client_version = RNET_DEFAULT_VERSION;
        err = argp_parse (&rnetclient_argp, argc, argv, 0, NULL, &rnet_args);
        if (err != 0)
                fprintf(stderr, "internal error while parsing command line arguments.");
@@ -526,7 +539,7 @@ int main(int argc, char **argv)
                goto out_handshake;
        }
 
-       r = rnet_encode(decfile, &message);
+       r = rnet_encode(decfile, &message, rnet_args.client_version);
        if (r < 0) {
                fprintf(stderr, "error encoding message, file not supported?\n");
                r = 1;