Release 2.1.21
[gnupg.git] / tools / symcryptrun.c
index 4873d76..54976ca 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
@@ -49,7 +49,7 @@
    The possible exit status codes:
 
    0   Success
-   1   Some error occured
+   1   Some error occurred
    2   No valid passphrase was provided
    3   The operation was canceled by the user
 
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+
 #ifdef HAVE_PTY_H
 #include <pty.h>
+#else
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#ifdef HAVE_UTIL_H
+#include <util.h>
+#endif
+#ifdef HAVE_LIBUTIL_H
+#include <libutil.h>
 #endif
+#endif
+
 #ifdef HAVE_UTMP_H
 #include <utmp.h>
 #endif
@@ -86,8 +98,7 @@
 #endif
 #include <gpg-error.h>
 
-#define JNLIB_NEED_LOG_LOGV
-#include "i18n.h"
+#include "../common/i18n.h"
 #include "../common/util.h"
 #include "../common/init.h"
 #include "../common/sysutils.h"
@@ -192,7 +203,7 @@ struct
 } opt;
 
 \f
-/* Print usage information and and provide strings for help.  */
+/* Print usage information and provide strings for help.  */
 static const char *
 my_strusage (int level)
 {
@@ -215,7 +226,7 @@ my_strusage (int level)
             "Call a simple symmetric encryption tool\n");
       break;
     case 31: p = "\nHome: "; break;
-    case 32: p = opt.homedir; break;
+    case 32: p = gnupg_homedir (); break;
     case 33: p = "\n"; break;
 
     default: p = NULL; break;
@@ -239,9 +250,6 @@ my_strusage (int level)
        __result; }))
 #endif
 
-/* Include the implementation of map_spwq_error.  */
-MAP_SPWQ_ERROR_IMPL
-
 /* Unlink a file, and shred it if SHRED is true.  */
 int
 remove_file (char *name, int shred)
@@ -424,7 +432,7 @@ confucius_copy_file (char *infile, char *outfile, int plain)
 /* Get a passphrase in secure storage (if possible).  If AGAIN is
    true, then this is a repeated attempt.  If CANCELED is not a null
    pointer, it will be set to true or false, depending on if the user
-   canceled the operation or not.  On error (including cancelation), a
+   canceled the operation or not.  On error (including cancellation), a
    null pointer is returned.  The passphrase must be deallocated with
    confucius_drop_pass.  CACHEID is the ID to be used for passphrase
    caching and can be NULL to disable caching.  */
@@ -442,7 +450,6 @@ confucius_get_pass (const char *cacheid, int again, int *canceled)
   pw = simple_pwquery (cacheid,
                        again ? _("does not match - try again"):NULL,
                        _("Passphrase:"), NULL, 0, &err);
-  err = map_spwq_error (err);
   i18n_switchback (orig_codeset);
 
   if (!pw)
@@ -889,15 +896,14 @@ main (int argc, char **argv)
   char *logfile = NULL;
   int default_config = 1;
 
+  early_system_init ();
   set_strusage (my_strusage);
-  log_set_prefix ("symcryptrun", 1);
+  log_set_prefix ("symcryptrun", GPGRT_LOG_WITH_PREFIX);
 
   /* Make sure that our subsystems are ready.  */
   i18n_init();
   init_common_subsystems (&argc, &argv);
 
-  opt.homedir = default_homedir ();
-
   /* Check whether we have a config file given on the commandline */
   orig_argc = argc;
   orig_argv = argv;
@@ -915,11 +921,11 @@ main (int argc, char **argv)
       else if (pargs.r_opt == oNoOptions)
         default_config = 0; /* --no-options */
       else if (pargs.r_opt == oHomedir)
-       opt.homedir = pargs.r.ret_str;
+       gnupg_set_homedir (pargs.r.ret_str);
     }
 
   if (default_config)
-    configname = make_filename (opt.homedir, "symcryptrun.conf", NULL );
+    configname = make_filename (gnupg_homedir (), "symcryptrun.conf", NULL );
 
   argc = orig_argc;
   argv = orig_argv;
@@ -1000,17 +1006,12 @@ main (int argc, char **argv)
     log_set_file (logfile);
 
   gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
-  if (!gcry_check_version (NEED_LIBGCRYPT_VERSION) )
-    {
-      log_fatal (_("%s is too old (need %s, have %s)\n"), "libgcrypt",
-                 NEED_LIBGCRYPT_VERSION, gcry_check_version (NULL) );
-    }
   setup_libgcrypt_logging ();
   gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
 
-  /* Tell simple-pwquery about the the standard socket name.  */
+  /* Tell simple-pwquery about the standard socket name.  */
   {
-    char *tmp = make_filename (opt.homedir, GPG_AGENT_SOCK_NAME, NULL);
+    char *tmp = make_filename (gnupg_socketdir (), GPG_AGENT_SOCK_NAME, NULL);
     simple_pw_set_socket (tmp);
     xfree (tmp);
   }