undo-patch-windows-20041025
[openafs.git] / src / WINNT / client_config / tab_drives.cpp
index 914b514..3ec357f 100644 (file)
 extern "C" {
 #include <afs/param.h>
 #include <afs/stds.h>
+#include <afs/fs_utils.h>
 }
 
 #include "afs_config.h"
 #include "tab_drives.h"
-
+#include <lanahelper.h>
 
 /*
  * PROTOTYPES _________________________________________________________________
@@ -154,6 +155,9 @@ void DrivesTab_OnCheck (HWND hDlg)
             Message (MB_OK | MB_ICONHAND, IDS_ERROR_UNMAP, IDS_ERROR_UNMAP_DESC, TEXT("%08lX"), dwStatus);
          DrivesTab_FillList (hDlg);
          }
+      WriteActiveMap(g.Configuration.NetDrives.aDriveMap[ iDriveSel ].chDrive, fChecked && 
+                     g.Configuration.NetDrives.aDriveMap[ iDriveSel ].fPersistent );
+
       }
 }
 
@@ -198,6 +202,7 @@ void DrivesTab_OnRemove (HWND hDlg)
 
          DrivesTab_FillList (hDlg);
          }
+      WriteActiveMap(g.Configuration.NetDrives.aDriveMap[ iDriveSel ].chDrive, FALSE );
       }
 }
 
@@ -350,6 +355,13 @@ void DrivesTab_EditMapping (HWND hDlg, int iDrive)
          lstrcpy (g.Configuration.NetDrives.aDriveMap[ DriveMap.chDrive-chDRIVE_A ].szMapping, szAfsPathNew);
          WriteDriveMappings (&g.Configuration.NetDrives);
 
+         if (iDrive == -1) {
+             WriteActiveMap(DriveMap.chDrive, DriveMap.fPersistent);
+         } else if ( (chDRIVE_A + iDrive) != DriveMap.chDrive ) {
+             WriteActiveMap(chDRIVE_A+iDrive, FALSE);
+             WriteActiveMap(DriveMap.chDrive, DriveMap.fPersistent);
+         }
+
          DrivesTab_FillList (hDlg);
          }
       }
@@ -393,7 +405,6 @@ BOOL CALLBACK DriveEdit_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
    return FALSE;
 }
 
-
 void DriveEdit_OnInitDialog (HWND hDlg)
 {
    PDRIVEMAP pMap = (PDRIVEMAP)GetWindowLong (hDlg, DWL_USER);
@@ -433,7 +444,14 @@ void DriveEdit_OnInitDialog (HWND hDlg)
    SendMessage (hCombo, CB_SETCURSEL, iItemSel, 0);
 
    TCHAR szMapping[ MAX_PATH ];
-   AdjustAfsPath (szMapping, ((pMap->szMapping[0]) ? pMap->szMapping : TEXT("/afs")), TRUE, FALSE);
+   AdjustAfsPath (szMapping, ((pMap->szMapping[0]) ? pMap->szMapping : cm_slash_mount_root), TRUE, FALSE);
+   
+   CHAR msg[256], msgf[256];
+   if (GetDlgItemText(hDlg,IDC_STATICSUBMOUNT,(LPSTR)msg,sizeof(msg)-1)>0)
+   {
+       wsprintf(msgf,msg,cm_back_slash_mount_root,cm_back_slash_mount_root);
+       SetDlgItemText (hDlg, IDC_STATICSUBMOUNT, msgf);
+   }
    SetDlgItemText (hDlg, IDC_PATH, szMapping);
    SetDlgItemText (hDlg, IDC_DESC, pMap->szSubmount);
 
@@ -461,9 +479,9 @@ void DriveEdit_OnOK (HWND hDlg)
       return;
       }
 
-   if ( (lstrncmpi (pMap->szMapping, TEXT("/afs"), lstrlen(TEXT("/afs")))) &&
-        (lstrncmpi (pMap->szMapping, TEXT("\\afs"), lstrlen(TEXT("\\afs")))) )
-      {
+    if ( (lstrncmpi (pMap->szMapping, cm_slash_mount_root, lstrlen(cm_slash_mount_root))) &&
+         (lstrncmpi (pMap->szMapping, cm_back_slash_mount_root, lstrlen(cm_back_slash_mount_root))) )
+    {
       Message (MB_ICONHAND, GetErrorTitle(), IDS_BADMAP_DESC);
       return;
       }
@@ -618,6 +636,8 @@ void Submounts_OnApply (HWND hDlg)
 
    FreeDriveMapList (&g.Configuration.NetDrives);
    QueryDriveMapList (&g.Configuration.NetDrives);
+   if (g.Configuration.fLogonAuthent)
+          DoMapShareChange();
 }
 
 
@@ -682,6 +702,7 @@ void Submounts_OnEdit (HWND hDlg)
       }
 }
 
+// Action - On Remove submount item
 
 void Submounts_OnRemove (HWND hDlg)
 {
@@ -698,6 +719,7 @@ void Submounts_OnRemove (HWND hDlg)
 }
 
 
+// Action - On Add or On Edit a submount item
 void Submounts_EditSubmount (HWND hDlg, PSUBMOUNT pSubmount)
 {
    HWND hList = GetDlgItem (hDlg, IDC_LIST);
@@ -777,9 +799,16 @@ BOOL CALLBACK SubEdit_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
 
 void SubEdit_OnInitDialog (HWND hDlg)
 {
-   PSUBMOUNT pSubmount = (PSUBMOUNT)GetWindowLong (hDlg, DWL_USER);
+    CHAR msg[256], msgf[256];
+    PSUBMOUNT pSubmount = (PSUBMOUNT)GetWindowLong (hDlg, DWL_USER);
+    if (GetDlgItemText(hDlg,IDC_STATICSUBMOUNT,(LPSTR)msg,sizeof(msg)-1)>0)
+    {
+               wsprintf(msgf,msg,cm_back_slash_mount_root,cm_back_slash_mount_root);
+               SetDlgItemText (hDlg, IDC_STATICSUBMOUNT, msgf);
+   }
 
    SetDlgItemText (hDlg, IDC_SUBMOUNT, pSubmount->szSubmount);
+   
    SetDlgItemText (hDlg, IDC_MAPPING, pSubmount->szMapping);
 }