Merge branch 'develop' of github.com:verisign/getdns into develop

This commit is contained in:
Willem Toorop 2014-02-04 10:10:58 +01:00
commit bfeb001850
3 changed files with 31 additions and 16 deletions

View File

@ -37,9 +37,6 @@ example:
test:
cd src && $(MAKE) $@
example:
cd src && $(MAKE) $@
clean:
cd src && $(MAKE) $@
cd doc && $(MAKE) $@

View File

@ -52,16 +52,13 @@ default: all
all: libgetdns.la
example:
cd example && $(MAKE) $@
install: libgetdns.la
$(INSTALL) -m 755 -d $(DESTDIR)$(includedir)
$(INSTALL) -m 755 -d $(DESTDIR)$(includedir)/getdns
$(INSTALL) -m 644 $(srcdir)/getdns/getdns.h $(DESTDIR)$(includedir)/getdns/getdns.h
ifeq ($(have_libevent),1)
ifeq ($(have_libevent),1)
$(INSTALL) -m 644 $(srcdir)/getdns/getdns_ext_libevent.h $(DESTDIR)$(includedir)/getdns/
endif
endif
$(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
$(LIBTOOL) --mode=install cp libgetdns.la $(DESTDIR)$(libdir)
$(LIBTOOL) --mode=finish $(DESTDIR)$(libdir)
@ -79,7 +76,6 @@ test:
example:
cd example && $(MAKE) $@
clean:
cd test && $(MAKE) $@
cd example && $(MAKE) $@

View File

@ -100,17 +100,39 @@ getdns_convert_ulabel_to_alabel(const char *ulabel)
int ret;
char *buf;
char *prepped;
char *prepped2;
if (ulabel == NULL)
return 0;
return 0;
prepped2 = malloc(BUFSIZ);
if(!prepped2)
return 0;
setlocale(LC_ALL, "");
if ((prepped = stringprep_locale_to_utf8(ulabel)) == 0)
return 0;
if ((ret = stringprep(prepped, BUFSIZ, 0, stringprep_nameprep)) != STRINGPREP_OK)
return 0;
if ((ret = idna_to_ascii_8z(prepped, &buf, 0)) != IDNA_SUCCESS) {
return 0;
if ((prepped = stringprep_locale_to_utf8(ulabel)) == 0) {
/* convert to utf8 fails, which it can, but continue anyway */
if(strlen(ulabel)+1 > BUFSIZ) {
free(prepped2);
return 0;
}
memcpy(prepped2, ulabel, strlen(ulabel)+1);
} else {
if(strlen(prepped)+1 > BUFSIZ) {
free(prepped);
free(prepped2);
return 0;
}
memcpy(prepped2, prepped, strlen(prepped)+1);
free(prepped);
}
if ((ret = stringprep(prepped2, BUFSIZ, 0, stringprep_nameprep)) != STRINGPREP_OK) {
free(prepped2);
return 0;
}
if ((ret = idna_to_ascii_8z(prepped2, &buf, 0)) != IDNA_SUCCESS) {
free(prepped2);
return 0;
}
free(prepped2);
return buf;
}