2278. [bug] win32: handle the case where Windows returns no

searchlist or DNS suffix. [RT #17354]
This commit is contained in:
Mark Andrews 2007-12-14 01:40:42 +00:00
parent 81d9d7a10e
commit e8ca2abed7
2 changed files with 11 additions and 10 deletions

View file

@ -1,3 +1,6 @@
2278. [bug] win32: handle the case where Windows returns no
searchlist or DNS suffix. [RT #17354]
2277. [bug] Empty zone names were not correctly being caught at
in the post parse checks. [RT #17357]

View file

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: lwconfig.c,v 1.6 2007/06/18 23:47:51 tbox Exp $ */
/* $Id: lwconfig.c,v 1.7 2007/12/14 01:40:42 marka Exp $ */
/*
* We do this so that we may incorporate everything in the main routines
@ -51,7 +51,6 @@ get_win32_searchlist(lwres_context_t *ctx) {
char searchlist[MAX_PATH];
DWORD searchlen = MAX_PATH;
char *cp;
int idx;
lwres_conf_t *confdata;
REQUIRE(ctx != NULL);
@ -69,19 +68,17 @@ get_win32_searchlist(lwres_context_t *ctx) {
keyFound = FALSE;
RegCloseKey(hKey);
}
confdata->searchnxt = 0;
idx = 0;
confdata->searchnxt = 0;
cp = strtok((char *)searchlist, ", \0");
while (cp != NULL) {
if (confdata->searchnxt == LWRES_CONFMAXSEARCH)
break;
if (strlen(cp) <= MAX_PATH && strlen(cp) > 0) {
confdata->search[idx] = lwres_strdup(ctx, cp);
confdata->search[confdata->searchnxt] = lwres_strdup(ctx, cp);
if (confdata->search[confdata->searchnxt] != NULL)
confdata->searchnxt++;
}
idx++;
confdata->searchnxt++;
cp = strtok(NULL, ", \0");
}
}
@ -125,13 +122,14 @@ lwres_conf_parse(lwres_context_t *ctx, const char *filename) {
get_win32_searchlist(ctx);
/* Use only if there is no search list */
if (confdata->searchnxt == 0) {
if (confdata->searchnxt == 0 && strlen(FixedInfo->DomainName) > 0) {
confdata->domainname = lwres_strdup(ctx, FixedInfo->DomainName);
if (confdata->domainname == NULL) {
GlobalFree(FixedInfo);
return (LWRES_R_FAILURE);
}
}
} else
confdata->domainname = NULL;
/* Get the list of nameservers */
pIPAddr = &FixedInfo->DnsServerList;