We build variants of kinit and test_acquire_cred that define their own symbols rk_dns_lookup, gethostbyname, gethostbyname2, and getaddrinfo to print a message and abort. For getaddrinfo, we abort only if the caller failed to specify AI_NUMERICHOST; otherwise we use dlsym(RTLD_NEXT, "getaddrinfo") instead. The new test tests/gss/check-nodns is like tests/gss/check-basic, but uses kinit_auditdns and test_acquire_cred_auditdns to verify that no DNS resolution happens. This test should work and be effective on ELF platforms where the getaddrinfo function is implemented by the symbol `getaddrinfo'. On non-ELF platforms it may not be effective -- and on platforms where the getaddrinfo function is implemented by another symbol (like `__getaddrinfo50') it may not work, but we can cross that bridge when we come to it. Verified manually that the test fails, with the expected error message and abort, without `block_dns = yes' in krb5-nodns.conf. No automatic test of the mechanism for now because it might not work on some platforms. XXX check-nodns.in is copypasta of check-basic.in, should factor out the common parts so they don't get out of sync.
106 lines
2.5 KiB
Makefile
106 lines
2.5 KiB
Makefile
# $Id$
|
|
|
|
include $(top_srcdir)/Makefile.am.common
|
|
|
|
if !NO_AFS
|
|
afs_lib = $(LIB_kafs)
|
|
endif
|
|
|
|
AM_CPPFLAGS += -I$(srcdir)/../lib/krb5 \
|
|
-I$(srcdir)/../lib/gssapi \
|
|
$(INCLUDE_libintl) \
|
|
-DHEIMDAL_LOCALEDIR='"$(localedir)"'
|
|
|
|
man_MANS = \
|
|
kinit.1 \
|
|
klist.1 \
|
|
kdestroy.1 \
|
|
kswitch.1 \
|
|
kdigest.8 \
|
|
kgetcred.1 \
|
|
kimpersonate.8 \
|
|
kx509.1
|
|
|
|
bin_PROGRAMS = kinit kdestroy kgetcred heimtools
|
|
libexec_PROGRAMS = kdigest kimpersonate
|
|
|
|
noinst_PROGRAMS = kverify kdecode_ticket generate-requests
|
|
|
|
# sync with kinit_auditdns_LDADD in appl/test/Makefile.am
|
|
kinit_LDADD = \
|
|
$(afs_lib) \
|
|
$(top_builddir)/lib/krb5/libkrb5.la \
|
|
$(top_builddir)/lib/gssapi/libgssapi.la \
|
|
$(top_builddir)/lib/gss_preauth/libgss_preauth.la \
|
|
$(top_builddir)/lib/ntlm/libheimntlm.la \
|
|
$(LIB_hcrypto) \
|
|
$(top_builddir)/lib/asn1/libasn1.la \
|
|
$(LIB_libintl) \
|
|
$(LIB_roken)
|
|
|
|
kdestroy_LDADD = $(kinit_LDADD)
|
|
|
|
kimpersonate_LDADD = $(kinit_LDADD)
|
|
|
|
LIB_hx509 = ../lib/hx509/libhx509.la
|
|
|
|
heimtools_LDADD = \
|
|
$(top_builddir)/lib/sl/libsl.la \
|
|
$(kinit_LDADD) \
|
|
$(LIB_readline) \
|
|
$(LIB_heimbase) \
|
|
$(LIB_hx509)
|
|
|
|
dist_heimtools_SOURCES = heimtools.c klist.c kx509.c kswitch.c copy_cred_cache.c
|
|
nodist_heimtools_SOURCES = heimtools-commands.c
|
|
|
|
$(heimtools_OBJECTS): heimtools-commands.h
|
|
|
|
dist_kdigest_SOURCES = kdigest.c
|
|
nodist_kdigest_SOURCES = kdigest-commands.c
|
|
|
|
kdigest_LDADD = \
|
|
$(top_builddir)/lib/ntlm/libheimntlm.la \
|
|
$(top_builddir)/lib/krb5/libkrb5.la \
|
|
$(LIB_hcrypto) \
|
|
$(top_builddir)/lib/asn1/libasn1.la \
|
|
$(top_builddir)/lib/sl/libsl.la \
|
|
$(LIB_roken)
|
|
|
|
$(kdigest_OBJECTS): kdigest-commands.h
|
|
|
|
CLEANFILES = \
|
|
kdigest-commands.h kdigest-commands.c \
|
|
heimtools-commands.h heimtools-commands.c
|
|
|
|
kdigest-commands.c kdigest-commands.h: kdigest-commands.in
|
|
$(SLC) $(srcdir)/kdigest-commands.in
|
|
|
|
heimtools-commands.c heimtools-commands.h: heimtools-commands.in
|
|
$(SLC) $(srcdir)/heimtools-commands.in
|
|
|
|
LDADD = \
|
|
$(top_builddir)/lib/krb5/libkrb5.la \
|
|
$(LIB_hcrypto) \
|
|
$(top_builddir)/lib/asn1/libasn1.la \
|
|
$(LIB_roken)
|
|
|
|
EXTRA_DIST = NTMakefile $(man_MANS) \
|
|
heimtools-version.rc \
|
|
kcpytkt.c \
|
|
kdeltkt.c \
|
|
kvno.c \
|
|
kdestroy-version.rc \
|
|
kdigest-version.rc \
|
|
kgetcred-version.rc \
|
|
kimpersonate-version.rc \
|
|
kinit-version.rc \
|
|
kuser_locl.h heimtools-commands.in kdigest-commands.in copy_cred_cache.1
|
|
|
|
# make sure install-exec-hook doesn't have any commands in Makefile.am.common
|
|
install-exec-hook:
|
|
(cd $(DESTDIR)$(bindir) && rm -f klist && $(LN_S) heimtools klist)
|
|
(cd $(DESTDIR)$(bindir) && rm -f kx509 && $(LN_S) heimtools kx509)
|
|
(cd $(DESTDIR)$(bindir) && rm -f kswitch && $(LN_S) heimtools kswitch)
|
|
|