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 _________________________________________________________________
18 #include <afsconfig.h>
19 #include <afs/param.h>
25 #include "validation.h"
29 * DEFINITIONS _________________________________________________________________
35 * PROTOTYPES _________________________________________________________________
38 static BOOL CheckAfsPartitionName(TCHAR *pszInput, int &nErrorMsgResID);
39 static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID);
40 static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID);
41 static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID);
42 static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID);
43 static void ShowError(int nErrorMsgResID);
47 * EXPORTED FUNCTIONS _________________________________________________________________
50 BOOL Validation_IsValid(TCHAR *pszInput, VALIDATION_TYPE type, BOOL bShowError)
56 case VALID_AFS_PARTITION_NAME:
57 bValid = CheckAfsPartitionName(pszInput, nErrorMsgResID);
60 case VALID_AFS_CELL_NAME:
61 bValid = CheckAfsCellName(pszInput, nErrorMsgResID);
64 case VALID_AFS_PASSWORD:
65 bValid = CheckAfsPassword(pszInput, nErrorMsgResID);
69 bValid = CheckAfsUid(pszInput, nErrorMsgResID);
72 case VALID_AFS_SERVER_NAME:
73 bValid = CheckAfsServerName(pszInput, nErrorMsgResID);
82 if (!bValid && bShowError)
83 ShowError(nErrorMsgResID);
91 * STATIC FUNCTIONS _________________________________________________________________
96 * Utility Functions _________________________________________________________________
99 static BOOL CheckAfsPartitionName(TCHAR *pszPartitionName, int &nErrorMsgResID)
102 afs_status_t nStatus;
104 char *pszName = new char[strlen("/vicpe") + lstrlen(pszPartitionName) + 1];
110 strcpy(pszName, "/vicep");
111 strcat(pszName, S2A(pszPartitionName));
113 int nResult = cfg_HostPartitionNameValid(pszName, &bIsValid, &nStatus);
117 nErrorMsgResID = IDS_PARTITION_NAME_VALIDATION_TYPE;
124 static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID)
131 static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID)
138 static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID)
145 static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID)
152 static void ShowError(int nErrorMsgResID)
154 Message(MB_ICONSTOP | MB_OK, GetAppTitleID(), IDS_VALIDATION_ERROR_TEMPLATE, TEXT("%m%m"), nErrorMsgResID, nErrorMsgResID);