diff cinst/main.c @ 399:55cbe0a482ce

merged.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 16 Apr 2014 10:01:02 +0200
parents 124f08a85532
children 17e1c8f37d72
line wrap: on
line diff
--- a/cinst/main.c	Wed Apr 16 10:00:17 2014 +0200
+++ b/cinst/main.c	Wed Apr 16 10:01:02 2014 +0200
@@ -9,18 +9,18 @@
  *
  *  The first parameter to this process should be list=<file_name>
  *  of the certificate list to work on. The second parameter should
- *  be instruction=<instruction_file_name>|uninstall
+ *  be choices=<choices_file_name>|uninstall
  *
- *  instruction_file_name should be the absolute path to an
- *  instructions file formatted as:
+ *  choices_file_name should be the absolute path to an
+ *  choices file formatted as:
  *
  *  I:<certificate>
  *  R:<certificate>
  *
- *  Line breaks can be system dependent in the Instructions file.
+ *  Line breaks can be system dependent in the Choices file.
  *
- *  It will only execute the instructions if the
- *  I and R instructions are also part of the signed
+ *  It will only execute the choices if the
+ *  I and R choices are also part of the signed
  *  certificate list. The signature is validated with the
  *  built in key.
  *
@@ -42,17 +42,17 @@
 #include "windowsstore.h"
 #include "nssstore.h"
 
-/* The certificate list + instructions may only be so long as
+/* The certificate list + choices may only be so long as
  * twice the accepted certificatelist size */
 #define MAX_INPUT_SIZE MAX_LINE_LENGTH * MAX_LINES * 2
 
 /* @brief Read stdin into data structures.
  *
- * Reads instructions from an input file into the to_install
+ * Reads choices from an input file into the to_install
  * and to_remove buffers.
  *
- * Lines starting with I: are treated as install instructions.
- * Lines starting with R: are treated as remove instructions.
+ * Lines starting with I: are treated as install choices.
+ * Lines starting with R: are treated as remove choices.
  * Other lines are ignored.
  *
  * Terminates in OOM conditions.
@@ -60,14 +60,14 @@
  * The caller needs to free the memory allocated by this function
  * even when an error is returned.
  *
- * @param[in] file_name absolute path to the instructions file.
- * @param[out] to_install strv of installation instructions or NULL
- * @param[out] to_remove strv of remove instructions or NULL
+ * @param[in] file_name absolute path to the choices file.
+ * @param[out] to_install strv of installation choices or NULL
+ * @param[out] to_remove strv of remove choices or NULL
  *
  * @returns: 0 on success. An error code otherwise.
  */
 static int
-read_instructions_file (char *file_name, char ***to_install,
+read_choices_file (char *file_name, char ***to_install,
                         char ***to_remove)
 {
   int lines_read = 0;
@@ -144,12 +144,12 @@
  * for installation.
  *
  * @param[in] all_certs strv of all valid certificates in a list
- * @param[in] to_validate strv of instructions
+ * @param[in] to_validate strv of choices
  *
  * @returns 0 on success, an error otherwise
  */
 int
-validate_instructions (char **all_certs, char **to_validate)
+validate_choices (char **all_certs, char **to_validate)
 {
   int i = 0, j = 0;
 
@@ -199,38 +199,38 @@
 
   char *certificate_list = NULL,
        *certificate_file_name = NULL,
-       *instruction_file_name = NULL;
+       *choices_file_name = NULL;
   size_t list_len = 0;
   list_status_t list_status;
   bool do_uninstall = false;
 
-  /* Some very static argument parsing. list= and instructions= is only
+  /* Some very static argument parsing. list= and choices= is only
      added to make it more transparent how this programm is called if
      a user looks at the detailed uac dialog. */
   if (argc != 3 || strncmp(argv[1], "list=", 5) != 0 ||
-                   strncmp(argv[2], "instructions=", 13) != 0)
+                   strncmp(argv[2], "choices=", 8) != 0)
     {
       ERRORPRINTF ("Invalid arguments.\n"
                    "Expected arguments: list=<certificate_list> \n"
-                   "                    instructions=<instructions_file>|uninstall\n");
+                   "                    choices=<choices_file>|uninstall\n");
       return ERR_INVALID_PARAMS;
     }
 
   certificate_file_name = strchr(argv[1], '=') + 1;
-  instruction_file_name = strchr(argv[2], '=') + 1;
+  choices_file_name = strchr(argv[2], '=') + 1;
 
-  if (!certificate_file_name || !instruction_file_name)
+  if (!certificate_file_name || !choices_file_name)
     {
       ERRORPRINTF ("Invalid arguments.\n"
                    "Expected arguments: list=<certificate_list> \n"
-                   "                    instructions=<instructions_file>|uninstall\n");
+                   "                    choices=<choices_file>|uninstall\n");
       return ERR_INVALID_PARAMS;
     }
 
-  if (strncmp(instruction_file_name, "uninstall", 9) == 0)
+  if (strncmp(choices_file_name, "uninstall", 9) == 0)
     {
       do_uninstall = true;
-      instruction_file_name = NULL;
+      choices_file_name = NULL;
     }
 
   list_status = read_and_verify_list (certificate_file_name, &certificate_list,
@@ -240,9 +240,11 @@
     {
       if (list_status == InvalidSignature)
         {
+          ERRORPRINTF ("Failed to verify signature.\n");
           return ERR_INVALID_SIGNATURE;
         }
 
+      ERRORPRINTF ("Failed to read certificate list.\n");
       return ERR_INVALID_INPUT_NO_LIST;
     }
 
@@ -269,34 +271,38 @@
       return ret;
     }
 
-  ret = read_instructions_file (instruction_file_name, &to_install,
+  ret = read_choices_file (choices_file_name, &to_install,
                                 &to_remove);
 
   if (ret)
     {
+      ERRORPRINTF ("Failed to read choices file\n");
       return ret;
     }
 
   if (!strv_length (to_install) && !strv_length (to_remove) )
     {
+      ERRORPRINTF ("Failed to read choices file\n");
       return ERR_NO_INSTRUCTIONS;
     }
 
-  /* Check that the instructions are ok to execute */
+  /* Check that the choices are ok to execute */
   if (to_install)
     {
-      ret = validate_instructions (all_valid_certs, to_install);
+      ret = validate_choices (all_valid_certs, to_install);
       if (ret)
         {
+          ERRORPRINTF ("Failed to validate choices\n");
           return ret;
         }
     }
 
   if (to_remove)
     {
-      ret = validate_instructions (all_valid_certs, to_remove);
+      ret = validate_choices (all_valid_certs, to_remove);
       if (ret)
         {
+          ERRORPRINTF ("Failed to validate removal choices\n");
           return ret;
         }
     }
@@ -312,6 +318,7 @@
   if (ret != 0)
     {
       ERRORPRINTF ("Failed to write nss stores");
+      DEBUGPRINTF ("Hello World");
     }
 
   /* Make valgrind happy */

http://wald.intevation.org/projects/trustbridge/