2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
11 * INCLUDES _________________________________________________________________
16 #include "validation.h"
20 * DEFINITIONS _________________________________________________________________
26 * PROTOTYPES _________________________________________________________________
29 BOOL Validation_IsValid(TCHAR *pszInput, VALIDATION_TYPE type, BOOL bShowError);
31 static BOOL CheckAfsPartitionName(TCHAR *pszInput, int &nErrorMsgResID);
32 static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID);
33 static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID);
34 static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID);
35 static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID);
36 static BOOL CheckFileName(TCHAR *pszInput, int &nErrorMsgResID);
37 static BOOL CheckPath(TCHAR *pszInput, int &nErrorMsgResID);
38 static void ShowError(int nErrorMsgResID);
42 * EXPORTED FUNCTIONS _________________________________________________________________
45 BOOL Validation_IsValid(TCHAR *pszInput, VALIDATION_TYPE type, BOOL bShowError)
51 case VALID_AFS_PARTITION_NAME: bValid = CheckAfsPartitionName(pszInput, nErrorMsgResID);
54 case VALID_AFS_CELL_NAME: bValid = CheckAfsCellName(pszInput, nErrorMsgResID);
57 case VALID_AFS_PASSWORD: bValid = CheckAfsPassword(pszInput, nErrorMsgResID);
60 case VALID_AFS_UID: bValid = CheckAfsUid(pszInput, nErrorMsgResID);
63 case VALID_AFS_SERVER_NAME: bValid = CheckAfsServerName(pszInput, nErrorMsgResID);
66 default: nErrorMsgResID = 0;
71 if (!bValid && bShowError)
72 ShowError(nErrorMsgResID);
80 * STATIC FUNCTIONS _________________________________________________________________
85 * Utility Functions _________________________________________________________________
88 static BOOL CheckAfsPartitionName(TCHAR *pszPartitionName, int &nErrorMsgResID)
93 char *pszName = new char[strlen("/vicpe") + lstrlen(pszPartitionName) + 1];
99 strcpy(pszName, "/vicep");
100 strcat(pszName, S2A(pszPartitionName));
102 int nResult = cfg_HostPartitionNameValid(pszName, &bIsValid, &nStatus);
106 nErrorMsgResID = IDS_PARTITION_NAME_VALIDATION_TYPE;
113 static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID)
120 static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID)
127 static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID)
134 static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID)
141 static void ShowError(int nErrorMsgResID)
143 Message(MB_ICONSTOP | MB_OK, GetAppTitleID(), IDS_VALIDATION_ERROR_TEMPLATE, TEXT("%m%m"), nErrorMsgResID, nErrorMsgResID);