Standardize License information
[openafs.git] / src / WINNT / afssvrcfg / validation.cpp
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
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
8  */
9
10 /*
11  * INCLUDES _________________________________________________________________\r
12  *\r
13  */\r
14 #include "afscfg.h"\r
15 #include "resource.h"\r
16 #include "validation.h"\r
17 \r
18 \r
19 /*\r
20  * DEFINITIONS _________________________________________________________________\r
21  *\r
22  */\r
23 \r
24 \r
25 /*\r
26  * PROTOTYPES _________________________________________________________________\r
27  *\r
28  */\r
29 BOOL Validation_IsValid(TCHAR *pszInput, VALIDATION_TYPE type, BOOL bShowError);\r
30 \r
31 static BOOL CheckAfsPartitionName(TCHAR *pszInput, int &nErrorMsgResID);\r
32 static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID);\r
33 static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID);\r
34 static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID);\r
35 static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID);\r
36 static BOOL CheckFileName(TCHAR *pszInput, int &nErrorMsgResID);\r
37 static BOOL CheckPath(TCHAR *pszInput, int &nErrorMsgResID);\r
38 static void ShowError(int nErrorMsgResID);\r
39 \r
40 \r
41 /*\r
42  * EXPORTED FUNCTIONS _________________________________________________________________\r
43  *\r
44  */\r
45 BOOL Validation_IsValid(TCHAR *pszInput, VALIDATION_TYPE type, BOOL bShowError)\r
46 {\r
47     BOOL bValid;\r
48     int nErrorMsgResID;\r
49 \r
50         switch (type) {\r
51                 case VALID_AFS_PARTITION_NAME:  bValid = CheckAfsPartitionName(pszInput, nErrorMsgResID);\r
52                                         break;\r
53 \r
54         case VALID_AFS_CELL_NAME:               bValid = CheckAfsCellName(pszInput, nErrorMsgResID);\r
55                                         break;\r
56 \r
57                 case VALID_AFS_PASSWORD:                bValid = CheckAfsPassword(pszInput, nErrorMsgResID);\r
58                                         break;\r
59 \r
60                 case VALID_AFS_UID:                             bValid = CheckAfsUid(pszInput, nErrorMsgResID);\r
61                                         break;\r
62 \r
63                 case VALID_AFS_SERVER_NAME:             bValid = CheckAfsServerName(pszInput, nErrorMsgResID);\r
64                                         break;\r
65 \r
66                 default:                                                nErrorMsgResID = 0;\r
67                                                                                 ASSERT(FALSE);\r
68                                                                                 return FALSE;\r
69         }\r
70 \r
71     if (!bValid && bShowError)\r
72         ShowError(nErrorMsgResID);\r
73 \r
74     return bValid;\r
75 }\r
76 \r
77 \r
78 \r
79 /*\r
80  * STATIC FUNCTIONS _________________________________________________________________\r
81  *\r
82  */\r
83 \r
84  /*\r
85   * Utility Functions _________________________________________________________________\r
86   *\r
87   */\r
88 static BOOL CheckAfsPartitionName(TCHAR *pszPartitionName, int &nErrorMsgResID)\r
89 {\r
90     short bIsValid;\r
91     afs_status_t nStatus;\r
92 \r
93     char *pszName = new char[strlen("/vicpe") + lstrlen(pszPartitionName) + 1];\r
94     if (!pszName) {\r
95         ASSERT(FALSE);\r
96         return TRUE;\r
97     }\r
98 \r
99     strcpy(pszName, "/vicep");\r
100     strcat(pszName, S2A(pszPartitionName));\r
101 \r
102     int nResult = cfg_HostPartitionNameValid(pszName, &bIsValid, &nStatus);\r
103     ASSERT(nResult);\r
104 \r
105     if (!bIsValid)\r
106         nErrorMsgResID = IDS_PARTITION_NAME_VALIDATION_TYPE;\r
107 \r
108     delete pszName;\r
109 \r
110         return bIsValid;\r
111 }\r
112 \r
113 static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID)\r
114 {\r
115         nErrorMsgResID = 0;\r
116 \r
117         return TRUE;\r
118 }\r
119 \r
120 static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID)\r
121 {\r
122         nErrorMsgResID = 0;\r
123 \r
124         return TRUE;\r
125 }\r
126 \r
127 static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID)\r
128 {\r
129         nErrorMsgResID = 0;\r
130 \r
131         return TRUE;\r
132 }\r
133 \r
134 static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID)\r
135 {\r
136         nErrorMsgResID = 0;\r
137 \r
138         return TRUE;\r
139 }\r
140 \r
141 static void ShowError(int nErrorMsgResID)\r
142 {\r
143     Message(MB_ICONSTOP | MB_OK, GetAppTitleID(), IDS_VALIDATION_ERROR_TEMPLATE, TEXT("%m%m"), nErrorMsgResID, nErrorMsgResID);\r
144 }\r