fprintf(stderr, "Report bugs to tinc@tinc-vpn.org.\n");
}
+typedef enum option_t {
+ OPT_BAD_OPTION = '?',
+ OPT_LONG_OPTION = 0,
+
+ OPT_HELP = 255,
+} option_t;
+
static struct option const long_options[] = {
- {"help", no_argument, NULL, 1},
- {NULL, 0, NULL, 0}
+ {"help", no_argument, NULL, OPT_HELP},
+ {NULL, 0, NULL, 0}
};
static int generate_keypair(char *argv[]) {
if(fp) {
if(!ecdsa_write_pem_private_key(key, fp)) {
fprintf(stderr, "Could not write ECDSA private key\n");
- free(key);
+ ecdsa_free(key);
return 1;
}
fclose(fp);
} else {
fprintf(stderr, "Could not open '%s' for writing: %s\n", argv[1], strerror(errno));
- free(key);
+ ecdsa_free(key);
return 1;
}
fprintf(stderr, "Could not write ECDSA public key\n");
}
- free(key);
+ ecdsa_free(key);
fclose(fp);
return 0;
} else {
fprintf(stderr, "Could not open '%s' for writing: %s\n", argv[2], strerror(errno));
- free(key);
+ ecdsa_free(key);
return 1;
}
}
int option_index = 0;
while((r = getopt_long(argc, argv, "", long_options, &option_index)) != EOF) {
- switch(r) {
- case 0: /* long option */
+ switch((option_t) r) {
+ case OPT_LONG_OPTION:
break;
- case '?': /* wrong options */
+ case OPT_BAD_OPTION:
usage();
return 1;
- case 1: /* help */
+ case OPT_HELP:
usage();
return 0;