svn commit: r286892 - head/usr.sbin/ypserv

Alan Somers asomers at FreeBSD.org
Tue Aug 18 15:33:25 UTC 2015


Author: asomers
Date: Tue Aug 18 15:33:23 2015
New Revision: 286892
URL: https://svnweb.freebsd.org/changeset/base/286892

Log:
  Serve /etc/eui64 via NIS.
  
  The C library already knows how to lookup eui64 entries from NIS. For
  example, fwcontrol(8) does it. But /var/yp/Makefile.dist doesn't build the
  eui64 maps, and ypinit(8) doesn't push them to slaves. This change fixes
  that.
  
  Reviewed by:	brooks, wblock
  MFC after:	2 weeks
  Sponsored by:	SpectraLogic Corp
  Differential Revision:	https://reviews.freebsd.org/D3404

Modified:
  head/usr.sbin/ypserv/Makefile.yp
  head/usr.sbin/ypserv/ypinit.8
  head/usr.sbin/ypserv/ypinit.sh

Modified: head/usr.sbin/ypserv/Makefile.yp
==============================================================================
--- head/usr.sbin/ypserv/Makefile.yp	Tue Aug 18 15:11:41 2015	(r286891)
+++ head/usr.sbin/ypserv/Makefile.yp	Tue Aug 18 15:33:23 2015	(r286892)
@@ -103,6 +103,7 @@ YPMAPDIR = $(YPDIR)/$(DOMAIN)
 # passwd file will be generated from the master.passwd file automagically.
 #
 ETHERS    = $(YPSRCDIR)/ethers	   # ethernet addresses (for rarpd)
+EUI64     = $(YPSRCDIR)/eui64	   # eui64 addresses (for firewire)
 BOOTPARAMS= $(YPSRCDIR)/bootparams # for booting Sun boxes (bootparamd)
 HOSTS     = $(YPSRCDIR)/hosts
 IPNODES   = $(YPDIR)/ipnodes
@@ -143,8 +144,8 @@ TARGETS= servers hosts networks protocol
 #TARGETS+= aliases
 
 # Sanity checks: filter out targets we can't build
-# Note that we don't build the ethers or boorparams maps by default
-# since /etc/ethers and /etc/bootparams are not likely to be present
+# Note that we don't build the ethers, eui64, or boorparams maps by default
+# since /etc/ethers, /etc/eui64 and /etc/bootparams are not likely to be present
 # on all systems.
 .if exists($(ETHERS))
 TARGETS+= ethers
@@ -152,6 +153,12 @@ TARGETS+= ethers
 ETHERS= /dev/null
 .endif
 
+.if exists($(EUI64))
+TARGETS+= eui64
+.else
+EUI64= /dev/null
+.endif
+
 .if exists($(BOOTPARAMS))
 TARGETS+= bootparams
 .else
@@ -195,6 +202,7 @@ IPNODES= /dev/null
 all: $(TARGETS)
 
 ethers:	   ethers.byname ethers.byaddr
+eui64:	   eui64.byname eui64.byid
 bootparam: bootparams
 hosts:	   hosts.byname hosts.byaddr
 ipnodes:   ipnodes.byname ipnodes.byaddr
@@ -294,6 +302,32 @@ ethers.byaddr: $(ETHERS)
 	@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
 .endif
 
+eui64.byname: $(EUI64)
+	@echo "Updating $@..."
+.if ${EUI64} == "/dev/null"
+	@echo "EUI64 source file not found -- skipping"
+.else
+	@$(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
+		print $$2"\t"$$0 }' $(EUI64) | $(DBLOAD) -i $(EUI64) \
+		-o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
+	@$(DBLOAD) -c
+	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+	@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
+.endif
+
+eui64.byid: $(EUI64)
+	@echo "Updating $@..."
+.if ${EUI64} == "/dev/null"
+	@echo "EUI64 source file not found -- skipping"
+.else
+	@$(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
+		print $$1"\t"$$0 }' $(EUI64) | $(DBLOAD) -i $(EUI64) \
+		-o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
+	@$(DBLOAD) -c
+	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+	@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
+.endif
+
 
 bootparams: $(BOOTPARAMS)
 	@echo "Updating $@..."

Modified: head/usr.sbin/ypserv/ypinit.8
==============================================================================
--- head/usr.sbin/ypserv/ypinit.8	Tue Aug 18 15:11:41 2015	(r286891)
+++ head/usr.sbin/ypserv/ypinit.8	Tue Aug 18 15:33:23 2015	(r286892)
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 10, 1997
+.Dd August 18, 2015
 .Dt YPINIT 8
 .Os
 .Sh NAME
@@ -147,6 +147,8 @@ can propagate updates on the master to a
 Bootparams source file
 .It Pa /etc/ethers
 Ethers data source file
+.It Pa /etc/eui64
+EUI64 data source file
 .It Pa /etc/group
 Group source file
 .It Pa /etc/hosts

Modified: head/usr.sbin/ypserv/ypinit.sh
==============================================================================
--- head/usr.sbin/ypserv/ypinit.sh	Tue Aug 18 15:11:41 2015	(r286891)
+++ head/usr.sbin/ypserv/ypinit.sh	Tue Aug 18 15:33:23 2015	(r286892)
@@ -14,8 +14,9 @@ MAPLIST="master.passwd.byname master.pas
 	 group.byname group.bygid hosts.byname hosts.byaddr services.byname \
 	 rpc.byname rpc.bynumber networks.byname networks.byaddr netgroup \
 	 netgroup.byuser netgroup.byhost netid.byname publickey.byname \
-	 bootparams ethers.byname ethers.byaddr amd.host mail.aliases \
-	 ypservers protocols.byname protocols.bynumber netmasks.byaddr"
+	 bootparams ethers.byname ethers.byaddr eui64.byname eui64.byid \
+	 amd.host mail.aliases ypservers protocols.byname protocols.bynumber \
+	 netmasks.byaddr"
 
 ERROR_EXISTS="NO"
 umask 077


More information about the svn-src-all mailing list