/[winpt]/trunk/Src/WinPT.cpp
ViewVC logotype

Diff of /trunk/Src/WinPT.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 231 by twoaday, Tue Jun 20 09:18:44 2006 UTC revision 262 by twoaday, Sat Sep 30 10:24:34 2006 UTC
# Line 44  Line 44 
44    
45  void remove_crit_file_attrs (const char *fname, int force);  void remove_crit_file_attrs (const char *fname, int force);
46  BOOL user_is_admin (void);  BOOL user_is_admin (void);
47    extern "C" int  pcsc_available (void);
48    
49  /* Global variables. */  /* Global variables. */
50  HINSTANCE glob_hinst;   /* global instance for the dialogs */  HINSTANCE glob_hinst;   /* global instance for the dialogs */
# Line 58  char gpgver[3]; Line 59  char gpgver[3];
59    
60    
61  /* Load the key cache and rebuild the signature cache. */  /* Load the key cache and rebuild the signature cache. */
62  void  int
63  update_keycache (HWND hwnd)  update_keycache (HWND hwnd)
64  {  {
65        int err;
66    
67      refresh_cache_s rcs = {0};      refresh_cache_s rcs = {0};
68      rcs.kr_reload = 0;      rcs.kr_reload = 0;
69      rcs.kr_update = 1;      rcs.kr_update = 1;
70      rcs.tr_update = 1;      rcs.tr_update = 1;
71      DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd,      err = DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd,
72                      keycache_dlg_proc, (LPARAM)&rcs);                      keycache_dlg_proc, (LPARAM)&rcs);
73      /* XXX: the dialog return 0 when an error occurs.      if (err) {
74              in this case figure out if the gpg env is OK          char *cfg = get_gnupg_config ();
75              and supress dialogs to configure gpg. */          if (cfg && check_gnupg_options (cfg, 0) == WPTERR_FILE_EXIST)
76                msg_box (NULL, _("The gpg.conf contains at least one argument which points to a non-existing file."), "WinPT", MB_ERR);
77            free_if_alloc (cfg);
78            return -1;
79        }
80        return 0;
81  }  }
82    
83    
# Line 279  check_crypto_engine (void) Line 287  check_crypto_engine (void)
287          return false;          return false;
288      }      }
289      /* We enable smartcard support for GPG: >= 2 or >= 1.4.3 */      /* We enable smartcard support for GPG: >= 2 or >= 1.4.3 */
290      if (ma > 1 || pa >= 3)      if ((ma > 1 || pa >= 4) && pcsc_available ())
291          scard_support = 1;          scard_support = 1;
292    
293      gpgver[0] = ma;      gpgver[0] = ma;
# Line 293  check_crypto_engine (void) Line 301  check_crypto_engine (void)
301     do not show any errors. */     do not show any errors. */
302  static int  static int
303  load_keyserver_conf (int quiet)  load_keyserver_conf (int quiet)
304  {  {    
     char *buf;  
305      const char *t, *conf;      const char *t, *conf;
306        char *buf;
307      int rc;      int rc;
308    
309      /* Create $APPDATA\winpt if needed. */      /* Create $APPDATA\winpt if needed. */
# Line 448  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 456  WinMain (HINSTANCE hinst, HINSTANCE hpre
456      HACCEL accel_tab;      HACCEL accel_tab;
457      MSG msg;      MSG msg;
458      HWND hwnd = NULL;      HWND hwnd = NULL;
459        WORD ver[3], ptdver[4];
460        const char *s;
461      int rc, ec, created = 0;      int rc, ec, created = 0;
462      int first_start = 0, start_gpgprefs = 0;      int first_start = 0, start_gpgprefs = 0;
463      int winpt_inst_found = 0;      int winpt_inst_found = 0;
464      int start_manager = 0;      int start_manager = 0;    
     const char *s;  
465    
466      glob_hinst = hinst;      glob_hinst = hinst;
467      if (cmdline && stristr (cmdline, "--stop")) {      if (cmdline && stristr (cmdline, "--stop")) {
# Line 467  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 476  WinMain (HINSTANCE hinst, HINSTANCE hpre
476      debug = 1;      debug = 1;
477      #endif      #endif
478    
     /* XXX  
     WORD ver[3], ptdver[4];  
479      get_file_version ("WinPT.exe", &ver[0], &ver[1], &ver[2], &ver[3]);      get_file_version ("WinPT.exe", &ver[0], &ver[1], &ver[2], &ver[3]);
480      get_file_version ("PTD.dll", &ptdver[0], &ptdver[1],      ec = get_file_version ("PTD.dll", &ptdver[0], &ptdver[1],
481                                   &ptdver[2], &ptdver[3]);                                   &ptdver[2], &ptdver[3]);
482            
483      if (ptdver[0] != ver[0] || ptdver[1] != ver[1]|| ptdver[2] != ver[2]) {      if (!ec && (ptdver[0] != ver[0] || ptdver[1] != ver[1]|| ptdver[2] != ver[2])) {
484          log_box (_("WinPT Error"), MB_ERR,          log_box (_("WinPT Error"), MB_ERR,
485                   _("The PTD.dll file has a different version than WinPT.exe\n"                   _("The PTD.dll file has a different version than WinPT.exe\n"
486                     "Please update the PTD.dll to version %d.%d.%d"),                     "Please update the PTD.dll to version %d.%d.%d"),
487                     ver[0], ver[1], ver[2]);                     ver[0], ver[1], ver[2]);
488          return 0;          return 0;
489      }      }
     */  
490    
491      if (gpg_md_selftest ()) {      if (gpg_md_selftest ()) {
492          msg_box (NULL, _("Cryptographic selftest failed."),          msg_box (NULL, _("Cryptographic selftest failed."),
# Line 583  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 589  WinMain (HINSTANCE hinst, HINSTANCE hpre
589              ec = msg_box (NULL,              ec = msg_box (NULL,
590                  _("Could not access and/or find the public and secret keyring.\n"                  _("Could not access and/or find the public and secret keyring.\n"
591                    "If this is an accident, quit the program and fix it.\n\n"                    "If this is an accident, quit the program and fix it.\n\n"
592                    "Continue if you want that WinPT offers you more choices.\n"),                    "Continue if you want WinPT to offer you more choices.\n"),
593                    "WinPT", MB_INFO|MB_YESNO);                    "WinPT", MB_INFO|MB_YESNO);
594              if (ec == IDYES)              if (ec == IDYES)
595                  first_start = 1;                  first_start = 1;
# Line 722  start: Line 728  start:
728              }              }
729              break;              break;
730    
731            case SETUP_CARDGEN:
732                rc = DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_CARD_KEYGEN,
733                                     h, card_keygen_dlg_proc, 0);
734                if (!rc)
735                    goto start;
736                break;
737    
738          case 0: /* Cancel/Abort. */          case 0: /* Cancel/Abort. */
739          default:          default:
740              DestroyWindow (hwnd);              DestroyWindow (hwnd);
# Line 732  start: Line 745  start:
745          if (!check_crypto_engine ()) {          if (!check_crypto_engine ()) {
746              DestroyWindow (hwnd);              DestroyWindow (hwnd);
747              free_gnupg_table ();              free_gnupg_table ();
748                keycache_release (1);
749              return 0;              return 0;
750          }          }
751          if (!is_gpg4win_installed ()) {          if (!is_gpg4win_installed ()) {
# Line 741  start: Line 755  start:
755      }      }
756      else {      else {
757          gpg_keycache_t c, sec_c;          gpg_keycache_t c, sec_c;
758          update_keycache (hwnd);          if (update_keycache (hwnd)) {
759                DestroyWindow (hwnd);
760                free_gnupg_table ();
761                keycache_release (1);
762                return 0;
763            }
764          c = keycache_get_ctx (1);          c = keycache_get_ctx (1);
765          if (!c || !gpg_keycache_get_size (c)) {          if (!gpg_keycache_get_size (c)) {
             gnupg_display_error ();  
766              msg_box (hwnd, _("The keycache was not initialized or is empty.\n"              msg_box (hwnd, _("The keycache was not initialized or is empty.\n"
767                               "Please check your GPG config (keyrings, pathes...)"),                               "Please check your GPG config (keyrings, pathes...)"),
768                               _("WinPT Error"), MB_ERR);                               _("WinPT Error"), MB_ERR);
769              ec = msg_box (NULL, _("It seems that GPG is not set properly.\n"              ec = msg_box (NULL, _("It seems that GPG is not configured properly.\n"
770                                    "Do you want to start the GPG preferences dialog?"),                                    "Do you want to start the GPG preferences dialog?"),
771                              "WinPT", MB_INFO|MB_YESNO);                              "WinPT", MB_INFO|MB_YESNO);
772              if (ec == IDYES) {              if (ec == IDYES) {
# Line 759  start: Line 777  start:
777              else {              else {
778                  DestroyWindow (hwnd);                  DestroyWindow (hwnd);
779                  free_gnupg_table ();                  free_gnupg_table ();
780                    keycache_release (1);
781                  return 0;                  return 0;
782              }              }
783          }          }

Legend:
Removed from v.231  
changed lines
  Added in v.262

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26