// LANA_NETBIOS_NAME_FULL : Return full netbios name
extern "C" long lana_GetUncServerNameEx(char *buffer, lana_number_t * pLana, int * pIsGateway, int flags) {
HKEY hkConfig;
- DWORD dummyLen;
- LONG rv;
- int regLana;
- int regGateway, regNoFindLanaByName;
- TCHAR regNbName[MAX_NB_NAME_LENGTH];
- TCHAR nbName[MAX_NB_NAME_LENGTH];
- TCHAR hostname[MAX_COMPUTERNAME_LENGTH+1];
-
- rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkConfig);
- if(rv == ERROR_SUCCESS) {
- if(!(flags & LANA_NETBIOS_NAME_IN) || !pLana) {
- dummyLen = sizeof(regLana);
- rv = RegQueryValueEx(hkConfig, szLanAdapterValue, NULL, NULL, (LPBYTE) ®Lana, &dummyLen);
- if(rv != ERROR_SUCCESS) regLana = -1;
- } else
- regLana = *pLana;
-
- if(!(flags & LANA_NETBIOS_NAME_IN) || !pIsGateway) {
- dummyLen = sizeof(regGateway);
- rv = RegQueryValueEx(hkConfig, szIsGatewayValue, NULL, NULL, (LPBYTE) ®Gateway, &dummyLen);
- if(rv != ERROR_SUCCESS) regGateway = 0;
- } else
- regGateway = *pIsGateway;
-
- dummyLen = sizeof(regNoFindLanaByName);
- rv = RegQueryValueEx(hkConfig, szNoFindLanaByName, NULL, NULL, (LPBYTE) ®NoFindLanaByName, &dummyLen);
- if(rv != ERROR_SUCCESS) regNoFindLanaByName = 0;
-
- // Do not care if the call fails for insufficient buffer size. We are not interested
- // in netbios names over 15 chars.
- dummyLen = sizeof(regNbName);
- rv = RegQueryValueEx(hkConfig, szNetbiosNameValue, NULL, NULL, (LPBYTE) ®NbName, &dummyLen);
- if(rv != ERROR_SUCCESS) regNbName[0] = 0;
- else regNbName[15] = 0;
-
- RegCloseKey(hkConfig);
+ DWORD dummyLen;
+ LONG rv;
+ int regLana;
+ int regGateway;
+#ifdef USE_FINDLANABYNAME
+ int regNoFindLanaByName;
+#endif
+ TCHAR regNbName[MAX_NB_NAME_LENGTH] = "AFS";
+ TCHAR nbName[MAX_NB_NAME_LENGTH];
+ TCHAR hostname[MAX_COMPUTERNAME_LENGTH+1];
+
+ rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkConfig);
+ if(rv == ERROR_SUCCESS) {
+ if(!(flags & LANA_NETBIOS_NAME_IN) || !pLana) {
+ dummyLen = sizeof(regLana);
+ rv = RegQueryValueEx(hkConfig, szLanAdapterValue, NULL, NULL, (LPBYTE) ®Lana, &dummyLen);
+ if(rv != ERROR_SUCCESS)
+ regLana = -1;
+ } else
+ regLana = *pLana;
+
+ if(!(flags & LANA_NETBIOS_NAME_IN) || !pIsGateway) {
+ dummyLen = sizeof(regGateway);
+ rv = RegQueryValueEx(hkConfig, szIsGatewayValue, NULL, NULL, (LPBYTE) ®Gateway, &dummyLen);
+ if(rv != ERROR_SUCCESS)
+ regGateway = 0;
+ } else
+ regGateway = *pIsGateway;
+
+#ifdef USE_FINDLANABYNAME
+ dummyLen = sizeof(regNoFindLanaByName);
+ rv = RegQueryValueEx(hkConfig, szNoFindLanaByName, NULL, NULL, (LPBYTE) ®NoFindLanaByName, &dummyLen);
+ if(rv != ERROR_SUCCESS)
+ regNoFindLanaByName = 0;
+#endif
+ // Do not care if the call fails for insufficient buffer size. We are not interested
+ // in netbios names over 15 chars.
+ dummyLen = sizeof(regNbName);
+ rv = RegQueryValueEx(hkConfig, szNetbiosNameValue, NULL, NULL, (LPBYTE) ®NbName, &dummyLen);
+ if(rv != ERROR_SUCCESS)
+ strcpy(regNbName, "AFS");
+ else
+ regNbName[15] = 0;
+
+ RegCloseKey(hkConfig);
+ } else {
+ if(flags & LANA_NETBIOS_NAME_IN) {
+ regLana = (pLana)? *pLana: -1;
+ regGateway = (pIsGateway)? *pIsGateway: 0;
} else {
- if(flags & LANA_NETBIOS_NAME_IN) {
- regLana = (pLana)? *pLana: -1;
- regGateway = (pIsGateway)? *pIsGateway: 0;
- } else {
- regLana = -1;
- regGateway = 0;
- }
- regNoFindLanaByName = 0;
- regNbName[0] = 0;
+ regLana = -1;
+ regGateway = 0;
}
+#ifdef USE_FINDLANABYNAME
+ regNoFindLanaByName = 0;
+#endif
+ strcpy(regNbName, "AFS");
+ }
if(regLana < 0 || regLana > MAX_LANA)
regLana = -1;
- if(regLana == -1) {
- LANAINFO *lanaInfo = NULL;
+ if(regLana == -1) {
+ LANAINFO *lanaInfo = NULL;
int nLana = LANA_INVALID;
+#ifdef USE_FINDLANABYNAME
if (!regNoFindLanaByName)
lanaInfo = lana_FindLanaByName("AFS");
- if(lanaInfo != NULL) {
+#endif
+ if(lanaInfo != NULL) {
nLana = lanaInfo[0].lana_number;
- free(lanaInfo);
- } else
- nLana = LANA_INVALID;
-
- if(nLana == LANA_INVALID && !regGateway) {
- nLana = lana_FindLoopback();
- }
- if(nLana != LANA_INVALID)
- regLana = nLana;
+ free(lanaInfo);
+ } else
+ nLana = LANA_INVALID;
+
+ if(nLana == LANA_INVALID && !regGateway) {
+ nLana = lana_FindLoopback();
}
+ if(nLana != LANA_INVALID)
+ regLana = nLana;
+ }
- if(regNbName[0] &&
- (regLana >=0 && lana_IsLoopback((lana_number_t) regLana))) {
+ if(regNbName[0] &&
+ (regLana >=0 && lana_IsLoopback((lana_number_t) regLana)))
+ {
strncpy(nbName,regNbName,15);
nbName[16] = 0;
strupr(nbName);
+ } else {
+ char * dot;
+
+ if(flags & LANA_NETBIOS_NAME_SUFFIX) {
+ strcpy(nbName,"-AFS");
} else {
- char * dot;
-
- if(flags & LANA_NETBIOS_NAME_SUFFIX) {
- strcpy(nbName,"-AFS");
- } else {
- dummyLen = sizeof(hostname);
- // assume we are not a cluster.
- rv = GetComputerName(hostname, &dummyLen);
- if(!SUCCEEDED(rv)) { // should not happen, but...
- return rv;
- }
- strncpy(nbName, hostname, 11);
- nbName[11] = 0;
- if(dot = strchr(nbName,'.'))
- *dot = 0;
- strcat(nbName,"-AFS");
- }
+ dummyLen = sizeof(hostname);
+ // assume we are not a cluster.
+ rv = GetComputerName(hostname, &dummyLen);
+ if(!SUCCEEDED(rv)) { // should not happen, but...
+ return rv;
+ }
+ strncpy(nbName, hostname, 11);
+ nbName[11] = 0;
+ if(dot = strchr(nbName,'.'))
+ *dot = 0;
+ strcat(nbName,"-AFS");
}
+ }
- if(pLana) *pLana = regLana;
- if(pIsGateway) *pIsGateway = regGateway;
+ if(pLana)
+ *pLana = regLana;
+ if(pIsGateway)
+ *pIsGateway = regGateway;
- strcpy(buffer, nbName);
+ strcpy(buffer, nbName);
- return ERROR_SUCCESS;
+ return ERROR_SUCCESS;
}
extern "C" void lana_GetUncServerNameDynamic(int lanaNumber, BOOL isGateway, TCHAR *name, int type) {