agent: SSH support improvement.
[gnupg.git] / agent / preset-passphrase.c
index f303d5b..549ecc3 100644 (file)
 #include <fcntl.h> /* for setmode() */
 #endif
 #ifdef HAVE_W32_SYSTEM
-#include <windows.h>  /* To initialize the sockets.  fixme */
+# ifdef HAVE_WINSOCK2_H
+#  include <winsock2.h>
+# endif
+# include <windows.h>  /* To initialize the sockets.  fixme */
 #endif
 
-#define JNLIB_NEED_LOG_LOGV
 #include "agent.h"
 #include "simple-pwquery.h"
 #include "i18n.h"
 #include "sysutils.h"
+#include "../common/init.h"
 
 
 enum cmd_and_opt_values
@@ -63,7 +66,6 @@ enum cmd_and_opt_values
 aTest };
 
 
-static const char *opt_homedir;
 static const char *opt_passphrase;
 
 static ARGPARSE_OPTS opts[] = {
@@ -86,7 +88,7 @@ my_strusage (int level)
   const char *p;
   switch (level)
     {
-    case 11: p = "gpg-preset-passphrase (GnuPG)";
+    case 11: p = "gpg-preset-passphrase (@GNUPG@)";
       break;
     case 13: p = VERSION; break;
     case 17: p = PRINTABLE_OS_NAME; break;
@@ -208,6 +210,7 @@ main (int argc, char **argv)
   int cmd = 0;
   const char *keygrip = NULL;
 
+  early_system_init ();
   set_strusage (my_strusage);
   log_set_prefix ("gpg-preset-passphrase", 1);
 
@@ -215,8 +218,6 @@ main (int argc, char **argv)
   i18n_init ();
   init_common_subsystems (&argc, &argv);
 
-  opt_homedir = default_homedir ();
-
   pargs.argc = &argc;
   pargs.argv = &argv;
   pargs.flags=  1;  /* (do not remove the args) */
@@ -225,7 +226,7 @@ main (int argc, char **argv)
       switch (pargs.r_opt)
         {
         case oVerbose: opt.verbose++; break;
-        case oHomedir: opt_homedir = pargs.r.ret_str; break;
+        case oHomedir: gnupg_set_homedir (pargs.r.ret_str); break;
 
         case oPreset: cmd = oPreset; break;
         case oForget: cmd = oForget; break;
@@ -244,7 +245,7 @@ main (int argc, char **argv)
 
   /* Tell simple-pwquery about the the standard socket name.  */
   {
-    char *tmp = make_filename (opt_homedir, "S.gpg-agent", NULL);
+    char *tmp = make_filename (gnupg_socketdir (), GPG_AGENT_SOCK_NAME, NULL);
     simple_pw_set_socket (tmp);
     xfree (tmp);
   }