GitHub CI: update list of container images
[tinc] / src / sptps_keypair.c
index 17d26f9..97d5189 100644 (file)
@@ -45,9 +45,16 @@ static void usage(void) {
        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[]) {
@@ -62,14 +69,14 @@ 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;
        }
 
@@ -80,12 +87,12 @@ static int generate_keypair(char *argv[]) {
                        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;
        }
 }
@@ -96,15 +103,15 @@ int main(int argc, char *argv[]) {
        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;