Generate ipnodes.by{addr,name} from /etc/hosts for compatibility with

FreeBSD local name resolution.
If /var/yp/ipnodes exists, we generate them from it for backward
compatibility.

Inspired by:	NetBSD
MFC after:	1 week
This commit is contained in:
Hajimu UMEMOTO 2015-12-18 17:30:22 +00:00
parent aa0241d623
commit 00022bd089

View File

@ -141,6 +141,7 @@ target:
# If you want to omit some of them, feel free to comment
# them out from this list.
TARGETS= servers hosts networks protocols rpc services shells group
TARGETS+= ipnodes
#TARGETS+= aliases
# Sanity checks: filter out targets we can't build
@ -193,10 +194,8 @@ TARGETS+= amd.map
AMDHOST= /dev/null
.endif
.if exists($(IPNODES))
TARGETS+= ipnodes
.else
IPNODES= /dev/null
.if !exists($(IPNODES))
IPNODES= $(HOSTS)
.endif
all: $(TARGETS)
@ -397,6 +396,8 @@ netgroup.byuser: $(NETGROUP)
# - We keep hosts.{byname,byaddr} IPv4 only, to be friendly with Solaris 8
# clients.
# - ipnodes.{byname,byaddr} is used for protocol independent mapping.
# We generate all the mappings from /etc/hosts unless /var/yp/ipnodes
# exists, for compatibility with FreeBSD local name resolution.
#
hosts.byname: $(HOSTS)
@echo "Updating $@..."
@ -420,30 +421,22 @@ hosts.byaddr: $(HOSTS)
ipnodes.byname: $(IPNODES)
@echo "Updating $@..."
.if ${IPNODES} == "/dev/null"
@echo "Ipnodes source file not found -- skipping"
.else
@$(AWK) '/^[0-9a-fA-F:]/ { for (n=2; n<=NF && $$n !~ "^#.*"; n++) \
print $$n"\t"$$0 }' $(IPNODES) | $(DBLOAD) ${B} -i $(IPNODES) \
-o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
@$(DBLOAD) -c
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
.endif
ipnodes.byaddr: $(IPNODES)
@echo "Updating $@..."
.if ${IPNODES} == "/dev/null"
@echo "Ipnodes source file not found -- skipping"
.else
@$(AWK) '$$1 !~ "^#.*" { print $$1"\t"$$0 }' $(IPNODES) \
| $(DBLOAD) ${B} -i $(IPNODES) -o $(YPMAPDIR)/$@ - $(TMP); \
$(RMV) $(TMP) $@
@$(DBLOAD) -c
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
.endif
networks.byname: $(NETWORKS)